@qualcomm-ui/core 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/input/input.types.d.ts +1 -1
- package/dist/input/input.types.d.ts.map +1 -1
- package/dist/password-input/index.cjs +1 -1
- package/dist/password-input/index.cjs.map +3 -3
- package/dist/password-input/index.js +1 -1
- package/dist/password-input/index.js.map +3 -3
- package/dist/password-input/password-input.machine.d.ts.map +1 -1
- package/dist/password-input/password-input.types.d.ts +1 -1
- package/dist/password-input/password-input.types.d.ts.map +1 -1
- package/dist/select/index.cjs.map +2 -2
- package/dist/select/index.js.map +2 -2
- package/dist/select/select.api.d.ts.map +1 -1
- package/dist/slider/index.cjs +1 -1
- package/dist/slider/index.cjs.map +3 -3
- package/dist/slider/index.js +1 -1
- package/dist/slider/index.js.map +3 -3
- package/dist/slider/slider.api.d.ts.map +1 -1
- package/dist/slider/slider.dom.d.ts.map +1 -1
- package/dist/slider/slider.machine.d.ts.map +1 -1
- package/dist/slider/slider.props.d.ts.map +1 -1
- package/dist/slider/slider.style.d.ts.map +1 -1
- package/dist/slider/slider.types.d.ts +36 -25
- package/dist/slider/slider.types.d.ts.map +1 -1
- package/dist/slider/slider.utils.d.ts +0 -1
- package/dist/slider/slider.utils.d.ts.map +1 -1
- package/dist/table/features/sorting.d.ts +3 -1
- package/dist/table/features/sorting.d.ts.map +1 -1
- package/dist/table/index.cjs.map +2 -2
- package/dist/table/index.js.map +2 -2
- package/dist/text-input/index.cjs +1 -1
- package/dist/text-input/index.cjs.map +3 -3
- package/dist/text-input/index.js +1 -1
- package/dist/text-input/index.js.map +3 -3
- package/dist/text-input/text-input.machine.d.ts.map +1 -1
- package/dist/text-input/text-input.types.d.ts +1 -1
- package/dist/text-input/text-input.types.d.ts.map +1 -1
- package/dist/tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/select/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/select/select.api.ts", "../../src/select/internal/select.dom.ts", "../../src/select/select.collection.ts", "../../src/select/select.machine.ts", "../../src/select/select.props.ts"],
|
|
4
|
-
"sourcesContent": ["// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n getPlacementStyles,\n type PositioningOptions,\n} from \"@qualcomm-ui/dom/floating-ui\"\nimport {isFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n getByTypeahead,\n getEventKey,\n getEventTarget,\n isEditableElement,\n isSelfTarget,\n visuallyHiddenStyle,\n} from \"@qualcomm-ui/dom/query\"\nimport {booleanAriaAttr, booleanDataAttr} from \"@qualcomm-ui/utils/attributes\"\nimport {ensure} from \"@qualcomm-ui/utils/guard\"\nimport type {\n EventKeyMap,\n IdRegistrationProps,\n Machine,\n PropNormalizer,\n} from \"@qualcomm-ui/utils/machine\"\n\nimport {domEls, domIds} from \"./internal\"\nimport type {\n ItemProps,\n ItemState,\n ScrollToIndexFn,\n SelectApi,\n SelectClearTriggerBindings,\n SelectControlBindings,\n SelectErrorIndicatorBindings,\n SelectErrorTextBindings,\n SelectHintBindings,\n SelectItemBindings,\n SelectItemGroupBindings,\n SelectItemIndicatorBindings,\n SelectItemTextBindings,\n SelectRootBindings,\n SelectSchema,\n} from \"./select.types\"\n\nexport function createSelectApi(\n machine: Machine<SelectSchema>,\n normalize: PropNormalizer,\n): SelectApi {\n const {computed, context, prop, refs, scope, send, state} = machine\n\n const disabled = prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n const invalid = prop(\"invalid\")\n const readOnly = prop(\"readOnly\")\n const collection = prop(\"collection\")\n\n const open = state.hasTag(\"open\")\n const focused = state.matches(\"focused\")\n\n const highlightedValue = context.get(\"highlightedValue\")\n const highlightedItem = context.get(\"highlightedItem\")\n const selectedItems = context.get(\"selectedItems\")\n const currentPlacement = context.get(\"currentPlacement\")\n\n const isTypingAhead = computed(\"isTypingAhead\")\n const interactive = computed(\"isInteractive\")\n\n const ariaActiveDescendant =\n (highlightedValue && domIds.item?.(scope, highlightedValue)) || undefined\n\n function getItemState(props: ItemProps): ItemState {\n const _disabled = collection.getItemDisabled(props.item)\n const value = collection.getItemValue(props.item)\n ensure(\n value,\n () =>\n `[@qualcomm-ui/core] No value found for item ${JSON.stringify(props.item)}`,\n )\n return {\n disabled: Boolean(disabled || _disabled),\n highlighted: highlightedValue === value,\n persistFocus: props.persistFocus,\n selected: context.get(\"value\")?.includes(value) || false,\n value,\n }\n }\n\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement,\n })\n\n return {\n clearValue(value) {\n send({type: \"ITEM.CLEAR\", value})\n },\n collection,\n disabled,\n empty: computed(\"isEmpty\"),\n focus() {\n domEls.control(scope)?.focus({preventScroll: true})\n },\n focused,\n getItemState,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n hiddenSelectOptions: [],\n highlightedItem,\n highlightedValue,\n highlightValue(value) {\n send({type: \"HIGHLIGHTED_VALUE.SET\", value})\n },\n multiple: prop(\"multiple\"),\n open,\n placeholder: prop(\"placeholder\"),\n reposition(options: Partial<PositioningOptions> = {}) {\n send({options, type: \"POSITIONING.SET\"})\n },\n required: prop(\"required\"),\n selectAll() {\n send({type: \"VALUE.SET\", value: collection.getValues()})\n },\n selectedItems,\n selectValue(value) {\n send({type: \"ITEM.SELECT\", value})\n },\n setOpen(nextOpen) {\n const open = state.hasTag(\"open\")\n if (open === nextOpen) {\n return\n }\n send({type: nextOpen ? \"OPEN\" : \"CLOSE\"})\n },\n setScrollToIndexFn(fn: ScrollToIndexFn) {\n refs.set(\"scrollToIndexFn\", fn)\n },\n setValue(value) {\n send({type: \"VALUE.SET\", value})\n },\n value: context.get(\"value\"),\n valueAsString: context.get(\"valueAsString\"),\n\n // group: prop getters\n getClearTriggerBindings(props): SelectClearTriggerBindings {\n scope.ids.register(\"clearTrigger\", props)\n return normalize.button({\n \"aria-label\": \"Clear value\",\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"clear-trigger\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n disabled,\n hidden: !computed(\"hasSelectedItems\"),\n id: domIds.clearTrigger(scope),\n onClick(event) {\n if (event.defaultPrevented || !interactive) {\n return\n }\n send({type: \"CLEAR.CLICK\"})\n // prevent the same click from reopening the select.\n if (!open) {\n event.stopPropagation()\n }\n },\n type: \"button\",\n })\n },\n\n getContentBindings(props) {\n scope.ids.register(\"content\", props)\n return normalize.element({\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-labelledby\": domIds.label(scope),\n \"aria-multiselectable\": booleanAriaAttr(prop(\"multiple\")),\n \"data-activedescendant\": ariaActiveDescendant,\n \"data-focus-visible\": booleanDataAttr(isFocusVisible()),\n \"data-part\": \"content\",\n \"data-placement\": currentPlacement,\n \"data-scope\": \"select\",\n \"data-state\": open ? \"open\" : \"closed\",\n dir: prop(\"dir\"),\n hidden: !open,\n id: domIds.content(scope),\n onKeyDown(event) {\n if (!interactive) {\n return\n }\n if (!isSelfTarget(event)) {\n return\n }\n if (event.defaultPrevented) {\n return\n }\n\n const keyMap: EventKeyMap = {\n ArrowDown() {\n send({type: \"CONTENT.ARROW_DOWN\"})\n },\n ArrowUp() {\n send({type: \"CONTENT.ARROW_UP\"})\n },\n End() {\n send({type: \"CONTENT.END\"})\n },\n Enter() {\n send({type: \"ITEM.CLICK\"})\n },\n Home() {\n send({type: \"CONTENT.HOME\"})\n },\n Space() {\n if (isTypingAhead) {\n send({key: event.key, type: \"CONTENT.TYPEAHEAD\"})\n } else {\n keyMap.Enter?.(event)\n }\n },\n Tab() {\n send({type: \"TRIGGER.TAB\"})\n },\n }\n\n const exec = keyMap[getEventKey(event)]\n\n if (exec) {\n exec(event)\n event.preventDefault()\n return\n }\n\n const target = getEventTarget<Element>(event)\n\n if (isEditableElement(target)) {\n return\n }\n\n if (getByTypeahead.isValidEvent(event)) {\n send({key: event.key, type: \"CONTENT.TYPEAHEAD\"})\n event.preventDefault()\n }\n },\n role: \"listbox\",\n tabIndex: 0,\n })\n },\n\n getControlBindings(props): SelectControlBindings {\n scope.ids.register(\"control\", props)\n return normalize.button({\n \"aria-controls\": domIds.content(scope),\n \"aria-expanded\": booleanAriaAttr(open),\n \"aria-haspopup\": \"listbox\",\n \"aria-invalid\": invalid,\n \"aria-labelledby\": domIds.label(scope),\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"control\",\n \"data-placeholder-shown\": booleanDataAttr(\n !computed(\"hasSelectedItems\"),\n ),\n \"data-placement\": currentPlacement,\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n \"data-state\": open ? \"open\" : \"closed\",\n dir: prop(\"dir\"),\n disabled,\n id: domIds.control(scope),\n onBlur() {\n send({type: \"TRIGGER.BLUR\"})\n },\n onClick(event) {\n if (!interactive) {\n return\n }\n if (event.defaultPrevented) {\n return\n }\n send({type: \"TRIGGER.CLICK\"})\n },\n onFocus() {\n send({type: \"TRIGGER.FOCUS\"})\n },\n onKeyDown(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!interactive) {\n return\n }\n\n const keyMap: EventKeyMap = {\n ArrowDown(event) {\n if (event.altKey) {\n send({type: \"OPEN\"})\n } else {\n send({type: \"TRIGGER.ARROW_DOWN\"})\n }\n },\n ArrowLeft() {\n send({type: \"TRIGGER.ARROW_LEFT\"})\n },\n ArrowRight() {\n send({type: \"TRIGGER.ARROW_RIGHT\"})\n },\n ArrowUp() {\n send({type: \"TRIGGER.ARROW_UP\"})\n },\n End() {\n send({type: \"TRIGGER.END\"})\n },\n Enter() {\n send({type: \"TRIGGER.ENTER\"})\n },\n Home() {\n send({type: \"TRIGGER.HOME\"})\n },\n Space(event) {\n if (isTypingAhead) {\n send({type: \"TRIGGER.TYPEAHEAD\", value: event.key})\n } else {\n send({type: \"TRIGGER.ENTER\"})\n }\n },\n }\n\n const exec =\n keyMap[\n getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: \"vertical\",\n })\n ]\n\n if (exec) {\n exec(event)\n event.preventDefault()\n return\n }\n\n if (getByTypeahead.isValidEvent(event)) {\n send({type: \"TRIGGER.TYPEAHEAD\", value: event.key})\n event.preventDefault()\n }\n },\n role: \"combobox\",\n tabIndex: disabled ? -1 : 0,\n })\n },\n\n getErrorIndicatorBindings(): SelectErrorIndicatorBindings {\n return normalize.element({\n \"aria-label\": \"Error\",\n \"data-part\": \"error-indicator\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n hidden: !prop(\"invalid\"),\n })\n },\n\n getErrorTextBindings(props: IdRegistrationProps): SelectErrorTextBindings {\n scope.ids.register(\"errorText\", props)\n return normalize.element({\n \"aria-live\": \"polite\",\n \"data-part\": \"error-text\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n hidden: !invalid,\n id: domIds.errorText(scope),\n })\n },\n\n getHiddenSelectBindings(props) {\n scope.ids.register(\"hiddenSelect\", props)\n const value = context.get(\"value\")\n const defaultValue = prop(\"multiple\") ? value : value?.[0]\n return normalize.select({\n \"aria-hidden\": true,\n \"aria-labelledby\": domIds.label(scope),\n \"data-part\": \"hidden-select\",\n \"data-scope\": \"select\",\n defaultValue,\n dir: prop(\"dir\"),\n disabled,\n form: prop(\"form\"),\n id: domIds.hiddenSelect(scope),\n multiple: prop(\"multiple\"),\n name: prop(\"name\"),\n // Some browser extensions will focus the hidden select.\n // Let's forward the focus to the trigger.\n onFocus() {\n domEls.control(scope)?.focus({preventScroll: true})\n },\n required: !!prop(\"required\"),\n style: visuallyHiddenStyle,\n tabIndex: -1,\n })\n },\n\n getHintBindings(props: IdRegistrationProps): SelectHintBindings {\n scope.ids.register(\"hint\", props)\n return normalize.element({\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-part\": \"hint\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.hint(scope),\n })\n },\n\n getIndicatorBindings() {\n return normalize.element({\n \"aria-hidden\": true,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"indicator\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n \"data-state\": open ? \"open\" : \"closed\",\n dir: prop(\"dir\"),\n })\n },\n\n getItemBindings(props: ItemState): SelectItemBindings {\n return normalize.element({\n \"aria-disabled\": booleanAriaAttr(props.disabled),\n \"aria-selected\": props.selected,\n \"data-disabled\": booleanDataAttr(props.disabled),\n \"data-highlighted\": booleanDataAttr(props.highlighted),\n \"data-part\": \"item\",\n \"data-scope\": \"select\",\n \"data-state\": props.selected ? \"checked\" : \"unchecked\",\n \"data-value\": props.value,\n dir: prop(\"dir\"),\n id: domIds.item(scope, props.value),\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (props.disabled) {\n return\n }\n send({src: \"pointerup\", type: \"ITEM.CLICK\", value: props.value})\n },\n onPointerLeave(event) {\n if (props.disabled) {\n return\n }\n if (props.persistFocus) {\n return\n }\n if (event.pointerType !== \"mouse\") {\n return\n }\n\n const pointerMoved = machine?.event\n ?.previous()\n ?.type?.includes(\"POINTER\")\n if (!pointerMoved) {\n return\n }\n send({type: \"ITEM.POINTER_LEAVE\"})\n },\n onPointerMove(event) {\n if (props.disabled || event.pointerType !== \"mouse\") {\n return\n }\n if (props.value === highlightedValue) {\n return\n }\n send({type: \"ITEM.POINTER_MOVE\", value: props.value})\n },\n role: \"option\",\n })\n },\n\n getItemGroupBindings({id}): SelectItemGroupBindings {\n return normalize.element({\n \"aria-labelledby\": domIds.itemGroupLabel(scope, id),\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-part\": \"item-group\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.itemGroup(scope, id),\n role: \"group\",\n })\n },\n\n getItemGroupLabelBindings({htmlFor}) {\n return normalize.element({\n \"data-part\": \"item-group-label\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.itemGroupLabel(scope, htmlFor),\n role: \"presentation\",\n })\n },\n\n getItemIndicatorBindings(props: ItemState): SelectItemIndicatorBindings {\n return normalize.element({\n \"aria-hidden\": true,\n \"data-part\": \"item-indicator\",\n \"data-scope\": \"select\",\n \"data-state\": props.selected ? \"checked\" : \"unchecked\",\n dir: prop(\"dir\"),\n hidden: !props.selected,\n })\n },\n\n getItemTextBindings(props: ItemState): SelectItemTextBindings {\n return normalize.element({\n \"data-disabled\": booleanDataAttr(props.disabled),\n \"data-highlighted\": booleanDataAttr(props.highlighted),\n \"data-part\": \"item-text\",\n \"data-scope\": \"select\",\n \"data-state\": props.selected ? \"checked\" : \"unchecked\",\n dir: prop(\"dir\"),\n })\n },\n\n getLabelBindings(props) {\n scope.ids.register(\"label\", props)\n return normalize.label({\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"label\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n /**\n * the content element will not have rendered on SSR when this first\n * executes. It is immediately resolved on CSR. The impact to accessibility\n * is minimal and quickly corrected.\n */\n htmlFor: domIds.hiddenSelect(scope),\n id: domIds.label(scope),\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (disabled) {\n return\n }\n domEls.control(scope)?.focus({preventScroll: true})\n },\n })\n },\n\n getPositionerBindings(props) {\n scope.ids.register(\"positioner\", props)\n return normalize.element({\n \"data-part\": \"positioner\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.positioner(scope),\n style: popperStyles.floating,\n })\n },\n\n getRootBindings(props): SelectRootBindings {\n scope.ids.register(\"root\", props)\n return normalize.element({\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"root\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.root(scope),\n })\n },\n\n getValueTextBindings() {\n return normalize.element({\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focus\": booleanDataAttr(focused),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-multiple\": booleanDataAttr(prop(\"multiple\")),\n \"data-part\": \"value-text\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n })\n },\n }\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ScopeDomElements, ScopeDomIds} from \"@qualcomm-ui/utils/machine\"\n\nimport type {SelectElementIds, SelectScope} from \"../select.types\"\n\nexport const domIds: ScopeDomIds<SelectElementIds, SelectScope> & {\n itemGroup: (scope: SelectScope, id: string | number) => string\n} = {\n clearTrigger: (scope) => scope.ids.get(\"clearTrigger\"),\n content: (scope) => scope.ids.get(\"content\"),\n control: (scope) => scope.ids.get(\"control\"),\n errorText: (scope) => scope.ids.get(\"errorText\"),\n hiddenSelect: (scope) => scope.ids.get(\"hiddenSelect\"),\n hint: (scope) => scope.ids.get(\"hint\"),\n item: (scope, id) => `${scope.ids.get(\"root\")}-item-${id}`,\n itemGroup: (scope, id) => `${scope.ids.get(\"root\")}-item-group-${id}`,\n itemGroupLabel: (scope, id) =>\n `${scope.ids.get(\"root\")}-item-group-label-${id}`,\n label: (scope) => scope.ids.get(\"label\"),\n positioner: (scope) => scope.ids.get(\"positioner\"),\n root: (scope) => scope.ids.get(\"root\"),\n}\n\nexport const domEls: ScopeDomElements<\n Omit<SelectElementIds, \"itemGroup\" | \"itemGroupLabel\" | \"hiddenSelect\">,\n SelectScope\n> & {\n hiddenSelect: (scope: SelectScope) => HTMLSelectElement | null\n} = {\n clearTrigger: (scope) => scope.getById(domIds.clearTrigger(scope)),\n content: (scope) => scope.getById(domIds.content(scope)),\n control: (scope) => scope.getById(domIds.control(scope)),\n errorText: (scope) => scope.getById(domIds.errorText(scope)),\n hiddenSelect: (scope) => scope.getById(domIds.hiddenSelect(scope)),\n hint: (scope) => scope.getById(domIds.hint(scope)),\n item: (scope, id) => scope.getById(domIds.item?.(scope, id)),\n label: (scope) => scope.getById(domIds.label?.(scope)),\n positioner: (scope) => scope.getById(domIds.positioner(scope)),\n root: (scope) => scope.getById(domIds.root(scope)),\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type CollectionItem,\n ListCollection,\n type ListCollectionOptions,\n} from \"@qualcomm-ui/utils/collection\"\n\nexport const selectCollection = <T extends CollectionItem = CollectionItem>(\n options: ListCollectionOptions<T>,\n): ListCollection<T> => {\n return new ListCollection<T>(options)\n}\n\nexport const emptyCollection = <\n T extends CollectionItem = CollectionItem,\n>(): ListCollection<T> => {\n return new ListCollection<T>({items: []})\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {trackDismissableElement} from \"@qualcomm-ui/dom/dismissable\"\nimport {getPlacement, type Placement} from \"@qualcomm-ui/dom/floating-ui\"\nimport {trackFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n getByTypeahead,\n getInitialFocus,\n observeAttributes,\n raf,\n scrollIntoView,\n trackFormControl,\n} from \"@qualcomm-ui/dom/query\"\nimport {addOrRemove} from \"@qualcomm-ui/utils/array\"\nimport type {\n CollectionItem,\n ListCollection,\n} from \"@qualcomm-ui/utils/collection\"\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isDefined} from \"@qualcomm-ui/utils/guard\"\nimport {\n createGuards,\n createMachine,\n type MachineConfig,\n} from \"@qualcomm-ui/utils/machine\"\nimport {memo} from \"@qualcomm-ui/utils/memo\"\n\nimport {domEls} from \"./internal\"\nimport {emptyCollection} from \"./select.collection\"\nimport type {HiddenSelectOption, SelectSchema} from \"./select.types\"\n\nconst {and, not, or} = createGuards<SelectSchema>()\n\nfunction isSingleValue(value: unknown): value is string | null {\n return typeof value === \"string\" || value === null\n}\n\nexport const selectMachine: MachineConfig<SelectSchema> =\n createMachine<SelectSchema>({\n actions: {\n clearHighlightedItem({context}) {\n context.set(\"highlightedValue\", null)\n },\n clearItem({context, event}) {\n if (!(\"value\" in event)) {\n return\n }\n context.set(\"value\", (prev) => prev.filter((v) => v !== event.value))\n },\n clearSelectedItems({context}) {\n context.set(\"value\", [])\n },\n dispatchChangeEvent({scope}) {\n queueMicrotask(() => {\n const node = domEls.hiddenSelect(scope)\n if (!node) {\n return\n }\n const win = scope.getWin()\n const changeEvent = new (win as typeof window).Event(\"change\", {\n bubbles: true,\n composed: true,\n })\n node.dispatchEvent(changeEvent)\n })\n },\n focusTriggerEl({scope}, event = {}) {\n if (!restoreFocusFn(event)) {\n return\n }\n raf(() => {\n const element = domEls.control(scope)\n element?.focus({preventScroll: true})\n })\n },\n highlightComputedFirstItem({computed, context, prop}) {\n const collection = prop(\"collection\")\n const value = computed(\"hasSelectedItems\")\n ? collection.sort(context.get(\"value\"))[0]\n : collection.firstValue\n context.set(\"highlightedValue\", value)\n },\n highlightComputedLastItem({computed, context, prop}) {\n const collection = prop(\"collection\")\n const value = computed(\"hasSelectedItems\")\n ? collection.sort(context.get(\"value\"))[0]\n : collection.lastValue\n context.set(\"highlightedValue\", value)\n },\n highlightFirstItem({context, prop}) {\n const value = prop(\"collection\").firstValue\n context.set(\"highlightedValue\", value)\n },\n highlightFirstSelectedItem({computed, context, prop}) {\n if (!computed(\"hasSelectedItems\")) {\n return\n }\n const value = prop(\"collection\").sort(context.get(\"value\"))[0]\n context.set(\"highlightedValue\", value)\n },\n highlightItem({context, event}) {\n if (!(\"value\" in event) || !isSingleValue(event.value)) {\n return\n }\n context.set(\"highlightedValue\", event.value)\n },\n highlightLastItem({context, prop}) {\n const value = prop(\"collection\").lastValue\n context.set(\"highlightedValue\", value)\n },\n highlightMatchingItem({context, event, prop, refs}) {\n if (!(\"key\" in event)) {\n return\n }\n const value = prop(\"collection\").search(event.key, {\n currentValue: context.get(\"highlightedValue\"),\n state: refs.get(\"typeahead\"),\n })\n\n if (value == null) {\n return\n }\n context.set(\"highlightedValue\", value)\n },\n highlightNextItem({context, prop}) {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n // the highlighted value will be null if the user clicks the trigger\n // instead of activating it with the keyboard. The next item in this\n // case is the first item.\n context.set(\"highlightedValue\", prop(\"collection\").firstValue)\n return\n }\n const value = prop(\"collection\").getNextValue(\n highlightedValue,\n 1,\n prop(\"loopFocus\"),\n )\n context.set(\"highlightedValue\", value)\n },\n highlightPreviousItem({context, prop}) {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n // the highlighted value will be null if the user clicks the trigger\n // instead of activating it with the keyboard. The prev item in this\n // case is the last item.\n context.set(\"highlightedValue\", prop(\"collection\").lastValue)\n return\n }\n const value = prop(\"collection\").getPreviousValue(\n highlightedValue,\n 1,\n prop(\"loopFocus\"),\n )\n context.set(\"highlightedValue\", value)\n },\n invokeOnClose: ({prop}) => {\n prop(\"onOpenChange\")?.(false)\n },\n\n invokeOnOpen: ({prop}) => {\n prop(\"onOpenChange\")?.(true)\n },\n\n reposition({context, event, prop, scope}) {\n if (!(\"options\" in event)) {\n return\n }\n getPlacement(\n () => domEls.control(scope),\n () => domEls.positioner(scope),\n {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n },\n )\n },\n\n scrollContentToTop({refs, scope}) {\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n scrollToIndexFn?.({immediate: true, index: 0})\n } else {\n domEls.content(scope)?.scrollTo(0, 0)\n }\n },\n\n selectFirstItem({context, prop}) {\n const value = prop(\"collection\").firstValue\n if (value) {\n context.set(\"value\", [value])\n }\n },\n\n selectHighlightedItem({context, event, prop}) {\n let value =\n \"value\" in event && isSingleValue(event.value) && event.value\n ? event.value\n : context.get(\"highlightedValue\")\n if (value == null) {\n return\n }\n\n prop(\"onSelect\")?.(value)\n\n const nullable =\n prop(\"deselectable\") &&\n !prop(\"multiple\") &&\n context.get(\"value\").includes(value)\n value = nullable ? null : value\n context.set(\"value\", (prev) => {\n if (value == null) {\n return []\n }\n if (prop(\"multiple\")) {\n return addOrRemove(prev, value)\n }\n return [value]\n })\n },\n\n selectItem({context, event, prop}) {\n if (!(\"value\" in event) || typeof event.value !== \"string\") {\n return\n }\n prop(\"onSelect\")?.(event.value)\n\n const nullable =\n prop(\"deselectable\") &&\n !prop(\"multiple\") &&\n context.get(\"value\").includes(event.value)\n const nextValue = nullable ? null : event.value\n context.set(\"value\", (prev) => {\n if (nextValue == null) {\n return []\n }\n if (prop(\"multiple\")) {\n return addOrRemove(prev, nextValue)\n }\n return [nextValue]\n })\n },\n\n selectLastItem({context, prop}) {\n const value = prop(\"collection\").lastValue\n if (value) {\n context.set(\"value\", [value])\n }\n },\n\n selectMatchingItem({context, event, prop, refs}) {\n if (!(\"key\" in event)) {\n return\n }\n const value = prop(\"collection\").search(event.key, {\n currentValue: context.get(\"value\")[0],\n state: refs.get(\"typeahead\"),\n })\n if (value == null) {\n return\n }\n context.set(\"value\", [value])\n },\n\n selectPreviousItem({context, prop}) {\n const [firstItem] = context.get(\"value\")\n const value = prop(\"collection\").getPreviousValue(firstItem)\n if (value) {\n context.set(\"value\", [value])\n }\n },\n\n setHighlightedItem({context, event}) {\n if (\"value\" in event && isSingleValue(event.value)) {\n context.set(\"highlightedValue\", event.value)\n }\n },\n\n setInitialFocus({scope}) {\n raf(() => {\n const element = getInitialFocus({\n root: domEls.content(scope),\n })\n element?.focus({preventScroll: true})\n })\n },\n\n setSelectedItems({context, event}) {\n if (\"value\" in event && Array.isArray(event.value)) {\n context.set(\"value\", event.value)\n }\n },\n\n syncCollection({context, prop}) {\n const collection = prop(\"collection\")\n\n const highlightedItem = collection.find(context.get(\"highlightedValue\"))\n if (highlightedItem) {\n context.set(\"highlightedItem\", highlightedItem, null)\n }\n\n const selectedItems = collection.findMany(context.get(\"value\"))\n context.set(\"selectedItems\", selectedItems)\n\n const valueAsString = collection.stringifyItems(selectedItems)\n context.set(\"valueAsString\", valueAsString)\n },\n\n syncHighlightedItem({context, prop}) {\n const collection = prop(\"collection\")\n const highlightedValue = context.get(\"highlightedValue\")\n const highlightedItem = highlightedValue\n ? collection.find(highlightedValue)\n : null\n context.set(\"highlightedItem\", highlightedItem, null)\n },\n\n syncSelectedItems({context, prop}) {\n const collection = prop(\"collection\")\n const prevSelectedItems = context.get(\"selectedItems\")\n\n const value = context.get(\"value\")\n const selectedItems = value.map((value) => {\n const item = prevSelectedItems.find(\n (item) => collection.getItemValue(item) === value,\n )\n return item || collection.find(value)\n })\n\n context.set(\"selectedItems\", selectedItems)\n context.set(\"valueAsString\", collection.stringifyItems(selectedItems))\n },\n\n syncSelectElement({context, prop, scope}) {\n const selectEl = domEls.hiddenSelect(scope)\n if (!selectEl) {\n return\n }\n\n if (context.get(\"value\")?.length === 0 && !prop(\"multiple\")) {\n selectEl.selectedIndex = -1\n return\n }\n\n for (const option of selectEl.options) {\n option.selected = context.get(\"value\").includes(option.value)\n }\n },\n\n toggleVisibility: ({event, prop, send}) => {\n send({\n restoreFocus:\n \"restoreFocus\" in event ? event.restoreFocus : undefined,\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n })\n },\n },\n\n computed: {\n hasSelectedItems: ({context}) => (context.get(\"value\")?.length ?? 0) > 0,\n hiddenSelectOptions: memo(\n ({prop}): [ListCollection] => [prop(\"collection\")],\n (collection) => {\n return collection.items\n .map((item) => {\n return {\n disabled: collection.getItemDisabled(item),\n label: collection.stringifyItem(item),\n value: collection.getItemValue(item),\n }\n })\n .filter(\n (option): option is HiddenSelectOption =>\n option.label !== null && option.value !== null,\n )\n },\n ),\n isDisabled: ({context, prop}) =>\n prop(\"disabled\") || context.get(\"fieldsetDisabled\"),\n isEmpty: ({context}) => !context.get(\"value\")?.length,\n isInteractive: ({prop}) => !(prop(\"disabled\") || prop(\"readOnly\")),\n isTypingAhead: ({refs}) => refs.get(\"typeahead\").keysSoFar !== \"\",\n },\n\n context({bindable, prop}) {\n return {\n currentPlacement: bindable<Placement | undefined>(() => ({\n defaultValue: undefined,\n })),\n fieldsetDisabled: bindable<boolean>(() => ({\n defaultValue: false,\n })),\n highlightedItem: bindable<CollectionItem | null>(() => ({\n defaultValue: null,\n })),\n highlightedValue: bindable(() => ({\n defaultValue: prop(\"defaultHighlightedValue\"),\n isEqual,\n onChange(highlightedValue) {\n prop(\"onHighlightChange\")?.(highlightedValue, {\n highlightedIndex: prop(\"collection\").indexOf(highlightedValue),\n highlightedItem: prop(\"collection\").find(highlightedValue),\n })\n },\n value: prop(\"highlightedValue\"),\n })),\n selectedItems: bindable<CollectionItem[]>(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? []\n const items = prop(\"collection\").findMany(value)\n return {defaultValue: items, isEqual}\n }),\n value: bindable<string[]>(() => ({\n defaultValue: prop(\"defaultValue\"),\n onChange(value) {\n const items = prop(\"collection\").findMany(value ?? [])\n return prop(\"onValueChange\")?.(value ?? [], {items})\n },\n value: prop(\"value\"),\n })),\n valueAsString: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? []\n return {\n defaultValue: prop(\"collection\").stringifyMany(value),\n isEqual,\n }\n }),\n }\n },\n\n effects: {\n computePlacement({context, prop, scope}) {\n const positioning = prop(\"positioning\")\n context.set(\"currentPlacement\", positioning.placement)\n const triggerEl = () => domEls.control(scope)\n const positionerEl = () => domEls.positioner(scope)\n return getPlacement(triggerEl, positionerEl, {\n defer: true,\n ...positioning,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n })\n },\n\n scrollToHighlightedItem({context, event, prop, refs, scope}) {\n const exec = (immediate: boolean) => {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n return\n }\n\n // don't scroll into view if we're using the pointer\n if (event.current().type?.includes(\"POINTER\")) {\n return\n }\n\n const optionEl = domEls.item(scope, highlightedValue)\n const contentEl = domEls.content(scope)\n\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const highlightedIndex =\n prop(\"collection\").indexOf(highlightedValue)\n scrollToIndexFn?.({immediate, index: highlightedIndex})\n return\n }\n\n scrollIntoView(optionEl, {block: \"nearest\", rootEl: contentEl})\n }\n\n raf(() => exec(true))\n\n const contentEl = () => domEls.content(scope)\n return observeAttributes(contentEl, {\n attributes: [\"data-activedescendant\"],\n callback() {\n exec(false)\n },\n defer: true,\n })\n },\n\n trackDismissableElement({prop, scope, send}) {\n const contentEl = () => domEls.content(scope)\n let restoreFocus = true\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: () => [domEls.control(scope), domEls.clearTrigger(scope)],\n onDismiss() {\n send({restoreFocus, src: \"interact-outside\", type: \"CLOSE\"})\n },\n onFocusOutside: prop(\"onFocusOutside\"),\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event)\n restoreFocus = !(event.detail.focusable || event.detail.contextmenu)\n },\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n warnOnMissingNode: false,\n })\n },\n\n trackFocusVisible({scope}) {\n return trackFocusVisible({root: scope.getRootNode?.()})\n },\n\n trackFormControlState({context, scope}) {\n raf(() => {\n trackFormControl(domEls.hiddenSelect(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled)\n },\n onFormReset() {\n const value = context.initial(\"value\")\n context.set(\"value\", value ?? [])\n },\n })\n })\n },\n },\n\n guards: {\n canHighlightNextItem: ({guard, prop}) => {\n return (\n !guard(\"hasHighlightedItem\") ||\n prop(\"loopFocus\") ||\n !guard(\"isLastItemHighlighted\")\n )\n },\n canHighlightPreviousItem: ({guard, prop}) => {\n return (\n !guard(\"hasHighlightedItem\") ||\n prop(\"loopFocus\") ||\n !guard(\"isFirstItemHighlighted\")\n )\n },\n closeOnSelect: ({prop}) => prop(\"closeOnSelect\"),\n hasHighlightedItem: ({context}) => {\n return context.get(\"highlightedValue\") != null\n },\n hasSelectedItems: ({computed}) => computed(\"hasSelectedItems\"),\n isFirstItemHighlighted: ({context, prop}) =>\n context.get(\"highlightedValue\") === prop(\"collection\").firstValue,\n isLastItemHighlighted: ({context, prop}) =>\n context.get(\"highlightedValue\") === prop(\"collection\").lastValue,\n isOpenControlled: ({prop}) => isDefined(prop(\"open\")),\n isTriggerArrowDownEvent: ({event}) =>\n event.previous().type === \"TRIGGER.ARROW_DOWN\",\n isTriggerArrowUpEvent: ({event}) =>\n event.previous().type === \"TRIGGER.ARROW_UP\",\n isTriggerClickEvent: ({event}) =>\n event.previous().type === \"TRIGGER.CLICK\",\n isTriggerEnterEvent: ({event}) =>\n event.previous().type === \"TRIGGER.ENTER\",\n loop: ({prop}) => prop(\"loopFocus\"),\n multiple: ({prop}) => prop(\"multiple\"),\n restoreFocus: ({event}) => restoreFocusFn(event),\n },\n\n ids: ({bindableId, ids}) => {\n return {\n clearTrigger: bindableId(ids?.clearTrigger),\n content: bindableId(ids?.content),\n control: bindableId(ids?.control),\n errorText: bindableId(ids?.errorText),\n hiddenSelect: bindableId(ids?.hiddenSelect),\n hint: bindableId(ids?.hint),\n item: bindableId<(id: string | number) => string>(),\n itemGroup: bindableId<(id: string | number) => string>(),\n itemGroupLabel: bindableId<(id: string | number) => string>(),\n label: bindableId(ids?.label),\n positioner: bindableId(ids?.positioner),\n root: bindableId(ids?.root),\n }\n },\n\n initialState({prop}) {\n const open = prop(\"open\") || prop(\"defaultOpen\")\n return open ? \"open\" : \"idle\"\n },\n\n on: {\n \"CLEAR.CLICK\": {\n actions: [\"clearSelectedItems\", \"focusTriggerEl\"],\n },\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedItem\"],\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"],\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"],\n },\n \"VALUE.CLEAR\": {\n actions: [\"clearSelectedItems\"],\n },\n \"VALUE.SET\": {\n actions: [\"setSelectedItems\"],\n },\n },\n\n onInit: {\n effects: [\"trackFormControlState\", \"trackFocusVisible\"],\n },\n\n props({props}) {\n return {\n closeOnSelect: !props.multiple,\n defaultValue: [],\n dir: \"ltr\",\n loopFocus: false,\n multiple: false,\n placeholder: \"Select an option\",\n ...props,\n collection: props.collection ?? emptyCollection(),\n positioning: {\n gutter: 2,\n placement: \"bottom-start\",\n sameWidth: true,\n ...props.positioning,\n },\n }\n },\n\n refs: ({prop}) => {\n return {\n scrollToIndexFn: prop(\"scrollToIndexFn\"),\n typeahead: {...getByTypeahead.defaultOptions},\n }\n },\n\n states: {\n focused: {\n on: {\n \"CONTROLLED.OPEN\": [\n {\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"],\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\", \"highlightComputedLastItem\"],\n guard: \"isTriggerArrowUpEvent\",\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\", \"highlightComputedFirstItem\"],\n guard: or(\"isTriggerArrowDownEvent\", \"isTriggerEnterEvent\"),\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\"],\n target: \"open\",\n },\n ],\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"setInitialFocus\", \"invokeOnOpen\"],\n target: \"open\",\n },\n ],\n \"TRIGGER.ARROW_DOWN\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightComputedFirstItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.ARROW_LEFT\": [\n {\n actions: [\"selectPreviousItem\"],\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n },\n {\n actions: [\"selectLastItem\"],\n guard: not(\"multiple\"),\n },\n ],\n \"TRIGGER.ARROW_UP\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightComputedLastItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.BLUR\": {\n target: \"idle\",\n },\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightFirstSelectedItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.END\": {\n actions: [\"selectLastItem\"],\n guard: not(\"multiple\"),\n },\n \"TRIGGER.ENTER\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightComputedFirstItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.HOME\": {\n actions: [\"selectFirstItem\"],\n guard: not(\"multiple\"),\n },\n \"TRIGGER.TYPEAHEAD\": {\n actions: [\"selectMatchingItem\"],\n guard: not(\"multiple\"),\n },\n },\n tags: [\"closed\"],\n },\n idle: {\n on: {\n \"CONTROLLED.OPEN\": [\n {\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"],\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\"],\n target: \"open\",\n },\n ],\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"setInitialFocus\", \"invokeOnOpen\"],\n target: \"open\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"invokeOnOpen\",\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.FOCUS\": {\n target: \"focused\",\n },\n },\n tags: [\"closed\"],\n },\n open: {\n effects: [\n \"trackDismissableElement\",\n \"computePlacement\",\n \"scrollToHighlightedItem\",\n ],\n exit: [\"scrollContentToTop\"],\n on: {\n CLOSE: [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"invokeOnClose\",\n \"focusTriggerEl\",\n \"clearHighlightedItem\",\n ],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"],\n target: \"idle\",\n },\n ],\n \"CONTENT.ARROW_DOWN\": [\n {\n actions: [\"highlightFirstItem\"],\n guard: and(\"hasHighlightedItem\", \"loop\", \"isLastItemHighlighted\"),\n },\n {\n actions: [\"highlightNextItem\"],\n guard: \"canHighlightNextItem\",\n },\n ],\n \"CONTENT.ARROW_UP\": [\n {\n actions: [\"highlightLastItem\"],\n guard: and(\n \"hasHighlightedItem\",\n \"loop\",\n \"isFirstItemHighlighted\",\n ),\n },\n {\n actions: [\"highlightPreviousItem\"],\n guard: \"canHighlightPreviousItem\",\n },\n ],\n \"CONTENT.END\": {\n actions: [\"highlightLastItem\"],\n },\n \"CONTENT.HOME\": {\n actions: [\"highlightFirstItem\"],\n },\n \"CONTENT.TYPEAHEAD\": {\n actions: [\"highlightMatchingItem\"],\n },\n \"CONTROLLED.CLOSE\": [\n {\n actions: [\"focusTriggerEl\", \"clearHighlightedItem\"],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n actions: [\"clearHighlightedItem\"],\n target: \"idle\",\n },\n ],\n \"ITEM.CLICK\": [\n {\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"],\n guard: and(\"closeOnSelect\", \"isOpenControlled\"),\n },\n {\n actions: [\n \"selectHighlightedItem\",\n \"invokeOnClose\",\n \"focusTriggerEl\",\n \"clearHighlightedItem\",\n ],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectHighlightedItem\"],\n },\n ],\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedItem\"],\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"highlightItem\"],\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"],\n },\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"],\n target: \"focused\",\n },\n ],\n \"TRIGGER.TAB\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"invokeOnClose\",\n \"clearHighlightedItem\",\n \"focusTriggerEl\",\n ],\n target: \"focused\",\n },\n ],\n },\n tags: [\"open\"],\n },\n },\n\n watch({action, context, prop, track}) {\n track([() => context.get(\"value\")?.toString()], () => {\n action([\n \"syncSelectedItems\",\n \"syncSelectElement\",\n \"dispatchChangeEvent\",\n ])\n })\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"])\n })\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\"])\n })\n track([() => prop(\"collection\").toString()], () => {\n action([\"syncCollection\"])\n })\n },\n })\n\nfunction restoreFocusFn(event: Record<string, any>) {\n const v = event.restoreFocus ?? event.previousEvent?.restoreFocus\n return v == null || !!v\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createProps, createSplitProps} from \"@qualcomm-ui/utils/object\"\n\nimport type {SelectApiProps} from \"./select.types\"\n\nconst selectProps: (keyof SelectApiProps)[] = createProps<SelectApiProps>()(\n \"closeOnSelect\",\n \"collection\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"deselectable\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"onValueChange\",\n \"open\",\n \"placeholder\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"value\",\n)\n\nexport const splitSelectProps: <Props extends SelectApiProps>(\n props: Props,\n) => [SelectApiProps, Omit<Props, keyof SelectApiProps>] =\n createSplitProps<SelectApiProps>(selectProps)\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n getPlacementStyles,\n type PositioningOptions,\n} from \"@qualcomm-ui/dom/floating-ui\"\nimport {isFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n getByTypeahead,\n getEventKey,\n getEventTarget,\n isEditableElement,\n isSelfTarget,\n visuallyHiddenStyle,\n} from \"@qualcomm-ui/dom/query\"\nimport {booleanAriaAttr, booleanDataAttr} from \"@qualcomm-ui/utils/attributes\"\nimport {ensure} from \"@qualcomm-ui/utils/guard\"\nimport type {\n EventKeyMap,\n IdRegistrationProps,\n Machine,\n PropNormalizer,\n} from \"@qualcomm-ui/utils/machine\"\n\nimport {domEls, domIds} from \"./internal\"\nimport type {\n ItemProps,\n ItemState,\n ScrollToIndexFn,\n SelectApi,\n SelectClearTriggerBindings,\n SelectControlBindings,\n SelectErrorIndicatorBindings,\n SelectErrorTextBindings,\n SelectHintBindings,\n SelectItemBindings,\n SelectItemGroupBindings,\n SelectItemIndicatorBindings,\n SelectItemTextBindings,\n SelectRootBindings,\n SelectSchema,\n SelectValueTextBindings,\n} from \"./select.types\"\n\nexport function createSelectApi(\n machine: Machine<SelectSchema>,\n normalize: PropNormalizer,\n): SelectApi {\n const {computed, context, prop, refs, scope, send, state} = machine\n\n const disabled = prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n const invalid = prop(\"invalid\")\n const readOnly = prop(\"readOnly\")\n const collection = prop(\"collection\")\n\n const open = state.hasTag(\"open\")\n const focused = state.matches(\"focused\")\n\n const highlightedValue = context.get(\"highlightedValue\")\n const highlightedItem = context.get(\"highlightedItem\")\n const selectedItems = context.get(\"selectedItems\")\n const currentPlacement = context.get(\"currentPlacement\")\n\n const isTypingAhead = computed(\"isTypingAhead\")\n const interactive = computed(\"isInteractive\")\n\n const ariaActiveDescendant =\n (highlightedValue && domIds.item?.(scope, highlightedValue)) || undefined\n\n function getItemState(props: ItemProps): ItemState {\n const _disabled = collection.getItemDisabled(props.item)\n const value = collection.getItemValue(props.item)\n ensure(\n value,\n () =>\n `[@qualcomm-ui/core] No value found for item ${JSON.stringify(props.item)}`,\n )\n return {\n disabled: Boolean(disabled || _disabled),\n highlighted: highlightedValue === value,\n persistFocus: props.persistFocus,\n selected: context.get(\"value\")?.includes(value) || false,\n value,\n }\n }\n\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement,\n })\n\n return {\n clearValue(value) {\n send({type: \"ITEM.CLEAR\", value})\n },\n collection,\n disabled,\n empty: computed(\"isEmpty\"),\n focus() {\n domEls.control(scope)?.focus({preventScroll: true})\n },\n focused,\n getItemState,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n hiddenSelectOptions: [],\n highlightedItem,\n highlightedValue,\n highlightValue(value) {\n send({type: \"HIGHLIGHTED_VALUE.SET\", value})\n },\n multiple: prop(\"multiple\"),\n open,\n placeholder: prop(\"placeholder\"),\n reposition(options: Partial<PositioningOptions> = {}) {\n send({options, type: \"POSITIONING.SET\"})\n },\n required: prop(\"required\"),\n selectAll() {\n send({type: \"VALUE.SET\", value: collection.getValues()})\n },\n selectedItems,\n selectValue(value) {\n send({type: \"ITEM.SELECT\", value})\n },\n setOpen(nextOpen) {\n const open = state.hasTag(\"open\")\n if (open === nextOpen) {\n return\n }\n send({type: nextOpen ? \"OPEN\" : \"CLOSE\"})\n },\n setScrollToIndexFn(fn: ScrollToIndexFn) {\n refs.set(\"scrollToIndexFn\", fn)\n },\n setValue(value) {\n send({type: \"VALUE.SET\", value})\n },\n value: context.get(\"value\"),\n valueAsString: context.get(\"valueAsString\"),\n\n // group: prop getters\n getClearTriggerBindings(props): SelectClearTriggerBindings {\n scope.ids.register(\"clearTrigger\", props)\n return normalize.button({\n \"aria-label\": \"Clear value\",\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"clear-trigger\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n disabled,\n hidden: !computed(\"hasSelectedItems\"),\n id: domIds.clearTrigger(scope),\n onClick(event) {\n if (event.defaultPrevented || !interactive) {\n return\n }\n send({type: \"CLEAR.CLICK\"})\n // prevent the same click from reopening the select.\n if (!open) {\n event.stopPropagation()\n }\n },\n type: \"button\",\n })\n },\n\n getContentBindings(props) {\n scope.ids.register(\"content\", props)\n return normalize.element({\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-labelledby\": domIds.label(scope),\n \"aria-multiselectable\": booleanAriaAttr(prop(\"multiple\")),\n \"data-activedescendant\": ariaActiveDescendant,\n \"data-focus-visible\": booleanDataAttr(isFocusVisible()),\n \"data-part\": \"content\",\n \"data-placement\": currentPlacement,\n \"data-scope\": \"select\",\n \"data-state\": open ? \"open\" : \"closed\",\n dir: prop(\"dir\"),\n hidden: !open,\n id: domIds.content(scope),\n onKeyDown(event) {\n if (!interactive) {\n return\n }\n if (!isSelfTarget(event)) {\n return\n }\n if (event.defaultPrevented) {\n return\n }\n\n const keyMap: EventKeyMap = {\n ArrowDown() {\n send({type: \"CONTENT.ARROW_DOWN\"})\n },\n ArrowUp() {\n send({type: \"CONTENT.ARROW_UP\"})\n },\n End() {\n send({type: \"CONTENT.END\"})\n },\n Enter() {\n send({type: \"ITEM.CLICK\"})\n },\n Home() {\n send({type: \"CONTENT.HOME\"})\n },\n Space() {\n if (isTypingAhead) {\n send({key: event.key, type: \"CONTENT.TYPEAHEAD\"})\n } else {\n keyMap.Enter?.(event)\n }\n },\n Tab() {\n send({type: \"TRIGGER.TAB\"})\n },\n }\n\n const exec = keyMap[getEventKey(event)]\n\n if (exec) {\n exec(event)\n event.preventDefault()\n return\n }\n\n const target = getEventTarget<Element>(event)\n\n if (isEditableElement(target)) {\n return\n }\n\n if (getByTypeahead.isValidEvent(event)) {\n send({key: event.key, type: \"CONTENT.TYPEAHEAD\"})\n event.preventDefault()\n }\n },\n role: \"listbox\",\n tabIndex: 0,\n })\n },\n\n getControlBindings(props): SelectControlBindings {\n scope.ids.register(\"control\", props)\n return normalize.button({\n \"aria-controls\": domIds.content(scope),\n \"aria-expanded\": booleanAriaAttr(open),\n \"aria-haspopup\": \"listbox\",\n \"aria-invalid\": invalid,\n \"aria-labelledby\": domIds.label(scope),\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"control\",\n \"data-placeholder-shown\": booleanDataAttr(\n !computed(\"hasSelectedItems\"),\n ),\n \"data-placement\": currentPlacement,\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n \"data-state\": open ? \"open\" : \"closed\",\n dir: prop(\"dir\"),\n disabled,\n id: domIds.control(scope),\n onBlur() {\n send({type: \"TRIGGER.BLUR\"})\n },\n onClick(event) {\n if (!interactive) {\n return\n }\n if (event.defaultPrevented) {\n return\n }\n send({type: \"TRIGGER.CLICK\"})\n },\n onFocus() {\n send({type: \"TRIGGER.FOCUS\"})\n },\n onKeyDown(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!interactive) {\n return\n }\n\n const keyMap: EventKeyMap = {\n ArrowDown(event) {\n if (event.altKey) {\n send({type: \"OPEN\"})\n } else {\n send({type: \"TRIGGER.ARROW_DOWN\"})\n }\n },\n ArrowLeft() {\n send({type: \"TRIGGER.ARROW_LEFT\"})\n },\n ArrowRight() {\n send({type: \"TRIGGER.ARROW_RIGHT\"})\n },\n ArrowUp() {\n send({type: \"TRIGGER.ARROW_UP\"})\n },\n End() {\n send({type: \"TRIGGER.END\"})\n },\n Enter() {\n send({type: \"TRIGGER.ENTER\"})\n },\n Home() {\n send({type: \"TRIGGER.HOME\"})\n },\n Space(event) {\n if (isTypingAhead) {\n send({type: \"TRIGGER.TYPEAHEAD\", value: event.key})\n } else {\n send({type: \"TRIGGER.ENTER\"})\n }\n },\n }\n\n const exec =\n keyMap[\n getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: \"vertical\",\n })\n ]\n\n if (exec) {\n exec(event)\n event.preventDefault()\n return\n }\n\n if (getByTypeahead.isValidEvent(event)) {\n send({type: \"TRIGGER.TYPEAHEAD\", value: event.key})\n event.preventDefault()\n }\n },\n role: \"combobox\",\n tabIndex: disabled ? -1 : 0,\n })\n },\n\n getErrorIndicatorBindings(): SelectErrorIndicatorBindings {\n return normalize.element({\n \"aria-label\": \"Error\",\n \"data-part\": \"error-indicator\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n hidden: !prop(\"invalid\"),\n })\n },\n\n getErrorTextBindings(props: IdRegistrationProps): SelectErrorTextBindings {\n scope.ids.register(\"errorText\", props)\n return normalize.element({\n \"aria-live\": \"polite\",\n \"data-part\": \"error-text\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n hidden: !invalid,\n id: domIds.errorText(scope),\n })\n },\n\n getHiddenSelectBindings(props) {\n scope.ids.register(\"hiddenSelect\", props)\n const value = context.get(\"value\")\n const defaultValue = prop(\"multiple\") ? value : value?.[0]\n return normalize.select({\n \"aria-hidden\": true,\n \"aria-labelledby\": domIds.label(scope),\n \"data-part\": \"hidden-select\",\n \"data-scope\": \"select\",\n defaultValue,\n dir: prop(\"dir\"),\n disabled,\n form: prop(\"form\"),\n id: domIds.hiddenSelect(scope),\n multiple: prop(\"multiple\"),\n name: prop(\"name\"),\n // Some browser extensions will focus the hidden select.\n // Let's forward the focus to the trigger.\n onFocus() {\n domEls.control(scope)?.focus({preventScroll: true})\n },\n required: !!prop(\"required\"),\n style: visuallyHiddenStyle,\n tabIndex: -1,\n })\n },\n\n getHintBindings(props: IdRegistrationProps): SelectHintBindings {\n scope.ids.register(\"hint\", props)\n return normalize.element({\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-part\": \"hint\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.hint(scope),\n })\n },\n\n getIndicatorBindings() {\n return normalize.element({\n \"aria-hidden\": true,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"indicator\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n \"data-state\": open ? \"open\" : \"closed\",\n dir: prop(\"dir\"),\n })\n },\n\n getItemBindings(props: ItemState): SelectItemBindings {\n return normalize.element({\n \"aria-disabled\": booleanAriaAttr(props.disabled),\n \"aria-selected\": props.selected,\n \"data-disabled\": booleanDataAttr(props.disabled),\n \"data-highlighted\": booleanDataAttr(props.highlighted),\n \"data-part\": \"item\",\n \"data-scope\": \"select\",\n \"data-state\": props.selected ? \"checked\" : \"unchecked\",\n \"data-value\": props.value,\n dir: prop(\"dir\"),\n id: domIds.item(scope, props.value),\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (props.disabled) {\n return\n }\n send({src: \"pointerup\", type: \"ITEM.CLICK\", value: props.value})\n },\n onPointerLeave(event) {\n if (props.disabled) {\n return\n }\n if (props.persistFocus) {\n return\n }\n if (event.pointerType !== \"mouse\") {\n return\n }\n\n const pointerMoved = machine?.event\n ?.previous()\n ?.type?.includes(\"POINTER\")\n if (!pointerMoved) {\n return\n }\n send({type: \"ITEM.POINTER_LEAVE\"})\n },\n onPointerMove(event) {\n if (props.disabled || event.pointerType !== \"mouse\") {\n return\n }\n if (props.value === highlightedValue) {\n return\n }\n send({type: \"ITEM.POINTER_MOVE\", value: props.value})\n },\n role: \"option\",\n })\n },\n\n getItemGroupBindings({id}): SelectItemGroupBindings {\n return normalize.element({\n \"aria-labelledby\": domIds.itemGroupLabel(scope, id),\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-part\": \"item-group\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.itemGroup(scope, id),\n role: \"group\",\n })\n },\n\n getItemGroupLabelBindings({htmlFor}) {\n return normalize.element({\n \"data-part\": \"item-group-label\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.itemGroupLabel(scope, htmlFor),\n role: \"presentation\",\n })\n },\n\n getItemIndicatorBindings(props: ItemState): SelectItemIndicatorBindings {\n return normalize.element({\n \"aria-hidden\": true,\n \"data-part\": \"item-indicator\",\n \"data-scope\": \"select\",\n \"data-state\": props.selected ? \"checked\" : \"unchecked\",\n dir: prop(\"dir\"),\n hidden: !props.selected,\n })\n },\n\n getItemTextBindings(props: ItemState): SelectItemTextBindings {\n return normalize.element({\n \"data-disabled\": booleanDataAttr(props.disabled),\n \"data-highlighted\": booleanDataAttr(props.highlighted),\n \"data-part\": \"item-text\",\n \"data-scope\": \"select\",\n \"data-state\": props.selected ? \"checked\" : \"unchecked\",\n dir: prop(\"dir\"),\n })\n },\n\n getLabelBindings(props) {\n scope.ids.register(\"label\", props)\n return normalize.label({\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"label\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n /**\n * the content element will not have rendered on SSR when this first\n * executes. It is immediately resolved on CSR. The impact to accessibility\n * is minimal and quickly corrected.\n */\n htmlFor: domIds.hiddenSelect(scope),\n id: domIds.label(scope),\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (disabled) {\n return\n }\n domEls.control(scope)?.focus({preventScroll: true})\n },\n })\n },\n\n getPositionerBindings(props) {\n scope.ids.register(\"positioner\", props)\n return normalize.element({\n \"data-part\": \"positioner\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.positioner(scope),\n style: popperStyles.floating,\n })\n },\n\n getRootBindings(props): SelectRootBindings {\n scope.ids.register(\"root\", props)\n return normalize.element({\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"root\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n id: domIds.root(scope),\n })\n },\n\n getValueTextBindings(): SelectValueTextBindings {\n return normalize.element({\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focus\": booleanDataAttr(focused),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-multiple\": booleanDataAttr(prop(\"multiple\")),\n \"data-part\": \"value-text\",\n \"data-scope\": \"select\",\n dir: prop(\"dir\"),\n })\n },\n }\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ScopeDomElements, ScopeDomIds} from \"@qualcomm-ui/utils/machine\"\n\nimport type {SelectElementIds, SelectScope} from \"../select.types\"\n\nexport const domIds: ScopeDomIds<SelectElementIds, SelectScope> & {\n itemGroup: (scope: SelectScope, id: string | number) => string\n} = {\n clearTrigger: (scope) => scope.ids.get(\"clearTrigger\"),\n content: (scope) => scope.ids.get(\"content\"),\n control: (scope) => scope.ids.get(\"control\"),\n errorText: (scope) => scope.ids.get(\"errorText\"),\n hiddenSelect: (scope) => scope.ids.get(\"hiddenSelect\"),\n hint: (scope) => scope.ids.get(\"hint\"),\n item: (scope, id) => `${scope.ids.get(\"root\")}-item-${id}`,\n itemGroup: (scope, id) => `${scope.ids.get(\"root\")}-item-group-${id}`,\n itemGroupLabel: (scope, id) =>\n `${scope.ids.get(\"root\")}-item-group-label-${id}`,\n label: (scope) => scope.ids.get(\"label\"),\n positioner: (scope) => scope.ids.get(\"positioner\"),\n root: (scope) => scope.ids.get(\"root\"),\n}\n\nexport const domEls: ScopeDomElements<\n Omit<SelectElementIds, \"itemGroup\" | \"itemGroupLabel\" | \"hiddenSelect\">,\n SelectScope\n> & {\n hiddenSelect: (scope: SelectScope) => HTMLSelectElement | null\n} = {\n clearTrigger: (scope) => scope.getById(domIds.clearTrigger(scope)),\n content: (scope) => scope.getById(domIds.content(scope)),\n control: (scope) => scope.getById(domIds.control(scope)),\n errorText: (scope) => scope.getById(domIds.errorText(scope)),\n hiddenSelect: (scope) => scope.getById(domIds.hiddenSelect(scope)),\n hint: (scope) => scope.getById(domIds.hint(scope)),\n item: (scope, id) => scope.getById(domIds.item?.(scope, id)),\n label: (scope) => scope.getById(domIds.label?.(scope)),\n positioner: (scope) => scope.getById(domIds.positioner(scope)),\n root: (scope) => scope.getById(domIds.root(scope)),\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type CollectionItem,\n ListCollection,\n type ListCollectionOptions,\n} from \"@qualcomm-ui/utils/collection\"\n\nexport const selectCollection = <T extends CollectionItem = CollectionItem>(\n options: ListCollectionOptions<T>,\n): ListCollection<T> => {\n return new ListCollection<T>(options)\n}\n\nexport const emptyCollection = <\n T extends CollectionItem = CollectionItem,\n>(): ListCollection<T> => {\n return new ListCollection<T>({items: []})\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {trackDismissableElement} from \"@qualcomm-ui/dom/dismissable\"\nimport {getPlacement, type Placement} from \"@qualcomm-ui/dom/floating-ui\"\nimport {trackFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n getByTypeahead,\n getInitialFocus,\n observeAttributes,\n raf,\n scrollIntoView,\n trackFormControl,\n} from \"@qualcomm-ui/dom/query\"\nimport {addOrRemove} from \"@qualcomm-ui/utils/array\"\nimport type {\n CollectionItem,\n ListCollection,\n} from \"@qualcomm-ui/utils/collection\"\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isDefined} from \"@qualcomm-ui/utils/guard\"\nimport {\n createGuards,\n createMachine,\n type MachineConfig,\n} from \"@qualcomm-ui/utils/machine\"\nimport {memo} from \"@qualcomm-ui/utils/memo\"\n\nimport {domEls} from \"./internal\"\nimport {emptyCollection} from \"./select.collection\"\nimport type {HiddenSelectOption, SelectSchema} from \"./select.types\"\n\nconst {and, not, or} = createGuards<SelectSchema>()\n\nfunction isSingleValue(value: unknown): value is string | null {\n return typeof value === \"string\" || value === null\n}\n\nexport const selectMachine: MachineConfig<SelectSchema> =\n createMachine<SelectSchema>({\n actions: {\n clearHighlightedItem({context}) {\n context.set(\"highlightedValue\", null)\n },\n clearItem({context, event}) {\n if (!(\"value\" in event)) {\n return\n }\n context.set(\"value\", (prev) => prev.filter((v) => v !== event.value))\n },\n clearSelectedItems({context}) {\n context.set(\"value\", [])\n },\n dispatchChangeEvent({scope}) {\n queueMicrotask(() => {\n const node = domEls.hiddenSelect(scope)\n if (!node) {\n return\n }\n const win = scope.getWin()\n const changeEvent = new (win as typeof window).Event(\"change\", {\n bubbles: true,\n composed: true,\n })\n node.dispatchEvent(changeEvent)\n })\n },\n focusTriggerEl({scope}, event = {}) {\n if (!restoreFocusFn(event)) {\n return\n }\n raf(() => {\n const element = domEls.control(scope)\n element?.focus({preventScroll: true})\n })\n },\n highlightComputedFirstItem({computed, context, prop}) {\n const collection = prop(\"collection\")\n const value = computed(\"hasSelectedItems\")\n ? collection.sort(context.get(\"value\"))[0]\n : collection.firstValue\n context.set(\"highlightedValue\", value)\n },\n highlightComputedLastItem({computed, context, prop}) {\n const collection = prop(\"collection\")\n const value = computed(\"hasSelectedItems\")\n ? collection.sort(context.get(\"value\"))[0]\n : collection.lastValue\n context.set(\"highlightedValue\", value)\n },\n highlightFirstItem({context, prop}) {\n const value = prop(\"collection\").firstValue\n context.set(\"highlightedValue\", value)\n },\n highlightFirstSelectedItem({computed, context, prop}) {\n if (!computed(\"hasSelectedItems\")) {\n return\n }\n const value = prop(\"collection\").sort(context.get(\"value\"))[0]\n context.set(\"highlightedValue\", value)\n },\n highlightItem({context, event}) {\n if (!(\"value\" in event) || !isSingleValue(event.value)) {\n return\n }\n context.set(\"highlightedValue\", event.value)\n },\n highlightLastItem({context, prop}) {\n const value = prop(\"collection\").lastValue\n context.set(\"highlightedValue\", value)\n },\n highlightMatchingItem({context, event, prop, refs}) {\n if (!(\"key\" in event)) {\n return\n }\n const value = prop(\"collection\").search(event.key, {\n currentValue: context.get(\"highlightedValue\"),\n state: refs.get(\"typeahead\"),\n })\n\n if (value == null) {\n return\n }\n context.set(\"highlightedValue\", value)\n },\n highlightNextItem({context, prop}) {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n // the highlighted value will be null if the user clicks the trigger\n // instead of activating it with the keyboard. The next item in this\n // case is the first item.\n context.set(\"highlightedValue\", prop(\"collection\").firstValue)\n return\n }\n const value = prop(\"collection\").getNextValue(\n highlightedValue,\n 1,\n prop(\"loopFocus\"),\n )\n context.set(\"highlightedValue\", value)\n },\n highlightPreviousItem({context, prop}) {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n // the highlighted value will be null if the user clicks the trigger\n // instead of activating it with the keyboard. The prev item in this\n // case is the last item.\n context.set(\"highlightedValue\", prop(\"collection\").lastValue)\n return\n }\n const value = prop(\"collection\").getPreviousValue(\n highlightedValue,\n 1,\n prop(\"loopFocus\"),\n )\n context.set(\"highlightedValue\", value)\n },\n invokeOnClose: ({prop}) => {\n prop(\"onOpenChange\")?.(false)\n },\n\n invokeOnOpen: ({prop}) => {\n prop(\"onOpenChange\")?.(true)\n },\n\n reposition({context, event, prop, scope}) {\n if (!(\"options\" in event)) {\n return\n }\n getPlacement(\n () => domEls.control(scope),\n () => domEls.positioner(scope),\n {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n },\n )\n },\n\n scrollContentToTop({refs, scope}) {\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n scrollToIndexFn?.({immediate: true, index: 0})\n } else {\n domEls.content(scope)?.scrollTo(0, 0)\n }\n },\n\n selectFirstItem({context, prop}) {\n const value = prop(\"collection\").firstValue\n if (value) {\n context.set(\"value\", [value])\n }\n },\n\n selectHighlightedItem({context, event, prop}) {\n let value =\n \"value\" in event && isSingleValue(event.value) && event.value\n ? event.value\n : context.get(\"highlightedValue\")\n if (value == null) {\n return\n }\n\n prop(\"onSelect\")?.(value)\n\n const nullable =\n prop(\"deselectable\") &&\n !prop(\"multiple\") &&\n context.get(\"value\").includes(value)\n value = nullable ? null : value\n context.set(\"value\", (prev) => {\n if (value == null) {\n return []\n }\n if (prop(\"multiple\")) {\n return addOrRemove(prev, value)\n }\n return [value]\n })\n },\n\n selectItem({context, event, prop}) {\n if (!(\"value\" in event) || typeof event.value !== \"string\") {\n return\n }\n prop(\"onSelect\")?.(event.value)\n\n const nullable =\n prop(\"deselectable\") &&\n !prop(\"multiple\") &&\n context.get(\"value\").includes(event.value)\n const nextValue = nullable ? null : event.value\n context.set(\"value\", (prev) => {\n if (nextValue == null) {\n return []\n }\n if (prop(\"multiple\")) {\n return addOrRemove(prev, nextValue)\n }\n return [nextValue]\n })\n },\n\n selectLastItem({context, prop}) {\n const value = prop(\"collection\").lastValue\n if (value) {\n context.set(\"value\", [value])\n }\n },\n\n selectMatchingItem({context, event, prop, refs}) {\n if (!(\"key\" in event)) {\n return\n }\n const value = prop(\"collection\").search(event.key, {\n currentValue: context.get(\"value\")[0],\n state: refs.get(\"typeahead\"),\n })\n if (value == null) {\n return\n }\n context.set(\"value\", [value])\n },\n\n selectPreviousItem({context, prop}) {\n const [firstItem] = context.get(\"value\")\n const value = prop(\"collection\").getPreviousValue(firstItem)\n if (value) {\n context.set(\"value\", [value])\n }\n },\n\n setHighlightedItem({context, event}) {\n if (\"value\" in event && isSingleValue(event.value)) {\n context.set(\"highlightedValue\", event.value)\n }\n },\n\n setInitialFocus({scope}) {\n raf(() => {\n const element = getInitialFocus({\n root: domEls.content(scope),\n })\n element?.focus({preventScroll: true})\n })\n },\n\n setSelectedItems({context, event}) {\n if (\"value\" in event && Array.isArray(event.value)) {\n context.set(\"value\", event.value)\n }\n },\n\n syncCollection({context, prop}) {\n const collection = prop(\"collection\")\n\n const highlightedItem = collection.find(context.get(\"highlightedValue\"))\n if (highlightedItem) {\n context.set(\"highlightedItem\", highlightedItem, null)\n }\n\n const selectedItems = collection.findMany(context.get(\"value\"))\n context.set(\"selectedItems\", selectedItems)\n\n const valueAsString = collection.stringifyItems(selectedItems)\n context.set(\"valueAsString\", valueAsString)\n },\n\n syncHighlightedItem({context, prop}) {\n const collection = prop(\"collection\")\n const highlightedValue = context.get(\"highlightedValue\")\n const highlightedItem = highlightedValue\n ? collection.find(highlightedValue)\n : null\n context.set(\"highlightedItem\", highlightedItem, null)\n },\n\n syncSelectedItems({context, prop}) {\n const collection = prop(\"collection\")\n const prevSelectedItems = context.get(\"selectedItems\")\n\n const value = context.get(\"value\")\n const selectedItems = value.map((value) => {\n const item = prevSelectedItems.find(\n (item) => collection.getItemValue(item) === value,\n )\n return item || collection.find(value)\n })\n\n context.set(\"selectedItems\", selectedItems)\n context.set(\"valueAsString\", collection.stringifyItems(selectedItems))\n },\n\n syncSelectElement({context, prop, scope}) {\n const selectEl = domEls.hiddenSelect(scope)\n if (!selectEl) {\n return\n }\n\n if (context.get(\"value\")?.length === 0 && !prop(\"multiple\")) {\n selectEl.selectedIndex = -1\n return\n }\n\n for (const option of selectEl.options) {\n option.selected = context.get(\"value\").includes(option.value)\n }\n },\n\n toggleVisibility: ({event, prop, send}) => {\n send({\n restoreFocus:\n \"restoreFocus\" in event ? event.restoreFocus : undefined,\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n })\n },\n },\n\n computed: {\n hasSelectedItems: ({context}) => (context.get(\"value\")?.length ?? 0) > 0,\n hiddenSelectOptions: memo(\n ({prop}): [ListCollection] => [prop(\"collection\")],\n (collection) => {\n return collection.items\n .map((item) => {\n return {\n disabled: collection.getItemDisabled(item),\n label: collection.stringifyItem(item),\n value: collection.getItemValue(item),\n }\n })\n .filter(\n (option): option is HiddenSelectOption =>\n option.label !== null && option.value !== null,\n )\n },\n ),\n isDisabled: ({context, prop}) =>\n prop(\"disabled\") || context.get(\"fieldsetDisabled\"),\n isEmpty: ({context}) => !context.get(\"value\")?.length,\n isInteractive: ({prop}) => !(prop(\"disabled\") || prop(\"readOnly\")),\n isTypingAhead: ({refs}) => refs.get(\"typeahead\").keysSoFar !== \"\",\n },\n\n context({bindable, prop}) {\n return {\n currentPlacement: bindable<Placement | undefined>(() => ({\n defaultValue: undefined,\n })),\n fieldsetDisabled: bindable<boolean>(() => ({\n defaultValue: false,\n })),\n highlightedItem: bindable<CollectionItem | null>(() => ({\n defaultValue: null,\n })),\n highlightedValue: bindable(() => ({\n defaultValue: prop(\"defaultHighlightedValue\"),\n isEqual,\n onChange(highlightedValue) {\n prop(\"onHighlightChange\")?.(highlightedValue, {\n highlightedIndex: prop(\"collection\").indexOf(highlightedValue),\n highlightedItem: prop(\"collection\").find(highlightedValue),\n })\n },\n value: prop(\"highlightedValue\"),\n })),\n selectedItems: bindable<CollectionItem[]>(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? []\n const items = prop(\"collection\").findMany(value)\n return {defaultValue: items, isEqual}\n }),\n value: bindable<string[]>(() => ({\n defaultValue: prop(\"defaultValue\"),\n onChange(value) {\n const items = prop(\"collection\").findMany(value ?? [])\n return prop(\"onValueChange\")?.(value ?? [], {items})\n },\n value: prop(\"value\"),\n })),\n valueAsString: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? []\n return {\n defaultValue: prop(\"collection\").stringifyMany(value),\n isEqual,\n }\n }),\n }\n },\n\n effects: {\n computePlacement({context, prop, scope}) {\n const positioning = prop(\"positioning\")\n context.set(\"currentPlacement\", positioning.placement)\n const triggerEl = () => domEls.control(scope)\n const positionerEl = () => domEls.positioner(scope)\n return getPlacement(triggerEl, positionerEl, {\n defer: true,\n ...positioning,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n })\n },\n\n scrollToHighlightedItem({context, event, prop, refs, scope}) {\n const exec = (immediate: boolean) => {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n return\n }\n\n // don't scroll into view if we're using the pointer\n if (event.current().type?.includes(\"POINTER\")) {\n return\n }\n\n const optionEl = domEls.item(scope, highlightedValue)\n const contentEl = domEls.content(scope)\n\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const highlightedIndex =\n prop(\"collection\").indexOf(highlightedValue)\n scrollToIndexFn?.({immediate, index: highlightedIndex})\n return\n }\n\n scrollIntoView(optionEl, {block: \"nearest\", rootEl: contentEl})\n }\n\n raf(() => exec(true))\n\n const contentEl = () => domEls.content(scope)\n return observeAttributes(contentEl, {\n attributes: [\"data-activedescendant\"],\n callback() {\n exec(false)\n },\n defer: true,\n })\n },\n\n trackDismissableElement({prop, scope, send}) {\n const contentEl = () => domEls.content(scope)\n let restoreFocus = true\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: () => [domEls.control(scope), domEls.clearTrigger(scope)],\n onDismiss() {\n send({restoreFocus, src: \"interact-outside\", type: \"CLOSE\"})\n },\n onFocusOutside: prop(\"onFocusOutside\"),\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event)\n restoreFocus = !(event.detail.focusable || event.detail.contextmenu)\n },\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n warnOnMissingNode: false,\n })\n },\n\n trackFocusVisible({scope}) {\n return trackFocusVisible({root: scope.getRootNode?.()})\n },\n\n trackFormControlState({context, scope}) {\n raf(() => {\n trackFormControl(domEls.hiddenSelect(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled)\n },\n onFormReset() {\n const value = context.initial(\"value\")\n context.set(\"value\", value ?? [])\n },\n })\n })\n },\n },\n\n guards: {\n canHighlightNextItem: ({guard, prop}) => {\n return (\n !guard(\"hasHighlightedItem\") ||\n prop(\"loopFocus\") ||\n !guard(\"isLastItemHighlighted\")\n )\n },\n canHighlightPreviousItem: ({guard, prop}) => {\n return (\n !guard(\"hasHighlightedItem\") ||\n prop(\"loopFocus\") ||\n !guard(\"isFirstItemHighlighted\")\n )\n },\n closeOnSelect: ({prop}) => prop(\"closeOnSelect\"),\n hasHighlightedItem: ({context}) => {\n return context.get(\"highlightedValue\") != null\n },\n hasSelectedItems: ({computed}) => computed(\"hasSelectedItems\"),\n isFirstItemHighlighted: ({context, prop}) =>\n context.get(\"highlightedValue\") === prop(\"collection\").firstValue,\n isLastItemHighlighted: ({context, prop}) =>\n context.get(\"highlightedValue\") === prop(\"collection\").lastValue,\n isOpenControlled: ({prop}) => isDefined(prop(\"open\")),\n isTriggerArrowDownEvent: ({event}) =>\n event.previous().type === \"TRIGGER.ARROW_DOWN\",\n isTriggerArrowUpEvent: ({event}) =>\n event.previous().type === \"TRIGGER.ARROW_UP\",\n isTriggerClickEvent: ({event}) =>\n event.previous().type === \"TRIGGER.CLICK\",\n isTriggerEnterEvent: ({event}) =>\n event.previous().type === \"TRIGGER.ENTER\",\n loop: ({prop}) => prop(\"loopFocus\"),\n multiple: ({prop}) => prop(\"multiple\"),\n restoreFocus: ({event}) => restoreFocusFn(event),\n },\n\n ids: ({bindableId, ids}) => {\n return {\n clearTrigger: bindableId(ids?.clearTrigger),\n content: bindableId(ids?.content),\n control: bindableId(ids?.control),\n errorText: bindableId(ids?.errorText),\n hiddenSelect: bindableId(ids?.hiddenSelect),\n hint: bindableId(ids?.hint),\n item: bindableId<(id: string | number) => string>(),\n itemGroup: bindableId<(id: string | number) => string>(),\n itemGroupLabel: bindableId<(id: string | number) => string>(),\n label: bindableId(ids?.label),\n positioner: bindableId(ids?.positioner),\n root: bindableId(ids?.root),\n }\n },\n\n initialState({prop}) {\n const open = prop(\"open\") || prop(\"defaultOpen\")\n return open ? \"open\" : \"idle\"\n },\n\n on: {\n \"CLEAR.CLICK\": {\n actions: [\"clearSelectedItems\", \"focusTriggerEl\"],\n },\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedItem\"],\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"],\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"],\n },\n \"VALUE.CLEAR\": {\n actions: [\"clearSelectedItems\"],\n },\n \"VALUE.SET\": {\n actions: [\"setSelectedItems\"],\n },\n },\n\n onInit: {\n effects: [\"trackFormControlState\", \"trackFocusVisible\"],\n },\n\n props({props}) {\n return {\n closeOnSelect: !props.multiple,\n defaultValue: [],\n dir: \"ltr\",\n loopFocus: false,\n multiple: false,\n placeholder: \"Select an option\",\n ...props,\n collection: props.collection ?? emptyCollection(),\n positioning: {\n gutter: 2,\n placement: \"bottom-start\",\n sameWidth: true,\n ...props.positioning,\n },\n }\n },\n\n refs: ({prop}) => {\n return {\n scrollToIndexFn: prop(\"scrollToIndexFn\"),\n typeahead: {...getByTypeahead.defaultOptions},\n }\n },\n\n states: {\n focused: {\n on: {\n \"CONTROLLED.OPEN\": [\n {\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"],\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\", \"highlightComputedLastItem\"],\n guard: \"isTriggerArrowUpEvent\",\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\", \"highlightComputedFirstItem\"],\n guard: or(\"isTriggerArrowDownEvent\", \"isTriggerEnterEvent\"),\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\"],\n target: \"open\",\n },\n ],\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"setInitialFocus\", \"invokeOnOpen\"],\n target: \"open\",\n },\n ],\n \"TRIGGER.ARROW_DOWN\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightComputedFirstItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.ARROW_LEFT\": [\n {\n actions: [\"selectPreviousItem\"],\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n },\n {\n actions: [\"selectLastItem\"],\n guard: not(\"multiple\"),\n },\n ],\n \"TRIGGER.ARROW_UP\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightComputedLastItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.BLUR\": {\n target: \"idle\",\n },\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightFirstSelectedItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.END\": {\n actions: [\"selectLastItem\"],\n guard: not(\"multiple\"),\n },\n \"TRIGGER.ENTER\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"invokeOnOpen\",\n \"highlightComputedFirstItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.HOME\": {\n actions: [\"selectFirstItem\"],\n guard: not(\"multiple\"),\n },\n \"TRIGGER.TYPEAHEAD\": {\n actions: [\"selectMatchingItem\"],\n guard: not(\"multiple\"),\n },\n },\n tags: [\"closed\"],\n },\n idle: {\n on: {\n \"CONTROLLED.OPEN\": [\n {\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"],\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n },\n {\n actions: [\"setInitialFocus\"],\n target: \"open\",\n },\n ],\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"setInitialFocus\", \"invokeOnOpen\"],\n target: \"open\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"invokeOnOpen\",\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n ],\n target: \"open\",\n },\n ],\n \"TRIGGER.FOCUS\": {\n target: \"focused\",\n },\n },\n tags: [\"closed\"],\n },\n open: {\n effects: [\n \"trackDismissableElement\",\n \"computePlacement\",\n \"scrollToHighlightedItem\",\n ],\n exit: [\"scrollContentToTop\"],\n on: {\n CLOSE: [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"invokeOnClose\",\n \"focusTriggerEl\",\n \"clearHighlightedItem\",\n ],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"],\n target: \"idle\",\n },\n ],\n \"CONTENT.ARROW_DOWN\": [\n {\n actions: [\"highlightFirstItem\"],\n guard: and(\"hasHighlightedItem\", \"loop\", \"isLastItemHighlighted\"),\n },\n {\n actions: [\"highlightNextItem\"],\n guard: \"canHighlightNextItem\",\n },\n ],\n \"CONTENT.ARROW_UP\": [\n {\n actions: [\"highlightLastItem\"],\n guard: and(\n \"hasHighlightedItem\",\n \"loop\",\n \"isFirstItemHighlighted\",\n ),\n },\n {\n actions: [\"highlightPreviousItem\"],\n guard: \"canHighlightPreviousItem\",\n },\n ],\n \"CONTENT.END\": {\n actions: [\"highlightLastItem\"],\n },\n \"CONTENT.HOME\": {\n actions: [\"highlightFirstItem\"],\n },\n \"CONTENT.TYPEAHEAD\": {\n actions: [\"highlightMatchingItem\"],\n },\n \"CONTROLLED.CLOSE\": [\n {\n actions: [\"focusTriggerEl\", \"clearHighlightedItem\"],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n actions: [\"clearHighlightedItem\"],\n target: \"idle\",\n },\n ],\n \"ITEM.CLICK\": [\n {\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"],\n guard: and(\"closeOnSelect\", \"isOpenControlled\"),\n },\n {\n actions: [\n \"selectHighlightedItem\",\n \"invokeOnClose\",\n \"focusTriggerEl\",\n \"clearHighlightedItem\",\n ],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectHighlightedItem\"],\n },\n ],\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedItem\"],\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"highlightItem\"],\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"],\n },\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"],\n target: \"focused\",\n },\n ],\n \"TRIGGER.TAB\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"invokeOnClose\",\n \"clearHighlightedItem\",\n \"focusTriggerEl\",\n ],\n target: \"focused\",\n },\n ],\n },\n tags: [\"open\"],\n },\n },\n\n watch({action, context, prop, track}) {\n track([() => context.get(\"value\")?.toString()], () => {\n action([\n \"syncSelectedItems\",\n \"syncSelectElement\",\n \"dispatchChangeEvent\",\n ])\n })\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"])\n })\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\"])\n })\n track([() => prop(\"collection\").toString()], () => {\n action([\"syncCollection\"])\n })\n },\n })\n\nfunction restoreFocusFn(event: Record<string, any>) {\n const v = event.restoreFocus ?? event.previousEvent?.restoreFocus\n return v == null || !!v\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createProps, createSplitProps} from \"@qualcomm-ui/utils/object\"\n\nimport type {SelectApiProps} from \"./select.types\"\n\nconst selectProps: (keyof SelectApiProps)[] = createProps<SelectApiProps>()(\n \"closeOnSelect\",\n \"collection\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"deselectable\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"onValueChange\",\n \"open\",\n \"placeholder\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"value\",\n)\n\nexport const splitSelectProps: <Props extends SelectApiProps>(\n props: Props,\n) => [SelectApiProps, Omit<Props, keyof SelectApiProps>] =\n createSplitProps<SelectApiProps>(selectProps)\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["getPlacementStyles", "isFocusVisible", "getByTypeahead", "getEventKey", "getEventTarget", "isEditableElement", "isSelfTarget", "visuallyHiddenStyle", "booleanAriaAttr", "booleanDataAttr", "ensure", "domIds", "scope", "id", "domEls", "createSelectApi", "machine", "normalize", "computed", "context", "prop", "refs", "scope", "send", "state", "disabled", "invalid", "readOnly", "collection", "open", "focused", "highlightedValue", "highlightedItem", "selectedItems", "currentPlacement", "isTypingAhead", "interactive", "ariaActiveDescendant", "domIds", "getItemState", "props", "_disabled", "value", "ensure", "popperStyles", "getPlacementStyles", "domEls", "options", "nextOpen", "fn", "booleanDataAttr", "event", "booleanAriaAttr", "isFocusVisible", "isSelfTarget", "keyMap", "exec", "getEventKey", "target", "getEventTarget", "isEditableElement", "getByTypeahead", "defaultValue", "visuallyHiddenStyle", "id", "htmlFor", "ListCollection", "selectCollection", "options", "emptyCollection", "trackDismissableElement", "getPlacement", "trackFocusVisible", "getByTypeahead", "getInitialFocus", "observeAttributes", "raf", "scrollIntoView", "trackFormControl", "addOrRemove", "isEqual", "isDefined", "createGuards", "createMachine", "memo", "and", "not", "or", "createGuards", "isSingleValue", "value", "selectMachine", "createMachine", "context", "event", "prev", "v", "scope", "node", "domEls", "win", "changeEvent", "restoreFocusFn", "raf", "computed", "prop", "collection", "refs", "highlightedValue", "getPlacement", "data", "scrollToIndexFn", "addOrRemove", "nextValue", "firstItem", "getInitialFocus", "highlightedItem", "selectedItems", "valueAsString", "prevSelectedItems", "item", "selectEl", "option", "send", "memo", "bindable", "isEqual", "items", "positioning", "exec", "immediate", "optionEl", "contentEl", "highlightedIndex", "scrollIntoView", "observeAttributes", "restoreFocus", "trackDismissableElement", "trackFocusVisible", "trackFormControl", "disabled", "guard", "isDefined", "bindableId", "ids", "props", "emptyCollection", "getByTypeahead", "action", "track", "createProps", "createSplitProps", "selectProps", "splitSelectProps"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.api.d.ts","sourceRoot":"","sources":["../../src/select/select.api.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAGV,OAAO,EACP,cAAc,EACf,MAAM,4BAA4B,CAAA;AAGnC,OAAO,KAAK,EAIV,SAAS,EAWT,YAAY,
|
|
1
|
+
{"version":3,"file":"select.api.d.ts","sourceRoot":"","sources":["../../src/select/select.api.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAGV,OAAO,EACP,cAAc,EACf,MAAM,4BAA4B,CAAA;AAGnC,OAAO,KAAK,EAIV,SAAS,EAWT,YAAY,EAEb,MAAM,gBAAgB,CAAA;AAEvB,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,SAAS,EAAE,cAAc,GACxB,SAAS,CAqhBX"}
|
package/dist/slider/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var W=Object.defineProperty;var Ee=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var ke=Object.prototype.hasOwnProperty;var Ve=(e,t)=>{for(var n in t)W(e,n,{get:t[n],enumerable:!0})},Ce=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ie(t))!ke.call(e,r)&&r!==n&&W(e,r,{get:()=>t[r],enumerable:!(i=Ee(t,r))||i.enumerable});return e};var Ae=e=>Ce(W({},"__esModule",{value:!0}),e);var _e={};Ve(_e,{createSliderApi:()=>we,sliderMachine:()=>Me,sliderProps:()=>xe,splitSliderProps:()=>Fe});module.exports=Ae(_e);var ae=require("@qualcomm-ui/dom/dom-query"),C=require("@qualcomm-ui/dom/query"),se=require("@qualcomm-ui/utils/equal"),ue=require("@qualcomm-ui/utils/machine"),O=require("@qualcomm-ui/utils/number"),le=require("@qualcomm-ui/utils/object");var w=require("@qualcomm-ui/dom/query"),Y=require("@qualcomm-ui/utils/number"),x={control:e=>e.ids.get("control"),errorText:e=>e.ids.get("errorText"),hiddenInput:(e,t)=>e.ids.collection("hiddenInput").get(t),hint:e=>e.ids.get("hint"),label:e=>e.ids.get("label"),marker:(e,t)=>e.ids.collection("marker").get(t),markerGroup:e=>e.ids.get("markerGroup"),maxMarker:e=>e.ids.get("maxMarker"),minMarker:e=>e.ids.get("minMarker"),range:e=>e.ids.get("range"),root:e=>e.ids.get("root"),thumb:(e,t)=>e.ids.collection("thumb").get(t),track:e=>e.ids.get("track"),valueText:e=>e.ids.get("valueText")},R={control:e=>e.getById(x.control(e)),errorText:e=>e.getById(x.errorText(e)),hiddenInput:(e,t)=>e.getById(x.hiddenInput(e,t)),hint:e=>e.getById(x.hint(e)),label:e=>e.getById(x.label(e)),marker:(e,t)=>e.getById(x.marker(e,t)),markerGroup:e=>e.getById(x.markerGroup(e)),maxMarker:e=>e.getById(x.maxMarker(e)),minMarker:e=>e.getById(x.minMarker(e)),range:e=>e.getById(x.range(e)),root:e=>e.getById(x.root(e)),thumb:(e,t)=>e.getById(x.thumb(e,t)),track:e=>e.getById(x.track(e)),valueText:e=>e.getById(x.valueText(e))},L=e=>(0,w.queryAll)(R.control(e),"[role=slider]"),Q=e=>L(e)[0],H=(e,t)=>{let{prop:n,scope:i}=e,r=R.control(i);if(!r)return;let u=(0,w.getRelativePoint)(t,r).getPercentValue({dir:n("dir"),inverted:{y:!0},orientation:n("orientation")});return(0,Y.getPercentValue)(u,n("min"),n("max"),n("step"))},Z=(e,t)=>{t.forEach((n,i)=>{let r=R.hiddenInput(e,i.toString());r&&(0,w.dispatchInputValueEvent)(r,{value:n})})},ee=e=>({height:e?.offsetHeight??0,left:e?.offsetLeft??0,top:e?.offsetTop??0,width:e?.offsetWidth??0});var c=require("@qualcomm-ui/utils/number");function te(e,t){return e?.width===t?.width&&e?.height===t?.height}var q=(e,t,n,i,r)=>(0,c.getValueRanges)(e,t,n,r*i).map(u=>{let m=(0,c.snapValueToStep)(u.value,u.min,u.max,i),E=(0,c.clampValue)(m,u.min,u.max);if(!(0,c.isValueWithinRange)(E,t,n))throw new Error("[@qualcomm-ui/core/slider] The configured `min`, `max`, `step` or `minStepsBetweenThumbs` values are invalid");return E});function ne(e,t){return t.map((n,i)=>F(e,n,i))}function T(e,t){let{context:n,prop:i}=e,r=i("step")*i("minStepsBetweenThumbs");return(0,c.getValueRanges)(n.get("value"),i("min"),i("max"),r)[t]}function F(e,t,n){let{prop:i}=e,r=T(e,n),a=(0,c.snapValueToStep)(t,i("min"),i("max"),i("step"));return(0,c.clampValue)(a,r.min,r.max)}function re(e,t,n){let{context:i,prop:r}=e,a=t??i.get("focusedIndex"),u=T(e,a),m=(0,c.getPreviousStepValue)(a,{...u,step:n??r("step"),values:i.get("value")});return m[a]=(0,c.clampValue)(m[a],u.min,u.max),m}function ie(e,t,n){let{context:i,prop:r}=e,a=t??i.get("focusedIndex"),u=T(e,a),m=(0,c.getNextStepValue)(a,{...u,step:n??r("step"),values:i.get("value")});return m[a]=(0,c.clampValue)(m[a],u.min,u.max),m}function oe(e,t){let{context:n}=e;return(0,c.getClosestValueIndex)(n.get("value"),t)}var Me=(0,ue.createMachine)({actions:{clearFocusedIndex({context:e}){e.set("focusedIndex",-1)},decrementThumbAtIndex(e){let{context:t,event:n}=e,{index:i,step:r}=n,a=re(e,i,r);t.set("value",a)},dispatchChangeEvent({context:e,scope:t}){Z(t,e.get("value"))},focusActiveThumb({context:e,scope:t}){(0,C.raf)(()=>{R.thumb(t,e.get("focusedIndex").toString())?.focus({preventScroll:!0})})},incrementThumbAtIndex(e){let{context:t,event:n}=e,{index:i,step:r}=n,a=ie(e,i,r);t.set("value",a)},invokeOnChangeEnd({context:e,prop:t}){queueMicrotask(()=>{t("onValueChangeEnd")?.({value:e.get("value")})})},setClosestThumbIndex(e){let{context:t,event:n}=e;if(!("point"in n))return;let i=H(e,n.point);if(i==null)return;let r=oe(e,i);t.set("focusedIndex",r)},setFocusedIndex({context:e,event:t}){"index"in t&&e.set("focusedIndex",t.index)},setFocusedThumbToMax(e){let{context:t}=e,n=t.get("focusedIndex"),{max:i}=T(e,n);t.set("value",r=>(0,O.setValueAtIndex)(r,n,i))},setFocusedThumbToMin(e){let{context:t}=e,n=t.get("focusedIndex"),{min:i}=T(e,n);t.set("value",r=>(0,O.setValueAtIndex)(r,n,i))},setPointerValue(e){queueMicrotask(()=>{let{context:t,event:n}=e;if(!("point"in n))return;let i=H(e,n.point);if(i==null)return;let r=t.get("focusedIndex"),a=F(e,i,r);t.set("value",u=>(0,O.setValueAtIndex)(u,r,a))})},setValue(e){let{context:t,event:n}=e;if(!("value"in n))return;let i=ne(e,n.value);t.set("value",i)},setValueAtIndex(e){let{context:t,event:n}=e;if(!("index"in n&&"value"in n))return;let i=F(e,n.value,n.index);t.set("value",r=>(0,O.setValueAtIndex)(r,n.index,i))},syncInputElements({context:e,scope:t}){e.get("value").forEach((n,i)=>{let r=R.hiddenInput(t,i.toString());(0,C.setElementValue)(r,n.toString())})}},computed:{hasMeasuredThumbSize:({context:e})=>e.get("thumbSize")!=null,isDisabled:({context:e,prop:t})=>!!t("disabled")||e.get("fieldsetDisabled"),isHorizontal:({prop:e})=>e("orientation")==="horizontal",isInteractive:({computed:e,prop:t})=>!(t("readOnly")||e("isDisabled")),isRtl:({prop:e})=>e("orientation")==="horizontal"&&e("dir")==="rtl",isVertical:({prop:e})=>e("orientation")==="vertical",valuePercent({context:e,prop:t}){return e.get("value").map(n=>100*(0,O.getValuePercent)(n,t("min"),t("max")))}},context({bindable:e,getContext:t,prop:n}){return{fieldsetDisabled:e(()=>({defaultValue:!1})),focusedIndex:e(()=>({defaultValue:-1,onChange(i){let r=t();n("onFocusChange")?.({focusedIndex:i,value:r.get("value")})}})),thumbSize:e(()=>({defaultValue:n("thumbSize")||null})),value:e(()=>({defaultValue:n("defaultValue"),hash(i){return i.join(",")},isEqual:se.isEqual,onChange(i){n("onValueChange")?.({value:i})},value:n("value")}))}},effects:{trackFormControlState({context:e,scope:t}){return(0,C.trackFormControl)(R.root(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){e.set("value",e.initial("value"))}})},trackPointerMove({scope:e,send:t}){return(0,C.trackPointerMove)(e.getDoc(),{onPointerMove(n){t({point:n.point,type:"POINTER_MOVE"})},onPointerUp(){t({type:"POINTER_UP"})}})},trackThumbSize({context:e,prop:t,scope:n}){if(!(t("thumbAlignment")!=="contain"||t("thumbSize")))return(0,ae.trackElementRect)(L(n),{box:"border-box",measure(i){return ee(i)},onEntry({rects:i}){if(i.length===0)return;let r=(0,le.pick)(i[0],["width","height"]);te(e.get("thumbSize"),r)||e.set("thumbSize",r)}})}},guards:{hasIndex:({event:e})=>"index"in e&&e.index!=null},ids:({bindableId:e,bindableIdCollection:t})=>({control:e(),errorText:e(),hiddenInput:t(),hint:e(),label:e(),marker:t(),markerGroup:e(),maxMarker:e(),minMarker:e(),range:e(),root:e(),thumb:t(),track:e(),valueText:e()}),initialState:()=>"idle",on:{DECREMENT:{actions:["decrementThumbAtIndex"]},INCREMENT:{actions:["incrementThumbAtIndex"]},SET_VALUE:[{actions:["setValueAtIndex"],guard:"hasIndex"},{actions:["setValue"]}]},onInit:{effects:["trackFormControlState","trackThumbSize"]},props({props:e}){let t=e.min??0,n=e.max??100,i=e.step??1,r=e.defaultValue??[t],a=e.minStepsBetweenThumbs??0;return{dir:"ltr",minStepsBetweenThumbs:a,orientation:"horizontal",origin:"start",thumbAlignment:"contain",...e,defaultValue:q(r,t,n,i,a),max:n,min:t,step:i,value:e.value?q(e.value,t,n,i,a):void 0}},states:{dragging:{effects:["trackPointerMove"],entry:["focusActiveThumb"],on:{POINTER_MOVE:{actions:["setPointerValue"]},POINTER_UP:{actions:["invokeOnChangeEnd"],target:"focus"}}},focus:{entry:["focusActiveThumb"],on:{ARROW_DEC:{actions:["decrementThumbAtIndex","invokeOnChangeEnd"]},ARROW_INC:{actions:["incrementThumbAtIndex","invokeOnChangeEnd"]},BLUR:{actions:["clearFocusedIndex"],target:"idle"},END:{actions:["setFocusedThumbToMax","invokeOnChangeEnd"]},HOME:{actions:["setFocusedThumbToMin","invokeOnChangeEnd"]},POINTER_DOWN:{actions:["setClosestThumbIndex","setPointerValue","focusActiveThumb"],target:"dragging"},THUMB_POINTER_DOWN:{actions:["setFocusedIndex","focusActiveThumb"],target:"dragging"}}},idle:{on:{FOCUS:{actions:["setFocusedIndex"],target:"focus"},POINTER_DOWN:{actions:["setClosestThumbIndex","setPointerValue","focusActiveThumb"],target:"dragging"},THUMB_POINTER_DOWN:{actions:["setFocusedIndex","focusActiveThumb"],target:"dragging"}}}},watch({actions:e,context:t,track:n}){n([()=>t.hash("value")],()=>{e.syncInputElements(),e.dispatchChangeEvent()})}});var v=require("@qualcomm-ui/dom/query"),B=require("@qualcomm-ui/utils/array"),s=require("@qualcomm-ui/utils/attributes"),_=require("@qualcomm-ui/utils/number");var k=require("@qualcomm-ui/utils/number");function Re(e){let t=e[0],n=e[e.length-1];return[t,n]}function Oe(e){let{computed:t,prop:n}=e,i=t("valuePercent"),[r,a]=Re(i);if(i.length===1){if(n("origin")==="center"){let u=i[0]<50,m=u?`${i[0]}%`:"50%";return{end:u?"50%":`${100-i[0]}%`,start:m}}return n("origin")==="end"?{end:"0%",start:`${a}%`}:{end:`${100-a}%`,start:"0%"}}return{end:`${100-a}%`,start:`${r}%`}}function de(e){let{computed:t}=e,n=t("isVertical"),i=t("isRtl");return n?{bottom:"var(--slider-range-start)",position:"absolute",top:"var(--slider-range-end)"}:{[i?"left":"right"]:"var(--slider-range-end)",[i?"right":"left"]:"var(--slider-range-start)",position:"absolute"}}function Be(e,t){let{context:n,prop:i}=e,{height:r=0}=n.get("thumbSize")??{},a=(0,k.getValueTransformer)([i("min"),i("max")],[-r/2,r/2]);return parseFloat(a(t).toFixed(2))}function De(e,t){let{computed:n,context:i,prop:r}=e,{width:a=0}=i.get("thumbSize")??{};if(n("isRtl")){let E=(0,k.getValueTransformer)([r("max"),r("min")],[-a/2,a/2]);return-1*parseFloat(E(t).toFixed(2))}let m=(0,k.getValueTransformer)([r("min"),r("max")],[-a/2,a/2]);return parseFloat(m(t).toFixed(2))}function Ne(e,t,n){let{computed:i,prop:r}=e;if(r("thumbAlignment")==="center")return`${t}%`;let a=i("isVertical")?Be(e,n):De(e,n);return`calc(${t}% - ${a}px)`}function ce(e,t){let{prop:n}=e,i=(0,k.getValuePercent)(t,n("min"),n("max"))*100;return Ne(e,i,t)}function me(e){let{computed:t,prop:n}=e,i="visible";return n("thumbAlignment")==="contain"&&!t("hasMeasuredThumbSize")&&(i="hidden"),i}function $(e,t){let{computed:n}=e;return{[n("isVertical")?"bottom":"insetInlineStart"]:`var(--slider-thumb-offset-${t})`,position:"absolute",transform:"var(--slider-thumb-transform)",visibility:me(e)}}function ge(){return{position:"relative",touchAction:"none",userSelect:"none",WebkitUserSelect:"none"}}function pe(e){let{computed:t,context:n}=e,i=t("isVertical"),r=t("isRtl"),a=Oe(e),u=n.get("thumbSize");return{...n.get("value").reduce((E,U,g)=>{let D=ce(e,U);return{...E,[`--slider-thumb-offset-${g}`]:D}},{}),"--slider-range-end":a.end,"--slider-range-start":a.start,"--slider-thumb-height":(0,k.toPx)(u?.height),"--slider-thumb-transform":i?"translateY(50%)":r?"translateX(50%)":"translateX(-50%)","--slider-thumb-width":(0,k.toPx)(u?.width)}}function fe(e,t){let{computed:n}=e,i=n("isHorizontal"),r=n("isRtl");return{"--tx":i?r?"50%":"-50%":"0%","--ty":i?"0%":"50%",[i?"insetInlineStart":"bottom"]:ce(e,t),pointerEvents:"none",position:"absolute",translate:"var(--tx) var(--ty)",visibility:me(e)}}function he(){return{pointerEvents:"none",position:"relative",userSelect:"none",WebkitUserSelect:"none"}}function we(e,t){let{computed:n,context:i,prop:r,scope:a,send:u,state:m}=e,E=r("aria-label"),U=r("aria-labelledby"),g=i.get("value"),D=i.get("focusedIndex"),V=m.matches("focus"),y=m.matches("dragging"),b=r("readOnly"),f=n("isDisabled"),P=!!r("invalid"),A=n("isInteractive"),X=r("orientation")==="horizontal",G=r("orientation")==="vertical";function J(o){return(0,_.getValuePercent)(o,r("min"),r("max"))}function K(o){return(0,_.getPercentValue)(o,r("min"),r("max"),r("step"))}function be(o=11){let l=r("max"),d=r("min");if(l<=d)return[d];let M=(l-d)/(o-1);return Array.from({length:o},(h,S)=>Math.round((d+S*M)*100)/100)}let p={"data-scope":"slider",dir:r("dir")};return{decrement(o){u({index:o,type:"DECREMENT"})},dragging:y,focus(){A&&u({index:0,type:"FOCUS"})},focused:V,focusedIndex:D,getDefaultMarks:be,getPercentValue:K,getThumbMax(o){return T(e,o).max},getThumbMin(o){return T(e,o).min},getThumbPercent(o){return J(g[o])},getThumbValue(o){return g[o]},getValuePercent:J,increment(o){u({index:o,type:"INCREMENT"})},max:r("max"),min:r("min"),setThumbPercent(o,l){let d=K(l);u({index:o,type:"SET_VALUE",value:d})},setThumbValue(o,l){u({index:o,type:"SET_VALUE",value:l})},setValue(o){u({type:"SET_VALUE",value:o})},value:g,getControlBindings(o){return a.ids.register("control",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"control","data-readonly":(0,s.booleanDataAttr)(b),id:o.id,max:r("max"),min:r("min"),onPointerDown(l){if(!A||!(0,v.isLeftClick)(l)||(0,v.isModifierKey)(l))return;let d=(0,v.getEventPoint)(l);u({point:d,type:"POINTER_DOWN"}),l.preventDefault(),l.stopPropagation()},style:ge()})},getDraggingIndicatorBindings({index:o=0}){let l=o===D&&y;return t.element({...p,"data-orientation":r("orientation"),"data-part":"dragging-indicator","data-state":l?"open":"closed",hidden:!l,role:"presentation",style:$(e,o)})},getErrorTextBindings(o){return a.ids.register("errorText",o),t.label({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"error-text",hidden:!P,id:o.id})},getHiddenInputBindings({id:o,index:l=0,name:d,onDestroy:M}){a.ids.collection("hiddenInput").register(l.toString(),o,M);let h=r("name"),S;return d?S=d:typeof h=="string"?g.length===1?S=h:g.length===2&&(S=h+l):Array.isArray(h)&&(g.length===1?S=h[0]:g.length===2&&(S=h[l])),t.input({...p,defaultValue:g[l],form:r("form"),hidden:!0,id:o,name:S,type:"text"})},getHintBindings(o){return a.ids.register("hint",o),t.label({...p,"aria-live":"polite","data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"hint","data-readonly":(0,s.booleanDataAttr)(b),hidden:P,id:o.id})},getLabelBindings(o){return a.ids.register("label",o),t.label({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"label","data-readonly":(0,s.booleanDataAttr)(b),htmlFor:a.ids.collection("hiddenInput").get("0"),id:o.id,onClick(l){A&&(l.preventDefault(),Q(a)?.focus())},style:{userSelect:"none",WebkitUserSelect:"none"}})},getMarkerBindings({id:o,onDestroy:l,value:d}){a.ids.collection("marker").register(d.toString(),o,l);let M=fe(e,d),h;return d<(0,B.first)(g)?h="under-value":d>(0,B.last)(g)?h="over-value":h="at-value",t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-orientation":r("orientation"),"data-part":"marker","data-readonly":(0,s.booleanDataAttr)(b),"data-state":h,"data-value":d,id:o,role:"presentation",style:M})},getMarkerGroupBindings(o){return a.ids.register("markerGroup",o),t.element({...p,"aria-hidden":!0,"data-orientation":r("orientation"),"data-part":"marker-group",id:o.id,role:"presentation",style:he()})},getMaxMarkerBindings(o){return a.ids.register("maxMarker",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-orientation":r("orientation"),"data-part":"max","data-readonly":(0,s.booleanDataAttr)(b),"data-value":r("max"),id:o.id,role:"presentation"})},getMinMarkerBindings(o){return a.ids.register("minMarker",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-orientation":r("orientation"),"data-part":"min","data-readonly":(0,s.booleanDataAttr)(b),"data-value":r("min"),id:o.id,role:"presentation"})},getRangeBindings(o){return a.ids.register("range",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"range","data-readonly":(0,s.booleanDataAttr)(b),id:o.id,style:de(e)})},getRootBindings(o){return a.ids.register("root",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"root","data-readonly":(0,s.booleanDataAttr)(b),id:o.id,style:pe(e)})},getThumbBindings({id:o,index:l=0,name:d,onDestroy:M}){a.ids.collection("thumb").register(l.toString(),o,M);let h=g[l],S=T(e,l),Se=r("getAriaValueText")?.({index:l,value:h}),ve=(0,B.ensureArray)(E)[l],ye=(0,B.ensureArray)(U)[l];return t.element({...p,"aria-disabled":(0,s.booleanAriaAttr)(f),"aria-label":ve,"aria-labelledby":ye??a.ids.get("label"),"aria-orientation":r("orientation"),"aria-valuemax":S.max,"aria-valuemin":S.min,"aria-valuenow":g[l],"aria-valuetext":Se,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y&&D===l),"data-focus":(0,s.booleanDataAttr)(V&&D===l),"data-index":l,"data-name":d,"data-orientation":r("orientation"),"data-part":"thumb","data-readonly":(0,s.booleanDataAttr)(b),draggable:!1,id:o,onBlur(){A&&u({type:"BLUR"})},onFocus(){A&&u({index:l,type:"FOCUS"})},onKeyDown(I){if(I.defaultPrevented||!A)return;let N=(0,v.getEventStep)(I)*r("step"),Pe={ArrowDown(){X||u({src:"ArrowDown",step:N,type:"ARROW_DEC"})},ArrowLeft(){G||u({src:"ArrowLeft",step:N,type:"ARROW_DEC"})},ArrowRight(){G||u({src:"ArrowRight",step:N,type:"ARROW_INC"})},ArrowUp(){X||u({src:"ArrowUp",step:N,type:"ARROW_INC"})},End(){u({type:"END"})},Home(){u({type:"HOME"})},PageDown(){u({src:"PageDown",step:N,type:"ARROW_DEC"})},PageUp(){u({src:"PageUp",step:N,type:"ARROW_INC"})}},Te=(0,v.getEventKey)(I,{dir:r("dir"),orientation:r("orientation")}),j=Pe[Te];j&&(j(I),I.preventDefault(),I.stopPropagation())},onPointerDown(I){A&&(0,v.isLeftClick)(I)&&(u({index:l,type:"THUMB_POINTER_DOWN"}),I.stopPropagation())},role:"slider",style:$(e,l),tabIndex:f?void 0:0})},getTrackBindings(o){return a.ids.register("track",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(y),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"track","data-readonly":(0,s.booleanDataAttr)(b),id:o.id,style:{position:"relative"}})},getValueTextBindings(o){return a.ids.register("valueText",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"value-text","data-readonly":(0,s.booleanDataAttr)(b),id:o.id,value:g})}}}var z=require("@qualcomm-ui/utils/object"),xe=(0,z.createProps)()("aria-label","aria-labelledby","defaultValue","dir","disabled","form","getAriaValueText","invalid","max","min","minStepsBetweenThumbs","name","onFocusChange","onValueChange","onValueChangeEnd","orientation","origin","readOnly","step","thumbAlignment","thumbSize","value"),Fe=(0,z.createSplitProps)(xe);
|
|
1
|
+
"use strict";var q=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Ee=Object.getOwnPropertyNames;var ke=Object.prototype.hasOwnProperty;var Ve=(e,t)=>{for(var n in t)q(e,n,{get:t[n],enumerable:!0})},Me=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ee(t))!ke.call(e,r)&&r!==n&&q(e,r,{get:()=>t[r],enumerable:!(i=Ie(t,r))||i.enumerable});return e};var Ce=e=>Me(q({},"__esModule",{value:!0}),e);var _e={};Ve(_e,{createSliderApi:()=>Ne,sliderMachine:()=>Be,sliderProps:()=>Se,splitSliderProps:()=>we});module.exports=Ce(_e);var de=require("@qualcomm-ui/dom/dom-query"),M=require("@qualcomm-ui/dom/query"),ue=require("@qualcomm-ui/utils/equal"),le=require("@qualcomm-ui/utils/machine"),O=require("@qualcomm-ui/utils/number"),ce=require("@qualcomm-ui/utils/object");var w=require("@qualcomm-ui/dom/query"),Z=require("@qualcomm-ui/utils/number"),g={control:e=>e.ids.get("control"),errorText:e=>e.ids.get("errorText"),hiddenInput:(e,t)=>e.ids.collection("hiddenInput").get(t),hint:e=>e.ids.get("hint"),label:e=>e.ids.get("label"),marker:(e,t)=>e.ids.collection("marker").get(t),markerGroup:e=>e.ids.get("markerGroup"),maxMarker:e=>e.ids.get("maxMarker"),minMarker:e=>e.ids.get("minMarker"),range:e=>e.ids.get("range"),root:e=>e.ids.get("root"),thumb:(e,t)=>e.ids.collection("thumb").get(t),thumbIndicator:(e,t)=>e.ids.collection("thumbIndicator").get(t),track:e=>e.ids.get("track"),valueText:e=>e.ids.get("valueText")},R={control:e=>e.getById(g.control(e)),errorText:e=>e.getById(g.errorText(e)),hiddenInput:(e,t)=>e.getById(g.hiddenInput(e,t)),hint:e=>e.getById(g.hint(e)),label:e=>e.getById(g.label(e)),marker:(e,t)=>e.getById(g.marker(e,t)),markerGroup:e=>e.getById(g.markerGroup(e)),maxMarker:e=>e.getById(g.maxMarker(e)),minMarker:e=>e.getById(g.minMarker(e)),range:e=>e.getById(g.range(e)),root:e=>e.getById(g.root(e)),thumb:(e,t)=>e.getById(g.thumb(e,t)),thumbIndicator:(e,t)=>e.getById(g.thumbIndicator(e,t)),track:e=>e.getById(g.track(e)),valueText:e=>e.getById(g.valueText(e))},G=e=>(0,w.queryAll)(R.control(e),"[role=slider]"),ee=e=>G(e)[0],X=(e,t)=>{let{prop:n,scope:i}=e,r=R.control(i);if(!r)return;let d=(0,w.getRelativePoint)(t,r).getPercentValue({dir:n("dir"),inverted:{y:!0},orientation:n("orientation")});return(0,Z.getPercentValue)(d,n("min"),n("max"),n("step"))},te=(e,t)=>{t.forEach((n,i)=>{let r=R.hiddenInput(e,i.toString());r&&(0,w.dispatchInputValueEvent)(r,{value:n})})},ne=e=>({height:e?.offsetHeight??0,left:e?.offsetLeft??0,top:e?.offsetTop??0,width:e?.offsetWidth??0});var m=require("@qualcomm-ui/utils/number");function re(e,t){return e?.width===t?.width&&e?.height===t?.height}var $=(e,t,n,i,r)=>(0,m.getValueRanges)(e,t,n,r*i).map(d=>{let c=(0,m.snapValueToStep)(d.value,d.min,d.max,i),T=(0,m.clampValue)(c,d.min,d.max);if(!(0,m.isValueWithinRange)(T,t,n))throw new Error("[@qualcomm-ui/core/slider] The configured `min`, `max`, `step` or `minStepsBetweenThumbs` values are invalid");return T});function ie(e,t){return t.map((n,i)=>z(e,n,i))}function I(e,t){let{context:n,prop:i}=e,r=i("step")*i("minStepsBetweenThumbs");return(0,m.getValueRanges)(n.get("value"),i("min"),i("max"),r)[t]}function z(e,t,n){let{prop:i}=e,r=I(e,n),a=(0,m.snapValueToStep)(t,i("min"),i("max"),i("step"));return(0,m.clampValue)(a,r.min,r.max)}function oe(e,t,n){let{context:i,prop:r}=e,a=t??i.get("focusedIndex"),d=I(e,a),c=(0,m.getPreviousStepValue)(a,{...d,step:n??r("step"),values:i.get("value")});return c[a]=(0,m.clampValue)(c[a],d.min,d.max),c}function ae(e,t,n){let{context:i,prop:r}=e,a=t??i.get("focusedIndex"),d=I(e,a),c=(0,m.getNextStepValue)(a,{...d,step:n??r("step"),values:i.get("value")});return c[a]=(0,m.clampValue)(c[a],d.min,d.max),c}function se(e,t){let{context:n}=e;return(0,m.getClosestValueIndex)(n.get("value"),t)}var Be=(0,le.createMachine)({actions:{clearFocusedIndex({context:e}){e.set("focusedIndex",-1)},clearThumbDragOffset({refs:e}){e.set("thumbDragOffset",null)},decrementThumbAtIndex(e){let{context:t,event:n}=e,{index:i,step:r}=n,a=oe(e,i,r);t.set("value",a)},dispatchChangeEvent({context:e,scope:t}){te(t,e.get("value"))},focusActiveThumb({context:e,scope:t}){(0,M.raf)(()=>{R.thumb(t,e.get("focusedIndex").toString())?.focus({preventScroll:!0})})},incrementThumbAtIndex(e){let{context:t,event:n}=e,{index:i,step:r}=n,a=ae(e,i,r);t.set("value",a)},invokeOnChangeEnd({context:e,prop:t}){queueMicrotask(()=>{t("onValueChangeEnd")?.({value:e.get("value")})})},setClosestThumbIndex(e){let{context:t,event:n}=e;if(!("point"in n))return;let i=X(e,n.point);if(i==null)return;let r=se(e,i);t.set("focusedIndex",r)},setFocusedIndex({context:e,event:t}){"index"in t&&e.set("focusedIndex",t.index)},setFocusedThumbToMax(e){let{context:t}=e,n=t.get("focusedIndex"),{max:i}=I(e,n);t.set("value",r=>(0,O.setValueAtIndex)(r,n,i))},setFocusedThumbToMin(e){let{context:t}=e,n=t.get("focusedIndex"),{min:i}=I(e,n);t.set("value",r=>(0,O.setValueAtIndex)(r,n,i))},setPointerValue(e){queueMicrotask(()=>{let{context:t,event:n}=e;if(!("point"in n))return;let i=X(e,n.point);if(i==null)return;let r=t.get("focusedIndex"),a=z(e,i,r);t.set("value",d=>(0,O.setValueAtIndex)(d,r,a))})},setThumbDragOffset(e){let{event:t,refs:n}=e;"offset"in t&&n.set("thumbDragOffset",t.offset??null)},setValue(e){let{context:t,event:n}=e;if(!("value"in n))return;let i=ie(e,n.value);t.set("value",i)},setValueAtIndex(e){let{context:t,event:n}=e;if(!("index"in n&&"value"in n))return;let i=z(e,n.value,n.index);t.set("value",r=>(0,O.setValueAtIndex)(r,n.index,i))},syncInputElements({context:e,scope:t}){e.get("value").forEach((n,i)=>{let r=R.hiddenInput(t,i.toString());(0,M.setElementValue)(r,n.toString())})}},computed:{hasMeasuredThumbSize:({context:e})=>e.get("thumbSize")!=null,isDisabled:({context:e,prop:t})=>!!t("disabled")||e.get("fieldsetDisabled"),isHorizontal:({prop:e})=>e("orientation")==="horizontal",isInteractive:({computed:e,prop:t})=>!(t("readOnly")||e("isDisabled")),isRtl:({prop:e})=>e("orientation")==="horizontal"&&e("dir")==="rtl",isVertical:({prop:e})=>e("orientation")==="vertical",valuePercent({context:e,prop:t}){return e.get("value").map(n=>100*(0,O.getValuePercent)(n,t("min"),t("max")))}},context({bindable:e,getContext:t,prop:n}){return{fieldsetDisabled:e(()=>({defaultValue:!1})),focusedIndex:e(()=>({defaultValue:-1,onChange(i){let r=t();n("onFocusChange")?.({focusedIndex:i,value:r.get("value")})}})),thumbSize:e(()=>({defaultValue:n("thumbSize")||null})),value:e(()=>({defaultValue:n("defaultValue"),hash(i){return i.join(",")},isEqual:ue.isEqual,onChange(i){n("onValueChange")?.({value:i})},value:n("value")}))}},effects:{trackFormControlState({context:e,scope:t}){return(0,M.trackFormControl)(R.root(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){e.set("value",e.initial("value"))}})},trackPointerMove({scope:e,send:t}){return(0,M.trackPointerMove)(e.getDoc(),{onPointerMove(n){t({point:n.point,type:"POINTER_MOVE"})},onPointerUp(){t({type:"POINTER_UP"})}})},trackThumbSize({context:e,prop:t,scope:n}){if(t("thumbAlignment")!=="contain"||t("thumbSize"))return;let i,r=requestAnimationFrame(()=>{i=(0,de.trackElementRect)(G(n),{box:"border-box",measure(a){return ne(a)},onEntry({rects:a}){if(a.length===0)return;let d=(0,ce.pick)(a[0],["width","height"]);re(e.get("thumbSize"),d)||e.set("thumbSize",d)}})});return()=>{cancelAnimationFrame(r),i?.()}}},guards:{hasIndex:({event:e})=>"index"in e&&e.index!=null},ids:({bindableId:e,bindableIdCollection:t})=>({control:e(),errorText:e(),hiddenInput:t(),hint:e(),label:e(),marker:t(),markerGroup:e(),maxMarker:e(),minMarker:e(),range:e(),root:e(),thumb:t(),thumbIndicator:t(),track:e(),valueText:e()}),initialState:()=>"idle",on:{DECREMENT:{actions:["decrementThumbAtIndex"]},INCREMENT:{actions:["incrementThumbAtIndex"]},SET_VALUE:[{actions:["setValueAtIndex"],guard:"hasIndex"},{actions:["setValue"]}]},onInit:{effects:["trackFormControlState","trackThumbSize"]},props({props:e}){let t=e.min??0,n=e.max??100,i=e.step??1,r=e.defaultValue??[t],a=e.minStepsBetweenThumbs??0;return{dir:"ltr",minStepsBetweenThumbs:a,orientation:"horizontal",origin:"start",thumbAlignment:"contain",...e,defaultValue:$(r,t,n,i,a),max:n,min:t,step:i,value:e.value?$(e.value,t,n,i,a):void 0}},refs:()=>({thumbDragOffset:null}),states:{dragging:{effects:["trackPointerMove"],entry:["focusActiveThumb"],on:{POINTER_MOVE:{actions:["setPointerValue"]},POINTER_UP:{actions:["invokeOnChangeEnd","clearThumbDragOffset"],target:"focus"}}},focus:{entry:["focusActiveThumb"],on:{ARROW_DEC:{actions:["decrementThumbAtIndex","invokeOnChangeEnd"]},ARROW_INC:{actions:["incrementThumbAtIndex","invokeOnChangeEnd"]},BLUR:{actions:["clearFocusedIndex"],target:"idle"},END:{actions:["setFocusedThumbToMax","invokeOnChangeEnd"]},HOME:{actions:["setFocusedThumbToMin","invokeOnChangeEnd"]},POINTER_DOWN:{actions:["setClosestThumbIndex","setPointerValue","focusActiveThumb"],target:"dragging"},THUMB_POINTER_DOWN:{actions:["setFocusedIndex","setThumbDragOffset","focusActiveThumb"],target:"dragging"}}},idle:{on:{FOCUS:{actions:["setFocusedIndex"],target:"focus"},POINTER_DOWN:{actions:["setClosestThumbIndex","setPointerValue","focusActiveThumb"],target:"dragging"},THUMB_POINTER_DOWN:{actions:["setFocusedIndex","setThumbDragOffset","focusActiveThumb"],target:"dragging"}}}},watch({actions:e,context:t,track:n}){n([()=>t.hash("value")],()=>{e.syncInputElements(),e.dispatchChangeEvent()})}});var y=require("@qualcomm-ui/dom/query"),D=require("@qualcomm-ui/utils/array"),s=require("@qualcomm-ui/utils/attributes"),U=require("@qualcomm-ui/utils/number");var k=require("@qualcomm-ui/utils/number");function Ae(e){let t=e[0],n=e[e.length-1];return[t,n]}function Re(e){let{computed:t,prop:n}=e,i=t("valuePercent"),[r,a]=Ae(i);if(i.length===1){if(n("origin")==="center"){let d=i[0]<50,c=d?`${i[0]}%`:"50%";return{end:d?"50%":`${100-i[0]}%`,start:c}}return n("origin")==="end"?{end:"0%",start:`${a}%`}:{end:`${100-a}%`,start:"0%"}}return{end:`${100-a}%`,start:`${r}%`}}function me(e){let{computed:t}=e,n=t("isVertical"),i=t("isRtl");return n?{bottom:"var(--slider-range-start)",position:"absolute",top:"var(--slider-range-end)"}:{[i?"left":"right"]:"var(--slider-range-end)",[i?"right":"left"]:"var(--slider-range-start)",position:"absolute"}}function Oe(e,t){let{context:n,prop:i}=e,{height:r=0}=n.get("thumbSize")??{},a=(0,k.getValueTransformer)([i("min"),i("max")],[-r/2,r/2]);return parseFloat(a(t).toFixed(2))}function De(e,t){let{computed:n,context:i,prop:r}=e,{width:a=0}=i.get("thumbSize")??{};if(n("isRtl")){let T=(0,k.getValueTransformer)([r("max"),r("min")],[-a/2,a/2]);return-1*parseFloat(T(t).toFixed(2))}let c=(0,k.getValueTransformer)([r("min"),r("max")],[-a/2,a/2]);return parseFloat(c(t).toFixed(2))}function Fe(e,t,n){let{computed:i,prop:r}=e;if(r("thumbAlignment")==="center")return`${t}%`;let a=i("isVertical")?Oe(e,n):De(e,n);return`calc(${t}% - ${a}px)`}function ge(e,t){let{prop:n}=e,i=(0,k.getValuePercent)(t,n("min"),n("max"))*100;return Fe(e,i,t)}function pe(e){let{computed:t,prop:n}=e,i="visible";return n("thumbAlignment")==="contain"&&!t("hasMeasuredThumbSize")&&(i="hidden"),i}function J(e,t){let{computed:n}=e;return{[n("isVertical")?"bottom":"insetInlineStart"]:`var(--slider-thumb-offset-${t})`,position:"absolute",transform:"var(--slider-thumb-transform)",visibility:pe(e)}}function fe(){return{position:"relative",touchAction:"none",userSelect:"none",WebkitUserSelect:"none"}}function he(e){let{computed:t,context:n}=e,i=t("isVertical"),r=t("isRtl"),a=Re(e),d=n.get("thumbSize"),c={"--slider-range-end":a.end,"--slider-range-start":a.start,"--slider-thumb-height":(0,k.toPx)(d?.height),"--slider-thumb-transform":i?"translateY(50%)":r?"translateX(50%)":"translateX(-50%)","--slider-thumb-width":(0,k.toPx)(d?.width)},T=n.get("value");for(let F=0;F<T.length;F++)c[`--slider-thumb-offset-${F}`]=ge(e,T[F]);return c}function xe(e,t){let{computed:n}=e,i=n("isHorizontal"),r=n("isRtl");return{"--tx":i?r?"50%":"-50%":"0%","--ty":i?"0%":"50%",[i?"insetInlineStart":"bottom"]:ge(e,t),pointerEvents:"none",position:"absolute",translate:"var(--tx) var(--ty)",visibility:pe(e)}}function be(){return{pointerEvents:"none",position:"relative",userSelect:"none",WebkitUserSelect:"none"}}function Ne(e,t){let{computed:n,context:i,prop:r,scope:a,send:d,state:c}=e,T=r("aria-label"),F=r("aria-labelledby"),x=i.get("value"),W=i.get("focusedIndex"),V=c.matches("focus"),E=c.matches("dragging"),S=r("readOnly"),f=n("isDisabled"),P=!!r("invalid"),C=n("isInteractive"),K=r("orientation")==="horizontal",Y=r("orientation")==="vertical";function j(o){return(0,U.getValuePercent)(o,r("min"),r("max"))}function Q(o){return(0,U.getPercentValue)(o,r("min"),r("max"),r("step"))}function ve(o=11){let u=r("max"),l=r("min");if(u<=l)return[l];let B=(u-l)/(o-1);return Array.from({length:o},(h,v)=>Math.round((l+v*B)*100)/100)}let p={"data-scope":"slider",dir:r("dir")};return{decrement(o){d({index:o,type:"DECREMENT"})},dragging:E,focus(){C&&d({index:0,type:"FOCUS"})},focused:V,focusedIndex:W,getDefaultMarks:ve,getPercentValue:Q,getThumbMax(o){return I(e,o).max},getThumbMin(o){return I(e,o).min},getThumbPercent(o){return j(x[o])},getThumbValue(o){return x[o]},getValuePercent:j,increment(o){d({index:o,type:"INCREMENT"})},max:r("max"),min:r("min"),setThumbPercent(o,u){let l=Q(u);d({index:o,type:"SET_VALUE",value:l})},setThumbValue(o,u){d({index:o,type:"SET_VALUE",value:u})},setValue(o){d({type:"SET_VALUE",value:o})},value:x,getControlBindings(o){return a.ids.register("control",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"control","data-readonly":(0,s.booleanDataAttr)(S),id:o.id,max:r("max"),min:r("min"),onPointerDown(u){if(!C||!(0,y.isLeftClick)(u)||(0,y.isModifierKey)(u))return;let l=(0,y.getEventPoint)(u);d({point:l,type:"POINTER_DOWN"}),u.preventDefault(),u.stopPropagation()},style:fe()})},getErrorTextBindings(o){return a.ids.register("errorText",o),t.label({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"error-text",hidden:!P,id:o.id})},getHiddenInputBindings({id:o,index:u=0,name:l,onDestroy:B}){a.ids.collection("hiddenInput").register(u.toString(),o,B);let h=r("name"),v;return l?v=l:typeof h=="string"?x.length===1?v=h:x.length===2&&(v=h+u):Array.isArray(h)&&(x.length===1?v=h[0]:x.length===2&&(v=h[u])),t.input({...p,defaultValue:x[u],form:r("form"),hidden:!0,id:o,name:v,type:"text"})},getHintBindings(o){return a.ids.register("hint",o),t.label({...p,"aria-live":"polite","data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"hint","data-readonly":(0,s.booleanDataAttr)(S),hidden:P,id:o.id})},getLabelBindings(o){return a.ids.register("label",o),t.label({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"label","data-readonly":(0,s.booleanDataAttr)(S),htmlFor:a.ids.collection("hiddenInput").get("0"),id:o.id,onClick(u){C&&(u.preventDefault(),ee(a)?.focus())},style:{userSelect:"none",WebkitUserSelect:"none"}})},getMarkerBindings({id:o,onDestroy:u,value:l}){a.ids.collection("marker").register(l.toString(),o,u);let B=xe(e,l),h;return l<(0,D.first)(x)?h="under-value":l>(0,D.last)(x)?h="over-value":h="at-value",t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-orientation":r("orientation"),"data-part":"marker","data-readonly":(0,s.booleanDataAttr)(S),"data-state":h,"data-value":l,id:o,role:"presentation",style:B})},getMarkerGroupBindings(o){return a.ids.register("markerGroup",o),t.element({...p,"aria-hidden":!0,"data-orientation":r("orientation"),"data-part":"marker-group",id:o.id,role:"presentation",style:be()})},getMaxMarkerBindings(o){return a.ids.register("maxMarker",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-orientation":r("orientation"),"data-part":"max","data-readonly":(0,s.booleanDataAttr)(S),"data-value":r("max"),id:o.id,role:"presentation"})},getMinMarkerBindings(o){return a.ids.register("minMarker",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-orientation":r("orientation"),"data-part":"min","data-readonly":(0,s.booleanDataAttr)(S),"data-value":r("min"),id:o.id,role:"presentation"})},getRangeBindings(o){return a.ids.register("range",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"range","data-readonly":(0,s.booleanDataAttr)(S),id:o.id,style:me(e)})},getRootBindings(o){return a.ids.register("root",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"root","data-readonly":(0,s.booleanDataAttr)(S),id:o.id,style:he(e)})},getThumbBindings({id:o,index:u=0,name:l,onDestroy:B}){a.ids.collection("thumb").register(u.toString(),o,B);let h=x[u],v=I(e,u),ye=r("getAriaValueText")?.({index:u,value:h}),Te=(0,D.ensureArray)(T)[u],Pe=(0,D.ensureArray)(F)[u];return t.element({...p,"aria-describedby":g.hint(a),"aria-disabled":(0,s.booleanAriaAttr)(f),"aria-label":Te,"aria-labelledby":Pe??g.label(a),"aria-orientation":r("orientation"),"aria-valuemax":v.max,"aria-valuemin":v.min,"aria-valuenow":x[u],"aria-valuetext":ye,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E&&W===u),"data-focus":(0,s.booleanDataAttr)(V&&W===u),"data-index":u,"data-name":l,"data-orientation":r("orientation"),"data-part":"thumb","data-readonly":(0,s.booleanDataAttr)(S),draggable:!1,id:o,onBlur(){C&&d({type:"BLUR"})},onFocus(){C&&d({index:u,type:"FOCUS"})},onKeyDown(b){if(b.defaultPrevented||!C)return;let A=(0,y.getEventStep)(b)*r("step"),N={ArrowDown(){K||d({src:"ArrowDown",step:A,type:"ARROW_DEC"})},ArrowLeft(){Y||d({src:"ArrowLeft",step:A,type:"ARROW_DEC"})},ArrowRight(){Y||d({src:"ArrowRight",step:A,type:"ARROW_INC"})},ArrowUp(){K||d({src:"ArrowUp",step:A,type:"ARROW_INC"})},End(){d({type:"END"})},Home(){d({type:"HOME"})},PageDown(){d({src:"PageDown",step:A,type:"ARROW_DEC"})},PageUp(){d({src:"PageUp",step:A,type:"ARROW_INC"})}},_=(0,y.getEventKey)(b,{dir:r("dir"),orientation:r("orientation")}),H=N[_];H&&(H(b),b.preventDefault(),b.stopPropagation())},onPointerDown(b){if(!C||!(0,y.isLeftClick)(b))return;let N=b.currentTarget.getBoundingClientRect(),_={x:N.left+N.width/2,y:N.top+N.height/2},H={x:b.clientX-_.x,y:b.clientY-_.y};d({index:u,offset:H,type:"THUMB_POINTER_DOWN"}),b.stopPropagation()},role:"slider",style:J(e,u),tabIndex:f?void 0:0})},getThumbIndicatorBindings({id:o,index:u=0,onDestroy:l}){return a.ids.collection("thumbIndicator").register(u.toString(),o,l),t.element({...p,"data-orientation":r("orientation"),"data-part":"thumb-indicator",role:"presentation",style:J(e,u)})},getTrackBindings(o){return a.ids.register("track",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-dragging":(0,s.booleanDataAttr)(E),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"track","data-readonly":(0,s.booleanDataAttr)(S),id:o.id,style:{position:"relative"}})},getValueTextBindings(o){return a.ids.register("valueText",o),t.element({...p,"data-disabled":(0,s.booleanDataAttr)(f),"data-focus":(0,s.booleanDataAttr)(V),"data-invalid":(0,s.booleanDataAttr)(P),"data-orientation":r("orientation"),"data-part":"value-text","data-readonly":(0,s.booleanDataAttr)(S),id:o.id,value:x})}}}var L=require("@qualcomm-ui/utils/object"),Se=(0,L.createProps)()("aria-label","aria-labelledby","defaultValue","dir","disabled","form","getAriaValueText","getRootNode","invalid","max","min","minStepsBetweenThumbs","name","onFocusChange","onValueChange","onValueChangeEnd","orientation","origin","readOnly","step","thumbAlignment","thumbSize","value"),we=(0,L.createSplitProps)(Se);
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|