$20 GRAYBYTE WORDPRESS FILE MANAGER $29

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/dantho.rw/wp-content/plugins/wpforms-lite/assets/js/admin/builder/

HOME
Current File : /home/bravrvjk/dantho.rw/wp-content/plugins/wpforms-lite/assets/js/admin/builder//choices-list.js
/**
 * 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,
			} );
		}
	},
};


Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
fields
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
themes
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
admin-builder-providers.js
17.4 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
admin-builder-providers.min.js
8.256 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
admin-builder.js
300.243 KB
25 Sep 2025 3.01 PM
bravrvjk / bravrvjk
0644
admin-builder.min.js
136.797 KB
25 Sep 2025 3.01 PM
bravrvjk / bravrvjk
0644
chocolate-choices.js
2.279 KB
17 Jun 2025 1.49 PM
bravrvjk / bravrvjk
0644
chocolate-choices.min.js
0.459 KB
17 Jun 2025 1.49 PM
bravrvjk / bravrvjk
0644
choices-list.js
3.695 KB
17 Jun 2025 1.49 PM
bravrvjk / bravrvjk
0644
choices-list.min.js
0.697 KB
17 Jun 2025 1.49 PM
bravrvjk / bravrvjk
0644
context-menu.js
18.105 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
context-menu.min.js
7.991 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
drag-fields.js
24.146 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
drag-fields.min.js
9.427 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
dropdown-list.js
9.758 KB
24 Apr 2025 2.53 PM
bravrvjk / bravrvjk
0644
dropdown-list.min.js
3.772 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
email-template.js
5.023 KB
7 Nov 2024 5.15 PM
bravrvjk / bravrvjk
0644
email-template.min.js
1.414 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
field-map.js
6.438 KB
31 Jul 2025 2.13 PM
bravrvjk / bravrvjk
0644
field-map.min.js
2.316 KB
31 Jul 2025 2.13 PM
bravrvjk / bravrvjk
0644
form-templates.js
19.356 KB
7 Nov 2024 5.15 PM
bravrvjk / bravrvjk
0644
form-templates.min.js
8.106 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
help.js
11.301 KB
16 Jan 2025 5.57 PM
bravrvjk / bravrvjk
0644
help.min.js
4.898 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
image-upload.js
4.437 KB
11 Aug 2025 1.38 PM
bravrvjk / bravrvjk
0644
image-upload.min.js
1.973 KB
11 Aug 2025 1.38 PM
bravrvjk / bravrvjk
0644
panel-loader.js
4.952 KB
29 Feb 2024 5.17 PM
bravrvjk / bravrvjk
0644
panel-loader.min.js
2.199 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
payments-utils.js
3.411 KB
24 Apr 2025 2.53 PM
bravrvjk / bravrvjk
0644
payments-utils.min.js
1.917 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
providers.js
34.674 KB
31 Jul 2025 2.13 PM
bravrvjk / bravrvjk
0644
providers.min.js
12.491 KB
31 Jul 2025 2.13 PM
bravrvjk / bravrvjk
0644
search-fields.js
4.562 KB
29 Feb 2024 5.17 PM
bravrvjk / bravrvjk
0644
search-fields.min.js
2.449 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
settings.js
11.145 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
settings.min.js
4.707 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
setup.js
19.813 KB
7 Nov 2024 5.15 PM
bravrvjk / bravrvjk
0644
setup.min.js
9.322 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
smart-tags.js
44.823 KB
25 Sep 2025 3.01 PM
bravrvjk / bravrvjk
0644
smart-tags.min.js
14.917 KB
25 Sep 2025 3.01 PM
bravrvjk / bravrvjk
0644
templates.js
3.975 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
templates.min.js
1.054 KB
5 Jun 2025 4.54 PM
bravrvjk / bravrvjk
0644
wpforms-choicesjs.js
8.002 KB
14 Oct 2025 3.49 PM
bravrvjk / bravrvjk
0644
wpforms-choicesjs.min.js
2.569 KB
14 Oct 2025 3.49 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF