@owp/core 2.5.22 → 2.5.24

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 (173) hide show
  1. package/dist/_virtual/index15.js +2 -2
  2. package/dist/_virtual/index16.js +4 -4
  3. package/dist/_virtual/index17.js +4 -4
  4. package/dist/_virtual/index18.js +4 -4
  5. package/dist/_virtual/index19.js +4 -4
  6. package/dist/_virtual/index5.js +2 -2
  7. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +15 -13
  8. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -1
  9. package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js +21 -19
  10. package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js.map +1 -1
  11. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js +1 -1
  12. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js.map +1 -1
  13. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js +1 -1
  14. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
  15. package/dist/components/OwpLoading/OwpLoading.js +1 -1
  16. package/dist/components/OwpLoading/OwpLoading.js.map +1 -1
  17. package/dist/components/OwpMrtTable/OwpMrtTable.js +21 -21
  18. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  19. package/dist/components/OwpOptionSelector/OwpOptionSelector.js +14 -12
  20. package/dist/components/OwpOptionSelector/OwpOptionSelector.js.map +1 -1
  21. package/dist/components/OwpPageTitle/OwpPageTitle.js +1 -1
  22. package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
  23. package/dist/components/OwpPicker/OwpDatePicker.js +81 -82
  24. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  25. package/dist/components/OwpPicker/OwpTimePicker.js +82 -83
  26. package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
  27. package/dist/components/OwpPicker/OwpWeekDatePicker.js +24 -25
  28. package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
  29. package/dist/components/OwpSearchFilter/OwpSearchFilter.js +1 -1
  30. package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
  31. package/dist/components/OwpSection/OwpSection.js +1 -1
  32. package/dist/components/OwpSection/OwpSection.js.map +1 -1
  33. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +155 -157
  34. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  35. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +95 -81
  36. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
  37. package/dist/components/OwpSuspense/OwpSuspense.js +43 -43
  38. package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
  39. package/dist/components/OwpTable/OwpDataTable.js +13 -12
  40. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  41. package/dist/components/OwpTable/OwpFieldTable.js +64 -78
  42. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  43. package/dist/components/OwpTable/OwpTable.js +56 -55
  44. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  45. package/dist/components/OwpTable/internal/OwpTableBase.js +20 -19
  46. package/dist/components/OwpTable/internal/OwpTableBase.js.map +1 -1
  47. package/dist/components/OwpTable/internal/defaultTableStyle.js +6 -7
  48. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  49. package/dist/components/OwpTable/utils/tableSx.js +16 -6
  50. package/dist/components/OwpTable/utils/tableSx.js.map +1 -1
  51. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +105 -104
  52. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  53. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +55 -56
  54. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
  55. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +10 -10
  56. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +253 -252
  57. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  58. package/dist/constants/table.js +5 -0
  59. package/dist/constants/table.js.map +1 -0
  60. package/dist/constants.js +25 -23
  61. package/dist/constants.js.map +1 -1
  62. package/dist/contexts/OwpUiProvider.js +5 -5
  63. package/dist/contexts/OwpUiProvider.js.map +1 -1
  64. package/dist/hooks/{useAccessTokenGuard.js → internal/useAccessTokenGuard.js} +2 -2
  65. package/dist/hooks/internal/useAccessTokenGuard.js.map +1 -0
  66. package/dist/hooks/{useCurrentLanguage.js → internal/useCurrentLanguage.js} +2 -2
  67. package/dist/hooks/internal/useCurrentLanguage.js.map +1 -0
  68. package/dist/hooks/internal/useHeaderWrapState.js.map +1 -0
  69. package/dist/hooks/internal/useNavbar.js +24 -0
  70. package/dist/hooks/internal/useNavbar.js.map +1 -0
  71. package/dist/hooks/{useNavigationActiveRouteRemount.js → internal/useNavigationActiveRouteRemount.js} +1 -1
  72. package/dist/hooks/internal/useNavigationActiveRouteRemount.js.map +1 -0
  73. package/dist/hooks/{useShortcuts.js → internal/useShortcuts.js} +3 -3
  74. package/dist/hooks/internal/useShortcuts.js.map +1 -0
  75. package/dist/hooks/internal/useThemeMediaQuery.js.map +1 -0
  76. package/dist/hooks/internal/useTimeout.js.map +1 -0
  77. package/dist/hooks/useInitApp.js.map +1 -1
  78. package/dist/hooks.js +53 -81
  79. package/dist/hooks.js.map +1 -1
  80. package/dist/layout/Layout.js +1 -1
  81. package/dist/layout/Layout.js.map +1 -1
  82. package/dist/layout/components/layouts/NavbarToggleFabLayout.js +2 -2
  83. package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
  84. package/dist/layout/components/layouts/NavbarWrapperLayout.js +2 -2
  85. package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
  86. package/dist/layout/components/navbar/NavbarToggleButton.js +2 -2
  87. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  88. package/dist/layout/components/navbar/style/NavbarStyle.js +1 -1
  89. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  90. package/dist/layout/components/navbar/style/NavbarStyleContent.js +1 -1
  91. package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
  92. package/dist/layout/components/navigation/Navigation.js +2 -2
  93. package/dist/layout/components/navigation/Navigation.js.map +1 -1
  94. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js +1 -1
  95. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js.map +1 -1
  96. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js +1 -1
  97. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js.map +1 -1
  98. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js +1 -1
  99. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js.map +1 -1
  100. package/dist/layout/components/toggles/LanguageSwitcherToggle.js +1 -1
  101. package/dist/layout/components/toggles/LanguageSwitcherToggle.js.map +1 -1
  102. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  103. package/dist/layout/components/toggles/NavigationShortcutsToggle.js +1 -1
  104. package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
  105. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  106. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  107. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  108. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  109. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  110. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  111. package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
  112. package/dist/owp-app.css +1 -1
  113. package/dist/types/components/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +5 -3
  114. package/dist/types/components/OwpCommonCode/OwpCommonCodeSelector.d.ts +5 -3
  115. package/dist/types/components/OwpOptionSelector/OwpOptionSelector.d.ts +4 -1
  116. package/dist/types/components/OwpSelectorBase/types/index.d.ts +1 -1
  117. package/dist/types/components/OwpSelectorBase/types/types.d.ts +3 -0
  118. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +0 -1
  119. package/dist/types/components/OwpTable/utils/tableSx.d.ts +15 -0
  120. package/dist/types/constants/index.d.ts +1 -0
  121. package/dist/types/constants/table.d.ts +1 -0
  122. package/dist/types/hooks/index.d.ts +0 -10
  123. package/dist/types/hooks/{useNavbar.d.ts → internal/useNavbar.d.ts} +1 -1
  124. package/dist/types/utils/treeGridUtil.d.ts +0 -14
  125. package/dist/utils/{exceljsBrowser.js → internal/exceljsBrowser.js} +1 -1
  126. package/dist/utils/internal/exceljsBrowser.js.map +1 -0
  127. package/dist/utils/internal/jszipBrowser.js.map +1 -0
  128. package/dist/utils/internal/treeGridBodyRowsEvent.js.map +1 -0
  129. package/dist/utils/treeGridExportExcelUtil.js +1 -1
  130. package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
  131. package/dist/utils/treeGridUtil.js +1 -6
  132. package/dist/utils/treeGridUtil.js.map +1 -1
  133. package/dist/utils/zipUtil.js +1 -1
  134. package/dist/utils/zipUtil.js.map +1 -1
  135. package/dist/utils.js +70 -75
  136. package/package.json +1 -1
  137. package/dist/hooks/useAccessTokenGuard.js.map +0 -1
  138. package/dist/hooks/useCurrentLanguage.js.map +0 -1
  139. package/dist/hooks/useDebounce.js +0 -24
  140. package/dist/hooks/useDebounce.js.map +0 -1
  141. package/dist/hooks/useDeepCompareEffect.js +0 -38
  142. package/dist/hooks/useDeepCompareEffect.js.map +0 -1
  143. package/dist/hooks/useHeaderWrapState.js.map +0 -1
  144. package/dist/hooks/useNavbar.js +0 -24
  145. package/dist/hooks/useNavbar.js.map +0 -1
  146. package/dist/hooks/useNavigationActiveRouteRemount.js.map +0 -1
  147. package/dist/hooks/usePrevious.js +0 -14
  148. package/dist/hooks/usePrevious.js.map +0 -1
  149. package/dist/hooks/useShortcuts.js.map +0 -1
  150. package/dist/hooks/useThemeMediaQuery.js.map +0 -1
  151. package/dist/hooks/useTimeout.js.map +0 -1
  152. package/dist/types/hooks/useDebounce.d.ts +0 -7
  153. package/dist/types/hooks/useDeepCompareEffect.d.ts +0 -22
  154. package/dist/types/hooks/usePrevious.d.ts +0 -5
  155. package/dist/types/utils/dayjsBrowser.d.ts +0 -1
  156. package/dist/utils/exceljsBrowser.js.map +0 -1
  157. package/dist/utils/jszipBrowser.js.map +0 -1
  158. package/dist/utils/treeGridBodyRowsEvent.js.map +0 -1
  159. /package/dist/hooks/{useHeaderWrapState.js → internal/useHeaderWrapState.js} +0 -0
  160. /package/dist/hooks/{useThemeMediaQuery.js → internal/useThemeMediaQuery.js} +0 -0
  161. /package/dist/hooks/{useTimeout.js → internal/useTimeout.js} +0 -0
  162. /package/dist/types/hooks/{useAccessTokenGuard.d.ts → internal/useAccessTokenGuard.d.ts} +0 -0
  163. /package/dist/types/hooks/{useCurrentLanguage.d.ts → internal/useCurrentLanguage.d.ts} +0 -0
  164. /package/dist/types/hooks/{useHeaderWrapState.d.ts → internal/useHeaderWrapState.d.ts} +0 -0
  165. /package/dist/types/hooks/{useNavigationActiveRouteRemount.d.ts → internal/useNavigationActiveRouteRemount.d.ts} +0 -0
  166. /package/dist/types/hooks/{useShortcuts.d.ts → internal/useShortcuts.d.ts} +0 -0
  167. /package/dist/types/hooks/{useThemeMediaQuery.d.ts → internal/useThemeMediaQuery.d.ts} +0 -0
  168. /package/dist/types/hooks/{useTimeout.d.ts → internal/useTimeout.d.ts} +0 -0
  169. /package/dist/types/utils/{exceljsBrowser.d.ts → internal/exceljsBrowser.d.ts} +0 -0
  170. /package/dist/types/utils/{jszipBrowser.d.ts → internal/jszipBrowser.d.ts} +0 -0
  171. /package/dist/types/utils/{treeGridBodyRowsEvent.d.ts → internal/treeGridBodyRowsEvent.d.ts} +0 -0
  172. /package/dist/utils/{jszipBrowser.js → internal/jszipBrowser.js} +0 -0
  173. /package/dist/utils/{treeGridBodyRowsEvent.js → internal/treeGridBodyRowsEvent.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"OwpSelectorAutocomplete.js","sources":["../../../src/components/OwpSelectorBase/OwpSelectorAutocomplete.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport {\n Autocomplete,\n Box,\n Checkbox,\n Chip,\n CircularProgress,\n ClickAwayListener,\n Paper,\n Popper,\n TextField,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport {\n type KeyboardEvent as ReactKeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type MutableRefObject,\n type SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type {\n OwpSelectorBaseHookResult,\n OwpSelectorBaseOption,\n OwpSelectorBaseProps,\n} from './types';\nimport { isSelectorAllOption } from './utils';\n\ninterface OwpSelectorAutocompleteProps {\n hookResult: OwpSelectorBaseHookResult;\n props: OwpSelectorBaseProps;\n}\n\nconst MULTIPLE_VISIBLE_CHIP_COUNT = 2;\nconst AUTOCOMPLETE_MIN_WIDTH = 152;\nconst MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH = 72;\nconst SELECTOR_CLEAR_ICON_FONT_SIZE = 18.57;\nconst STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT = '11px !important';\nconst OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT = '2px !important';\nconst OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT = '5px !important';\n\ntype SelectorAutocompleteKeyDownEvent = ReactKeyboardEvent<HTMLDivElement> & {\n defaultMuiPrevented?: boolean;\n};\n\n/**\n * 현재 키 이벤트 기준 입력값 반환\n * @param event 키보드 이벤트\n * @param fallbackValue 제어 입력 fallback 값\n */\nconst getCurrentAutocompleteInputValue = (\n event: SelectorAutocompleteKeyDownEvent,\n fallbackValue?: string,\n) => {\n const eventTarget = event.target;\n\n if (eventTarget instanceof HTMLInputElement) {\n return eventTarget.value;\n }\n\n return fallbackValue ?? '';\n};\n\n/**\n * Autocomplete 옵션 라벨 문자열 변환\n * @param label 옵션 라벨\n */\nconst getAutocompleteOptionLabel = (label: OwpSelectorBaseOption['label']) => {\n return typeof label === 'string' || typeof label === 'number' ? `${label}` : '';\n};\n\n/**\n * Autocomplete 기반 공통 선택기\n * @param props Autocomplete 렌더링 props\n */\nexport const OwpSelectorAutocomplete = ({ hookResult, props }: OwpSelectorAutocompleteProps) => {\n const { t } = useOwpTranslation();\n const {\n autocompleteInputValue,\n className,\n disableClientFilter,\n disabled,\n error,\n fullWidth,\n helperText,\n label,\n loading,\n loadingText,\n multiple,\n noOptionsText,\n onAutocompleteInputChange,\n placeholder,\n required,\n showAllOption = true,\n textFieldProps,\n } = props;\n const {\n allOption,\n clearSelection,\n isAllSelected,\n resolvedOptions,\n restoreAllSelection,\n selectAll,\n selectedOption,\n selectedOptions,\n selectMultipleValues,\n selectSingleValue,\n } = hookResult;\n const options = showAllOption ? [allOption, ...resolvedOptions] : resolvedOptions;\n const filteredSelectedOptions = useMemo(\n () => selectedOptions.filter((option) => !isSelectorAllOption(option)),\n [selectedOptions],\n );\n const hiddenSelectedOptions = useMemo(\n () => (isAllSelected ? [] : filteredSelectedOptions.slice(MULTIPLE_VISIBLE_CHIP_COUNT)),\n [filteredSelectedOptions, isAllSelected],\n );\n const hiddenSelectedOptionCount = hiddenSelectedOptions.length;\n const [hiddenChipAnchorEl, setHiddenChipAnchorEl] = useState<HTMLElement | null>(null);\n const autocompleteRootRef = useRef<HTMLDivElement | null>(null);\n const resolvedNoOptionsText =\n noOptionsText ??\n t(disableClientFilter ? 'Message.검색 결과 없음' : 'Message.조회된 결과가 없습니다.');\n const shouldRestoreAllOnClearRef = useRef(\n multiple &&\n showAllOption &&\n ((props.value ?? props.defaultValue) == null || (props.value ?? props.defaultValue) === ''),\n );\n const autocompleteSlotProps = {\n clearIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n tabIndex: -1,\n },\n paper: {\n sx: {\n '& .MuiAutocomplete-noOptions': {\n fontSize: 14,\n px: 1,\n py: 1.5,\n whiteSpace: 'nowrap',\n },\n },\n },\n popupIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n tabIndex: -1,\n },\n } as const;\n const resolvedTextFieldVariant = textFieldProps?.variant ?? 'standard';\n const singleAutocompleteInputSx =\n resolvedTextFieldVariant === 'standard'\n ? {\n '& .MuiAutocomplete-input': {\n paddingLeft: STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT,\n },\n }\n : resolvedTextFieldVariant === 'outlined'\n ? {\n '& .MuiAutocomplete-input': {\n paddingLeft:\n textFieldProps?.size === 'small'\n ? OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT\n : OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT,\n },\n }\n : undefined;\n const autocompleteSx = {\n minWidth: AUTOCOMPLETE_MIN_WIDTH,\n '& .MuiAutocomplete-endAdornment': {\n '& .MuiAutocomplete-clearIndicator + .MuiAutocomplete-popupIndicator': {\n ml: 0,\n },\n '& .MuiIconButton-root': {\n m: 0,\n p: 0,\n },\n '& > :not(style) + :not(style)': {\n ml: 0,\n },\n alignItems: 'center',\n gap: 0,\n right: 0,\n },\n } as const;\n const multipleAutocompleteSx = {\n ...autocompleteSx,\n '& .MuiAutocomplete-inputRoot .MuiAutocomplete-input': {\n flexBasis: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n minWidth: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n },\n } as const;\n\n useEffect(() => {\n if (!hiddenSelectedOptionCount) {\n setHiddenChipAnchorEl(null);\n }\n }, [hiddenSelectedOptionCount]);\n\n useEffect(() => {\n if (!shouldRestoreAllOnClearRef.current) {\n return;\n }\n\n const formElement = autocompleteRootRef.current?.closest('form');\n\n if (!formElement) {\n return;\n }\n\n const handleFormReset = () => {\n window.setTimeout(() => {\n restoreAllSelection();\n }, 0);\n };\n\n formElement.addEventListener('reset', handleFormReset);\n\n return () => {\n formElement.removeEventListener('reset', handleFormReset);\n };\n }, [restoreAllSelection]);\n\n const handleHiddenChipPopperClose = () => {\n setHiddenChipAnchorEl(null);\n };\n\n const handleHiddenChipSummaryMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n };\n\n const handleHiddenChipSummaryClick = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setHiddenChipAnchorEl((previousAnchorElement) =>\n previousAnchorElement === event.currentTarget ? null : event.currentTarget,\n );\n };\n\n const handleHiddenChipDelete = (optionValue: string) => {\n selectMultipleValues(\n filteredSelectedOptions\n .filter((option) => option.value !== optionValue)\n .map((option) => option.value),\n );\n };\n\n const handleMultipleRootKeyDown = (event: SelectorAutocompleteKeyDownEvent) => {\n const currentInputValue = getCurrentAutocompleteInputValue(event, autocompleteInputValue);\n\n if (\n (isAllSelected || hiddenSelectedOptionCount > 0) &&\n currentInputValue === '' &&\n (event.key === 'Backspace' || event.key === 'Delete')\n ) {\n event.defaultMuiPrevented = true;\n event.preventDefault();\n event.stopPropagation();\n }\n\n textFieldProps?.onKeyDown?.(\n event as Parameters<NonNullable<typeof textFieldProps.onKeyDown>>[0],\n );\n };\n\n if (multiple) {\n return (\n <>\n <Autocomplete\n ref={autocompleteRootRef as MutableRefObject<HTMLDivElement | null>}\n className={clsx('min-w-128', className)}\n disableCloseOnSelect\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n multiple\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={multipleAutocompleteSx}\n value={selectedOptions}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(\n _event: SyntheticEvent,\n nextOptions: OwpSelectorBaseOption[],\n reason: string,\n details,\n ) => {\n const currentInputValue =\n _event.type === 'keydown'\n ? getCurrentAutocompleteInputValue(\n _event as SelectorAutocompleteKeyDownEvent,\n autocompleteInputValue,\n )\n : (autocompleteInputValue ?? '');\n\n if (\n reason === 'removeOption' &&\n _event.type === 'keydown' &&\n currentInputValue === '' &&\n (isAllSelected || hiddenSelectedOptionCount > 0)\n ) {\n _event.preventDefault();\n _event.stopPropagation();\n return;\n }\n\n if (reason === 'clear') {\n if (shouldRestoreAllOnClearRef.current) {\n selectAll();\n return;\n }\n\n clearSelection();\n return;\n }\n\n if (showAllOption && details?.option && isSelectorAllOption(details.option)) {\n if (isAllSelected) {\n clearSelection();\n return;\n }\n\n selectAll();\n return;\n }\n\n selectMultipleValues(\n nextOptions\n .filter((option) => !isSelectorAllOption(option))\n .map((option) => option.value),\n );\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n onKeyDown={handleMultipleRootKeyDown}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder ?? t('Common.검색')}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n endAdornment: (\n <>\n {loading ? (\n <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} />\n ) : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n renderOption={(optionProps, option, state) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n <Checkbox checked={state.selected} className=\"!mr-8 !p-0\" size=\"small\" />\n {option.label}\n </li>\n );\n }}\n renderValue={(nextSelectedOptions, getItemProps) => {\n if (showAllOption && isAllSelected) {\n return [\n <Box\n component=\"span\"\n key={allOption.value}\n sx={{ color: 'text.primary', fontWeight: 500, mr: 0.5 }}\n >\n {allOption.label}\n </Box>,\n ];\n }\n\n const visibleSelectedOptions = nextSelectedOptions\n .filter((option) => !isSelectorAllOption(option))\n .slice(0, MULTIPLE_VISIBLE_CHIP_COUNT);\n\n return [\n ...visibleSelectedOptions.map((option, index) => {\n const { key, ...itemProps } = getItemProps({ index });\n\n return (\n <Chip\n {...itemProps}\n key={key}\n label={option.label}\n size=\"small\"\n sx={{ borderRadius: 1, mr: 0.5 }}\n />\n );\n }),\n ...(hiddenSelectedOptionCount > 0\n ? [\n <Chip\n key=\"owp-selector-hidden-chip-summary\"\n clickable\n label={`+${hiddenSelectedOptionCount}`}\n onClick={handleHiddenChipSummaryClick}\n onMouseDown={handleHiddenChipSummaryMouseDown}\n size=\"small\"\n sx={(theme) => ({\n backgroundColor: alpha(theme.palette.primary.main, 0.14),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.22)}`,\n borderRadius: 1,\n color: theme.palette.primary.dark,\n fontWeight: 600,\n mr: 0.5,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.2),\n },\n })}\n />,\n ]\n : []),\n ];\n }}\n />\n <Popper\n anchorEl={hiddenChipAnchorEl}\n open={Boolean(hiddenChipAnchorEl) && hiddenSelectedOptionCount > 0}\n placement=\"bottom-start\"\n sx={{ zIndex: (theme) => theme.zIndex.modal }}\n >\n <ClickAwayListener onClickAway={handleHiddenChipPopperClose}>\n <Paper\n className=\"mt-4\"\n sx={{\n border: (theme) => `1px solid ${alpha(theme.palette.common.black, 0.12)}`,\n display: 'flex',\n flexWrap: 'wrap',\n gap: 0.75,\n maxWidth: 280,\n p: 1,\n }}\n >\n {hiddenSelectedOptions.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n onDelete={() => handleHiddenChipDelete(option.value)}\n size=\"small\"\n sx={{ borderRadius: 1 }}\n />\n ))}\n </Paper>\n </ClickAwayListener>\n </Popper>\n </>\n );\n }\n\n return (\n <Autocomplete\n className={clsx('min-w-128', className)}\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={autocompleteSx}\n value={selectedOption}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(_event: SyntheticEvent, nextOption) => {\n if (!nextOption || (showAllOption && isSelectorAllOption(nextOption))) {\n selectSingleValue('');\n return;\n }\n\n selectSingleValue(nextOption.value);\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n sx: {\n ...(singleAutocompleteInputSx ?? {}),\n ...((params.InputProps as { sx?: object }).sx ?? {}),\n ...((textFieldProps?.slotProps?.input as { sx?: object } | undefined)?.sx ?? {}),\n },\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n selectOnFocus\n renderOption={(optionProps, option) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n {option.label}\n </li>\n );\n }}\n />\n );\n};\n"],"names":["MULTIPLE_VISIBLE_CHIP_COUNT","AUTOCOMPLETE_MIN_WIDTH","MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH","SELECTOR_CLEAR_ICON_FONT_SIZE","STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT","getCurrentAutocompleteInputValue","__name","event","fallbackValue","eventTarget","getAutocompleteOptionLabel","label","OwpSelectorAutocomplete","hookResult","props","t","useOwpTranslation","autocompleteInputValue","className","disableClientFilter","disabled","error","fullWidth","helperText","loading","loadingText","multiple","noOptionsText","onAutocompleteInputChange","placeholder","required","showAllOption","textFieldProps","allOption","clearSelection","isAllSelected","resolvedOptions","restoreAllSelection","selectAll","selectedOption","selectedOptions","selectMultipleValues","selectSingleValue","options","filteredSelectedOptions","useMemo","option","isSelectorAllOption","hiddenSelectedOptions","hiddenSelectedOptionCount","hiddenChipAnchorEl","setHiddenChipAnchorEl","useState","autocompleteRootRef","useRef","resolvedNoOptionsText","shouldRestoreAllOnClearRef","autocompleteSlotProps","resolvedTextFieldVariant","singleAutocompleteInputSx","autocompleteSx","multipleAutocompleteSx","useEffect","formElement","_a","handleFormReset","handleHiddenChipPopperClose","handleHiddenChipSummaryMouseDown","handleHiddenChipSummaryClick","previousAnchorElement","handleHiddenChipDelete","optionValue","handleMultipleRootKeyDown","currentInputValue","jsxs","Fragment","jsx","Autocomplete","clsx","nextOptions","ClearIcon","ArrowDropDownIcon","selected","_event","reason","details","nextInputValue","params","TextField","CircularProgress","optionProps","state","key","restOptionProps","Checkbox","nextSelectedOptions","getItemProps","Box","index","itemProps","createElement","Chip","theme","alpha","Popper","ClickAwayListener","Paper","nextOption","_c","_b"],"mappings":"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"}
1
+ {"version":3,"file":"OwpSelectorAutocomplete.js","sources":["../../../src/components/OwpSelectorBase/OwpSelectorAutocomplete.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport {\n Autocomplete,\n Box,\n Checkbox,\n Chip,\n CircularProgress,\n ClickAwayListener,\n Paper,\n Popper,\n TextField,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport {\n type KeyboardEvent as ReactKeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type MutableRefObject,\n type SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type {\n OwpSelectorBaseHookResult,\n OwpSelectorBaseOption,\n OwpSelectorBaseProps,\n} from './types';\nimport { isSelectorAllOption } from './utils';\n\ninterface OwpSelectorAutocompleteProps {\n hookResult: OwpSelectorBaseHookResult;\n props: OwpSelectorBaseProps;\n}\n\nconst MULTIPLE_VISIBLE_CHIP_COUNT = 2;\nconst AUTOCOMPLETE_MIN_WIDTH = 152;\nconst MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH = 72;\nconst SELECTOR_CLEAR_ICON_FONT_SIZE = 18.57;\nconst STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT = '11px !important';\nconst OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT = '2px !important';\nconst OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT = '5px !important';\n\ntype SelectorAutocompleteKeyDownEvent = ReactKeyboardEvent<HTMLDivElement> & {\n defaultMuiPrevented?: boolean;\n};\n\n/**\n * 현재 키 이벤트 기준 입력값 반환\n * @param event 키보드 이벤트\n * @param fallbackValue 제어 입력 fallback 값\n */\nconst getCurrentAutocompleteInputValue = (\n event: SelectorAutocompleteKeyDownEvent,\n fallbackValue?: string,\n) => {\n const eventTarget = event.target;\n\n if (eventTarget instanceof HTMLInputElement) {\n return eventTarget.value;\n }\n\n return fallbackValue ?? '';\n};\n\n/**\n * Autocomplete 옵션 라벨 문자열 변환\n * @param label 옵션 라벨\n */\nconst getAutocompleteOptionLabel = (label: OwpSelectorBaseOption['label']) => {\n return typeof label === 'string' || typeof label === 'number' ? `${label}` : '';\n};\n\n/**\n * Autocomplete 기반 공통 선택기\n * @param props Autocomplete 렌더링 props\n */\nexport const OwpSelectorAutocomplete = ({ hookResult, props }: OwpSelectorAutocompleteProps) => {\n const { t } = useOwpTranslation();\n const {\n autocompleteInputValue,\n className,\n disableClientFilter,\n disabled,\n error,\n fullWidth,\n helperText,\n label,\n loading,\n loadingText,\n multiple,\n noOptionsText,\n onAutocompleteInputChange,\n placeholder,\n required,\n showAllOption = true,\n textFieldProps,\n valueTextAlign,\n } = props;\n const {\n allOption,\n clearSelection,\n isAllSelected,\n resolvedOptions,\n restoreAllSelection,\n selectAll,\n selectedOption,\n selectedOptions,\n selectMultipleValues,\n selectSingleValue,\n } = hookResult;\n const options = showAllOption ? [allOption, ...resolvedOptions] : resolvedOptions;\n const filteredSelectedOptions = useMemo(\n () => selectedOptions.filter((option) => !isSelectorAllOption(option)),\n [selectedOptions],\n );\n const hiddenSelectedOptions = useMemo(\n () => (isAllSelected ? [] : filteredSelectedOptions.slice(MULTIPLE_VISIBLE_CHIP_COUNT)),\n [filteredSelectedOptions, isAllSelected],\n );\n const hiddenSelectedOptionCount = hiddenSelectedOptions.length;\n const [hiddenChipAnchorEl, setHiddenChipAnchorEl] = useState<HTMLElement | null>(null);\n const autocompleteRootRef = useRef<HTMLDivElement | null>(null);\n const resolvedNoOptionsText =\n noOptionsText ??\n t(disableClientFilter ? 'Message.검색 결과 없음' : 'Message.조회된 결과가 없습니다.');\n const shouldRestoreAllOnClearRef = useRef(\n multiple &&\n showAllOption &&\n ((props.value ?? props.defaultValue) == null || (props.value ?? props.defaultValue) === ''),\n );\n const autocompleteSlotProps = {\n clearIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n tabIndex: -1,\n },\n paper: {\n sx: {\n '& .MuiAutocomplete-noOptions': {\n fontSize: 14,\n px: 1,\n py: 1.5,\n whiteSpace: 'nowrap',\n },\n },\n },\n popupIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n tabIndex: -1,\n },\n } as const;\n const resolvedTextFieldVariant = textFieldProps?.variant ?? 'standard';\n const singleAutocompleteInputPaddingLeft =\n resolvedTextFieldVariant === 'standard'\n ? STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT\n : resolvedTextFieldVariant === 'outlined'\n ? textFieldProps?.size === 'small'\n ? OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT\n : OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT\n : undefined;\n const singleAutocompleteInputSx =\n singleAutocompleteInputPaddingLeft || valueTextAlign\n ? {\n '& .MuiAutocomplete-input': {\n ...(singleAutocompleteInputPaddingLeft\n ? { paddingLeft: singleAutocompleteInputPaddingLeft }\n : {}),\n ...(valueTextAlign ? { textAlign: valueTextAlign } : {}),\n },\n }\n : undefined;\n const autocompleteSx = {\n minWidth: AUTOCOMPLETE_MIN_WIDTH,\n '& .MuiAutocomplete-endAdornment': {\n '& .MuiAutocomplete-clearIndicator + .MuiAutocomplete-popupIndicator': {\n ml: 0,\n },\n '& .MuiIconButton-root': {\n m: 0,\n p: 0,\n },\n '& > :not(style) + :not(style)': {\n ml: 0,\n },\n alignItems: 'center',\n gap: 0,\n right: 0,\n },\n } as const;\n const multipleAutocompleteSx = {\n ...autocompleteSx,\n '& .MuiAutocomplete-inputRoot .MuiAutocomplete-input': {\n flexBasis: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n minWidth: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n },\n } as const;\n\n useEffect(() => {\n if (!hiddenSelectedOptionCount) {\n setHiddenChipAnchorEl(null);\n }\n }, [hiddenSelectedOptionCount]);\n\n useEffect(() => {\n if (!shouldRestoreAllOnClearRef.current) {\n return;\n }\n\n const formElement = autocompleteRootRef.current?.closest('form');\n\n if (!formElement) {\n return;\n }\n\n const handleFormReset = () => {\n window.setTimeout(() => {\n restoreAllSelection();\n }, 0);\n };\n\n formElement.addEventListener('reset', handleFormReset);\n\n return () => {\n formElement.removeEventListener('reset', handleFormReset);\n };\n }, [restoreAllSelection]);\n\n const handleHiddenChipPopperClose = () => {\n setHiddenChipAnchorEl(null);\n };\n\n const handleHiddenChipSummaryMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n };\n\n const handleHiddenChipSummaryClick = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setHiddenChipAnchorEl((previousAnchorElement) =>\n previousAnchorElement === event.currentTarget ? null : event.currentTarget,\n );\n };\n\n const handleHiddenChipDelete = (optionValue: string) => {\n selectMultipleValues(\n filteredSelectedOptions\n .filter((option) => option.value !== optionValue)\n .map((option) => option.value),\n );\n };\n\n const handleMultipleRootKeyDown = (event: SelectorAutocompleteKeyDownEvent) => {\n const currentInputValue = getCurrentAutocompleteInputValue(event, autocompleteInputValue);\n\n if (\n (isAllSelected || hiddenSelectedOptionCount > 0) &&\n currentInputValue === '' &&\n (event.key === 'Backspace' || event.key === 'Delete')\n ) {\n event.defaultMuiPrevented = true;\n event.preventDefault();\n event.stopPropagation();\n }\n\n textFieldProps?.onKeyDown?.(\n event as Parameters<NonNullable<typeof textFieldProps.onKeyDown>>[0],\n );\n };\n\n if (multiple) {\n return (\n <>\n <Autocomplete\n ref={autocompleteRootRef as MutableRefObject<HTMLDivElement | null>}\n className={clsx('min-w-128', className)}\n disableCloseOnSelect\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n multiple\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={multipleAutocompleteSx}\n value={selectedOptions}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(\n _event: SyntheticEvent,\n nextOptions: OwpSelectorBaseOption[],\n reason: string,\n details,\n ) => {\n const currentInputValue =\n _event.type === 'keydown'\n ? getCurrentAutocompleteInputValue(\n _event as SelectorAutocompleteKeyDownEvent,\n autocompleteInputValue,\n )\n : (autocompleteInputValue ?? '');\n\n if (\n reason === 'removeOption' &&\n _event.type === 'keydown' &&\n currentInputValue === '' &&\n (isAllSelected || hiddenSelectedOptionCount > 0)\n ) {\n _event.preventDefault();\n _event.stopPropagation();\n return;\n }\n\n if (reason === 'clear') {\n if (shouldRestoreAllOnClearRef.current) {\n selectAll();\n return;\n }\n\n clearSelection();\n return;\n }\n\n if (showAllOption && details?.option && isSelectorAllOption(details.option)) {\n if (isAllSelected) {\n clearSelection();\n return;\n }\n\n selectAll();\n return;\n }\n\n selectMultipleValues(\n nextOptions\n .filter((option) => !isSelectorAllOption(option))\n .map((option) => option.value),\n );\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n onKeyDown={handleMultipleRootKeyDown}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder ?? t('Common.검색')}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n endAdornment: (\n <>\n {loading ? (\n <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} />\n ) : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n renderOption={(optionProps, option, state) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n <Checkbox checked={state.selected} className=\"!mr-8 !p-0\" size=\"small\" />\n {option.label}\n </li>\n );\n }}\n renderValue={(nextSelectedOptions, getItemProps) => {\n if (showAllOption && isAllSelected) {\n return [\n <Box\n component=\"span\"\n key={allOption.value}\n sx={{ color: 'text.primary', fontWeight: 500, mr: 0.5 }}\n >\n {allOption.label}\n </Box>,\n ];\n }\n\n const visibleSelectedOptions = nextSelectedOptions\n .filter((option) => !isSelectorAllOption(option))\n .slice(0, MULTIPLE_VISIBLE_CHIP_COUNT);\n\n return [\n ...visibleSelectedOptions.map((option, index) => {\n const { key, ...itemProps } = getItemProps({ index });\n\n return (\n <Chip\n {...itemProps}\n key={key}\n label={option.label}\n size=\"small\"\n sx={{ borderRadius: 1, mr: 0.5 }}\n />\n );\n }),\n ...(hiddenSelectedOptionCount > 0\n ? [\n <Chip\n key=\"owp-selector-hidden-chip-summary\"\n clickable\n label={`+${hiddenSelectedOptionCount}`}\n onClick={handleHiddenChipSummaryClick}\n onMouseDown={handleHiddenChipSummaryMouseDown}\n size=\"small\"\n sx={(theme) => ({\n backgroundColor: alpha(theme.palette.primary.main, 0.14),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.22)}`,\n borderRadius: 1,\n color: theme.palette.primary.dark,\n fontWeight: 600,\n mr: 0.5,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.2),\n },\n })}\n />,\n ]\n : []),\n ];\n }}\n />\n <Popper\n anchorEl={hiddenChipAnchorEl}\n open={Boolean(hiddenChipAnchorEl) && hiddenSelectedOptionCount > 0}\n placement=\"bottom-start\"\n sx={{ zIndex: (theme) => theme.zIndex.modal }}\n >\n <ClickAwayListener onClickAway={handleHiddenChipPopperClose}>\n <Paper\n className=\"mt-4\"\n sx={{\n border: (theme) => `1px solid ${alpha(theme.palette.common.black, 0.12)}`,\n display: 'flex',\n flexWrap: 'wrap',\n gap: 0.75,\n maxWidth: 280,\n p: 1,\n }}\n >\n {hiddenSelectedOptions.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n onDelete={() => handleHiddenChipDelete(option.value)}\n size=\"small\"\n sx={{ borderRadius: 1 }}\n />\n ))}\n </Paper>\n </ClickAwayListener>\n </Popper>\n </>\n );\n }\n\n return (\n <Autocomplete\n className={clsx('min-w-128', className)}\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={autocompleteSx}\n value={selectedOption}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(_event: SyntheticEvent, nextOption) => {\n if (!nextOption || (showAllOption && isSelectorAllOption(nextOption))) {\n selectSingleValue('');\n return;\n }\n\n selectSingleValue(nextOption.value);\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n sx: {\n ...(singleAutocompleteInputSx ?? {}),\n ...((params.InputProps as { sx?: object }).sx ?? {}),\n ...((textFieldProps?.slotProps?.input as { sx?: object } | undefined)?.sx ?? {}),\n },\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n selectOnFocus\n renderOption={(optionProps, option) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n {option.label}\n </li>\n );\n }}\n />\n );\n};\n"],"names":["MULTIPLE_VISIBLE_CHIP_COUNT","AUTOCOMPLETE_MIN_WIDTH","MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH","SELECTOR_CLEAR_ICON_FONT_SIZE","STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT","getCurrentAutocompleteInputValue","__name","event","fallbackValue","eventTarget","getAutocompleteOptionLabel","label","OwpSelectorAutocomplete","hookResult","props","t","useOwpTranslation","autocompleteInputValue","className","disableClientFilter","disabled","error","fullWidth","helperText","loading","loadingText","multiple","noOptionsText","onAutocompleteInputChange","placeholder","required","showAllOption","textFieldProps","valueTextAlign","allOption","clearSelection","isAllSelected","resolvedOptions","restoreAllSelection","selectAll","selectedOption","selectedOptions","selectMultipleValues","selectSingleValue","options","filteredSelectedOptions","useMemo","option","isSelectorAllOption","hiddenSelectedOptions","hiddenSelectedOptionCount","hiddenChipAnchorEl","setHiddenChipAnchorEl","useState","autocompleteRootRef","useRef","resolvedNoOptionsText","shouldRestoreAllOnClearRef","autocompleteSlotProps","resolvedTextFieldVariant","singleAutocompleteInputPaddingLeft","singleAutocompleteInputSx","autocompleteSx","multipleAutocompleteSx","useEffect","formElement","_a","handleFormReset","handleHiddenChipPopperClose","handleHiddenChipSummaryMouseDown","handleHiddenChipSummaryClick","previousAnchorElement","handleHiddenChipDelete","optionValue","handleMultipleRootKeyDown","currentInputValue","jsxs","Fragment","jsx","Autocomplete","clsx","nextOptions","ClearIcon","ArrowDropDownIcon","selected","_event","reason","details","nextInputValue","params","TextField","CircularProgress","optionProps","state","key","restOptionProps","Checkbox","nextSelectedOptions","getItemProps","Box","index","itemProps","createElement","Chip","theme","alpha","Popper","ClickAwayListener","Paper","nextOption","_c","_b"],"mappings":"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"}
@@ -1,92 +1,106 @@
1
- var Z = Object.defineProperty;
2
- var n = (a, g) => Z(a, "name", { value: g, configurable: !0 });
3
- import { jsxs as s, jsx as l } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
- import { useOwpTranslation as P } from "../../hooks/useOwpTranslation.js";
5
- import { InputLabel as j, Select as M, MenuItem as u, FormHelperText as N, FormControl as B, Checkbox as H, ListItemText as y, Box as L, Tooltip as ee } from "@mui/material";
1
+ var P = Object.defineProperty;
2
+ var n = (t, d) => P(t, "name", { value: d, configurable: !0 });
3
+ import { jsxs as o, jsx as l } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
+ import { useOwpTranslation as ee } from "../../hooks/useOwpTranslation.js";
5
+ import { InputLabel as M, Select as j, MenuItem as p, FormHelperText as N, FormControl as B, Checkbox as H, ListItemText as y, Box as T, Tooltip as le } from "@mui/material";
6
6
  import { alpha as W } from "@mui/material/styles";
7
7
  import { clsx as z } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
8
- import { useId as le, useMemo as _ } from "react";
8
+ import { useId as te, useMemo as _ } from "react";
9
9
  import { getSelectorAllToken as F } from "./utils/querySelectorUtils.js";
10
- const R = { marginLeft: "11px" }, X = /* @__PURE__ */ n((a) => typeof a == "string" || typeof a == "number" ? `${a}` : "", "getSelectorLabelText"), ue = /* @__PURE__ */ n(({ hookResult: a, props: g }) => {
11
- const { t: h } = P(), {
10
+ const R = { marginLeft: "11px" }, re = /* @__PURE__ */ n((t, d) => {
11
+ if (!d)
12
+ return t;
13
+ const a = {
14
+ "& .MuiSelect-select": {
15
+ textAlign: d
16
+ }
17
+ };
18
+ return t ? [
19
+ ...Array.isArray(t) ? t : [t],
20
+ a
21
+ ] : a;
22
+ }, "mergeSingleSelectValueTextAlignSx"), X = /* @__PURE__ */ n((t) => typeof t == "string" || typeof t == "number" ? `${t}` : "", "getSelectorLabelText"), pe = /* @__PURE__ */ n(({ hookResult: t, props: d }) => {
23
+ const { t: a } = ee(), {
12
24
  className: S,
13
- disabled: T,
25
+ disabled: L,
14
26
  error: w,
15
- fullWidth: C,
16
- helperText: b,
17
- label: o,
18
- loading: O,
27
+ fullWidth: A,
28
+ helperText: v,
29
+ label: c,
30
+ loading: C,
19
31
  multiple: q,
20
32
  noOptionsText: D,
21
- required: k,
33
+ required: O,
22
34
  selectProps: r,
23
- showAllOption: v = !0
24
- } = g, {
25
- clearSelection: G,
26
- isAllSelected: x,
27
- resolvedOptions: d,
28
- selectAll: J,
29
- selectedValueList: m,
30
- selectMultipleValues: K,
31
- selectSingleValue: A
32
- } = a, f = `owp-selector-base-label-${le()}`, Q = d.length > 0, I = !O && !v && !Q, E = D ?? h("Message.조회된 결과가 없습니다."), V = _(
33
- () => d.filter((e) => m.includes(e.value)).map((e) => e.label),
34
- [d, m]
35
+ showAllOption: g = !0,
36
+ valueTextAlign: G
37
+ } = d, {
38
+ clearSelection: J,
39
+ isAllSelected: b,
40
+ resolvedOptions: u,
41
+ selectAll: K,
42
+ selectedValueList: h,
43
+ selectMultipleValues: Q,
44
+ selectSingleValue: k
45
+ } = t, f = `owp-selector-base-label-${te()}`, U = u.length > 0, I = !C && !g && !U, V = D ?? a("Message.조회된 결과가 없습니다."), E = _(
46
+ () => u.filter((e) => h.includes(e.value)).map((e) => e.label),
47
+ [u, h]
35
48
  ), $ = _(
36
- () => V.map((e) => X(e)).filter(Boolean),
37
- [V]
49
+ () => E.map((e) => X(e)).filter(Boolean),
50
+ [E]
38
51
  ).join(", ");
39
52
  if (!q)
40
- return /* @__PURE__ */ s(
53
+ return /* @__PURE__ */ o(
41
54
  B,
42
55
  {
43
56
  className: z("min-w-128", S),
44
- disabled: T,
57
+ disabled: L,
45
58
  error: w,
46
- fullWidth: C,
47
- required: k,
59
+ fullWidth: A,
60
+ required: O,
48
61
  variant: (r == null ? void 0 : r.variant) ?? "standard",
49
62
  children: [
50
- o ? /* @__PURE__ */ l(j, { shrink: !0, id: f, children: o }) : null,
51
- /* @__PURE__ */ s(
52
- M,
63
+ c ? /* @__PURE__ */ l(M, { shrink: !0, id: f, children: c }) : null,
64
+ /* @__PURE__ */ o(
65
+ j,
53
66
  {
54
67
  displayEmpty: !0,
55
68
  ...r,
56
- labelId: o ? f : void 0,
57
- value: m[0] ?? "",
69
+ labelId: c ? f : void 0,
70
+ sx: re(r == null ? void 0 : r.sx, G),
71
+ value: h[0] ?? "",
58
72
  onChange: /* @__PURE__ */ n((e) => {
59
- const p = String(e.target.value ?? "");
60
- if (v && p === "") {
61
- A("");
73
+ const x = String(e.target.value ?? "");
74
+ if (g && x === "") {
75
+ k("");
62
76
  return;
63
77
  }
64
- A(p);
78
+ k(x);
65
79
  }, "onChange"),
66
80
  children: [
67
- v ? /* @__PURE__ */ l(u, { value: "", children: h("Common.전체") }) : null,
68
- I ? /* @__PURE__ */ l(u, { disabled: !0, value: "", children: E }) : null,
69
- d.map((e) => /* @__PURE__ */ l(u, { disabled: e.disabled, value: e.value, children: e.label }, `owp-selector-base-item-${e.value}`))
81
+ g ? /* @__PURE__ */ l(p, { value: "", children: a("Common.전체") }) : null,
82
+ I ? /* @__PURE__ */ l(p, { disabled: !0, value: "", children: V }) : null,
83
+ u.map((e) => /* @__PURE__ */ l(p, { disabled: e.disabled, value: e.value, children: e.label }, `owp-selector-base-item-${e.value}`))
70
84
  ]
71
85
  }
72
86
  ),
73
- b ? /* @__PURE__ */ l(N, { sx: R, children: b }) : null
87
+ v ? /* @__PURE__ */ l(N, { sx: R, children: v }) : null
74
88
  ]
75
89
  }
76
90
  );
77
- const U = /* @__PURE__ */ n((e) => {
78
- const p = Array.isArray(e) ? e.map((t) => String(t)) : [], c = d.filter((t) => p.includes(t.value)).map((t) => X(t.label)).filter(Boolean), i = x ? 0 : Math.max(c.length - 2, 0), Y = x ? h("Common.전체") : i > 0 ? `${c.slice(0, 2).join(", ")}...` : c.join(", ");
79
- return /* @__PURE__ */ l(ee, { title: $, placement: "top", disableHoverListener: !$, children: /* @__PURE__ */ s(L, { component: "span", sx: { alignItems: "center", display: "inline-flex", maxWidth: "100%" }, children: [
80
- /* @__PURE__ */ l(L, { component: "span", sx: { minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: Y }),
81
- i > 0 ? /* @__PURE__ */ l(
82
- L,
91
+ const Y = /* @__PURE__ */ n((e) => {
92
+ const x = Array.isArray(e) ? e.map((i) => String(i)) : [], m = u.filter((i) => x.includes(i.value)).map((i) => X(i.label)).filter(Boolean), s = b ? 0 : Math.max(m.length - 2, 0), Z = b ? a("Common.전체") : s > 0 ? `${m.slice(0, 2).join(", ")}...` : m.join(", ");
93
+ return /* @__PURE__ */ l(le, { title: $, placement: "top", disableHoverListener: !$, children: /* @__PURE__ */ o(T, { component: "span", sx: { alignItems: "center", display: "inline-flex", maxWidth: "100%" }, children: [
94
+ /* @__PURE__ */ l(T, { component: "span", sx: { minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: Z }),
95
+ s > 0 ? /* @__PURE__ */ l(
96
+ T,
83
97
  {
84
98
  component: "span",
85
- sx: /* @__PURE__ */ n((t) => ({
86
- backgroundColor: W(t.palette.primary.main, 0.14),
87
- border: `1px solid ${W(t.palette.primary.main, 0.22)}`,
99
+ sx: /* @__PURE__ */ n((i) => ({
100
+ backgroundColor: W(i.palette.primary.main, 0.14),
101
+ border: `1px solid ${W(i.palette.primary.main, 0.22)}`,
88
102
  borderRadius: 1,
89
- color: t.palette.primary.dark,
103
+ color: i.palette.primary.dark,
90
104
  fontSize: 12,
91
105
  fontWeight: 600,
92
106
  lineHeight: 1.4,
@@ -94,62 +108,62 @@ const R = { marginLeft: "11px" }, X = /* @__PURE__ */ n((a) => typeof a == "stri
94
108
  px: 0.75,
95
109
  py: 0.125
96
110
  }), "sx"),
97
- children: `+${i}`
111
+ children: `+${s}`
98
112
  }
99
113
  ) : null
100
114
  ] }) });
101
115
  }, "renderValue");
102
- return /* @__PURE__ */ s(
116
+ return /* @__PURE__ */ o(
103
117
  B,
104
118
  {
105
119
  className: z("w-128", S),
106
- disabled: T,
120
+ disabled: L,
107
121
  error: w,
108
- fullWidth: C,
109
- required: k,
122
+ fullWidth: A,
123
+ required: O,
110
124
  variant: (r == null ? void 0 : r.variant) ?? "standard",
111
125
  children: [
112
- o ? /* @__PURE__ */ l(j, { shrink: !0, id: f, children: o }) : null,
113
- /* @__PURE__ */ s(
114
- M,
126
+ c ? /* @__PURE__ */ l(M, { shrink: !0, id: f, children: c }) : null,
127
+ /* @__PURE__ */ o(
128
+ j,
115
129
  {
116
130
  displayEmpty: !0,
117
131
  ...r,
118
- labelId: o ? f : void 0,
132
+ labelId: c ? f : void 0,
119
133
  multiple: !0,
120
- renderValue: U,
121
- value: m,
122
- onChange: /* @__PURE__ */ n((e, p) => {
123
- const c = Array.isArray(e.target.value) ? e.target.value.map((i) => String(i)) : String(e.target.value ?? "").split(",").map((i) => i.trim()).filter(Boolean);
124
- if (c.includes(F())) {
125
- if (x) {
126
- G();
134
+ renderValue: Y,
135
+ value: h,
136
+ onChange: /* @__PURE__ */ n((e, x) => {
137
+ const m = Array.isArray(e.target.value) ? e.target.value.map((s) => String(s)) : String(e.target.value ?? "").split(",").map((s) => s.trim()).filter(Boolean);
138
+ if (m.includes(F())) {
139
+ if (b) {
140
+ J();
127
141
  return;
128
142
  }
129
- J();
143
+ K();
130
144
  return;
131
145
  }
132
- K(c);
146
+ Q(m);
133
147
  }, "onChange"),
134
148
  children: [
135
- v ? /* @__PURE__ */ s(u, { value: F(), children: [
136
- /* @__PURE__ */ l(H, { checked: x, size: "small" }),
137
- /* @__PURE__ */ l(y, { primary: h("Common.전체") })
149
+ g ? /* @__PURE__ */ o(p, { value: F(), children: [
150
+ /* @__PURE__ */ l(H, { checked: b, size: "small" }),
151
+ /* @__PURE__ */ l(y, { primary: a("Common.전체") })
138
152
  ] }) : null,
139
- I ? /* @__PURE__ */ l(u, { disabled: !0, value: "", children: /* @__PURE__ */ l(y, { primary: E }) }) : null,
140
- d.map((e) => /* @__PURE__ */ s(u, { disabled: e.disabled || O, value: e.value, children: [
141
- /* @__PURE__ */ l(H, { checked: m.includes(e.value), size: "small" }),
153
+ I ? /* @__PURE__ */ l(p, { disabled: !0, value: "", children: /* @__PURE__ */ l(y, { primary: V }) }) : null,
154
+ u.map((e) => /* @__PURE__ */ o(p, { disabled: e.disabled || C, value: e.value, children: [
155
+ /* @__PURE__ */ l(H, { checked: h.includes(e.value), size: "small" }),
142
156
  /* @__PURE__ */ l(y, { primary: e.label })
143
157
  ] }, `owp-selector-base-item-${e.value}`))
144
158
  ]
145
159
  }
146
160
  ),
147
- b ? /* @__PURE__ */ l(N, { sx: R, children: b }) : null
161
+ v ? /* @__PURE__ */ l(N, { sx: R, children: v }) : null
148
162
  ]
149
163
  }
150
164
  );
151
165
  }, "OwpSelectorSelect");
152
166
  export {
153
- ue as OwpSelectorSelect
167
+ pe as OwpSelectorSelect
154
168
  };
155
169
  //# sourceMappingURL=OwpSelectorSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OwpSelectorSelect.js","sources":["../../../src/components/OwpSelectorBase/OwpSelectorSelect.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n Box,\n Checkbox,\n FormControl,\n FormHelperText,\n InputLabel,\n ListItemText,\n MenuItem,\n Select,\n Tooltip,\n type SelectChangeEvent,\n type SelectProps,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport { type ReactNode, useId, useMemo } from 'react';\nimport type { OwpSelectorBaseHookResult, OwpSelectorBaseProps } from './types';\nimport { getSelectorAllToken } from './utils';\n\ninterface OwpSelectorSelectProps {\n hookResult: OwpSelectorBaseHookResult;\n props: OwpSelectorBaseProps;\n}\n\nconst SELECT_HELPER_TEXT_SX = { marginLeft: '11px' } as const;\n\n/**\n * 선택 라벨 문자열 변환\n * @param label 선택 라벨\n */\nconst getSelectorLabelText = (label: ReactNode) => {\n return typeof label === 'string' || typeof label === 'number' ? `${label}` : '';\n};\n\n/**\n * Select 기반 공통 선택기\n * @param props Select 렌더링 props\n */\nexport const OwpSelectorSelect = ({ hookResult, props }: OwpSelectorSelectProps) => {\n const { t } = useOwpTranslation();\n const {\n className,\n disabled,\n error,\n fullWidth,\n helperText,\n label,\n loading,\n multiple,\n noOptionsText,\n required,\n selectProps,\n showAllOption = true,\n } = props;\n const {\n clearSelection,\n isAllSelected,\n resolvedOptions,\n selectAll,\n selectedValueList,\n selectMultipleValues,\n selectSingleValue,\n } = hookResult;\n const labelId = `owp-selector-base-label-${useId()}`;\n const hasOptions = resolvedOptions.length > 0;\n const shouldShowNoOptions = !loading && !showAllOption && !hasOptions;\n const resolvedNoOptionsText = noOptionsText ?? t('Message.조회된 결과가 없습니다.');\n const selectedLabelList = useMemo(\n () => resolvedOptions.filter((option) => selectedValueList.includes(option.value)).map((option) => option.label),\n [resolvedOptions, selectedValueList],\n );\n const selectedLabelTextList = useMemo(\n () => selectedLabelList.map((label) => getSelectorLabelText(label)).filter(Boolean),\n [selectedLabelList],\n );\n const selectedTitle = selectedLabelTextList.join(', ');\n\n if (!multiple) {\n return (\n <FormControl\n className={clsx('min-w-128', className)}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n required={required}\n variant={selectProps?.variant ?? 'standard'}\n >\n {label ? (\n <InputLabel shrink id={labelId}>\n {label}\n </InputLabel>\n ) : null}\n <Select\n displayEmpty\n {...(selectProps as SelectProps<unknown>)}\n labelId={label ? labelId : undefined}\n value={(selectedValueList[0] ?? '') as SelectProps<unknown>['value']}\n onChange={(event) => {\n const nextValue = String(event.target.value ?? '');\n\n if (showAllOption && nextValue === '') {\n selectSingleValue('');\n return;\n }\n\n selectSingleValue(nextValue);\n }}\n >\n {showAllOption ? <MenuItem value=\"\">{t('Common.전체')}</MenuItem> : null}\n {shouldShowNoOptions ? (\n <MenuItem disabled value=\"\">\n {resolvedNoOptionsText}\n </MenuItem>\n ) : null}\n {resolvedOptions.map((option) => (\n <MenuItem key={`owp-selector-base-item-${option.value}`} disabled={option.disabled} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </Select>\n {helperText ? <FormHelperText sx={SELECT_HELPER_TEXT_SX}>{helperText}</FormHelperText> : null}\n </FormControl>\n );\n }\n\n const renderValue = (selected: unknown) => {\n const selectedValues = Array.isArray(selected) ? selected.map((item) => String(item)) : [];\n const visibleLabelTextList = resolvedOptions\n .filter((option) => selectedValues.includes(option.value))\n .map((option) => getSelectorLabelText(option.label))\n .filter(Boolean);\n const hiddenLabelCount = isAllSelected ? 0 : Math.max(visibleLabelTextList.length - 2, 0);\n const displayText = isAllSelected\n ? t('Common.전체')\n : hiddenLabelCount > 0\n ? `${visibleLabelTextList.slice(0, 2).join(', ')}...`\n : visibleLabelTextList.join(', ');\n\n return (\n <Tooltip title={selectedTitle} placement=\"top\" disableHoverListener={!selectedTitle}>\n <Box component=\"span\" sx={{ alignItems: 'center', display: 'inline-flex', maxWidth: '100%' }}>\n <Box component=\"span\" sx={{ minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>\n {displayText}\n </Box>\n {hiddenLabelCount > 0 ? (\n <Box\n component=\"span\"\n sx={(theme) => ({\n backgroundColor: alpha(theme.palette.primary.main, 0.14),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.22)}`,\n borderRadius: 1,\n color: theme.palette.primary.dark,\n fontSize: 12,\n fontWeight: 600,\n lineHeight: 1.4,\n ml: 0.5,\n px: 0.75,\n py: 0.125,\n })}\n >\n {`+${hiddenLabelCount}`}\n </Box>\n ) : null}\n </Box>\n </Tooltip>\n );\n };\n\n return (\n <FormControl\n className={clsx('w-128', className)}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n required={required}\n variant={selectProps?.variant ?? 'standard'}\n >\n {label ? (\n <InputLabel shrink id={labelId}>\n {label}\n </InputLabel>\n ) : null}\n <Select\n displayEmpty\n {...(selectProps as SelectProps<unknown>)}\n labelId={label ? labelId : undefined}\n multiple\n renderValue={renderValue}\n value={selectedValueList as SelectProps<unknown>['value']}\n onChange={(event: SelectChangeEvent<unknown>, child: ReactNode) => {\n const selectedValues = Array.isArray(event.target.value)\n ? event.target.value.map((item) => String(item))\n : String(event.target.value ?? '')\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (selectedValues.includes(getSelectorAllToken())) {\n if (isAllSelected) {\n clearSelection();\n return;\n }\n\n selectAll();\n return;\n }\n\n selectMultipleValues(selectedValues);\n void child;\n }}\n >\n {showAllOption ? (\n <MenuItem value={getSelectorAllToken()}>\n <Checkbox checked={isAllSelected} size=\"small\" />\n <ListItemText primary={t('Common.전체')} />\n </MenuItem>\n ) : null}\n {shouldShowNoOptions ? (\n <MenuItem disabled value=\"\">\n <ListItemText primary={resolvedNoOptionsText} />\n </MenuItem>\n ) : null}\n {resolvedOptions.map((option) => (\n <MenuItem key={`owp-selector-base-item-${option.value}`} disabled={option.disabled || loading} value={option.value}>\n <Checkbox checked={selectedValueList.includes(option.value)} size=\"small\" />\n <ListItemText primary={option.label} />\n </MenuItem>\n ))}\n </Select>\n {helperText ? <FormHelperText sx={SELECT_HELPER_TEXT_SX}>{helperText}</FormHelperText> : null}\n </FormControl>\n );\n};\n"],"names":["SELECT_HELPER_TEXT_SX","getSelectorLabelText","__name","label","OwpSelectorSelect","hookResult","props","t","useOwpTranslation","className","disabled","error","fullWidth","helperText","loading","multiple","noOptionsText","required","selectProps","showAllOption","clearSelection","isAllSelected","resolvedOptions","selectAll","selectedValueList","selectMultipleValues","selectSingleValue","labelId","useId","hasOptions","shouldShowNoOptions","resolvedNoOptionsText","selectedLabelList","useMemo","option","selectedTitle","jsxs","FormControl","clsx","InputLabel","Select","event","nextValue","MenuItem","jsx","FormHelperText","renderValue","selected","selectedValues","item","visibleLabelTextList","hiddenLabelCount","displayText","Tooltip","Box","theme","alpha","child","getSelectorAllToken","Checkbox","ListItemText"],"mappings":"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"}
1
+ {"version":3,"file":"OwpSelectorSelect.js","sources":["../../../src/components/OwpSelectorBase/OwpSelectorSelect.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n Box,\n Checkbox,\n FormControl,\n FormHelperText,\n InputLabel,\n ListItemText,\n MenuItem,\n Select,\n Tooltip,\n type SelectChangeEvent,\n type SelectProps,\n} from '@mui/material';\nimport { alpha, type SxProps, type Theme } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport { type ReactNode, useId, useMemo } from 'react';\nimport type { OwpSelectorBaseHookResult, OwpSelectorBaseProps } from './types';\nimport { getSelectorAllToken } from './utils';\n\ninterface OwpSelectorSelectProps {\n hookResult: OwpSelectorBaseHookResult;\n props: OwpSelectorBaseProps;\n}\n\nconst SELECT_HELPER_TEXT_SX = { marginLeft: '11px' } as const;\n\n/**\n * 단일 Select 값 정렬 sx 병합\n * @param baseSx 기존 Select sx\n * @param valueTextAlign 값 텍스트 정렬\n */\nconst mergeSingleSelectValueTextAlignSx = (\n baseSx: SxProps<Theme> | undefined,\n valueTextAlign: OwpSelectorBaseProps['valueTextAlign'],\n): SxProps<Theme> | undefined => {\n if (!valueTextAlign) {\n return baseSx;\n }\n\n const valueTextAlignSx = {\n '& .MuiSelect-select': {\n textAlign: valueTextAlign,\n },\n } as const;\n\n if (!baseSx) {\n return valueTextAlignSx;\n }\n\n return [\n ...(Array.isArray(baseSx) ? baseSx : [baseSx]),\n valueTextAlignSx,\n ];\n};\n\n/**\n * 선택 라벨 문자열 변환\n * @param label 선택 라벨\n */\nconst getSelectorLabelText = (label: ReactNode) => {\n return typeof label === 'string' || typeof label === 'number' ? `${label}` : '';\n};\n\n/**\n * Select 기반 공통 선택기\n * @param props Select 렌더링 props\n */\nexport const OwpSelectorSelect = ({ hookResult, props }: OwpSelectorSelectProps) => {\n const { t } = useOwpTranslation();\n const {\n className,\n disabled,\n error,\n fullWidth,\n helperText,\n label,\n loading,\n multiple,\n noOptionsText,\n required,\n selectProps,\n showAllOption = true,\n valueTextAlign,\n } = props;\n const {\n clearSelection,\n isAllSelected,\n resolvedOptions,\n selectAll,\n selectedValueList,\n selectMultipleValues,\n selectSingleValue,\n } = hookResult;\n const labelId = `owp-selector-base-label-${useId()}`;\n const hasOptions = resolvedOptions.length > 0;\n const shouldShowNoOptions = !loading && !showAllOption && !hasOptions;\n const resolvedNoOptionsText = noOptionsText ?? t('Message.조회된 결과가 없습니다.');\n const selectedLabelList = useMemo(\n () => resolvedOptions.filter((option) => selectedValueList.includes(option.value)).map((option) => option.label),\n [resolvedOptions, selectedValueList],\n );\n const selectedLabelTextList = useMemo(\n () => selectedLabelList.map((label) => getSelectorLabelText(label)).filter(Boolean),\n [selectedLabelList],\n );\n const selectedTitle = selectedLabelTextList.join(', ');\n\n if (!multiple) {\n return (\n <FormControl\n className={clsx('min-w-128', className)}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n required={required}\n variant={selectProps?.variant ?? 'standard'}\n >\n {label ? (\n <InputLabel shrink id={labelId}>\n {label}\n </InputLabel>\n ) : null}\n <Select\n displayEmpty\n {...(selectProps as SelectProps<unknown>)}\n labelId={label ? labelId : undefined}\n sx={mergeSingleSelectValueTextAlignSx(selectProps?.sx, valueTextAlign)}\n value={(selectedValueList[0] ?? '') as SelectProps<unknown>['value']}\n onChange={(event) => {\n const nextValue = String(event.target.value ?? '');\n\n if (showAllOption && nextValue === '') {\n selectSingleValue('');\n return;\n }\n\n selectSingleValue(nextValue);\n }}\n >\n {showAllOption ? <MenuItem value=\"\">{t('Common.전체')}</MenuItem> : null}\n {shouldShowNoOptions ? (\n <MenuItem disabled value=\"\">\n {resolvedNoOptionsText}\n </MenuItem>\n ) : null}\n {resolvedOptions.map((option) => (\n <MenuItem key={`owp-selector-base-item-${option.value}`} disabled={option.disabled} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </Select>\n {helperText ? <FormHelperText sx={SELECT_HELPER_TEXT_SX}>{helperText}</FormHelperText> : null}\n </FormControl>\n );\n }\n\n const renderValue = (selected: unknown) => {\n const selectedValues = Array.isArray(selected) ? selected.map((item) => String(item)) : [];\n const visibleLabelTextList = resolvedOptions\n .filter((option) => selectedValues.includes(option.value))\n .map((option) => getSelectorLabelText(option.label))\n .filter(Boolean);\n const hiddenLabelCount = isAllSelected ? 0 : Math.max(visibleLabelTextList.length - 2, 0);\n const displayText = isAllSelected\n ? t('Common.전체')\n : hiddenLabelCount > 0\n ? `${visibleLabelTextList.slice(0, 2).join(', ')}...`\n : visibleLabelTextList.join(', ');\n\n return (\n <Tooltip title={selectedTitle} placement=\"top\" disableHoverListener={!selectedTitle}>\n <Box component=\"span\" sx={{ alignItems: 'center', display: 'inline-flex', maxWidth: '100%' }}>\n <Box component=\"span\" sx={{ minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>\n {displayText}\n </Box>\n {hiddenLabelCount > 0 ? (\n <Box\n component=\"span\"\n sx={(theme) => ({\n backgroundColor: alpha(theme.palette.primary.main, 0.14),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.22)}`,\n borderRadius: 1,\n color: theme.palette.primary.dark,\n fontSize: 12,\n fontWeight: 600,\n lineHeight: 1.4,\n ml: 0.5,\n px: 0.75,\n py: 0.125,\n })}\n >\n {`+${hiddenLabelCount}`}\n </Box>\n ) : null}\n </Box>\n </Tooltip>\n );\n };\n\n return (\n <FormControl\n className={clsx('w-128', className)}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n required={required}\n variant={selectProps?.variant ?? 'standard'}\n >\n {label ? (\n <InputLabel shrink id={labelId}>\n {label}\n </InputLabel>\n ) : null}\n <Select\n displayEmpty\n {...(selectProps as SelectProps<unknown>)}\n labelId={label ? labelId : undefined}\n multiple\n renderValue={renderValue}\n value={selectedValueList as SelectProps<unknown>['value']}\n onChange={(event: SelectChangeEvent<unknown>, child: ReactNode) => {\n const selectedValues = Array.isArray(event.target.value)\n ? event.target.value.map((item) => String(item))\n : String(event.target.value ?? '')\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (selectedValues.includes(getSelectorAllToken())) {\n if (isAllSelected) {\n clearSelection();\n return;\n }\n\n selectAll();\n return;\n }\n\n selectMultipleValues(selectedValues);\n void child;\n }}\n >\n {showAllOption ? (\n <MenuItem value={getSelectorAllToken()}>\n <Checkbox checked={isAllSelected} size=\"small\" />\n <ListItemText primary={t('Common.전체')} />\n </MenuItem>\n ) : null}\n {shouldShowNoOptions ? (\n <MenuItem disabled value=\"\">\n <ListItemText primary={resolvedNoOptionsText} />\n </MenuItem>\n ) : null}\n {resolvedOptions.map((option) => (\n <MenuItem key={`owp-selector-base-item-${option.value}`} disabled={option.disabled || loading} value={option.value}>\n <Checkbox checked={selectedValueList.includes(option.value)} size=\"small\" />\n <ListItemText primary={option.label} />\n </MenuItem>\n ))}\n </Select>\n {helperText ? <FormHelperText sx={SELECT_HELPER_TEXT_SX}>{helperText}</FormHelperText> : null}\n </FormControl>\n );\n};\n"],"names":["SELECT_HELPER_TEXT_SX","mergeSingleSelectValueTextAlignSx","__name","baseSx","valueTextAlign","valueTextAlignSx","getSelectorLabelText","label","OwpSelectorSelect","hookResult","props","t","useOwpTranslation","className","disabled","error","fullWidth","helperText","loading","multiple","noOptionsText","required","selectProps","showAllOption","clearSelection","isAllSelected","resolvedOptions","selectAll","selectedValueList","selectMultipleValues","selectSingleValue","labelId","useId","hasOptions","shouldShowNoOptions","resolvedNoOptionsText","selectedLabelList","useMemo","option","selectedTitle","jsxs","FormControl","clsx","InputLabel","Select","event","nextValue","MenuItem","jsx","FormHelperText","renderValue","selected","selectedValues","item","visibleLabelTextList","hiddenLabelCount","displayText","Tooltip","Box","theme","alpha","child","getSelectorAllToken","Checkbox","ListItemText"],"mappings":";;;;;;;;;AAyBA,MAAMA,IAAwB,EAAE,YAAY,OAAA,GAOtCC,KAAoC,gBAAAC,EAAA,CACxCC,GACAC,MAC+B;AAC/B,MAAI,CAACA;AACH,WAAOD;AAGT,QAAME,IAAmB;AAAA,IACvB,uBAAuB;AAAA,MACrB,WAAWD;AAAA,IAAA;AAAA,EACb;AAGF,SAAKD,IAIE;AAAA,IACL,GAAI,MAAM,QAAQA,CAAM,IAAIA,IAAS,CAACA,CAAM;AAAA,IAC5CE;AAAA,EAAA,IALOA;AAOX,GAtB0C,sCA4BpCC,IAAuB,gBAAAJ,EAAA,CAACK,MACrB,OAAOA,KAAU,YAAY,OAAOA,KAAU,WAAW,GAAGA,CAAK,KAAK,IADlD,yBAQhBC,KAAoB,gBAAAN,EAAA,CAAC,EAAE,YAAAO,GAAY,OAAAC,QAAoC;AAClF,QAAM,EAAE,GAAAC,EAAA,IAAMC,GAAA,GACR;AAAA,IACJ,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAV;AAAA,IACA,SAAAW;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,gBAAAnB;AAAA,EAAA,IACEM,GACE;AAAA,IACJ,gBAAAc;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,IACErB,GACEsB,IAAU,2BAA2BC,GAAA,CAAO,IAC5CC,IAAaP,EAAgB,SAAS,GACtCQ,IAAsB,CAAChB,KAAW,CAACK,KAAiB,CAACU,GACrDE,IAAwBf,KAAiBT,EAAE,uBAAuB,GAClEyB,IAAoBC;AAAA,IACxB,MAAMX,EAAgB,OAAO,CAACY,MAAWV,EAAkB,SAASU,EAAO,KAAK,CAAC,EAAE,IAAI,CAACA,MAAWA,EAAO,KAAK;AAAA,IAC/G,CAACZ,GAAiBE,CAAiB;AAAA,EAAA,GAM/BW,IAJwBF;AAAA,IAC5B,MAAMD,EAAkB,IAAI,CAAC7B,MAAUD,EAAqBC,CAAK,CAAC,EAAE,OAAO,OAAO;AAAA,IAClF,CAAC6B,CAAiB;AAAA,EAAA,EAEwB,KAAK,IAAI;AAErD,MAAI,CAACjB;AACH,WACE,gBAAAqB;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAK,aAAa7B,CAAS;AAAA,QACtC,UAAAC;AAAA,QACA,OAAAC;AAAA,QACA,WAAAC;AAAA,QACA,UAAAK;AAAA,QACA,UAASC,KAAA,gBAAAA,EAAa,YAAW;AAAA,QAEhC,UAAA;AAAA,UAAAf,sBACEoC,GAAA,EAAW,QAAM,IAAC,IAAIZ,GACpB,aACH,IACE;AAAA,UACJ,gBAAAS;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,cAAY;AAAA,cACX,GAAItB;AAAA,cACL,SAASf,IAAQwB,IAAU;AAAA,cAC3B,IAAI9B,GAAkCqB,KAAA,gBAAAA,EAAa,IAAIlB,CAAc;AAAA,cACrE,OAAQwB,EAAkB,CAAC,KAAK;AAAA,cAChC,UAAU,gBAAA1B,EAAA,CAAC2C,MAAU;AACnB,sBAAMC,IAAY,OAAOD,EAAM,OAAO,SAAS,EAAE;AAEjD,oBAAItB,KAAiBuB,MAAc,IAAI;AACrC,kBAAAhB,EAAkB,EAAE;AACpB;AAAA,gBACF;AAEA,gBAAAA,EAAkBgB,CAAS;AAAA,cAC7B,GATU;AAAA,cAWT,UAAA;AAAA,gBAAAvB,sBAAiBwB,GAAA,EAAS,OAAM,IAAI,UAAApC,EAAE,WAAW,GAAE,IAAc;AAAA,gBACjEuB,sBACEa,GAAA,EAAS,UAAQ,IAAC,OAAM,IACtB,aACH,IACE;AAAA,gBACHrB,EAAgB,IAAI,CAACY,MACpB,gBAAAU,EAACD,GAAA,EAAwD,UAAUT,EAAO,UAAU,OAAOA,EAAO,OAC/F,UAAAA,EAAO,MAAA,GADK,0BAA0BA,EAAO,KAAK,EAErD,CACD;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAEFrB,IAAa,gBAAA+B,EAACC,GAAA,EAAe,IAAIjD,GAAwB,aAAW,IAAoB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAK/F,QAAMkD,IAAc,gBAAAhD,EAAA,CAACiD,MAAsB;AACzC,UAAMC,IAAiB,MAAM,QAAQD,CAAQ,IAAIA,EAAS,IAAI,CAACE,MAAS,OAAOA,CAAI,CAAC,IAAI,CAAA,GAClFC,IAAuB5B,EAC1B,OAAO,CAACY,MAAWc,EAAe,SAASd,EAAO,KAAK,CAAC,EACxD,IAAI,CAACA,MAAWhC,EAAqBgC,EAAO,KAAK,CAAC,EAClD,OAAO,OAAO,GACXiB,IAAmB9B,IAAgB,IAAI,KAAK,IAAI6B,EAAqB,SAAS,GAAG,CAAC,GAClFE,IAAc/B,IAChBd,EAAE,WAAW,IACb4C,IAAmB,IACjB,GAAGD,EAAqB,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,QAC9CA,EAAqB,KAAK,IAAI;AAEpC,WACE,gBAAAN,EAACS,MAAQ,OAAOlB,GAAe,WAAU,OAAM,sBAAsB,CAACA,GACpE,UAAA,gBAAAC,EAACkB,KAAI,WAAU,QAAO,IAAI,EAAE,YAAY,UAAU,SAAS,eAAe,UAAU,OAAA,GAClF,UAAA;AAAA,MAAA,gBAAAV,EAACU,GAAA,EAAI,WAAU,QAAO,IAAI,EAAE,UAAU,GAAG,UAAU,UAAU,cAAc,YAAY,YAAY,YAChG,UAAAF,GACH;AAAA,MACCD,IAAmB,IAClB,gBAAAP;AAAA,QAACU;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAI,gBAAAxD,EAAA,CAACyD,OAAW;AAAA,YACd,iBAAiBC,EAAMD,EAAM,QAAQ,QAAQ,MAAM,IAAI;AAAA,YACvD,QAAQ,aAAaC,EAAMD,EAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,YAC5D,cAAc;AAAA,YACd,OAAOA,EAAM,QAAQ,QAAQ;AAAA,YAC7B,UAAU;AAAA,YACV,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,UAAA,IAVF;AAAA,UAaH,cAAIJ,CAAgB;AAAA,QAAA;AAAA,MAAA,IAErB;AAAA,IAAA,EAAA,CACN,EAAA,CACF;AAAA,EAEJ,GAzCoB;AA2CpB,SACE,gBAAAf;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAK,SAAS7B,CAAS;AAAA,MAClC,UAAAC;AAAA,MACA,OAAAC;AAAA,MACA,WAAAC;AAAA,MACA,UAAAK;AAAA,MACA,UAASC,KAAA,gBAAAA,EAAa,YAAW;AAAA,MAEhC,UAAA;AAAA,QAAAf,sBACEoC,GAAA,EAAW,QAAM,IAAC,IAAIZ,GACpB,aACH,IACE;AAAA,QACJ,gBAAAS;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,cAAY;AAAA,YACX,GAAItB;AAAA,YACL,SAASf,IAAQwB,IAAU;AAAA,YAC3B,UAAQ;AAAA,YACR,aAAAmB;AAAA,YACA,OAAOtB;AAAA,YACP,UAAU,gBAAA1B,EAAA,CAAC2C,GAAmCgB,MAAqB;AACjE,oBAAMT,IAAiB,MAAM,QAAQP,EAAM,OAAO,KAAK,IACnDA,EAAM,OAAO,MAAM,IAAI,CAACQ,MAAS,OAAOA,CAAI,CAAC,IAC7C,OAAOR,EAAM,OAAO,SAAS,EAAE,EAC5B,MAAM,GAAG,EACT,IAAI,CAACQ,MAASA,EAAK,KAAA,CAAM,EACzB,OAAO,OAAO;AAErB,kBAAID,EAAe,SAASU,EAAA,CAAqB,GAAG;AAClD,oBAAIrC,GAAe;AACjB,kBAAAD,EAAA;AACA;AAAA,gBACF;AAEA,gBAAAG,EAAA;AACA;AAAA,cACF;AAEA,cAAAE,EAAqBuB,CAAc;AAAA,YAErC,GApBU;AAAA,YAsBT,UAAA;AAAA,cAAA7B,IACC,gBAAAiB,EAACO,GAAA,EAAS,OAAOe,EAAA,GACf,UAAA;AAAA,gBAAA,gBAAAd,EAACe,GAAA,EAAS,SAAStC,GAAe,MAAK,SAAQ;AAAA,gBAC/C,gBAAAuB,EAACgB,GAAA,EAAa,SAASrD,EAAE,WAAW,EAAA,CAAG;AAAA,cAAA,EAAA,CACzC,IACE;AAAA,cACHuB,IACC,gBAAAc,EAACD,GAAA,EAAS,UAAQ,IAAC,OAAM,IACvB,UAAA,gBAAAC,EAACgB,GAAA,EAAa,SAAS7B,EAAA,CAAuB,EAAA,CAChD,IACE;AAAA,cACHT,EAAgB,IAAI,CAACY,MACpB,gBAAAE,EAACO,GAAA,EAAwD,UAAUT,EAAO,YAAYpB,GAAS,OAAOoB,EAAO,OAC3G,UAAA;AAAA,gBAAA,gBAAAU,EAACe,GAAA,EAAS,SAASnC,EAAkB,SAASU,EAAO,KAAK,GAAG,MAAK,SAAQ;AAAA,gBAC1E,gBAAAU,EAACgB,GAAA,EAAa,SAAS1B,EAAO,MAAA,CAAO;AAAA,cAAA,EAAA,GAFxB,0BAA0BA,EAAO,KAAK,EAGrD,CACD;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFrB,IAAa,gBAAA+B,EAACC,GAAA,EAAe,IAAIjD,GAAwB,aAAW,IAAoB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG/F,GApMiC;"}