matsuri-ui 17.0.2-alpha-1748738733030-0538ce3.0 → 17.0.2-alpha-1749200134692-75cf25d.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"SelectField.js","names":["_FieldGroup","require","_FormControl","_FormHelperText","_InputBase","_InputLabel","_Paper","_Popper","_SelectFieldInputWrapper","_Triangle","_VisuallyHidden","_react","_dispatchChangeEvent","_useSearch","_useDitectInputTouched","_useInputValue","_useMergeRefs","_useOnClickOutside","_theme","_react2","_interopRequireWildcard","_Search","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","SelectInnerSpinButton","open","onClick","theme","useTheme","jsx","Triangle","css","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","forwardRef","props","ref","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","getSearch","map","option","keys","label","content","value","exports","defaultLoadOptions","undefined","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","useState","useRef","setQuery","selectedOptionsCache","setOptions","useEffect","selectedOptions","current","then","setValue","isControlled","useInputValue","useFieldGroup","onLoaded","displayValue","useMemo","find","listRef","useOnClickOutside","pseudoInputRef","pseudoInputRefs","useMergeRefs","originalInputRef","originalInputRefs","updateValue","useCallback","dispatchChangeEvent","resetValue","touched","inputProps","useDitectInputTouched","popperOptions","modifiers","roundOffsets","y","x","Math","round","enabled","phase","requires","fn","state","popper","width","rects","reference","effect","elements","offsetWidth","internalInputId","useId","inputId","FormControl","InputLabel","htmlFor","VisuallyHidden","type","key","autoCapitalize","autoComplete","autoCorrect","spellCheck","SelectFieldInputWrapperContext","Provider","InputBase","renderInputWrapper","SelectFieldInputWrapper","onKeyDown","event","prev","preventDefault","startAdornment","some","endAdornment","currentTarget","Popper","anchorEl","placement","Paper","activeElement","React","Children","toArray","child","index","click","FormHelperText"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport type { Options as PopperjsOptions } from \"@popperjs/core\";\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return node?.ownerDocument || document;\n}\n\ntype TraversalFunction = (\n list: HTMLUListElement,\n item?: Element | null,\n) => ChildNode | null;\n\nconst nextItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item?.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\n\nconst previousItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item?.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\n\nconst moveFocus = (\n list: HTMLUListElement,\n currentFocus: Element | null,\n traversalFunction: TraversalFunction,\n) => {\n let nextFocus = traversalFunction(list, currentFocus) as HTMLElement | null;\n while (nextFocus) {\n if (\n currentFocus === null\n ? nextFocus === list.lastChild\n : nextFocus === currentFocus\n ) {\n break;\n }\n const disabledFocus =\n (nextFocus as HTMLInputElement).disabled ||\n nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n if (disabledFocus) {\n nextFocus = traversalFunction(list, nextFocus) as HTMLElement;\n } else {\n nextFocus.focus();\n break;\n }\n }\n};\n\nconst SelectInnerSpinButton = ({\n open,\n onClick,\n}: {\n open: boolean;\n onClick: () => void;\n}) => {\n const theme = useTheme();\n return (\n <Triangle\n onClick={onClick}\n data-testid=\"SelectFieldSpinButton\"\n css={[\n css`\n font-size: ${theme.typography.body.fontSize}px;\n transition: ${theme.transitions.duration.shorter}\n ${theme.transitions.easing.easeInOut};\n `,\n open\n ? css`\n transform: rotateX(180deg);\n `\n : null,\n ]}\n />\n );\n};\n\nconst SelectList = forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>((props, ref) => {\n return (\n <ul\n ref={ref}\n role=\"listbox\"\n tabIndex={-1}\n css={css`\n box-sizing: border-box;\n min-height: ${42 * 3.5}px;\n max-height: ${42 * 7.5}px;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n border-radius: inherit;\n `}\n {...props}\n />\n );\n});\n\nconst SelectOption = (props: React.ComponentPropsWithoutRef<\"li\">) => {\n const theme = useTheme();\n return (\n <li\n role=\"option\"\n // aria-selectedは親要素から設定するため、この値は上書きされる\n aria-selected={false}\n css={css`\n box-sizing: border-box;\n min-height: ${theme.spacing * 6}px;\n padding: 9px 12px;\n color: ${theme.palette.text.primary};\n cursor: pointer;\n background-color: ${theme.palette.background.paper};\n border-bottom: 1px solid ${theme.palette.gray[300]};\n outline: 0px;\n transition: ${theme.transitions.duration.shortest};\n\n ${css(theme.typography.body)}\n &:last-child {\n border-bottom: none;\n }\n &:hover,\n &:focus {\n background-color: ${theme.palette.action.hover};\n }\n &[aria-selected=\"true\"] {\n background-color: ${theme.palette.action.selected};\n }\n &[aria-disabled=\"true\"] {\n color: ${theme.palette.text.disabled};\n cursor: default;\n }\n &[aria-readonly=\"true\"],\n &[aria-disabled=\"true\"] {\n &:hover {\n background-color: ${theme.palette.background.paper};\n }\n }\n `}\n {...props}\n />\n );\n};\n\nexport interface SelectOptionValue {\n value: string | undefined;\n label: string;\n keys?: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nexport type RenderSelectOption<\n T extends SelectOptionValue = SelectOptionValue,\n> = (peops: T) => React.JSX.Element;\n\nexport interface SelectFieldProps<\n T extends SelectOptionValue = SelectOptionValue,\n> extends Pick<FieldProps<string>, \"helperText\" | \"invalid\">,\n FieldGroupProps {\n renderOption?: RenderSelectOption<T>;\n children?: React.ReactNode;\n /**\n * 見出し\n */\n label?: string;\n name?: string;\n defaultValue?: string;\n /**\n * valueの変更は、defaultValueが指定されていないときのみ反映されます。\n */\n value?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n id?: string;\n className?: string;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * selecting data is required\n */\n required?: boolean;\n options?: T[];\n loadOptions?: SelectLoadOptions<T>;\n disabledInput?: boolean;\n readOnly?: boolean;\n /**\n * SelectFieldのOptionがクリックされた際に発火する関数。\n */\n onChange?: (value: T[\"value\"], options: T) => void;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n loading?: boolean;\n originalInputTestId?: string;\n pseudoInputTestId?: string;\n /**\n * オプションの表示にPortalを利用するかどうかを指定します。\n * このpropがtrueの場合、Portalが無効化されます。\n * また初期値がtrueであることに注意してください。\n * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。\n * @default true\n */\n disablePortal?: boolean;\n /**\n * 見かけ上のinput要素に対するrefを利用できます。\n * 選択された値を取得する場合などは、inputHasValueRefを利用してください。\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * 選択された値を保持しているinput要素に対するrefを利用できます。\n * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。\n */\n inputHasValueRef?: React.Ref<HTMLInputElement>;\n}\n\nexport const filterSelectOptionsByQuery = <\n T extends SelectOptionValue = SelectOptionValue,\n>(\n options: T[],\n query: string,\n) => {\n const result = getSearch(\n options.map((option) => {\n return {\n ...option,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n keys: option.keys || [option.label],\n content: option.value,\n };\n }),\n query,\n );\n return result;\n};\n\nexport type SelectLoadOptions<T extends SelectOptionValue = SelectOptionValue> =\n (args: {\n query: string;\n options?: T[];\n selectedOptions?: T[];\n }) => Promise<T[] | undefined>;\n\nconst defaultLoadOptions = async <\n T extends SelectOptionValue = SelectOptionValue,\n>({\n query,\n options,\n}: {\n query: string;\n options?: T[];\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<T[] | undefined> => {\n if (options === undefined) {\n return undefined;\n }\n if (query === undefined) {\n return options;\n }\n const result = filterSelectOptionsByQuery(options, query);\n return result.length ? result : options;\n};\n\nconst DefaultOption = <T extends SelectOptionValue>(\n props: T,\n): React.JSX.Element => {\n return <span>{props.label}</span>;\n};\n\nexport const SelectField = <T extends SelectOptionValue>(\n props: SelectFieldProps<T>,\n) => {\n const {\n label,\n name,\n options: propOptions,\n loadOptions = defaultLoadOptions,\n disabledInput,\n onChange,\n onFocus,\n placeholder,\n required,\n id,\n value: _valueProp,\n defaultValue,\n disabled,\n children,\n helperText,\n invalid,\n loading: propsLoading,\n readOnly: propsReadOnly,\n style,\n className,\n originalInputTestId,\n pseudoInputTestId,\n disablePortal = true,\n renderOption = DefaultOption,\n inputRef,\n inputHasValueRef,\n } = props;\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const [query, setQuery] = useState<string>(\"\");\n const selectedOptionsCache = useRef<T[] | undefined>(propOptions);\n const [options, setOptions] = useState(propOptions);\n\n useEffect(() => {\n void loadOptions({\n query,\n options: propOptions,\n selectedOptions: selectedOptionsCache.current,\n }).then((result) => {\n setOptions(result);\n });\n }, [propOptions, loadOptions, query]);\n\n const [value, setValue, isControlled] = useInputValue(props);\n\n const { loading, readOnly } = useFieldGroup({\n loading: propsLoading,\n readOnly: propsReadOnly,\n onLoaded: () => {\n if (isControlled === false) {\n setValue(defaultValue);\n }\n },\n });\n\n const displayValue = useMemo(() => {\n return (\n selectedOptionsCache.current?.find(\n (option) => option.value === value,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ) || options?.find((option) => option.value === value)\n )?.label;\n }, [options, value]);\n\n const listRef = useRef<HTMLUListElement>(null);\n useOnClickOutside([ref, listRef], () => {\n setOpen(false);\n setQuery(\"\");\n });\n\n const pseudoInputRef = useRef<HTMLInputElement>(null);\n const pseudoInputRefs = useMergeRefs(inputRef, pseudoInputRef);\n const originalInputRef = useRef<HTMLInputElement>(null);\n const originalInputRefs = useMergeRefs(inputHasValueRef, originalInputRef);\n\n const updateValue = useCallback(\n (option: T) => {\n onChange?.(option.value, option);\n setValue(option.value);\n selectedOptionsCache.current = options;\n setQuery(\"\");\n if (originalInputRef.current) {\n dispatchChangeEvent(originalInputRef.current, option.value);\n }\n },\n [onChange, options, setValue],\n );\n\n const resetValue = useCallback(() => {\n setValue(undefined);\n if (onChange) {\n const option =\n options?.find((option) => option.value === undefined) ??\n ({ value: undefined, label: \"\" } as T);\n onChange(undefined, option);\n }\n }, [onChange, options, setValue]);\n\n const [touched, inputProps] = useDitectInputTouched(onFocus);\n\n const popperOptions: Partial<PopperjsOptions> = useMemo(() => {\n return {\n modifiers: [\n disablePortal\n ? {\n name: \"computeStyles\",\n options: {\n roundOffsets: ({ y }: { y: number }) => ({\n x: 0,\n y: Math.round(y),\n }),\n },\n }\n : {},\n {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n },\n ],\n };\n }, [disablePortal]);\n\n const internalInputId = useId();\n const inputId = id ?? internalInputId;\n\n return (\n <FormControl style={style} className={className}>\n {label ? (\n <InputLabel\n htmlFor={inputId}\n aria-disabled={disabled}\n required={required}\n loading={loading}\n >\n {label}\n </InputLabel>\n ) : null}\n <VisuallyHidden>\n <input\n ref={originalInputRefs}\n type=\"text\"\n data-testid={originalInputTestId}\n required={required}\n name={name}\n key={value}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":";;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,wBAAA,GAAAP,OAAA;AAIA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,oBAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AACA,IAAAa,sBAAA,GAAAb,OAAA;AACA,IAAAc,cAAA,GAAAd,OAAA;AACA,IAAAe,aAAA,GAAAf,OAAA;AACA,IAAAgB,kBAAA,GAAAhB,OAAA;AACA,IAAAiB,MAAA,GAAAjB,OAAA;AACA,IAAAkB,OAAA,GAAAC,uBAAA,CAAAnB,OAAA;AASA,IAAAoB,OAAA,GAAAC,sBAAA,CAAArB,OAAA;AAAoD,SAAAqB,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAG,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAAA,SAAAgB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAf,CAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAK,CAAA,IAAAF,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAa,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAAA,SAAAG,iCAAA;AAGpD,SAASC,aAAaA,CAACC,IAA6B,EAAY;EAC9D;EACA,OAAOA,IAAI,EAAED,aAAa,IAAIE,QAAQ;AACxC;AAOA,MAAMC,QAA2B,GAAGA,CAACC,IAAI,EAAEC,IAAI,KAAK;EAClD,IAAID,IAAI,KAAKC,IAAI,EAAE;IACjB,OAAOD,IAAI,CAACE,UAAU;EACxB;EACA,IAAID,IAAI,EAAEE,kBAAkB,EAAE;IAC5B,OAAOF,IAAI,CAACE,kBAAkB;EAChC;EACA,OAAOH,IAAI,CAACE,UAAU;AACxB,CAAC;AAED,MAAME,YAA+B,GAAGA,CAACJ,IAAI,EAAEC,IAAI,KAAK;EACtD,IAAID,IAAI,KAAKC,IAAI,EAAE;IACjB,OAAOD,IAAI,CAACK,SAAS;EACvB;EACA,IAAIJ,IAAI,EAAEK,sBAAsB,EAAE;IAChC,OAAOL,IAAI,CAACK,sBAAsB;EACpC;EACA,OAAON,IAAI,CAACK,SAAS;AACvB,CAAC;AAED,MAAME,SAAS,GAAGA,CAChBP,IAAsB,EACtBQ,YAA4B,EAC5BC,iBAAoC,KACjC;EACH,IAAIC,SAAS,GAAGD,iBAAiB,CAACT,IAAI,EAAEQ,YAAY,CAAuB;EAC3E,OAAOE,SAAS,EAAE;IAChB,IACEF,YAAY,KAAK,IAAI,GACjBE,SAAS,KAAKV,IAAI,CAACK,SAAS,GAC5BK,SAAS,KAAKF,YAAY,EAC9B;MACA;IACF;IACA,MAAMG,aAAa,GAChBD,SAAS,CAAsBE,QAAQ,IACxCF,SAAS,CAACG,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM;IACpD,IAAIF,aAAa,EAAE;MACjBD,SAAS,GAAGD,iBAAiB,CAACT,IAAI,EAAEU,SAAS,CAAgB;IAC/D,CAAC,MAAM;MACLA,SAAS,CAACI,KAAK,CAAC,CAAC;MACjB;IACF;EACF;AACF,CAAC;AAAC,IAAAC,KAAA,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,QAAA,EAAA1B;AAAA;AAEF,MAAM2B,qBAAqB,GAAGA,CAAC;EAC7BC,IAAI;EACJC;AAIF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EACxB,OACE,IAAApE,MAAA,CAAAqE,GAAA,EAACvE,SAAA,CAAAwE,QAAQ;IACPJ,OAAO,EAAEA,OAAQ;IACjB,eAAY,uBAAuB;IACnCK,GAAG,oBACDA,UAAG,gBACYJ,KAAK,CAACK,UAAU,CAACC,IAAI,CAACC,QAAQ,oBAC7BP,KAAK,CAACQ,WAAW,CAACC,QAAQ,CAACC,OAAO,OAC5CV,KAAK,CAACQ,WAAW,CAACG,MAAM,CAACC,SAAS,SAAArB,OAAA,CAAAC,GAAA,CAAAC,QAAA,2DAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,yr1BAExCK,IAAI,GAAAR,KAAA,GAIA,IAAI,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,0DAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA;EACR,CACH,CAAC;AAEN,CAAC;AAED,MAAMoB,UAAU,gBAAG,IAAAC,kBAAU,EAG3B,CAACC,KAAK,EAAEC,GAAG,KAAK;EAChB,OACE,IAAAnF,MAAA,CAAAqE,GAAA,QAAAtC,QAAA;IACEoD,GAAG,EAAEA,GAAI;IACTC,IAAI,EAAC,SAAS;IACdC,QAAQ,EAAE,CAAC,CAAE;IACbd,GAAG,mBAAEA,UAAG,uCAEQ,EAAE,GAAG,GAAG,oBACR,EAAE,GAAG,GAAG,sGAAAb,OAAA,CAAAC,GAAA,CAAAC,QAAA,gDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAOtB,GACEsB,KAAK,CACV,CAAC;AAEN,CAAC,CAAC;AAEF,MAAMI,YAAY,GAAIJ,KAA2C,IAAK;EACpE,MAAMf,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EACxB,OACE,IAAApE,MAAA,CAAAqE,GAAA,QAAAtC,QAAA;IACEqD,IAAI,EAAC;IACL;IAAA;IACA,iBAAe,KAAM;IACrBb,GAAG,mBAAEA,UAAG,uCAEQJ,KAAK,CAACoB,OAAO,GAAG,CAAC,gCAEtBpB,KAAK,CAACqB,OAAO,CAACC,IAAI,CAACC,OAAO,uCAEfvB,KAAK,CAACqB,OAAO,CAACG,UAAU,CAACC,KAAK,+BACvBzB,KAAK,CAACqB,OAAO,CAACK,IAAI,CAAC,GAAG,CAAC,8BAEpC1B,KAAK,CAACQ,WAAW,CAACC,QAAQ,CAACkB,QAAQ,oBAE/C,IAAAvB,UAAG,EAACJ,KAAK,CAACK,UAAU,CAACC,IAAI,EAAAf,OAAA,CAAAC,GAAA,CAAAC,QAAA,iDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,ur1BAAC,yEAMNO,KAAK,CAACqB,OAAO,CAACO,MAAM,CAACC,KAAK,mDAG1B7B,KAAK,CAACqB,OAAO,CAACO,MAAM,CAACE,QAAQ,wCAGxC9B,KAAK,CAACqB,OAAO,CAACC,IAAI,CAACnC,QAAQ,oGAMda,KAAK,CAACqB,OAAO,CAACG,UAAU,CAACC,KAAK,WAAAlC,OAAA,CAAAC,GAAA,CAAAC,QAAA,kDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAGtD,GACEsB,KAAK,CACV,CAAC;AAEN,CAAC;AA0EM,MAAMgB,0BAA0B,GAAGA,CAGxCC,OAAY,EACZC,KAAa,KACV;EACH,MAAMC,MAAM,GAAG,IAAAC,oBAAS,EACtBH,OAAO,CAACI,GAAG,CAAEC,MAAM,IAAK;IACtB,OAAO;MACL,GAAGA,MAAM;MACT;MACAC,IAAI,EAAED,MAAM,CAACC,IAAI,IAAI,CAACD,MAAM,CAACE,KAAK,CAAC;MACnCC,OAAO,EAAEH,MAAM,CAACI;IAClB,CAAC;EACH,CAAC,CAAC,EACFR,KACF,CAAC;EACD,OAAOC,MAAM;AACf,CAAC;AAACQ,OAAA,CAAAX,0BAAA,GAAAA,0BAAA;AASF,MAAMY,kBAAkB,GAAG,MAAAA,CAEzB;EACAV,KAAK;EACLD;AAKF,CAAC,KAA+B;EAC9B,IAAIA,OAAO,KAAKY,SAAS,EAAE;IACzB,OAAOA,SAAS;EAClB;EACA,IAAIX,KAAK,KAAKW,SAAS,EAAE;IACvB,OAAOZ,OAAO;EAChB;EACA,MAAME,MAAM,GAAGH,0BAA0B,CAACC,OAAO,EAAEC,KAAK,CAAC;EACzD,OAAOC,MAAM,CAAClE,MAAM,GAAGkE,MAAM,GAAGF,OAAO;AACzC,CAAC;AAED,MAAMa,aAAa,GACjB9B,KAAQ,IACc;EACtB,OAAO,IAAAlF,MAAA,CAAAqE,GAAA,gBAAOa,KAAK,CAACwB,KAAY,CAAC;AACnC,CAAC;AAAC,IAAAO,IAAA,GAAAvD,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,QAAA,EAAA1B;AAAA;AAEK,MAAM6E,WAAW,GACtBhC,KAA0B,IACvB;EACH,MAAM;IACJwB,KAAK;IACL7C,IAAI;IACJsC,OAAO,EAAEgB,WAAW;IACpBC,WAAW,GAAGN,kBAAkB;IAChCO,aAAa;IACbC,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC,QAAQ;IACRC,EAAE;IACFd,KAAK,EAAEe,UAAU;IACjBC,YAAY;IACZtE,QAAQ;IACRuE,QAAQ;IACRC,UAAU;IACVC,OAAO;IACPC,OAAO,EAAEC,YAAY;IACrBC,QAAQ,EAAEC,aAAa;IACvBC,KAAK;IACLC,SAAS;IACTC,mBAAmB;IACnBC,iBAAiB;IACjBC,aAAa,GAAG,IAAI;IACpBC,YAAY,GAAGzB,aAAa;IAC5B0B,QAAQ;IACRC;EACF,CAAC,GAAGzD,KAAK;EACT,MAAM,CAACjB,IAAI,EAAE2E,OAAO,CAAC,GAAG,IAAAC,gBAAQ,EAAC,KAAK,CAAC;EACvC,MAAM1D,GAAG,GAAG,IAAA2D,cAAM,EAAiB,IAAI,CAAC;EAExC,MAAM,CAAC1C,KAAK,EAAE2C,QAAQ,CAAC,GAAG,IAAAF,gBAAQ,EAAS,EAAE,CAAC;EAC9C,MAAMG,oBAAoB,GAAG,IAAAF,cAAM,EAAkB3B,WAAW,CAAC;EACjE,MAAM,CAAChB,OAAO,EAAE8C,UAAU,CAAC,GAAG,IAAAJ,gBAAQ,EAAC1B,WAAW,CAAC;EAEnD,IAAA+B,iBAAS,EAAC,MAAM;IACd,KAAK9B,WAAW,CAAC;MACfhB,KAAK;MACLD,OAAO,EAAEgB,WAAW;MACpBgC,eAAe,EAAEH,oBAAoB,CAACI;IACxC,CAAC,CAAC,CAACC,IAAI,CAAEhD,MAAM,IAAK;MAClB4C,UAAU,CAAC5C,MAAM,CAAC;IACpB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACc,WAAW,EAAEC,WAAW,EAAEhB,KAAK,CAAC,CAAC;EAErC,MAAM,CAACQ,KAAK,EAAE0C,QAAQ,EAAEC,YAAY,CAAC,GAAG,IAAAC,4BAAa,EAACtE,KAAK,CAAC;EAE5D,MAAM;IAAE8C,OAAO;IAAEE;EAAS,CAAC,GAAG,IAAAuB,yBAAa,EAAC;IAC1CzB,OAAO,EAAEC,YAAY;IACrBC,QAAQ,EAAEC,aAAa;IACvBuB,QAAQ,EAAEA,CAAA,KAAM;MACd,IAAIH,YAAY,KAAK,KAAK,EAAE;QAC1BD,QAAQ,CAAC1B,YAAY,CAAC;MACxB;IACF;EACF,CAAC,CAAC;EAEF,MAAM+B,YAAY,GAAG,IAAAC,eAAO,EAAC,MAAM;IACjC,OAAO,CACLZ,oBAAoB,CAACI,OAAO,EAAES,IAAI,CAC/BrD,MAAM,IAAKA,MAAM,CAACI,KAAK,KAAKA;IAC7B;IACF,CAAC,IAAIT,OAAO,EAAE0D,IAAI,CAAErD,MAAM,IAAKA,MAAM,CAACI,KAAK,KAAKA,KAAK,CAAC,GACrDF,KAAK;EACV,CAAC,EAAE,CAACP,OAAO,EAAES,KAAK,CAAC,CAAC;EAEpB,MAAMkD,OAAO,GAAG,IAAAhB,cAAM,EAAmB,IAAI,CAAC;EAC9C,IAAAiB,oCAAiB,EAAC,CAAC5E,GAAG,EAAE2E,OAAO,CAAC,EAAE,MAAM;IACtClB,OAAO,CAAC,KAAK,CAAC;IACdG,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC,CAAC;EAEF,MAAMiB,cAAc,GAAG,IAAAlB,cAAM,EAAmB,IAAI,CAAC;EACrD,MAAMmB,eAAe,GAAG,IAAAC,0BAAY,EAACxB,QAAQ,EAAEsB,cAAc,CAAC;EAC9D,MAAMG,gBAAgB,GAAG,IAAArB,cAAM,EAAmB,IAAI,CAAC;EACvD,MAAMsB,iBAAiB,GAAG,IAAAF,0BAAY,EAACvB,gBAAgB,EAAEwB,gBAAgB,CAAC;EAE1E,MAAME,WAAW,GAAG,IAAAC,mBAAW,EAC5B9D,MAAS,IAAK;IACbc,QAAQ,GAAGd,MAAM,CAACI,KAAK,EAAEJ,MAAM,CAAC;IAChC8C,QAAQ,CAAC9C,MAAM,CAACI,KAAK,CAAC;IACtBoC,oBAAoB,CAACI,OAAO,GAAGjD,OAAO;IACtC4C,QAAQ,CAAC,EAAE,CAAC;IACZ,IAAIoB,gBAAgB,CAACf,OAAO,EAAE;MAC5B,IAAAmB,wCAAmB,EAACJ,gBAAgB,CAACf,OAAO,EAAE5C,MAAM,CAACI,KAAK,CAAC;IAC7D;EACF,CAAC,EACD,CAACU,QAAQ,EAAEnB,OAAO,EAAEmD,QAAQ,CAC9B,CAAC;EAED,MAAMkB,UAAU,GAAG,IAAAF,mBAAW,EAAC,MAAM;IACnChB,QAAQ,CAACvC,SAAS,CAAC;IACnB,IAAIO,QAAQ,EAAE;MACZ,MAAMd,MAAM,GACVL,OAAO,EAAE0D,IAAI,CAAErD,MAAM,IAAKA,MAAM,CAACI,KAAK,KAAKG,SAAS,CAAC,IACpD;QAAEH,KAAK,EAAEG,SAAS;QAAEL,KAAK,EAAE;MAAG,CAAO;MACxCY,QAAQ,CAACP,SAAS,EAAEP,MAAM,CAAC;IAC7B;EACF,CAAC,EAAE,CAACc,QAAQ,EAAEnB,OAAO,EAAEmD,QAAQ,CAAC,CAAC;EAEjC,MAAM,CAACmB,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,4CAAqB,EAACpD,OAAO,CAAC;EAE5D,MAAMqD,aAAuC,GAAG,IAAAhB,eAAO,EAAC,MAAM;IAC5D,OAAO;MACLiB,SAAS,EAAE,CACTrC,aAAa,GACT;QACE3E,IAAI,EAAE,eAAe;QACrBsC,OAAO,EAAE;UACP2E,YAAY,EAAEA,CAAC;YAAEC;UAAiB,CAAC,MAAM;YACvCC,CAAC,EAAE,CAAC;YACJD,CAAC,EAAEE,IAAI,CAACC,KAAK,CAACH,CAAC;UACjB,CAAC;QACH;MACF,CAAC,GACD,CAAC,CAAC,EACN;QACElH,IAAI,EAAE,WAAW;QACjBsH,OAAO,EAAE,IAAI;QACbC,KAAK,EAAE,aAAa;QACpBC,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3BC,EAAE,EAAEA,CAAC;UAAEC;QAAM,CAAC,KAAK;UACjBA,KAAK,CAACzH,MAAM,CAAC0H,MAAM,CAACC,KAAK,GAAG,GAAGF,KAAK,CAACG,KAAK,CAACC,SAAS,CAACF,KAAK,IAAI;QAChE,CAAC;QACDG,MAAM,EAAEA,CAAC;UAAEL;QAAM,CAAC,KAAK;UACrBA,KAAK,CAACM,QAAQ,CAACL,MAAM,CAACpD,KAAK,CAACqD,KAAK,GAAG,GACjCF,KAAK,CAACM,QAAQ,CAACF,SAAS,CAAiBG,WAAW,IACnD;QACN;MACF,CAAC;IAEL,CAAC;EACH,CAAC,EAAE,CAACtD,aAAa,CAAC,CAAC;EAEnB,MAAMuD,eAAe,GAAG,IAAAC,aAAK,EAAC,CAAC;EAC/B,MAAMC,OAAO,GAAGvE,EAAE,IAAIqE,eAAe;EAErC,OACE,IAAA/L,MAAA,CAAAqE,GAAA,EAAC9E,YAAA,CAAA2M,WAAW;IAAC9D,KAAK,EAAEA,KAAM;IAACC,SAAS,EAAEA;EAAU,GAC7C3B,KAAK,GACJ,IAAA1G,MAAA,CAAAqE,GAAA,EAAC3E,WAAA,CAAAyM,UAAU;IACTC,OAAO,EAAEH,OAAQ;IACjB,iBAAe3I,QAAS;IACxBmE,QAAQ,EAAEA,QAAS;IACnBO,OAAO,EAAEA;EAAQ,GAEhBtB,KACS,CAAC,GACX,IAAI,EACR,IAAA1G,MAAA,CAAAqE,GAAA,EAACtE,eAAA,CAAAsM,cAAc,QACb,IAAArM,MAAA,CAAAqE,GAAA;IACEc,GAAG,EAAEiF,iBAAkB;IACvBkC,IAAI,EAAC,MAAM;IACX,eAAahE,mBAAoB;IACjCb,QAAQ,EAAEA,QAAS;IACnB5D,IAAI,EAAEA,IAAK;IACX0I,GAAG,EAAE3F,KAAM;IACXgB,YAAY,EAAEhB,KAAM;IACpB4F,cAAc,EAAC,MAAM;IACrBC,YAAY,EAAC,KAAK;IAClBC,WAAW,EAAC,KAAK;IACjBC,UAAU,EAAC,OAAO;IAClBtH,QAAQ,EAAE,CAAC;EAAE,CACd,CACa,CAAC,EAEjB,IAAArF,MAAA,CAAAqE,GAAA;IAAKc,GAAG,EAAEA;EAAI,GACZ,IAAAnF,MAAA,CAAAqE,GAAA,EAACxE,wBAAA,CAAA+M,8BAA8B,CAACC,QAAQ;IACtCjG,KAAK,EAAE,CAACR,KAAK,GAAGuD,YAAY,GAAG5C;EAAU,GAEzC,IAAA/G,MAAA,CAAAqE,GAAA,EAAC5E,UAAA,CAAAqN,SAAS;IACRpF,EAAE,EAAEuE,OAAQ;IACZc,kBAAkB,EAAEC,gDAAwB;IAC5C7H,GAAG,EAAE8E,eAAgB;IACrB,eAAa1B,iBAAkB;IAC/Bf,WAAW,EAAEA,WAAY;IACzBlE,QAAQ,EAAEA,QAAS;IACnB0E,OAAO,EAAEA,OAAQ;IACjBE,QAAQ,EAAEA,QAAS;IACnBsE,cAAc,EAAC,MAAM;IACrBC,YAAY,EAAC,KAAK;IAClBC,WAAW,EAAC,KAAK;IACjBC,UAAU,EAAC,OAAO;IAClBM,SAAS,EAAGC,KAAK,IAAK;MACpB,MAAM;QAAEX;MAAI,CAAC,GAAGW,KAAK;MACrB,IAAIX,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,WAAW,EAAE;QAC3CxD,QAAQ,CAAEoE,IAAI,IAAK;UACjB,IAAIA,IAAI,KAAK,EAAE,EAAE;YACf3C,UAAU,CAAC,CAAC;UACd;UACA,OAAO2C,IAAI;QACb,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIZ,GAAG,KAAK,WAAW,EAAE;QAC9BW,KAAK,CAACE,cAAc,CAAC,CAAC;QACtB,MAAM1K,IAAI,GAAGoH,OAAO,CAACV,OAAO;QAC5B,IAAI1G,IAAI,EAAE;UACRO,SAAS,CAACP,IAAI,EAAE,IAAI,EAAED,QAAQ,CAAC;QACjC;MACF,CAAC,MAAM,IAAIyK,KAAK,CAACX,GAAG,CAACpK,MAAM,KAAK,CAAC,EAAE;QACjCyG,OAAO,CAAC,IAAI,CAAC;MACf;IACF,CAAE;IACF0D,IAAI,EAAC,MAAM;IACXe,cAAc,EACZzG,KAAK,IACLS,aAAa,IACZT,KAAK,KAAKG,SAAS,IAClBZ,OAAO,EAAEmH,IAAI,CACV9G,MAAM,IAAKA,MAAM,CAACI,KAAK,KAAKG,SAC/B,CAAE,GAAGA,SAAS,GACd,IAAA/G,MAAA,CAAAqE,GAAA,EAAC3D,OAAA,CAAAI,OAAU,MAAE,CAEhB;IACDyM,YAAY,EACV,IAAAvN,MAAA,CAAAqE,GAAA,EAACL,qBAAqB;MACpBC,IAAI,EAAEA,IAAK;MACXC,OAAO,EAAEA,CAAA,KAAM;QACb0E,OAAO,CAAEuE,IAAI,IAAK;UAChB,IAAIA,IAAI,EAAE;YACR,OAAO,KAAK;UACd;UACAnD,cAAc,CAACZ,OAAO,EAAE5F,KAAK,CAAC,CAAC;UAC/B,OAAO2J,IAAI;QACb,CAAC,CAAC;MACJ;IAAE,CACH,CACF;IACD,gBAAcpF,OAAQ;IACtBnB,KAAK,EAAER,KAAM;IACbkB,QAAQ,EACND,aAAa;IACT;IACA;IACA,MAAM,CAAC,CAAC,GACP6F,KAAK,IAAK;MACT,MAAMtG,KAAK,GAAGsG,KAAK,CAACM,aAAa,CAAC5G,KAAK;MACvCmC,QAAQ,CAACnC,KAAK,CAAC;IACjB,CACL;IACD,gBAAc8D,UAAU,CAAC,cAAc,CAAE;IACzCnD,OAAO,EAAG2F,KAAK,IAAK;MAClBxC,UAAU,CAACnD,OAAO,CAAC2F,KAAK,CAAC;MACzB,IAAIhF,QAAQ,KAAK,IAAI,EAAE;QACrBU,OAAO,CAAC,IAAI,CAAC;MACf;IACF,CAAE;IACFrE,GAAG,EACD8C,aAAa,GAAAJ,IAAA,GAOT;EACL,CACF,CACsC,CAAC,EAE1C,IAAAjH,MAAA,CAAAqE,GAAA,EAACzE,OAAA,CAAA6N,MAAM;IACLjF,aAAa,EAAEA,aAAc;IAC7BkF,QAAQ,EAAEvI,GAAG,CAACiE,OAAQ;IACtBuE,SAAS,EAAC,cAAc;IACxB1J,IAAI,EAAEA,IAAK;IACXkC,OAAO,EAAEyE;EAAc,GAEvB,IAAA5K,MAAA,CAAAqE,GAAA,eACE,IAAArE,MAAA,CAAAqE,GAAA,EAAC1E,MAAA,CAAAiO,KAAK,QACJ,IAAA5N,MAAA,CAAAqE,GAAA,EAACW,UAAU;IACTG,GAAG,EAAE2E,OAAQ;IACbmD,SAAS,EAAGC,KAAK,IAAK;MACpB,MAAMX,GAAG,GAAGW,KAAK,CAACX,GAAG;MACrB,MAAM7J,IAAI,GAAGoH,OAAO,CAACV,OAAO;MAC5B,IAAI1G,IAAI,KAAK,IAAI,EAAE;QACjB;MACF;MACA,MAAMQ,YAAY,GAAGZ,aAAa,CAACI,IAAI,CAAC,CAACmL,aAAa;MACtD,IAAItB,GAAG,KAAK,WAAW,EAAE;QACvBW,KAAK,CAACE,cAAc,CAAC,CAAC;QACtBnK,SAAS,CAACP,IAAI,EAAEQ,YAAY,EAAET,QAAQ,CAAC;MACzC,CAAC,MAAM,IAAI8J,GAAG,KAAK,SAAS,EAAE;QAC5BW,KAAK,CAACE,cAAc,CAAC,CAAC;QACtBnK,SAAS,CAACP,IAAI,EAAEQ,YAAY,EAAEJ,YAAY,CAAC;MAC7C;IACF;EAAE,GAEDgL,eAAK,CAACC,QAAQ,CAACC,OAAO,CAACnG,QAAQ,CAAC,CAACtB,GAAG,CAAC,CAAC0H,KAAK,EAAE7M,CAAC,KAC7C,IAAApB,MAAA,CAAAqE,GAAA,EAACiB,YAAY;IACXD,QAAQ,EAAE,CAAC,CAAE;IACb,iBAAe,IAAK;IACpBkH,GAAG,EAAE,SAASnL,CAAC;EAAG,GAEjB6M,KACW,CACf,CAAC,EACD9H,OAAO,KAAKY,SAAS,GACpB,IAAA/G,MAAA,CAAAqE,GAAA,EAACiB,YAAY;IAAC,iBAAe,IAAK;IAACD,QAAQ,EAAE,CAAC;EAAE,GAAC,YAEnC,CAAC,GACbc,OAAO,CAAChE,MAAM,KAAK,CAAC,GACtB,IAAAnC,MAAA,CAAAqE,GAAA,EAACiB,YAAY;IAAC,iBAAe,IAAK;IAACD,QAAQ,EAAE,CAAC;EAAE,GAAC,YAEnC,CAAC,GAEfc,OAAO,CAACI,GAAG,CAAC,CAACC,MAAM,EAAE0H,KAAK,KAAK;IAC7B,MAAMjI,QAAQ,GAAGW,KAAK,KAAKJ,MAAM,CAACI,KAAK;IACvC,OACE,IAAA5G,MAAA,CAAAqE,GAAA,EAACiB,YAAY;MACX2H,SAAS,EAAGC,KAAK,IAAK;QACpB,MAAM;UAAEX;QAAI,CAAC,GAAGW,KAAK;QACrB,IAAIX,GAAG,KAAK,OAAO,EAAE;UACnBW,KAAK,CAACE,cAAc,CAAC,CAAC;UACtBF,KAAK,CAACM,aAAa,CAACW,KAAK,CAAC,CAAC;UAC3BnE,cAAc,CAACZ,OAAO,EAAE5F,KAAK,CAAC,CAAC;UAC/BoF,OAAO,CAAC,KAAK,CAAC;QAChB;MACF,CAAE;MACF,iBAAe3C;MACf;AACxB;AACA,SAFwB;MAGAZ,QAAQ,EACN,CAACuB,KAAK,KAAKG,SAAS,GAAGmH,KAAK,KAAK,CAAC,GAAGjI,QAAQ,IACzC,CAAC,GACD,CAAC;MAEP;MAAA;MACAsG,GAAG,EAAE/F,MAAM,CAACI,KAAK,IAAI,gBAAiB;MACtC1C,OAAO,EAAEA,CAAA,KAAM;QACbmG,WAAW,CAAC7D,MAAM,CAAC;QACnBoC,OAAO,CAAC,KAAK,CAAC;MAChB;IAAE,GAEDH,YAAY,CAACjC,MAAM,CACR,CAAC;EAEnB,CAAC,CAEO,CACP,CACJ,CACC,CACL,CAAC,EACN,IAAAxG,MAAA,CAAAqE,GAAA,EAAC7E,eAAA,CAAA4O,cAAc;IACbrG,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjByC,OAAO,EAAEA,OAAQ;IACjB7D,KAAK,EAAEA;EAAM,GAEZkB,UACa,CACL,CAAC;AAElB,CAAC;AAACjB,OAAA,CAAAK,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"file":"SelectField.js","names":["_FieldGroup","require","_FormControl","_FormHelperText","_InputBase","_InputLabel","_Paper","_Popper","_SelectFieldInputWrapper","_Triangle","_VisuallyHidden","_react","_dispatchChangeEvent","_useSearch","_useDitectInputTouched","_useInputValue","_useMergeRefs","_useOnClickOutside","_theme","_react2","_interopRequireWildcard","_Search","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_EMOTION_STRINGIFIED_CSS_ERROR__","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","SelectInnerSpinButton","open","onClick","theme","useTheme","jsx","Triangle","css","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","forwardRef","props","ref","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","getSearch","map","option","keys","label","content","value","exports","defaultLoadOptions","undefined","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","useState","useRef","setQuery","selectedOptionsCache","setOptions","useEffect","selectedOptions","current","then","setValue","isControlled","useInputValue","useFieldGroup","onLoaded","displayValue","useMemo","find","listRef","useOnClickOutside","pseudoInputRef","pseudoInputRefs","useMergeRefs","originalInputRef","originalInputRefs","updateValue","useCallback","dispatchChangeEvent","resetValue","touched","inputProps","useDitectInputTouched","popperOptions","modifiers","roundOffsets","y","x","Math","round","enabled","phase","requires","fn","state","popper","width","rects","reference","effect","elements","offsetWidth","internalInputId","useId","inputId","autoFillPreventionKey","updateAutoFillPreventionKey","useReducer","prev","FormControl","InputLabel","htmlFor","VisuallyHidden","type","key","autoCapitalize","autoComplete","onInput","event","preventDefault","currentTarget","autoCorrect","spellCheck","SelectFieldInputWrapperContext","Provider","InputBase","renderInputWrapper","SelectFieldInputWrapper","onKeyDown","startAdornment","some","endAdornment","Popper","anchorEl","placement","Paper","activeElement","React","Children","toArray","child","index","click","FormHelperText"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport type { Options as PopperjsOptions } from \"@popperjs/core\";\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return node?.ownerDocument || document;\n}\n\ntype TraversalFunction = (\n list: HTMLUListElement,\n item?: Element | null,\n) => ChildNode | null;\n\nconst nextItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item?.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\n\nconst previousItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item?.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\n\nconst moveFocus = (\n list: HTMLUListElement,\n currentFocus: Element | null,\n traversalFunction: TraversalFunction,\n) => {\n let nextFocus = traversalFunction(list, currentFocus) as HTMLElement | null;\n while (nextFocus) {\n if (\n currentFocus === null\n ? nextFocus === list.lastChild\n : nextFocus === currentFocus\n ) {\n break;\n }\n const disabledFocus =\n (nextFocus as HTMLInputElement).disabled ||\n nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n if (disabledFocus) {\n nextFocus = traversalFunction(list, nextFocus) as HTMLElement;\n } else {\n nextFocus.focus();\n break;\n }\n }\n};\n\nconst SelectInnerSpinButton = ({\n open,\n onClick,\n}: {\n open: boolean;\n onClick: () => void;\n}) => {\n const theme = useTheme();\n return (\n <Triangle\n onClick={onClick}\n data-testid=\"SelectFieldSpinButton\"\n css={[\n css`\n font-size: ${theme.typography.body.fontSize}px;\n transition: ${theme.transitions.duration.shorter}\n ${theme.transitions.easing.easeInOut};\n `,\n open\n ? css`\n transform: rotateX(180deg);\n `\n : null,\n ]}\n />\n );\n};\n\nconst SelectList = forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>((props, ref) => {\n return (\n <ul\n ref={ref}\n role=\"listbox\"\n tabIndex={-1}\n css={css`\n box-sizing: border-box;\n min-height: ${42 * 3.5}px;\n max-height: ${42 * 7.5}px;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n border-radius: inherit;\n `}\n {...props}\n />\n );\n});\n\nconst SelectOption = (props: React.ComponentPropsWithoutRef<\"li\">) => {\n const theme = useTheme();\n return (\n <li\n role=\"option\"\n // aria-selectedは親要素から設定するため、この値は上書きされる\n aria-selected={false}\n css={css`\n box-sizing: border-box;\n min-height: ${theme.spacing * 6}px;\n padding: 9px 12px;\n color: ${theme.palette.text.primary};\n cursor: pointer;\n background-color: ${theme.palette.background.paper};\n border-bottom: 1px solid ${theme.palette.gray[300]};\n outline: 0px;\n transition: ${theme.transitions.duration.shortest};\n\n ${css(theme.typography.body)}\n &:last-child {\n border-bottom: none;\n }\n &:hover,\n &:focus {\n background-color: ${theme.palette.action.hover};\n }\n &[aria-selected=\"true\"] {\n background-color: ${theme.palette.action.selected};\n }\n &[aria-disabled=\"true\"] {\n color: ${theme.palette.text.disabled};\n cursor: default;\n }\n &[aria-readonly=\"true\"],\n &[aria-disabled=\"true\"] {\n &:hover {\n background-color: ${theme.palette.background.paper};\n }\n }\n `}\n {...props}\n />\n );\n};\n\nexport interface SelectOptionValue {\n value: string | undefined;\n label: string;\n keys?: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nexport type RenderSelectOption<\n T extends SelectOptionValue = SelectOptionValue,\n> = (peops: T) => React.JSX.Element;\n\nexport interface SelectFieldProps<\n T extends SelectOptionValue = SelectOptionValue,\n> extends Pick<FieldProps<string>, \"helperText\" | \"invalid\">,\n FieldGroupProps {\n renderOption?: RenderSelectOption<T>;\n children?: React.ReactNode;\n /**\n * 見出し\n */\n label?: string;\n name?: string;\n defaultValue?: string;\n /**\n * valueの変更は、defaultValueが指定されていないときのみ反映されます。\n */\n value?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n id?: string;\n className?: string;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * selecting data is required\n */\n required?: boolean;\n options?: T[];\n loadOptions?: SelectLoadOptions<T>;\n disabledInput?: boolean;\n readOnly?: boolean;\n /**\n * SelectFieldのOptionがクリックされた際に発火する関数。\n */\n onChange?: (value: T[\"value\"], options: T) => void;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n loading?: boolean;\n originalInputTestId?: string;\n pseudoInputTestId?: string;\n /**\n * オプションの表示にPortalを利用するかどうかを指定します。\n * このpropがtrueの場合、Portalが無効化されます。\n * また初期値がtrueであることに注意してください。\n * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。\n * @default true\n */\n disablePortal?: boolean;\n /**\n * 見かけ上のinput要素に対するrefを利用できます。\n * 選択された値を取得する場合などは、inputHasValueRefを利用してください。\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * 選択された値を保持しているinput要素に対するrefを利用できます。\n * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。\n */\n inputHasValueRef?: React.Ref<HTMLInputElement>;\n}\n\nexport const filterSelectOptionsByQuery = <\n T extends SelectOptionValue = SelectOptionValue,\n>(\n options: T[],\n query: string,\n) => {\n const result = getSearch(\n options.map((option) => {\n return {\n ...option,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n keys: option.keys || [option.label],\n content: option.value,\n };\n }),\n query,\n );\n return result;\n};\n\nexport type SelectLoadOptions<T extends SelectOptionValue = SelectOptionValue> =\n (args: {\n query: string;\n options?: T[];\n selectedOptions?: T[];\n }) => Promise<T[] | undefined>;\n\nconst defaultLoadOptions = async <\n T extends SelectOptionValue = SelectOptionValue,\n>({\n query,\n options,\n}: {\n query: string;\n options?: T[];\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<T[] | undefined> => {\n if (options === undefined) {\n return undefined;\n }\n if (query === undefined) {\n return options;\n }\n const result = filterSelectOptionsByQuery(options, query);\n return result.length ? result : options;\n};\n\nconst DefaultOption = <T extends SelectOptionValue>(\n props: T,\n): React.JSX.Element => {\n return <span>{props.label}</span>;\n};\n\nexport const SelectField = <T extends SelectOptionValue>(\n props: SelectFieldProps<T>,\n) => {\n const {\n label,\n name,\n options: propOptions,\n loadOptions = defaultLoadOptions,\n disabledInput,\n onChange,\n onFocus,\n placeholder,\n required,\n id,\n value: _valueProp,\n defaultValue,\n disabled,\n children,\n helperText,\n invalid,\n loading: propsLoading,\n readOnly: propsReadOnly,\n style,\n className,\n originalInputTestId,\n pseudoInputTestId,\n disablePortal = true,\n renderOption = DefaultOption,\n inputRef,\n inputHasValueRef,\n } = props;\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const [query, setQuery] = useState<string>(\"\");\n const selectedOptionsCache = useRef<T[] | undefined>(propOptions);\n const [options, setOptions] = useState(propOptions);\n\n useEffect(() => {\n void loadOptions({\n query,\n options: propOptions,\n selectedOptions: selectedOptionsCache.current,\n }).then((result) => {\n setOptions(result);\n });\n }, [propOptions, loadOptions, query]);\n\n const [value, setValue, isControlled] = useInputValue(props);\n\n const { loading, readOnly } = useFieldGroup({\n loading: propsLoading,\n readOnly: propsReadOnly,\n onLoaded: () => {\n if (isControlled === false) {\n setValue(defaultValue);\n }\n },\n });\n\n const displayValue = useMemo(() => {\n return (\n selectedOptionsCache.current?.find(\n (option) => option.value === value,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ) || options?.find((option) => option.value === value)\n )?.label;\n }, [options, value]);\n\n const listRef = useRef<HTMLUListElement>(null);\n useOnClickOutside([ref, listRef], () => {\n setOpen(false);\n setQuery(\"\");\n });\n\n const pseudoInputRef = useRef<HTMLInputElement>(null);\n const pseudoInputRefs = useMergeRefs(inputRef, pseudoInputRef);\n const originalInputRef = useRef<HTMLInputElement>(null);\n const originalInputRefs = useMergeRefs(inputHasValueRef, originalInputRef);\n\n const updateValue = useCallback(\n (option: T) => {\n onChange?.(option.value, option);\n setValue(option.value);\n selectedOptionsCache.current = options;\n setQuery(\"\");\n if (originalInputRef.current) {\n dispatchChangeEvent(originalInputRef.current, option.value);\n }\n },\n [onChange, options, setValue],\n );\n\n const resetValue = useCallback(() => {\n setValue(undefined);\n if (onChange) {\n const option =\n options?.find((option) => option.value === undefined) ??\n ({ value: undefined, label: \"\" } as T);\n onChange(undefined, option);\n }\n }, [onChange, options, setValue]);\n\n const [touched, inputProps] = useDitectInputTouched(onFocus);\n\n const popperOptions: Partial<PopperjsOptions> = useMemo(() => {\n return {\n modifiers: [\n disablePortal\n ? {\n name: \"computeStyles\",\n options: {\n roundOffsets: ({ y }: { y: number }) => ({\n x: 0,\n y: Math.round(y),\n }),\n },\n }\n : {},\n {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n },\n ],\n };\n }, [disablePortal]);\n\n const internalInputId = useId();\n const inputId = id ?? internalInputId;\n\n // Auto fillによって値が後から更新されることを防ぐ\n const [autoFillPreventionKey, updateAutoFillPreventionKey] = useReducer(\n (prev: number) => prev + 1,\n 0,\n );\n\n return (\n <FormControl style={style} className={className}>\n {label ? (\n <InputLabel\n htmlFor={inputId}\n aria-disabled={disabled}\n required={required}\n loading={loading}\n >\n {label}\n </InputLabel>\n ) : null}\n <VisuallyHidden>\n <input\n ref={originalInputRefs}\n type=\"text\"\n data-testid={originalInputTestId}\n required={required}\n name={name}\n key={`${value}-${autoFillPreventionKey}`}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n onInput={(event) => {\n event.preventDefault();\n if (value === undefined) {\n // 選択肢が選択されていない状態で、値に選択肢と一致するものがある場合、その値に更新する\n const option = options?.find(\n (option) => option.value === event.currentTarget.value,\n );\n if (option) {\n updateValue(option);\n } else {\n // 一致する選択肢がない場合、Auto fillが適用されると困るため無効化する\n updateAutoFillPreventionKey();\n }\n } else {\n // このinput要素の値でonInputが発火するケースはAuto fillによる場合のみ、選択肢の選択では発火しない。\n // ここでkeyを更新することでauto fillによる値の上書きを、さらに上書きできる。\n updateAutoFillPreventionKey();\n }\n }}\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":"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","ignoreList":[]}