@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
|
@@ -1,39 +1,38 @@
|
|
|
1
1
|
var W = Object.defineProperty;
|
|
2
2
|
var o = (c, m) => W(c, "name", { value: m, configurable: !0 });
|
|
3
3
|
import { jsx as f } 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 {
|
|
5
|
-
import {
|
|
6
|
-
import { useMemo as
|
|
4
|
+
import { clsx as b } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
5
|
+
import { owpDayjs as d } from "../../dayjs.js";
|
|
6
|
+
import { useMemo as x } from "react";
|
|
7
7
|
import { DatePicker as F } from "../../node_modules/.pnpm/react-datepicker@8.7.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-datepicker/dist/index.es.js";
|
|
8
8
|
import { CalendarContainer as N } from "./internal/CalendarContainer.js";
|
|
9
9
|
import { DatePickerInput as O } from "./internal/DatePickerInput.js";
|
|
10
10
|
import { VALUE_DATE_FORMATTER as D } from "./constants/index.js";
|
|
11
|
-
|
|
12
|
-
const a = "ᵗʰ ", G = /* @__PURE__ */ o(({
|
|
11
|
+
const a = "ᵗʰ ", B = /* @__PURE__ */ o(({
|
|
13
12
|
label: c,
|
|
14
13
|
variant: m = "standard",
|
|
15
|
-
sx:
|
|
14
|
+
sx: k,
|
|
16
15
|
value: e,
|
|
17
16
|
onChange: t,
|
|
18
|
-
fullWidth:
|
|
17
|
+
fullWidth: u,
|
|
19
18
|
showWeekNumbers: l,
|
|
20
|
-
textFieldProps:
|
|
21
|
-
disabledClearButton:
|
|
22
|
-
...
|
|
19
|
+
textFieldProps: $,
|
|
20
|
+
disabledClearButton: n,
|
|
21
|
+
...w
|
|
23
22
|
}) => {
|
|
24
23
|
const {
|
|
25
|
-
selectsMultiple:
|
|
24
|
+
selectsMultiple: y,
|
|
26
25
|
selectsRange: A,
|
|
27
26
|
selected: I,
|
|
28
27
|
startDate: M,
|
|
29
28
|
endDate: R,
|
|
30
|
-
|
|
31
|
-
} =
|
|
29
|
+
...P
|
|
30
|
+
} = w, [S, E] = x(() => {
|
|
32
31
|
var r, s;
|
|
33
32
|
if (!e) return [null, ""];
|
|
34
33
|
if (typeof e == "string") {
|
|
35
|
-
const [
|
|
36
|
-
return [new Date(
|
|
34
|
+
const [i, p] = e.split(a);
|
|
35
|
+
return [new Date(p || e), i ? `${i}${a}` : ""];
|
|
37
36
|
}
|
|
38
37
|
return [(s = (r = d(e)) == null ? void 0 : r.startOf("isoWeek")) == null ? void 0 : s.toDate(), ""];
|
|
39
38
|
}, [e]);
|
|
@@ -42,25 +41,25 @@ const a = "ᵗʰ ", G = /* @__PURE__ */ o(({
|
|
|
42
41
|
{
|
|
43
42
|
popperPlacement: "bottom-start",
|
|
44
43
|
popperContainer: N,
|
|
45
|
-
|
|
46
|
-
selected:
|
|
44
|
+
...P,
|
|
45
|
+
selected: S,
|
|
47
46
|
onChange: /* @__PURE__ */ o((r) => {
|
|
48
47
|
if (!r) return t == null ? void 0 : t(void 0);
|
|
49
|
-
const s = d(r),
|
|
50
|
-
t == null || t(
|
|
48
|
+
const s = d(r), p = `${s.startOf("isoWeek").isoWeek()}${a}${s.format(D)}`;
|
|
49
|
+
t == null || t(p);
|
|
51
50
|
}, "handleSelect"),
|
|
52
51
|
showWeekNumbers: l,
|
|
53
52
|
calendarStartDay: 1,
|
|
54
53
|
customInput: /* @__PURE__ */ f(
|
|
55
54
|
O,
|
|
56
55
|
{
|
|
57
|
-
className:
|
|
56
|
+
className: b(l && "w-[184px]"),
|
|
58
57
|
label: c,
|
|
59
58
|
variant: m,
|
|
60
|
-
sx:
|
|
61
|
-
|
|
62
|
-
fullWidth:
|
|
63
|
-
disabledClearButton:
|
|
59
|
+
sx: k,
|
|
60
|
+
...$,
|
|
61
|
+
fullWidth: u,
|
|
62
|
+
disabledClearButton: n,
|
|
64
63
|
reset: /* @__PURE__ */ o(() => t == null ? void 0 : t(""), "reset"),
|
|
65
64
|
valueFormatter: `${E}${D}`
|
|
66
65
|
}
|
|
@@ -69,6 +68,6 @@ const a = "ᵗʰ ", G = /* @__PURE__ */ o(({
|
|
|
69
68
|
);
|
|
70
69
|
}, "OwpWeekDatePicker");
|
|
71
70
|
export {
|
|
72
|
-
|
|
71
|
+
B as OwpWeekDatePicker
|
|
73
72
|
};
|
|
74
73
|
//# sourceMappingURL=OwpWeekDatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpWeekDatePicker.js","sources":["../../../src/components/OwpPicker/OwpWeekDatePicker.tsx"],"sourcesContent":["import { DatePickerValue } from '@/components/OwpPicker/OwpDatePicker';\nimport {
|
|
1
|
+
{"version":3,"file":"OwpWeekDatePicker.js","sources":["../../../src/components/OwpPicker/OwpWeekDatePicker.tsx"],"sourcesContent":["import { DatePickerValue } from '@/components/OwpPicker/OwpDatePicker';\nimport { TextFieldProps } from '@mui/material';\nimport clsx from 'clsx';\nimport dayjs from '@/dayjs';\nimport { useMemo } from 'react';\nimport ReactDatePicker, { DatePickerProps } from 'react-datepicker';\nimport { CalendarContainer } from './internal/CalendarContainer';\nimport { DatePickerInput } from './internal/DatePickerInput';\nimport { VALUE_DATE_FORMATTER } from './constants';\n\nconst WEEK_SUFFIX = 'ᵗʰ ';\n\ninterface WeekPickerProps {\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n sx?: TextFieldProps['sx'];\n value?: DatePickerValue;\n disabledClearButton?: boolean;\n disabledFutureDates?: boolean;\n showMonthPicker?: boolean;\n fullWidth?: boolean;\n onChange?: (value?: DatePickerValue) => void;\n textFieldProps?: Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange'>;\n}\n\ntype OwpDatePickerProps = WeekPickerProps & DatePickerProps;\n\n/**\n * OwpWeekDatePicker 컴포넌트\n * @param label 입력 라벨\n * @param variant variant 값\n * @param sx sx 값\n * @param value 현재 값\n * @param onChange onChange 핸들러\n * @param fullWidth 전체 너비 사용 여부\n */\nexport const OwpWeekDatePicker = ({\n label,\n variant = 'standard',\n sx,\n value,\n onChange,\n fullWidth,\n showWeekNumbers,\n textFieldProps,\n disabledClearButton,\n ...datePickerProps\n}: OwpDatePickerProps) => {\n const {\n selectsMultiple,\n selectsRange,\n selected,\n startDate,\n endDate,\n ...resolvedDatePickerProps\n } = datePickerProps;\n void [selectsMultiple, selectsRange, selected, startDate, endDate];\n const [selectedDate, selectedWeekNumberStr] = useMemo(() => {\n if (!value) return [null, ''];\n\n if (typeof value === 'string') {\n const [weekNumber, dateStr] = value.split(WEEK_SUFFIX);\n return [new Date(dateStr || value), weekNumber ? `${weekNumber}${WEEK_SUFFIX}` : ''];\n }\n\n return [dayjs(value)?.startOf('isoWeek')?.toDate(), ''];\n }, [value]);\n\n const handleSelect = (date: Date | null) => {\n if (!date) return onChange?.(undefined);\n\n const currentDate = dayjs(date);\n const weekNumber = currentDate.startOf('isoWeek').isoWeek();\n const formatted = `${weekNumber}${WEEK_SUFFIX}${currentDate.format(VALUE_DATE_FORMATTER)}`;\n\n onChange?.(formatted);\n };\n\n return (\n <ReactDatePicker\n popperPlacement=\"bottom-start\"\n popperContainer={CalendarContainer}\n {...resolvedDatePickerProps}\n selected={selectedDate}\n onChange={handleSelect}\n showWeekNumbers={showWeekNumbers}\n calendarStartDay={1}\n customInput={\n <DatePickerInput\n className={clsx(showWeekNumbers && 'w-[184px]')}\n label={label}\n variant={variant}\n sx={sx}\n {...textFieldProps}\n fullWidth={fullWidth}\n disabledClearButton={disabledClearButton}\n reset={() => onChange?.('')}\n valueFormatter={`${selectedWeekNumberStr}${VALUE_DATE_FORMATTER}`}\n />\n }\n />\n );\n};\n"],"names":["WEEK_SUFFIX","OwpWeekDatePicker","__name","label","variant","sx","value","onChange","fullWidth","showWeekNumbers","textFieldProps","disabledClearButton","datePickerProps","selectsMultiple","selectsRange","selected","startDate","endDate","resolvedDatePickerProps","selectedDate","selectedWeekNumberStr","useMemo","weekNumber","dateStr","dayjs","jsx","ReactDatePicker","CalendarContainer","date","currentDate","formatted","VALUE_DATE_FORMATTER","DatePickerInput","clsx"],"mappings":";;;;;;;;;;AAUA,MAAMA,IAAc,OA2BPC,IAAoB,gBAAAC,EAAA,CAAC;AAAA,EAChC,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,GAAGC;AACL,MAA0B;AACxB,QAAM;AAAA,IACJ,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDN,GAEE,CAACO,GAAcC,CAAqB,IAAIC,EAAQ,MAAM;;AAC1D,QAAI,CAACf,EAAO,QAAO,CAAC,MAAM,EAAE;AAE5B,QAAI,OAAOA,KAAU,UAAU;AAC7B,YAAM,CAACgB,GAAYC,CAAO,IAAIjB,EAAM,MAAMN,CAAW;AACrD,aAAO,CAAC,IAAI,KAAKuB,KAAWjB,CAAK,GAAGgB,IAAa,GAAGA,CAAU,GAAGtB,CAAW,KAAK,EAAE;AAAA,IACrF;AAEA,WAAO,EAACwB,KAAAA,IAAAA,EAAMlB,CAAK,MAAXkB,gBAAAA,EAAc,QAAQ,eAAtBA,gBAAAA,EAAkC,UAAU,EAAE;AAAA,EACxD,GAAG,CAAClB,CAAK,CAAC;AAYV,SACE,gBAAAmB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,iBAAgB;AAAA,MAChB,iBAAiBC;AAAA,MAChB,GAAGT;AAAA,MACJ,UAAUC;AAAA,MACV,UAhBiB,gBAAAjB,EAAA,CAAC0B,MAAsB;AAC1C,YAAI,CAACA,EAAM,QAAOrB,KAAA,gBAAAA,EAAW;AAE7B,cAAMsB,IAAcL,EAAMI,CAAI,GAExBE,IAAY,GADCD,EAAY,QAAQ,SAAS,EAAE,QAAA,CACnB,GAAG7B,CAAW,GAAG6B,EAAY,OAAOE,CAAoB,CAAC;AAExF,QAAAxB,KAAA,QAAAA,EAAWuB;AAAA,MACb,GARqB;AAAA,MAiBjB,iBAAArB;AAAA,MACA,kBAAkB;AAAA,MAClB,aACE,gBAAAgB;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,WAAWC,EAAKxB,KAAmB,WAAW;AAAA,UAC9C,OAAAN;AAAA,UACA,SAAAC;AAAA,UACA,IAAAC;AAAA,UACC,GAAGK;AAAA,UACJ,WAAAF;AAAA,UACA,qBAAAG;AAAA,UACA,OAAO,gBAAAT,EAAA,MAAMK,KAAA,gBAAAA,EAAW,KAAjB;AAAA,UACP,gBAAgB,GAAGa,CAAqB,GAAGW,CAAoB;AAAA,QAAA;AAAA,MAAA;AAAA,IACjE;AAAA,EAAA;AAIR,GAlEiC;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var w = Object.defineProperty;
|
|
2
2
|
var a = (t, r) => w(t, "name", { value: r, configurable: !0 });
|
|
3
3
|
import { jsx as e, jsxs as o } 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 { useThemeMediaQuery as v } from "../../hooks/useThemeMediaQuery.js";
|
|
4
|
+
import { useThemeMediaQuery as v } from "../../hooks/internal/useThemeMediaQuery.js";
|
|
5
5
|
import { useOwpTranslation as g } from "../../hooks/useOwpTranslation.js";
|
|
6
6
|
import N from "../../node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestartAlt.js";
|
|
7
7
|
import y from "../../node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/Search.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpSearchFilter.js","sources":["../../../src/components/OwpSearchFilter/OwpSearchFilter.tsx"],"sourcesContent":["import { useThemeMediaQuery } from '@/hooks/useThemeMediaQuery';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport RestartAltIcon from '@mui/icons-material/RestartAlt';\nimport SearchIcon from '@mui/icons-material/Search';\nimport { Box, Button } from '@mui/material';\nimport clsx from 'clsx';\nimport type { ReactNode } from 'react';\n\ninterface OwpSearchFilterProps {\n title?: ReactNode | string;\n children?: ReactNode;\n actions?: ReactNode;\n onSubmit?: () => void;\n onReset?: () => void;\n skeleton?: boolean;\n}\n\nconst SEARCH_FILTER_HELPER_TEXT_RESERVED_SPACE = 'calc(0.75rem * 1.66 + 3px)';\n\n/** 검색 필터 helper text 보정 */\nconst searchFilterFieldsSx = {\n '&:has(.MuiFormHelperText-root) > *::after': {\n content: '\"\"',\n display: 'block',\n height: SEARCH_FILTER_HELPER_TEXT_RESERVED_SPACE,\n },\n '&:has(.MuiFormHelperText-root) > *:has(.MuiFormHelperText-root)::after': {\n display: 'none',\n },\n} as const;\n\n/**\n * OwpSearchFilter 컴포넌트\n * @param title 제목\n * @param children 하위 콘텐츠\n * @param actions 액션 영역\n * @param onSubmit 제출 핸들러\n * @param onReset 초기화 핸들러\n * @param skeleton 스켈레톤 모드 여부\n */\nconst OwpSearchFilter = ({\n title,\n children,\n actions,\n onSubmit,\n onReset,\n skeleton = false,\n}: OwpSearchFilterProps) => {\n const { t } = useOwpTranslation();\n const isWideScreen = useThemeMediaQuery((theme) => theme.breakpoints.up(1600));\n const hasTitle = title !== undefined && title !== null && title !== '';\n const hasChildren = children !== undefined && children !== null && children !== '';\n const hasActions = actions !== undefined && actions !== null && actions !== '';\n\n if (skeleton) {\n return (\n <Box sx={{ bgcolor: 'background.paper' }} className=\"w-full p-20 mt-16 rounded-lg shadow-1\">\n <div className=\"min-w-0\">{children}</div>\n </Box>\n );\n }\n\n return (\n <Box\n component=\"form\"\n sx={{ bgcolor: 'background.paper' }}\n className=\"w-full p-20 mt-16 rounded-lg shadow-1\"\n onSubmit={(event) => {\n event.preventDefault();\n onSubmit?.();\n }}\n onReset={(event) => {\n event.preventDefault();\n onReset?.();\n }}\n >\n <div className=\"flex items-start justify-between gap-12\">\n {(hasTitle || hasChildren) && (\n <div className=\"flex min-w-0 flex-1 flex-col items-start gap-12 text-left md:flex-row md:items-center\">\n {hasTitle && <div className=\"shrink-0 whitespace-nowrap\">{title}</div>}\n {hasChildren && (\n <Box\n className=\"flex w-full min-w-0 flex-wrap content-start items-center gap-12 md:w-auto md:flex-1\"\n sx={searchFilterFieldsSx}\n >\n {children}\n </Box>\n )}\n </div>\n )}\n <div\n className={clsx(\n 'flex flex-shrink-0 flex-col items-end justify-start gap-y-12',\n isWideScreen ? 'self-center' : 'self-start',\n )}\n >\n <div className=\"flex flex-shrink-0 gap-x-12\">\n <Button type=\"submit\" variant=\"outlined\" startIcon={<SearchIcon />}>\n {t('Button.검색')}\n </Button>\n <Button type=\"reset\" variant=\"outlined\" startIcon={<RestartAltIcon />}>\n {t('Button.초기화')}\n </Button>\n </div>\n {hasActions && <div className=\"flex max-w-full flex-wrap justify-end gap-12\">{actions}</div>}\n </div>\n </div>\n </Box>\n );\n};\n\nexport { OwpSearchFilter };\n"],"names":["SEARCH_FILTER_HELPER_TEXT_RESERVED_SPACE","searchFilterFieldsSx","OwpSearchFilter","__name","title","children","actions","onSubmit","onReset","skeleton","t","useOwpTranslation","isWideScreen","useThemeMediaQuery","theme","hasTitle","hasChildren","hasActions","jsx","Box","event","jsxs","clsx","Button","SearchIcon","RestartAltIcon"],"mappings":";;;;;;;;;AAiBA,MAAMA,IAA2C,8BAG3CC,IAAuB;AAAA,EAC3B,6CAA6C;AAAA,IAC3C,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQD;AAAA,EAAA;AAAA,EAEV,0EAA0E;AAAA,IACxE,SAAS;AAAA,EAAA;AAEb,GAWME,IAAkB,gBAAAC,EAAA,CAAC;AAAA,EACvB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC,IAAW;AACb,MAA4B;AAC1B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAeC,EAAmB,CAACC,MAAUA,EAAM,YAAY,GAAG,IAAI,CAAC,GACvEC,IAAkCX,KAAU,QAAQA,MAAU,IAC9DY,IAAwCX,KAAa,QAAQA,MAAa,IAC1EY,IAAsCX,KAAY,QAAQA,MAAY;AAE5E,SAAIG,IAEA,gBAAAS,EAACC,GAAA,EAAI,IAAI,EAAE,SAAS,mBAAA,GAAsB,WAAU,yCAClD,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,WAAW,UAAAb,GAAS,GACrC,IAKF,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,IAAI,EAAE,SAAS,mBAAA;AAAA,MACf,WAAU;AAAA,MACV,UAAU,gBAAAhB,EAAA,CAACiB,MAAU;AACnB,QAAAA,EAAM,eAAA,GACNb,KAAA,QAAAA;AAAA,MACF,GAHU;AAAA,MAIV,SAAS,gBAAAJ,EAAA,CAACiB,MAAU;AAClB,QAAAA,EAAM,eAAA,GACNZ,KAAA,QAAAA;AAAA,MACF,GAHS;AAAA,MAKT,UAAA,gBAAAa,EAAC,OAAA,EAAI,WAAU,2CACX,UAAA;AAAA,SAAAN,KAAYC,MACZ,gBAAAK,EAAC,OAAA,EAAI,WAAU,yFACZ,UAAA;AAAA,UAAAN,KAAY,gBAAAG,EAAC,OAAA,EAAI,WAAU,8BAA8B,UAAAd,GAAM;AAAA,UAC/DY,KACC,gBAAAE;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IAAIlB;AAAA,cAEH,UAAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,GAEJ;AAAA,QAEF,gBAAAgB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACAV,IAAe,gBAAgB;AAAA,YAAA;AAAA,YAGjC,UAAA;AAAA,cAAA,gBAAAS,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA;AAAA,gBAAA,gBAAAH,EAACK,GAAA,EAAO,MAAK,UAAS,SAAQ,YAAW,WAAW,gBAAAL,EAACM,GAAA,CAAA,CAAW,GAC7D,UAAAd,EAAE,WAAW,GAChB;AAAA,gBACA,gBAAAQ,EAACK,GAAA,EAAO,MAAK,SAAQ,SAAQ,YAAW,WAAW,gBAAAL,EAACO,GAAA,CAAA,CAAe,GAChE,UAAAf,EAAE,YAAY,EAAA,CACjB;AAAA,cAAA,GACF;AAAA,cACCO,KAAc,gBAAAC,EAAC,OAAA,EAAI,WAAU,gDAAgD,UAAAZ,EAAA,CAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACxF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN,GArEwB;"}
|
|
1
|
+
{"version":3,"file":"OwpSearchFilter.js","sources":["../../../src/components/OwpSearchFilter/OwpSearchFilter.tsx"],"sourcesContent":["import { useThemeMediaQuery } from '@/hooks/internal/useThemeMediaQuery';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport RestartAltIcon from '@mui/icons-material/RestartAlt';\nimport SearchIcon from '@mui/icons-material/Search';\nimport { Box, Button } from '@mui/material';\nimport clsx from 'clsx';\nimport type { ReactNode } from 'react';\n\ninterface OwpSearchFilterProps {\n title?: ReactNode | string;\n children?: ReactNode;\n actions?: ReactNode;\n onSubmit?: () => void;\n onReset?: () => void;\n skeleton?: boolean;\n}\n\nconst SEARCH_FILTER_HELPER_TEXT_RESERVED_SPACE = 'calc(0.75rem * 1.66 + 3px)';\n\n/** 검색 필터 helper text 보정 */\nconst searchFilterFieldsSx = {\n '&:has(.MuiFormHelperText-root) > *::after': {\n content: '\"\"',\n display: 'block',\n height: SEARCH_FILTER_HELPER_TEXT_RESERVED_SPACE,\n },\n '&:has(.MuiFormHelperText-root) > *:has(.MuiFormHelperText-root)::after': {\n display: 'none',\n },\n} as const;\n\n/**\n * OwpSearchFilter 컴포넌트\n * @param title 제목\n * @param children 하위 콘텐츠\n * @param actions 액션 영역\n * @param onSubmit 제출 핸들러\n * @param onReset 초기화 핸들러\n * @param skeleton 스켈레톤 모드 여부\n */\nconst OwpSearchFilter = ({\n title,\n children,\n actions,\n onSubmit,\n onReset,\n skeleton = false,\n}: OwpSearchFilterProps) => {\n const { t } = useOwpTranslation();\n const isWideScreen = useThemeMediaQuery((theme) => theme.breakpoints.up(1600));\n const hasTitle = title !== undefined && title !== null && title !== '';\n const hasChildren = children !== undefined && children !== null && children !== '';\n const hasActions = actions !== undefined && actions !== null && actions !== '';\n\n if (skeleton) {\n return (\n <Box sx={{ bgcolor: 'background.paper' }} className=\"w-full p-20 mt-16 rounded-lg shadow-1\">\n <div className=\"min-w-0\">{children}</div>\n </Box>\n );\n }\n\n return (\n <Box\n component=\"form\"\n sx={{ bgcolor: 'background.paper' }}\n className=\"w-full p-20 mt-16 rounded-lg shadow-1\"\n onSubmit={(event) => {\n event.preventDefault();\n onSubmit?.();\n }}\n onReset={(event) => {\n event.preventDefault();\n onReset?.();\n }}\n >\n <div className=\"flex items-start justify-between gap-12\">\n {(hasTitle || hasChildren) && (\n <div className=\"flex min-w-0 flex-1 flex-col items-start gap-12 text-left md:flex-row md:items-center\">\n {hasTitle && <div className=\"shrink-0 whitespace-nowrap\">{title}</div>}\n {hasChildren && (\n <Box\n className=\"flex w-full min-w-0 flex-wrap content-start items-center gap-12 md:w-auto md:flex-1\"\n sx={searchFilterFieldsSx}\n >\n {children}\n </Box>\n )}\n </div>\n )}\n <div\n className={clsx(\n 'flex flex-shrink-0 flex-col items-end justify-start gap-y-12',\n isWideScreen ? 'self-center' : 'self-start',\n )}\n >\n <div className=\"flex flex-shrink-0 gap-x-12\">\n <Button type=\"submit\" variant=\"outlined\" startIcon={<SearchIcon />}>\n {t('Button.검색')}\n </Button>\n <Button type=\"reset\" variant=\"outlined\" startIcon={<RestartAltIcon />}>\n {t('Button.초기화')}\n </Button>\n </div>\n {hasActions && <div className=\"flex max-w-full flex-wrap justify-end gap-12\">{actions}</div>}\n </div>\n </div>\n </Box>\n );\n};\n\nexport { OwpSearchFilter };\n"],"names":["SEARCH_FILTER_HELPER_TEXT_RESERVED_SPACE","searchFilterFieldsSx","OwpSearchFilter","__name","title","children","actions","onSubmit","onReset","skeleton","t","useOwpTranslation","isWideScreen","useThemeMediaQuery","theme","hasTitle","hasChildren","hasActions","jsx","Box","event","jsxs","clsx","Button","SearchIcon","RestartAltIcon"],"mappings":";;;;;;;;;AAiBA,MAAMA,IAA2C,8BAG3CC,IAAuB;AAAA,EAC3B,6CAA6C;AAAA,IAC3C,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQD;AAAA,EAAA;AAAA,EAEV,0EAA0E;AAAA,IACxE,SAAS;AAAA,EAAA;AAEb,GAWME,IAAkB,gBAAAC,EAAA,CAAC;AAAA,EACvB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC,IAAW;AACb,MAA4B;AAC1B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAeC,EAAmB,CAACC,MAAUA,EAAM,YAAY,GAAG,IAAI,CAAC,GACvEC,IAAkCX,KAAU,QAAQA,MAAU,IAC9DY,IAAwCX,KAAa,QAAQA,MAAa,IAC1EY,IAAsCX,KAAY,QAAQA,MAAY;AAE5E,SAAIG,IAEA,gBAAAS,EAACC,GAAA,EAAI,IAAI,EAAE,SAAS,mBAAA,GAAsB,WAAU,yCAClD,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,WAAW,UAAAb,GAAS,GACrC,IAKF,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,IAAI,EAAE,SAAS,mBAAA;AAAA,MACf,WAAU;AAAA,MACV,UAAU,gBAAAhB,EAAA,CAACiB,MAAU;AACnB,QAAAA,EAAM,eAAA,GACNb,KAAA,QAAAA;AAAA,MACF,GAHU;AAAA,MAIV,SAAS,gBAAAJ,EAAA,CAACiB,MAAU;AAClB,QAAAA,EAAM,eAAA,GACNZ,KAAA,QAAAA;AAAA,MACF,GAHS;AAAA,MAKT,UAAA,gBAAAa,EAAC,OAAA,EAAI,WAAU,2CACX,UAAA;AAAA,SAAAN,KAAYC,MACZ,gBAAAK,EAAC,OAAA,EAAI,WAAU,yFACZ,UAAA;AAAA,UAAAN,KAAY,gBAAAG,EAAC,OAAA,EAAI,WAAU,8BAA8B,UAAAd,GAAM;AAAA,UAC/DY,KACC,gBAAAE;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IAAIlB;AAAA,cAEH,UAAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,GAEJ;AAAA,QAEF,gBAAAgB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACAV,IAAe,gBAAgB;AAAA,YAAA;AAAA,YAGjC,UAAA;AAAA,cAAA,gBAAAS,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA;AAAA,gBAAA,gBAAAH,EAACK,GAAA,EAAO,MAAK,UAAS,SAAQ,YAAW,WAAW,gBAAAL,EAACM,GAAA,CAAA,CAAW,GAC7D,UAAAd,EAAE,WAAW,GAChB;AAAA,gBACA,gBAAAQ,EAACK,GAAA,EAAO,MAAK,SAAQ,SAAQ,YAAW,WAAW,gBAAAL,EAACO,GAAA,CAAA,CAAe,GAChE,UAAAf,EAAE,YAAY,EAAA,CACjB;AAAA,cAAA,GACF;AAAA,cACCO,KAAc,gBAAAC,EAAC,OAAA,EAAI,WAAU,gDAAgD,UAAAZ,EAAA,CAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACxF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN,GArEwB;"}
|
|
@@ -3,7 +3,7 @@ var t = (l, r) => H(l, "name", { value: r, configurable: !0 });
|
|
|
3
3
|
import { jsxs as n, 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
4
|
import V from "../../node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/Fitbit.js";
|
|
5
5
|
import { CircularProgress as W, Divider as _ } from "@mui/material";
|
|
6
|
-
import { useHeaderWrapState as z } from "../../hooks/useHeaderWrapState.js";
|
|
6
|
+
import { useHeaderWrapState as z } from "../../hooks/internal/useHeaderWrapState.js";
|
|
7
7
|
import { useMinimumVisibleState as F } from "../../hooks/internal/useMinimumVisibleState.js";
|
|
8
8
|
import { clsx as s } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
9
9
|
const g = /* @__PURE__ */ t((l) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpSection.js","sources":["../../../src/components/OwpSection/OwpSection.tsx"],"sourcesContent":["import FitbitIcon from '@mui/icons-material/Fitbit';\nimport { CircularProgress, Divider, type IconProps } from '@mui/material';\nimport { useHeaderWrapState } from '@/hooks/useHeaderWrapState';\nimport { useMinimumVisibleState } from '@/hooks/internal/useMinimumVisibleState';\nimport clsx from 'clsx';\nimport type { HTMLAttributes, ReactNode } from 'react';\n\n/**\n * 제목 아이콘 크기\n * @param iconSize MUI 아이콘 크기\n */\nconst getTitleIconSize = (iconSize?: IconProps['fontSize']) => {\n switch (iconSize) {\n case 'inherit':\n return '1em';\n case 'small':\n return '1.25rem';\n case 'large':\n return '2.1875rem';\n case 'medium':\n return '1.5rem';\n default:\n return 24;\n }\n};\n\ninterface OwpSectionProps {\n className?: string;\n headerProps?: HTMLAttributes<HTMLDivElement>;\n titleContainerClassName?: string;\n titleIconClassName?: string;\n titleTextClassName?: string;\n disableTitleIcon?: boolean;\n title?: ReactNode;\n actions?: ReactNode;\n leftSlot?: ReactNode;\n centerSlot?: ReactNode;\n children?: ReactNode;\n iconSize?: IconProps['fontSize'];\n loading?: boolean;\n showDivider?: boolean;\n}\n\n/**\n * OwpSection 컴포넌트\n * @param className CSS 클래스명\n * @param title 제목\n * @param disableTitleIcon disableTitleIcon 값\n * @param headerProps headerProps props\n * @param titleContainerClassName 제목 영역 CSS 클래스명\n * @param titleIconClassName 제목 아이콘 CSS 클래스명\n * @param titleTextClassName 제목 텍스트 CSS 클래스명\n * @param leftSlot leftSlot 값\n * @param centerSlot centerSlot 값\n * @param actions 액션 영역\n * @param loading 로딩 상태\n * @param showDivider 구분선 표시 여부\n */\nconst OwpSection = ({\n className,\n title,\n disableTitleIcon,\n headerProps,\n titleContainerClassName,\n titleIconClassName,\n titleTextClassName,\n actions,\n leftSlot,\n centerSlot,\n children,\n iconSize,\n loading,\n showDivider = false,\n}: OwpSectionProps) => {\n const hasTitle = title !== undefined && title !== null && title !== '';\n const hasSlots = Boolean(leftSlot || centerSlot);\n const isLoadingVisible = useMinimumVisibleState(loading);\n const { containerRef, titleRef, slotsRef, actionsRef, isWrapped } = useHeaderWrapState([\n title,\n leftSlot,\n centerSlot,\n actions,\n disableTitleIcon,\n iconSize,\n isLoadingVisible,\n titleContainerClassName,\n titleIconClassName,\n titleTextClassName,\n ]);\n const shouldRenderHeader = Boolean(hasTitle || actions || leftSlot || centerSlot);\n\n return (\n <div className={clsx('OwpSection-root flex h-full w-full flex-col', className)}>\n {shouldRenderHeader && (\n <div className={clsx('OwpSection-header min-h-36 w-full', !showDivider && 'mb-12')}>\n <div\n ref={containerRef}\n {...headerProps}\n className={clsx(\n 'min-h-36 w-full',\n isWrapped\n ? 'flex flex-col gap-8'\n : 'grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-x-8 gap-y-8',\n headerProps?.className,\n )}\n >\n {hasTitle && (\n <div\n ref={titleRef}\n className={clsx(\n 'flex shrink-0 items-center gap-8 whitespace-nowrap',\n isWrapped ? 'order-1 self-start' : 'col-start-1',\n titleContainerClassName,\n )}\n >\n {!disableTitleIcon &&\n (isLoadingVisible ? (\n <CircularProgress\n className={clsx('shrink-0', titleIconClassName)}\n size={getTitleIconSize(iconSize)}\n sx={{ color: 'secondary.main' }}\n />\n ) : (\n <FitbitIcon\n className={clsx('shrink-0', titleIconClassName)}\n sx={{ fontSize: getTitleIconSize(iconSize), color: 'secondary.main' }}\n />\n ))}\n <div\n className={clsx(\n 'shrink-0 whitespace-nowrap text-2xl font-medium',\n titleTextClassName,\n )}\n >\n {title}\n </div>\n </div>\n )}\n {hasSlots && (\n <div\n ref={slotsRef}\n className={clsx(\n 'flex max-w-full',\n isWrapped ? 'order-2 self-end justify-end' : 'col-start-2 justify-self-center',\n )}\n >\n <div\n className={clsx(\n 'flex max-w-full items-center gap-8',\n isWrapped ? 'flex-wrap justify-end' : 'flex-nowrap justify-center',\n )}\n >\n {leftSlot && <div className=\"max-w-full\">{leftSlot}</div>}\n {centerSlot && <div className=\"max-w-full\">{centerSlot}</div>}\n </div>\n </div>\n )}\n {actions && (\n <div\n ref={actionsRef}\n className={clsx(\n 'flex max-w-full justify-end',\n isWrapped ? 'order-3 self-end' : 'col-start-3 justify-self-end',\n )}\n >\n <div className=\"flex max-w-full flex-wrap items-center gap-8\">{actions}</div>\n </div>\n )}\n </div>\n {showDivider && <Divider className=\"my-12\" />}\n </div>\n )}\n <div className=\"OwpSection-body flex min-h-0 flex-1 flex-col\">{children}</div>\n </div>\n );\n};\n\nexport { OwpSection };\n"],"names":["getTitleIconSize","__name","iconSize","OwpSection","className","title","disableTitleIcon","headerProps","titleContainerClassName","titleIconClassName","titleTextClassName","actions","leftSlot","centerSlot","children","loading","showDivider","hasTitle","hasSlots","isLoadingVisible","useMinimumVisibleState","containerRef","titleRef","slotsRef","actionsRef","isWrapped","useHeaderWrapState","shouldRenderHeader","clsx","jsxs","jsx","CircularProgress","FitbitIcon","Divider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OwpSection.js","sources":["../../../src/components/OwpSection/OwpSection.tsx"],"sourcesContent":["import FitbitIcon from '@mui/icons-material/Fitbit';\nimport { CircularProgress, Divider, type IconProps } from '@mui/material';\nimport { useHeaderWrapState } from '@/hooks/internal/useHeaderWrapState';\nimport { useMinimumVisibleState } from '@/hooks/internal/useMinimumVisibleState';\nimport clsx from 'clsx';\nimport type { HTMLAttributes, ReactNode } from 'react';\n\n/**\n * 제목 아이콘 크기\n * @param iconSize MUI 아이콘 크기\n */\nconst getTitleIconSize = (iconSize?: IconProps['fontSize']) => {\n switch (iconSize) {\n case 'inherit':\n return '1em';\n case 'small':\n return '1.25rem';\n case 'large':\n return '2.1875rem';\n case 'medium':\n return '1.5rem';\n default:\n return 24;\n }\n};\n\ninterface OwpSectionProps {\n className?: string;\n headerProps?: HTMLAttributes<HTMLDivElement>;\n titleContainerClassName?: string;\n titleIconClassName?: string;\n titleTextClassName?: string;\n disableTitleIcon?: boolean;\n title?: ReactNode;\n actions?: ReactNode;\n leftSlot?: ReactNode;\n centerSlot?: ReactNode;\n children?: ReactNode;\n iconSize?: IconProps['fontSize'];\n loading?: boolean;\n showDivider?: boolean;\n}\n\n/**\n * OwpSection 컴포넌트\n * @param className CSS 클래스명\n * @param title 제목\n * @param disableTitleIcon disableTitleIcon 값\n * @param headerProps headerProps props\n * @param titleContainerClassName 제목 영역 CSS 클래스명\n * @param titleIconClassName 제목 아이콘 CSS 클래스명\n * @param titleTextClassName 제목 텍스트 CSS 클래스명\n * @param leftSlot leftSlot 값\n * @param centerSlot centerSlot 값\n * @param actions 액션 영역\n * @param loading 로딩 상태\n * @param showDivider 구분선 표시 여부\n */\nconst OwpSection = ({\n className,\n title,\n disableTitleIcon,\n headerProps,\n titleContainerClassName,\n titleIconClassName,\n titleTextClassName,\n actions,\n leftSlot,\n centerSlot,\n children,\n iconSize,\n loading,\n showDivider = false,\n}: OwpSectionProps) => {\n const hasTitle = title !== undefined && title !== null && title !== '';\n const hasSlots = Boolean(leftSlot || centerSlot);\n const isLoadingVisible = useMinimumVisibleState(loading);\n const { containerRef, titleRef, slotsRef, actionsRef, isWrapped } = useHeaderWrapState([\n title,\n leftSlot,\n centerSlot,\n actions,\n disableTitleIcon,\n iconSize,\n isLoadingVisible,\n titleContainerClassName,\n titleIconClassName,\n titleTextClassName,\n ]);\n const shouldRenderHeader = Boolean(hasTitle || actions || leftSlot || centerSlot);\n\n return (\n <div className={clsx('OwpSection-root flex h-full w-full flex-col', className)}>\n {shouldRenderHeader && (\n <div className={clsx('OwpSection-header min-h-36 w-full', !showDivider && 'mb-12')}>\n <div\n ref={containerRef}\n {...headerProps}\n className={clsx(\n 'min-h-36 w-full',\n isWrapped\n ? 'flex flex-col gap-8'\n : 'grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-x-8 gap-y-8',\n headerProps?.className,\n )}\n >\n {hasTitle && (\n <div\n ref={titleRef}\n className={clsx(\n 'flex shrink-0 items-center gap-8 whitespace-nowrap',\n isWrapped ? 'order-1 self-start' : 'col-start-1',\n titleContainerClassName,\n )}\n >\n {!disableTitleIcon &&\n (isLoadingVisible ? (\n <CircularProgress\n className={clsx('shrink-0', titleIconClassName)}\n size={getTitleIconSize(iconSize)}\n sx={{ color: 'secondary.main' }}\n />\n ) : (\n <FitbitIcon\n className={clsx('shrink-0', titleIconClassName)}\n sx={{ fontSize: getTitleIconSize(iconSize), color: 'secondary.main' }}\n />\n ))}\n <div\n className={clsx(\n 'shrink-0 whitespace-nowrap text-2xl font-medium',\n titleTextClassName,\n )}\n >\n {title}\n </div>\n </div>\n )}\n {hasSlots && (\n <div\n ref={slotsRef}\n className={clsx(\n 'flex max-w-full',\n isWrapped ? 'order-2 self-end justify-end' : 'col-start-2 justify-self-center',\n )}\n >\n <div\n className={clsx(\n 'flex max-w-full items-center gap-8',\n isWrapped ? 'flex-wrap justify-end' : 'flex-nowrap justify-center',\n )}\n >\n {leftSlot && <div className=\"max-w-full\">{leftSlot}</div>}\n {centerSlot && <div className=\"max-w-full\">{centerSlot}</div>}\n </div>\n </div>\n )}\n {actions && (\n <div\n ref={actionsRef}\n className={clsx(\n 'flex max-w-full justify-end',\n isWrapped ? 'order-3 self-end' : 'col-start-3 justify-self-end',\n )}\n >\n <div className=\"flex max-w-full flex-wrap items-center gap-8\">{actions}</div>\n </div>\n )}\n </div>\n {showDivider && <Divider className=\"my-12\" />}\n </div>\n )}\n <div className=\"OwpSection-body flex min-h-0 flex-1 flex-col\">{children}</div>\n </div>\n );\n};\n\nexport { OwpSection };\n"],"names":["getTitleIconSize","__name","iconSize","OwpSection","className","title","disableTitleIcon","headerProps","titleContainerClassName","titleIconClassName","titleTextClassName","actions","leftSlot","centerSlot","children","loading","showDivider","hasTitle","hasSlots","isLoadingVisible","useMinimumVisibleState","containerRef","titleRef","slotsRef","actionsRef","isWrapped","useHeaderWrapState","shouldRenderHeader","clsx","jsxs","jsx","CircularProgress","FitbitIcon","Divider"],"mappings":"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"}
|