@owp/core 2.5.20 → 2.5.22
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/dayjs.d.ts +4 -0
- package/dayjs.js +2 -0
- package/dist/_virtual/isBetween.js +8 -0
- package/dist/_virtual/isBetween.js.map +1 -0
- package/dist/_virtual/isBetween2.js +5 -0
- package/dist/_virtual/isBetween2.js.map +1 -0
- package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +26 -26
- package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -1
- package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js +29 -29
- package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js.map +1 -1
- package/dist/components/OwpMrtTable/OwpMrtTable.js +144 -141
- package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
- package/dist/components/OwpOptionSelector/OwpOptionSelector.js +20 -20
- package/dist/components/OwpOptionSelector/OwpOptionSelector.js.map +1 -1
- package/dist/components/OwpPageContent/OwpPageContent.js +20 -19
- package/dist/components/OwpPageContent/OwpPageContent.js.map +1 -1
- package/dist/components/OwpPicker/OwpDatePicker.js +216 -235
- package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpDateRangePicker.js +21 -21
- package/dist/components/OwpPicker/OwpDateRangePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpTimePicker.js +310 -340
- package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpWeekDatePicker.js +28 -29
- package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpYearRangePicker.js +1 -1
- package/dist/components/OwpPicker/OwpYearRangePicker.js.map +1 -1
- package/dist/components/OwpPicker/constants/index.js +21 -6
- package/dist/components/OwpPicker/constants/index.js.map +1 -1
- package/dist/components/OwpPicker/internal/DatePickerInput.js +5 -5
- package/dist/components/OwpPicker/internal/DatePickerInput.js.map +1 -1
- package/dist/components/OwpPicker/utils/index.js +22 -0
- package/dist/components/OwpPicker/utils/index.js.map +1 -0
- package/dist/components/OwpQuerySelector/OwpQuerySelector.js +218 -205
- package/dist/components/OwpQuerySelector/OwpQuerySelector.js.map +1 -1
- package/dist/components/OwpSection/OwpSection.js +118 -111
- package/dist/components/OwpSection/OwpSection.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +59 -59
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +88 -85
- package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
- package/dist/components/OwpSelectorBase/hooks/useOwpSelectorBase.js +93 -93
- package/dist/components/OwpSelectorBase/hooks/useOwpSelectorBase.js.map +1 -1
- package/dist/components/OwpTable/OwpDataTable.js +329 -317
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpFieldTable.js +77 -74
- package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +66 -219
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/OwpTableBase.js +195 -0
- package/dist/components/OwpTable/internal/OwpTableBase.js.map +1 -0
- package/dist/components/OwpTable/internal/OwpTableTotalCount.js +23 -0
- package/dist/components/OwpTable/internal/OwpTableTotalCount.js.map +1 -0
- package/dist/components/OwpTable/internal/defaultTableStyle.js +10 -10
- package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
- package/dist/components/OwpTable/utils/tableSx.js +9 -0
- package/dist/components/OwpTable/utils/tableSx.js.map +1 -0
- package/dist/components/OwpTextField/OwpTextMaskField.js +95 -86
- package/dist/components/OwpTextField/OwpTextMaskField.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +164 -179
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +10 -10
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
- package/dist/components/OwpYesNoSelector/OwpYesNoSelector.js.map +1 -1
- package/dist/dayjs.js +18 -0
- package/dist/dayjs.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewCanvas.js +22 -22
- package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
- package/dist/features/themePreview/configs/table.js +4 -4
- package/dist/features/themePreview/configs/table.js.map +1 -1
- package/dist/features/themePreview/hooks/useThemePreview.js +16 -16
- package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
- package/dist/hooks/{useInitCommonCodes.js → internal/useInitCommonCodes.js} +6 -6
- package/dist/hooks/internal/useInitCommonCodes.js.map +1 -0
- package/dist/hooks/internal/useMinimumVisibleState.js +31 -0
- package/dist/hooks/internal/useMinimumVisibleState.js.map +1 -0
- package/dist/hooks/useInitApp.js +17 -14
- package/dist/hooks/useInitApp.js.map +1 -1
- package/dist/hooks.js +49 -51
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +91 -94
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/isBetween.js +23 -0
- package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/isBetween.js.map +1 -0
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
- package/dist/types/components/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +3 -3
- package/dist/types/components/OwpCommonCode/OwpCommonCodeSelector.d.ts +3 -3
- package/dist/types/components/OwpMrtTable/OwpMrtTable.d.ts +1 -0
- package/dist/types/components/OwpOptionSelector/OwpOptionSelector.d.ts +2 -2
- package/dist/types/components/OwpPicker/OwpDatePicker.d.ts +1 -1
- package/dist/types/components/OwpPicker/OwpTimePicker.d.ts +2 -2
- package/dist/types/components/OwpPicker/constants/index.d.ts +15 -0
- package/dist/types/components/OwpPicker/utils/index.d.ts +6 -0
- package/dist/types/components/OwpQuerySelector/OwpQuerySelector.d.ts +1 -1
- package/dist/types/components/OwpQuerySelector/types/types.d.ts +1 -0
- package/dist/types/components/OwpSection/OwpSection.d.ts +9 -3
- package/dist/types/components/OwpSelectorBase/hooks/useOwpSelectorBase.d.ts +1 -1
- package/dist/types/components/OwpSelectorBase/types/types.d.ts +1 -1
- package/dist/types/components/OwpTable/OwpDataTable.d.ts +5 -1
- package/dist/types/components/OwpTable/OwpFieldTable.d.ts +7 -1
- package/dist/types/components/OwpTable/OwpTable.d.ts +6 -38
- package/dist/types/components/OwpTable/internal/OwpTableBase.d.ts +34 -0
- package/dist/types/components/OwpTable/internal/OwpTableTotalCount.d.ts +9 -0
- package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +4 -2
- package/dist/types/components/OwpTable/utils/tableSx.d.ts +11 -0
- package/dist/types/components/OwpTextField/OwpTextMaskField.d.ts +3 -3
- package/dist/types/components/OwpYesNoSelector/OwpYesNoSelector.d.ts +1 -1
- package/dist/types/dayjs.d.ts +18 -0
- package/dist/types/hooks/index.d.ts +0 -1
- package/dist/types/hooks/internal/useMinimumVisibleState.d.ts +7 -0
- package/dist/types/utils/dayjsBrowser.d.ts +1 -7
- package/dist/types/utils/formatDateToYmd.d.ts +1 -1
- package/dist/utils/formatDateToYmd.js +3 -3
- package/dist/utils/formatDateToYmd.js.map +1 -1
- package/dist/utils/treeGridExportExcelUtil.js +1 -1
- package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
- package/dist/utils/zipUtil.js +3 -3
- package/dist/utils/zipUtil.js.map +1 -1
- package/package.json +3 -1
- package/dist/hooks/useInitCommonCodes.js.map +0 -1
- package/dist/utils/dayjsBrowser.js +0 -16
- package/dist/utils/dayjsBrowser.js.map +0 -1
- /package/dist/types/hooks/{useInitCommonCodes.d.ts → internal/useInitCommonCodes.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemePreviewCanvas.js","sources":["../../../../src/features/themePreview/components/ThemePreviewCanvas.tsx"],"sourcesContent":["import {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n snackbarVariantKeys,\n} from '@/features/themePreview/configs/snackbar';\nimport {\n defaultTableTheme,\n type ThemePreviewTableConfigType,\n} from '@/features/themePreview/configs/table';\nimport KeyboardArrowUpRoundedIcon from '@mui/icons-material/KeyboardArrowUpRounded';\nimport MenuRoundedIcon from '@mui/icons-material/MenuRounded';\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\nimport SearchIcon from '@mui/icons-material/Search';\nimport SpaceDashboardOutlinedIcon from '@mui/icons-material/SpaceDashboardOutlined';\nimport { ButtonBase, CircularProgress, Typography } from '@mui/material';\nimport { alpha, darken } from '@mui/material/styles';\nimport dayjs from 'dayjs';\nimport { merge } from 'es-toolkit/compat';\nimport { closeSnackbar, type SnackbarKey } from 'notistack';\nimport { Fragment, useDeferredValue, useEffect, useMemo, useRef } from 'react';\nimport type {\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n createThemePreviewVersionKey,\n getPaletteValue,\n getPreviewContrastColor,\n getPreviewSectionOrder,\n getThemePreviewStyleValue,\n gridPreviewBodyBackground,\n gridPreviewBodyText,\n navbarPreviewItems,\n previewChromeBorder,\n snackbarPreviewMessageByVariant,\n themePreviewEditableTreeGridId,\n themePreviewReadonlyTreeGridId,\n} from './themePreviewCanvas.shared';\nimport {\n ThemePreviewCommonSection,\n ThemePreviewButtonsSection,\n ThemePreviewGridPreviewTable,\n ThemePreviewGridSection,\n ThemePreviewSearchHeaderSection,\n ThemePreviewSnackbarsSection,\n ThemePreviewTablesSection,\n} from './ThemePreviewCanvasSections';\nimport { snackbarPreviewIconByVariant } from './themePreviewCanvas.icons';\n\ninterface ThemePreviewCanvasProps {\n activeSection: ThemePreviewSectionKey;\n isLoading?: boolean;\n settings: ThemePreviewSettings;\n}\n\ntype ThemePreviewHighlightTarget = 'main' | 'navbar' | 'toolbar';\n\nconst themePreviewHighlightColor = '#ff4d2d';\nconst themePreviewHighlightShadowColor = 'rgba(255, 77, 45, 0.14)';\n\nexport function ThemePreviewCanvas({\n activeSection,\n isLoading = false,\n settings,\n}: ThemePreviewCanvasProps) {\n const previewSnackbarKeysRef = useRef<SnackbarKey[]>([]);\n const deferredActiveSection = useDeferredValue(activeSection);\n const tablePreviewCanTableRadiusZero = false;\n const tableTheme = useMemo(\n () =>\n merge(\n {},\n defaultTableTheme,\n settings.theme.main.table as ThemePreviewTableConfigType | undefined,\n ) as ThemePreviewTableConfigType,\n [settings.theme.main.table],\n );\n\n const toolbarMode = settings.theme.toolbar.palette.mode;\n const toolbarBackground = getPaletteValue(settings, 'toolbar', 'background.default');\n const toolbarPaper = getPaletteValue(settings, 'toolbar', 'background.paper');\n const toolbarText = getPaletteValue(settings, 'toolbar', 'text.primary');\n const toolbarDivider = getPaletteValue(settings, 'toolbar', 'divider');\n const toolbarWhite = getPaletteValue(settings, 'toolbar', 'common.white');\n const toolbarBlack = getPaletteValue(settings, 'toolbar', 'common.black');\n const toolbarButtonBackground = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.78);\n const toolbarButtonBorder = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.1 : 0.62);\n const toolbarButtonHighlight = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.05 : 0.54);\n\n const navbarMode = settings.theme.navbar.palette.mode;\n const navbarBackground = getPaletteValue(settings, 'navbar', 'background.default');\n const navbarDivider = getPaletteValue(settings, 'navbar', 'divider') || previewChromeBorder;\n const navbarText = getPaletteValue(settings, 'navbar', 'text.primary');\n const navbarTextSecondary = getPaletteValue(settings, 'navbar', 'text.secondary');\n const navbarSecondary = getPaletteValue(settings, 'navbar', 'secondary.main');\n const navbarSecondaryDark =\n getPaletteValue(settings, 'navbar', 'secondary.dark') || navbarSecondary;\n const navbarHeaderForeground = getPreviewContrastColor(\n navbarBackground,\n navbarText || '#111827',\n );\n const navbarHeaderSecondary = alpha(navbarHeaderForeground, navbarMode === 'dark' ? 0.72 : 0.64);\n const navbarSurfaceButtonBackground = alpha(\n navbarSecondary,\n navbarMode === 'dark' ? 0.2 : 0.12,\n );\n const navbarSurfaceButtonBorder = alpha(navbarSecondary, navbarMode === 'dark' ? 0.42 : 0.28);\n const navbarSurfaceButtonHoverBackground = alpha(\n navbarSecondaryDark,\n navbarMode === 'dark' ? 0.22 : 0.14,\n );\n const navbarSurfaceButtonHoverBorder = alpha(\n navbarSecondaryDark,\n navbarMode === 'dark' ? 0.56 : 0.36,\n );\n const navbarHeaderIconColor = navbarSecondary;\n const navbarInactiveText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.72);\n const navbarActiveBackground = alpha(navbarSecondary, navbarMode === 'dark' ? 0.22 : 0.12);\n const navbarUserAvatarBackground = darken(navbarBackground, navbarMode === 'dark' ? 0.08 : 0.05);\n const navbarUserAvatarText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.62);\n\n const mainBackground = getPaletteValue(settings, 'main', 'background.default');\n const mainPaper = getPaletteValue(settings, 'main', 'background.paper');\n const mainText = getPaletteValue(settings, 'main', 'text.primary');\n const mainTextSecondary = getPaletteValue(settings, 'main', 'text.secondary');\n const mainSuccess = getPaletteValue(settings, 'main', 'success.main');\n const mainSuccessContrast = getPaletteValue(settings, 'main', 'success.contrastText');\n const mainInfo = getPaletteValue(settings, 'main', 'info.main');\n const mainInfoContrast = getPaletteValue(settings, 'main', 'info.contrastText');\n const mainWarning = getPaletteValue(settings, 'main', 'warning.main');\n const mainWarningContrast = getPaletteValue(settings, 'main', 'warning.contrastText');\n const mainError = getPaletteValue(settings, 'main', 'error.main');\n const mainErrorContrast = getPaletteValue(settings, 'main', 'error.contrastText');\n const mainGrid = settings.theme.main.grid;\n\n const gridThemePreviewVersionKey = createThemePreviewVersionKey(mainGrid);\n const tableThemePreviewVersionKey = createThemePreviewVersionKey(settings.theme.main.table);\n const searchHeaderPreviewVersionKey = createThemePreviewVersionKey({\n palette: settings.theme.main.palette ?? {},\n table: settings.theme.main.table ?? {},\n });\n\n const editableThemePreviewGridId = `${themePreviewEditableTreeGridId}-${gridThemePreviewVersionKey}`;\n const readonlyThemePreviewGridId = `${themePreviewReadonlyTreeGridId}-${gridThemePreviewVersionKey}`;\n const layoutPreviewGridHeaderBackground = '#586980';\n const layoutPreviewGridHeaderColor = '#ffffff';\n const layoutPreviewGridHeaderFontSize = '14px';\n const layoutPreviewGridCellFontSize = '13px';\n const layoutPreviewGridCellBackground =\n mainGrid?.body?.backgroundColor ?? gridPreviewBodyBackground;\n const layoutPreviewGridHeaderBorder = alpha(layoutPreviewGridHeaderColor, 0.22);\n const gridBodyBorder = alpha(gridPreviewBodyText, 0.14);\n\n const mainThemePreviewSettings = useMemo(\n () => ({\n ...settings,\n theme: {\n ...settings.theme,\n navbar: settings.theme.main,\n toolbar: settings.theme.main,\n },\n }),\n [settings],\n );\n const mainThemePreviewStoreKey = createThemePreviewVersionKey(\n mainThemePreviewSettings.theme.main,\n );\n const mainThemePreviewStoreState = useMemo(\n () =>\n ({\n owpSettings: {\n current: mainThemePreviewSettings,\n defaults: mainThemePreviewSettings,\n initial: mainThemePreviewSettings,\n },\n }) as const,\n [mainThemePreviewSettings],\n );\n\n const searchHeaderPreviewDate = dayjs().format('YYYY-MM-DD');\n const searchHeaderPreviewNumber = useMemo(\n () => `OWP-${searchHeaderPreviewDate.replace(/-/g, '')}-001`,\n [searchHeaderPreviewDate],\n );\n\n const previewSectionCardSx = useMemo(\n () => ({\n backgroundColor: mainPaper,\n border: `1px solid ${previewChromeBorder}`,\n }),\n [mainPaper],\n );\n const highlightTarget: ThemePreviewHighlightTarget =\n deferredActiveSection === 'navbar'\n ? 'navbar'\n : deferredActiveSection === 'toolbar'\n ? 'toolbar'\n : 'main';\n const isPreviewSectionPending = isLoading || deferredActiveSection !== activeSection;\n const toolbarPreviewButtonStyle = useMemo(\n () => ({\n backgroundColor: toolbarButtonBackground,\n borderColor: toolbarButtonBorder,\n boxShadow: `inset 0 1px 0 ${toolbarButtonHighlight}`,\n }),\n [toolbarButtonBackground, toolbarButtonBorder, toolbarButtonHighlight],\n );\n const navbarPreviewButtonSx = useMemo(\n () => ({\n backgroundColor: navbarSurfaceButtonBackground,\n borderColor: navbarSurfaceButtonBorder,\n color: navbarHeaderIconColor,\n transition: 'background-color 160ms ease, border-color 160ms ease, color 160ms ease',\n '&:hover, &:focus-visible, &:active': {\n backgroundColor: navbarSurfaceButtonHoverBackground,\n borderColor: navbarSurfaceButtonHoverBorder,\n color: navbarSecondaryDark,\n },\n }),\n [\n navbarHeaderIconColor,\n navbarSecondaryDark,\n navbarSurfaceButtonBackground,\n navbarSurfaceButtonBorder,\n navbarSurfaceButtonHoverBackground,\n navbarSurfaceButtonHoverBorder,\n ],\n );\n const buttonPreviewItems = useMemo(\n () =>\n [\n { label: 'info', color: mainInfo, contrastColor: mainInfoContrast },\n { label: 'warning', color: mainWarning, contrastColor: mainWarningContrast },\n { label: 'error', color: mainError, contrastColor: mainErrorContrast },\n { label: 'success', color: mainSuccess, contrastColor: mainSuccessContrast },\n ].map((item) => ({\n ...item,\n previewContrastColor:\n item.label === 'error' || item.label === 'success'\n ? getPreviewContrastColor(item.color, item.contrastColor)\n : item.contrastColor,\n })),\n [\n mainError,\n mainErrorContrast,\n mainInfo,\n mainInfoContrast,\n mainSuccess,\n mainSuccessContrast,\n mainWarning,\n mainWarningContrast,\n ],\n );\n\n const snackbarTheme = settings.snackbar ?? defaultSnackbarTheme;\n const snackbarProviderProps = useMemo(\n () => merge({}, defaultSnackbarProviderProps, settings.snackbarProviderProps),\n [settings.snackbarProviderProps],\n );\n const snackbarPreviewAnchorHorizontal =\n snackbarProviderProps.anchorOrigin?.horizontal ??\n defaultSnackbarProviderProps.anchorOrigin.horizontal;\n const snackbarPreviewAnchorVertical =\n snackbarProviderProps.anchorOrigin?.vertical ??\n defaultSnackbarProviderProps.anchorOrigin.vertical;\n const snackbarPreviewMaxSnack =\n snackbarProviderProps.maxSnack ?? defaultSnackbarProviderProps.maxSnack;\n const snackbarPreviewFontSize = getThemePreviewStyleValue(snackbarProviderProps.style?.fontSize);\n const snackbarPreviewLineHeight = getThemePreviewStyleValue(\n snackbarProviderProps.style?.lineHeight,\n );\n const snackbarPreviewItems = useMemo(\n () =>\n snackbarVariantKeys.map((variantKey) => {\n const snackbarVariantTheme = snackbarTheme[variantKey];\n\n return {\n actionHoverColor: alpha(\n snackbarVariantTheme.color,\n variantKey === 'default' ? 0.18 : 0.16,\n ),\n backgroundColor: snackbarVariantTheme.backgroundColor,\n color: snackbarVariantTheme.color,\n icon: snackbarPreviewIconByVariant[variantKey],\n key: variantKey,\n message: snackbarPreviewMessageByVariant[variantKey],\n };\n }),\n [snackbarTheme],\n );\n\n const orderedPreviewSectionKeys = useMemo(\n () => getPreviewSectionOrder(deferredActiveSection),\n [deferredActiveSection],\n );\n const previewSectionMountKeyBySection = useMemo(\n () =>\n ({\n common: mainThemePreviewStoreKey,\n buttons: createThemePreviewVersionKey({\n error: mainError,\n info: mainInfo,\n success: mainSuccess,\n warning: mainWarning,\n }),\n grid: `${mainThemePreviewStoreKey}-${gridThemePreviewVersionKey}`,\n searchHeader: searchHeaderPreviewVersionKey,\n snackbars: createThemePreviewVersionKey({\n provider: settings.snackbarProviderProps,\n snackbar: settings.snackbar,\n }),\n tables: tableThemePreviewVersionKey,\n }) as const,\n [\n gridThemePreviewVersionKey,\n mainError,\n mainInfo,\n mainSuccess,\n mainThemePreviewStoreKey,\n mainWarning,\n searchHeaderPreviewVersionKey,\n settings.snackbar,\n settings.snackbarProviderProps,\n tableThemePreviewVersionKey,\n ],\n );\n const gridPreviewTable = useMemo(\n () => (\n <ThemePreviewGridPreviewTable\n gridBodyBorder={gridBodyBorder}\n layoutPreviewGridCellBackground={layoutPreviewGridCellBackground}\n layoutPreviewGridCellFontSize={layoutPreviewGridCellFontSize}\n layoutPreviewGridHeaderBackground={layoutPreviewGridHeaderBackground}\n layoutPreviewGridHeaderBorder={layoutPreviewGridHeaderBorder}\n layoutPreviewGridHeaderColor={layoutPreviewGridHeaderColor}\n layoutPreviewGridHeaderFontSize={layoutPreviewGridHeaderFontSize}\n />\n ),\n [\n gridBodyBorder,\n layoutPreviewGridCellBackground,\n layoutPreviewGridCellFontSize,\n layoutPreviewGridHeaderBackground,\n layoutPreviewGridHeaderBorder,\n layoutPreviewGridHeaderColor,\n layoutPreviewGridHeaderFontSize,\n ],\n );\n\n useEffect(() => {\n return () => {\n previewSnackbarKeysRef.current.forEach((snackbarKey) => {\n closeSnackbar(snackbarKey);\n });\n previewSnackbarKeysRef.current = [];\n };\n }, []);\n\n const renderPreviewSection = (sectionKey: keyof typeof previewSectionMountKeyBySection) => {\n switch (sectionKey) {\n case 'common':\n return (\n <ThemePreviewCommonSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'buttons':\n return (\n <ThemePreviewButtonsSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'snackbars':\n return (\n <ThemePreviewSnackbarsSection\n previewSectionCardSx={previewSectionCardSx}\n previewSnackbarKeysRef={previewSnackbarKeysRef}\n snackbarAnchorOrigin={snackbarProviderProps.anchorOrigin}\n snackbarAutoHideDuration={snackbarProviderProps.autoHideDuration}\n snackbarPreviewAnchorHorizontal={snackbarPreviewAnchorHorizontal}\n snackbarPreviewAnchorVertical={snackbarPreviewAnchorVertical}\n snackbarPreviewFontSize={snackbarPreviewFontSize}\n snackbarPreviewItems={snackbarPreviewItems}\n snackbarPreviewLineHeight={snackbarPreviewLineHeight}\n snackbarPreviewMaxSnack={snackbarPreviewMaxSnack}\n />\n );\n case 'searchHeader':\n return (\n <ThemePreviewSearchHeaderSection\n activeSection={\n deferredActiveSection === 'navbar' || deferredActiveSection === 'toolbar'\n ? deferredActiveSection\n : 'main'\n }\n gridPreviewTable={gridPreviewTable}\n mainBackground={mainBackground}\n mainPaper={mainPaper}\n mainText={mainText}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n searchHeaderPreviewDate={searchHeaderPreviewDate}\n searchHeaderPreviewNumber={searchHeaderPreviewNumber}\n searchHeaderPreviewVersionKey={searchHeaderPreviewVersionKey}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n case 'grid':\n return (\n <ThemePreviewGridSection\n editableThemePreviewGridId={editableThemePreviewGridId}\n mainGridChangedBackgroundColor={mainGrid?.changed?.backgroundColor}\n mainThemePreviewStoreKey={mainThemePreviewStoreKey}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n readonlyThemePreviewGridId={readonlyThemePreviewGridId}\n />\n );\n case 'tables':\n return (\n <ThemePreviewTablesSection\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n default:\n return null;\n }\n };\n const renderHighlightOverlay = (target: ThemePreviewHighlightTarget, inset: number, radius = 0) =>\n highlightTarget === target ? (\n <div\n aria-hidden\n className=\"pointer-events-none absolute z-[2]\"\n style={{\n inset,\n border: `4px solid ${themePreviewHighlightColor}`,\n borderRadius: radius,\n boxShadow: `0 0 0 1px ${themePreviewHighlightShadowColor}`,\n }}\n />\n ) : null;\n\n return (\n <div className=\"flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden\">\n <div\n className=\"grid min-h-0 flex-1 grid-cols-[224px_minmax(0,1fr)] grid-rows-[76px_minmax(0,1fr)] overflow-hidden rounded-lg border border-solid\"\n style={{\n backgroundColor: mainBackground,\n borderColor: previewChromeBorder,\n }}\n >\n <div\n className=\"col-span-2 relative flex items-center justify-between px-20\"\n style={{\n backgroundColor: toolbarBackground,\n backgroundImage: `linear-gradient(180deg, ${toolbarBackground} 0%, ${toolbarPaper} 100%)`,\n borderBottom: `1px solid ${toolbarDivider}`,\n boxShadow: `inset 0 1px 0 ${alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.82)}, 0 4px 16px ${alpha(toolbarBlack, toolbarMode === 'dark' ? 0.18 : 0.05)}`,\n color: toolbarText,\n }}\n >\n {renderHighlightOverlay('toolbar', 0, 0)}\n <div className=\"flex items-center gap-12\">\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"flex items-center gap-2\"\n style={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.72 : 0.64),\n }}\n >\n <Typography variant=\"caption\">OWP</Typography>\n <NavigateNextIcon sx={{ fontSize: 18 }} />\n <Typography variant=\"caption\">Theme Preview</Typography>\n </div>\n <Typography variant=\"subtitle1\" fontWeight={700}>\n Toolbar\n </Typography>\n </div>\n </div>\n <div className=\"pointer-events-none absolute left-1/2 top-1/2 flex w-full max-w-[520px] -translate-x-1/2 -translate-y-1/2 justify-center px-12 text-center\">\n <Typography\n variant=\"body2\"\n sx={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.92 : 0.84),\n fontSize: 13,\n fontWeight: 700,\n }}\n >\n 로그인 화면 배경색은 Toolbar{' '}\n <NavigateNextIcon sx={{ mx: 0.25, fontSize: 18, verticalAlign: 'middle' }} />{' '}\n Background Default 색상을 따라갑니다.\n </Typography>\n </div>\n <div className=\"flex items-center gap-8\">\n {[SearchIcon, SpaceDashboardOutlinedIcon].map((IconComponent, index) => (\n <div\n key={`${index}`}\n className=\"flex h-32 w-32 items-center justify-center rounded-[10px] border border-solid\"\n style={toolbarPreviewButtonStyle}\n >\n <IconComponent sx={{ color: toolbarText, fontSize: 18 }} />\n </div>\n ))}\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col\"\n style={{\n backgroundColor: navbarBackground,\n borderRight: `1px solid ${navbarDivider}`,\n color: navbarText,\n }}\n >\n {renderHighlightOverlay('navbar', 0, 0)}\n <div\n className=\"flex items-center justify-between gap-8 px-16 py-14\"\n style={{\n borderBottom: `1px solid ${navbarDivider}`,\n }}\n >\n <div className=\"flex items-center gap-10\">\n <div className=\"flex flex-col gap-2\">\n <Typography\n variant=\"subtitle2\"\n fontWeight={700}\n sx={{\n color: navbarHeaderForeground,\n }}\n >\n Navbar\n </Typography>\n <Typography variant=\"caption\" sx={{ color: navbarHeaderSecondary }}>\n Navigation\n </Typography>\n </div>\n </div>\n <ButtonBase\n aria-label=\"navbar menu\"\n className=\"flex h-28 w-28 items-center justify-center rounded-[10px] border border-solid\"\n sx={navbarPreviewButtonSx}\n >\n <MenuRoundedIcon sx={{ color: 'inherit', fontSize: 16 }} />\n </ButtonBase>\n </div>\n\n <div className=\"flex flex-1 flex-col gap-4 px-10 py-10\">\n {navbarPreviewItems.map((label, index) => {\n const isActive = index === 1;\n\n return (\n <div\n key={label}\n className=\"rounded-lg px-12 py-10\"\n style={{\n backgroundColor: isActive ? navbarActiveBackground : 'transparent',\n color: isActive ? navbarSecondary : navbarInactiveText,\n }}\n >\n <Typography variant=\"body2\" fontWeight={isActive ? 700 : 500}>\n {label}\n </Typography>\n </div>\n );\n })}\n </div>\n\n <div\n className=\"px-12 py-12\"\n style={{\n borderTop: `1px solid ${navbarDivider}`,\n }}\n >\n <div\n className=\"flex min-h-[56px] items-center gap-12 rounded-lg px-8 py-8\"\n style={{ color: navbarText }}\n >\n <div\n className=\"flex h-36 w-36 shrink-0 items-center justify-center rounded-full\"\n style={{\n backgroundColor: navbarUserAvatarBackground,\n color: navbarUserAvatarText,\n }}\n >\n <Typography sx={{ fontSize: 18, fontWeight: 700, lineHeight: 1 }}>관</Typography>\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarText,\n fontSize: 16,\n fontWeight: 600,\n letterSpacing: '-0.01em',\n lineHeight: 1,\n }}\n >\n Impix\n </Typography>\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarInactiveText,\n fontSize: 14,\n fontWeight: 500,\n letterSpacing: '-0.02em',\n lineHeight: 1.05,\n }}\n >\n Owp/Admin\n </Typography>\n </div>\n <div className=\"flex shrink-0 items-center justify-center\" style={{ color: navbarText }}>\n <KeyboardArrowUpRoundedIcon sx={{ fontSize: 16 }} />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col gap-14 overflow-y-auto overflow-x-hidden p-14\"\n style={{\n backgroundColor: mainBackground,\n color: mainText,\n }}\n >\n {renderHighlightOverlay('main', 8)}\n {isPreviewSectionPending ? (\n <div\n className=\"absolute inset-14 z-10 flex items-center justify-center rounded-lg\"\n style={{\n backgroundColor: alpha(mainPaper, 0.88),\n border: `1px solid ${previewChromeBorder}`,\n }}\n >\n <div className=\"flex flex-col items-center gap-10\">\n <CircularProgress color=\"secondary\" size={34} thickness={4.5} />\n <Typography variant=\"body2\" color=\"text.secondary\" fontWeight={700}>\n 로딩 중...\n </Typography>\n </div>\n </div>\n ) : null}\n {orderedPreviewSectionKeys.map((sectionKey) => (\n <Fragment key={`${sectionKey}-${previewSectionMountKeyBySection[sectionKey]}`}>\n {renderPreviewSection(sectionKey)}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["themePreviewHighlightColor","themePreviewHighlightShadowColor","ThemePreviewCanvas","activeSection","isLoading","settings","previewSnackbarKeysRef","useRef","deferredActiveSection","useDeferredValue","tablePreviewCanTableRadiusZero","tableTheme","useMemo","merge","defaultTableTheme","toolbarMode","toolbarBackground","getPaletteValue","toolbarPaper","toolbarText","toolbarDivider","toolbarWhite","toolbarBlack","toolbarButtonBackground","alpha","toolbarButtonBorder","toolbarButtonHighlight","navbarMode","navbarBackground","navbarDivider","previewChromeBorder","navbarText","navbarTextSecondary","navbarSecondary","navbarSecondaryDark","navbarHeaderForeground","getPreviewContrastColor","navbarHeaderSecondary","navbarSurfaceButtonBackground","navbarSurfaceButtonBorder","navbarSurfaceButtonHoverBackground","navbarSurfaceButtonHoverBorder","navbarHeaderIconColor","navbarInactiveText","navbarActiveBackground","navbarUserAvatarBackground","darken","navbarUserAvatarText","mainBackground","mainPaper","mainText","mainTextSecondary","mainSuccess","mainSuccessContrast","mainInfo","mainInfoContrast","mainWarning","mainWarningContrast","mainError","mainErrorContrast","mainGrid","gridThemePreviewVersionKey","createThemePreviewVersionKey","tableThemePreviewVersionKey","searchHeaderPreviewVersionKey","editableThemePreviewGridId","themePreviewEditableTreeGridId","readonlyThemePreviewGridId","themePreviewReadonlyTreeGridId","layoutPreviewGridHeaderBackground","layoutPreviewGridHeaderColor","layoutPreviewGridHeaderFontSize","layoutPreviewGridCellFontSize","layoutPreviewGridCellBackground","_a","gridPreviewBodyBackground","layoutPreviewGridHeaderBorder","gridBodyBorder","gridPreviewBodyText","mainThemePreviewSettings","mainThemePreviewStoreKey","mainThemePreviewStoreState","searchHeaderPreviewDate","dayjs","searchHeaderPreviewNumber","previewSectionCardSx","highlightTarget","isPreviewSectionPending","toolbarPreviewButtonStyle","navbarPreviewButtonSx","buttonPreviewItems","item","snackbarTheme","defaultSnackbarTheme","snackbarProviderProps","defaultSnackbarProviderProps","snackbarPreviewAnchorHorizontal","_b","snackbarPreviewAnchorVertical","_c","snackbarPreviewMaxSnack","snackbarPreviewFontSize","getThemePreviewStyleValue","_d","snackbarPreviewLineHeight","_e","snackbarPreviewItems","snackbarVariantKeys","variantKey","snackbarVariantTheme","snackbarPreviewIconByVariant","snackbarPreviewMessageByVariant","orderedPreviewSectionKeys","getPreviewSectionOrder","previewSectionMountKeyBySection","gridPreviewTable","jsx","ThemePreviewGridPreviewTable","useEffect","snackbarKey","closeSnackbar","renderPreviewSection","__name","sectionKey","ThemePreviewCommonSection","ThemePreviewButtonsSection","ThemePreviewSnackbarsSection","ThemePreviewSearchHeaderSection","ThemePreviewGridSection","ThemePreviewTablesSection","renderHighlightOverlay","target","inset","radius","jsxs","Typography","NavigateNextIcon","SearchIcon","SpaceDashboardOutlinedIcon","IconComponent","index","ButtonBase","MenuRoundedIcon","label","isActive","KeyboardArrowUpRoundedIcon","CircularProgress","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThemePreviewCanvas.js","sources":["../../../../src/features/themePreview/components/ThemePreviewCanvas.tsx"],"sourcesContent":["import {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n snackbarVariantKeys,\n} from '@/features/themePreview/configs/snackbar';\nimport {\n defaultTableTheme,\n type ThemePreviewTableConfigType,\n} from '@/features/themePreview/configs/table';\nimport KeyboardArrowUpRoundedIcon from '@mui/icons-material/KeyboardArrowUpRounded';\nimport MenuRoundedIcon from '@mui/icons-material/MenuRounded';\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\nimport SearchIcon from '@mui/icons-material/Search';\nimport SpaceDashboardOutlinedIcon from '@mui/icons-material/SpaceDashboardOutlined';\nimport { ButtonBase, CircularProgress, Typography } from '@mui/material';\nimport { alpha, darken } from '@mui/material/styles';\nimport dayjs from '@/dayjs';\nimport { merge } from 'es-toolkit/compat';\nimport { closeSnackbar, type SnackbarKey } from 'notistack';\nimport { Fragment, useDeferredValue, useEffect, useMemo, useRef } from 'react';\nimport type {\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n createThemePreviewVersionKey,\n getPaletteValue,\n getPreviewContrastColor,\n getPreviewSectionOrder,\n getThemePreviewStyleValue,\n gridPreviewBodyBackground,\n gridPreviewBodyText,\n navbarPreviewItems,\n previewChromeBorder,\n snackbarPreviewMessageByVariant,\n themePreviewEditableTreeGridId,\n themePreviewReadonlyTreeGridId,\n} from './themePreviewCanvas.shared';\nimport {\n ThemePreviewCommonSection,\n ThemePreviewButtonsSection,\n ThemePreviewGridPreviewTable,\n ThemePreviewGridSection,\n ThemePreviewSearchHeaderSection,\n ThemePreviewSnackbarsSection,\n ThemePreviewTablesSection,\n} from './ThemePreviewCanvasSections';\nimport { snackbarPreviewIconByVariant } from './themePreviewCanvas.icons';\n\ninterface ThemePreviewCanvasProps {\n activeSection: ThemePreviewSectionKey;\n isLoading?: boolean;\n settings: ThemePreviewSettings;\n}\n\ntype ThemePreviewHighlightTarget = 'main' | 'navbar' | 'toolbar';\n\nconst themePreviewHighlightColor = '#ff4d2d';\nconst themePreviewHighlightShadowColor = 'rgba(255, 77, 45, 0.14)';\n\nexport function ThemePreviewCanvas({\n activeSection,\n isLoading = false,\n settings,\n}: ThemePreviewCanvasProps) {\n const previewSnackbarKeysRef = useRef<SnackbarKey[]>([]);\n const deferredActiveSection = useDeferredValue(activeSection);\n const tablePreviewCanTableRadiusZero = false;\n const tableTheme = useMemo(\n () =>\n merge(\n {},\n defaultTableTheme,\n settings.theme.main.table as ThemePreviewTableConfigType | undefined,\n ) as ThemePreviewTableConfigType,\n [settings.theme.main.table],\n );\n\n const toolbarMode = settings.theme.toolbar.palette.mode;\n const toolbarBackground = getPaletteValue(settings, 'toolbar', 'background.default');\n const toolbarPaper = getPaletteValue(settings, 'toolbar', 'background.paper');\n const toolbarText = getPaletteValue(settings, 'toolbar', 'text.primary');\n const toolbarDivider = getPaletteValue(settings, 'toolbar', 'divider');\n const toolbarWhite = getPaletteValue(settings, 'toolbar', 'common.white');\n const toolbarBlack = getPaletteValue(settings, 'toolbar', 'common.black');\n const toolbarButtonBackground = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.78);\n const toolbarButtonBorder = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.1 : 0.62);\n const toolbarButtonHighlight = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.05 : 0.54);\n\n const navbarMode = settings.theme.navbar.palette.mode;\n const navbarBackground = getPaletteValue(settings, 'navbar', 'background.default');\n const navbarDivider = getPaletteValue(settings, 'navbar', 'divider') || previewChromeBorder;\n const navbarText = getPaletteValue(settings, 'navbar', 'text.primary');\n const navbarTextSecondary = getPaletteValue(settings, 'navbar', 'text.secondary');\n const navbarSecondary = getPaletteValue(settings, 'navbar', 'secondary.main');\n const navbarSecondaryDark =\n getPaletteValue(settings, 'navbar', 'secondary.dark') || navbarSecondary;\n const navbarHeaderForeground = getPreviewContrastColor(\n navbarBackground,\n navbarText || '#111827',\n );\n const navbarHeaderSecondary = alpha(navbarHeaderForeground, navbarMode === 'dark' ? 0.72 : 0.64);\n const navbarSurfaceButtonBackground = alpha(\n navbarSecondary,\n navbarMode === 'dark' ? 0.2 : 0.12,\n );\n const navbarSurfaceButtonBorder = alpha(navbarSecondary, navbarMode === 'dark' ? 0.42 : 0.28);\n const navbarSurfaceButtonHoverBackground = alpha(\n navbarSecondaryDark,\n navbarMode === 'dark' ? 0.22 : 0.14,\n );\n const navbarSurfaceButtonHoverBorder = alpha(\n navbarSecondaryDark,\n navbarMode === 'dark' ? 0.56 : 0.36,\n );\n const navbarHeaderIconColor = navbarSecondary;\n const navbarInactiveText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.72);\n const navbarActiveBackground = alpha(navbarSecondary, navbarMode === 'dark' ? 0.22 : 0.12);\n const navbarUserAvatarBackground = darken(navbarBackground, navbarMode === 'dark' ? 0.08 : 0.05);\n const navbarUserAvatarText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.62);\n\n const mainBackground = getPaletteValue(settings, 'main', 'background.default');\n const mainPaper = getPaletteValue(settings, 'main', 'background.paper');\n const mainText = getPaletteValue(settings, 'main', 'text.primary');\n const mainTextSecondary = getPaletteValue(settings, 'main', 'text.secondary');\n const mainSuccess = getPaletteValue(settings, 'main', 'success.main');\n const mainSuccessContrast = getPaletteValue(settings, 'main', 'success.contrastText');\n const mainInfo = getPaletteValue(settings, 'main', 'info.main');\n const mainInfoContrast = getPaletteValue(settings, 'main', 'info.contrastText');\n const mainWarning = getPaletteValue(settings, 'main', 'warning.main');\n const mainWarningContrast = getPaletteValue(settings, 'main', 'warning.contrastText');\n const mainError = getPaletteValue(settings, 'main', 'error.main');\n const mainErrorContrast = getPaletteValue(settings, 'main', 'error.contrastText');\n const mainGrid = settings.theme.main.grid;\n\n const gridThemePreviewVersionKey = createThemePreviewVersionKey(mainGrid);\n const tableThemePreviewVersionKey = createThemePreviewVersionKey(settings.theme.main.table);\n const searchHeaderPreviewVersionKey = createThemePreviewVersionKey({\n palette: settings.theme.main.palette ?? {},\n table: settings.theme.main.table ?? {},\n });\n\n const editableThemePreviewGridId = `${themePreviewEditableTreeGridId}-${gridThemePreviewVersionKey}`;\n const readonlyThemePreviewGridId = `${themePreviewReadonlyTreeGridId}-${gridThemePreviewVersionKey}`;\n const layoutPreviewGridHeaderBackground = '#586980';\n const layoutPreviewGridHeaderColor = '#ffffff';\n const layoutPreviewGridHeaderFontSize = '14px';\n const layoutPreviewGridCellFontSize = '13px';\n const layoutPreviewGridCellBackground =\n mainGrid?.body?.backgroundColor ?? gridPreviewBodyBackground;\n const layoutPreviewGridHeaderBorder = alpha(layoutPreviewGridHeaderColor, 0.22);\n const gridBodyBorder = alpha(gridPreviewBodyText, 0.14);\n\n const mainThemePreviewSettings = useMemo(\n () => ({\n ...settings,\n theme: {\n ...settings.theme,\n navbar: settings.theme.main,\n toolbar: settings.theme.main,\n },\n }),\n [settings],\n );\n const mainThemePreviewStoreKey = createThemePreviewVersionKey(\n mainThemePreviewSettings.theme.main,\n );\n const mainThemePreviewStoreState = useMemo(\n () =>\n ({\n owpSettings: {\n current: mainThemePreviewSettings,\n defaults: mainThemePreviewSettings,\n initial: mainThemePreviewSettings,\n },\n }) as const,\n [mainThemePreviewSettings],\n );\n\n const searchHeaderPreviewDate = dayjs().format('YYYY-MM-DD');\n const searchHeaderPreviewNumber = useMemo(\n () => `OWP-${searchHeaderPreviewDate.replace(/-/g, '')}-001`,\n [searchHeaderPreviewDate],\n );\n\n const previewSectionCardSx = useMemo(\n () => ({\n backgroundColor: mainPaper,\n border: `1px solid ${previewChromeBorder}`,\n }),\n [mainPaper],\n );\n const highlightTarget: ThemePreviewHighlightTarget =\n deferredActiveSection === 'navbar'\n ? 'navbar'\n : deferredActiveSection === 'toolbar'\n ? 'toolbar'\n : 'main';\n const isPreviewSectionPending = isLoading || deferredActiveSection !== activeSection;\n const toolbarPreviewButtonStyle = useMemo(\n () => ({\n backgroundColor: toolbarButtonBackground,\n borderColor: toolbarButtonBorder,\n boxShadow: `inset 0 1px 0 ${toolbarButtonHighlight}`,\n }),\n [toolbarButtonBackground, toolbarButtonBorder, toolbarButtonHighlight],\n );\n const navbarPreviewButtonSx = useMemo(\n () => ({\n backgroundColor: navbarSurfaceButtonBackground,\n borderColor: navbarSurfaceButtonBorder,\n color: navbarHeaderIconColor,\n transition: 'background-color 160ms ease, border-color 160ms ease, color 160ms ease',\n '&:hover, &:focus-visible, &:active': {\n backgroundColor: navbarSurfaceButtonHoverBackground,\n borderColor: navbarSurfaceButtonHoverBorder,\n color: navbarSecondaryDark,\n },\n }),\n [\n navbarHeaderIconColor,\n navbarSecondaryDark,\n navbarSurfaceButtonBackground,\n navbarSurfaceButtonBorder,\n navbarSurfaceButtonHoverBackground,\n navbarSurfaceButtonHoverBorder,\n ],\n );\n const buttonPreviewItems = useMemo(\n () =>\n [\n { label: 'info', color: mainInfo, contrastColor: mainInfoContrast },\n { label: 'warning', color: mainWarning, contrastColor: mainWarningContrast },\n { label: 'error', color: mainError, contrastColor: mainErrorContrast },\n { label: 'success', color: mainSuccess, contrastColor: mainSuccessContrast },\n ].map((item) => ({\n ...item,\n previewContrastColor:\n item.label === 'error' || item.label === 'success'\n ? getPreviewContrastColor(item.color, item.contrastColor)\n : item.contrastColor,\n })),\n [\n mainError,\n mainErrorContrast,\n mainInfo,\n mainInfoContrast,\n mainSuccess,\n mainSuccessContrast,\n mainWarning,\n mainWarningContrast,\n ],\n );\n\n const snackbarTheme = settings.snackbar ?? defaultSnackbarTheme;\n const snackbarProviderProps = useMemo(\n () => merge({}, defaultSnackbarProviderProps, settings.snackbarProviderProps),\n [settings.snackbarProviderProps],\n );\n const snackbarPreviewAnchorHorizontal =\n snackbarProviderProps.anchorOrigin?.horizontal ??\n defaultSnackbarProviderProps.anchorOrigin.horizontal;\n const snackbarPreviewAnchorVertical =\n snackbarProviderProps.anchorOrigin?.vertical ??\n defaultSnackbarProviderProps.anchorOrigin.vertical;\n const snackbarPreviewMaxSnack =\n snackbarProviderProps.maxSnack ?? defaultSnackbarProviderProps.maxSnack;\n const snackbarPreviewFontSize = getThemePreviewStyleValue(snackbarProviderProps.style?.fontSize);\n const snackbarPreviewLineHeight = getThemePreviewStyleValue(\n snackbarProviderProps.style?.lineHeight,\n );\n const snackbarPreviewItems = useMemo(\n () =>\n snackbarVariantKeys.map((variantKey) => {\n const snackbarVariantTheme = snackbarTheme[variantKey];\n\n return {\n actionHoverColor: alpha(\n snackbarVariantTheme.color,\n variantKey === 'default' ? 0.18 : 0.16,\n ),\n backgroundColor: snackbarVariantTheme.backgroundColor,\n color: snackbarVariantTheme.color,\n icon: snackbarPreviewIconByVariant[variantKey],\n key: variantKey,\n message: snackbarPreviewMessageByVariant[variantKey],\n };\n }),\n [snackbarTheme],\n );\n\n const orderedPreviewSectionKeys = useMemo(\n () => getPreviewSectionOrder(deferredActiveSection),\n [deferredActiveSection],\n );\n const previewSectionMountKeyBySection = useMemo(\n () =>\n ({\n common: mainThemePreviewStoreKey,\n buttons: createThemePreviewVersionKey({\n error: mainError,\n info: mainInfo,\n success: mainSuccess,\n warning: mainWarning,\n }),\n grid: `${mainThemePreviewStoreKey}-${gridThemePreviewVersionKey}`,\n searchHeader: searchHeaderPreviewVersionKey,\n snackbars: createThemePreviewVersionKey({\n provider: settings.snackbarProviderProps,\n snackbar: settings.snackbar,\n }),\n tables: tableThemePreviewVersionKey,\n }) as const,\n [\n gridThemePreviewVersionKey,\n mainError,\n mainInfo,\n mainSuccess,\n mainThemePreviewStoreKey,\n mainWarning,\n searchHeaderPreviewVersionKey,\n settings.snackbar,\n settings.snackbarProviderProps,\n tableThemePreviewVersionKey,\n ],\n );\n const gridPreviewTable = useMemo(\n () => (\n <ThemePreviewGridPreviewTable\n gridBodyBorder={gridBodyBorder}\n layoutPreviewGridCellBackground={layoutPreviewGridCellBackground}\n layoutPreviewGridCellFontSize={layoutPreviewGridCellFontSize}\n layoutPreviewGridHeaderBackground={layoutPreviewGridHeaderBackground}\n layoutPreviewGridHeaderBorder={layoutPreviewGridHeaderBorder}\n layoutPreviewGridHeaderColor={layoutPreviewGridHeaderColor}\n layoutPreviewGridHeaderFontSize={layoutPreviewGridHeaderFontSize}\n />\n ),\n [\n gridBodyBorder,\n layoutPreviewGridCellBackground,\n layoutPreviewGridCellFontSize,\n layoutPreviewGridHeaderBackground,\n layoutPreviewGridHeaderBorder,\n layoutPreviewGridHeaderColor,\n layoutPreviewGridHeaderFontSize,\n ],\n );\n\n useEffect(() => {\n return () => {\n previewSnackbarKeysRef.current.forEach((snackbarKey) => {\n closeSnackbar(snackbarKey);\n });\n previewSnackbarKeysRef.current = [];\n };\n }, []);\n\n const renderPreviewSection = (sectionKey: keyof typeof previewSectionMountKeyBySection) => {\n switch (sectionKey) {\n case 'common':\n return (\n <ThemePreviewCommonSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'buttons':\n return (\n <ThemePreviewButtonsSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'snackbars':\n return (\n <ThemePreviewSnackbarsSection\n previewSectionCardSx={previewSectionCardSx}\n previewSnackbarKeysRef={previewSnackbarKeysRef}\n snackbarAnchorOrigin={snackbarProviderProps.anchorOrigin}\n snackbarAutoHideDuration={snackbarProviderProps.autoHideDuration}\n snackbarPreviewAnchorHorizontal={snackbarPreviewAnchorHorizontal}\n snackbarPreviewAnchorVertical={snackbarPreviewAnchorVertical}\n snackbarPreviewFontSize={snackbarPreviewFontSize}\n snackbarPreviewItems={snackbarPreviewItems}\n snackbarPreviewLineHeight={snackbarPreviewLineHeight}\n snackbarPreviewMaxSnack={snackbarPreviewMaxSnack}\n />\n );\n case 'searchHeader':\n return (\n <ThemePreviewSearchHeaderSection\n activeSection={\n deferredActiveSection === 'navbar' || deferredActiveSection === 'toolbar'\n ? deferredActiveSection\n : 'main'\n }\n gridPreviewTable={gridPreviewTable}\n mainBackground={mainBackground}\n mainPaper={mainPaper}\n mainText={mainText}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n searchHeaderPreviewDate={searchHeaderPreviewDate}\n searchHeaderPreviewNumber={searchHeaderPreviewNumber}\n searchHeaderPreviewVersionKey={searchHeaderPreviewVersionKey}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n case 'grid':\n return (\n <ThemePreviewGridSection\n editableThemePreviewGridId={editableThemePreviewGridId}\n mainGridChangedBackgroundColor={mainGrid?.changed?.backgroundColor}\n mainThemePreviewStoreKey={mainThemePreviewStoreKey}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n readonlyThemePreviewGridId={readonlyThemePreviewGridId}\n />\n );\n case 'tables':\n return (\n <ThemePreviewTablesSection\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n default:\n return null;\n }\n };\n const renderHighlightOverlay = (target: ThemePreviewHighlightTarget, inset: number, radius = 0) =>\n highlightTarget === target ? (\n <div\n aria-hidden\n className=\"pointer-events-none absolute z-[2]\"\n style={{\n inset,\n border: `4px solid ${themePreviewHighlightColor}`,\n borderRadius: radius,\n boxShadow: `0 0 0 1px ${themePreviewHighlightShadowColor}`,\n }}\n />\n ) : null;\n\n return (\n <div className=\"flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden\">\n <div\n className=\"grid min-h-0 flex-1 grid-cols-[224px_minmax(0,1fr)] grid-rows-[76px_minmax(0,1fr)] overflow-hidden rounded-lg border border-solid\"\n style={{\n backgroundColor: mainBackground,\n borderColor: previewChromeBorder,\n }}\n >\n <div\n className=\"col-span-2 relative flex items-center justify-between px-20\"\n style={{\n backgroundColor: toolbarBackground,\n backgroundImage: `linear-gradient(180deg, ${toolbarBackground} 0%, ${toolbarPaper} 100%)`,\n borderBottom: `1px solid ${toolbarDivider}`,\n boxShadow: `inset 0 1px 0 ${alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.82)}, 0 4px 16px ${alpha(toolbarBlack, toolbarMode === 'dark' ? 0.18 : 0.05)}`,\n color: toolbarText,\n }}\n >\n {renderHighlightOverlay('toolbar', 0, 0)}\n <div className=\"flex items-center gap-12\">\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"flex items-center gap-2\"\n style={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.72 : 0.64),\n }}\n >\n <Typography variant=\"caption\">OWP</Typography>\n <NavigateNextIcon sx={{ fontSize: 18 }} />\n <Typography variant=\"caption\">Theme Preview</Typography>\n </div>\n <Typography variant=\"subtitle1\" fontWeight={700}>\n Toolbar\n </Typography>\n </div>\n </div>\n <div className=\"pointer-events-none absolute left-1/2 top-1/2 flex w-full max-w-[520px] -translate-x-1/2 -translate-y-1/2 justify-center px-12 text-center\">\n <Typography\n variant=\"body2\"\n sx={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.92 : 0.84),\n fontSize: 13,\n fontWeight: 700,\n }}\n >\n 로그인 화면 배경색은 Toolbar{' '}\n <NavigateNextIcon sx={{ mx: 0.25, fontSize: 18, verticalAlign: 'middle' }} />{' '}\n Background Default 색상을 따라갑니다.\n </Typography>\n </div>\n <div className=\"flex items-center gap-8\">\n {[SearchIcon, SpaceDashboardOutlinedIcon].map((IconComponent, index) => (\n <div\n key={`${index}`}\n className=\"flex h-32 w-32 items-center justify-center rounded-[10px] border border-solid\"\n style={toolbarPreviewButtonStyle}\n >\n <IconComponent sx={{ color: toolbarText, fontSize: 18 }} />\n </div>\n ))}\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col\"\n style={{\n backgroundColor: navbarBackground,\n borderRight: `1px solid ${navbarDivider}`,\n color: navbarText,\n }}\n >\n {renderHighlightOverlay('navbar', 0, 0)}\n <div\n className=\"flex items-center justify-between gap-8 px-16 py-14\"\n style={{\n borderBottom: `1px solid ${navbarDivider}`,\n }}\n >\n <div className=\"flex items-center gap-10\">\n <div className=\"flex flex-col gap-2\">\n <Typography\n variant=\"subtitle2\"\n fontWeight={700}\n sx={{\n color: navbarHeaderForeground,\n }}\n >\n Navbar\n </Typography>\n <Typography variant=\"caption\" sx={{ color: navbarHeaderSecondary }}>\n Navigation\n </Typography>\n </div>\n </div>\n <ButtonBase\n aria-label=\"navbar menu\"\n className=\"flex h-28 w-28 items-center justify-center rounded-[10px] border border-solid\"\n sx={navbarPreviewButtonSx}\n >\n <MenuRoundedIcon sx={{ color: 'inherit', fontSize: 16 }} />\n </ButtonBase>\n </div>\n\n <div className=\"flex flex-1 flex-col gap-4 px-10 py-10\">\n {navbarPreviewItems.map((label, index) => {\n const isActive = index === 1;\n\n return (\n <div\n key={label}\n className=\"rounded-lg px-12 py-10\"\n style={{\n backgroundColor: isActive ? navbarActiveBackground : 'transparent',\n color: isActive ? navbarSecondary : navbarInactiveText,\n }}\n >\n <Typography variant=\"body2\" fontWeight={isActive ? 700 : 500}>\n {label}\n </Typography>\n </div>\n );\n })}\n </div>\n\n <div\n className=\"px-12 py-12\"\n style={{\n borderTop: `1px solid ${navbarDivider}`,\n }}\n >\n <div\n className=\"flex min-h-[56px] items-center gap-12 rounded-lg px-8 py-8\"\n style={{ color: navbarText }}\n >\n <div\n className=\"flex h-36 w-36 shrink-0 items-center justify-center rounded-full\"\n style={{\n backgroundColor: navbarUserAvatarBackground,\n color: navbarUserAvatarText,\n }}\n >\n <Typography sx={{ fontSize: 18, fontWeight: 700, lineHeight: 1 }}>관</Typography>\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarText,\n fontSize: 16,\n fontWeight: 600,\n letterSpacing: '-0.01em',\n lineHeight: 1,\n }}\n >\n Impix\n </Typography>\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarInactiveText,\n fontSize: 14,\n fontWeight: 500,\n letterSpacing: '-0.02em',\n lineHeight: 1.05,\n }}\n >\n Owp/Admin\n </Typography>\n </div>\n <div className=\"flex shrink-0 items-center justify-center\" style={{ color: navbarText }}>\n <KeyboardArrowUpRoundedIcon sx={{ fontSize: 16 }} />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col gap-14 overflow-y-auto overflow-x-hidden p-14\"\n style={{\n backgroundColor: mainBackground,\n color: mainText,\n }}\n >\n {renderHighlightOverlay('main', 8)}\n {isPreviewSectionPending ? (\n <div\n className=\"absolute inset-14 z-10 flex items-center justify-center rounded-lg\"\n style={{\n backgroundColor: alpha(mainPaper, 0.88),\n border: `1px solid ${previewChromeBorder}`,\n }}\n >\n <div className=\"flex flex-col items-center gap-10\">\n <CircularProgress color=\"secondary\" size={34} thickness={4.5} />\n <Typography variant=\"body2\" color=\"text.secondary\" fontWeight={700}>\n 로딩 중...\n </Typography>\n </div>\n </div>\n ) : null}\n {orderedPreviewSectionKeys.map((sectionKey) => (\n <Fragment key={`${sectionKey}-${previewSectionMountKeyBySection[sectionKey]}`}>\n {renderPreviewSection(sectionKey)}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["themePreviewHighlightColor","themePreviewHighlightShadowColor","ThemePreviewCanvas","activeSection","isLoading","settings","previewSnackbarKeysRef","useRef","deferredActiveSection","useDeferredValue","tablePreviewCanTableRadiusZero","tableTheme","useMemo","merge","defaultTableTheme","toolbarMode","toolbarBackground","getPaletteValue","toolbarPaper","toolbarText","toolbarDivider","toolbarWhite","toolbarBlack","toolbarButtonBackground","alpha","toolbarButtonBorder","toolbarButtonHighlight","navbarMode","navbarBackground","navbarDivider","previewChromeBorder","navbarText","navbarTextSecondary","navbarSecondary","navbarSecondaryDark","navbarHeaderForeground","getPreviewContrastColor","navbarHeaderSecondary","navbarSurfaceButtonBackground","navbarSurfaceButtonBorder","navbarSurfaceButtonHoverBackground","navbarSurfaceButtonHoverBorder","navbarHeaderIconColor","navbarInactiveText","navbarActiveBackground","navbarUserAvatarBackground","darken","navbarUserAvatarText","mainBackground","mainPaper","mainText","mainTextSecondary","mainSuccess","mainSuccessContrast","mainInfo","mainInfoContrast","mainWarning","mainWarningContrast","mainError","mainErrorContrast","mainGrid","gridThemePreviewVersionKey","createThemePreviewVersionKey","tableThemePreviewVersionKey","searchHeaderPreviewVersionKey","editableThemePreviewGridId","themePreviewEditableTreeGridId","readonlyThemePreviewGridId","themePreviewReadonlyTreeGridId","layoutPreviewGridHeaderBackground","layoutPreviewGridHeaderColor","layoutPreviewGridHeaderFontSize","layoutPreviewGridCellFontSize","layoutPreviewGridCellBackground","_a","gridPreviewBodyBackground","layoutPreviewGridHeaderBorder","gridBodyBorder","gridPreviewBodyText","mainThemePreviewSettings","mainThemePreviewStoreKey","mainThemePreviewStoreState","searchHeaderPreviewDate","dayjs","searchHeaderPreviewNumber","previewSectionCardSx","highlightTarget","isPreviewSectionPending","toolbarPreviewButtonStyle","navbarPreviewButtonSx","buttonPreviewItems","item","snackbarTheme","defaultSnackbarTheme","snackbarProviderProps","defaultSnackbarProviderProps","snackbarPreviewAnchorHorizontal","_b","snackbarPreviewAnchorVertical","_c","snackbarPreviewMaxSnack","snackbarPreviewFontSize","getThemePreviewStyleValue","_d","snackbarPreviewLineHeight","_e","snackbarPreviewItems","snackbarVariantKeys","variantKey","snackbarVariantTheme","snackbarPreviewIconByVariant","snackbarPreviewMessageByVariant","orderedPreviewSectionKeys","getPreviewSectionOrder","previewSectionMountKeyBySection","gridPreviewTable","jsx","ThemePreviewGridPreviewTable","useEffect","snackbarKey","closeSnackbar","renderPreviewSection","__name","sectionKey","ThemePreviewCommonSection","ThemePreviewButtonsSection","ThemePreviewSnackbarsSection","ThemePreviewSearchHeaderSection","ThemePreviewGridSection","ThemePreviewTablesSection","renderHighlightOverlay","target","inset","radius","jsxs","Typography","NavigateNextIcon","SearchIcon","SpaceDashboardOutlinedIcon","IconComponent","index","ButtonBase","MenuRoundedIcon","label","isActive","KeyboardArrowUpRoundedIcon","CircularProgress","Fragment"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const
|
|
1
|
+
const o = {
|
|
2
2
|
borderRadius: "",
|
|
3
3
|
header: {
|
|
4
|
-
backgroundColor: "#
|
|
4
|
+
backgroundColor: "#f5f5f5",
|
|
5
5
|
color: "#111827",
|
|
6
6
|
fontSize: "1.5rem"
|
|
7
7
|
},
|
|
@@ -15,7 +15,7 @@ const e = {
|
|
|
15
15
|
},
|
|
16
16
|
field: {
|
|
17
17
|
header: {
|
|
18
|
-
backgroundColor: "#
|
|
18
|
+
backgroundColor: "#f5f5f5",
|
|
19
19
|
color: "#111827",
|
|
20
20
|
fontSize: "1.7rem",
|
|
21
21
|
fontWeight: 600
|
|
@@ -27,6 +27,6 @@ const e = {
|
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
export {
|
|
30
|
-
|
|
30
|
+
o as defaultTableTheme
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../src/features/themePreview/configs/table.ts"],"sourcesContent":["import type { OwpTableThemeConfigType } from '@/types';\n\ntype OwpTableHeaderConfigType = NonNullable<OwpTableThemeConfigType['header']>;\ntype OwpTableCellConfigType = NonNullable<OwpTableThemeConfigType['cell']>;\n\nexport type ThemePreviewTableCellConfigType = OwpTableCellConfigType & {\n backgroundColor?: string;\n};\n\nexport type ThemePreviewTableVariantConfigType = {\n header?: OwpTableHeaderConfigType;\n cell?: ThemePreviewTableCellConfigType;\n};\n\nexport type ThemePreviewTableRowConfigType = {\n backgroundColor?: string;\n hoverBackgroundColor?: string;\n selectedBackgroundColor?: string;\n};\n\nexport type ThemePreviewTableConfigType = ThemePreviewTableVariantConfigType & {\n borderRadius?: number | string;\n field?: ThemePreviewTableVariantConfigType;\n row?: ThemePreviewTableRowConfigType;\n};\n\nexport const defaultTableTheme = {\n borderRadius: '',\n header: {\n backgroundColor: '#
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../src/features/themePreview/configs/table.ts"],"sourcesContent":["import type { OwpTableThemeConfigType } from '@/types';\n\ntype OwpTableHeaderConfigType = NonNullable<OwpTableThemeConfigType['header']>;\ntype OwpTableCellConfigType = NonNullable<OwpTableThemeConfigType['cell']>;\n\nexport type ThemePreviewTableCellConfigType = OwpTableCellConfigType & {\n backgroundColor?: string;\n};\n\nexport type ThemePreviewTableVariantConfigType = {\n header?: OwpTableHeaderConfigType;\n cell?: ThemePreviewTableCellConfigType;\n};\n\nexport type ThemePreviewTableRowConfigType = {\n backgroundColor?: string;\n hoverBackgroundColor?: string;\n selectedBackgroundColor?: string;\n};\n\nexport type ThemePreviewTableConfigType = ThemePreviewTableVariantConfigType & {\n borderRadius?: number | string;\n field?: ThemePreviewTableVariantConfigType;\n row?: ThemePreviewTableRowConfigType;\n};\n\nexport const defaultTableTheme = {\n borderRadius: '',\n header: {\n backgroundColor: '#f5f5f5',\n color: '#111827',\n fontSize: '1.5rem',\n },\n cell: {\n fontSize: '1.4rem',\n },\n row: {\n backgroundColor: '#FFFFFF',\n hoverBackgroundColor: '',\n selectedBackgroundColor: '',\n },\n field: {\n header: {\n backgroundColor: '#f5f5f5',\n color: '#111827',\n fontSize: '1.7rem',\n fontWeight: 600,\n },\n cell: {\n backgroundColor: '#FFFFFF',\n fontSize: '1.7rem',\n },\n },\n} satisfies ThemePreviewTableConfigType;\n"],"names":["defaultTableTheme"],"mappings":"AA0BO,MAAMA,IAAoB;AAAA,EAC/B,cAAc;AAAA,EACd,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,MAAM;AAAA,IACJ,UAAU;AAAA,EAAA;AAAA,EAEZ,KAAK;AAAA,IACH,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,yBAAyB;AAAA,EAAA;AAAA,EAE3B,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAAA,IAEd,MAAM;AAAA,MACJ,iBAAiB;AAAA,MACjB,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ;"}
|
|
@@ -4,15 +4,15 @@ import { getThemePreviewTemporaryState as W, persistThemePreviewTemporaryState a
|
|
|
4
4
|
import { defaultSnackbarTheme as V, defaultSnackbarProviderProps as x } from "../configs/snackbar.js";
|
|
5
5
|
import { useGetCurrentSettings as he, useSetDefaultSettings as fe } from "../../../hooks/useOwpSettings.js";
|
|
6
6
|
import { useMemo as R, useState as k } from "react";
|
|
7
|
-
import ve from "dayjs";
|
|
7
|
+
import { owpDayjs as ve } from "../../../dayjs.js";
|
|
8
8
|
import { getThemePreviewPresetOptions as ge, getThemePreviewDraftSettings as be, cloneThemePreviewSettings as A, getThemePreviewSelectionState as ke, getThemePreviewResetSettings as ye, getThemePreviewMatchedPresetKeys as F, getThemePreviewPresetOptionsByMode as Te, applyThemePreviewPreset as G, THEME_PREVIEW_CUSTOM_PRESET_KEY as I, setThemePreviewDraftSettings as N, setThemePreviewPaletteValues as X, getThemePreviewPaletteValue as Y, setThemePreviewPaletteValue as we, isThemePreviewCustomSection as Me, setThemePreviewSelectionState as Ve } from "../utils/themePreviewSettings.js";
|
|
9
9
|
import { merge as g } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
|
|
10
10
|
import { isEqual as T } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
|
|
11
11
|
const z = "snackbarProviderProps.";
|
|
12
|
-
function
|
|
12
|
+
function C(n) {
|
|
13
13
|
return !Me(n);
|
|
14
14
|
}
|
|
15
|
-
o(
|
|
15
|
+
o(C, "isThemePreviewPresetSectionKey");
|
|
16
16
|
function J(n) {
|
|
17
17
|
return {
|
|
18
18
|
main: n.theme.main.palette.mode === "dark" ? "dark" : "light",
|
|
@@ -98,7 +98,7 @@ function Ne({
|
|
|
98
98
|
presetThemes: d,
|
|
99
99
|
resetTheme: m
|
|
100
100
|
}) {
|
|
101
|
-
const u = he(), w = fe(), P = R(() => ge(d), [d]), y = be(u), [Z] = k(() => A(y)),
|
|
101
|
+
const u = he(), w = fe(), P = R(() => ge(d), [d]), y = be(u), [Z] = k(() => A(y)), D = R(
|
|
102
102
|
() => ke(u, l, d),
|
|
103
103
|
[u, l, d]
|
|
104
104
|
), $ = R(
|
|
@@ -115,13 +115,13 @@ function Ne({
|
|
|
115
115
|
),
|
|
116
116
|
[u]
|
|
117
117
|
), [r, B] = k(n), [s, re] = k(() => y), [p, ne] = k(
|
|
118
|
-
|
|
119
|
-
), [h, ae] = k(
|
|
118
|
+
D.selectedPresetKeys
|
|
119
|
+
), [h, ae] = k(D.selectedModes), [se, oe] = k(0), [O, _] = k(() => W()), [ce, M] = k(
|
|
120
120
|
() => K(
|
|
121
121
|
n,
|
|
122
122
|
y,
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
D.selectedPresetKeys,
|
|
124
|
+
D.selectedModes
|
|
125
125
|
)
|
|
126
126
|
), ie = !!O, le = !T(
|
|
127
127
|
K(
|
|
@@ -142,7 +142,7 @@ function Ne({
|
|
|
142
142
|
if (Y(s, r, e) === t)
|
|
143
143
|
return;
|
|
144
144
|
const c = we(s, r, e, t);
|
|
145
|
-
if (b(c), !
|
|
145
|
+
if (b(c), !C(r))
|
|
146
146
|
return;
|
|
147
147
|
const a = {
|
|
148
148
|
...p,
|
|
@@ -160,7 +160,7 @@ function Ne({
|
|
|
160
160
|
r,
|
|
161
161
|
t
|
|
162
162
|
);
|
|
163
|
-
if (b(c), !
|
|
163
|
+
if (b(c), !C(r))
|
|
164
164
|
return;
|
|
165
165
|
const a = {
|
|
166
166
|
...p,
|
|
@@ -176,10 +176,10 @@ function Ne({
|
|
|
176
176
|
O.draftSettings,
|
|
177
177
|
r,
|
|
178
178
|
i
|
|
179
|
-
) : { found: !1, value: "" }, v = L(Z, r, i),
|
|
179
|
+
) : { found: !1, value: "" }, v = L(Z, r, i), E = L(s, r, i);
|
|
180
180
|
return {
|
|
181
181
|
path: i,
|
|
182
|
-
value: S.found ? S.value : v.found ? v.value :
|
|
182
|
+
value: S.found ? S.value : v.found ? v.value : E.value
|
|
183
183
|
};
|
|
184
184
|
}), a = X(s, r, c);
|
|
185
185
|
b(a), oe((i) => i + 1);
|
|
@@ -254,7 +254,7 @@ function Ne({
|
|
|
254
254
|
});
|
|
255
255
|
}, "handleLoadSettings"),
|
|
256
256
|
handlePresetKeyChange: /* @__PURE__ */ o((e) => {
|
|
257
|
-
if (!
|
|
257
|
+
if (!C(r) || e === I)
|
|
258
258
|
return;
|
|
259
259
|
const t = d[e];
|
|
260
260
|
if (!t)
|
|
@@ -270,7 +270,7 @@ function Ne({
|
|
|
270
270
|
f(a, c);
|
|
271
271
|
}, "handlePresetKeyChange"),
|
|
272
272
|
handlePresetModeChange: /* @__PURE__ */ o((e) => {
|
|
273
|
-
if (!
|
|
273
|
+
if (!C(r))
|
|
274
274
|
return;
|
|
275
275
|
const t = {
|
|
276
276
|
...h,
|
|
@@ -297,13 +297,13 @@ function Ne({
|
|
|
297
297
|
f(i, t);
|
|
298
298
|
}, "handlePresetModeChange"),
|
|
299
299
|
handleReset: /* @__PURE__ */ o(() => {
|
|
300
|
-
var c, a, i, S, v,
|
|
300
|
+
var c, a, i, S, v, E;
|
|
301
301
|
const e = g({}, A($), {
|
|
302
302
|
snackbarProviderProps: x
|
|
303
303
|
}), t = {
|
|
304
304
|
main: ((a = (c = m.main) == null ? void 0 : c.palette) == null ? void 0 : a.mode) === "dark" ? "dark" : "light",
|
|
305
305
|
navbar: ((S = (i = m.navbar) == null ? void 0 : i.palette) == null ? void 0 : S.mode) === "dark" ? "dark" : "light",
|
|
306
|
-
toolbar: ((
|
|
306
|
+
toolbar: ((E = (v = m.toolbar) == null ? void 0 : v.palette) == null ? void 0 : E.mode) === "dark" ? "dark" : "light"
|
|
307
307
|
};
|
|
308
308
|
b(e), f(l, t), M(
|
|
309
309
|
K(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemePreview.js","sources":["../../../../src/features/themePreview/hooks/useThemePreview.ts"],"sourcesContent":["import {\n clearThemePreviewAppliedSettings,\n getThemePreviewTemporaryState,\n persistThemePreviewAppliedSettings,\n persistThemePreviewTemporaryState,\n type ThemePreviewTemporaryState,\n} from '@/features/themePreview/configs/previewStorage';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport { useGetCurrentSettings, useSetDefaultSettings } from '@/hooks';\nimport type { OwpSettingsConfigType } from '@/types';\nimport { isEqual, merge } from 'es-toolkit/compat';\nimport { useMemo, useState } from 'react';\nimport type { PartialDeep } from 'type-fest';\nimport type {\n ThemePreviewMode,\n ThemePreviewPresetKeyBySection,\n ThemePreviewPresetSectionKey,\n ThemePreviewPresetThemes,\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n applyThemePreviewPreset,\n getThemePreviewPaletteValue,\n cloneThemePreviewSettings,\n getThemePreviewDraftSettings,\n getThemePreviewMatchedPresetKeys,\n getThemePreviewPresetOptions,\n getThemePreviewPresetOptionsByMode,\n getThemePreviewResetSettings,\n getThemePreviewSelectionState,\n isThemePreviewCustomSection,\n setThemePreviewDraftSettings,\n setThemePreviewPaletteValue,\n setThemePreviewPaletteValues,\n setThemePreviewSelectionState,\n THEME_PREVIEW_CUSTOM_PRESET_KEY,\n} from '../utils';\nimport dayjs from 'dayjs';\n\ninterface UseThemePreviewOptions {\n initialSection?: ThemePreviewSectionKey;\n initialPresetKeys: ThemePreviewPresetKeyBySection;\n presetThemes: ThemePreviewPresetThemes;\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>;\n}\n\ntype ThemePreviewSettingsWithSnackbarProviderProps = OwpSettingsConfigType & {\n snackbarProviderProps?: SnackbarProviderTheme;\n};\n\nconst THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX = 'snackbarProviderProps.';\n\nfunction isThemePreviewPresetSectionKey(\n sectionKey: ThemePreviewSectionKey,\n): sectionKey is ThemePreviewPresetSectionKey {\n return !isThemePreviewCustomSection(sectionKey);\n}\n\nfunction getThemePreviewSelectedModes(settings: OwpSettingsConfigType) {\n return {\n main: settings.theme.main.palette.mode === 'dark' ? 'dark' : 'light',\n navbar: settings.theme.navbar.palette.mode === 'dark' ? 'dark' : 'light',\n toolbar: settings.theme.toolbar.palette.mode === 'dark' ? 'dark' : 'light',\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n}\n\nfunction createThemePreviewTemporaryState(\n activeSection: ThemePreviewSectionKey,\n draftSettings: ThemePreviewSettings,\n selectedPresetKeys: ThemePreviewPresetKeyBySection,\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n saveType: ThemePreviewTemporaryState['saveType'],\n) {\n return {\n draftSettings: cloneThemePreviewSettings(draftSettings),\n savedAt: dayjs().toISOString(),\n saveType,\n selectionState: {\n activeSection,\n selectedModes,\n selectedPresetKeys,\n },\n version: 1,\n } satisfies ThemePreviewTemporaryState;\n}\n\nfunction createThemePreviewTemporaryComparableState(\n activeSection: ThemePreviewSectionKey,\n draftSettings: ThemePreviewSettings,\n selectedPresetKeys: ThemePreviewPresetKeyBySection,\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n) {\n return {\n draftSettings,\n selectionState: {\n activeSection,\n selectedModes,\n selectedPresetKeys,\n },\n };\n}\n\nfunction getResetSectionTarget(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n) {\n switch (sectionKey) {\n case 'grid':\n return settings.theme.main.grid;\n case 'table':\n return settings.theme.main.table;\n case 'snackbar':\n return settings.snackbar;\n default:\n return settings.theme[sectionKey].palette;\n }\n}\n\nfunction canUseEmptyResetValue(sectionKey: ThemePreviewSectionKey) {\n return sectionKey === 'grid' || sectionKey === 'table';\n}\n\nfunction getResetPathValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n) {\n const [pathSource, resolvedPath] = path.startsWith(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX)\n ? [\n settings.snackbarProviderProps,\n path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length),\n ]\n : [getResetSectionTarget(settings, sectionKey), path];\n\n const pathKeys = resolvedPath.split('.');\n let currentValue: unknown = pathSource;\n\n for (const pathKey of pathKeys) {\n if (\n !currentValue ||\n typeof currentValue !== 'object' ||\n !(pathKey in (currentValue as Record<string, unknown>))\n ) {\n return {\n found: false,\n value: '',\n } as const;\n }\n\n currentValue = (currentValue as Record<string, unknown>)[pathKey];\n }\n\n if (typeof currentValue === 'number') {\n return {\n found: true,\n value: String(currentValue),\n } as const;\n }\n\n if (typeof currentValue === 'string') {\n if (!currentValue.trim() && !canUseEmptyResetValue(sectionKey)) {\n return {\n found: false,\n value: '',\n } as const;\n }\n\n return {\n found: true,\n value: currentValue,\n } as const;\n }\n\n return {\n found: false,\n value: '',\n } as const;\n}\n\nexport function useThemePreview({\n initialSection = 'main',\n initialPresetKeys: _initialPresetKeys,\n presetThemes,\n resetTheme,\n}: UseThemePreviewOptions) {\n const currentSettings = useGetCurrentSettings() as OwpSettingsConfigType;\n const setDefaultSettings = useSetDefaultSettings();\n const presetOptions = useMemo(() => getThemePreviewPresetOptions(presetThemes), [presetThemes]);\n const initialDraftSettings = getThemePreviewDraftSettings(currentSettings);\n const [openedDraftSettings] = useState(() => cloneThemePreviewSettings(initialDraftSettings));\n const initialSelectionState = useMemo(\n () => getThemePreviewSelectionState(currentSettings, _initialPresetKeys, presetThemes),\n [currentSettings, _initialPresetKeys, presetThemes],\n );\n const resetSettings = useMemo(\n () => getThemePreviewResetSettings(currentSettings, resetTheme, defaultSnackbarTheme),\n [currentSettings, resetTheme],\n );\n const currentSnackbarTheme = useMemo(\n () => merge({}, defaultSnackbarTheme, currentSettings.snackbar),\n [currentSettings],\n );\n const currentSnackbarProviderProps = useMemo(\n () =>\n merge(\n {},\n defaultSnackbarProviderProps,\n (currentSettings as ThemePreviewSettingsWithSnackbarProviderProps)\n .snackbarProviderProps,\n ) as SnackbarProviderTheme,\n [currentSettings],\n );\n\n const [activeSection, setActiveSection] = useState<ThemePreviewSectionKey>(initialSection);\n const [draftSettings, setDraftSettings] = useState<ThemePreviewSettings>(() => initialDraftSettings);\n const [selectedPresetKeys, setSelectedPresetKeys] = useState<ThemePreviewPresetKeyBySection>(\n initialSelectionState.selectedPresetKeys,\n );\n const [selectedModes, setSelectedModes] = useState<\n Record<ThemePreviewPresetSectionKey, ThemePreviewMode>\n >(initialSelectionState.selectedModes);\n const [resetVersion, setResetVersion] = useState(0);\n const [temporarySnapshot, setTemporarySnapshot] = useState(() => getThemePreviewTemporaryState());\n const [temporaryComparableSnapshot, setTemporaryComparableSnapshot] = useState(() =>\n createThemePreviewTemporaryComparableState(\n initialSection,\n initialDraftSettings,\n initialSelectionState.selectedPresetKeys,\n initialSelectionState.selectedModes,\n ),\n );\n const hasTemporarySnapshot = Boolean(temporarySnapshot);\n const hasTemporaryChanges =\n !isEqual(\n createThemePreviewTemporaryComparableState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n ),\n temporaryComparableSnapshot,\n );\n const canApplyToMain =\n !isEqual(currentSettings.theme, draftSettings.theme) ||\n !isEqual(currentSnackbarTheme, draftSettings.snackbar) ||\n !isEqual(currentSnackbarProviderProps, draftSettings.snackbarProviderProps);\n\n const persistSelectionState = (\n nextPresetKeys: ThemePreviewPresetKeyBySection,\n nextSelectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n ) => {\n setThemePreviewSelectionState({\n selectedPresetKeys: nextPresetKeys,\n selectedModes: nextSelectedModes,\n });\n };\n\n const persistDraftSettings = (nextDraftSettings: ThemePreviewSettings) => {\n setThemePreviewDraftSettings(nextDraftSettings);\n return nextDraftSettings;\n };\n const commitDraftSettings = (nextDraftSettings: ThemePreviewSettings) => {\n setDraftSettings(nextDraftSettings);\n return persistDraftSettings(nextDraftSettings);\n };\n\n const commitSelectionState = (\n nextPresetKeys: ThemePreviewPresetKeyBySection,\n nextSelectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n ) => {\n setSelectedPresetKeys(nextPresetKeys);\n setSelectedModes(nextSelectedModes);\n persistSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handlePaletteValueChange = (path: string, value: string) => {\n if (getThemePreviewPaletteValue(draftSettings, activeSection, path) === value) {\n return;\n }\n\n const nextDraftSettings = setThemePreviewPaletteValue(draftSettings, activeSection, path, value);\n\n commitDraftSettings(nextDraftSettings);\n\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n };\n\n commitSelectionState(nextPresetKeys, selectedModes);\n };\n\n const handlePaletteValuesChange = (updates: Array<{ path: string; value: string }>) => {\n const changedUpdates = updates.filter(\n ({ path, value }) => getThemePreviewPaletteValue(draftSettings, activeSection, path) !== value,\n );\n\n if (!changedUpdates.length) {\n return;\n }\n\n const nextDraftSettings = setThemePreviewPaletteValues(\n draftSettings,\n activeSection,\n changedUpdates,\n );\n\n commitDraftSettings(nextDraftSettings);\n\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n };\n\n commitSelectionState(nextPresetKeys, selectedModes);\n };\n\n const handlePaletteValuesReset = (paths: string[]) => {\n const uniquePaths = [...new Set(paths)];\n\n if (!uniquePaths.length) {\n return;\n }\n\n const updates = uniquePaths.map((path) => {\n const temporaryValue = temporarySnapshot\n ? getResetPathValue(\n temporarySnapshot.draftSettings as ThemePreviewSettings,\n activeSection,\n path,\n )\n : { found: false, value: '' };\n const initialValue = getResetPathValue(openedDraftSettings, activeSection, path);\n const currentValue = getResetPathValue(draftSettings, activeSection, path);\n\n return {\n path,\n value: temporaryValue.found\n ? temporaryValue.value\n : initialValue.found\n ? initialValue.value\n : currentValue.value,\n };\n });\n\n const nextDraftSettings = setThemePreviewPaletteValues(draftSettings, activeSection, updates);\n\n commitDraftSettings(nextDraftSettings);\n\n setResetVersion((prevState) => prevState + 1);\n };\n\n const handlePaletteValueReset = (path: string) => {\n handlePaletteValuesReset([path]);\n };\n\n const handlePresetModeChange = (mode: ThemePreviewMode) => {\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextSelectedModes = {\n ...selectedModes,\n [activeSection]: mode,\n };\n\n const nextPresetOption = getThemePreviewPresetOptionsByMode(\n presetOptions,\n activeSection,\n mode,\n )[0];\n\n if (!nextPresetOption) {\n commitSelectionState(selectedPresetKeys, nextSelectedModes);\n return;\n }\n\n const presetTheme = presetThemes[nextPresetOption.key];\n\n if (!presetTheme) {\n commitSelectionState(selectedPresetKeys, nextSelectedModes);\n return;\n }\n\n commitDraftSettings(applyThemePreviewPreset(draftSettings, activeSection, presetTheme));\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: nextPresetOption.key,\n };\n\n commitSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handlePresetKeyChange = (presetKey: string) => {\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n if (presetKey === THEME_PREVIEW_CUSTOM_PRESET_KEY) {\n return;\n }\n\n const presetTheme = presetThemes[presetKey];\n\n if (!presetTheme) {\n return;\n }\n\n commitDraftSettings(applyThemePreviewPreset(draftSettings, activeSection, presetTheme));\n const nextSelectedModes = {\n ...selectedModes,\n [activeSection]: presetTheme.palette.mode === 'dark' ? 'dark' : 'light',\n };\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: presetKey,\n };\n\n commitSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handleReset = () => {\n const nextDraftSettings = merge({}, cloneThemePreviewSettings(resetSettings), {\n snackbarProviderProps: defaultSnackbarProviderProps,\n }) as ThemePreviewSettings;\n const nextSelectedModes = {\n main: resetTheme.main?.palette?.mode === 'dark' ? 'dark' : 'light',\n navbar: resetTheme.navbar?.palette?.mode === 'dark' ? 'dark' : 'light',\n toolbar: resetTheme.toolbar?.palette?.mode === 'dark' ? 'dark' : 'light',\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(_initialPresetKeys, nextSelectedModes);\n setTemporaryComparableSnapshot(\n createThemePreviewTemporaryComparableState(\n activeSection,\n nextDraftSettings,\n _initialPresetKeys,\n nextSelectedModes,\n ),\n );\n clearThemePreviewAppliedSettings();\n setDefaultSettings({\n theme: resetTheme,\n snackbar: defaultSnackbarTheme,\n snackbarProviderProps: defaultSnackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleApplyToMain = () => {\n const nextTemporaryState = createThemePreviewTemporaryState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n 'manual',\n );\n\n setThemePreviewDraftSettings(draftSettings);\n persistSelectionState(selectedPresetKeys, selectedModes);\n persistThemePreviewTemporaryState(nextTemporaryState);\n persistThemePreviewAppliedSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n snackbarProviderProps: draftSettings.snackbarProviderProps,\n });\n setTemporarySnapshot(nextTemporaryState);\n setTemporaryComparableSnapshot({\n draftSettings,\n selectionState: nextTemporaryState.selectionState,\n });\n setDefaultSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n snackbarProviderProps: draftSettings.snackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleLoadSettings = (\n theme: OwpSettingsConfigType['theme'],\n snackbarTheme = defaultSnackbarTheme,\n snackbarProviderProps: SnackbarProviderTheme = defaultSnackbarProviderProps,\n ) => {\n const nextDraftSettings = merge({}, currentSettings, {\n theme,\n snackbar: merge({}, defaultSnackbarTheme, snackbarTheme),\n snackbarProviderProps: merge(\n {},\n defaultSnackbarProviderProps,\n snackbarProviderProps,\n ),\n }) as ThemePreviewSettings;\n const nextSelectedModes = getThemePreviewSelectedModes(nextDraftSettings);\n const nextSelectedPresetKeys = getThemePreviewMatchedPresetKeys(\n nextDraftSettings,\n presetThemes,\n presetOptions,\n );\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(nextSelectedPresetKeys, nextSelectedModes);\n setTemporaryComparableSnapshot(\n createThemePreviewTemporaryComparableState(\n activeSection,\n nextDraftSettings,\n nextSelectedPresetKeys,\n nextSelectedModes,\n ),\n );\n persistThemePreviewAppliedSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n snackbarProviderProps: nextDraftSettings.snackbarProviderProps,\n });\n setDefaultSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n snackbarProviderProps: nextDraftSettings.snackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleTemporarySave = (saveType: ThemePreviewTemporaryState['saveType'] = 'manual') => {\n const nextTemporaryState = createThemePreviewTemporaryState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n saveType,\n );\n\n persistThemePreviewTemporaryState(nextTemporaryState);\n setTemporarySnapshot(nextTemporaryState);\n setTemporaryComparableSnapshot({\n draftSettings,\n selectionState: nextTemporaryState.selectionState,\n });\n };\n\n const handleTemporaryLoad = () => {\n const temporaryState = getThemePreviewTemporaryState();\n\n if (!temporaryState) {\n return false;\n }\n\n const nextDraftSettings = cloneThemePreviewSettings(\n merge({}, currentSettings, temporaryState.draftSettings) as ThemePreviewSettings,\n );\n const nextSelectedPresetKeys = merge(\n {},\n selectedPresetKeys,\n temporaryState.selectionState.selectedPresetKeys,\n ) as ThemePreviewPresetKeyBySection;\n const nextSelectedModes = merge(\n {},\n selectedModes,\n temporaryState.selectionState.selectedModes,\n ) as Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n const nextActiveSection = temporaryState.selectionState.activeSection;\n const resolvedSelectedPresetKeys = getThemePreviewMatchedPresetKeys(\n nextDraftSettings,\n presetThemes,\n presetOptions,\n );\n const resolvedSelectedModes = getThemePreviewSelectedModes(nextDraftSettings);\n\n commitDraftSettings(nextDraftSettings);\n setActiveSection(nextActiveSection);\n commitSelectionState(\n isEqual(nextSelectedPresetKeys, resolvedSelectedPresetKeys)\n ? nextSelectedPresetKeys\n : resolvedSelectedPresetKeys,\n isEqual(nextSelectedModes, resolvedSelectedModes) ? nextSelectedModes : resolvedSelectedModes,\n );\n setTemporarySnapshot(temporaryState);\n setTemporaryComparableSnapshot({\n draftSettings: nextDraftSettings,\n selectionState: {\n ...temporaryState.selectionState,\n selectedModes: resolvedSelectedModes,\n selectedPresetKeys: resolvedSelectedPresetKeys,\n },\n });\n\n return true;\n };\n\n return {\n activeSection,\n canApplyToMain,\n draftSettings,\n hasTemporaryChanges,\n hasTemporarySnapshot,\n presetOptions,\n resetVersion,\n selectedModes,\n selectedPresetKeys,\n setActiveSection,\n handlePaletteValueChange,\n handlePaletteValuesChange,\n handlePaletteValueReset,\n handlePaletteValuesReset,\n handleApplyToMain,\n handleLoadSettings,\n handlePresetKeyChange,\n handlePresetModeChange,\n handleReset,\n handleTemporaryLoad,\n handleTemporarySave,\n };\n}\n"],"names":["THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX","isThemePreviewPresetSectionKey","sectionKey","isThemePreviewCustomSection","__name","getThemePreviewSelectedModes","settings","createThemePreviewTemporaryState","activeSection","draftSettings","selectedPresetKeys","selectedModes","saveType","cloneThemePreviewSettings","dayjs","createThemePreviewTemporaryComparableState","getResetSectionTarget","canUseEmptyResetValue","getResetPathValue","path","pathSource","resolvedPath","pathKeys","currentValue","pathKey","useThemePreview","initialSection","_initialPresetKeys","presetThemes","resetTheme","currentSettings","useGetCurrentSettings","setDefaultSettings","useSetDefaultSettings","presetOptions","useMemo","getThemePreviewPresetOptions","initialDraftSettings","getThemePreviewDraftSettings","openedDraftSettings","useState","initialSelectionState","getThemePreviewSelectionState","resetSettings","getThemePreviewResetSettings","defaultSnackbarTheme","currentSnackbarTheme","merge","currentSnackbarProviderProps","defaultSnackbarProviderProps","setActiveSection","setDraftSettings","setSelectedPresetKeys","setSelectedModes","resetVersion","setResetVersion","temporarySnapshot","setTemporarySnapshot","getThemePreviewTemporaryState","temporaryComparableSnapshot","setTemporaryComparableSnapshot","hasTemporarySnapshot","hasTemporaryChanges","isEqual","canApplyToMain","persistSelectionState","nextPresetKeys","nextSelectedModes","setThemePreviewSelectionState","persistDraftSettings","nextDraftSettings","setThemePreviewDraftSettings","commitDraftSettings","commitSelectionState","handlePaletteValueChange","value","getThemePreviewPaletteValue","setThemePreviewPaletteValue","THEME_PREVIEW_CUSTOM_PRESET_KEY","handlePaletteValuesChange","updates","changedUpdates","setThemePreviewPaletteValues","handlePaletteValuesReset","paths","uniquePaths","temporaryValue","initialValue","prevState","nextTemporaryState","persistThemePreviewTemporaryState","persistThemePreviewAppliedSettings","theme","snackbarTheme","snackbarProviderProps","nextSelectedPresetKeys","getThemePreviewMatchedPresetKeys","presetKey","presetTheme","applyThemePreviewPreset","mode","nextPresetOption","getThemePreviewPresetOptionsByMode","_b","_a","_d","_c","_f","_e","clearThemePreviewAppliedSettings","temporaryState","nextActiveSection","resolvedSelectedPresetKeys","resolvedSelectedModes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useThemePreview.js","sources":["../../../../src/features/themePreview/hooks/useThemePreview.ts"],"sourcesContent":["import {\n clearThemePreviewAppliedSettings,\n getThemePreviewTemporaryState,\n persistThemePreviewAppliedSettings,\n persistThemePreviewTemporaryState,\n type ThemePreviewTemporaryState,\n} from '@/features/themePreview/configs/previewStorage';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport { useGetCurrentSettings, useSetDefaultSettings } from '@/hooks';\nimport type { OwpSettingsConfigType } from '@/types';\nimport { isEqual, merge } from 'es-toolkit/compat';\nimport { useMemo, useState } from 'react';\nimport type { PartialDeep } from 'type-fest';\nimport type {\n ThemePreviewMode,\n ThemePreviewPresetKeyBySection,\n ThemePreviewPresetSectionKey,\n ThemePreviewPresetThemes,\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n applyThemePreviewPreset,\n getThemePreviewPaletteValue,\n cloneThemePreviewSettings,\n getThemePreviewDraftSettings,\n getThemePreviewMatchedPresetKeys,\n getThemePreviewPresetOptions,\n getThemePreviewPresetOptionsByMode,\n getThemePreviewResetSettings,\n getThemePreviewSelectionState,\n isThemePreviewCustomSection,\n setThemePreviewDraftSettings,\n setThemePreviewPaletteValue,\n setThemePreviewPaletteValues,\n setThemePreviewSelectionState,\n THEME_PREVIEW_CUSTOM_PRESET_KEY,\n} from '../utils';\nimport dayjs from '@/dayjs';\n\ninterface UseThemePreviewOptions {\n initialSection?: ThemePreviewSectionKey;\n initialPresetKeys: ThemePreviewPresetKeyBySection;\n presetThemes: ThemePreviewPresetThemes;\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>;\n}\n\ntype ThemePreviewSettingsWithSnackbarProviderProps = OwpSettingsConfigType & {\n snackbarProviderProps?: SnackbarProviderTheme;\n};\n\nconst THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX = 'snackbarProviderProps.';\n\nfunction isThemePreviewPresetSectionKey(\n sectionKey: ThemePreviewSectionKey,\n): sectionKey is ThemePreviewPresetSectionKey {\n return !isThemePreviewCustomSection(sectionKey);\n}\n\nfunction getThemePreviewSelectedModes(settings: OwpSettingsConfigType) {\n return {\n main: settings.theme.main.palette.mode === 'dark' ? 'dark' : 'light',\n navbar: settings.theme.navbar.palette.mode === 'dark' ? 'dark' : 'light',\n toolbar: settings.theme.toolbar.palette.mode === 'dark' ? 'dark' : 'light',\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n}\n\nfunction createThemePreviewTemporaryState(\n activeSection: ThemePreviewSectionKey,\n draftSettings: ThemePreviewSettings,\n selectedPresetKeys: ThemePreviewPresetKeyBySection,\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n saveType: ThemePreviewTemporaryState['saveType'],\n) {\n return {\n draftSettings: cloneThemePreviewSettings(draftSettings),\n savedAt: dayjs().toISOString(),\n saveType,\n selectionState: {\n activeSection,\n selectedModes,\n selectedPresetKeys,\n },\n version: 1,\n } satisfies ThemePreviewTemporaryState;\n}\n\nfunction createThemePreviewTemporaryComparableState(\n activeSection: ThemePreviewSectionKey,\n draftSettings: ThemePreviewSettings,\n selectedPresetKeys: ThemePreviewPresetKeyBySection,\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n) {\n return {\n draftSettings,\n selectionState: {\n activeSection,\n selectedModes,\n selectedPresetKeys,\n },\n };\n}\n\nfunction getResetSectionTarget(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n) {\n switch (sectionKey) {\n case 'grid':\n return settings.theme.main.grid;\n case 'table':\n return settings.theme.main.table;\n case 'snackbar':\n return settings.snackbar;\n default:\n return settings.theme[sectionKey].palette;\n }\n}\n\nfunction canUseEmptyResetValue(sectionKey: ThemePreviewSectionKey) {\n return sectionKey === 'grid' || sectionKey === 'table';\n}\n\nfunction getResetPathValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n) {\n const [pathSource, resolvedPath] = path.startsWith(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX)\n ? [\n settings.snackbarProviderProps,\n path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length),\n ]\n : [getResetSectionTarget(settings, sectionKey), path];\n\n const pathKeys = resolvedPath.split('.');\n let currentValue: unknown = pathSource;\n\n for (const pathKey of pathKeys) {\n if (\n !currentValue ||\n typeof currentValue !== 'object' ||\n !(pathKey in (currentValue as Record<string, unknown>))\n ) {\n return {\n found: false,\n value: '',\n } as const;\n }\n\n currentValue = (currentValue as Record<string, unknown>)[pathKey];\n }\n\n if (typeof currentValue === 'number') {\n return {\n found: true,\n value: String(currentValue),\n } as const;\n }\n\n if (typeof currentValue === 'string') {\n if (!currentValue.trim() && !canUseEmptyResetValue(sectionKey)) {\n return {\n found: false,\n value: '',\n } as const;\n }\n\n return {\n found: true,\n value: currentValue,\n } as const;\n }\n\n return {\n found: false,\n value: '',\n } as const;\n}\n\nexport function useThemePreview({\n initialSection = 'main',\n initialPresetKeys: _initialPresetKeys,\n presetThemes,\n resetTheme,\n}: UseThemePreviewOptions) {\n const currentSettings = useGetCurrentSettings() as OwpSettingsConfigType;\n const setDefaultSettings = useSetDefaultSettings();\n const presetOptions = useMemo(() => getThemePreviewPresetOptions(presetThemes), [presetThemes]);\n const initialDraftSettings = getThemePreviewDraftSettings(currentSettings);\n const [openedDraftSettings] = useState(() => cloneThemePreviewSettings(initialDraftSettings));\n const initialSelectionState = useMemo(\n () => getThemePreviewSelectionState(currentSettings, _initialPresetKeys, presetThemes),\n [currentSettings, _initialPresetKeys, presetThemes],\n );\n const resetSettings = useMemo(\n () => getThemePreviewResetSettings(currentSettings, resetTheme, defaultSnackbarTheme),\n [currentSettings, resetTheme],\n );\n const currentSnackbarTheme = useMemo(\n () => merge({}, defaultSnackbarTheme, currentSettings.snackbar),\n [currentSettings],\n );\n const currentSnackbarProviderProps = useMemo(\n () =>\n merge(\n {},\n defaultSnackbarProviderProps,\n (currentSettings as ThemePreviewSettingsWithSnackbarProviderProps)\n .snackbarProviderProps,\n ) as SnackbarProviderTheme,\n [currentSettings],\n );\n\n const [activeSection, setActiveSection] = useState<ThemePreviewSectionKey>(initialSection);\n const [draftSettings, setDraftSettings] = useState<ThemePreviewSettings>(() => initialDraftSettings);\n const [selectedPresetKeys, setSelectedPresetKeys] = useState<ThemePreviewPresetKeyBySection>(\n initialSelectionState.selectedPresetKeys,\n );\n const [selectedModes, setSelectedModes] = useState<\n Record<ThemePreviewPresetSectionKey, ThemePreviewMode>\n >(initialSelectionState.selectedModes);\n const [resetVersion, setResetVersion] = useState(0);\n const [temporarySnapshot, setTemporarySnapshot] = useState(() => getThemePreviewTemporaryState());\n const [temporaryComparableSnapshot, setTemporaryComparableSnapshot] = useState(() =>\n createThemePreviewTemporaryComparableState(\n initialSection,\n initialDraftSettings,\n initialSelectionState.selectedPresetKeys,\n initialSelectionState.selectedModes,\n ),\n );\n const hasTemporarySnapshot = Boolean(temporarySnapshot);\n const hasTemporaryChanges =\n !isEqual(\n createThemePreviewTemporaryComparableState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n ),\n temporaryComparableSnapshot,\n );\n const canApplyToMain =\n !isEqual(currentSettings.theme, draftSettings.theme) ||\n !isEqual(currentSnackbarTheme, draftSettings.snackbar) ||\n !isEqual(currentSnackbarProviderProps, draftSettings.snackbarProviderProps);\n\n const persistSelectionState = (\n nextPresetKeys: ThemePreviewPresetKeyBySection,\n nextSelectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n ) => {\n setThemePreviewSelectionState({\n selectedPresetKeys: nextPresetKeys,\n selectedModes: nextSelectedModes,\n });\n };\n\n const persistDraftSettings = (nextDraftSettings: ThemePreviewSettings) => {\n setThemePreviewDraftSettings(nextDraftSettings);\n return nextDraftSettings;\n };\n const commitDraftSettings = (nextDraftSettings: ThemePreviewSettings) => {\n setDraftSettings(nextDraftSettings);\n return persistDraftSettings(nextDraftSettings);\n };\n\n const commitSelectionState = (\n nextPresetKeys: ThemePreviewPresetKeyBySection,\n nextSelectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>,\n ) => {\n setSelectedPresetKeys(nextPresetKeys);\n setSelectedModes(nextSelectedModes);\n persistSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handlePaletteValueChange = (path: string, value: string) => {\n if (getThemePreviewPaletteValue(draftSettings, activeSection, path) === value) {\n return;\n }\n\n const nextDraftSettings = setThemePreviewPaletteValue(draftSettings, activeSection, path, value);\n\n commitDraftSettings(nextDraftSettings);\n\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n };\n\n commitSelectionState(nextPresetKeys, selectedModes);\n };\n\n const handlePaletteValuesChange = (updates: Array<{ path: string; value: string }>) => {\n const changedUpdates = updates.filter(\n ({ path, value }) => getThemePreviewPaletteValue(draftSettings, activeSection, path) !== value,\n );\n\n if (!changedUpdates.length) {\n return;\n }\n\n const nextDraftSettings = setThemePreviewPaletteValues(\n draftSettings,\n activeSection,\n changedUpdates,\n );\n\n commitDraftSettings(nextDraftSettings);\n\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: THEME_PREVIEW_CUSTOM_PRESET_KEY,\n };\n\n commitSelectionState(nextPresetKeys, selectedModes);\n };\n\n const handlePaletteValuesReset = (paths: string[]) => {\n const uniquePaths = [...new Set(paths)];\n\n if (!uniquePaths.length) {\n return;\n }\n\n const updates = uniquePaths.map((path) => {\n const temporaryValue = temporarySnapshot\n ? getResetPathValue(\n temporarySnapshot.draftSettings as ThemePreviewSettings,\n activeSection,\n path,\n )\n : { found: false, value: '' };\n const initialValue = getResetPathValue(openedDraftSettings, activeSection, path);\n const currentValue = getResetPathValue(draftSettings, activeSection, path);\n\n return {\n path,\n value: temporaryValue.found\n ? temporaryValue.value\n : initialValue.found\n ? initialValue.value\n : currentValue.value,\n };\n });\n\n const nextDraftSettings = setThemePreviewPaletteValues(draftSettings, activeSection, updates);\n\n commitDraftSettings(nextDraftSettings);\n\n setResetVersion((prevState) => prevState + 1);\n };\n\n const handlePaletteValueReset = (path: string) => {\n handlePaletteValuesReset([path]);\n };\n\n const handlePresetModeChange = (mode: ThemePreviewMode) => {\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n const nextSelectedModes = {\n ...selectedModes,\n [activeSection]: mode,\n };\n\n const nextPresetOption = getThemePreviewPresetOptionsByMode(\n presetOptions,\n activeSection,\n mode,\n )[0];\n\n if (!nextPresetOption) {\n commitSelectionState(selectedPresetKeys, nextSelectedModes);\n return;\n }\n\n const presetTheme = presetThemes[nextPresetOption.key];\n\n if (!presetTheme) {\n commitSelectionState(selectedPresetKeys, nextSelectedModes);\n return;\n }\n\n commitDraftSettings(applyThemePreviewPreset(draftSettings, activeSection, presetTheme));\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: nextPresetOption.key,\n };\n\n commitSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handlePresetKeyChange = (presetKey: string) => {\n if (!isThemePreviewPresetSectionKey(activeSection)) {\n return;\n }\n\n if (presetKey === THEME_PREVIEW_CUSTOM_PRESET_KEY) {\n return;\n }\n\n const presetTheme = presetThemes[presetKey];\n\n if (!presetTheme) {\n return;\n }\n\n commitDraftSettings(applyThemePreviewPreset(draftSettings, activeSection, presetTheme));\n const nextSelectedModes = {\n ...selectedModes,\n [activeSection]: presetTheme.palette.mode === 'dark' ? 'dark' : 'light',\n };\n const nextPresetKeys = {\n ...selectedPresetKeys,\n [activeSection]: presetKey,\n };\n\n commitSelectionState(nextPresetKeys, nextSelectedModes);\n };\n\n const handleReset = () => {\n const nextDraftSettings = merge({}, cloneThemePreviewSettings(resetSettings), {\n snackbarProviderProps: defaultSnackbarProviderProps,\n }) as ThemePreviewSettings;\n const nextSelectedModes = {\n main: resetTheme.main?.palette?.mode === 'dark' ? 'dark' : 'light',\n navbar: resetTheme.navbar?.palette?.mode === 'dark' ? 'dark' : 'light',\n toolbar: resetTheme.toolbar?.palette?.mode === 'dark' ? 'dark' : 'light',\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(_initialPresetKeys, nextSelectedModes);\n setTemporaryComparableSnapshot(\n createThemePreviewTemporaryComparableState(\n activeSection,\n nextDraftSettings,\n _initialPresetKeys,\n nextSelectedModes,\n ),\n );\n clearThemePreviewAppliedSettings();\n setDefaultSettings({\n theme: resetTheme,\n snackbar: defaultSnackbarTheme,\n snackbarProviderProps: defaultSnackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleApplyToMain = () => {\n const nextTemporaryState = createThemePreviewTemporaryState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n 'manual',\n );\n\n setThemePreviewDraftSettings(draftSettings);\n persistSelectionState(selectedPresetKeys, selectedModes);\n persistThemePreviewTemporaryState(nextTemporaryState);\n persistThemePreviewAppliedSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n snackbarProviderProps: draftSettings.snackbarProviderProps,\n });\n setTemporarySnapshot(nextTemporaryState);\n setTemporaryComparableSnapshot({\n draftSettings,\n selectionState: nextTemporaryState.selectionState,\n });\n setDefaultSettings({\n theme: draftSettings.theme,\n snackbar: draftSettings.snackbar,\n snackbarProviderProps: draftSettings.snackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleLoadSettings = (\n theme: OwpSettingsConfigType['theme'],\n snackbarTheme = defaultSnackbarTheme,\n snackbarProviderProps: SnackbarProviderTheme = defaultSnackbarProviderProps,\n ) => {\n const nextDraftSettings = merge({}, currentSettings, {\n theme,\n snackbar: merge({}, defaultSnackbarTheme, snackbarTheme),\n snackbarProviderProps: merge(\n {},\n defaultSnackbarProviderProps,\n snackbarProviderProps,\n ),\n }) as ThemePreviewSettings;\n const nextSelectedModes = getThemePreviewSelectedModes(nextDraftSettings);\n const nextSelectedPresetKeys = getThemePreviewMatchedPresetKeys(\n nextDraftSettings,\n presetThemes,\n presetOptions,\n );\n\n commitDraftSettings(nextDraftSettings);\n commitSelectionState(nextSelectedPresetKeys, nextSelectedModes);\n setTemporaryComparableSnapshot(\n createThemePreviewTemporaryComparableState(\n activeSection,\n nextDraftSettings,\n nextSelectedPresetKeys,\n nextSelectedModes,\n ),\n );\n persistThemePreviewAppliedSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n snackbarProviderProps: nextDraftSettings.snackbarProviderProps,\n });\n setDefaultSettings({\n theme,\n snackbar: nextDraftSettings.snackbar,\n snackbarProviderProps: nextDraftSettings.snackbarProviderProps,\n } as PartialDeep<OwpSettingsConfigType>);\n };\n\n const handleTemporarySave = (saveType: ThemePreviewTemporaryState['saveType'] = 'manual') => {\n const nextTemporaryState = createThemePreviewTemporaryState(\n activeSection,\n draftSettings,\n selectedPresetKeys,\n selectedModes,\n saveType,\n );\n\n persistThemePreviewTemporaryState(nextTemporaryState);\n setTemporarySnapshot(nextTemporaryState);\n setTemporaryComparableSnapshot({\n draftSettings,\n selectionState: nextTemporaryState.selectionState,\n });\n };\n\n const handleTemporaryLoad = () => {\n const temporaryState = getThemePreviewTemporaryState();\n\n if (!temporaryState) {\n return false;\n }\n\n const nextDraftSettings = cloneThemePreviewSettings(\n merge({}, currentSettings, temporaryState.draftSettings) as ThemePreviewSettings,\n );\n const nextSelectedPresetKeys = merge(\n {},\n selectedPresetKeys,\n temporaryState.selectionState.selectedPresetKeys,\n ) as ThemePreviewPresetKeyBySection;\n const nextSelectedModes = merge(\n {},\n selectedModes,\n temporaryState.selectionState.selectedModes,\n ) as Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n const nextActiveSection = temporaryState.selectionState.activeSection;\n const resolvedSelectedPresetKeys = getThemePreviewMatchedPresetKeys(\n nextDraftSettings,\n presetThemes,\n presetOptions,\n );\n const resolvedSelectedModes = getThemePreviewSelectedModes(nextDraftSettings);\n\n commitDraftSettings(nextDraftSettings);\n setActiveSection(nextActiveSection);\n commitSelectionState(\n isEqual(nextSelectedPresetKeys, resolvedSelectedPresetKeys)\n ? nextSelectedPresetKeys\n : resolvedSelectedPresetKeys,\n isEqual(nextSelectedModes, resolvedSelectedModes) ? nextSelectedModes : resolvedSelectedModes,\n );\n setTemporarySnapshot(temporaryState);\n setTemporaryComparableSnapshot({\n draftSettings: nextDraftSettings,\n selectionState: {\n ...temporaryState.selectionState,\n selectedModes: resolvedSelectedModes,\n selectedPresetKeys: resolvedSelectedPresetKeys,\n },\n });\n\n return true;\n };\n\n return {\n activeSection,\n canApplyToMain,\n draftSettings,\n hasTemporaryChanges,\n hasTemporarySnapshot,\n presetOptions,\n resetVersion,\n selectedModes,\n selectedPresetKeys,\n setActiveSection,\n handlePaletteValueChange,\n handlePaletteValuesChange,\n handlePaletteValueReset,\n handlePaletteValuesReset,\n handleApplyToMain,\n handleLoadSettings,\n handlePresetKeyChange,\n handlePresetModeChange,\n handleReset,\n handleTemporaryLoad,\n handleTemporarySave,\n };\n}\n"],"names":["THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX","isThemePreviewPresetSectionKey","sectionKey","isThemePreviewCustomSection","__name","getThemePreviewSelectedModes","settings","createThemePreviewTemporaryState","activeSection","draftSettings","selectedPresetKeys","selectedModes","saveType","cloneThemePreviewSettings","dayjs","createThemePreviewTemporaryComparableState","getResetSectionTarget","canUseEmptyResetValue","getResetPathValue","path","pathSource","resolvedPath","pathKeys","currentValue","pathKey","useThemePreview","initialSection","_initialPresetKeys","presetThemes","resetTheme","currentSettings","useGetCurrentSettings","setDefaultSettings","useSetDefaultSettings","presetOptions","useMemo","getThemePreviewPresetOptions","initialDraftSettings","getThemePreviewDraftSettings","openedDraftSettings","useState","initialSelectionState","getThemePreviewSelectionState","resetSettings","getThemePreviewResetSettings","defaultSnackbarTheme","currentSnackbarTheme","merge","currentSnackbarProviderProps","defaultSnackbarProviderProps","setActiveSection","setDraftSettings","setSelectedPresetKeys","setSelectedModes","resetVersion","setResetVersion","temporarySnapshot","setTemporarySnapshot","getThemePreviewTemporaryState","temporaryComparableSnapshot","setTemporaryComparableSnapshot","hasTemporarySnapshot","hasTemporaryChanges","isEqual","canApplyToMain","persistSelectionState","nextPresetKeys","nextSelectedModes","setThemePreviewSelectionState","persistDraftSettings","nextDraftSettings","setThemePreviewDraftSettings","commitDraftSettings","commitSelectionState","handlePaletteValueChange","value","getThemePreviewPaletteValue","setThemePreviewPaletteValue","THEME_PREVIEW_CUSTOM_PRESET_KEY","handlePaletteValuesChange","updates","changedUpdates","setThemePreviewPaletteValues","handlePaletteValuesReset","paths","uniquePaths","temporaryValue","initialValue","prevState","nextTemporaryState","persistThemePreviewTemporaryState","persistThemePreviewAppliedSettings","theme","snackbarTheme","snackbarProviderProps","nextSelectedPresetKeys","getThemePreviewMatchedPresetKeys","presetKey","presetTheme","applyThemePreviewPreset","mode","nextPresetOption","getThemePreviewPresetOptionsByMode","_b","_a","_d","_c","_f","_e","clearThemePreviewAppliedSettings","temporaryState","nextActiveSection","resolvedSelectedPresetKeys","resolvedSelectedModes"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
var a = Object.defineProperty;
|
|
2
2
|
var s = (o, t) => a(o, "name", { value: t, configurable: !0 });
|
|
3
|
-
import { STORAGE_ACCESS_TOKEN_KEY as f } from "
|
|
4
|
-
import { useOwpAppContext as C } from "
|
|
5
|
-
import { useGetCurrentUser as p } from "
|
|
6
|
-
import { useSetCommonCodeList as l } from "
|
|
7
|
-
import { transformCommonCodeBasedOnGroupId as d } from "
|
|
8
|
-
import { getApiLanguageCode as g } from "
|
|
3
|
+
import { STORAGE_ACCESS_TOKEN_KEY as f } from "../../constants/localStorageKeys.js";
|
|
4
|
+
import { useOwpAppContext as C } from "../../contexts/OwpAppProvider.js";
|
|
5
|
+
import { useGetCurrentUser as p } from "../useCurrentUser.js";
|
|
6
|
+
import { useSetCommonCodeList as l } from "../useCommonCodeList.js";
|
|
7
|
+
import { transformCommonCodeBasedOnGroupId as d } from "../../utils/commonCodeUtils.js";
|
|
8
|
+
import { getApiLanguageCode as g } from "../../utils/language.js";
|
|
9
9
|
import { useQuery as T } from "@tanstack/react-query";
|
|
10
10
|
import { useEffect as w } from "react";
|
|
11
11
|
function S(o, t) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInitCommonCodes.js","sources":["../../../src/hooks/internal/useInitCommonCodes.ts"],"sourcesContent":["import { STORAGE_ACCESS_TOKEN_KEY } from '@/constants/localStorageKeys';\nimport { useOwpAppContext } from '@/contexts/OwpAppProvider';\nimport { useGetCurrentUser } from '@/hooks/useCurrentUser';\nimport { useSetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport { CommonCodeRes, transformCommonCodeBasedOnGroupId } from '@/utils/commonCodeUtils';\nimport { getApiLanguageCode } from '@/utils/language';\nimport { useQuery } from '@tanstack/react-query';\nimport { useEffect } from 'react';\n\n/**\n * 공통코드 요청 URL 생성\n * @param apiBaseUrl API base URL\n * @param accessToken 접근 토큰\n */\nfunction createCommonCodeRequestUrl(apiBaseUrl: string, accessToken: string) {\n const baseUrl = new URL(apiBaseUrl.endsWith('/') ? apiBaseUrl : `${apiBaseUrl}/`);\n const requestUrl = new URL('listIpxCommonCodeTotalAC', baseUrl);\n\n requestUrl.searchParams.set('TOKEN', accessToken);\n requestUrl.searchParams.set('i18nextLng', getApiLanguageCode());\n\n return requestUrl.toString();\n}\n\n/**\n * 공통코드 전역 캐시 초기화\n */\nexport function useInitCommonCodes() {\n const { env } = useOwpAppContext();\n const currentUser = useGetCurrentUser();\n const setCommonCodeList = useSetCommonCodeList();\n\n const apiBaseUrl = `${env?.apiBaseUrl ?? ''}`.trim();\n const accessToken =\n `${currentUser?.token ?? localStorage.getItem(STORAGE_ACCESS_TOKEN_KEY) ?? ''}`.trim();\n const enabled = Boolean(apiBaseUrl && accessToken);\n\n const { data } = useQuery({\n queryKey: ['owp', 'common-code-list', accessToken],\n enabled,\n staleTime: Infinity,\n gcTime: Infinity,\n queryFn: async () => {\n const response = await fetch(createCommonCodeRequestUrl(apiBaseUrl, accessToken));\n const data = (await response.json()) as CommonCodeRes & {\n resultCode?: string;\n resultMessage?: string;\n };\n\n if (!response.ok || data?.resultCode === 'STATUS_0') {\n throw new Error(data?.resultMessage ?? 'Failed to fetch common codes');\n }\n\n return transformCommonCodeBasedOnGroupId(data?.resultData ?? []);\n },\n });\n\n useEffect(() => {\n if (!data) {\n return;\n }\n\n setCommonCodeList(data);\n }, [data, setCommonCodeList]);\n}\n"],"names":["createCommonCodeRequestUrl","apiBaseUrl","accessToken","baseUrl","requestUrl","getApiLanguageCode","__name","useInitCommonCodes","env","useOwpAppContext","currentUser","useGetCurrentUser","setCommonCodeList","useSetCommonCodeList","STORAGE_ACCESS_TOKEN_KEY","enabled","data","useQuery","response","transformCommonCodeBasedOnGroupId","useEffect"],"mappings":";;;;;;;;;;AAcA,SAASA,EAA2BC,GAAoBC,GAAqB;AAC3E,QAAMC,IAAU,IAAI,IAAIF,EAAW,SAAS,GAAG,IAAIA,IAAa,GAAGA,CAAU,GAAG,GAC1EG,IAAa,IAAI,IAAI,4BAA4BD,CAAO;AAE9D,SAAAC,EAAW,aAAa,IAAI,SAASF,CAAW,GAChDE,EAAW,aAAa,IAAI,cAAcC,EAAA,CAAoB,GAEvDD,EAAW,SAAA;AACpB;AARSE,EAAAN,GAAA;AAaF,SAASO,IAAqB;AACnC,QAAM,EAAE,KAAAC,EAAA,IAAQC,EAAA,GACVC,IAAcC,EAAA,GACdC,IAAoBC,EAAA,GAEpBZ,IAAa,IAAGO,KAAA,gBAAAA,EAAK,eAAc,EAAE,GAAG,KAAA,GACxCN,IACJ,IAAGQ,KAAA,gBAAAA,EAAa,UAAS,aAAa,QAAQI,CAAwB,KAAK,EAAE,GAAG,KAAA,GAC5EC,IAAU,GAAQd,KAAcC,IAEhC,EAAE,MAAAc,EAAA,IAASC,EAAS;AAAA,IACxB,UAAU,CAAC,OAAO,oBAAoBf,CAAW;AAAA,IACjD,SAAAa;AAAA,IACA,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS,gBAAAT,EAAA,YAAY;AACnB,YAAMY,IAAW,MAAM,MAAMlB,EAA2BC,GAAYC,CAAW,CAAC,GAC1Ec,IAAQ,MAAME,EAAS,KAAA;AAK7B,UAAI,CAACA,EAAS,OAAMF,KAAAA,gBAAAA,EAAM,gBAAe;AACvC,cAAM,IAAI,OAAMA,KAAAA,gBAAAA,EAAM,kBAAiB,8BAA8B;AAGvE,aAAOG,GAAkCH,KAAAA,gBAAAA,EAAM,eAAc,EAAE;AAAA,IACjE,GAZS;AAAA,EAYT,CACD;AAED,EAAAI,EAAU,MAAM;AACd,IAAKJ,KAILJ,EAAkBI,CAAI;AAAA,EACxB,GAAG,CAACA,GAAMJ,CAAiB,CAAC;AAC9B;AArCgBN,EAAAC,GAAA;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var a = Object.defineProperty;
|
|
2
|
+
var c = (t, r) => a(t, "name", { value: r, configurable: !0 });
|
|
3
|
+
import { useState as f, useRef as i, useEffect as m } from "react";
|
|
4
|
+
const d = 400, T = /* @__PURE__ */ c((t, r = d) => {
|
|
5
|
+
const [s, n] = f(!!t), u = i(t ? Date.now() : null), e = i(null);
|
|
6
|
+
return m(() => {
|
|
7
|
+
if (e.current && (clearTimeout(e.current), e.current = null), t) {
|
|
8
|
+
u.current = Date.now(), n(!0);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const l = u.current;
|
|
12
|
+
if (l === null) {
|
|
13
|
+
n(!1);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const o = r - (Date.now() - l);
|
|
17
|
+
if (o <= 0) {
|
|
18
|
+
u.current = null, n(!1);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
return e.current = setTimeout(() => {
|
|
22
|
+
u.current = null, e.current = null, n(!1);
|
|
23
|
+
}, o), () => {
|
|
24
|
+
e.current && (clearTimeout(e.current), e.current = null);
|
|
25
|
+
};
|
|
26
|
+
}, [t, r]), !!(t || s);
|
|
27
|
+
}, "useMinimumVisibleState");
|
|
28
|
+
export {
|
|
29
|
+
T as useMinimumVisibleState
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useMinimumVisibleState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMinimumVisibleState.js","sources":["../../../src/hooks/internal/useMinimumVisibleState.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nconst DEFAULT_MIN_VISIBLE_DURATION = 400;\n\n/**\n * 최소 표시 상태\n * @param visible 원본 표시 상태\n * @param minDuration 최소 표시 시간\n */\nconst useMinimumVisibleState = (visible?: boolean, minDuration = DEFAULT_MIN_VISIBLE_DURATION) => {\n const [minimumVisible, setMinimumVisible] = useState(Boolean(visible));\n const visibleStartedAtRef = useRef<number | null>(visible ? Date.now() : null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n if (visible) {\n visibleStartedAtRef.current = Date.now();\n setMinimumVisible(true);\n\n return undefined;\n }\n\n const visibleStartedAt = visibleStartedAtRef.current;\n\n if (visibleStartedAt === null) {\n setMinimumVisible(false);\n\n return undefined;\n }\n\n const remainingDuration = minDuration - (Date.now() - visibleStartedAt);\n\n if (remainingDuration <= 0) {\n visibleStartedAtRef.current = null;\n setMinimumVisible(false);\n\n return undefined;\n }\n\n timeoutRef.current = setTimeout(() => {\n visibleStartedAtRef.current = null;\n timeoutRef.current = null;\n setMinimumVisible(false);\n }, remainingDuration);\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n }, [visible, minDuration]);\n\n return Boolean(visible || minimumVisible);\n};\n\nexport { useMinimumVisibleState };\n"],"names":["DEFAULT_MIN_VISIBLE_DURATION","useMinimumVisibleState","__name","visible","minDuration","minimumVisible","setMinimumVisible","useState","visibleStartedAtRef","useRef","timeoutRef","useEffect","visibleStartedAt","remainingDuration"],"mappings":";;;AAEA,MAAMA,IAA+B,KAO/BC,IAAyB,gBAAAC,EAAA,CAACC,GAAmBC,IAAcJ,MAAiC;AAChG,QAAM,CAACK,GAAgBC,CAAiB,IAAIC,EAAS,EAAQJ,CAAQ,GAC/DK,IAAsBC,EAAsBN,IAAU,KAAK,IAAA,IAAQ,IAAI,GACvEO,IAAaD,EAA6C,IAAI;AAEpE,SAAAE,EAAU,MAAM;AAMd,QALID,EAAW,YACb,aAAaA,EAAW,OAAO,GAC/BA,EAAW,UAAU,OAGnBP,GAAS;AACX,MAAAK,EAAoB,UAAU,KAAK,IAAA,GACnCF,EAAkB,EAAI;AAEtB;AAAA,IACF;AAEA,UAAMM,IAAmBJ,EAAoB;AAE7C,QAAII,MAAqB,MAAM;AAC7B,MAAAN,EAAkB,EAAK;AAEvB;AAAA,IACF;AAEA,UAAMO,IAAoBT,KAAe,KAAK,IAAA,IAAQQ;AAEtD,QAAIC,KAAqB,GAAG;AAC1B,MAAAL,EAAoB,UAAU,MAC9BF,EAAkB,EAAK;AAEvB;AAAA,IACF;AAEA,WAAAI,EAAW,UAAU,WAAW,MAAM;AACpC,MAAAF,EAAoB,UAAU,MAC9BE,EAAW,UAAU,MACrBJ,EAAkB,EAAK;AAAA,IACzB,GAAGO,CAAiB,GAEb,MAAM;AACX,MAAIH,EAAW,YACb,aAAaA,EAAW,OAAO,GAC/BA,EAAW,UAAU;AAAA,IAEzB;AAAA,EACF,GAAG,CAACP,GAASC,CAAW,CAAC,GAElB,GAAQD,KAAWE;AAC5B,GAlD+B;"}
|