# speechkit/7.2.0/src/settings/preselect.js

BeyondWords – AI audio for publishers, version 7.2.0. 74 lines.

- Page: https://pluginprobe.com/plugins/speechkit/7.2.0/code/src/settings/preselect.js
- Raw: https://pluginprobe.com/plugins/speechkit/7.2.0/raw/src/settings/preselect.js
- Modified: 2026-09-25T15:14:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/speechkit/7.2.0/code/src/settings/preselect.js#L10-L20`.

```javascript
/*
 * Preferences → "Preselect 'Generate audio'" field: progressive disclosure.
 *
 * Checkboxes render server-side with their correct initial visibility, so this
 * is enhancement only; hiding the term trees never clears their selections.
 */
( function () {
	'use strict';

	const sync = ( fieldset ) => {
		const enabled = fieldset.querySelector(
			'.beyondwords-setting__preselect--enabled'
		);
		const options = fieldset.querySelector(
			'.beyondwords-setting__preselect--options'
		);

		if ( ! enabled || ! options ) {
			return;
		}

		const all = options.querySelector(
			'.beyondwords-setting__preselect--all'
		);
		const taxonomies = options.querySelector(
			'.beyondwords-setting__preselect--taxonomies'
		);

		options.style.display = enabled.checked ? '' : 'none';

		if ( taxonomies && all ) {
			taxonomies.style.display =
				enabled.checked && ! all.checked ? '' : 'none';
		}
	};

	const init = () => {
		const fieldsets = document.querySelectorAll(
			'.beyondwords-setting__preselect--post-type'
		);

		fieldsets.forEach( ( fieldset ) => {
			const enabled = fieldset.querySelector(
				'.beyondwords-setting__preselect--enabled'
			);
			const all = fieldset.querySelector(
				'.beyondwords-setting__preselect--all'
			);

			if ( enabled ) {
				enabled.addEventListener( 'change', () => {
					// Enabling defaults to "All" (preselect the whole type).
					if ( enabled.checked && all ) {
						all.checked = true;
					}
					sync( fieldset );
				} );
			}

			if ( all ) {
				all.addEventListener( 'change', () => sync( fieldset ) );
			}

			sync( fieldset );
		} );
	};

	if ( document.readyState !== 'loading' ) {
		init();
	} else {
		document.addEventListener( 'DOMContentLoaded', init );
	}
} )();

```
