__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/**
* Checkbox selection functionality.
*
* @since 1.9.6.1
*/
// eslint-disable-next-line no-unused-vars
const WPFormsChoicesList = {
/**
* Creates and returns a checkbox selection manager.
*
* @since 1.9.6.1
*
* @param {jQuery} $container The container element with checkboxes.
*/
init( $container ) {
if ( $container.data( 'choices-list-initialized' ) ) {
return;
}
$container.data( 'choices-list-initialized', true );
// Private variables to store state.
const $selectAllCheckbox = $container.find( 'input[value="select-all"]' );
const $itemCheckboxes = $container.find( '.item-checkbox' );
/**
* Checks if the container has the necessary elements to initialize.
*
* @since 1.9.6.1
*
* @param {Object} $rootContainer The root container element to query for required elements.
*
* @return {boolean} True if the root container contains specific elements required for initialization, otherwise false.
*/
const canInitialize = ( $rootContainer ) => {
const hasSelectAll = $rootContainer.find( 'input[value="select-all"]' ).length > 0;
const hasItemCheckboxes = $rootContainer.find( '.item-checkbox' ).length > 0;
return hasSelectAll && hasItemCheckboxes;
};
/**
* Updates the state of the "Select All" checkbox based on the current
* state of individual item checkboxes. Determines whether all, none,
* or some items are selected and updates the "Select All" checkbox.
*
* @since 1.9.6.1
*/
const updateSelectAllState = () => {
this.updateSelectAllState( $container );
};
/**
* Handles the change event for the "Select All" checkbox. Updates the state
* of individual item checkboxes and clears the indeterminate state of the
* "Select All" checkbox.
*
* @since 1.9.6.1
*
* @param {Event} event The event object associated with the change event triggered on the "Select All" checkbox.
*/
const handleSelectAllChange = ( event ) => {
const isChecked = jQuery( event.target ).prop( 'checked' );
// Update all item checkboxes.
$itemCheckboxes.prop( 'checked', isChecked );
// Clear indeterminate state.
$selectAllCheckbox.prop( 'indeterminate', false );
};
/**
* Binds event listeners to the "select all" checkbox and item checkboxes.
*
* @since 1.9.6.1
*/
const bindEvents = () => {
// Add event listener to "select all" checkbox.
$selectAllCheckbox.on( 'change', handleSelectAllChange );
// Add event listeners to item checkboxes.
$itemCheckboxes.on( 'change', updateSelectAllState );
};
// Return early if required elements aren't found.
if ( ! canInitialize( $container ) ) {
return;
}
// Initialize event bindings.
bindEvents();
// Initialize the state.
updateSelectAllState();
},
/**
* Updates the select all checkbox state based on the current checked state of item checkboxes.
* This method can be called from outside the class to refresh the state after DOM changes.
*
* @since 1.9.6.1
*
* @param {jQuery} $container The container element with checkboxes.
*/
updateSelectAllState( $container ) {
const $selectAllCheckbox = $container.find( 'input[value="select-all"]' );
const $itemCheckboxes = $container.find( '.item-checkbox' );
const totalItems = $itemCheckboxes.length;
const checkedItems = $itemCheckboxes.filter( ':checked' ).length;
if ( checkedItems === 0 ) {
// None checked.
$selectAllCheckbox.prop( {
checked: false,
indeterminate: false,
} );
} else if ( checkedItems === totalItems ) {
// All checked.
$selectAllCheckbox.prop( {
checked: true,
indeterminate: false,
} );
} else {
// Some checked.
$selectAllCheckbox.prop( {
checked: false,
indeterminate: true,
} );
}
},
};
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| fields | Folder | 0750 |
|
|
| themes | Folder | 0750 |
|
|
| admin-builder-providers.js | File | 17.4 KB | 0640 |
|
| admin-builder-providers.min.js | File | 8.26 KB | 0640 |
|
| admin-builder.js | File | 288.17 KB | 0640 |
|
| admin-builder.min.js | File | 134.37 KB | 0640 |
|
| chocolate-choices.js | File | 2.28 KB | 0640 |
|
| chocolate-choices.min.js | File | 470 B | 0640 |
|
| choices-list.js | File | 3.7 KB | 0640 |
|
| choices-list.min.js | File | 714 B | 0640 |
|
| context-menu.js | File | 18.11 KB | 0640 |
|
| context-menu.min.js | File | 7.99 KB | 0640 |
|
| drag-fields.js | File | 24.15 KB | 0640 |
|
| drag-fields.min.js | File | 9.43 KB | 0640 |
|
| dropdown-list.js | File | 9.76 KB | 0640 |
|
| dropdown-list.min.js | File | 3.77 KB | 0640 |
|
| email-template.js | File | 5.02 KB | 0640 |
|
| email-template.min.js | File | 1.41 KB | 0640 |
|
| field-map.js | File | 6.44 KB | 0640 |
|
| field-map.min.js | File | 2.32 KB | 0640 |
|
| form-templates.js | File | 19.36 KB | 0640 |
|
| form-templates.min.js | File | 8.11 KB | 0640 |
|
| help.js | File | 11.3 KB | 0640 |
|
| help.min.js | File | 4.9 KB | 0640 |
|
| panel-loader.js | File | 4.95 KB | 0640 |
|
| panel-loader.min.js | File | 2.2 KB | 0640 |
|
| payments-utils.js | File | 3.41 KB | 0640 |
|
| payments-utils.min.js | File | 1.92 KB | 0640 |
|
| providers.js | File | 34.67 KB | 0640 |
|
| providers.min.js | File | 12.49 KB | 0640 |
|
| search-fields.js | File | 4.56 KB | 0640 |
|
| search-fields.min.js | File | 2.45 KB | 0640 |
|
| settings.js | File | 11.14 KB | 0640 |
|
| settings.min.js | File | 4.71 KB | 0640 |
|
| setup.js | File | 19.81 KB | 0640 |
|
| setup.min.js | File | 9.32 KB | 0640 |
|
| smart-tags.js | File | 43.2 KB | 0640 |
|
| smart-tags.min.js | File | 14.51 KB | 0640 |
|
| templates.js | File | 3.97 KB | 0640 |
|
| templates.min.js | File | 1.05 KB | 0640 |
|
| wpforms-choicesjs.js | File | 6.38 KB | 0640 |
|
| wpforms-choicesjs.min.js | File | 2.22 KB | 0640 |
|