PluginProbe
ElasticPress / 4.2.0
ElasticPress v4.2.0
5.3.5 5.3.4 3.6.5 3.6.6 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 5.0.0 5.0.1 5.0.2 All 108 releases
elasticpress / assets / js / weighting.js

weighting.js in ElasticPress 4.2.0, at assets/js/weighting.js

65 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * WordPress dependencies.
3 */
4 import domReady from '@wordpress/dom-ready';
5
6 /**
7 * Initialize.
8 *
9 * @returns {void}
10 */
11 const init = () => {
12 /**
13 * Update the value in the range input label.
14 *
15 * @param {Element} el Range input element.
16 */
17 const updateSliderValue = (el) => {
18 el.labels[0].querySelector('.weighting-value').textContent = el.disabled ? '0' : el.value;
19 };
20
21 /**
22 * Handle range slider input.
23 *
24 * @param {Event} event Input event.
25 */
26 const onSliderInput = (event) => {
27 updateSliderValue(event.currentTarget);
28 };
29
30 /**
31 * Handle checkbox change.
32 *
33 * @param {Event} event Change event.
34 */
35 const onCheckboxChange = (event) => {
36 const el = event.currentTarget.closest('fieldset').querySelector('input[type="range"]');
37
38 el.disabled = !event.currentTarget.checked;
39
40 updateSliderValue(el);
41 };
42
43 /**
44 * Bind events.
45 */
46 const sliders = document.querySelectorAll('.weighting-settings input[type=range]');
47
48 for (const slider of sliders) {
49 slider.addEventListener('input', onSliderInput);
50 }
51
52 const checkboxes = document.querySelectorAll(
53 '.weighting-settings .searchable input[type=checkbox]',
54 );
55
56 for (const checkbox of checkboxes) {
57 checkbox.addEventListener('change', onCheckboxChange);
58 }
59 };
60
61 /**
62 * Initialize.
63 */
64 domReady(init);
65