UNPKG

@ariakit/core

Version:
133 lines (111 loc) 4.24 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _RL7DKHOFcjs = require('../__chunks/RL7DKHOF.cjs'); require('../__chunks/BVPEDDW6.cjs'); var _RNIVVQWXcjs = require('../__chunks/RNIVVQWX.cjs'); require('../__chunks/GDZQUFNP.cjs'); require('../__chunks/YMCSKJHR.cjs'); require('../__chunks/V4YF2QA6.cjs'); require('../__chunks/MNBBM5CR.cjs'); require('../__chunks/726BNPQZ.cjs'); var _ASR6PAFNcjs = require('../__chunks/ASR6PAFN.cjs'); var _MLCPLY2Pcjs = require('../__chunks/MLCPLY2P.cjs'); var _7EQBAZ46cjs = require('../__chunks/7EQBAZ46.cjs'); // src/menu/menu-store.ts function createMenuStore(_a = {}) { var _b = _a, { combobox, parent, menubar } = _b, props = _7EQBAZ46cjs.__objRest.call(void 0, _b, [ "combobox", "parent", "menubar" ]); const parentIsMenubar = !!menubar && !parent; const store = _ASR6PAFNcjs.mergeStore.call(void 0, props.store, _ASR6PAFNcjs.pick.call(void 0, parent, ["values"]), _ASR6PAFNcjs.omit.call(void 0, combobox, [ "arrowElement", "anchorElement", "contentElement", "popoverElement", "disclosureElement" ]) ); _ASR6PAFNcjs.throwOnConflictingProps.call(void 0, props, store); const syncState = store.getState(); const composite = _RNIVVQWXcjs.createCompositeStore.call(void 0, _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, props), { store, orientation: _MLCPLY2Pcjs.defaultValue.call(void 0, props.orientation, syncState.orientation, "vertical" ) })); const hovercard = _RL7DKHOFcjs.createHovercardStore.call(void 0, _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, props), { store, placement: _MLCPLY2Pcjs.defaultValue.call(void 0, props.placement, syncState.placement, "bottom-start" ), timeout: _MLCPLY2Pcjs.defaultValue.call(void 0, props.timeout, syncState.timeout, parentIsMenubar ? 0 : 150 ), hideTimeout: _MLCPLY2Pcjs.defaultValue.call(void 0, props.hideTimeout, syncState.hideTimeout, 0) })); const initialState = _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, composite.getState()), hovercard.getState()), { initialFocus: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState.initialFocus, "container"), values: _MLCPLY2Pcjs.defaultValue.call(void 0, props.values, syncState.values, props.defaultValues, {} ) }); const menu = _ASR6PAFNcjs.createStore.call(void 0, initialState, composite, hovercard, store); _ASR6PAFNcjs.setup.call(void 0, menu, () => _ASR6PAFNcjs.sync.call(void 0, menu, ["mounted"], (state) => { if (state.mounted) return; menu.setState("activeId", null); }) ); _ASR6PAFNcjs.setup.call(void 0, menu, () => _ASR6PAFNcjs.sync.call(void 0, parent, ["orientation"], (state) => { menu.setState( "placement", state.orientation === "vertical" ? "right-start" : "bottom-start" ); }) ); return _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, composite), hovercard), menu), { combobox, parent, menubar, hideAll: () => { hovercard.hide(); parent == null ? void 0 : parent.hideAll(); }, setInitialFocus: (value) => menu.setState("initialFocus", value), setValues: (values) => menu.setState("values", values), setValue: (name, value) => { if (name === "__proto__") return; if (name === "constructor") return; if (Array.isArray(name)) return; menu.setState("values", (values) => { const prevValue = values[name]; const nextValue = _MLCPLY2Pcjs.applyState.call(void 0, value, prevValue); if (nextValue === prevValue) return values; return _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, values), { [name]: nextValue !== void 0 && nextValue }); }); } }); } exports.createMenuStore = createMenuStore;