@ariakit/core
Version:
Ariakit core
64 lines (47 loc) • 2.35 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _YMCSKJHRcjs = require('./YMCSKJHR.cjs');
var _ASR6PAFNcjs = require('./ASR6PAFN.cjs');
var _MLCPLY2Pcjs = require('./MLCPLY2P.cjs');
var _7EQBAZ46cjs = require('./7EQBAZ46.cjs');
// src/popover/popover-store.ts
function createPopoverStore(_a = {}) {
var _b = _a, {
popover: otherPopover
} = _b, props = _7EQBAZ46cjs.__objRest.call(void 0, _b, [
"popover"
]);
const store = _ASR6PAFNcjs.mergeStore.call(void 0,
props.store,
_ASR6PAFNcjs.omit.call(void 0, otherPopover, [
"arrowElement",
"anchorElement",
"contentElement",
"popoverElement",
"disclosureElement"
])
);
_ASR6PAFNcjs.throwOnConflictingProps.call(void 0, props, store);
const syncState = store == null ? void 0 : store.getState();
const dialog = _YMCSKJHRcjs.createDialogStore.call(void 0, _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, props), { store }));
const placement = _MLCPLY2Pcjs.defaultValue.call(void 0,
props.placement,
syncState == null ? void 0 : syncState.placement,
"bottom"
);
const initialState = _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, dialog.getState()), {
placement,
currentPlacement: placement,
anchorElement: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState == null ? void 0 : syncState.anchorElement, null),
popoverElement: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState == null ? void 0 : syncState.popoverElement, null),
arrowElement: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState == null ? void 0 : syncState.arrowElement, null),
rendered: Symbol("rendered")
});
const popover = _ASR6PAFNcjs.createStore.call(void 0, initialState, dialog, store);
return _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, dialog), popover), {
setAnchorElement: (element) => popover.setState("anchorElement", element),
setPopoverElement: (element) => popover.setState("popoverElement", element),
setArrowElement: (element) => popover.setState("arrowElement", element),
render: () => popover.setState("rendered", Symbol("rendered"))
});
}
exports.createPopoverStore = createPopoverStore;