@doku-dev/doku-fragment
Version:
A new Angular UI library that moving away from Bootstrap and built from scratch.
32 lines • 4.71 kB
JavaScript
import { autoUpdate, computePosition, flip, shift, } from '@floating-ui/dom';
function updatePosition(props) {
if (!props.triggerElement || !props.floatingElement)
return;
const middleware = [];
if (props.middleware?.flip) {
middleware.push(flip());
}
if (props.middleware?.shift) {
middleware.push(shift());
}
computePosition(props.triggerElement, props.floatingElement, {
placement: props.placement || 'bottom',
middleware: middleware,
}).then(({ x, y }) => {
Object.assign(props.floatingElement.style, {
top: `${y}px`,
left: `${x}px`,
});
});
}
export function updateFloatingPosition(props) {
if (props.autoUpdate) {
return autoUpdate(props.triggerElement, props.floatingElement, () => {
updatePosition(props);
});
}
else {
return updatePosition(props);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsb2F0aW5nLXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9rdS1mcmFnbWVudC9zcmMvdXRpbHMvdXBkYXRlLWZsb2F0aW5nLXBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxVQUFVLEVBQ1YsZUFBZSxFQUNmLElBQUksRUFDSixLQUFLLEdBQ04sTUFBTSxrQkFBa0IsQ0FBQztBQWdCMUIsU0FBUyxjQUFjLENBQUMsS0FBc0M7SUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtRQUFFLE9BQU87SUFFNUQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRXRCLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7UUFDMUIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3pCO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRTtRQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDMUI7SUFFRCxlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFO1FBQzNELFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLFFBQVE7UUFDdEMsVUFBVSxFQUFFLFVBQVU7S0FDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRTtZQUN6QyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQVE7SUFFUixJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7UUFDcEIsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtZQUNsRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUE0QyxDQUFDO0tBQy9DO1NBQU07UUFDTCxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQTRDLENBQUM7S0FDekU7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVyaXZhYmxlLFxuICBGbGlwT3B0aW9ucyxcbiAgUGxhY2VtZW50LFxuICBTaGlmdE9wdGlvbnMsXG4gIGF1dG9VcGRhdGUsXG4gIGNvbXB1dGVQb3NpdGlvbixcbiAgZmxpcCxcbiAgc2hpZnQsXG59IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuXG5pbnRlcmZhY2UgRG9rdVVwZGF0ZUZsb2F0aW5nUG9zaXRpb25Qcm9wcyB7XG4gIHRyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgZmxvYXRpbmdFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xuICBtaWRkbGV3YXJlPzoge1xuICAgIGZsaXA/OiBib29sZWFuIHwgRmxpcE9wdGlvbnMgfCBEZXJpdmFibGU8RmxpcE9wdGlvbnM+O1xuICAgIHNoaWZ0PzogYm9vbGVhbiB8IFNoaWZ0T3B0aW9ucyB8IERlcml2YWJsZTxTaGlmdE9wdGlvbnM+O1xuICB9O1xuICBhdXRvVXBkYXRlPzogYm9vbGVhbjtcbn1cblxudHlwZSBEb2t1VXBkYXRlRmxvYXRpbmdQb3NpdGlvblJldHVyblR5cGU8VCBleHRlbmRzIERva3VVcGRhdGVGbG9hdGluZ1Bvc2l0aW9uUHJvcHM+ID1cbiAgVFsnYXV0b1VwZGF0ZSddIGV4dGVuZHMgdHJ1ZSA/ICgpID0+IHZvaWQgOiB2b2lkO1xuXG5mdW5jdGlvbiB1cGRhdGVQb3NpdGlvbihwcm9wczogRG9rdVVwZGF0ZUZsb2F0aW5nUG9zaXRpb25Qcm9wcykge1xuICBpZiAoIXByb3BzLnRyaWdnZXJFbGVtZW50IHx8ICFwcm9wcy5mbG9hdGluZ0VsZW1lbnQpIHJldHVybjtcblxuICBjb25zdCBtaWRkbGV3YXJlID0gW107XG5cbiAgaWYgKHByb3BzLm1pZGRsZXdhcmU/LmZsaXApIHtcbiAgICBtaWRkbGV3YXJlLnB1c2goZmxpcCgpKTtcbiAgfVxuXG4gIGlmIChwcm9wcy5taWRkbGV3YXJlPy5zaGlmdCkge1xuICAgIG1pZGRsZXdhcmUucHVzaChzaGlmdCgpKTtcbiAgfVxuXG4gIGNvbXB1dGVQb3NpdGlvbihwcm9wcy50cmlnZ2VyRWxlbWVudCwgcHJvcHMuZmxvYXRpbmdFbGVtZW50LCB7XG4gICAgcGxhY2VtZW50OiBwcm9wcy5wbGFjZW1lbnQgfHwgJ2JvdHRvbScsXG4gICAgbWlkZGxld2FyZTogbWlkZGxld2FyZSxcbiAgfSkudGhlbigoeyB4LCB5IH0pID0+IHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BzLmZsb2F0aW5nRWxlbWVudC5zdHlsZSwge1xuICAgICAgdG9wOiBgJHt5fXB4YCxcbiAgICAgIGxlZnQ6IGAke3h9cHhgLFxuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUZsb2F0aW5nUG9zaXRpb248VCBleHRlbmRzIERva3VVcGRhdGVGbG9hdGluZ1Bvc2l0aW9uUHJvcHM+KFxuICBwcm9wczogVFxuKTogRG9rdVVwZGF0ZUZsb2F0aW5nUG9zaXRpb25SZXR1cm5UeXBlPFQ+IHtcbiAgaWYgKHByb3BzLmF1dG9VcGRhdGUpIHtcbiAgICByZXR1cm4gYXV0b1VwZGF0ZShwcm9wcy50cmlnZ2VyRWxlbWVudCwgcHJvcHMuZmxvYXRpbmdFbGVtZW50LCAoKSA9PiB7XG4gICAgICB1cGRhdGVQb3NpdGlvbihwcm9wcyk7XG4gICAgfSkgYXMgRG9rdVVwZGF0ZUZsb2F0aW5nUG9zaXRpb25SZXR1cm5UeXBlPFQ+O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1cGRhdGVQb3NpdGlvbihwcm9wcykgYXMgRG9rdVVwZGF0ZUZsb2F0aW5nUG9zaXRpb25SZXR1cm5UeXBlPFQ+O1xuICB9XG59XG4iXX0=