@activecollab/components 2.0.429 → 2.0.432

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.
Files changed (59) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +11 -3
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/ComboBox/ComboBox.js +21 -8
  4. package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
  5. package/dist/cjs/components/SideNav/SideNav.js +66 -0
  6. package/dist/cjs/components/SideNav/SideNav.js.map +1 -0
  7. package/dist/cjs/components/SideNav/SideNavContext.js +13 -0
  8. package/dist/cjs/components/SideNav/SideNavContext.js.map +1 -0
  9. package/dist/cjs/components/SideNav/SideNavGroup.js +19 -0
  10. package/dist/cjs/components/SideNav/SideNavGroup.js.map +1 -0
  11. package/dist/cjs/components/SideNav/SideNavItem.js +43 -0
  12. package/dist/cjs/components/SideNav/SideNavItem.js.map +1 -0
  13. package/dist/cjs/components/SideNav/Styles.js +101 -0
  14. package/dist/cjs/components/SideNav/Styles.js.map +1 -0
  15. package/dist/cjs/components/SideNav/index.js +39 -0
  16. package/dist/cjs/components/SideNav/index.js.map +1 -0
  17. package/dist/cjs/components/index.js +11 -0
  18. package/dist/cjs/components/index.js.map +1 -1
  19. package/dist/esm/components/Autocomplete/Autocomplete.d.ts +5 -0
  20. package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  21. package/dist/esm/components/Autocomplete/Autocomplete.js +10 -2
  22. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  23. package/dist/esm/components/ComboBox/ComboBox.d.ts +9 -0
  24. package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
  25. package/dist/esm/components/ComboBox/ComboBox.js +22 -9
  26. package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
  27. package/dist/esm/components/SideNav/SideNav.d.ts +24 -0
  28. package/dist/esm/components/SideNav/SideNav.d.ts.map +1 -0
  29. package/dist/esm/components/SideNav/SideNav.js +57 -0
  30. package/dist/esm/components/SideNav/SideNav.js.map +1 -0
  31. package/dist/esm/components/SideNav/SideNavContext.d.ts +9 -0
  32. package/dist/esm/components/SideNav/SideNavContext.d.ts.map +1 -0
  33. package/dist/esm/components/SideNav/SideNavContext.js +5 -0
  34. package/dist/esm/components/SideNav/SideNavContext.js.map +1 -0
  35. package/dist/esm/components/SideNav/SideNavGroup.d.ts +12 -0
  36. package/dist/esm/components/SideNav/SideNavGroup.d.ts.map +1 -0
  37. package/dist/esm/components/SideNav/SideNavGroup.js +12 -0
  38. package/dist/esm/components/SideNav/SideNavGroup.js.map +1 -0
  39. package/dist/esm/components/SideNav/SideNavItem.d.ts +17 -0
  40. package/dist/esm/components/SideNav/SideNavItem.d.ts.map +1 -0
  41. package/dist/esm/components/SideNav/SideNavItem.js +35 -0
  42. package/dist/esm/components/SideNav/SideNavItem.js.map +1 -0
  43. package/dist/esm/components/SideNav/Styles.d.ts +11 -0
  44. package/dist/esm/components/SideNav/Styles.d.ts.map +1 -0
  45. package/dist/esm/components/SideNav/Styles.js +90 -0
  46. package/dist/esm/components/SideNav/Styles.js.map +1 -0
  47. package/dist/esm/components/SideNav/index.d.ts +4 -0
  48. package/dist/esm/components/SideNav/index.d.ts.map +1 -0
  49. package/dist/esm/components/SideNav/index.js +4 -0
  50. package/dist/esm/components/SideNav/index.js.map +1 -0
  51. package/dist/esm/components/index.d.ts +1 -0
  52. package/dist/esm/components/index.d.ts.map +1 -1
  53. package/dist/esm/components/index.js +1 -0
  54. package/dist/esm/components/index.js.map +1 -1
  55. package/dist/index.js +866 -651
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.min.js +1 -1
  58. package/dist/index.min.js.map +1 -1
  59. package/package.json +1 -1
@@ -111,6 +111,7 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
111
111
  optionClassName = _ref.optionClassName,
112
112
  handleEmptyAction = _ref.handleEmptyAction,
113
113
  disabledInternalSort = _ref.disabledInternalSort,
114
+ optionsAreFinal = _ref.optionsAreFinal,
114
115
  AutocompleteClassName = _ref.AutocompleteClassName,
115
116
  handleDefaultOptionChange = _ref.handleDefaultOptionChange,
116
117
  preselectDefaultValue = _ref.preselectDefaultValue,
@@ -179,6 +180,9 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
179
180
  }, [keepSameOptionsOrder, selectedOptions, mixedOptions]);
180
181
  var sortList = (0, _react.useCallback)(function (options) {
181
182
  var _options$;
183
+ if (optionsAreFinal) {
184
+ return options;
185
+ }
182
186
  if (disabledInternalSort) {
183
187
  return handleSort(options);
184
188
  }
@@ -196,7 +200,7 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
196
200
  } else {
197
201
  return handleSort([...options].sort(alphaSort));
198
202
  }
199
- }, [sortDirection, disabledInternalSort, handleSort]);
203
+ }, [sortDirection, disabledInternalSort, optionsAreFinal, handleSort]);
200
204
  var _useState = (0, _react.useState)(function () {
201
205
  return sortList(options);
202
206
  }),
@@ -215,6 +219,10 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
215
219
  isInitialSortRef.current = false;
216
220
  return;
217
221
  }
222
+ if (optionsAreFinal) {
223
+ setSortedList(options);
224
+ return;
225
+ }
218
226
  if (keepSameOptionsOrder) {
219
227
  setSortedList(sortList(options));
220
228
  return;
@@ -325,8 +333,8 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
325
333
  }
326
334
  }, [emptyValue, filterCriteria]);
327
335
  var list = (0, _react.useMemo)(function () {
328
- return filterOptions(sortedList, filter);
329
- }, [filter, filterOptions, sortedList]);
336
+ return optionsAreFinal ? sortedList : filterOptions(sortedList, filter);
337
+ }, [filter, filterOptions, optionsAreFinal, sortedList]);
330
338
  var showDefaultOption = (0, _react.useMemo)(function () {
331
339
  return !!defaultValue && !filter;
332
340
  }, [defaultValue, filter]);
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","names":["_react","_interopRequireWildcard","require","_reactVirtual","_HandleKeyboard","_Styles","_useHighlightText","_interopRequireDefault","_Option","_Styles2","_OptionGroup","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","isOptionGroup","item","options","undefined","collectLeafIds","opts","reduce","acc","opt","map","id","insertAmongSameState","list","isChecked","checked","index","findIndex","localeCompare","reconcileFlat","prev","frozen","nextById","Map","base","baseIds","Set","toPlace","reconcileOrder","every","prevGroupById","group","_prevGroupById$get$op","_prevGroupById$get","Autocomplete","exports","_ref","type","_ref$options","optionsProp","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","useRef","itemRef","useMemo","Boolean","selectedOptions","frozenRef","handleSort","useCallback","_opts$","isGrouped","sortOptions","b","aSelected","includes","bSelected","aMixed","bMixed","sort","sortList","_options$","alphaSort","sortedOptions","_useState","useState","_useState2","sortedList","setSortedList","isInitialSortRef","selectedKey","join","useEffect","current","nextFrozen","add","_useState3","by","_useState4","hover","setHover","_useState5","_useState6","setFilter","handleEmpty","button","_inputEl$current","focus","onAddNewMouseEnter","showAddNew","trim","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","groupedOption","filteredOptions","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","shouldUseVirtualization","rowVirtualizer","useVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","OptionGroup","icon","tooltip","renderOptions","onChange","Option","ref","onMouseEnter","onClick","className","highlightText","concat","handleOnMouseLeave","scrollToIndex","align","handleOnKeyDown","handleKeyboardMovement","listenerTarget","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","_StyledStyledOption","StyledAutocompleteNewItem","onMouseDown","StyledAutocompleteScrollShadow","$isHidden","_ref2","onScroll","StyledAutocompleteBody","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styledComponents","StyledOption","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nconst collectLeafIds = (\n opts: (IOptionGroupProps | IOptionItemProps)[]\n): (string | number)[] =>\n opts.reduce<(string | number)[]>(\n (acc, opt) =>\n isOptionGroup(opt)\n ? [...acc, ...opt.options.map((o) => o.id)]\n : [...acc, opt.id],\n []\n );\n\n// Inserts an option at its alphabetical position among the options that share\n// its checked state (checked items live at the top, so a checked option lands\n// among the checked ones, sorted).\nconst insertAmongSameState = (\n list: IOptionItemProps[],\n item: IOptionItemProps,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const checked = isChecked(item.id);\n let index = list.findIndex(\n (o) => isChecked(o.id) === checked && o.name.localeCompare(item.name) > 0\n );\n if (index === -1) {\n index = checked\n ? list.reduce((acc, o, i) => (isChecked(o.id) ? i + 1 : acc), 0)\n : list.length;\n }\n return [...list.slice(0, index), item, ...list.slice(index)];\n};\n\n// Frozen options that are still present keep their order (checking/unchecking\n// never moves them). Everything else — newly added options, or frozen options\n// that moved here (e.g. when the list is regrouped) — is slotted in among the\n// checked items, alphabetically.\nconst reconcileFlat = (\n prev: IOptionItemProps[],\n next: IOptionItemProps[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const nextById = new Map(next.map((o) => [o.id, o]));\n const base = prev\n .filter((o) => frozen.has(o.id) && nextById.has(o.id))\n .map((o) => nextById.get(o.id) as IOptionItemProps);\n const baseIds = new Set(base.map((o) => o.id));\n const toPlace = next.filter((o) => !baseIds.has(o.id));\n\n return toPlace.reduce(\n (acc, item) => insertAmongSameState(acc, item, isChecked),\n base\n );\n};\n\nconst reconcileOrder = (\n prev: (IOptionGroupProps | IOptionItemProps)[],\n next: (IOptionGroupProps | IOptionItemProps)[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): (IOptionGroupProps | IOptionItemProps)[] => {\n if (!next.every(isOptionGroup) || !prev.every(isOptionGroup)) {\n return reconcileFlat(\n prev as IOptionItemProps[],\n next as IOptionItemProps[],\n frozen,\n isChecked\n );\n }\n\n const prevGroupById = new Map(prev.map((group) => [group.id, group]));\n\n return next.map((group) => ({\n ...group,\n options: reconcileFlat(\n prevGroupById.get(group.id)?.options ?? [],\n group.options,\n frozen,\n isChecked\n ),\n }));\n};\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options: optionsProp = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n // Tolerate sparse/holey option arrays (some callers build them via index\n // assignment): drop holes and nullish entries so sorting never hits undefined.\n const options = useMemo(() => optionsProp.filter(Boolean), [optionsProp]);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n // Ids whose position is fixed. Starts with everything present on open; a\n // freshly added option joins this set once it becomes checked, so unchecking\n // it later won't move it. Everything frozen keeps its order on every re-sort.\n const frozenRef = useRef(new Set(collectLeafIds(options)));\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => ({\n ...group,\n options: [...group.options].sort(sortOptions),\n }));\n } else {\n return [...opts].sort(sortOptions);\n }\n },\n [keepSameOptionsOrder, selectedOptions, mixedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort(options);\n }\n\n const alphaSort = (a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name);\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => ({\n ...group,\n options: handleSort([...group.options].sort(alphaSort)),\n }));\n\n return handleSort(sortedOptions);\n } else {\n return handleSort([...options].sort(alphaSort));\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n // The order is established on open. Options present then keep their place for\n // the whole session — checking/unchecking never reorders them. Options added\n // afterwards are slotted in among the checked items, alphabetically. The\n // selection key is a primitive so a fresh `selected = []` default can't loop.\n const isInitialSortRef = useRef(true);\n const selectedKey = selectedOptions.join(\",\");\n\n useEffect(() => {\n if (isInitialSortRef.current) {\n isInitialSortRef.current = false;\n return;\n }\n\n if (keepSameOptionsOrder) {\n setSortedList(sortList(options));\n return;\n }\n\n if (sortedList.length === 0) {\n frozenRef.current = new Set(collectLeafIds(options));\n setSortedList(sortList(options));\n return;\n }\n\n const isChecked = (id: string | number) => selectedOptions.includes(id);\n const frozen = frozenRef.current;\n\n const nextFrozen = new Set(frozen);\n collectLeafIds(options).forEach((id) => {\n if (!frozen.has(id) && isChecked(id)) {\n nextFrozen.add(id);\n }\n });\n frozenRef.current = nextFrozen;\n\n setSortedList(reconcileOrder(sortedList, options, frozen, isChecked));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options, selectedKey]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n if (option.hidden) {\n return false;\n }\n\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n icon={item.icon}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current;\n if (!listenerTarget) return;\n\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n icon={virtualItem.item.icon}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Autocomplete.js","names":["_react","_interopRequireWildcard","require","_reactVirtual","_HandleKeyboard","_Styles","_useHighlightText","_interopRequireDefault","_Option","_Styles2","_OptionGroup","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","isOptionGroup","item","options","undefined","collectLeafIds","opts","reduce","acc","opt","map","id","insertAmongSameState","list","isChecked","checked","index","findIndex","localeCompare","reconcileFlat","prev","frozen","nextById","Map","base","baseIds","Set","toPlace","reconcileOrder","every","prevGroupById","group","_prevGroupById$get$op","_prevGroupById$get","Autocomplete","exports","_ref","type","_ref$options","optionsProp","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","optionsAreFinal","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","useRef","itemRef","useMemo","Boolean","selectedOptions","frozenRef","handleSort","useCallback","_opts$","isGrouped","sortOptions","b","aSelected","includes","bSelected","aMixed","bMixed","sort","sortList","_options$","alphaSort","sortedOptions","_useState","useState","_useState2","sortedList","setSortedList","isInitialSortRef","selectedKey","join","useEffect","current","nextFrozen","add","_useState3","by","_useState4","hover","setHover","_useState5","_useState6","setFilter","handleEmpty","button","_inputEl$current","focus","onAddNewMouseEnter","showAddNew","trim","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","groupedOption","filteredOptions","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","shouldUseVirtualization","rowVirtualizer","useVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","OptionGroup","icon","tooltip","renderOptions","onChange","Option","ref","onMouseEnter","onClick","className","highlightText","concat","handleOnMouseLeave","scrollToIndex","align","handleOnKeyDown","handleKeyboardMovement","listenerTarget","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","_StyledStyledOption","StyledAutocompleteNewItem","onMouseDown","StyledAutocompleteScrollShadow","$isHidden","_ref2","onScroll","StyledAutocompleteBody","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styledComponents","StyledOption","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nconst collectLeafIds = (\n opts: (IOptionGroupProps | IOptionItemProps)[]\n): (string | number)[] =>\n opts.reduce<(string | number)[]>(\n (acc, opt) =>\n isOptionGroup(opt)\n ? [...acc, ...opt.options.map((o) => o.id)]\n : [...acc, opt.id],\n []\n );\n\n// Inserts an option at its alphabetical position among the options that share\n// its checked state (checked items live at the top, so a checked option lands\n// among the checked ones, sorted).\nconst insertAmongSameState = (\n list: IOptionItemProps[],\n item: IOptionItemProps,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const checked = isChecked(item.id);\n let index = list.findIndex(\n (o) => isChecked(o.id) === checked && o.name.localeCompare(item.name) > 0\n );\n if (index === -1) {\n index = checked\n ? list.reduce((acc, o, i) => (isChecked(o.id) ? i + 1 : acc), 0)\n : list.length;\n }\n return [...list.slice(0, index), item, ...list.slice(index)];\n};\n\n// Frozen options that are still present keep their order (checking/unchecking\n// never moves them). Everything else — newly added options, or frozen options\n// that moved here (e.g. when the list is regrouped) — is slotted in among the\n// checked items, alphabetically.\nconst reconcileFlat = (\n prev: IOptionItemProps[],\n next: IOptionItemProps[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const nextById = new Map(next.map((o) => [o.id, o]));\n const base = prev\n .filter((o) => frozen.has(o.id) && nextById.has(o.id))\n .map((o) => nextById.get(o.id) as IOptionItemProps);\n const baseIds = new Set(base.map((o) => o.id));\n const toPlace = next.filter((o) => !baseIds.has(o.id));\n\n return toPlace.reduce(\n (acc, item) => insertAmongSameState(acc, item, isChecked),\n base\n );\n};\n\nconst reconcileOrder = (\n prev: (IOptionGroupProps | IOptionItemProps)[],\n next: (IOptionGroupProps | IOptionItemProps)[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): (IOptionGroupProps | IOptionItemProps)[] => {\n if (!next.every(isOptionGroup) || !prev.every(isOptionGroup)) {\n return reconcileFlat(\n prev as IOptionItemProps[],\n next as IOptionItemProps[],\n frozen,\n isChecked\n );\n }\n\n const prevGroupById = new Map(prev.map((group) => [group.id, group]));\n\n return next.map((group) => ({\n ...group,\n options: reconcileFlat(\n prevGroupById.get(group.id)?.options ?? [],\n group.options,\n frozen,\n isChecked\n ),\n }));\n};\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /**\n * The options are already the answer: render them as given. Nothing is filtered, sorted or held in\n * the order it opened with. For a caller that searches for itself and needs its own grouping kept.\n */\n optionsAreFinal?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options: optionsProp = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n optionsAreFinal,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n // Tolerate sparse/holey option arrays (some callers build them via index\n // assignment): drop holes and nullish entries so sorting never hits undefined.\n const options = useMemo(() => optionsProp.filter(Boolean), [optionsProp]);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n // Ids whose position is fixed. Starts with everything present on open; a\n // freshly added option joins this set once it becomes checked, so unchecking\n // it later won't move it. Everything frozen keeps its order on every re-sort.\n const frozenRef = useRef(new Set(collectLeafIds(options)));\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => ({\n ...group,\n options: [...group.options].sort(sortOptions),\n }));\n } else {\n return [...opts].sort(sortOptions);\n }\n },\n [keepSameOptionsOrder, selectedOptions, mixedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (optionsAreFinal) {\n return options;\n }\n\n if (disabledInternalSort) {\n return handleSort(options);\n }\n\n const alphaSort = (a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name);\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => ({\n ...group,\n options: handleSort([...group.options].sort(alphaSort)),\n }));\n\n return handleSort(sortedOptions);\n } else {\n return handleSort([...options].sort(alphaSort));\n }\n },\n [sortDirection, disabledInternalSort, optionsAreFinal, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n // The order is established on open. Options present then keep their place for\n // the whole session — checking/unchecking never reorders them. Options added\n // afterwards are slotted in among the checked items, alphabetically. The\n // selection key is a primitive so a fresh `selected = []` default can't loop.\n const isInitialSortRef = useRef(true);\n const selectedKey = selectedOptions.join(\",\");\n\n useEffect(() => {\n if (isInitialSortRef.current) {\n isInitialSortRef.current = false;\n return;\n }\n\n if (optionsAreFinal) {\n setSortedList(options);\n return;\n }\n\n if (keepSameOptionsOrder) {\n setSortedList(sortList(options));\n return;\n }\n\n if (sortedList.length === 0) {\n frozenRef.current = new Set(collectLeafIds(options));\n setSortedList(sortList(options));\n return;\n }\n\n const isChecked = (id: string | number) => selectedOptions.includes(id);\n const frozen = frozenRef.current;\n\n const nextFrozen = new Set(frozen);\n collectLeafIds(options).forEach((id) => {\n if (!frozen.has(id) && isChecked(id)) {\n nextFrozen.add(id);\n }\n });\n frozenRef.current = nextFrozen;\n\n setSortedList(reconcileOrder(sortedList, options, frozen, isChecked));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options, selectedKey]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n if (option.hidden) {\n return false;\n }\n\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => (optionsAreFinal ? sortedList : filterOptions(sortedList, filter)),\n [filter, filterOptions, optionsAreFinal, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n icon={item.icon}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current;\n if (!listenerTarget) return;\n\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n icon={virtualItem.item.icon}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAYA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,iBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AAA4E,SAAAD,wBAAAU,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,wBAAAU,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAL,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,SAAAoB,eAAAjB,CAAA,EAAAH,CAAA,WAAAqB,eAAA,CAAAlB,CAAA,KAAAmB,qBAAA,CAAAnB,CAAA,EAAAH,CAAA,KAAAuB,2BAAA,CAAApB,CAAA,EAAAH,CAAA,KAAAwB,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAApB,CAAA,EAAAuB,CAAA,QAAAvB,CAAA,2BAAAA,CAAA,SAAAwB,iBAAA,CAAAxB,CAAA,EAAAuB,CAAA,OAAAzB,CAAA,MAAA2B,QAAA,CAAAZ,IAAA,CAAAb,CAAA,EAAA0B,KAAA,6BAAA5B,CAAA,IAAAE,CAAA,CAAA2B,WAAA,KAAA7B,CAAA,GAAAE,CAAA,CAAA2B,WAAA,CAAAC,IAAA,aAAA9B,CAAA,cAAAA,CAAA,GAAA+B,KAAA,CAAAC,IAAA,CAAA9B,CAAA,oBAAAF,CAAA,+CAAAiC,IAAA,CAAAjC,CAAA,IAAA0B,iBAAA,CAAAxB,CAAA,EAAAuB,CAAA;AAAA,SAAAC,kBAAAxB,CAAA,EAAAuB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAvB,CAAA,CAAAgC,MAAA,MAAAT,CAAA,GAAAvB,CAAA,CAAAgC,MAAA,YAAAnC,CAAA,MAAAI,CAAA,GAAA4B,KAAA,CAAAN,CAAA,GAAA1B,CAAA,GAAA0B,CAAA,EAAA1B,CAAA,IAAAI,CAAA,CAAAJ,CAAA,IAAAG,CAAA,CAAAH,CAAA,UAAAI,CAAA;AAAA,SAAAkB,sBAAAnB,CAAA,EAAAiC,CAAA,QAAAnC,CAAA,WAAAE,CAAA,gCAAAkC,MAAA,IAAAlC,CAAA,CAAAkC,MAAA,CAAAC,QAAA,KAAAnC,CAAA,4BAAAF,CAAA,QAAAD,CAAA,EAAAI,CAAA,EAAAG,CAAA,EAAAgC,CAAA,EAAAb,CAAA,OAAAlB,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAN,CAAA,GAAAA,CAAA,CAAAe,IAAA,CAAAb,CAAA,GAAAqC,IAAA,QAAAJ,CAAA,QAAAnB,MAAA,CAAAhB,CAAA,MAAAA,CAAA,UAAAO,CAAA,uBAAAA,CAAA,IAAAR,CAAA,GAAAO,CAAA,CAAAS,IAAA,CAAAf,CAAA,GAAAwC,IAAA,MAAAf,CAAA,CAAAgB,IAAA,CAAA1C,CAAA,CAAA2C,KAAA,GAAAjB,CAAA,CAAAS,MAAA,KAAAC,CAAA,GAAA5B,CAAA,iBAAAL,CAAA,IAAAG,CAAA,OAAAF,CAAA,GAAAD,CAAA,yBAAAK,CAAA,YAAAP,CAAA,CAAA2C,MAAA,KAAAL,CAAA,GAAAtC,CAAA,CAAA2C,MAAA,IAAA3B,MAAA,CAAAsB,CAAA,MAAAA,CAAA,2BAAAjC,CAAA,QAAAF,CAAA,aAAAsB,CAAA;AAAA,SAAAL,gBAAAlB,CAAA,QAAA6B,KAAA,CAAAa,OAAA,CAAA1C,CAAA,UAAAA,CAAA;AAAA,SAAA2C,QAAA9C,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAA8B,IAAA,CAAA/C,CAAA,OAAAiB,MAAA,CAAA+B,qBAAA,QAAA1C,CAAA,GAAAW,MAAA,CAAA+B,qBAAA,CAAAhD,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAA2C,MAAA,WAAA9C,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAA+C,UAAA,OAAAjD,CAAA,CAAAyC,IAAA,CAAAS,KAAA,CAAAlD,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAmD,cAAApD,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAkD,SAAA,CAAAlB,MAAA,EAAAhC,CAAA,UAAAF,CAAA,WAAAoD,SAAA,CAAAlD,CAAA,IAAAkD,SAAA,CAAAlD,CAAA,QAAAA,CAAA,OAAA2C,OAAA,CAAA7B,MAAA,CAAAhB,CAAA,OAAAqD,OAAA,WAAAnD,CAAA,IAAAoD,eAAA,CAAAvD,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAuC,yBAAA,GAAAvC,MAAA,CAAAwC,gBAAA,CAAAzD,CAAA,EAAAiB,MAAA,CAAAuC,yBAAA,CAAAvD,CAAA,KAAA6C,OAAA,CAAA7B,MAAA,CAAAhB,CAAA,GAAAqD,OAAA,WAAAnD,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAAuD,gBAAAvD,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAuD,cAAA,CAAAvD,CAAA,MAAAH,CAAA,GAAAiB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,IAAAwC,KAAA,EAAA1C,CAAA,EAAAiD,UAAA,MAAAS,YAAA,MAAAC,QAAA,UAAA5D,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAA0D,eAAAzD,CAAA,QAAAM,CAAA,GAAAsD,YAAA,CAAA5D,CAAA,uCAAAM,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAsD,aAAA5D,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAoC,MAAA,CAAAyB,WAAA,kBAAA9D,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAgB,IAAA,CAAAf,CAAA,EAAAE,CAAA,uCAAAI,CAAA,SAAAA,CAAA,YAAAkB,SAAA,yEAAAtB,CAAA,GAAA4D,MAAA,GAAAC,MAAA,EAAA/D,CAAA;AAErE,SAASgE,aAAaA,CAC3BC,IAA0C,EACf;EAC3B,OAAQA,IAAI,CAAuBC,OAAO,KAAKC,SAAS;AAC1D;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAClBC,IAA8C;EAAA,OAE9CA,IAAI,CAACC,MAAM,CACT,UAACC,GAAG,EAAEC,GAAG;IAAA,OACPR,aAAa,CAACQ,GAAG,CAAC,GACd,CAAC,GAAGD,GAAG,EAAE,GAAGC,GAAG,CAACN,OAAO,CAACO,GAAG,CAAC,UAACpE,CAAC;MAAA,OAAKA,CAAC,CAACqE,EAAE;IAAA,EAAC,CAAC,GACzC,CAAC,GAAGH,GAAG,EAAEC,GAAG,CAACE,EAAE,CAAC;EAAA,GACtB,EACF,CAAC;AAAA;;AAEH;AACA;AACA;AACA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CACxBC,IAAwB,EACxBX,IAAsB,EACtBY,SAA2C,EACpB;EACvB,IAAMC,OAAO,GAAGD,SAAS,CAACZ,IAAI,CAACS,EAAE,CAAC;EAClC,IAAIK,KAAK,GAAGH,IAAI,CAACI,SAAS,CACxB,UAAC3E,CAAC;IAAA,OAAKwE,SAAS,CAACxE,CAAC,CAACqE,EAAE,CAAC,KAAKI,OAAO,IAAIzE,CAAC,CAACyB,IAAI,CAACmD,aAAa,CAAChB,IAAI,CAACnC,IAAI,CAAC,GAAG,CAAC;EAAA,CAC3E,CAAC;EACD,IAAIiD,KAAK,KAAK,CAAC,CAAC,EAAE;IAChBA,KAAK,GAAGD,OAAO,GACXF,IAAI,CAACN,MAAM,CAAC,UAACC,GAAG,EAAElE,CAAC,EAAEC,CAAC;MAAA,OAAMuE,SAAS,CAACxE,CAAC,CAACqE,EAAE,CAAC,GAAGpE,CAAC,GAAG,CAAC,GAAGiE,GAAG;IAAA,CAAC,EAAE,CAAC,CAAC,GAC9DK,IAAI,CAAC1C,MAAM;EACjB;EACA,OAAO,CAAC,GAAG0C,IAAI,CAAChD,KAAK,CAAC,CAAC,EAAEmD,KAAK,CAAC,EAAEd,IAAI,EAAE,GAAGW,IAAI,CAAChD,KAAK,CAACmD,KAAK,CAAC,CAAC;AAC9D,CAAC;;AAED;AACA;AACA;AACA;AACA,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CACjBC,IAAwB,EACxB5C,IAAwB,EACxB6C,MAA4B,EAC5BP,SAA2C,EACpB;EACvB,IAAMQ,QAAQ,GAAG,IAAIC,GAAG,CAAC/C,IAAI,CAACkC,GAAG,CAAC,UAACpE,CAAC;IAAA,OAAK,CAACA,CAAC,CAACqE,EAAE,EAAErE,CAAC,CAAC;EAAA,EAAC,CAAC;EACpD,IAAMkF,IAAI,GAAGJ,IAAI,CACdnC,MAAM,CAAC,UAAC3C,CAAC;IAAA,OAAK+E,MAAM,CAAC1E,GAAG,CAACL,CAAC,CAACqE,EAAE,CAAC,IAAIW,QAAQ,CAAC3E,GAAG,CAACL,CAAC,CAACqE,EAAE,CAAC;EAAA,EAAC,CACrDD,GAAG,CAAC,UAACpE,CAAC;IAAA,OAAKgF,QAAQ,CAAC1E,GAAG,CAACN,CAAC,CAACqE,EAAE,CAAC;EAAA,CAAoB,CAAC;EACrD,IAAMc,OAAO,GAAG,IAAIC,GAAG,CAACF,IAAI,CAACd,GAAG,CAAC,UAACpE,CAAC;IAAA,OAAKA,CAAC,CAACqE,EAAE;EAAA,EAAC,CAAC;EAC9C,IAAMgB,OAAO,GAAGnD,IAAI,CAACS,MAAM,CAAC,UAAC3C,CAAC;IAAA,OAAK,CAACmF,OAAO,CAAC9E,GAAG,CAACL,CAAC,CAACqE,EAAE,CAAC;EAAA,EAAC;EAEtD,OAAOgB,OAAO,CAACpB,MAAM,CACnB,UAACC,GAAG,EAAEN,IAAI;IAAA,OAAKU,oBAAoB,CAACJ,GAAG,EAAEN,IAAI,EAAEY,SAAS,CAAC;EAAA,GACzDU,IACF,CAAC;AACH,CAAC;AAED,IAAMI,cAAc,GAAG,SAAjBA,cAAcA,CAClBR,IAA8C,EAC9C5C,IAA8C,EAC9C6C,MAA4B,EAC5BP,SAA2C,EACE;EAC7C,IAAI,CAACtC,IAAI,CAACqD,KAAK,CAAC5B,aAAa,CAAC,IAAI,CAACmB,IAAI,CAACS,KAAK,CAAC5B,aAAa,CAAC,EAAE;IAC5D,OAAOkB,aAAa,CAClBC,IAAI,EACJ5C,IAAI,EACJ6C,MAAM,EACNP,SACF,CAAC;EACH;EAEA,IAAMgB,aAAa,GAAG,IAAIP,GAAG,CAACH,IAAI,CAACV,GAAG,CAAC,UAACqB,KAAK;IAAA,OAAK,CAACA,KAAK,CAACpB,EAAE,EAAEoB,KAAK,CAAC;EAAA,EAAC,CAAC;EAErE,OAAOvD,IAAI,CAACkC,GAAG,CAAC,UAACqB,KAAK;IAAA,IAAAC,qBAAA,EAAAC,kBAAA;IAAA,OAAA7C,aAAA,CAAAA,aAAA,KACjB2C,KAAK;MACR5B,OAAO,EAAEgB,aAAa,EAAAa,qBAAA,IAAAC,kBAAA,GACpBH,aAAa,CAAClF,GAAG,CAACmF,KAAK,CAACpB,EAAE,CAAC,cAAAsB,kBAAA,uBAA3BA,kBAAA,CAA6B9B,OAAO,cAAA6B,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAC1CD,KAAK,CAAC5B,OAAO,EACbkB,MAAM,EACNP,SACF;IAAC;EAAA,CACD,CAAC;AACL,CAAC;AAsEM,IAAMoB,YAAoC,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAvCA,YAAoCA,CAAAE,IAAA,EAwB3C;EAAA,IAvBJC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAAC,YAAA,GAAAF,IAAA,CACJjC,OAAO;IAAEoC,WAAW,GAAAD,YAAA,cAAG,EAAE,GAAAA,YAAA;IACzBE,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAAC,aAAA,GAAAL,IAAA,CACPM,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IACbE,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IAAAC,iBAAA,GAAAT,IAAA,CACZU,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,UAACE,MAAM;MAAA,OAAKA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEhF,IAAI;IAAA,IAAA8E,iBAAA;IACvCG,YAAY,GAAAZ,IAAA,CAAZY,YAAY;IAAAC,kBAAA,GAAAb,IAAA,CACZc,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,KAAK,GAAAA,kBAAA;IACrBE,YAAY,GAAAf,IAAA,CAAZe,YAAY;IACZC,eAAe,GAAAhB,IAAA,CAAfgB,eAAe;IACfC,iBAAiB,GAAAjB,IAAA,CAAjBiB,iBAAiB;IACjBC,oBAAoB,GAAAlB,IAAA,CAApBkB,oBAAoB;IACpBC,eAAe,GAAAnB,IAAA,CAAfmB,eAAe;IACfC,qBAAqB,GAAApB,IAAA,CAArBoB,qBAAqB;IACrBC,yBAAyB,GAAArB,IAAA,CAAzBqB,yBAAyB;IACzBC,qBAAqB,GAAAtB,IAAA,CAArBsB,qBAAqB;IAAAC,qBAAA,GAAAvB,IAAA,CACrBwB,oBAAoB;IAApBA,oBAAoB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAAE,kBAAA,GAAAzB,IAAA,CAC5B0B,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,GAAG,GAAAA,kBAAA;IACnBE,kBAAkB,GAAA3B,IAAA,CAAlB2B,kBAAkB;IAAAC,iBAAA,GAAA5B,IAAA,CAClB6B,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,EAAE,GAAAA,iBAAA;IACjBE,cAAc,GAAA9B,IAAA,CAAd8B,cAAc;IACdC,qBAAqB,GAAA/B,IAAA,CAArB+B,qBAAqB;EAErB,IAAMC,gBAAgB,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACrD,IAAMC,OAAO,GAAG,IAAAD,aAAM,EAAgB,IAAI,CAAC;;EAE3C;EACA;EACA,IAAMlE,OAAO,GAAG,IAAAoE,cAAO,EAAC;IAAA,OAAMhC,WAAW,CAACtD,MAAM,CAACuF,OAAO,CAAC;EAAA,GAAE,CAACjC,WAAW,CAAC,CAAC;EAEzE,IAAMkC,eAAe,GAAG,IAAAF,cAAO,EAAC,YAAM;IACpC,IAAIvG,KAAK,CAACa,OAAO,CAAC6D,QAAQ,CAAC,EAAE;MAC3B,OAAOA,QAAQ;IACjB;IACA,OAAO,CAACA,QAAQ,CAAC;EACnB,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd;EACA;EACA;EACA,IAAMgC,SAAS,GAAG,IAAAL,aAAM,EAAC,IAAI3C,GAAG,CAACrB,cAAc,CAACF,OAAO,CAAC,CAAC,CAAC;EAE1D,IAAMwE,UAAU,GAAG,IAAAC,kBAAW,EAC5B,UAACtE,IAAI,EAAK;IAAA,IAAAuE,MAAA;IACR,IAAIjB,oBAAoB,EAAE;MACxB,OAAOtD,IAAI;IACb;IAEA,IAAMwE,SAAS,GAAG9G,KAAK,CAACa,OAAO,EAAAgG,MAAA,GAACvE,IAAI,CAAC,CAAC,CAAC,cAAAuE,MAAA,uBAAPA,MAAA,CAAS1E,OAAO,CAAC;IAEjD,IAAM4E,WAAW,GAAG,SAAdA,WAAWA,CAAIrH,CAAC,EAAEsH,CAAC,EAAK;MAC5B,IAAMC,SAAS,GAAGR,eAAe,CAACS,QAAQ,CAACxH,CAAC,CAACiD,EAAE,CAAC;MAChD,IAAMwE,SAAS,GAAGV,eAAe,CAACS,QAAQ,CAACF,CAAC,CAACrE,EAAE,CAAC;MAChD,IAAMyE,MAAM,GAAGnB,YAAY,CAACiB,QAAQ,CAACxH,CAAC,CAACiD,EAAE,CAAC;MAC1C,IAAM0E,MAAM,GAAGpB,YAAY,CAACiB,QAAQ,CAACF,CAAC,CAACrE,EAAE,CAAC;MAE1C,IAAIsE,SAAS,IAAI,CAACE,SAAS,EAAE;QAC3B,OAAO,CAAC,CAAC;MACX;MACA,IAAI,CAACF,SAAS,IAAIE,SAAS,EAAE;QAC3B,OAAO,CAAC;MACV;MACA,IAAIC,MAAM,IAAI,CAACC,MAAM,EAAE;QACrB,OAAO,CAAC,CAAC;MACX;MACA,IAAI,CAACD,MAAM,IAAIC,MAAM,EAAE;QACrB,OAAO,CAAC;MACV;MACA,OAAO,CAAC;IACV,CAAC;IAED,IAAIP,SAAS,EAAE;MACb,OAAOxE,IAAI,CAACI,GAAG,CAAC,UAACqB,KAAK;QAAA,OAAA3C,aAAA,CAAAA,aAAA,KACjB2C,KAAK;UACR5B,OAAO,EAAE,CAAC,GAAG4B,KAAK,CAAC5B,OAAO,CAAC,CAACmF,IAAI,CAACP,WAAW;QAAC;MAAA,CAC7C,CAAC;IACL,CAAC,MAAM;MACL,OAAO,CAAC,GAAGzE,IAAI,CAAC,CAACgF,IAAI,CAACP,WAAW,CAAC;IACpC;EACF,CAAC,EACD,CAACnB,oBAAoB,EAAEa,eAAe,EAAER,YAAY,CACtD,CAAC;EAED,IAAMsB,QAAQ,GAAG,IAAAX,kBAAW,EAC1B,UAACzE,OAAO,EAAK;IAAA,IAAAqF,SAAA;IACX,IAAIjC,eAAe,EAAE;MACnB,OAAOpD,OAAO;IAChB;IAEA,IAAImD,oBAAoB,EAAE;MACxB,OAAOqB,UAAU,CAACxE,OAAO,CAAC;IAC5B;IAEA,IAAMsF,SAAS,GAAG,SAAZA,SAASA,CAAI/H,CAAC,EAAEsH,CAAC;MAAA,OACrB9B,aAAa,KAAK,KAAK,GACnBxF,CAAC,CAACK,IAAI,CAACmD,aAAa,CAAC8D,CAAC,CAACjH,IAAI,CAAC,GAC5BiH,CAAC,CAACjH,IAAI,CAACmD,aAAa,CAACxD,CAAC,CAACK,IAAI,CAAC;IAAA;IAElC,IAAM+G,SAAS,GAAG9G,KAAK,CAACa,OAAO,EAAA2G,SAAA,GAACrF,OAAO,CAAC,CAAC,CAAC,cAAAqF,SAAA,uBAAVA,SAAA,CAAYrF,OAAO,CAAC;IAEpD,IAAI2E,SAAS,EAAE;MACb,IAAMY,aAAa,GAAGvF,OAAO,CAACO,GAAG,CAAC,UAACqB,KAAK;QAAA,OAAA3C,aAAA,CAAAA,aAAA,KACnC2C,KAAK;UACR5B,OAAO,EAAEwE,UAAU,CAAC,CAAC,GAAG5C,KAAK,CAAC5B,OAAO,CAAC,CAACmF,IAAI,CAACG,SAAS,CAAC;QAAC;MAAA,CACvD,CAAC;MAEH,OAAOd,UAAU,CAACe,aAAa,CAAC;IAClC,CAAC,MAAM;MACL,OAAOf,UAAU,CAAC,CAAC,GAAGxE,OAAO,CAAC,CAACmF,IAAI,CAACG,SAAS,CAAC,CAAC;IACjD;EACF,CAAC,EACD,CAACvC,aAAa,EAAEI,oBAAoB,EAAEC,eAAe,EAAEoB,UAAU,CACnE,CAAC;EAED,IAAAgB,SAAA,GAAoC,IAAAC,eAAQ,EAAC;MAAA,OAAML,QAAQ,CAACpF,OAAO,CAAC;IAAA,EAAC;IAAA0F,UAAA,GAAAzI,cAAA,CAAAuI,SAAA;IAA9DG,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;;EAEhC;EACA;EACA;EACA;EACA,IAAMG,gBAAgB,GAAG,IAAA3B,aAAM,EAAC,IAAI,CAAC;EACrC,IAAM4B,WAAW,GAAGxB,eAAe,CAACyB,IAAI,CAAC,GAAG,CAAC;EAE7C,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIH,gBAAgB,CAACI,OAAO,EAAE;MAC5BJ,gBAAgB,CAACI,OAAO,GAAG,KAAK;MAChC;IACF;IAEA,IAAI7C,eAAe,EAAE;MACnBwC,aAAa,CAAC5F,OAAO,CAAC;MACtB;IACF;IAEA,IAAIyD,oBAAoB,EAAE;MACxBmC,aAAa,CAACR,QAAQ,CAACpF,OAAO,CAAC,CAAC;MAChC;IACF;IAEA,IAAI2F,UAAU,CAAC3H,MAAM,KAAK,CAAC,EAAE;MAC3BuG,SAAS,CAAC0B,OAAO,GAAG,IAAI1E,GAAG,CAACrB,cAAc,CAACF,OAAO,CAAC,CAAC;MACpD4F,aAAa,CAACR,QAAQ,CAACpF,OAAO,CAAC,CAAC;MAChC;IACF;IAEA,IAAMW,SAAS,GAAG,SAAZA,SAASA,CAAIH,EAAmB;MAAA,OAAK8D,eAAe,CAACS,QAAQ,CAACvE,EAAE,CAAC;IAAA;IACvE,IAAMU,MAAM,GAAGqD,SAAS,CAAC0B,OAAO;IAEhC,IAAMC,UAAU,GAAG,IAAI3E,GAAG,CAACL,MAAM,CAAC;IAClChB,cAAc,CAACF,OAAO,CAAC,CAACb,OAAO,CAAC,UAACqB,EAAE,EAAK;MACtC,IAAI,CAACU,MAAM,CAAC1E,GAAG,CAACgE,EAAE,CAAC,IAAIG,SAAS,CAACH,EAAE,CAAC,EAAE;QACpC0F,UAAU,CAACC,GAAG,CAAC3F,EAAE,CAAC;MACpB;IACF,CAAC,CAAC;IACF+D,SAAS,CAAC0B,OAAO,GAAGC,UAAU;IAE9BN,aAAa,CAACnE,cAAc,CAACkE,UAAU,EAAE3F,OAAO,EAAEkB,MAAM,EAAEP,SAAS,CAAC,CAAC;IACrE;EACF,CAAC,EAAE,CAACX,OAAO,EAAE8F,WAAW,CAAC,CAAC;EAE1B,IAAAM,UAAA,GAA0B,IAAAX,eAAQ,EAAS;MACzC1F,IAAI,EAAEE,SAAS;MACfoG,EAAE,EAAEpG;IACN,CAAC,CAAC;IAAAqG,UAAA,GAAArJ,cAAA,CAAAmJ,UAAA;IAHKG,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EAItB,IAAAG,UAAA,GAA4B,IAAAhB,eAAQ,EAAC,EAAE,CAAC;IAAAiB,UAAA,GAAAzJ,cAAA,CAAAwJ,UAAA;IAAjC3H,MAAM,GAAA4H,UAAA;IAAEC,SAAS,GAAAD,UAAA;EAExB,IAAME,WAAW,GAAG,IAAAnC,kBAAW,EAC7B,UAAC5I,CAAC,EAAK;IACL,IAAIA,CAAC,IAAIA,CAAC,CAACgL,MAAM,KAAK,CAAC,EAAE;MACvB;IACF;IACA,IAAI3D,iBAAiB,EAAE;MAAA,IAAA4D,gBAAA;MACrBzE,OAAO,aAAPA,OAAO,gBAAAyE,gBAAA,GAAPzE,OAAO,CAAE4D,OAAO,cAAAa,gBAAA,eAAhBA,gBAAA,CAAkBC,KAAK,CAAC,CAAC;MACzBJ,SAAS,CAAC,EAAE,CAAC;MACbzD,iBAAiB,CAACpE,MAAM,CAAC;IAC3B;EACF,CAAC,EACD,CAACA,MAAM,EAAEoE,iBAAiB,EAAEb,OAAO,CACrC,CAAC;EAED,IAAM2E,kBAAkB,GAAG,IAAAvC,kBAAW,EACpC;IAAA,OAAM+B,QAAQ,CAAC;MAAEzG,IAAI,EAAE,QAAQ;MAAEsG,EAAE,EAAE;IAAQ,CAAC,CAAC;EAAA,GAC/C,EACF,CAAC;EAED,IAAMY,UAAU,GAAG,IAAA7C,cAAO,EAAC,YAAM;IAC/B,OAAO,CAAC,EACN5B,UAAU,IACV1D,MAAM,CAACoI,IAAI,CAAC,CAAC,IACblH,OAAO,CAAC0B,KAAK,CAAC,UAACkB,MAAM,EAAK;MACxB,IAAI9C,aAAa,CAAC8C,MAAM,CAAC,EAAE;QACzB,OAAOA,MAAM,CAAC5C,OAAO,CAAC0B,KAAK,CACzB,UAACyF,CAAC;UAAA,OAAKA,CAAC,CAACvJ,IAAI,CAACwJ,WAAW,CAAC,CAAC,KAAKtI,MAAM,CAACoI,IAAI,CAAC,CAAC,CAACE,WAAW,CAAC,CAAC;QAAA,CAC7D,CAAC;MACH;MACA,OAAOxE,MAAM,CAAChF,IAAI,CAACwJ,WAAW,CAAC,CAAC,KAAKtI,MAAM,CAACoI,IAAI,CAAC,CAAC,CAACE,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC,CACH;EACH,CAAC,EAAE,CAAC5E,UAAU,EAAE1D,MAAM,EAAEkB,OAAO,CAAC,CAAC;EAEjC,IAAMqH,aAAa,GAAG,IAAA5C,kBAAW,EAC/B,UAACzE,OAAO,EAAElB,MAAM,EAAK;IACnB,IAAMwI,aAAa,GAAGxI,MAAM,CAACoI,IAAI,CAAC,CAAC;IACnC,IAAMvC,SAAS,GAAG3E,OAAO,CAAC,CAAC,CAAC,IAAIF,aAAa,CAACE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzD,IAAMuH,aAAa,GAAG,SAAhBA,aAAaA,CAAI3E,MAAwB,EAAK;MAClD,IAAIA,MAAM,CAAC4E,MAAM,EAAE;QACjB,OAAO,KAAK;MACd;MAEA,IAAMC,SAAS,GAAG7E,MAAM,CAAChF,IAAI,CAC1BwJ,WAAW,CAAC,CAAC,CACbrC,QAAQ,CAACuC,aAAa,CAACF,WAAW,CAAC,CAAC,CAAC;MAExC,IAAIrD,cAAc,IAAIuD,aAAa,EAAE;QACnC,OAAOG,SAAS,IAAI1D,cAAc,CAACnB,MAAM,EAAE0E,aAAa,CAAC;MAC3D;MAEA,OAAOG,SAAS;IAClB,CAAC;IAED,IAAI9C,SAAS,EAAE;MACb,IAAI+C,OAAO,GAAG,KAAK;MACnB,OAAO1H,OAAO,CAACI,MAAM,CAAC,UAACC,GAAG,EAAEsH,aAAa,EAAK;QAC5C,IAAMC,eAAe,GAAGD,aAAa,CAAC3H,OAAO,CAAClB,MAAM,CAACyI,aAAa,CAAC;QAEnE,IAAIK,eAAe,CAAC5J,MAAM,GAAG,CAAC,EAAE;UAC9B,IAAI,CAAC0J,OAAO,IAAI5I,MAAM,EAAE;YACtB0H,QAAQ,CAAC;cAAEzG,IAAI,EAAE6H,eAAe,CAAC,CAAC,CAAC,CAACpH,EAAE;cAAE6F,EAAE,EAAE;YAAW,CAAC,CAAC;UAC3D;UACAqB,OAAO,GAAG,IAAI;UACd,OAAO,CAAC,GAAGrH,GAAG,EAAApB,aAAA,CAAAA,aAAA,KAAO0I,aAAa;YAAE3H,OAAO,EAAE4H;UAAe,GAAG;QACjE;QACA,OAAO,CAAC,GAAGvH,GAAG,CAAC;MACjB,CAAC,EAAE,EAAE,CAAC;IACR,CAAC,MAAM;MACL,IAAMuH,eAAe,GAAG5H,OAAO,CAAClB,MAAM,CAACyI,aAAa,CAAC;MAErD,IAAIzI,MAAM,IAAI8I,eAAe,CAAC5J,MAAM,GAAG,CAAC,EAAE;QACxCwI,QAAQ,CAAC;UAAEzG,IAAI,EAAE6H,eAAe,CAAC,CAAC,CAAC,CAACpH,EAAE;UAAE6F,EAAE,EAAE;QAAW,CAAC,CAAC;MAC3D;MACA,IAAIuB,eAAe,CAAC5J,MAAM,KAAK,CAAC,IAAIwE,UAAU,EAAE;QAC9CgE,QAAQ,CAAC;UAAEzG,IAAI,EAAE,QAAQ;UAAEsG,EAAE,EAAE;QAAW,CAAC,CAAC;MAC9C;MACA,OAAOuB,eAAe;IACxB;EACF,CAAC,EACD,CAACpF,UAAU,EAAEuB,cAAc,CAC7B,CAAC;EAED,IAAMrD,IAAI,GAAG,IAAA0D,cAAO,EAClB;IAAA,OAAOhB,eAAe,GAAGuC,UAAU,GAAG0B,aAAa,CAAC1B,UAAU,EAAE7G,MAAM,CAAC;EAAA,CAAC,EACxE,CAACA,MAAM,EAAEuI,aAAa,EAAEjE,eAAe,EAAEuC,UAAU,CACrD,CAAC;EAED,IAAMkC,iBAAiB,GAAG,IAAAzD,cAAO,EAC/B;IAAA,OAAM,CAAC,CAACvB,YAAY,IAAI,CAAC/D,MAAM;EAAA,GAC/B,CAAC+D,YAAY,EAAE/D,MAAM,CACvB,CAAC;EAED,IAAMgJ,WAAW,GAAG,IAAA1D,cAAO,EAAC,YAAM;IAChC,IAAMpE,OAAO,GAAGU,IAAI,CAACN,MAAM,CACzB,UACEC,GAAkD,EAClDuC,MAA4C,EACzC;MACH,IAAI,CAAC9C,aAAa,CAAC8C,MAAM,CAAC,EAAE;QAC1B,OAAO,CAAC,GAAGvC,GAAG,EAAEuC,MAAM,CAAC;MACzB;MACA,OAAO,CAAC,GAAGvC,GAAG,EAAE,GAAGuC,MAAM,CAAC5C,OAAO,CAAC;IACpC,CAAC,EACD,EACF,CAAC;IACD,OAAOqH,aAAa,CAACrH,OAAO,EAAElB,MAAM,CAAC;EACvC,CAAC,EAAE,CAACA,MAAM,EAAEuI,aAAa,EAAE3G,IAAI,CAAC,CAAC;EAEjC,IAAMqH,qBAAqB,GAAG,IAAA3D,cAAO,EACnC;IAAA,OACE3B,YAAY,IACZ,CAACwE,UAAU,IACXvG,IAAI,CAAC1C,MAAM,GAAG,CAAC,KACb6E,YAAY,IAAI/D,MAAM,IAAK,CAAC+D,YAAY,CAAC;EAAA,GAC7C,CAACJ,YAAY,EAAEwE,UAAU,EAAEvG,IAAI,CAAC1C,MAAM,EAAE6E,YAAY,EAAE/D,MAAM,CAC9D,CAAC;EAED,IAAMkJ,YAAY,GAAG,IAAA5D,cAAO,EAAC,YAAM;IACjC,IAAM6D,KAAoB,GAAG,EAAE;IAE/B,IAAIJ,iBAAiB,EAAE;MACrBI,KAAK,CAAC1J,IAAI,CAAC;QACT2D,IAAI,EAAE,SAAS;QACf1B,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;IAEAE,IAAI,CAACvB,OAAO,CAAC,UAACY,IAAI,EAAEc,KAAK,EAAK;MAC5B,IAAIf,aAAa,CAACC,IAAI,CAAC,EAAE;QACvBkI,KAAK,CAAC1J,IAAI,CAAC;UACT2D,IAAI,EAAE,OAAO;UACb1B,EAAE,EAAET,IAAI,CAACS,EAAE;UACXT;QACF,CAAC,CAAC;QAEFA,IAAI,CAACC,OAAO,CAACb,OAAO,CAAC,UAACyD,MAAM,EAAK;UAC/BqF,KAAK,CAAC1J,IAAI,CAAC;YACT2D,IAAI,EAAE,QAAQ;YACd1B,EAAE,EAAEoC,MAAM,CAACpC,EAAE;YACbT,IAAI,EAAE6C,MAAM;YACZ/B;UACF,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,MAAM;QACLoH,KAAK,CAAC1J,IAAI,CAAC;UACT2D,IAAI,EAAE,QAAQ;UACd1B,EAAE,EAAET,IAAI,CAACS,EAAE;UACXT,IAAI;UACJc;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,IAAIkH,qBAAqB,EAAE;MACzBE,KAAK,CAAC1J,IAAI,CAAC;QACT2D,IAAI,EAAE,UAAU;QAChB1B,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;IAEA,IAAIyG,UAAU,EAAE;MACdgB,KAAK,CAAC1J,IAAI,CAAC;QACT2D,IAAI,EAAE,QAAQ;QACd1B,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;IAEA,OAAOyH,KAAK;EACd,CAAC,EAAE,CAACvH,IAAI,EAAEmH,iBAAiB,EAAEE,qBAAqB,EAAEd,UAAU,CAAC,CAAC;EAEhE,IAAMiB,uBAAuB,GAC3B,CAAClE,qBAAqB,IAAIgE,YAAY,CAAChK,MAAM,GAAG,EAAE;EAEpD,IAAMmK,cAAc,GAAG,IAAAC,4BAAc,EAAC;IACpCC,KAAK,EAAEL,YAAY,CAAChK,MAAM;IAC1BsK,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAA;MAAA,OAAQrE,gBAAgB,CAACgC,OAAO;IAAA;IAChDsC,YAAY,EAAE,SAAdA,YAAYA,CAAA;MAAA,OAAQ,EAAE;IAAA;IACtBC,QAAQ,EAAE,CAAC;IACXC,GAAG,EAAE;EACP,CAAC,CAAC;EAEF,IAAMC,iBAAiB,GAAG,IAAAjE,kBAAW,EAAC,UAAC5I,CAAC,EAAK;IAC3C,IACEA,CAAC,CAAC8M,MAAM,IACR,EAAE9M,CAAC,CAAC+M,GAAG,KAAK,WAAW,CAAC,IACxB,EAAE/M,CAAC,CAAC+M,GAAG,KAAK,SAAS,CAAC,IACtB,EAAE/M,CAAC,CAAC+M,GAAG,KAAK,OAAO,CAAC,EACpB;MACAjC,SAAS,CAAC9K,CAAC,CAAC8M,MAAM,CAACnK,KAAK,CAAC;IAC3B;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMqK,mBAAmB,GAAG,IAAApE,kBAAW,EACrC,UAAC5I,CAA8B,EAAW;IACxC2K,QAAQ,CAAC;MAAEzG,IAAI,EAAElE,CAAC;MAAEwK,EAAE,EAAE;IAAQ,CAAC,CAAC;EACpC,CAAC,EACD,EACF,CAAC;EAED,IAAMyC,cAAc,GAAG,IAAArE,kBAAW,EAChC,UAACjE,EAAE,EAAK;IACN,IAAIuI,MAAM;IAEV,IAAIvI,EAAE,KAAK,IAAI,EAAE;MACf,IAAI0B,IAAI,KAAK,UAAU,EAAE;QACvB,IAAIoC,eAAe,CAACS,QAAQ,CAACvE,EAAE,CAAC,EAAE;UAChCuI,MAAM,GAAGzE,eAAe,CAACxF,MAAM,CAAC,UAACkK,GAAG;YAAA,OAAKA,GAAG,KAAKxI,EAAE;UAAA,EAAC;QACtD,CAAC,MAAM;UACLuI,MAAM,GAAG,CAAC,GAAGzE,eAAe,EAAE9D,EAAE,CAAC;QACnC;MACF,CAAC,MAAM;QACLuI,MAAM,GAAGvI,EAAE;MACb;MACA,IAAIoD,kBAAkB,IAAIvB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE4D,OAAO,EAAE;QAC1C5D,OAAO,CAAC4D,OAAO,CAACzH,KAAK,GAAG,EAAE;QAC1B6D,OAAO,CAAC4D,OAAO,CAACgD,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAAC;MACvE;MACAxC,SAAS,CAAC,EAAE,CAAC;IACf,CAAC,MAAM;MACL,IAAI,OAAOrD,yBAAyB,KAAK,UAAU,EAAE;QACnDA,yBAAyB,CAAC,CAAC;QAC3B;MACF;IACF;IAEA,IAAI,OAAON,YAAY,KAAK,UAAU,EAAE;MACtCA,YAAY,CAAC+F,MAAM,CAAC;IACtB;EACF,CAAC,EACD,CACEnF,kBAAkB,EAClBZ,YAAY,EACZM,yBAAyB,EACzBjB,OAAO,EACPiC,eAAe,EACfpC,IAAI,CAER,CAAC;EAED,IAAMkH,gBAAgB,GAAG,IAAA3E,kBAAW,EAAC,UAAC5I,CAAC,EAAK;IAC1C,IAAIA,CAAC,KAAKoE,SAAS,IAAIpE,CAAC,KAAK,IAAI,EAAE;MACjC,OAAO2K,QAAQ,CAAC;QAAEzG,IAAI,EAAE,IAAI;QAAEsG,EAAE,EAAE;MAAQ,CAAC,CAAC;IAC9C;IACAG,QAAQ,CAAC;MAAEzG,IAAI,EAAElE,CAAC;MAAEwK,EAAE,EAAE;IAAQ,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMgD,WAAW,GAAG,IAAA5E,kBAAW,EAC7B,UAAC5I,CAAC,EAAK;IACLA,CAAC,CAACyN,cAAc,CAAC,CAAC;IAClBR,cAAc,CAACvC,KAAK,CAACxG,IAAI,CAAC;EAC5B,CAAC,EACD,CAAC+I,cAAc,EAAEvC,KAAK,CACxB,CAAC;EAED,IAAMgD,kBAAkB,GAAG,IAAA9E,kBAAW,EACpC,UAAC1E,IAA0C,EAAEc,KAAK,EAAK;IACrD,IAAIf,aAAa,CAACC,IAAI,CAAC,EAAE;MACvB,oBACE7E,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAAC5N,YAAA,CAAA6N,WAAW;QACV7I,OAAO,EAAE0D,eAAgB;QACzB1G,IAAI,EAAEmC,IAAI,CAACnC,IAAK;QAChB8L,IAAI,EAAE3J,IAAI,CAAC2J,IAAK;QAChBC,OAAO,EAAE5J,IAAI,CAAC4J,OAAQ;QACtBf,GAAG,EAAE7I,IAAI,CAACS,EAAG;QACbgG,QAAQ,EAAEqC,mBAAoB;QAC9BrI,EAAE,EAAET,IAAI,CAACS,EAAG;QACZ+F,KAAK,EAAEA,KAAK,CAACxG,IAAK;QAClBC,OAAO,EAAED,IAAI,CAACC,OAAQ;QACtB4J,aAAa,EAAEL,kBAAmB;QAClCrH,IAAI,EAAEA,IAAK;QACX2H,QAAQ,EAAE7G,YAAa;QACvBlE,MAAM,EAAEA,MAAO;QACfgF,YAAY,EAAEA;MAAa,CAC5B,CAAC;IAEN;IACA,oBACE5I,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAAC9N,OAAA,CAAAoO,MAAM;MACLlM,IAAI,EAAEmC,IAAI,CAACnC,IAAK;MAChBmM,GAAG,EAAExD,KAAK,CAACxG,IAAI,KAAKA,IAAI,CAACS,EAAE,GAAG2D,OAAO,GAAG,IAAK;MAC7CyE,GAAG,EAAE/H,KAAM;MACX8I,OAAO,EAAE5J,IAAI,CAAC4J,OAAQ;MACtBK,YAAY,EAAEZ,gBAAiB;MAC/Ba,OAAO,EAAEZ,WAAY;MACrB7I,EAAE,EAAET,IAAI,CAACS,EAAG;MACZ+F,KAAK,EAAExG,IAAI,CAACS,EAAE,KAAK+F,KAAK,CAACxG,IAAK;MAC9BmK,SAAS,EAAEjH,eAAgB;MAC3BN,YAAY,EAAEA,YAAY,CAAA1D,aAAA,CAAAA,aAAA,KACnBc,IAAI;QAAEnC,IAAI,EAAE,IAAAuM,yBAAa,EAACpK,IAAI,CAACnC,IAAI,EAAEkB,MAAM;MAAC,IACjD;QACE0B,EAAE,YAAA4J,MAAA,CAAYrK,IAAI,CAACS,EAAE,CAAE;QACvBI,OAAO,EAAE0D,eAAe,IAAIA,eAAe,CAACS,QAAQ,CAAChF,IAAI,CAACS,EAAE,CAAC;QAC7D+F,KAAK,EAAEA,KAAK,CAACxG,IAAI,KAAKA,IAAI,CAACS,EAAE;QAC7BqJ,QAAQ,EAAE,SAAVA,QAAQA,CAAA;UAAA,OAAQ,IAAI;QAAA;MACtB,CACF;IAAE,CACH,CAAC;EAEN,CAAC,EACD,CACER,WAAW,EACXD,gBAAgB,EAChB7C,KAAK,CAACxG,IAAI,EACVkD,eAAe,EACfN,YAAY,EACZ7D,MAAM,EACNwF,eAAe,EACfuE,mBAAmB,EACnB3G,IAAI,EACJc,YAAY,EACZc,YAAY,CAEhB,CAAC;EAED,IAAMuG,kBAAkB,GAAG,IAAA5F,kBAAW,EAAC,YAAM;IAC3C+B,QAAQ,CAAC;MAAEzG,IAAI,EAAEE,SAAS;MAAEoG,EAAE,EAAE;IAAQ,CAAC,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAL,gBAAS,EAAC,YAAM;IACd,IAAIO,KAAK,CAACF,EAAE,KAAK,UAAU,IAAIE,KAAK,CAACxG,IAAI,KAAKE,SAAS,EAAE;MACvD,IAAMY,KAAK,GAAGmH,YAAY,CAAClH,SAAS,CAAC,UAACf,IAAI;QAAA,OAAKA,IAAI,CAACS,EAAE,KAAK+F,KAAK,CAACxG,IAAI;MAAA,EAAC;MACtE,IAAIc,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBsH,cAAc,CAACmC,aAAa,CAACzJ,KAAK,EAAE;UAAE0J,KAAK,EAAE;QAAS,CAAC,CAAC;MAC1D;IACF;EACF,CAAC,EAAE,CAAChE,KAAK,EAAE4B,cAAc,EAAEH,YAAY,CAAC,CAAC;EAEzC,IAAMwC,eAAe,GAAG,IAAA/F,kBAAW,EACjC,UAAC5I,CAAC,EAAK;IACL,IAAIA,CAAC,CAAC+M,GAAG,KAAK,OAAO,EAAE;MACrB/M,CAAC,CAACyN,cAAc,CAAC,CAAC;MAElB,IAAI/C,KAAK,CAACxG,IAAI,KAAKE,SAAS,IAAInB,MAAM,KAAK,EAAE,EAAE;QAC7C;MACF;MACA,IAAIyH,KAAK,CAACxG,IAAI,KAAK,QAAQ,EAAE;QAC3B6G,WAAW,CAAC,IAAI,CAAC;QACjB;MACF;MACA,IAAIL,KAAK,CAACxG,IAAI,KAAK,IAAI,IAAIuD,yBAAyB,EAAE;QACpDA,yBAAyB,CAAC,CAAC;QAC3B;MACF;MAEA,IAAI,OAAOiD,KAAK,CAACxG,IAAI,KAAK,WAAW,IAAIwG,KAAK,CAACxG,IAAI,KAAK,IAAI,EAAE;QAC5D+I,cAAc,CAACvC,KAAK,CAACxG,IAAI,CAAC;QAC1B4G,SAAS,CAAC,EAAE,CAAC;MACf;MACA;IACF;IACAH,QAAQ,CAAC;MACPzG,IAAI,EAAE,IAAA0K,sCAAsB,EAC1B5O,CAAC,EACD0K,KAAK,CAACxG,IAAI,EACV+H,WAAW,EACXb,UAAU,EACVY,iBACF,CAAC;MACDxB,EAAE,EAAE;IACN,CAAC,CAAC;EACJ,CAAC,EACD,CACEvH,MAAM,EACNgJ,WAAW,EACXgB,cAAc,EACdxF,yBAAyB,EACzBsD,WAAW,EACXL,KAAK,EACLU,UAAU,EACVY,iBAAiB,CAErB,CAAC;EAED,IAAA7B,gBAAS,EAAC,YAAM;IACd,IAAM0E,cAAc,GAAGrI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE4D,OAAO;IACvC,IAAI,CAACyE,cAAc,EAAE;IAErBA,cAAc,CAACC,gBAAgB,CAAC,OAAO,EAAEjC,iBAAiB,CAAC;IAC3DgC,cAAc,CAACC,gBAAgB,CAAC,SAAS,EAAEH,eAAe,CAAC;IAC3D,OAAO,YAAM;MACXE,cAAc,CAACE,mBAAmB,CAAC,OAAO,EAAElC,iBAAiB,CAAC;MAC9DgC,cAAc,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,eAAe,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAAC9B,iBAAiB,EAAE8B,eAAe,EAAEnI,OAAO,CAAC,CAAC;EAEjD,IAAMwI,uBAAuB,GAAG,IAAApG,kBAAW,EAAC,YAAM;IAChD,IAAIlB,qBAAqB,EAAE;MACzB,OAAOe,eAAe,CAACtG,MAAM,GAAG,CAAC,IAAIsG,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE;IAChE,CAAC,MAAM;MACL,OACEA,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,IAC3BA,eAAe,CAACtG,MAAM,KAAK8J,WAAW,CAAC9J,MAAM;IAEjD;EACF,CAAC,EAAE,CAAC8J,WAAW,CAAC9J,MAAM,EAAEuF,qBAAqB,EAAEe,eAAe,CAAC,CAAC;EAEhE,IAAMwG,iBAAiB,GAAG,IAAArG,kBAAW,EACnC,UAACsG,WAAwB,EAAElK,KAAa,EAAK;IAC3C,QAAQkK,WAAW,CAAC7I,IAAI;MACtB,KAAK,SAAS;QACZ,oBACEhH,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAAC9N,OAAA,CAAAoO,MAAM;UACLlM,IAAI,EAAEgC,MAAM,CAACiD,YAAY,CAAE;UAC3BkH,GAAG,EAAExD,KAAK,CAACxG,IAAI,KAAK,IAAI,GAAGoE,OAAO,GAAG,IAAK;UAC1CoC,KAAK,EAAEA,KAAK,CAACxG,IAAI,KAAK,IAAK;UAC3BiK,YAAY,EAAEZ,gBAAiB;UAC/Ba,OAAO,EAAE,SAATA,OAAOA,CAAGpO,CAAC,EAAK;YACdA,CAAC,CAACyN,cAAc,CAAC,CAAC;YAClBR,cAAc,CAAC,IAAI,CAAC;UACtB,CAAE;UACFnG,YAAY,EAAEA,YAAY,CACxB;YAAE/E,IAAI,EAAEiF,YAAY;YAAErC,EAAE,EAAE;UAAK,CAAC,EAChC;YACEI,OAAO,EAAEiK,uBAAuB,CAAC,CAAC;YAClCtE,KAAK,EAAEA,KAAK,CAACxG,IAAI,KAAK,IAAI;YAC1B8J,QAAQ,EAAE,SAAVA,QAAQA,CAAA;cAAA,OAAQ,IAAI;YAAA;UACtB,CACF;QAAE,CACH,CAAC;MAGN,KAAK,OAAO;QACV,IAAI,CAACkB,WAAW,CAAChL,IAAI,IAAI,CAACD,aAAa,CAACiL,WAAW,CAAChL,IAAI,CAAC,EACvD,OAAO,IAAI;QACb,oBACE7E,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAAC5N,YAAA,CAAA6N,WAAW;UACV7I,OAAO,EAAE0D,eAAgB;UACzB1G,IAAI,EAAEmN,WAAW,CAAChL,IAAI,CAACnC,IAAK;UAC5B8L,IAAI,EAAEqB,WAAW,CAAChL,IAAI,CAAC2J,IAAK;UAC5BC,OAAO,EAAEoB,WAAW,CAAChL,IAAI,CAAC4J,OAAQ;UAClCf,GAAG,EAAEmC,WAAW,CAAChL,IAAI,CAACS,EAAG;UACzBgG,QAAQ,EAAEqC,mBAAoB;UAC9BrI,EAAE,EAAEuK,WAAW,CAAChL,IAAI,CAACS,EAAG;UACxB+F,KAAK,EAAEA,KAAK,CAACxG,IAAK;UAClBC,OAAO,EAAE+K,WAAW,CAAChL,IAAI,CAACC,OAAQ;UAClC4J,aAAa,EAAEL,kBAAmB;UAClCrH,IAAI,EAAEA,IAAK;UACX2H,QAAQ,EAAE7G,YAAa;UACvBlE,MAAM,EAAEA,MAAO;UACfgF,YAAY,EAAEA;QAAa,CAC5B,CAAC;MAGN,KAAK,QAAQ;QACX,IAAI,CAACiH,WAAW,CAAChL,IAAI,IAAID,aAAa,CAACiL,WAAW,CAAChL,IAAI,CAAC,EAAE,OAAO,IAAI;QACrE,oBACE7E,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAAC9N,OAAA,CAAAoO,MAAM;UACLlM,IAAI,EAAGmN,WAAW,CAAChL,IAAI,CAAsBnC,IAAK;UAClDmM,GAAG,EAAExD,KAAK,CAACxG,IAAI,KAAKgL,WAAW,CAACvK,EAAE,GAAG2D,OAAO,GAAG,IAAK;UACpDyE,GAAG,EAAE/H,KAAM;UACX8I,OAAO,EAAGoB,WAAW,CAAChL,IAAI,CAAsB4J,OAAQ;UACxDK,YAAY,EAAE,SAAdA,YAAYA,CAAA;YAAA,OAAQZ,gBAAgB,CAAC2B,WAAW,CAACvK,EAAE,CAAC;UAAA,CAAC;UACrDyJ,OAAO,EAAEZ,WAAY;UACrB7I,EAAE,EAAEuK,WAAW,CAACvK,EAAG;UACnB+F,KAAK,EAAEwE,WAAW,CAACvK,EAAE,KAAK+F,KAAK,CAACxG,IAAK;UACrCmK,SAAS,EAAEjH,eAAgB;UAC3BN,YAAY,EAAEA,YAAY,CAAA1D,aAAA,CAAAA,aAAA,KAElB8L,WAAW,CAAChL,IAAI;YACpBnC,IAAI,EAAE,IAAAuM,yBAAa,EAChBY,WAAW,CAAChL,IAAI,CAAsBnC,IAAI,EAC3CkB,MACF;UAAC,IAEH;YACE0B,EAAE,YAAA4J,MAAA,CAAYW,WAAW,CAACvK,EAAE,CAAE;YAC9BI,OAAO,EACL0D,eAAe,IAAIA,eAAe,CAACS,QAAQ,CAACgG,WAAW,CAACvK,EAAE,CAAC;YAC7D+F,KAAK,EAAEA,KAAK,CAACxG,IAAI,KAAKgL,WAAW,CAACvK,EAAE;YACpCqJ,QAAQ,EAAE,SAAVA,QAAQA,CAAA;cAAA,OAAQ,IAAI;YAAA;UACtB,CACF;QAAE,CACH,CAAC;MAGN,KAAK,UAAU;QACb,oBAAO3O,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAAAwB,mBAAA,QAAkCvI,YAA2B,CAAC;MAEvE,KAAK,QAAQ;QACX,oBACEvH,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAACjO,OAAA,CAAA0P,yBAAyB;UACxBlB,GAAG,EAAExD,KAAK,CAACxG,IAAI,KAAK,QAAQ,GAAGoE,OAAO,GAAG,IAAK;UAC9CyE,GAAG,EAAC,YAAY;UAChBrC,KAAK,EAAEA,KAAK,CAACxG,IAAI,KAAK,QAAS;UAC/BmL,WAAW,EAAEtE,WAAY;UACzBoD,YAAY,EAAEhD;QAAmB,GAEhCxE,UACwB,CAAC;MAGhC;QACE,OAAO,IAAI;IACf;EACF,CAAC,EACD,CACEK,YAAY,EACZ0D,KAAK,CAACxG,IAAI,EACVqJ,gBAAgB,EAChBzG,YAAY,EACZkI,uBAAuB,EACvBvG,eAAe,EACfuE,mBAAmB,EACnBU,kBAAkB,EAClBrH,IAAI,EACJc,YAAY,EACZlE,MAAM,EACNgF,YAAY,EACZuF,WAAW,EACXpG,eAAe,EACfR,YAAY,EACZmE,WAAW,EACXI,kBAAkB,EAClBxE,UAAU,EACVsG,cAAc,CAElB,CAAC;EAED,oBACE5N,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAACjO,OAAA,CAAA4P,8BAA8B;IAC7BjB,SAAS,EAAE7G,qBAAsB;IACjC+H,SAAS,EACP,CAACvI,YAAY,IAAI,CAACL,UAAU,IAAI,CAACC,YAAY,IAAI/B,IAAI,CAAC1C,MAAM,GAAG;EAChE,GAEA,UAAAqN,KAAA;IAAA,IAAGC,SAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAA,oBACVpQ,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAACjO,OAAA,CAAAgQ,sBAAsB;MAAC3C,GAAG,EAAC,MAAM;MAAC4C,YAAY,EAAEnB;IAAmB,gBAClEnP,MAAA,CAAAqB,OAAA,CAAAiN,aAAA;MACEO,GAAG,EAAE9F,gBAAiB;MACtBwH,KAAK,EAAE;QACLC,MAAM,KAAAtB,MAAA,CAAKuB,IAAI,CAACC,GAAG,CACjBzD,cAAc,CAAC0D,YAAY,CAAC,CAAC,GAAG,EAAE,EAClClI,aACF,CAAC,OAAI;QACLmI,QAAQ,EAAE;MACZ,CAAE;MACFR,QAAQ,EAAE,SAAVA,QAAQA,CAAGzP,CAAC,EAAK;QACf,IAAIyP,SAAQ,EAAEA,SAAQ,CAACzP,CAAC,CAAC;MAC3B;IAAE,gBAEFX,MAAA,CAAAqB,OAAA,CAAAiN,aAAA;MACEiC,KAAK,EAAE;QACLC,MAAM,KAAAtB,MAAA,CAAKjC,cAAc,CAAC0D,YAAY,CAAC,CAAC,OAAI;QAC5CE,KAAK,EAAE,MAAM;QACbC,QAAQ,EAAE;MACZ;IAAE,GAED9D,uBAAuB,GACpBC,cAAc,CAAC8D,eAAe,CAAC,CAAC,CAAC1L,GAAG,CAAC,UAAC2L,UAAU,EAAK;MACnD,IAAMnM,IAAI,GAAGiI,YAAY,CAACkE,UAAU,CAACrL,KAAK,CAAC;MAC3C,oBACE3F,MAAA,CAAAqB,OAAA,CAAAiN,aAAA;QACEZ,GAAG,EAAEsD,UAAU,CAACrL,KAAM;QACtB,cAAYqL,UAAU,CAACrL,KAAM;QAC7B4K,KAAK,EAAE;UACLO,QAAQ,EAAE,UAAU;UACpBG,GAAG,EAAE,CAAC;UACNC,IAAI,EAAE,CAAC;UACPL,KAAK,EAAE,MAAM;UACbM,SAAS,gBAAAjC,MAAA,CAAgB8B,UAAU,CAACI,KAAK;QAC3C;MAAE,GAEDxB,iBAAiB,CAAC/K,IAAI,EAAEmM,UAAU,CAACrL,KAAK,CACtC,CAAC;IAEV,CAAC,CAAC,GACFmH,YAAY,CAACzH,GAAG,CAAC,UAACR,IAAI,EAAEc,KAAK;MAAA,oBAC3B3F,MAAA,CAAAqB,OAAA,CAAAiN,aAAA,CAACtO,MAAA,CAAAqB,OAAK,CAACgQ,QAAQ;QAAC3D,GAAG,EAAE/H;MAAM,GACxBiK,iBAAiB,CAAC/K,IAAI,EAAEc,KAAK,CAChB,CAAC;IAAA,CAClB,CACF,CACF,CACiB,CAAC;EAAA,CAEG,CAAC;AAErC,CAAC;AAEDkB,YAAY,CAACyK,WAAW,GAAG,cAAc;AAAC,IAAAxB,mBAAA,OAAAyB,iBAAA,CAAAlQ,OAAA,EAAAZ,QAAA,CAAA+Q,YAAA,EAAAC,UAAA;EAAAH,WAAA;EAAAI,WAAA;AAAA","ignoreList":[]}
@@ -31,7 +31,7 @@ var _Tooltip = require("../Tooltip");
31
31
  var _Trigger = require("../Trigger");
32
32
  var _Typography = require("../Typography/Typography");
33
33
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
34
- var _excluded = ["options", "selected", "loading", "loadingText", "onChange", "onInputChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear", "onDeselect", "defaultValue", "open", "onOpen", "triggerMode", "noResultText", "emptyValue", "disableVirtualization", "hideClearButton", "errorMessage", "onCancel"];
34
+ var _excluded = ["options", "selected", "keepFilterOnClose", "loading", "loadingText", "onChange", "onInputChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "listWidth", "listPlacement", "scrollWrapper", "onClose", "onClear", "onDeselect", "defaultValue", "open", "onOpen", "triggerMode", "noResultText", "emptyValue", "disableVirtualization", "hideClearButton", "errorMessage", "onCancel"];
35
35
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
36
36
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
37
37
  function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
@@ -55,6 +55,8 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
55
55
  var _ref$options = _ref.options,
56
56
  options = _ref$options === void 0 ? [] : _ref$options,
57
57
  selected = _ref.selected,
58
+ _ref$keepFilterOnClos = _ref.keepFilterOnClose,
59
+ keepFilterOnClose = _ref$keepFilterOnClos === void 0 ? false : _ref$keepFilterOnClos,
58
60
  _ref$loading = _ref.loading,
59
61
  loading = _ref$loading === void 0 ? false : _ref$loading,
60
62
  loadingText = _ref.loadingText,
@@ -80,6 +82,9 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
80
82
  _ref$inPortal = _ref.inPortal,
81
83
  inPortal = _ref$inPortal === void 0 ? false : _ref$inPortal,
82
84
  inputWrapperClassName = _ref.inputWrapperClassName,
85
+ listWidth = _ref.listWidth,
86
+ _ref$listPlacement = _ref.listPlacement,
87
+ listPlacement = _ref$listPlacement === void 0 ? "bottom" : _ref$listPlacement,
83
88
  scrollWrapper = _ref.scrollWrapper,
84
89
  onClose = _ref.onClose,
85
90
  onClear = _ref.onClear,
@@ -137,6 +142,10 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
137
142
  var wrapperRef = (0, _react.useRef)(null);
138
143
  var chipWrapper = (0, _react.useRef)(null);
139
144
  var comboBoxRef = (0, _react.useRef)(null);
145
+ // Inside a dialog the list has to sit on the dialog's layer, not under it.
146
+ var _useLayerContext = (0, _helpers.useLayerContext)(),
147
+ _useLayerContext$zInd = _useLayerContext.zIndex,
148
+ zIndex = _useLayerContext$zInd === void 0 ? 10 : _useLayerContext$zInd;
140
149
  var _useState5 = (0, _react.useState)(defaultOpen),
141
150
  _useState6 = _slicedToArray(_useState5, 2),
142
151
  open = _useState6[0],
@@ -156,7 +165,9 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
156
165
  }
157
166
  if (e.key === "Escape" && open) {
158
167
  setOpen(false);
159
- setValue(selectedName);
168
+ if (!keepFilterOnClose) {
169
+ setValue(selectedName);
170
+ }
160
171
  onCancel === null || onCancel === void 0 || onCancel(selectedName);
161
172
  e.stopPropagation();
162
173
  }
@@ -167,7 +178,7 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
167
178
  setOpen(true);
168
179
  onOpen === null || onOpen === void 0 || onOpen();
169
180
  }
170
- }, [focused, onCancel, onOpen, open, selectedName, type]);
181
+ }, [focused, keepFilterOnClose, onCancel, onOpen, open, selectedName, type]);
171
182
  (0, _react.useEffect)(function () {
172
183
  if (!open && !isFirstRender) {
173
184
  onClose === null || onClose === void 0 || onClose();
@@ -245,9 +256,11 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
245
256
  if (e.relatedTarget && (_wrapperRef$current = wrapperRef.current) !== null && _wrapperRef$current !== void 0 && _wrapperRef$current.contains(e.relatedTarget)) {
246
257
  return;
247
258
  }
248
- setValue(selectedName);
259
+ if (!keepFilterOnClose) {
260
+ setValue(selectedName);
261
+ }
249
262
  setFocused(false);
250
- }, [selectedName]);
263
+ }, [keepFilterOnClose, selectedName]);
251
264
  var renderChipAdornment = (0, _react.useCallback)(function (option, index) {
252
265
  if (typeof renderChip === "function") {
253
266
  return renderChip(option, index);
@@ -481,10 +494,10 @@ var ComboBox = exports.ComboBox = function ComboBox(_ref) {
481
494
  }, /*#__PURE__*/_react.default.createElement(_Popper.Popper, {
482
495
  anchorEl: comboBoxRef.current,
483
496
  open: open,
484
- placement: "bottom",
497
+ placement: listPlacement,
485
498
  style: {
486
- zIndex: 10,
487
- width: (_comboBoxRef$current2 = comboBoxRef.current) === null || _comboBoxRef$current2 === void 0 ? void 0 : _comboBoxRef$current2.clientWidth
499
+ zIndex,
500
+ width: listWidth !== null && listWidth !== void 0 ? listWidth : (_comboBoxRef$current2 = comboBoxRef.current) === null || _comboBoxRef$current2 === void 0 ? void 0 : _comboBoxRef$current2.clientWidth
488
501
  },
489
502
  ref: wrapperRef,
490
503
  strategy: "fixed"