Skip to content
Snippets Groups Projects

Polyfill fix.

5 files
+ 63
63
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -3,21 +3,21 @@
* Views behaviors for Multiselect Dropdown.
*/
"use strict";
'use strict';
import MultiselectDropdowns from "./multiselect-dropdowns.js";
import MultiselectDropdowns from './multiselect-dropdowns.js';
((Drupal, once, dropdowns) => {
/**
* Submit the view directly from checkboxes.
*/
Drupal.behaviors.multiselectDropdownSubmitCheckboxes = {
attach: context => {
once("multiselect-dropdown-submit-checkboxes", dropdowns.getInstances(context)).forEach(multiselect => {
once('multiselect-dropdown-submit-checkboxes', dropdowns.getInstances(context)).forEach(multiselect => {
MultiselectDropdowns.getCheckboxes(multiselect).forEach(checkbox => {
checkbox.addEventListener("keydown", event => {
if (event.key === "Enter") {
checkbox.addEventListener('keydown', event => {
if (event.key === 'Enter') {
event.preventDefault();
dropdowns.setFocus(event.shiftKey ? ".view-content, .view-empty" : "[data-drupal-selector=\"".concat(event.target.getAttribute("data-drupal-selector"), "\"]"));
dropdowns.setFocus(event.shiftKey ? '.view-content, .view-empty' : "[data-drupal-selector=\"".concat(event.target.getAttribute('data-drupal-selector'), "\"]"));
dropdowns.submit(multiselect);
}
});
@@ -31,17 +31,17 @@ import MultiselectDropdowns from "./multiselect-dropdowns.js";
*/
Drupal.behaviors.multiselectDropdownSubmitButton = {
attach: context => {
once("multiselect-dropdown-submit-button", dropdowns.getInstances(context)).forEach(multiselect => {
once('multiselect-dropdown-submit-button', dropdowns.getInstances(context)).forEach(multiselect => {
const submitButton = dropdowns.getSubmit(multiselect);
if (submitButton) {
submitButton.addEventListener("click", event => {
submitButton.addEventListener('click', event => {
event.preventDefault();
dropdowns.submit(multiselect);
});
submitButton.addEventListener("keydown", event => {
if (event.key === "Enter") {
submitButton.addEventListener('keydown', event => {
if (event.key === 'Enter') {
event.preventDefault();
dropdowns.setFocus(event.shiftKey ? ".view-content, .view-empty" : dropdowns.getSelector(multiselect));
dropdowns.setFocus(event.shiftKey ? '.view-content, .view-empty' : dropdowns.getSelector(multiselect));
dropdowns.submit(multiselect);
}
});
@@ -55,16 +55,16 @@ import MultiselectDropdowns from "./multiselect-dropdowns.js";
*/
Drupal.behaviors.multiselectDropdownClearButtonEnter = {
attach: context => {
once("multiselect-dropdown-clear-button-enter", dropdowns.getInstances(context)).forEach(multiselect => {
once('multiselect-dropdown-clear-button-enter', dropdowns.getInstances(context)).forEach(multiselect => {
const clear = dropdowns.getClear(multiselect);
if (clear) {
clear.addEventListener("keydown", event => {
if (event.key === "Enter") {
clear.addEventListener('keydown', event => {
if (event.key === 'Enter') {
event.preventDefault();
MultiselectDropdowns.getCheckboxes(multiselect).forEach(checkbox => {
checkbox.checked = false;
});
dropdowns.setFocus(event.shiftKey ? ".view-content, .view-empty" : dropdowns.getSelector(multiselect));
dropdowns.setFocus(event.shiftKey ? '.view-content, .view-empty' : dropdowns.getSelector(multiselect));
dropdowns.submit(multiselect);
}
});
@@ -78,19 +78,19 @@ import MultiselectDropdowns from "./multiselect-dropdowns.js";
*/
Drupal.behaviors.multiselectDropdownLoadFocus = {
attach: context => {
if (once("multiselect-dropdown-load-focus", "form", context) && dropdowns.getFocus()) {
if (once('multiselect-dropdown-load-focus', 'form', context) && dropdowns.getFocus()) {
const focus = document.querySelector(dropdowns.getFocus());
if (focus) {
const multiselect = dropdowns.getInstance(focus);
if (multiselect) {
dropdowns.open(multiselect);
}
focus.setAttribute("tabindex", "0");
focus.setAttribute('tabindex', '0');
focus.focus({
preventScroll: true
});
}
dropdowns.setFocus("");
dropdowns.setFocus('');
}
}
};
Loading