cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
46 lines (45 loc) • 1.5 kB
JavaScript
const FocusVisiblePolyfillMixin = (SuperClass) => {
var _a;
const coordinateWithPolyfill = (instance) => {
if (instance.shadowRoot == null || instance.hasAttribute("data-js-focus-visible")) {
return () => {
};
}
if (self.applyFocusVisiblePolyfill) {
self.applyFocusVisiblePolyfill(instance.shadowRoot);
} else {
const coordinationHandler = () => {
self.applyFocusVisiblePolyfill(instance.shadowRoot);
};
self.addEventListener("focus-visible-polyfill-ready", coordinationHandler, { once: true });
return () => {
self.removeEventListener("focus-visible-polyfill-ready", coordinationHandler);
};
}
return () => {
};
};
const $endPolyfillCoordination = Symbol("endPolyfillCoordination");
class FocusVisibleCoordinator extends SuperClass {
constructor() {
super(...arguments);
this[_a] = null;
}
connectedCallback() {
super.connectedCallback && super.connectedCallback();
if (this[$endPolyfillCoordination] == null) {
this[$endPolyfillCoordination] = coordinateWithPolyfill(this);
}
}
disconnectedCallback() {
super.disconnectedCallback && super.disconnectedCallback();
if (this[$endPolyfillCoordination] != null) {
this[$endPolyfillCoordination]();
this[$endPolyfillCoordination] = null;
}
}
}
_a = $endPolyfillCoordination;
return FocusVisibleCoordinator;
};
export { FocusVisiblePolyfillMixin };