@public-ui/components
Version:
Contains all web components that belong to KoliBri - The accessible HTML-Standard.
46 lines (45 loc) • 1.5 kB
JavaScript
/*!
* KoliBri - The accessible HTML-Standard
*/
import { delegateClick as delegateClickImpl, setClick } from "./element-click";
import { delegateFocus as delegateFocusImpl, setFocus } from "./element-focus";
export function createCtaRef() {
const ref = ((el) => {
ref.el = el;
});
ref.el = undefined;
return ref;
}
function makeMethodDecorator(fn) {
return (_target, _key, descriptor) => {
descriptor.value = async function () {
return fn(this);
};
return descriptor;
};
}
export function directFocus(refPropName) {
return makeMethodDecorator((self) => {
const element = self[refPropName].el;
return element ? setFocus(element) : Promise.resolve();
});
}
export function directClick(refPropName) {
return makeMethodDecorator((self) => {
const element = self[refPropName].el;
return element ? setClick(element) : Promise.resolve();
});
}
export function delegateFocus(refPropName) {
return makeMethodDecorator((self) => delegateFocusImpl(self['host'], () => {
const element = self[refPropName].el;
return element ? setFocus(element) : Promise.resolve();
}));
}
export function delegateClick(refPropName) {
return makeMethodDecorator((self) => delegateClickImpl(self['host'], () => {
const element = self[refPropName].el;
return element ? setClick(element) : Promise.resolve();
}));
}
//# sourceMappingURL=element-interaction.js.map