@sandlada/vue-mdc
Version:

45 lines (44 loc) • 1.09 kB
JavaScript
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: Apache-2.0
*
* @link https://github.com/material-components/material-web/blob/main/internal/events/form-label-activation.ts
*/
function dispatchActivationClick(element) {
const event = new MouseEvent("click", { bubbles: true });
element.dispatchEvent(event);
return event;
}
function isActivationClick(event) {
if (event.currentTarget !== event.target) {
return false;
}
if (event.composedPath()[0] !== event.target) {
return false;
}
if (event.target.disabled) {
return false;
}
return !squelchEvent(event);
}
function squelchEvent(event) {
const squelched = isSquelchingEvents;
if (squelched) {
event.preventDefault();
event.stopImmediatePropagation();
}
squelchEventsForMicrotask();
return squelched;
}
let isSquelchingEvents = false;
async function squelchEventsForMicrotask() {
isSquelchingEvents = true;
await null;
isSquelchingEvents = false;
}
export {
dispatchActivationClick,
isActivationClick
};
//# sourceMappingURL=form-label-activation.js.map