UNPKG

@ariakit/core

Version:
163 lines (140 loc) 5.42 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _BVPEDDW6cjs = require('../__chunks/BVPEDDW6.cjs'); var _RNIVVQWXcjs = require('../__chunks/RNIVVQWX.cjs'); var _GDZQUFNPcjs = 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/select/select-store.ts function createSelectStore(_a = {}) { var _b = _a, { combobox } = _b, props = _7EQBAZ46cjs.__objRest.call(void 0, _b, [ "combobox" ]); const store = _ASR6PAFNcjs.mergeStore.call(void 0, props.store, _ASR6PAFNcjs.omit.call(void 0, combobox, [ "value", "items", "renderedItems", "baseElement", "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, virtualFocus: _MLCPLY2Pcjs.defaultValue.call(void 0, props.virtualFocus, syncState.virtualFocus, true ), includesBaseElement: _MLCPLY2Pcjs.defaultValue.call(void 0, props.includesBaseElement, syncState.includesBaseElement, false ), activeId: _MLCPLY2Pcjs.defaultValue.call(void 0, props.activeId, syncState.activeId, props.defaultActiveId, null ), orientation: _MLCPLY2Pcjs.defaultValue.call(void 0, props.orientation, syncState.orientation, "vertical" ) })); const popover = _BVPEDDW6cjs.createPopoverStore.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" ) })); const initialValue = new String(""); const initialState = _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, composite.getState()), popover.getState()), { value: _MLCPLY2Pcjs.defaultValue.call(void 0, props.value, syncState.value, props.defaultValue, initialValue ), setValueOnMove: _MLCPLY2Pcjs.defaultValue.call(void 0, props.setValueOnMove, syncState.setValueOnMove, false ), labelElement: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState.labelElement, null), selectElement: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState.selectElement, null), listElement: _MLCPLY2Pcjs.defaultValue.call(void 0, syncState.listElement, null) }); const select = _ASR6PAFNcjs.createStore.call(void 0, initialState, composite, popover, store); _ASR6PAFNcjs.setup.call(void 0, select, () => _ASR6PAFNcjs.sync.call(void 0, select, ["value", "items"], (state) => { if (state.value !== initialValue) return; if (!state.items.length) return; const item = state.items.find( (item2) => !item2.disabled && item2.value != null ); if ((item == null ? void 0 : item.value) == null) return; select.setState("value", item.value); }) ); _ASR6PAFNcjs.setup.call(void 0, select, () => _ASR6PAFNcjs.sync.call(void 0, select, ["mounted"], (state) => { if (state.mounted) return; select.setState("activeId", initialState.activeId); }) ); _ASR6PAFNcjs.setup.call(void 0, select, () => _ASR6PAFNcjs.sync.call(void 0, select, ["mounted", "items", "value"], (state) => { if (combobox) return; if (state.mounted) return; const values = _GDZQUFNPcjs.toArray.call(void 0, state.value); const lastValue = values[values.length - 1]; if (lastValue == null) return; const item = state.items.find( (item2) => !item2.disabled && item2.value === lastValue ); if (!item) return; select.setState("activeId", item.id); }) ); _ASR6PAFNcjs.setup.call(void 0, select, () => _ASR6PAFNcjs.batch.call(void 0, select, ["setValueOnMove", "moves"], (state) => { const { mounted, value, activeId } = select.getState(); if (!state.setValueOnMove && mounted) return; if (Array.isArray(value)) return; if (!state.moves) return; if (!activeId) return; const item = composite.item(activeId); if (!item || item.disabled || item.value == null) return; select.setState("value", item.value); }) ); return _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, {}, composite), popover), select), { combobox, setValue: (value) => select.setState("value", value), setLabelElement: (element) => select.setState("labelElement", element), setSelectElement: (element) => select.setState("selectElement", element), setListElement: (element) => select.setState("listElement", element) }); } exports.createSelectStore = createSelectStore;