@owp/core 2.5.23 → 2.5.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index12.js +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.js +2 -2
- package/dist/_virtual/index15.js +2 -2
- package/dist/_virtual/index5.js +2 -2
- package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +15 -13
- package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -1
- package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js +21 -19
- package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js.map +1 -1
- package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js +1 -1
- package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js.map +1 -1
- package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js +1 -1
- package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
- package/dist/components/OwpLoading/OwpLoading.js +1 -1
- package/dist/components/OwpLoading/OwpLoading.js.map +1 -1
- package/dist/components/OwpMrtTable/OwpMrtTable.js +1 -1
- package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
- package/dist/components/OwpOptionSelector/OwpOptionSelector.js +14 -12
- package/dist/components/OwpOptionSelector/OwpOptionSelector.js.map +1 -1
- package/dist/components/OwpPageTitle/OwpPageTitle.js +1 -1
- package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
- package/dist/components/OwpPicker/OwpDatePicker.js +81 -82
- package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpTimePicker.js +82 -83
- package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpWeekDatePicker.js +24 -25
- package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
- package/dist/components/OwpSearchFilter/OwpSearchFilter.js +1 -1
- package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
- package/dist/components/OwpSection/OwpSection.js +1 -1
- package/dist/components/OwpSection/OwpSection.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +155 -157
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +95 -81
- package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
- package/dist/components/OwpSuspense/OwpSuspense.js +43 -43
- package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +2 -2
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +55 -56
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +10 -10
- package/dist/contexts/OwpUiProvider.js +5 -5
- package/dist/contexts/OwpUiProvider.js.map +1 -1
- package/dist/hooks/{useAccessTokenGuard.js → internal/useAccessTokenGuard.js} +2 -2
- package/dist/hooks/internal/useAccessTokenGuard.js.map +1 -0
- package/dist/hooks/{useCurrentLanguage.js → internal/useCurrentLanguage.js} +2 -2
- package/dist/hooks/internal/useCurrentLanguage.js.map +1 -0
- package/dist/hooks/internal/useHeaderWrapState.js.map +1 -0
- package/dist/hooks/internal/useNavbar.js +24 -0
- package/dist/hooks/internal/useNavbar.js.map +1 -0
- package/dist/hooks/{useNavigationActiveRouteRemount.js → internal/useNavigationActiveRouteRemount.js} +1 -1
- package/dist/hooks/internal/useNavigationActiveRouteRemount.js.map +1 -0
- package/dist/hooks/{useShortcuts.js → internal/useShortcuts.js} +3 -3
- package/dist/hooks/internal/useShortcuts.js.map +1 -0
- package/dist/hooks/internal/useThemeMediaQuery.js.map +1 -0
- package/dist/hooks/internal/useTimeout.js.map +1 -0
- package/dist/hooks/useInitApp.js.map +1 -1
- package/dist/hooks.js +53 -81
- package/dist/hooks.js.map +1 -1
- package/dist/layout/Layout.js +1 -1
- package/dist/layout/Layout.js.map +1 -1
- package/dist/layout/components/layouts/NavbarToggleFabLayout.js +2 -2
- package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
- package/dist/layout/components/layouts/NavbarWrapperLayout.js +2 -2
- package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
- package/dist/layout/components/navbar/NavbarToggleButton.js +2 -2
- package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
- package/dist/layout/components/navbar/style/NavbarStyle.js +1 -1
- package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
- package/dist/layout/components/navbar/style/NavbarStyleContent.js +1 -1
- package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
- package/dist/layout/components/navigation/Navigation.js +2 -2
- package/dist/layout/components/navigation/Navigation.js.map +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js.map +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js.map +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js.map +1 -1
- package/dist/layout/components/toggles/LanguageSwitcherToggle.js +1 -1
- package/dist/layout/components/toggles/LanguageSwitcherToggle.js.map +1 -1
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js +1 -1
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
- package/dist/types/components/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +5 -3
- package/dist/types/components/OwpCommonCode/OwpCommonCodeSelector.d.ts +5 -3
- package/dist/types/components/OwpOptionSelector/OwpOptionSelector.d.ts +4 -1
- package/dist/types/components/OwpSelectorBase/types/index.d.ts +1 -1
- package/dist/types/components/OwpSelectorBase/types/types.d.ts +3 -0
- package/dist/types/hooks/index.d.ts +0 -10
- package/dist/types/hooks/{useNavbar.d.ts → internal/useNavbar.d.ts} +1 -1
- package/dist/types/utils/treeGridUtil.d.ts +0 -14
- package/dist/utils/{exceljsBrowser.js → internal/exceljsBrowser.js} +1 -1
- package/dist/utils/internal/exceljsBrowser.js.map +1 -0
- package/dist/utils/internal/jszipBrowser.js.map +1 -0
- package/dist/utils/internal/treeGridBodyRowsEvent.js.map +1 -0
- package/dist/utils/treeGridExportExcelUtil.js +1 -1
- package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
- package/dist/utils/treeGridUtil.js +1 -6
- package/dist/utils/treeGridUtil.js.map +1 -1
- package/dist/utils/zipUtil.js +1 -1
- package/dist/utils/zipUtil.js.map +1 -1
- package/dist/utils.js +70 -75
- package/package.json +1 -1
- package/dist/hooks/useAccessTokenGuard.js.map +0 -1
- package/dist/hooks/useCurrentLanguage.js.map +0 -1
- package/dist/hooks/useDebounce.js +0 -24
- package/dist/hooks/useDebounce.js.map +0 -1
- package/dist/hooks/useDeepCompareEffect.js +0 -38
- package/dist/hooks/useDeepCompareEffect.js.map +0 -1
- package/dist/hooks/useHeaderWrapState.js.map +0 -1
- package/dist/hooks/useNavbar.js +0 -24
- package/dist/hooks/useNavbar.js.map +0 -1
- package/dist/hooks/useNavigationActiveRouteRemount.js.map +0 -1
- package/dist/hooks/usePrevious.js +0 -14
- package/dist/hooks/usePrevious.js.map +0 -1
- package/dist/hooks/useShortcuts.js.map +0 -1
- package/dist/hooks/useThemeMediaQuery.js.map +0 -1
- package/dist/hooks/useTimeout.js.map +0 -1
- package/dist/types/hooks/useDebounce.d.ts +0 -7
- package/dist/types/hooks/useDeepCompareEffect.d.ts +0 -22
- package/dist/types/hooks/usePrevious.d.ts +0 -5
- package/dist/types/utils/dayjsBrowser.d.ts +0 -1
- package/dist/utils/exceljsBrowser.js.map +0 -1
- package/dist/utils/jszipBrowser.js.map +0 -1
- package/dist/utils/treeGridBodyRowsEvent.js.map +0 -1
- /package/dist/hooks/{useHeaderWrapState.js → internal/useHeaderWrapState.js} +0 -0
- /package/dist/hooks/{useThemeMediaQuery.js → internal/useThemeMediaQuery.js} +0 -0
- /package/dist/hooks/{useTimeout.js → internal/useTimeout.js} +0 -0
- /package/dist/types/hooks/{useAccessTokenGuard.d.ts → internal/useAccessTokenGuard.d.ts} +0 -0
- /package/dist/types/hooks/{useCurrentLanguage.d.ts → internal/useCurrentLanguage.d.ts} +0 -0
- /package/dist/types/hooks/{useHeaderWrapState.d.ts → internal/useHeaderWrapState.d.ts} +0 -0
- /package/dist/types/hooks/{useNavigationActiveRouteRemount.d.ts → internal/useNavigationActiveRouteRemount.d.ts} +0 -0
- /package/dist/types/hooks/{useShortcuts.d.ts → internal/useShortcuts.d.ts} +0 -0
- /package/dist/types/hooks/{useThemeMediaQuery.d.ts → internal/useThemeMediaQuery.d.ts} +0 -0
- /package/dist/types/hooks/{useTimeout.d.ts → internal/useTimeout.d.ts} +0 -0
- /package/dist/types/utils/{exceljsBrowser.d.ts → internal/exceljsBrowser.d.ts} +0 -0
- /package/dist/types/utils/{jszipBrowser.d.ts → internal/jszipBrowser.d.ts} +0 -0
- /package/dist/types/utils/{treeGridBodyRowsEvent.d.ts → internal/treeGridBodyRowsEvent.d.ts} +0 -0
- /package/dist/utils/{jszipBrowser.js → internal/jszipBrowser.js} +0 -0
- /package/dist/utils/{treeGridBodyRowsEvent.js → internal/treeGridBodyRowsEvent.js} +0 -0
package/dist/_virtual/index10.js
CHANGED
package/dist/_virtual/index12.js
CHANGED
package/dist/_virtual/index13.js
CHANGED
package/dist/_virtual/index14.js
CHANGED
package/dist/_virtual/index15.js
CHANGED
package/dist/_virtual/index5.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var
|
|
2
|
-
var C = (e, r) =>
|
|
3
|
-
import { jsx as
|
|
4
|
-
import { OwpQuerySelector as
|
|
5
|
-
const
|
|
1
|
+
var s = Object.defineProperty;
|
|
2
|
+
var C = (e, r) => s(e, "name", { value: r, configurable: !0 });
|
|
3
|
+
import { jsx as w } 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 { OwpQuerySelector as K } from "../OwpQuerySelector/OwpQuerySelector.js";
|
|
5
|
+
const T = /* @__PURE__ */ C((e, r) => e[r ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_COMMONCODE.CODEID"], "getCommonCodeQueryValue"), j = /* @__PURE__ */ C(({
|
|
6
6
|
apiUrl: e = "/listIpxCommoncode",
|
|
7
7
|
className: r,
|
|
8
8
|
defaultValue: t,
|
|
@@ -25,18 +25,19 @@ const K = /* @__PURE__ */ C((e, r) => e[r ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_
|
|
|
25
25
|
textFieldProps: o,
|
|
26
26
|
useValueKeyDescription: l,
|
|
27
27
|
value: b,
|
|
28
|
+
valueTextAlign: d,
|
|
28
29
|
variant: N,
|
|
29
30
|
...m
|
|
30
|
-
}) => /* @__PURE__ */
|
|
31
|
-
|
|
31
|
+
}) => /* @__PURE__ */ w(
|
|
32
|
+
K,
|
|
32
33
|
{
|
|
33
34
|
apiUrl: e,
|
|
34
35
|
className: r,
|
|
35
36
|
defaultValue: t,
|
|
36
37
|
disabled: m.disabled,
|
|
37
38
|
error: y,
|
|
38
|
-
filterOptions: /* @__PURE__ */ C((O) => O.filter((
|
|
39
|
-
const n =
|
|
39
|
+
filterOptions: /* @__PURE__ */ C((O) => O.filter((q) => {
|
|
40
|
+
const n = q;
|
|
40
41
|
return D && n["IPX_COMMONCODE.DESCRIPTION"] !== D ? !1 : I ? I(n) : !0;
|
|
41
42
|
}), "filterOptions"),
|
|
42
43
|
fullWidth: a,
|
|
@@ -68,11 +69,12 @@ const K = /* @__PURE__ */ C((e, r) => e[r ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_
|
|
|
68
69
|
},
|
|
69
70
|
value: b,
|
|
70
71
|
valueKey: "IPX_COMMONCODE.CODEID",
|
|
71
|
-
|
|
72
|
+
valueTextAlign: d,
|
|
73
|
+
valueResolver: /* @__PURE__ */ C((O) => String(T(O, l) ?? ""), "valueResolver")
|
|
72
74
|
}
|
|
73
|
-
), "OwpCommonCodeQuerySelector"),
|
|
75
|
+
), "OwpCommonCodeQuerySelector"), z = j;
|
|
74
76
|
export {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
z as CommonCodeQuerySelector,
|
|
78
|
+
j as OwpCommonCodeQuerySelector
|
|
77
79
|
};
|
|
78
80
|
//# sourceMappingURL=OwpCommonCodeQuerySelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpCommonCodeQuerySelector.js","sources":["../../../src/components/OwpCommonCode/OwpCommonCodeQuerySelector.tsx"],"sourcesContent":["import { OwpQuerySelector } from '@/components/OwpQuerySelector';\nimport type { OwpSelectorType } from '@/components/OwpSelectorBase/types';\nimport type { CommonCode } from '@/utils/commonCodeUtils';\nimport { type SelectChangeEvent, type SelectProps, type TextFieldProps } from '@mui/material';\nimport { type ReactNode } from 'react';\n\nexport type OwpCommonCodeQueryItem = Partial<CommonCode> & Record<string, unknown>;\n\ntype CommonCodeQuerySelectChangeHandler = (\n event: SelectChangeEvent<string>,\n child: ReactNode,\n) => void;\n\nexport type OwpCommonCodeQuerySelectorProps = Omit<\n SelectProps<string>,\n 'defaultValue' | 'multiple' | 'onChange' | 'renderValue' | 'value'\n> & {\n apiUrl?: string;\n defaultValue?: string;\n description?: string;\n filterOptions?: (commonCode: OwpCommonCodeQueryItem) => boolean;\n groupId?: string;\n helperText?: string;\n labelResolver?: (commonCode: OwpCommonCodeQueryItem) => string;\n multiple?: boolean;\n onChange?: CommonCodeQuerySelectChangeHandler;\n query?: Record<string, unknown>;\n queryKeyDeps?: readonly unknown[];\n responseListKey?: string;\n selectorType?: OwpSelectorType;\n showAllOption?: boolean;\n textFieldProps?: Omit<\n TextFieldProps,\n 'defaultValue' | 'error' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'\n >;\n useValueKeyDescription?: boolean;\n value?: string;\n};\n\n/**\n * 원격 공통코드 value 반환\n * @param commonCode 공통코드 데이터\n * @param useDescriptionValue DESCRIPTION value 사용 여부\n */\nconst getCommonCodeQueryValue = (\n commonCode: OwpCommonCodeQueryItem,\n useDescriptionValue?: boolean,\n) => commonCode[useDescriptionValue ? 'IPX_COMMONCODE.DESCRIPTION' : 'IPX_COMMONCODE.CODEID'];\n\n/**\n * 원격 조회형 공통코드 선택기\n * @param props 원격 공통코드 선택기 props\n */\nexport const OwpCommonCodeQuerySelector = ({\n apiUrl = '/listIpxCommoncode',\n className,\n defaultValue,\n description,\n error,\n filterOptions,\n fullWidth,\n groupId,\n helperText,\n label,\n labelResolver,\n multiple,\n onChange,\n query,\n queryKeyDeps,\n required,\n responseListKey,\n selectorType = 'select',\n showAllOption = true,\n textFieldProps,\n useValueKeyDescription,\n value,\n variant,\n ...selectProps\n}: OwpCommonCodeQuerySelectorProps) => {\n return (\n <OwpQuerySelector\n apiUrl={apiUrl}\n className={className}\n defaultValue={defaultValue}\n disabled={selectProps.disabled}\n error={error}\n filterOptions={(items) =>\n items.filter((item) => {\n const commonCode = item as OwpCommonCodeQueryItem;\n\n if (description && commonCode['IPX_COMMONCODE.DESCRIPTION'] !== description) {\n return false;\n }\n\n return filterOptions ? filterOptions(commonCode) : true;\n })\n }\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n labelKey=\"IPX_COMMONCODE.CODENM\"\n labelResolver={(item) =>\n labelResolver\n ? labelResolver(item as OwpCommonCodeQueryItem)\n : String((item as OwpCommonCodeQueryItem)['IPX_COMMONCODE.CODENM'] ?? '')\n }\n multiple={multiple}\n name={selectProps.name}\n onChange={(event) => {\n onChange?.(event as SelectChangeEvent<string>, null);\n }}\n query={{\n ...(query ?? {}),\n ...(groupId ? { 'IPX_COMMONCODE.GROUPID': groupId } : {}),\n }}\n queryKeyDeps={[description, useValueKeyDescription, ...(queryKeyDeps ?? [])]}\n required={required}\n responseListKey={responseListKey}\n selectProps={{\n ...selectProps,\n variant,\n }}\n selectorType={selectorType}\n showAllOption={showAllOption}\n textFieldProps={{\n ...textFieldProps,\n variant: textFieldProps?.variant ?? variant,\n }}\n value={value}\n valueKey=\"IPX_COMMONCODE.CODEID\"\n valueResolver={(item) =>\n String(getCommonCodeQueryValue(item as OwpCommonCodeQueryItem, useValueKeyDescription) ?? '')\n }\n />\n );\n};\n\nexport const CommonCodeQuerySelector = OwpCommonCodeQuerySelector;\n"],"names":["getCommonCodeQueryValue","__name","commonCode","useDescriptionValue","OwpCommonCodeQuerySelector","apiUrl","className","defaultValue","description","error","filterOptions","fullWidth","groupId","helperText","label","labelResolver","multiple","onChange","query","queryKeyDeps","required","responseListKey","selectorType","showAllOption","textFieldProps","useValueKeyDescription","value","variant","selectProps","jsx","OwpQuerySelector","items","item","event","CommonCodeQuerySelector"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"OwpCommonCodeQuerySelector.js","sources":["../../../src/components/OwpCommonCode/OwpCommonCodeQuerySelector.tsx"],"sourcesContent":["import { OwpQuerySelector } from '@/components/OwpQuerySelector';\nimport type { OwpSelectorType, OwpSelectorValueTextAlign } from '@/components/OwpSelectorBase/types';\nimport type { CommonCode } from '@/utils/commonCodeUtils';\nimport { type SelectChangeEvent, type SelectProps, type TextFieldProps } from '@mui/material';\nimport { type ReactNode } from 'react';\n\nexport type OwpCommonCodeQueryItem = Partial<CommonCode> & Record<string, unknown>;\n\ntype CommonCodeQuerySelectChangeHandler = (\n event: SelectChangeEvent<string>,\n child: ReactNode,\n) => void;\n\nexport type OwpCommonCodeQuerySelectorProps = Omit<\n SelectProps<string>,\n 'defaultValue' | 'multiple' | 'onChange' | 'renderValue' | 'value'\n> & {\n apiUrl?: string;\n defaultValue?: string;\n description?: string;\n filterOptions?: (commonCode: OwpCommonCodeQueryItem) => boolean;\n groupId?: string;\n helperText?: string;\n labelResolver?: (commonCode: OwpCommonCodeQueryItem) => string;\n multiple?: boolean;\n onChange?: CommonCodeQuerySelectChangeHandler;\n query?: Record<string, unknown>;\n queryKeyDeps?: readonly unknown[];\n responseListKey?: string;\n selectorType?: OwpSelectorType;\n showAllOption?: boolean;\n textFieldProps?: Omit<\n TextFieldProps,\n 'defaultValue' | 'error' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'\n >;\n useValueKeyDescription?: boolean;\n value?: string;\n /** 단일 선택 값 텍스트 정렬 */\n valueTextAlign?: OwpSelectorValueTextAlign;\n};\n\n/**\n * 원격 공통코드 value 반환\n * @param commonCode 공통코드 데이터\n * @param useDescriptionValue DESCRIPTION value 사용 여부\n */\nconst getCommonCodeQueryValue = (\n commonCode: OwpCommonCodeQueryItem,\n useDescriptionValue?: boolean,\n) => commonCode[useDescriptionValue ? 'IPX_COMMONCODE.DESCRIPTION' : 'IPX_COMMONCODE.CODEID'];\n\n/**\n * 원격 조회형 공통코드 선택기\n * @param props 원격 공통코드 선택기 props\n */\nexport const OwpCommonCodeQuerySelector = ({\n apiUrl = '/listIpxCommoncode',\n className,\n defaultValue,\n description,\n error,\n filterOptions,\n fullWidth,\n groupId,\n helperText,\n label,\n labelResolver,\n multiple,\n onChange,\n query,\n queryKeyDeps,\n required,\n responseListKey,\n selectorType = 'select',\n showAllOption = true,\n textFieldProps,\n useValueKeyDescription,\n value,\n valueTextAlign,\n variant,\n ...selectProps\n}: OwpCommonCodeQuerySelectorProps) => {\n return (\n <OwpQuerySelector\n apiUrl={apiUrl}\n className={className}\n defaultValue={defaultValue}\n disabled={selectProps.disabled}\n error={error}\n filterOptions={(items) =>\n items.filter((item) => {\n const commonCode = item as OwpCommonCodeQueryItem;\n\n if (description && commonCode['IPX_COMMONCODE.DESCRIPTION'] !== description) {\n return false;\n }\n\n return filterOptions ? filterOptions(commonCode) : true;\n })\n }\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n labelKey=\"IPX_COMMONCODE.CODENM\"\n labelResolver={(item) =>\n labelResolver\n ? labelResolver(item as OwpCommonCodeQueryItem)\n : String((item as OwpCommonCodeQueryItem)['IPX_COMMONCODE.CODENM'] ?? '')\n }\n multiple={multiple}\n name={selectProps.name}\n onChange={(event) => {\n onChange?.(event as SelectChangeEvent<string>, null);\n }}\n query={{\n ...(query ?? {}),\n ...(groupId ? { 'IPX_COMMONCODE.GROUPID': groupId } : {}),\n }}\n queryKeyDeps={[description, useValueKeyDescription, ...(queryKeyDeps ?? [])]}\n required={required}\n responseListKey={responseListKey}\n selectProps={{\n ...selectProps,\n variant,\n }}\n selectorType={selectorType}\n showAllOption={showAllOption}\n textFieldProps={{\n ...textFieldProps,\n variant: textFieldProps?.variant ?? variant,\n }}\n value={value}\n valueKey=\"IPX_COMMONCODE.CODEID\"\n valueTextAlign={valueTextAlign}\n valueResolver={(item) =>\n String(getCommonCodeQueryValue(item as OwpCommonCodeQueryItem, useValueKeyDescription) ?? '')\n }\n />\n );\n};\n\nexport const CommonCodeQuerySelector = OwpCommonCodeQuerySelector;\n"],"names":["getCommonCodeQueryValue","__name","commonCode","useDescriptionValue","OwpCommonCodeQuerySelector","apiUrl","className","defaultValue","description","error","filterOptions","fullWidth","groupId","helperText","label","labelResolver","multiple","onChange","query","queryKeyDeps","required","responseListKey","selectorType","showAllOption","textFieldProps","useValueKeyDescription","value","valueTextAlign","variant","selectProps","jsx","OwpQuerySelector","items","item","event","CommonCodeQuerySelector"],"mappings":";;;;AA8CA,MAAMA,IAA0B,gBAAAC,EAAA,CAC9BC,GACAC,MACGD,EAAWC,IAAsB,+BAA+B,uBAAuB,GAH5D,4BASnBC,IAA6B,gBAAAH,EAAA,CAAC;AAAA,EACzC,QAAAI,IAAS;AAAA,EACT,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,eAAAC,IAAgB;AAAA,EAChB,gBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,QAAA1B;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAUsB,EAAY;AAAA,IACtB,OAAApB;AAAA,IACA,eAAe,gBAAAR,EAAA,CAAC+B,MACdA,EAAM,OAAO,CAACC,MAAS;AACrB,YAAM/B,IAAa+B;AAEnB,aAAIzB,KAAeN,EAAW,4BAA4B,MAAMM,IACvD,KAGFE,IAAgBA,EAAcR,CAAU,IAAI;AAAA,IACrD,CAAC,GATY;AAAA,IAWf,WAAAS;AAAA,IACA,YAAAE;AAAA,IACA,OAAAC;AAAA,IACA,UAAS;AAAA,IACT,eAAe,gBAAAb,EAAA,CAACgC,MACdlB,IACIA,EAAckB,CAA8B,IAC5C,OAAQA,EAAgC,uBAAuB,KAAK,EAAE,GAH7D;AAAA,IAKf,UAAAjB;AAAA,IACA,MAAMa,EAAY;AAAA,IAClB,UAAU,gBAAA5B,EAAA,CAACiC,MAAU;AACnB,MAAAjB,KAAA,QAAAA,EAAWiB,GAAoC;AAAA,IACjD,GAFU;AAAA,IAGV,OAAO;AAAA,MACL,GAAIhB,KAAS,CAAA;AAAA,MACb,GAAIN,IAAU,EAAE,0BAA0BA,MAAY,CAAA;AAAA,IAAC;AAAA,IAEzD,cAAc,CAACJ,GAAaiB,GAAwB,GAAIN,KAAgB,CAAA,CAAG;AAAA,IAC3E,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAa;AAAA,MACX,GAAGQ;AAAA,MACH,SAAAD;AAAA,IAAA;AAAA,IAEF,cAAAN;AAAA,IACA,eAAAC;AAAA,IACA,gBAAgB;AAAA,MACd,GAAGC;AAAA,MACH,UAASA,KAAA,gBAAAA,EAAgB,YAAWI;AAAA,IAAA;AAAA,IAEtC,OAAAF;AAAA,IACA,UAAS;AAAA,IACT,gBAAAC;AAAA,IACA,eAAe,gBAAA1B,EAAA,CAACgC,MACd,OAAOjC,EAAwBiC,GAAgCR,CAAsB,KAAK,EAAE,GAD/E;AAAA,EAC+E;AAAA,GAhF1D,+BAsF7BU,IAA0B/B;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
var e = (t, m) =>
|
|
3
|
-
import { jsx as
|
|
4
|
-
import { OwpSelectorBase as
|
|
5
|
-
import { useGetCommonCodeList as
|
|
1
|
+
var T = Object.defineProperty;
|
|
2
|
+
var e = (t, m) => T(t, "name", { value: m, configurable: !0 });
|
|
3
|
+
import { jsx as d } 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 { OwpSelectorBase as j } from "../OwpSelectorBase/OwpSelectorBase.js";
|
|
5
|
+
import { useGetCommonCodeList as P } from "../../hooks/useCommonCodeList.js";
|
|
6
6
|
import { useMemo as s } from "react";
|
|
7
|
-
import { isFunction as
|
|
8
|
-
const
|
|
7
|
+
import { isFunction as V } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isFunction.js";
|
|
8
|
+
const k = /* @__PURE__ */ e((t, m) => t[m ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_COMMONCODE.CODEID"], "getCommonCodeValue"), p = /* @__PURE__ */ e(({
|
|
9
9
|
className: t,
|
|
10
10
|
codeId: m,
|
|
11
11
|
defaultValue: E,
|
|
@@ -23,24 +23,25 @@ const V = /* @__PURE__ */ e((t, m) => t[m ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_
|
|
|
23
23
|
textFieldProps: C,
|
|
24
24
|
useValueKeyDescription: u,
|
|
25
25
|
value: b,
|
|
26
|
+
valueTextAlign: w,
|
|
26
27
|
variant: f,
|
|
27
28
|
...l
|
|
28
29
|
}) => {
|
|
29
|
-
const r =
|
|
30
|
-
const o =
|
|
30
|
+
const r = P(), M = s(() => (r == null ? void 0 : r[m]) ?? [], [m, r]), D = s(() => {
|
|
31
|
+
const o = V(n) ? M.filter(n) : M;
|
|
31
32
|
return O ? o.filter(
|
|
32
|
-
(
|
|
33
|
+
(R) => R["IPX_COMMONCODE.DESCRIPTION"] === O
|
|
33
34
|
) : o;
|
|
34
|
-
}, [M, O, n]),
|
|
35
|
+
}, [M, O, n]), v = s(
|
|
35
36
|
() => D.map((o) => ({
|
|
36
37
|
label: o["IPX_COMMONCODE.CODENM"],
|
|
37
38
|
raw: o,
|
|
38
|
-
value:
|
|
39
|
+
value: k(o, u)
|
|
39
40
|
})),
|
|
40
41
|
[D, u]
|
|
41
42
|
);
|
|
42
|
-
return /* @__PURE__ */
|
|
43
|
-
|
|
43
|
+
return /* @__PURE__ */ d(
|
|
44
|
+
j,
|
|
44
45
|
{
|
|
45
46
|
allValueMode: "empty",
|
|
46
47
|
className: t,
|
|
@@ -55,7 +56,7 @@ const V = /* @__PURE__ */ e((t, m) => t[m ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_
|
|
|
55
56
|
onChange: /* @__PURE__ */ e((o) => {
|
|
56
57
|
a == null || a(o, null);
|
|
57
58
|
}, "onChange"),
|
|
58
|
-
options:
|
|
59
|
+
options: v,
|
|
59
60
|
required: L,
|
|
60
61
|
selectProps: {
|
|
61
62
|
...l,
|
|
@@ -67,12 +68,13 @@ const V = /* @__PURE__ */ e((t, m) => t[m ? "IPX_COMMONCODE.DESCRIPTION" : "IPX_
|
|
|
67
68
|
...C,
|
|
68
69
|
variant: (C == null ? void 0 : C.variant) ?? f
|
|
69
70
|
},
|
|
70
|
-
value: b
|
|
71
|
+
value: b,
|
|
72
|
+
valueTextAlign: w
|
|
71
73
|
}
|
|
72
74
|
);
|
|
73
|
-
}, "OwpCommonCodeSelector"),
|
|
75
|
+
}, "OwpCommonCodeSelector"), J = p;
|
|
74
76
|
export {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
J as CommonCodeSelector,
|
|
78
|
+
p as OwpCommonCodeSelector
|
|
77
79
|
};
|
|
78
80
|
//# sourceMappingURL=OwpCommonCodeSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpCommonCodeSelector.js","sources":["../../../src/components/OwpCommonCode/OwpCommonCodeSelector.tsx"],"sourcesContent":["import { OwpSelectorBase } from '@/components/OwpSelectorBase/OwpSelectorBase';\nimport type { OwpSelectorType } from '@/components/OwpSelectorBase/types';\nimport { useGetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport type { CommonCode } from '@/utils/commonCodeUtils';\nimport { type SelectChangeEvent, type SelectProps, type TextFieldProps } from '@mui/material';\nimport { isFunction } from 'es-toolkit';\nimport { type ReactNode, useMemo } from 'react';\n\ntype CommonCodeSelectChangeHandler = (event: SelectChangeEvent<string>, child: ReactNode) => void;\n\nexport type OwpCommonCodeSelectorProps = Omit<\n SelectProps<string>,\n 'defaultValue' | 'multiple' | 'onChange' | 'renderValue' | 'value'\n> & {\n codeId: string;\n description?: string;\n useValueKeyDescription?: boolean;\n helperText?: string;\n filterOptions?: (commonCode: CommonCode) => boolean;\n defaultValue?: string;\n multiple?: boolean;\n onChange?: CommonCodeSelectChangeHandler;\n selectorType?: OwpSelectorType;\n showAllOption?: boolean;\n textFieldProps?: Omit<TextFieldProps, 'defaultValue' | 'error' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'>;\n value?: string;\n};\n\n/**\n * 공통코드 value 반환\n * @param commonCode 공통코드 데이터\n * @param useDescriptionValue DESCRIPTION value 사용 여부\n */\nconst getCommonCodeValue = (commonCode: CommonCode, useDescriptionValue?: boolean) => {\n return commonCode[useDescriptionValue ? 'IPX_COMMONCODE.DESCRIPTION' : 'IPX_COMMONCODE.CODEID'];\n};\n\n/**\n * 공통코드 선택기\n * @param props 공통코드 선택기 props\n */\nexport const OwpCommonCodeSelector = ({\n className,\n codeId,\n defaultValue,\n description,\n error,\n filterOptions,\n fullWidth,\n helperText,\n label,\n multiple,\n onChange,\n required,\n selectorType = 'select',\n showAllOption = true,\n textFieldProps,\n useValueKeyDescription,\n value,\n variant,\n ...selectProps\n}: OwpCommonCodeSelectorProps) => {\n const commonCodeByGroupId = useGetCommonCodeList();\n const commonCodeList = useMemo(() => commonCodeByGroupId?.[codeId] ?? [], [codeId, commonCodeByGroupId]);\n const finalCommonCodeList = useMemo(() => {\n const filteredCommonCodeList = isFunction(filterOptions)\n ? commonCodeList.filter(filterOptions)\n : commonCodeList;\n\n if (description) {\n return filteredCommonCodeList.filter(\n (commonCode) => commonCode['IPX_COMMONCODE.DESCRIPTION'] === description,\n );\n }\n\n return filteredCommonCodeList;\n }, [commonCodeList, description, filterOptions]);\n const options = useMemo(\n () =>\n finalCommonCodeList.map((commonCode) => ({\n label: commonCode['IPX_COMMONCODE.CODENM'],\n raw: commonCode,\n value: getCommonCodeValue(commonCode, useValueKeyDescription),\n })),\n [finalCommonCodeList, useValueKeyDescription],\n );\n\n return (\n <OwpSelectorBase\n allValueMode=\"empty\"\n className={className}\n defaultValue={defaultValue}\n disabled={selectProps.disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n multiple={multiple}\n name={selectProps.name}\n onChange={(event) => {\n onChange?.(event as SelectChangeEvent<string>, null);\n }}\n options={options}\n required={required}\n selectProps={{\n ...selectProps,\n variant,\n }}\n selectorType={selectorType}\n showAllOption={showAllOption}\n textFieldProps={{\n ...textFieldProps,\n variant: textFieldProps?.variant ?? variant,\n }}\n value={value}\n />\n );\n};\n\nexport const CommonCodeSelector = OwpCommonCodeSelector;\n"],"names":["getCommonCodeValue","__name","commonCode","useDescriptionValue","OwpCommonCodeSelector","className","codeId","defaultValue","description","error","filterOptions","fullWidth","helperText","label","multiple","onChange","required","selectorType","showAllOption","textFieldProps","useValueKeyDescription","value","variant","selectProps","commonCodeByGroupId","useGetCommonCodeList","commonCodeList","useMemo","finalCommonCodeList","filteredCommonCodeList","isFunction","options","jsx","OwpSelectorBase","event","CommonCodeSelector"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"OwpCommonCodeSelector.js","sources":["../../../src/components/OwpCommonCode/OwpCommonCodeSelector.tsx"],"sourcesContent":["import { OwpSelectorBase } from '@/components/OwpSelectorBase/OwpSelectorBase';\nimport type { OwpSelectorType, OwpSelectorValueTextAlign } from '@/components/OwpSelectorBase/types';\nimport { useGetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport type { CommonCode } from '@/utils/commonCodeUtils';\nimport { type SelectChangeEvent, type SelectProps, type TextFieldProps } from '@mui/material';\nimport { isFunction } from 'es-toolkit';\nimport { type ReactNode, useMemo } from 'react';\n\ntype CommonCodeSelectChangeHandler = (event: SelectChangeEvent<string>, child: ReactNode) => void;\n\nexport type OwpCommonCodeSelectorProps = Omit<\n SelectProps<string>,\n 'defaultValue' | 'multiple' | 'onChange' | 'renderValue' | 'value'\n> & {\n codeId: string;\n description?: string;\n useValueKeyDescription?: boolean;\n helperText?: string;\n filterOptions?: (commonCode: CommonCode) => boolean;\n defaultValue?: string;\n multiple?: boolean;\n onChange?: CommonCodeSelectChangeHandler;\n selectorType?: OwpSelectorType;\n showAllOption?: boolean;\n textFieldProps?: Omit<TextFieldProps, 'defaultValue' | 'error' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'>;\n value?: string;\n /** 단일 선택 값 텍스트 정렬 */\n valueTextAlign?: OwpSelectorValueTextAlign;\n};\n\n/**\n * 공통코드 value 반환\n * @param commonCode 공통코드 데이터\n * @param useDescriptionValue DESCRIPTION value 사용 여부\n */\nconst getCommonCodeValue = (commonCode: CommonCode, useDescriptionValue?: boolean) => {\n return commonCode[useDescriptionValue ? 'IPX_COMMONCODE.DESCRIPTION' : 'IPX_COMMONCODE.CODEID'];\n};\n\n/**\n * 공통코드 선택기\n * @param props 공통코드 선택기 props\n */\nexport const OwpCommonCodeSelector = ({\n className,\n codeId,\n defaultValue,\n description,\n error,\n filterOptions,\n fullWidth,\n helperText,\n label,\n multiple,\n onChange,\n required,\n selectorType = 'select',\n showAllOption = true,\n textFieldProps,\n useValueKeyDescription,\n value,\n valueTextAlign,\n variant,\n ...selectProps\n}: OwpCommonCodeSelectorProps) => {\n const commonCodeByGroupId = useGetCommonCodeList();\n const commonCodeList = useMemo(() => commonCodeByGroupId?.[codeId] ?? [], [codeId, commonCodeByGroupId]);\n const finalCommonCodeList = useMemo(() => {\n const filteredCommonCodeList = isFunction(filterOptions)\n ? commonCodeList.filter(filterOptions)\n : commonCodeList;\n\n if (description) {\n return filteredCommonCodeList.filter(\n (commonCode) => commonCode['IPX_COMMONCODE.DESCRIPTION'] === description,\n );\n }\n\n return filteredCommonCodeList;\n }, [commonCodeList, description, filterOptions]);\n const options = useMemo(\n () =>\n finalCommonCodeList.map((commonCode) => ({\n label: commonCode['IPX_COMMONCODE.CODENM'],\n raw: commonCode,\n value: getCommonCodeValue(commonCode, useValueKeyDescription),\n })),\n [finalCommonCodeList, useValueKeyDescription],\n );\n\n return (\n <OwpSelectorBase\n allValueMode=\"empty\"\n className={className}\n defaultValue={defaultValue}\n disabled={selectProps.disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n multiple={multiple}\n name={selectProps.name}\n onChange={(event) => {\n onChange?.(event as SelectChangeEvent<string>, null);\n }}\n options={options}\n required={required}\n selectProps={{\n ...selectProps,\n variant,\n }}\n selectorType={selectorType}\n showAllOption={showAllOption}\n textFieldProps={{\n ...textFieldProps,\n variant: textFieldProps?.variant ?? variant,\n }}\n value={value}\n valueTextAlign={valueTextAlign}\n />\n );\n};\n\nexport const CommonCodeSelector = OwpCommonCodeSelector;\n"],"names":["getCommonCodeValue","__name","commonCode","useDescriptionValue","OwpCommonCodeSelector","className","codeId","defaultValue","description","error","filterOptions","fullWidth","helperText","label","multiple","onChange","required","selectorType","showAllOption","textFieldProps","useValueKeyDescription","value","valueTextAlign","variant","selectProps","commonCodeByGroupId","useGetCommonCodeList","commonCodeList","useMemo","finalCommonCodeList","filteredCommonCodeList","isFunction","options","jsx","OwpSelectorBase","event","CommonCodeSelector"],"mappings":";;;;;;;AAmCA,MAAMA,IAAqB,gBAAAC,EAAA,CAACC,GAAwBC,MAC3CD,EAAWC,IAAsB,+BAA+B,uBAAuB,GADrE,uBAQdC,IAAwB,gBAAAH,EAAA,CAAC;AAAA,EACpC,WAAAI;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,eAAAC,IAAgB;AAAA,EAChB,gBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,MAAkC;AAChC,QAAMC,IAAsBC,EAAA,GACtBC,IAAiBC,EAAQ,OAAMH,KAAA,gBAAAA,EAAsBnB,OAAW,IAAI,CAACA,GAAQmB,CAAmB,CAAC,GACjGI,IAAsBD,EAAQ,MAAM;AACxC,UAAME,IAAyBC,EAAWrB,CAAa,IACnDiB,EAAe,OAAOjB,CAAa,IACnCiB;AAEJ,WAAInB,IACKsB,EAAuB;AAAA,MAC5B,CAAC5B,MAAeA,EAAW,4BAA4B,MAAMM;AAAA,IAAA,IAI1DsB;AAAA,EACT,GAAG,CAACH,GAAgBnB,GAAaE,CAAa,CAAC,GACzCsB,IAAUJ;AAAA,IACd,MACEC,EAAoB,IAAI,CAAC3B,OAAgB;AAAA,MACvC,OAAOA,EAAW,uBAAuB;AAAA,MACzC,KAAKA;AAAA,MACL,OAAOF,EAAmBE,GAAYkB,CAAsB;AAAA,IAAA,EAC5D;AAAA,IACJ,CAACS,GAAqBT,CAAsB;AAAA,EAAA;AAG9C,SACE,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAa;AAAA,MACb,WAAA7B;AAAA,MACA,cAAAE;AAAA,MACA,UAAUiB,EAAY;AAAA,MACtB,OAAAf;AAAA,MACA,WAAAE;AAAA,MACA,YAAAC;AAAA,MACA,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,MAAMU,EAAY;AAAA,MAClB,UAAU,gBAAAvB,EAAA,CAACkC,MAAU;AACnB,QAAApB,KAAA,QAAAA,EAAWoB,GAAoC;AAAA,MACjD,GAFU;AAAA,MAGV,SAAAH;AAAA,MACA,UAAAhB;AAAA,MACA,aAAa;AAAA,QACX,GAAGQ;AAAA,QACH,SAAAD;AAAA,MAAA;AAAA,MAEF,cAAAN;AAAA,MACA,eAAAC;AAAA,MACA,gBAAgB;AAAA,QACd,GAAGC;AAAA,QACH,UAASA,KAAA,gBAAAA,EAAgB,YAAWI;AAAA,MAAA;AAAA,MAEtC,OAAAF;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN,GA9EqC,0BAgFxBc,IAAqBhC;"}
|
|
@@ -3,7 +3,7 @@ var i = (t, o) => _(t, "name", { value: o, configurable: !0 });
|
|
|
3
3
|
import { jsx as D } 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
4
|
import { useOwpTranslation as H } from "../../hooks/useOwpTranslation.js";
|
|
5
5
|
import { exportExcelByBuffer as b, setMergeCells as k, setCellValue as B, getLettersByIndex as O, getIndexByLetters as U } from "../../utils/excelUtil.js";
|
|
6
|
-
import { loadExcelJSBrowser as R } from "../../utils/exceljsBrowser.js";
|
|
6
|
+
import { loadExcelJSBrowser as R } from "../../utils/internal/exceljsBrowser.js";
|
|
7
7
|
import { Button as $ } from "@mui/material";
|
|
8
8
|
import { enqueueSnackbar as v } from "notistack";
|
|
9
9
|
import { useState as P } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpExportExcelButton.js","sources":["../../../src/components/OwpExportExcelButton/OwpExportExcelButton.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n exportExcelByBuffer,\n getIndexByLetters,\n getLettersByIndex,\n setCellValue,\n setMergeCells,\n} from '@/utils/excelUtil';\nimport { loadExcelJSBrowser } from '@/utils/exceljsBrowser';\nimport { Button, type ButtonProps } from '@mui/material';\nimport { isArray, isEmpty, isNumber, isString } from 'es-toolkit/compat';\nimport type * as ExcelJS from 'exceljs';\nimport { enqueueSnackbar } from 'notistack';\nimport { type MouseEventHandler, useState } from 'react';\n\nexport type ExcelHeader = {\n key?: string;\n range?: string;\n value: string;\n};\n\nexport type ExcelDataMapper = {\n key: string;\n colSpan?: string;\n rowSpan?: string;\n prefix?: string;\n suffix?: string;\n};\n\ninterface OwpExportDataToExcelButtonProps<T> extends ButtonProps {\n header: ExcelHeader[];\n mapper: ExcelDataMapper[];\n data?: T;\n title?: string;\n exportName?: string;\n}\n\nconst DEFAULT_WORKSHEET_NAME = 'sheet1';\nconst DEFAULT_EXPORT_NAME = 'sheet';\nconst DEFAULT_COLUMN_WIDTH = 10;\nconst MAX_COLUMN_WIDTH = 50;\nconst COLUMN_WIDTH_PADDING = 4;\n\nconst getSafeExportName = (value?: string) => {\n const exportName = (value ?? DEFAULT_EXPORT_NAME).trim();\n\n return exportName.replace(/[\\\\/:*?\"<>|]/g, '_') || DEFAULT_EXPORT_NAME;\n};\n\nconst getSafeSheetName = (value?: string) =>\n getSafeExportName(value ?? DEFAULT_WORKSHEET_NAME).slice(0, 31) || DEFAULT_WORKSHEET_NAME;\n\nconst getColumnIndexFromCellKey = (key: string) => {\n const matchedColumn = key.match(/^([A-Z]+)\\d+$/i)?.[1];\n\n if (!matchedColumn) {\n return undefined;\n }\n\n return getIndexByLetters(matchedColumn.toUpperCase());\n};\n\nconst getExcelTextWidth = (value: string) => {\n const longestLineWidth = value\n .split(/\\r?\\n/)\n .reduce((maxWidth, line) => {\n const lineWidth = Array.from(line).reduce((width, character) => {\n return width + ((character.codePointAt(0) ?? 0) <= 0xff ? 1 : 2);\n }, 0);\n\n return Math.max(maxWidth, lineWidth);\n }, 0);\n\n return Math.min(Math.max(longestLineWidth + COLUMN_WIDTH_PADDING, DEFAULT_COLUMN_WIDTH), MAX_COLUMN_WIDTH);\n};\n\nconst getExportCellValue = (item: unknown, { key, prefix, suffix }: ExcelDataMapper) => {\n const row = item as Record<string, unknown> | undefined;\n const rawValue = row?.[key];\n\n if (!isNumber(rawValue) && !isString(rawValue)) {\n return '';\n }\n\n return `${prefix ?? ''}${rawValue}${suffix ?? ''}`;\n};\n\nconst applyExcelHeaders = (worksheet: ExcelJS.Worksheet, header: ExcelHeader[]) => {\n for (const { key, range, value } of header) {\n if (range) {\n setMergeCells(worksheet, {\n isHeader: true,\n range,\n value,\n });\n continue;\n }\n\n if (!key) {\n continue;\n }\n\n setCellValue(worksheet, {\n isHeader: true,\n key,\n value,\n });\n }\n};\n\nconst applyExcelColumnWidths = (\n worksheet: ExcelJS.Worksheet,\n header: ExcelHeader[],\n mapper: ExcelDataMapper[],\n) => {\n const widths = new Map<number, number>();\n const updateWidth = (columnIndex: number, nextWidth: number) => {\n widths.set(columnIndex, Math.max(widths.get(columnIndex) ?? DEFAULT_COLUMN_WIDTH, nextWidth));\n };\n\n for (let colIndex = 0; colIndex < mapper.length; colIndex += 1) {\n updateWidth(colIndex + 1, DEFAULT_COLUMN_WIDTH);\n }\n\n for (const { key, range, value } of header) {\n if (range) {\n const [startKey, endKey] = range.split(':');\n const startColumnIndex = startKey ? getColumnIndexFromCellKey(startKey) : undefined;\n const endColumnIndex = endKey ? getColumnIndexFromCellKey(endKey) : undefined;\n\n if (!startColumnIndex || !endColumnIndex || endColumnIndex < startColumnIndex) {\n continue;\n }\n\n const columnSpan = endColumnIndex - startColumnIndex + 1;\n const distributedWidth = Math.ceil(getExcelTextWidth(value) / columnSpan);\n\n for (let columnIndex = startColumnIndex; columnIndex <= endColumnIndex; columnIndex += 1) {\n updateWidth(columnIndex, distributedWidth);\n }\n\n continue;\n }\n\n if (!key) {\n continue;\n }\n\n const columnIndex = getColumnIndexFromCellKey(key);\n\n if (!columnIndex) {\n continue;\n }\n\n updateWidth(columnIndex, getExcelTextWidth(value));\n }\n\n widths.forEach((width, columnIndex) => {\n worksheet.getColumn(columnIndex).width = width;\n });\n};\n\nconst appendExcelRows = (\n worksheet: ExcelJS.Worksheet,\n mapper: ExcelDataMapper[],\n rows: unknown[],\n) => {\n const startDataRowIndex = (worksheet.lastRow?.number ?? 0) + 1;\n\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {\n const row = rows[rowIndex];\n\n for (let colIndex = 0; colIndex < mapper.length; colIndex += 1) {\n const columnMapper = mapper[colIndex];\n\n setCellValue(worksheet, {\n key: `${getLettersByIndex(colIndex + 1)}${startDataRowIndex + rowIndex}`,\n value: getExportCellValue(row, columnMapper),\n });\n }\n }\n};\n\nconst resolveExportValidationMessage = (\n header: ExcelHeader[],\n mapper: ExcelDataMapper[],\n translate: (key: string) => string,\n) => {\n if (!isArray(header) || isEmpty(header)) {\n return translate('Message.헤더정보가 없습니다');\n }\n\n if (!isArray(mapper) || isEmpty(mapper)) {\n return translate('Message.맵핑정보가 없습니다');\n }\n\n return undefined;\n};\n\n/**\n * OwpExportDataToExcelButton 컴포넌트\n * @param header 헤더 정보\n * @param mapper 엑셀 매핑 정보\n * @param data 데이터\n * @param exportName 다운로드 파일명\n * @param title 제목\n */\nexport function OwpExportDataToExcelButton<T>({\n header,\n mapper,\n data,\n exportName,\n title,\n loading,\n loadingPosition,\n onClick,\n ...restProps\n}: OwpExportDataToExcelButtonProps<T>) {\n const { t } = useOwpTranslation();\n const [isLoading, setLoadingStatus] = useState(false);\n\n const handleExportExcel = async () => {\n if (isLoading) {\n return;\n }\n\n const validationMessage = resolveExportValidationMessage(header, mapper, t);\n\n if (validationMessage) {\n enqueueSnackbar(validationMessage, { variant: 'warning' });\n return;\n }\n\n setLoadingStatus(true);\n\n try {\n const ExcelJSBrowser = await loadExcelJSBrowser();\n const workbook = new ExcelJSBrowser.Workbook();\n const resolvedExportName = getSafeExportName(exportName);\n const worksheet = workbook.addWorksheet(getSafeSheetName(exportName));\n const rows = isArray(data) ? data : [];\n\n worksheet.properties.defaultRowHeight = 19;\n\n applyExcelHeaders(worksheet, header);\n appendExcelRows(worksheet, mapper, rows);\n applyExcelColumnWidths(worksheet, header, mapper);\n\n const buffer = await workbook.xlsx.writeBuffer();\n\n exportExcelByBuffer(buffer, resolvedExportName);\n } catch (error) {\n console.error(error);\n enqueueSnackbar(\n error instanceof Error && error.message\n ? error.message\n : t('Message.엑셀 저장 중 오류가 발생했습니다'),\n { variant: 'error' },\n );\n } finally {\n setLoadingStatus(false);\n }\n };\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n onClick?.(event);\n\n if (event.defaultPrevented || loading || isLoading) {\n return;\n }\n\n void handleExportExcel();\n };\n\n return (\n <Button\n variant=\"contained\"\n color=\"success\"\n {...restProps}\n loading={Boolean(loading || isLoading)}\n loadingPosition={loadingPosition ?? 'start'}\n onClick={handleClick}\n >\n {title ?? t('Button.엑셀 다운로드')}\n </Button>\n );\n}\n"],"names":["DEFAULT_WORKSHEET_NAME","DEFAULT_EXPORT_NAME","DEFAULT_COLUMN_WIDTH","MAX_COLUMN_WIDTH","COLUMN_WIDTH_PADDING","getSafeExportName","__name","value","getSafeSheetName","getColumnIndexFromCellKey","key","matchedColumn","_a","getIndexByLetters","getExcelTextWidth","longestLineWidth","maxWidth","line","lineWidth","width","character","getExportCellValue","item","prefix","suffix","row","rawValue","isNumber","isString","applyExcelHeaders","worksheet","header","range","setMergeCells","setCellValue","applyExcelColumnWidths","mapper","widths","updateWidth","columnIndex","nextWidth","colIndex","startKey","endKey","startColumnIndex","endColumnIndex","columnSpan","distributedWidth","appendExcelRows","rows","startDataRowIndex","rowIndex","columnMapper","getLettersByIndex","resolveExportValidationMessage","translate","isArray","isEmpty","OwpExportDataToExcelButton","data","exportName","title","loading","loadingPosition","onClick","restProps","t","useOwpTranslation","isLoading","setLoadingStatus","useState","handleExportExcel","validationMessage","enqueueSnackbar","ExcelJSBrowser","loadExcelJSBrowser","workbook","resolvedExportName","buffer","exportExcelByBuffer","error","jsx","Button","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OwpExportExcelButton.js","sources":["../../../src/components/OwpExportExcelButton/OwpExportExcelButton.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n exportExcelByBuffer,\n getIndexByLetters,\n getLettersByIndex,\n setCellValue,\n setMergeCells,\n} from '@/utils/excelUtil';\nimport { loadExcelJSBrowser } from '@/utils/internal/exceljsBrowser';\nimport { Button, type ButtonProps } from '@mui/material';\nimport { isArray, isEmpty, isNumber, isString } from 'es-toolkit/compat';\nimport type * as ExcelJS from 'exceljs';\nimport { enqueueSnackbar } from 'notistack';\nimport { type MouseEventHandler, useState } from 'react';\n\nexport type ExcelHeader = {\n key?: string;\n range?: string;\n value: string;\n};\n\nexport type ExcelDataMapper = {\n key: string;\n colSpan?: string;\n rowSpan?: string;\n prefix?: string;\n suffix?: string;\n};\n\ninterface OwpExportDataToExcelButtonProps<T> extends ButtonProps {\n header: ExcelHeader[];\n mapper: ExcelDataMapper[];\n data?: T;\n title?: string;\n exportName?: string;\n}\n\nconst DEFAULT_WORKSHEET_NAME = 'sheet1';\nconst DEFAULT_EXPORT_NAME = 'sheet';\nconst DEFAULT_COLUMN_WIDTH = 10;\nconst MAX_COLUMN_WIDTH = 50;\nconst COLUMN_WIDTH_PADDING = 4;\n\nconst getSafeExportName = (value?: string) => {\n const exportName = (value ?? DEFAULT_EXPORT_NAME).trim();\n\n return exportName.replace(/[\\\\/:*?\"<>|]/g, '_') || DEFAULT_EXPORT_NAME;\n};\n\nconst getSafeSheetName = (value?: string) =>\n getSafeExportName(value ?? DEFAULT_WORKSHEET_NAME).slice(0, 31) || DEFAULT_WORKSHEET_NAME;\n\nconst getColumnIndexFromCellKey = (key: string) => {\n const matchedColumn = key.match(/^([A-Z]+)\\d+$/i)?.[1];\n\n if (!matchedColumn) {\n return undefined;\n }\n\n return getIndexByLetters(matchedColumn.toUpperCase());\n};\n\nconst getExcelTextWidth = (value: string) => {\n const longestLineWidth = value\n .split(/\\r?\\n/)\n .reduce((maxWidth, line) => {\n const lineWidth = Array.from(line).reduce((width, character) => {\n return width + ((character.codePointAt(0) ?? 0) <= 0xff ? 1 : 2);\n }, 0);\n\n return Math.max(maxWidth, lineWidth);\n }, 0);\n\n return Math.min(Math.max(longestLineWidth + COLUMN_WIDTH_PADDING, DEFAULT_COLUMN_WIDTH), MAX_COLUMN_WIDTH);\n};\n\nconst getExportCellValue = (item: unknown, { key, prefix, suffix }: ExcelDataMapper) => {\n const row = item as Record<string, unknown> | undefined;\n const rawValue = row?.[key];\n\n if (!isNumber(rawValue) && !isString(rawValue)) {\n return '';\n }\n\n return `${prefix ?? ''}${rawValue}${suffix ?? ''}`;\n};\n\nconst applyExcelHeaders = (worksheet: ExcelJS.Worksheet, header: ExcelHeader[]) => {\n for (const { key, range, value } of header) {\n if (range) {\n setMergeCells(worksheet, {\n isHeader: true,\n range,\n value,\n });\n continue;\n }\n\n if (!key) {\n continue;\n }\n\n setCellValue(worksheet, {\n isHeader: true,\n key,\n value,\n });\n }\n};\n\nconst applyExcelColumnWidths = (\n worksheet: ExcelJS.Worksheet,\n header: ExcelHeader[],\n mapper: ExcelDataMapper[],\n) => {\n const widths = new Map<number, number>();\n const updateWidth = (columnIndex: number, nextWidth: number) => {\n widths.set(columnIndex, Math.max(widths.get(columnIndex) ?? DEFAULT_COLUMN_WIDTH, nextWidth));\n };\n\n for (let colIndex = 0; colIndex < mapper.length; colIndex += 1) {\n updateWidth(colIndex + 1, DEFAULT_COLUMN_WIDTH);\n }\n\n for (const { key, range, value } of header) {\n if (range) {\n const [startKey, endKey] = range.split(':');\n const startColumnIndex = startKey ? getColumnIndexFromCellKey(startKey) : undefined;\n const endColumnIndex = endKey ? getColumnIndexFromCellKey(endKey) : undefined;\n\n if (!startColumnIndex || !endColumnIndex || endColumnIndex < startColumnIndex) {\n continue;\n }\n\n const columnSpan = endColumnIndex - startColumnIndex + 1;\n const distributedWidth = Math.ceil(getExcelTextWidth(value) / columnSpan);\n\n for (let columnIndex = startColumnIndex; columnIndex <= endColumnIndex; columnIndex += 1) {\n updateWidth(columnIndex, distributedWidth);\n }\n\n continue;\n }\n\n if (!key) {\n continue;\n }\n\n const columnIndex = getColumnIndexFromCellKey(key);\n\n if (!columnIndex) {\n continue;\n }\n\n updateWidth(columnIndex, getExcelTextWidth(value));\n }\n\n widths.forEach((width, columnIndex) => {\n worksheet.getColumn(columnIndex).width = width;\n });\n};\n\nconst appendExcelRows = (\n worksheet: ExcelJS.Worksheet,\n mapper: ExcelDataMapper[],\n rows: unknown[],\n) => {\n const startDataRowIndex = (worksheet.lastRow?.number ?? 0) + 1;\n\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {\n const row = rows[rowIndex];\n\n for (let colIndex = 0; colIndex < mapper.length; colIndex += 1) {\n const columnMapper = mapper[colIndex];\n\n setCellValue(worksheet, {\n key: `${getLettersByIndex(colIndex + 1)}${startDataRowIndex + rowIndex}`,\n value: getExportCellValue(row, columnMapper),\n });\n }\n }\n};\n\nconst resolveExportValidationMessage = (\n header: ExcelHeader[],\n mapper: ExcelDataMapper[],\n translate: (key: string) => string,\n) => {\n if (!isArray(header) || isEmpty(header)) {\n return translate('Message.헤더정보가 없습니다');\n }\n\n if (!isArray(mapper) || isEmpty(mapper)) {\n return translate('Message.맵핑정보가 없습니다');\n }\n\n return undefined;\n};\n\n/**\n * OwpExportDataToExcelButton 컴포넌트\n * @param header 헤더 정보\n * @param mapper 엑셀 매핑 정보\n * @param data 데이터\n * @param exportName 다운로드 파일명\n * @param title 제목\n */\nexport function OwpExportDataToExcelButton<T>({\n header,\n mapper,\n data,\n exportName,\n title,\n loading,\n loadingPosition,\n onClick,\n ...restProps\n}: OwpExportDataToExcelButtonProps<T>) {\n const { t } = useOwpTranslation();\n const [isLoading, setLoadingStatus] = useState(false);\n\n const handleExportExcel = async () => {\n if (isLoading) {\n return;\n }\n\n const validationMessage = resolveExportValidationMessage(header, mapper, t);\n\n if (validationMessage) {\n enqueueSnackbar(validationMessage, { variant: 'warning' });\n return;\n }\n\n setLoadingStatus(true);\n\n try {\n const ExcelJSBrowser = await loadExcelJSBrowser();\n const workbook = new ExcelJSBrowser.Workbook();\n const resolvedExportName = getSafeExportName(exportName);\n const worksheet = workbook.addWorksheet(getSafeSheetName(exportName));\n const rows = isArray(data) ? data : [];\n\n worksheet.properties.defaultRowHeight = 19;\n\n applyExcelHeaders(worksheet, header);\n appendExcelRows(worksheet, mapper, rows);\n applyExcelColumnWidths(worksheet, header, mapper);\n\n const buffer = await workbook.xlsx.writeBuffer();\n\n exportExcelByBuffer(buffer, resolvedExportName);\n } catch (error) {\n console.error(error);\n enqueueSnackbar(\n error instanceof Error && error.message\n ? error.message\n : t('Message.엑셀 저장 중 오류가 발생했습니다'),\n { variant: 'error' },\n );\n } finally {\n setLoadingStatus(false);\n }\n };\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n onClick?.(event);\n\n if (event.defaultPrevented || loading || isLoading) {\n return;\n }\n\n void handleExportExcel();\n };\n\n return (\n <Button\n variant=\"contained\"\n color=\"success\"\n {...restProps}\n loading={Boolean(loading || isLoading)}\n loadingPosition={loadingPosition ?? 'start'}\n onClick={handleClick}\n >\n {title ?? t('Button.엑셀 다운로드')}\n </Button>\n );\n}\n"],"names":["DEFAULT_WORKSHEET_NAME","DEFAULT_EXPORT_NAME","DEFAULT_COLUMN_WIDTH","MAX_COLUMN_WIDTH","COLUMN_WIDTH_PADDING","getSafeExportName","__name","value","getSafeSheetName","getColumnIndexFromCellKey","key","matchedColumn","_a","getIndexByLetters","getExcelTextWidth","longestLineWidth","maxWidth","line","lineWidth","width","character","getExportCellValue","item","prefix","suffix","row","rawValue","isNumber","isString","applyExcelHeaders","worksheet","header","range","setMergeCells","setCellValue","applyExcelColumnWidths","mapper","widths","updateWidth","columnIndex","nextWidth","colIndex","startKey","endKey","startColumnIndex","endColumnIndex","columnSpan","distributedWidth","appendExcelRows","rows","startDataRowIndex","rowIndex","columnMapper","getLettersByIndex","resolveExportValidationMessage","translate","isArray","isEmpty","OwpExportDataToExcelButton","data","exportName","title","loading","loadingPosition","onClick","restProps","t","useOwpTranslation","isLoading","setLoadingStatus","useState","handleExportExcel","validationMessage","enqueueSnackbar","ExcelJSBrowser","loadExcelJSBrowser","workbook","resolvedExportName","buffer","exportExcelByBuffer","error","jsx","Button","event"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var p = Object.defineProperty;
|
|
2
2
|
var a = (t, n) => p(t, "name", { value: n, configurable: !0 });
|
|
3
3
|
import { jsxs as f, jsx as r } 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 { useGetCurrentLanguage as w, useSetCurrentLanguage as v, useGetLanguageList as C } from "../../hooks/useCurrentLanguage.js";
|
|
4
|
+
import { useGetCurrentLanguage as w, useSetCurrentLanguage as v, useGetLanguageList as C } from "../../hooks/internal/useCurrentLanguage.js";
|
|
5
5
|
import { useOwpTranslation as x } from "../../hooks/useOwpTranslation.js";
|
|
6
6
|
import { FormControl as I, InputLabel as S } from "@mui/material";
|
|
7
7
|
import b from "@mui/material/MenuItem";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpLanguageSwitcherSelect.js","sources":["../../../src/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.tsx"],"sourcesContent":["import {\n CurrentLanguage,\n useGetCurrentLanguage,\n useGetLanguageList,\n useSetCurrentLanguage,\n} from '@/hooks/useCurrentLanguage';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { FormControl, InputLabel } from '@mui/material';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select, { SelectChangeEvent, SelectProps } from '@mui/material/Select';\nimport { useNavigate } from 'react-router-dom';\n\n/**\n * The language switcher.\n */\nexport function OwpLanguageSwitcherSelect({\n label,\n fullWidth,\n canRefresh,\n ...restSelectProps\n}: Omit<SelectProps, 'value' | 'onChange'> & { canRefresh?: boolean }) {\n const currentLanguage = useGetCurrentLanguage();\n const setLanguage = useSetCurrentLanguage();\n const languageList = useGetLanguageList();\n const navigate = useNavigate();\n\n const { i18n } = useOwpTranslation();\n\n const handleLanguageChange = (event: SelectChangeEvent) => {\n const selectedLangId = event.target.value as string;\n const nextLangData = languageList.find((item) => item.id === selectedLangId);\n\n setLanguage(nextLangData as CurrentLanguage);\n i18n.changeLanguage(selectedLangId);\n\n if (canRefresh) {\n navigate(0);\n }\n };\n\n return (\n <FormControl fullWidth>\n <InputLabel id=\"lang-switcher-select-label\">{label}</InputLabel>\n <Select\n labelId=\"lang-switcher-select-label\"\n id=\"lang-switcher-select\"\n variant=\"standard\"\n {...restSelectProps}\n fullWidth={fullWidth}\n value={currentLanguage.id}\n label={label}\n onChange={handleLanguageChange}\n >\n {languageList.map((item) => (\n <MenuItem key={`lang-switcher-item-${item.id}`} value={item.id}>\n {item.title}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n}\n"],"names":["OwpLanguageSwitcherSelect","label","fullWidth","canRefresh","restSelectProps","currentLanguage","useGetCurrentLanguage","setLanguage","useSetCurrentLanguage","languageList","useGetLanguageList","navigate","useNavigate","i18n","useOwpTranslation","handleLanguageChange","__name","event","selectedLangId","nextLangData","item","jsxs","FormControl","jsx","InputLabel","Select","MenuItem"],"mappings":";;;;;;;;;AAeO,SAASA,EAA0B;AAAA,EACxC,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAAuE;AACrE,QAAMC,IAAkBC,EAAA,GAClBC,IAAcC,EAAA,GACdC,IAAeC,EAAA,GACfC,IAAWC,EAAA,GAEX,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEXC,IAAuB,gBAAAC,EAAA,CAACC,MAA6B;AACzD,UAAMC,IAAiBD,EAAM,OAAO,OAC9BE,IAAeV,EAAa,KAAK,CAACW,MAASA,EAAK,OAAOF,CAAc;AAE3E,IAAAX,EAAYY,CAA+B,GAC3CN,EAAK,eAAeK,CAAc,GAE9Bf,KACFQ,EAAS,CAAC;AAAA,EAEd,GAV6B;AAY7B,SACE,gBAAAU,EAACC,GAAA,EAAY,WAAS,IACpB,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAW,IAAG,8BAA8B,UAAAvB,GAAM;AAAA,IACnD,gBAAAsB;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,IAAG;AAAA,QACH,SAAQ;AAAA,QACP,GAAGrB;AAAA,QACJ,WAAAF;AAAA,QACA,OAAOG,EAAgB;AAAA,QACvB,OAAAJ;AAAA,QACA,UAAUc;AAAA,QAET,UAAAN,EAAa,IAAI,CAACW,wBAChBM,GAAA,EAA+C,OAAON,EAAK,IACzD,YAAK,MAAA,GADO,sBAAsBA,EAAK,EAAE,EAE5C,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;AA9CgBJ,EAAAhB,GAAA;"}
|
|
1
|
+
{"version":3,"file":"OwpLanguageSwitcherSelect.js","sources":["../../../src/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.tsx"],"sourcesContent":["import {\n type CurrentLanguage,\n useGetCurrentLanguage,\n useGetLanguageList,\n useSetCurrentLanguage,\n} from '@/hooks/internal/useCurrentLanguage';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { FormControl, InputLabel } from '@mui/material';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select, { SelectChangeEvent, SelectProps } from '@mui/material/Select';\nimport { useNavigate } from 'react-router-dom';\n\n/**\n * The language switcher.\n */\nexport function OwpLanguageSwitcherSelect({\n label,\n fullWidth,\n canRefresh,\n ...restSelectProps\n}: Omit<SelectProps, 'value' | 'onChange'> & { canRefresh?: boolean }) {\n const currentLanguage = useGetCurrentLanguage();\n const setLanguage = useSetCurrentLanguage();\n const languageList = useGetLanguageList();\n const navigate = useNavigate();\n\n const { i18n } = useOwpTranslation();\n\n const handleLanguageChange = (event: SelectChangeEvent) => {\n const selectedLangId = event.target.value as string;\n const nextLangData = languageList.find((item) => item.id === selectedLangId);\n\n setLanguage(nextLangData as CurrentLanguage);\n i18n.changeLanguage(selectedLangId);\n\n if (canRefresh) {\n navigate(0);\n }\n };\n\n return (\n <FormControl fullWidth>\n <InputLabel id=\"lang-switcher-select-label\">{label}</InputLabel>\n <Select\n labelId=\"lang-switcher-select-label\"\n id=\"lang-switcher-select\"\n variant=\"standard\"\n {...restSelectProps}\n fullWidth={fullWidth}\n value={currentLanguage.id}\n label={label}\n onChange={handleLanguageChange}\n >\n {languageList.map((item) => (\n <MenuItem key={`lang-switcher-item-${item.id}`} value={item.id}>\n {item.title}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n}\n"],"names":["OwpLanguageSwitcherSelect","label","fullWidth","canRefresh","restSelectProps","currentLanguage","useGetCurrentLanguage","setLanguage","useSetCurrentLanguage","languageList","useGetLanguageList","navigate","useNavigate","i18n","useOwpTranslation","handleLanguageChange","__name","event","selectedLangId","nextLangData","item","jsxs","FormControl","jsx","InputLabel","Select","MenuItem"],"mappings":";;;;;;;;;AAeO,SAASA,EAA0B;AAAA,EACxC,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAAuE;AACrE,QAAMC,IAAkBC,EAAA,GAClBC,IAAcC,EAAA,GACdC,IAAeC,EAAA,GACfC,IAAWC,EAAA,GAEX,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEXC,IAAuB,gBAAAC,EAAA,CAACC,MAA6B;AACzD,UAAMC,IAAiBD,EAAM,OAAO,OAC9BE,IAAeV,EAAa,KAAK,CAACW,MAASA,EAAK,OAAOF,CAAc;AAE3E,IAAAX,EAAYY,CAA+B,GAC3CN,EAAK,eAAeK,CAAc,GAE9Bf,KACFQ,EAAS,CAAC;AAAA,EAEd,GAV6B;AAY7B,SACE,gBAAAU,EAACC,GAAA,EAAY,WAAS,IACpB,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAW,IAAG,8BAA8B,UAAAvB,GAAM;AAAA,IACnD,gBAAAsB;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,IAAG;AAAA,QACH,SAAQ;AAAA,QACP,GAAGrB;AAAA,QACJ,WAAAF;AAAA,QACA,OAAOG,EAAgB;AAAA,QACvB,OAAAJ;AAAA,QACA,UAAUc;AAAA,QAET,UAAAN,EAAa,IAAI,CAACW,wBAChBM,GAAA,EAA+C,OAAON,EAAK,IACzD,YAAK,MAAA,GADO,sBAAsBA,EAAK,EAAE,EAE5C,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;AA9CgBJ,EAAAhB,GAAA;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var n = Object.defineProperty;
|
|
2
2
|
var i = (r, o) => n(r, "name", { value: o, configurable: !0 });
|
|
3
3
|
import { jsx as e } 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 { useTimeout as l } from "../../hooks/useTimeout.js";
|
|
4
|
+
import { useTimeout as l } from "../../hooks/internal/useTimeout.js";
|
|
5
5
|
import d from "@mui/material/Box";
|
|
6
6
|
import c from "@mui/material/LinearProgress";
|
|
7
7
|
import { clsx as f } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpLoading.js","sources":["../../../src/components/OwpLoading/OwpLoading.tsx"],"sourcesContent":["import { useTimeout } from '@/hooks/useTimeout';\nimport Box from '@mui/material/Box';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport clsx from 'clsx';\nimport { useState } from 'react';\n\nexport type OwpLoadingProps = {\n delay?: number;\n className?: string;\n};\n\n/**\n * Centered loading indicator with optional delay\n */\nfunction OwpLoading(props: OwpLoadingProps) {\n const { delay = 0, className } = props;\n const [showLoading, setShowLoading] = useState(!delay);\n\n useTimeout(() => {\n setShowLoading(true);\n }, delay);\n\n return (\n <div\n className={clsx(\n className,\n 'box-border flex h-full min-h-0 w-full flex-1 flex-col items-center justify-center p-24',\n !showLoading ? 'hidden' : '',\n )}\n >\n <Box sx={{ width: '40%' }}>\n <LinearProgress\n color=\"secondary\"\n sx={{\n height: '4px',\n borderRadius: '999px',\n }}\n />\n </Box>\n </div>\n );\n}\n\nexport { OwpLoading };\n"],"names":["OwpLoading","props","delay","className","showLoading","setShowLoading","useState","useTimeout","jsx","clsx","Box","LinearProgress","__name"],"mappings":";;;;;;;;AAcA,SAASA,EAAWC,GAAwB;AAC1C,QAAM,EAAE,OAAAC,IAAQ,GAAG,WAAAC,EAAA,IAAcF,GAC3B,CAACG,GAAaC,CAAc,IAAIC,EAAS,CAACJ,CAAK;AAErD,SAAAK,EAAW,MAAM;AACf,IAAAF,EAAe,EAAI;AAAA,EACrB,GAAGH,CAAK,GAGN,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTN;AAAA,QACA;AAAA,QACCC,IAAyB,KAAX;AAAA,MAAW;AAAA,MAG5B,4BAACM,GAAA,EAAI,IAAI,EAAE,OAAO,SAChB,UAAA,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI;AAAA,YACF,QAAQ;AAAA,YACR,cAAc;AAAA,UAAA;AAAA,QAChB;AAAA,MAAA,EACF,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;AA3BSC,EAAAZ,GAAA;"}
|
|
1
|
+
{"version":3,"file":"OwpLoading.js","sources":["../../../src/components/OwpLoading/OwpLoading.tsx"],"sourcesContent":["import { useTimeout } from '@/hooks/internal/useTimeout';\nimport Box from '@mui/material/Box';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport clsx from 'clsx';\nimport { useState } from 'react';\n\nexport type OwpLoadingProps = {\n delay?: number;\n className?: string;\n};\n\n/**\n * Centered loading indicator with optional delay\n */\nfunction OwpLoading(props: OwpLoadingProps) {\n const { delay = 0, className } = props;\n const [showLoading, setShowLoading] = useState(!delay);\n\n useTimeout(() => {\n setShowLoading(true);\n }, delay);\n\n return (\n <div\n className={clsx(\n className,\n 'box-border flex h-full min-h-0 w-full flex-1 flex-col items-center justify-center p-24',\n !showLoading ? 'hidden' : '',\n )}\n >\n <Box sx={{ width: '40%' }}>\n <LinearProgress\n color=\"secondary\"\n sx={{\n height: '4px',\n borderRadius: '999px',\n }}\n />\n </Box>\n </div>\n );\n}\n\nexport { OwpLoading };\n"],"names":["OwpLoading","props","delay","className","showLoading","setShowLoading","useState","useTimeout","jsx","clsx","Box","LinearProgress","__name"],"mappings":";;;;;;;;AAcA,SAASA,EAAWC,GAAwB;AAC1C,QAAM,EAAE,OAAAC,IAAQ,GAAG,WAAAC,EAAA,IAAcF,GAC3B,CAACG,GAAaC,CAAc,IAAIC,EAAS,CAACJ,CAAK;AAErD,SAAAK,EAAW,MAAM;AACf,IAAAF,EAAe,EAAI;AAAA,EACrB,GAAGH,CAAK,GAGN,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTN;AAAA,QACA;AAAA,QACCC,IAAyB,KAAX;AAAA,MAAW;AAAA,MAG5B,4BAACM,GAAA,EAAI,IAAI,EAAE,OAAO,SAChB,UAAA,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,IAAI;AAAA,YACF,QAAQ;AAAA,YACR,cAAc;AAAA,UAAA;AAAA,QAChB;AAAA,MAAA,EACF,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;AA3BSC,EAAAZ,GAAA;"}
|
|
@@ -7,7 +7,7 @@ import Bo from "@mui/material/GlobalStyles";
|
|
|
7
7
|
import { resolveOwpGridTheme as Ho } from "../../constants/gridTheme.js";
|
|
8
8
|
import { DEFAULT_TABLE_RADIUS as Io } from "../../constants/table.js";
|
|
9
9
|
import { getTreeGridFontFaceStyles as ko } from "../../constants/treeGrid.js";
|
|
10
|
-
import { useGetCurrentLanguage as zo } from "../../hooks/useCurrentLanguage.js";
|
|
10
|
+
import { useGetCurrentLanguage as zo } from "../../hooks/internal/useCurrentLanguage.js";
|
|
11
11
|
import { useGetCurrentSettings as Lo } from "../../hooks/useOwpSettings.js";
|
|
12
12
|
import { useOwpTranslation as Fo } from "../../hooks/useOwpTranslation.js";
|
|
13
13
|
import { clsx as Oo } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|