@owp/core 2.5.50 → 2.5.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/components/OwpLoading/OwpLoading.js +7 -6
  2. package/dist/components/OwpLoading/OwpLoading.js.map +1 -1
  3. package/dist/components/OwpNavLinkAdapter/OwpNavLinkAdapter.js +100 -28
  4. package/dist/components/OwpNavLinkAdapter/OwpNavLinkAdapter.js.map +1 -1
  5. package/dist/components/OwpQuerySelector/OwpQuerySelector.js +80 -74
  6. package/dist/components/OwpQuerySelector/OwpQuerySelector.js.map +1 -1
  7. package/dist/components/OwpSuspense/OwpSuspense.js +66 -60
  8. package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
  9. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  10. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +351 -295
  11. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  12. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +396 -392
  13. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  14. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +37 -43
  15. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  16. package/dist/contexts/OwpAppContext.js.map +1 -1
  17. package/dist/hooks/internal/useNavigationActiveRouteRemount.js +19 -16
  18. package/dist/hooks/internal/useNavigationActiveRouteRemount.js.map +1 -1
  19. package/dist/hooks/internal/useRouteTransitionLoading.js +49 -0
  20. package/dist/hooks/internal/useRouteTransitionLoading.js.map +1 -0
  21. package/dist/hooks/useCurrentUser.js.map +1 -1
  22. package/dist/hooks/useFormDataUploadMutation.js.map +1 -1
  23. package/dist/layout/Layout.js +107 -34
  24. package/dist/layout/Layout.js.map +1 -1
  25. package/dist/layout/components/navigation/NavBadge.js +8 -8
  26. package/dist/layout/components/navigation/NavBadge.js.map +1 -1
  27. package/dist/layout/components/navigation/NavItem.js +19 -15
  28. package/dist/layout/components/navigation/NavItem.js.map +1 -1
  29. package/dist/layout/components/navigation/Navigation.js +25 -22
  30. package/dist/layout/components/navigation/Navigation.js.map +1 -1
  31. package/dist/layout/components/navigation/NavigationMenu.js +25 -18
  32. package/dist/layout/components/navigation/NavigationMenu.js.map +1 -1
  33. package/dist/layout/components/navigation/vertical/NavVerticalLayout.js +69 -44
  34. package/dist/layout/components/navigation/vertical/NavVerticalLayout.js.map +1 -1
  35. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js +71 -64
  36. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js.map +1 -1
  37. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js +15 -14
  38. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js.map +1 -1
  39. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js +16 -14
  40. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js.map +1 -1
  41. package/dist/layout/components/navigation/vertical/types/NavVerticalLink.js +17 -12
  42. package/dist/layout/components/navigation/vertical/types/NavVerticalLink.js.map +1 -1
  43. package/dist/layout/components/toggles/NavigationSearchToggle.js +163 -164
  44. package/dist/layout/components/toggles/NavigationSearchToggle.js.map +1 -1
  45. package/dist/layout/components/toggles/NavigationShortcutsToggle.js +88 -95
  46. package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
  47. package/dist/types/components/OwpNumberField/OwpNumberField.d.ts +1 -1
  48. package/dist/types/components/OwpPicker/internal/DatePickerInput.d.ts +1 -1
  49. package/dist/types/components/OwpQuerySelector/OwpQuerySelector.d.ts +2 -2
  50. package/dist/types/components/OwpQuerySelector/types/index.d.ts +1 -1
  51. package/dist/types/components/OwpQuerySelector/types/types.d.ts +14 -13
  52. package/dist/types/components/OwpSuspense/OwpSuspense.d.ts +1 -0
  53. package/dist/types/components/OwpTable/OwpFieldTable.d.ts +6 -7
  54. package/dist/types/components/OwpTable/internal/OwpTableBase.d.ts +1 -1
  55. package/dist/types/components/OwpTabs/OwpTab.d.ts +1 -1
  56. package/dist/types/components/OwpTabs/OwpTabs.d.ts +1 -1
  57. package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +5 -1
  58. package/dist/types/contexts/OwpAppContext.d.ts +10 -0
  59. package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +1 -1
  60. package/dist/types/hooks/internal/useRouteTransitionLoading.d.ts +27 -0
  61. package/dist/types/hooks/useCurrentUser.d.ts +5 -2
  62. package/dist/types/hooks/useFormDataUploadMutation.d.ts +9 -3
  63. package/dist/types/hooks/useNavigation.d.ts +1 -1
  64. package/dist/types/index.d.ts +1 -0
  65. package/dist/types/layout/components/navigation/NavItem.d.ts +2 -3
  66. package/dist/types/layout/components/navigation/NavigationMenu.d.ts +5 -5
  67. package/dist/types/layout/components/navigation/vertical/NavVerticalLayout.d.ts +1 -1
  68. package/dist/types/layout/components/navigation/vertical/types/NavVerticalCollapse.d.ts +1 -1
  69. package/dist/types/layout/components/navigation/vertical/types/NavVerticalGroup.d.ts +1 -1
  70. package/dist/types/layout/components/navigation/vertical/types/NavVerticalItem.d.ts +1 -1
  71. package/dist/types/layout/components/navigation/vertical/types/NavVerticalLink.d.ts +1 -1
  72. package/dist/types/store/atoms/owpSettingsAtoms.d.ts +1 -1
  73. package/dist/types/types/OwpApiTypes.d.ts +27 -0
  74. package/dist/types/types/OwpDialogTypes.d.ts +16 -0
  75. package/dist/types/types/OwpRouteTypes.d.ts +10 -0
  76. package/dist/types/types/index.d.ts +7 -2
  77. package/dist/types/utils/internal/navigationSearchUtils.d.ts +22 -0
  78. package/dist/types/utils/internal/navigationUtils.d.ts +22 -27
  79. package/dist/types/utils/treeGridUtil.d.ts +21 -7
  80. package/dist/utils/internal/navigationSearchUtils.js +44 -0
  81. package/dist/utils/internal/navigationSearchUtils.js.map +1 -0
  82. package/dist/utils/internal/navigationUtils.js +38 -123
  83. package/dist/utils/internal/navigationUtils.js.map +1 -1
  84. package/dist/utils/treeGridUtil.js +103 -85
  85. package/dist/utils/treeGridUtil.js.map +1 -1
  86. package/dist/utils.js +51 -49
  87. package/package.json +1 -1
  88. package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js +0 -14
  89. package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js.map +0 -1
  90. package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/defaults.js +0 -24
  91. package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/defaults.js.map +0 -1
  92. package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/string/trim.js +0 -10
  93. package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/string/trim.js.map +0 -1
@@ -1,13 +1,16 @@
1
+ import type { StartPageUser } from '@/utils/getStartPagePath';
1
2
  /**
2
3
  * storage에 보관되는 현재 사용자 정보
3
4
  */
4
- export interface CurrentUser {
5
+ export interface CurrentUser extends StartPageUser {
6
+ /** API access token */
7
+ token?: string;
5
8
  [key: string]: any;
6
9
  }
7
10
  /**
8
11
  * storage-backed 현재 사용자 정보 조회 Hook
9
12
  */
10
- export declare const useGetCurrentUser: () => CurrentUser;
13
+ export declare const useGetCurrentUser: <TUser extends CurrentUser = CurrentUser>() => TUser | undefined;
11
14
  /**
12
15
  * storage-backed 현재 사용자 정보 setter Hook
13
16
  */
@@ -1,8 +1,14 @@
1
1
  import { createFormDataBody, type FormDataUploadBody, type FormDataUploadParams, type TAdditionalFields } from '@/utils/createFormDataBody';
2
2
  export type { FormDataFieldValue, FormDataUploadBody, FormDataUploadParams, TAdditionalFields, } from '@/utils/createFormDataBody';
3
- type FormDataUploadMutationLike = {
4
- mutate: (...args: unknown[]) => void;
5
- };
3
+ /**
4
+ * FormData upload adapter가 호출할 수 있는 mutation 객체
5
+ */
6
+ export interface FormDataUploadMutationLike<TVariables = never, TMutateOptions = never> {
7
+ /** mutation variables를 받아 mutate 실행 */
8
+ mutate: (variables: TVariables, options?: TMutateOptions) => void;
9
+ /** mutation 진행 상태 */
10
+ isPending?: boolean;
11
+ }
6
12
  type FormDataUploadMutationMutateParameters<TMutation extends FormDataUploadMutationLike> = Parameters<TMutation['mutate']>;
7
13
  type FormDataUploadMutationVariables<TMutation extends FormDataUploadMutationLike> = FormDataUploadMutationMutateParameters<TMutation>[0];
8
14
  type FormDataUploadMutateOptions<TMutation extends FormDataUploadMutationLike> = FormDataUploadMutationMutateParameters<TMutation>[1];
@@ -2,7 +2,7 @@ import type { OwpNavItemType } from '@/types/OwpNavigationTypes';
2
2
  /**
3
3
  * storage-backed navigation 목록 조회 Hook
4
4
  */
5
- export declare const useGetNavigationList: () => OwpNavItemType[];
5
+ export declare const useGetNavigationList: () => OwpNavItemType[] | undefined;
6
6
  /**
7
7
  * storage-backed navigation 목록 setter Hook
8
8
  */
@@ -45,4 +45,5 @@ export * from './components/OwpTreeGrid';
45
45
  export * from './components/OwpTreeGrid/OwpTreeGridToolbar';
46
46
  export * from './components/OwpZoomImageSlider/OwpZoomImageSlider';
47
47
  export * from './components/OwpYesNoSelector';
48
+ export type { OwpSelectorBaseChangeEvent, OwpSelectorBaseOption, } from './components/OwpSelectorBase/types';
48
49
  export type { OwpFlatNavItemType, OwpNavBadgeType, OwpNavPermission, OwpNavItemType, OwpPermissionFlag, } from './types/OwpNavigationTypes';
@@ -1,8 +1,7 @@
1
1
  import type { OwpNavItemType as NavItemType } from '@/types/OwpNavigationTypes';
2
+ import type { NavigationItemClickContext } from './NavigationMenu';
2
3
  /** Navigation item renderer에 전달되는 공통 속성 */
3
4
  export type NavItemComponentProps = {
4
- /** render할 navigation item type */
5
- type: string;
6
5
  /** navigation item 원본 설정 */
7
6
  item: NavItemType;
8
7
  /** vertical item density 축소 여부 */
@@ -10,7 +9,7 @@ export type NavItemComponentProps = {
10
9
  /** 중첩 collapse depth */
11
10
  nestedLevel?: number;
12
11
  /** leaf/collapse item click callback */
13
- onItemClick?: (item: NavItemType) => void;
12
+ onItemClick?: (item: NavItemType, context?: NavigationItemClickContext) => void;
14
13
  /** permission rule 적용 여부 */
15
14
  checkPermission?: boolean;
16
15
  /** 현재 route 기준으로 펼쳐 둘 collapse ID 집합 */
@@ -1,4 +1,8 @@
1
1
  import type { OwpNavItemType as NavItemType } from '@/types/OwpNavigationTypes';
2
+ export type NavigationItemClickContext = {
3
+ /** mobile navigation close 여부 */
4
+ shouldCloseNavigation?: boolean;
5
+ };
2
6
  /** Vertical navigation menu rendering과 route 기반 collapse open 상태 속성 */
3
7
  export type NavigationMenuProps = {
4
8
  /** root className */
@@ -8,15 +12,11 @@ export type NavigationMenuProps = {
8
12
  /** 상위 navigation 영역 활성 여부 */
9
13
  active?: boolean;
10
14
  /** item click callback */
11
- onItemClick?: (item: NavItemType) => void;
15
+ onItemClick?: (item: NavItemType, context?: NavigationItemClickContext) => void;
12
16
  /** render할 navigation tree */
13
17
  navigation?: NavItemType[];
14
18
  /** navigation layout 종류 */
15
19
  layout?: 'vertical';
16
- /** 최상위 level 여부 */
17
- firstLevel?: boolean;
18
- /** 외부에서 지정한 선택 item ID */
19
- selectedId?: string;
20
20
  /** permission rule 적용 여부 */
21
21
  checkPermission?: boolean;
22
22
  /** 외부에서 제어하는 collapse open ID 집합 */
@@ -1,4 +1,4 @@
1
- import { NavigationMenuProps } from '../NavigationMenu';
1
+ import type { NavigationMenuProps } from '../NavigationMenu';
2
2
  /**
3
3
  * NavVerticalLayout
4
4
  * This component is used to render vertical navigations using
@@ -1,4 +1,4 @@
1
- import { NavItemComponentProps } from '../../NavItem';
1
+ import { type NavItemComponentProps } from '../../NavItem';
2
2
  /**
3
3
  * NavVerticalCollapse component used for vertical navigation items with collapsible children.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { NavItemComponentProps } from '../../NavItem';
1
+ import { type NavItemComponentProps } from '../../NavItem';
2
2
  /**
3
3
  * NavVerticalGroup renders a group of navigation items in a vertical layout.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { NavItemComponentProps } from '../../NavItem';
1
+ import type { NavItemComponentProps } from '../../NavItem';
2
2
  /**
3
3
  * NavVerticalItem renders a single vertical navigation item.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { NavItemComponentProps } from '../../NavItem';
1
+ import type { NavItemComponentProps } from '../../NavItem';
2
2
  /**
3
3
  * NavVerticalLink
4
4
  * Create a vertical Link to use inside the navigation component.
@@ -70,7 +70,7 @@ export declare const customScrollbarsEnabledAtom: import("jotai").Atom<boolean>;
70
70
  /**
71
71
  * current direction 조회 atom
72
72
  */
73
- export declare const directionAtom: import("jotai").Atom<"rtl" | "ltr">;
73
+ export declare const directionAtom: import("jotai").Atom<"ltr" | "rtl">;
74
74
  /**
75
75
  * main theme 설정 조회 atom
76
76
  */
@@ -0,0 +1,27 @@
1
+ /**
2
+ * OWP API 공통 응답 envelope
3
+ */
4
+ export interface OwpApiResponse<TData = unknown> {
5
+ /** 서버 처리 결과 코드 */
6
+ resultCode?: string;
7
+ /** 서버 처리 결과 메시지 */
8
+ resultMessage?: string;
9
+ /** 단일 데이터 또는 목록 데이터 */
10
+ resultData?: TData;
11
+ /** 일부 legacy API의 목록 데이터 */
12
+ resultDataList?: unknown[];
13
+ /** API별 부가 응답 필드 */
14
+ [key: string]: unknown;
15
+ }
16
+ /**
17
+ * resultData에 row 목록을 담는 OWP API 응답
18
+ */
19
+ export type OwpApiListResponse<TRow = unknown> = OwpApiResponse<TRow[]>;
20
+ /**
21
+ * resultData에 단일 객체를 담는 OWP API 응답
22
+ */
23
+ export type OwpApiSingleResponse<TData = unknown> = OwpApiResponse<TData>;
24
+ /**
25
+ * mutation 결과로 반환되는 OWP API 응답
26
+ */
27
+ export type OwpApiMutationResponse<TData = unknown> = OwpApiResponse<TData>;
@@ -54,6 +54,22 @@ export interface DialogProps<TPayload = void, TResult = void> {
54
54
  * `useOwpDialogs.open`으로 render할 dialog component 타입
55
55
  */
56
56
  export type DialogComponent<TPayload = void, TResult = void> = ComponentType<DialogProps<TPayload, TResult>>;
57
+ /**
58
+ * Dialog component에서 payload 타입 추출
59
+ */
60
+ export type DialogPayloadOf<TComponent> = TComponent extends ComponentType<infer TProps> ? TProps extends {
61
+ payload: infer TPayload;
62
+ } ? TPayload : never : never;
63
+ /**
64
+ * Dialog component에서 close result 타입 추출
65
+ */
66
+ export type DialogResultOf<TComponent> = TComponent extends ComponentType<infer TProps> ? TProps extends {
67
+ onClose: (result?: infer TResult) => Promise<void>;
68
+ } ? TResult : never : never;
69
+ /**
70
+ * Dialog open promise result 타입 추출
71
+ */
72
+ export type DialogOpenResultOf<TComponent> = DialogResultOf<TComponent> | undefined;
57
73
  /**
58
74
  * alert dialog open 함수 타입
59
75
  */
@@ -30,3 +30,13 @@ export type OwpRouteConfigType = {
30
30
  /** route group base path */
31
31
  path?: string;
32
32
  };
33
+ /**
34
+ * `import.meta.glob`으로 읽은 route config module shape
35
+ */
36
+ export interface OwpRouteConfigModule {
37
+ default: OwpRouteConfigType | OwpRouteConfigType[];
38
+ }
39
+ /**
40
+ * route config module map
41
+ */
42
+ export type OwpRouteConfigModuleMap = Record<string, OwpRouteConfigModule>;
@@ -1,9 +1,14 @@
1
1
  import './OwpMuiThemeTypes';
2
- export type { AlertDialogPayload, AlertDialogProps, AlertOptions, CloseDialog, ConfirmDialogPayload, ConfirmDialogProps, ConfirmOptions, DialogComponent, DialogHook, DialogProviderProps, DialogProps, OpenAlertDialog, OpenConfirmDialog, OpenDialog, OpenDialogOptions, OpenPromptDialog, PromptDialogPayload, PromptDialogProps, PromptOptions, } from './OwpDialogTypes';
2
+ export type { OwpApiListResponse, OwpApiMutationResponse, OwpApiResponse, OwpApiSingleResponse, } from './OwpApiTypes';
3
+ export type { AlertDialogPayload, AlertDialogProps, AlertOptions, CloseDialog, ConfirmDialogPayload, ConfirmDialogProps, ConfirmOptions, DialogComponent, DialogHook, DialogOpenResultOf, DialogPayloadOf, DialogProviderProps, DialogProps, DialogResultOf, OpenAlertDialog, OpenConfirmDialog, OpenDialog, OpenDialogOptions, OpenPromptDialog, PromptDialogPayload, PromptDialogProps, PromptOptions, } from './OwpDialogTypes';
3
4
  export type { OwpExcelJSBrowserModule } from './OwpExcelTypes';
4
5
  export type { OwpGridBodyThemeConfigType, OwpGridCellThemeConfigType, OwpGridChangedThemeConfigType, OwpGridEditableThemeConfigType, OwpGridHeaderThemeConfigType, OwpGridRowThemeConfigType, OwpGridStateThemeConfigType, OwpGridThemeConfigType, } from './OwpGridThemeTypes';
5
6
  export type { OwpTableCellThemeConfigType, OwpTableHeaderThemeConfigType, OwpTableThemeConfigType, OwpTableVariantThemeConfigType, } from './OwpTableThemeTypes';
6
7
  export type { OwpSnackbarThemeConfigType, OwpSnackbarVariantThemeConfigType, OwpSnackbarVariantType, OwpThemeType, OwpThemesType, OwpSettingsConfigType, } from './OwpSettingsTypes';
7
8
  export type { OwpFlatNavItemType, OwpNavBadgeType, OwpNavPermission, OwpNavItemType, OwpPermissionFlag, } from './OwpNavigationTypes';
8
- export type { OwpRouteConfigType, OwpRouteItemType, OwpRoutesType } from './OwpRouteTypes';
9
+ export type { OwpRouteConfigModule, OwpRouteConfigModuleMap, OwpRouteConfigType, OwpRouteItemType, OwpRoutesType, } from './OwpRouteTypes';
9
10
  export type { AnyFormFieldType, ThemeFormConfigTypes } from './ThemeFormConfigTypes';
11
+ export type { CurrentUser } from '../hooks/useCurrentUser';
12
+ export type { CurrentUserSeq } from '../hooks/useCurrentUserSeq';
13
+ export type { OwpAppConfigs, OwpAppEnv, OwpAppSlotProps, OwpAppSlots, OwpLogoSlotProps, OwpPageSkeletonItem, OwpPageSkeletonItemType, OwpPageSkeletonSpec, OwpPageSkeletonSpecMap, OwpPageSkeletonSpecModule, OwpRouteLoadingConfig, OwpRouteLoadingSlotProps, } from '../contexts/OwpAppContext';
14
+ export type { OwpSelectorBaseChangeEvent, OwpSelectorBaseOption, } from '../components/OwpSelectorBase/types';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * navigation search 비교용 문자열 정규화
3
+ * @param value 검색 입력 또는 navigation title
4
+ */
5
+ export declare const normalizeNavigationSearchText: (value?: string) => string;
6
+ /**
7
+ * 한글 음절을 초성 검색 문자열로 변환
8
+ * @param value navigation title
9
+ */
10
+ export declare const getNavigationHangulInitialSearchText: (value?: string) => string;
11
+ /**
12
+ * navigation title과 검색 입력 match 여부
13
+ * @param title navigation title
14
+ * @param query 검색 입력
15
+ */
16
+ export declare const isNavigationSearchTextMatch: (title?: string, query?: string) => boolean;
17
+ /**
18
+ * 직접 highlight가 어려운 fuzzy match의 fallback range
19
+ * @param title navigation title
20
+ * @param query 검색 입력
21
+ */
22
+ export declare const getNavigationSearchFallbackHighlightRanges: (title?: string, query?: string) => [number, number][];
@@ -1,39 +1,34 @@
1
- import type { OwpFlatNavItemType, OwpNavItemType, OwpNavPermission } from '@/types/OwpNavigationTypes';
2
- import type { Pathname } from 'history';
3
- import type { PartialDeep } from 'type-fest';
4
- type OwpNavItemModelInput = PartialDeep<Omit<OwpNavItemType, 'permission'>> & {
5
- permission?: OwpNavPermission;
1
+ import type { OwpFlatNavItemType, OwpNavItemType } from '@/types/OwpNavigationTypes';
2
+ export type NavigationPathMatchOptions = {
3
+ /** exact path match 여부 */
4
+ end?: boolean;
6
5
  };
7
6
  /**
8
- * Navigation item model factory
7
+ * route 비교용 pathname 정규화
8
+ * @param path URL 또는 pathname
9
9
  */
10
- export declare function OwpNavItemModel(data?: OwpNavItemModelInput): OwpNavItemType;
10
+ export declare const normalizeNavigationPathname: (path?: string) => string;
11
11
  /**
12
- * Navigation child URL matcher
12
+ * navigation URL 현재 pathname segment match 여부
13
+ * @param pathname 현재 route pathname
14
+ * @param navigationUrl navigation item URL
15
+ * @param options match 옵션
13
16
  */
14
- export declare function isUrlInChildren(parent: OwpNavItemType, url: Pathname): boolean;
17
+ export declare const isNavigationPathMatch: (pathname?: string, navigationUrl?: string, options?: NavigationPathMatchOptions) => boolean;
18
+ /**
19
+ * navigation item type fallback
20
+ * @param item navigation item
21
+ */
22
+ export declare const resolveNavigationItemType: (item: Pick<OwpNavItemType, "children" | "type">) => string;
15
23
  /**
16
24
  * Navigation structure helper
17
25
  */
18
26
  export declare class OwpNavigationHelper {
19
- static selectById(nav: OwpNavItemType[], id: string): OwpNavItemType | undefined;
20
- static appendNavItem(nav: OwpNavItemType[], item: OwpNavItemType, parentId?: string | null): OwpNavItemType[];
21
- static prependNavItem(nav: OwpNavItemType[], item: OwpNavItemType, parentId?: string | null): OwpNavItemType[];
22
- static filterNavigationByPermission(nav: OwpNavItemType[], userRole: User['role']): OwpNavItemType[];
23
- /**
24
- * Navigation item removal
25
- */
26
- static removeNavItem(nav: OwpNavItemType[], id: string): OwpNavItemType[];
27
- /**
28
- * Navigation item update
29
- */
30
- static updateNavItem(nav: OwpNavItemType[], id: string, item: PartialDeep<OwpNavItemType>): OwpNavItemType[];
31
27
  /**
32
- * Flat navigation list extraction
28
+ * 검색과 shortcut 후보 navigation list 추출
29
+ * @param navigationItems navigation tree
30
+ * @param flatNavigation 누적 flat list
31
+ * @param parentOrder 상위 order path
33
32
  */
34
- static getFlatNavigation(navigationItems?: OwpNavItemType[], flatNavigation?: any[]): OwpNavItemType[] | [];
35
- static hasPermission(authArr: string[] | string | undefined, userRole: User['role']): boolean;
36
- static flattenNavigation(navigation: OwpNavItemType[], parentOrder?: string): OwpFlatNavItemType[];
37
- static unflattenNavigation(navigation: OwpFlatNavItemType[]): OwpNavItemType[];
33
+ static getFlatNavigation(navigationItems?: OwpNavItemType[], flatNavigation?: OwpFlatNavItemType[], parentOrder?: string): OwpFlatNavItemType[];
38
34
  }
39
- export {};
@@ -1,16 +1,17 @@
1
1
  import { TREEGRID_CELL_CHANGED_CLASS, TREEGRID_CELL_HIGHLIGHT_COLOR, TREEGRID_INPUT_CELL_COLOR, TREEGRID_WARNING_CELL_COLOR } from '@/constants/treeGrid';
2
2
  import { type OwpTreeGridSelectedRowsResolveOptions, type OwpTreeGridSelectionScope } from '@/components/OwpTreeGrid/internal/treeGridSelection';
3
3
  export { TREEGRID_CELL_CHANGED_CLASS, TREEGRID_CELL_HIGHLIGHT_COLOR, TREEGRID_INPUT_CELL_COLOR, TREEGRID_WARNING_CELL_COLOR, };
4
- type TreeGridInsertPosition = 'above' | 'below' | 'top' | 'last';
5
- type TreeGridAddRowOptions<T> = {
4
+ export type TreeGridInsertPosition = 'above' | 'below' | 'top' | 'last';
5
+ export type TreeGridRowInitialValues<T> = Partial<T> | (Partial<T> & Record<string, unknown>);
6
+ export type TreeGridAddRowOptions<T extends object = Record<string, unknown>> = {
6
7
  canSelect?: boolean;
7
8
  insertPosition?: TreeGridInsertPosition;
8
9
  parent?: TRow & T;
9
10
  anchorRow?: TRow & T;
10
- initialValues?: T;
11
+ initialValues?: TreeGridRowInitialValues<T>;
11
12
  editableColumns?: readonly string[];
12
13
  };
13
- type TreeGridColumnVisibilityOptions = {
14
+ export type TreeGridColumnVisibilityOptions = {
14
15
  targetKey: string;
15
16
  canVisible: boolean;
16
17
  };
@@ -151,7 +152,19 @@ export declare const getTreeGridById: (gridId: string) => TTGrid;
151
152
  * TreeGrid 데이터 행 목록 조회
152
153
  * @param gridId TreeGrid 인스턴스 ID
153
154
  */
154
- export declare const getTreeGridDataRowsById: <T>(gridId: string) => any[] | T;
155
+ export declare function getTreeGridDataRowsById<T extends readonly unknown[]>(gridId: string): T;
156
+ export declare function getTreeGridDataRowsById<T extends object = Record<string, unknown>>(gridId: string): Array<TRow & T>;
157
+ /**
158
+ * TreeGrid 현재 row map 조회
159
+ * @param gridId TreeGrid 인스턴스 ID
160
+ */
161
+ export declare const getTreeGridRowsById: <T extends object = Record<string, unknown>>(gridId: string) => Record<string, (TRow & T) | undefined>;
162
+ /**
163
+ * TreeGrid 현재 row 조회
164
+ * @param gridId TreeGrid 인스턴스 ID
165
+ * @param rowId 조회할 row id
166
+ */
167
+ export declare const getTreeGridRowById: <T extends object = Record<string, unknown>>(gridId: string, rowId: string | number | null | undefined) => TRow & T;
155
168
  /**
156
169
  * TreeGrid Body 데이터 교체 후 재로드
157
170
  * @param gridId TreeGrid 인스턴스 ID
@@ -168,7 +181,7 @@ export declare const reloadTreeGridBodyById: (gridId: string, rows: unknown) =>
168
181
  * @param options.initialValues 신규 행 초기값
169
182
  * @param options.editableColumns 신규 행 셀 단위 편집 가능 컬럼
170
183
  */
171
- export declare const addTreeGridRowById: <T>(gridId: string, options?: TreeGridAddRowOptions<T>) => void;
184
+ export declare const addTreeGridRowById: <T extends object = Record<string, unknown>>(gridId: string, options?: TreeGridAddRowOptions<T>) => void;
172
185
  /**
173
186
  * TreeGrid 필수 셀 Error 검증
174
187
  * @param gridId TreeGrid 인스턴스 ID
@@ -194,7 +207,8 @@ export declare const exportTreeGridToExcelById: (gridId: string, title?: string)
194
207
  * @param gridId TreeGrid 인스턴스 ID
195
208
  * @param options 선택 행 반환 옵션
196
209
  */
197
- export declare const getTreeGridSelectedRowsById: <T>(gridId: string, options?: TreeGridSelectedRowsOptions) => any[] | T;
210
+ export declare function getTreeGridSelectedRowsById<T extends readonly unknown[]>(gridId: string, options?: TreeGridSelectedRowsOptions): T;
211
+ export declare function getTreeGridSelectedRowsById<T extends object = Record<string, unknown>>(gridId: string, options?: TreeGridSelectedRowsOptions): Array<TRow & T>;
198
212
  /**
199
213
  * TreeGrid 컬럼 표시 여부 변경
200
214
  * @param gridId TreeGrid 인스턴스 ID
@@ -0,0 +1,44 @@
1
+ var u = Object.defineProperty;
2
+ var r = (n, a) => u(n, "name", { value: a, configurable: !0 });
3
+ const c = /\s+/g, o = [
4
+ "ㄱ",
5
+ "ㄲ",
6
+ "ㄴ",
7
+ "ㄷ",
8
+ "ㄸ",
9
+ "ㄹ",
10
+ "ㅁ",
11
+ "ㅂ",
12
+ "ㅃ",
13
+ "ㅅ",
14
+ "ㅆ",
15
+ "ㅇ",
16
+ "ㅈ",
17
+ "ㅉ",
18
+ "ㅊ",
19
+ "ㅋ",
20
+ "ㅌ",
21
+ "ㅍ",
22
+ "ㅎ"
23
+ ], g = /* @__PURE__ */ r((n) => Array.from(n).reduce((a, t) => {
24
+ const e = t.charCodeAt(0);
25
+ return e < 4352 || e > 4370 ? `${a}${t}` : `${a}${o[e - 4352]}`;
26
+ }, ""), "normalizeHangulInitialJamo"), l = /* @__PURE__ */ r((n) => g((n ?? "").normalize("NFKC")).toLocaleLowerCase().replace(c, ""), "normalizeNavigationSearchText"), s = /* @__PURE__ */ r((n) => Array.from(l(n)).reduce((a, t) => {
27
+ const e = t.charCodeAt(0);
28
+ if (e < 44032 || e > 55203)
29
+ return `${a}${t}`;
30
+ const i = Math.floor(
31
+ (e - 44032) / 588
32
+ );
33
+ return `${a}${o[i]}`;
34
+ }, ""), "getNavigationHangulInitialSearchText"), d = /* @__PURE__ */ r((n, a) => {
35
+ const t = l(a);
36
+ return t ? l(n).includes(t) ? !0 : s(n).includes(t) : !1;
37
+ }, "isNavigationSearchTextMatch"), C = /* @__PURE__ */ r((n, a) => !n || !d(n, a) ? [] : [[0, n.length]], "getNavigationSearchFallbackHighlightRanges");
38
+ export {
39
+ s as getNavigationHangulInitialSearchText,
40
+ C as getNavigationSearchFallbackHighlightRanges,
41
+ d as isNavigationSearchTextMatch,
42
+ l as normalizeNavigationSearchText
43
+ };
44
+ //# sourceMappingURL=navigationSearchUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationSearchUtils.js","sources":["../../../src/utils/internal/navigationSearchUtils.ts"],"sourcesContent":null,"names":["whitespacePattern","hangulInitials","normalizeHangulInitialJamo","__name","value","normalizedText","character","characterCode","normalizeNavigationSearchText","getNavigationHangulInitialSearchText","initialText","initialIndex","isNavigationSearchTextMatch","title","query","normalizedQuery","getNavigationSearchFallbackHighlightRanges"],"mappings":";;AAKA,MAAMA,IAAoB,QACpBC,IAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAA6B,gBAAAC,EAAA,CAACC,MAC3B,MAAM,KAAKA,CAAK,EAAE,OAAO,CAACC,GAAgBC,MAAc;AAC7D,QAAMC,IAAgBD,EAAU,WAAW,CAAC;AAE5C,SACEC,IAAgB,QAChBA,IAAgB,OAET,GAAGF,CAAc,GAAGC,CAAS,KAG/B,GAAGD,CAAc,GAAGJ,EAAeM,IAAgB,IAA0B,CAAC;AACvF,GAAG,EAAE,GAZ4B,+BAmBtBC,IAAgC,gBAAAL,EAAA,CAACC,MACrCF,GAA4BE,KAAS,IAAI,UAAU,MAAM,CAAC,EAC9D,kBAAA,EACA,QAAQJ,GAAmB,EAAE,GAHW,kCAUhCS,IAAuC,gBAAAN,EAAA,CAACC,MAC5C,MAAM,KAAKI,EAA8BJ,CAAK,CAAC,EAAE,OAAO,CAACM,GAAaJ,MAAc;AACzF,QAAMC,IAAgBD,EAAU,WAAW,CAAC;AAE5C,MACEC,IAAgB,SAChBA,IAAgB;AAEhB,WAAO,GAAGG,CAAW,GAAGJ,CAAS;AAGnC,QAAMK,IAAe,KAAK;AAAA,KACvBJ,IAAgB,SAA2B;AAAA,EAAA;AAG9C,SAAO,GAAGG,CAAW,GAAGT,EAAeU,CAAY,CAAC;AACtD,GAAG,EAAE,GAhB6C,yCAwBvCC,IAA8B,gBAAAT,EAAA,CAACU,GAAgBC,MAAmB;AAC7E,QAAMC,IAAkBP,EAA8BM,CAAK;AAE3D,SAAKC,IAImBP,EAA8BK,CAAK,EAEvC,SAASE,CAAe,IACnC,KAGFN,EAAqCI,CAAK,EAAE,SAASE,CAAe,IATlE;AAUX,GAd2C,gCAqB9BC,IAA6C,gBAAAb,EAAA,CACxDU,GACAC,MAEI,CAACD,KAAS,CAACD,EAA4BC,GAAOC,CAAK,IAC9C,CAAA,IAGF,CAAC,CAAC,GAAGD,EAAM,MAAM,CAAC,GAR+B;"}
@@ -1,132 +1,47 @@
1
1
  var f = Object.defineProperty;
2
- var h = (c, i) => f(c, "name", { value: i, configurable: !0 });
3
- import { merge as p } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
4
- import { defaults as o } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/defaults.js";
5
- import { uniqueId as m } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/util/uniqueId.js";
6
- function N(c) {
7
- return o(c || {}, {
8
- id: m(),
9
- title: "",
10
- translate: "",
11
- auth: null,
12
- subtitle: "",
13
- icon: "",
14
- iconClass: "",
15
- url: "",
16
- target: "",
17
- type: "item",
18
- sx: {},
19
- disabled: !1,
20
- active: !1,
21
- exact: !1,
22
- end: !1,
23
- badge: null,
24
- children: []
25
- });
26
- }
27
- h(N, "OwpNavItemModel");
28
- const a = class a {
29
- static selectById(i, t) {
30
- for (let e = 0; e < i.length; e += 1) {
31
- const r = i[e];
32
- if (r.id === t)
33
- return r;
34
- if (r.children) {
35
- const n = this.selectById(r.children, t);
36
- if (n)
37
- return n;
38
- }
39
- }
40
- }
41
- static appendNavItem(i, t, e = null) {
42
- return e ? i.map((r) => {
43
- if (r.id === e) {
44
- const n = { ...r };
45
- return n.children = [...r.children || [], t], n;
46
- }
47
- return r.children ? { ...r, children: this.appendNavItem(r.children, t, e) } : { ...r };
48
- }) : [...i, t];
49
- }
50
- static prependNavItem(i, t, e = null) {
51
- return e ? i.map((r) => {
52
- if (r.id === e) {
53
- const n = { ...r };
54
- return n.children = [t, ...r.children || []], n;
55
- }
56
- return r.children ? { ...r, children: this.prependNavItem(r.children, t, e) } : { ...r };
57
- }) : [t, ...i];
58
- }
59
- static filterNavigationByPermission(i, t) {
60
- return i.reduce((e, r) => {
61
- const n = r.children ? this.filterNavigationByPermission(r.children, t) : [];
62
- if (this.hasPermission(r.auth, t) || n.length) {
63
- const l = { ...r };
64
- l.children = n.length ? n : void 0, e.push(l);
65
- }
66
- return e;
67
- }, []);
68
- }
69
- /**
70
- * Navigation item removal
71
- */
72
- static removeNavItem(i, t) {
73
- return i.reduce((e, r) => (r.id !== t && (r.children ? e.push({
74
- ...r,
75
- children: this.removeNavItem(r.children, t)
76
- }) : e.push(r)), e), []);
77
- }
78
- /**
79
- * Navigation item update
80
- */
81
- static updateNavItem(i, t, e) {
82
- return i.map((r) => r.id === t ? p({}, r, e) : r.children ? {
83
- ...r,
84
- children: this.updateNavItem(r.children, t, e)
85
- } : r);
86
- }
2
+ var s = (e, t) => f(e, "name", { value: t, configurable: !0 });
3
+ const g = /[?#]/, p = /\/+$/, u = /* @__PURE__ */ s((e) => {
4
+ if (!e)
5
+ return "";
6
+ const [t = ""] = e.split(g), n = t.startsWith("/") ? t : `/${t}`;
7
+ return n.length > 1 ? n.replace(p, "") : n;
8
+ }, "normalizeNavigationPathname"), y = /* @__PURE__ */ s((e, t, n = {}) => {
9
+ const r = u(e), a = u(t);
10
+ return !r || !a ? !1 : r === a ? !0 : n.end || a === "/" ? !1 : r.startsWith(`${a}/`);
11
+ }, "isNavigationPathMatch"), m = /* @__PURE__ */ s((e) => {
12
+ var t;
13
+ return e.type ?? ((t = e.children) != null && t.length ? "collapse" : "item");
14
+ }, "resolveNavigationItemType"), P = /* @__PURE__ */ s((e, t) => {
15
+ var r;
16
+ const n = { ...e };
17
+ return delete n.children, delete n.sx, {
18
+ ...n,
19
+ type: m(e),
20
+ children: (r = e.children) == null ? void 0 : r.map((a) => a.id),
21
+ order: t
22
+ };
23
+ }, "createFlatNavigationItem"), o = class o {
87
24
  /**
88
- * Flat navigation list extraction
25
+ * 검색과 shortcut 후보 navigation list 추출
26
+ * @param navigationItems navigation tree
27
+ * @param flatNavigation 누적 flat list
28
+ * @param parentOrder 상위 order path
89
29
  */
90
- static getFlatNavigation(i = [], t = []) {
91
- for (let e = 0; e < i.length; e += 1) {
92
- const r = i[e];
93
- r.type === "item" && t.push(N(r)), (r.type === "collapse" || r.type === "group") && r.children && this.getFlatNavigation(r.children, t);
30
+ static getFlatNavigation(t = [], n = [], r = "") {
31
+ var a;
32
+ for (let c = 0; c < t.length; c += 1) {
33
+ const i = t[c], l = m(i), h = r ? `${r}.${c + 1}` : `${c + 1}`;
34
+ l === "item" && n.push(P(i, h)), (l === "collapse" || l === "group") && ((a = i.children) != null && a.length) && this.getFlatNavigation(i.children, n, h);
94
35
  }
95
- return t;
96
- }
97
- // @ts-expect-error legacy user role contract
98
- static hasPermission(i, t) {
99
- return i == null ? !0 : i.length === 0 ? !t || t.length === 0 : t && Array.isArray(i) && Array.isArray(t) ? i.some((e) => t.indexOf(e) >= 0) : i.includes(t);
100
- }
101
- static flattenNavigation(i, t = "") {
102
- return i.flatMap((e, r) => {
103
- var s;
104
- const n = t ? `${t}.${r + 1}` : `${r + 1}`;
105
- let l = [
106
- { ...e, order: n, children: (s = e.children) == null ? void 0 : s.map((d) => d.id) }
107
- ];
108
- return e.children && (l = l.concat(this.flattenNavigation(e.children, n))), l;
109
- });
110
- }
111
- static unflattenNavigation(i) {
112
- const t = {};
113
- i.forEach((r) => {
114
- t[r.id] = { ...r, children: [] };
115
- });
116
- const e = [];
117
- return i.forEach((r) => {
118
- if (r.order.includes(".")) {
119
- const n = r.order.substring(0, r.order.lastIndexOf(".")), l = i.find((s) => s.order === n);
120
- l && t[l.id].children.push(t[r.id]);
121
- } else
122
- e.push(t[r.id]);
123
- }), e.map((r) => ({ ...r }));
36
+ return n;
124
37
  }
125
38
  };
126
- h(a, "OwpNavigationHelper");
127
- let u = a;
39
+ s(o, "OwpNavigationHelper");
40
+ let d = o;
128
41
  export {
129
- N as OwpNavItemModel,
130
- u as OwpNavigationHelper
42
+ d as OwpNavigationHelper,
43
+ y as isNavigationPathMatch,
44
+ u as normalizeNavigationPathname,
45
+ m as resolveNavigationItemType
131
46
  };
132
47
  //# sourceMappingURL=navigationUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigationUtils.js","sources":["../../../src/utils/internal/navigationUtils.ts"],"sourcesContent":null,"names":["OwpNavItemModel","data","defaults","uniqueId","__name","_OwpNavigationHelper","nav","id","i","item","childItem","parentId","node","newNode","userRole","acc","children","newItem","merge","navigationItems","flatNavigation","navItem","authArr","role","navigation","parentOrder","index","order","flattened","_a","child","itemMap","rootItems","parent","OwpNavigationHelper"],"mappings":"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"}
1
+ {"version":3,"file":"navigationUtils.js","sources":["../../../src/utils/internal/navigationUtils.ts"],"sourcesContent":null,"names":["pathSuffixPattern","trailingSlashPattern","normalizeNavigationPathname","__name","path","pathname","normalizedPathname","isNavigationPathMatch","navigationUrl","options","currentPathname","targetPathname","resolveNavigationItemType","item","_a","createFlatNavigationItem","order","flatItem","child","_OwpNavigationHelper","navigationItems","flatNavigation","parentOrder","i","navItem","itemType","OwpNavigationHelper"],"mappings":";;AAOA,MAAMA,IAAoB,QACpBC,IAAuB,QAMhBC,IAA8B,gBAAAC,EAAA,CAACC,MAAkB;AAC5D,MAAI,CAACA;AACH,WAAO;AAGT,QAAM,CAACC,IAAW,EAAE,IAAID,EAAK,MAAMJ,CAAiB,GAC9CM,IAAqBD,EAAS,WAAW,GAAG,IAAIA,IAAW,IAAIA,CAAQ;AAE7E,SAAOC,EAAmB,SAAS,IAC/BA,EAAmB,QAAQL,GAAsB,EAAE,IACnDK;AACN,GAX2C,gCAmB9BC,IAAwB,gBAAAJ,EAAA,CACnCE,GACAG,GACAC,IAAsC,CAAA,MACnC;AACH,QAAMC,IAAkBR,EAA4BG,CAAQ,GACtDM,IAAiBT,EAA4BM,CAAa;AAEhE,SAAI,CAACE,KAAmB,CAACC,IAChB,KAGLD,MAAoBC,IACf,KAGLF,EAAQ,OAAOE,MAAmB,MAC7B,KAGFD,EAAgB,WAAW,GAAGC,CAAc,GAAG;AACxD,GArBqC,0BA2BxBC,IAA4B,gBAAAT,EAAA,CACvCU,MAAA;AAtDF,MAAAC;AAuDK,SAAAD,EAAK,UAASC,IAAAD,EAAK,aAAL,QAAAC,EAAe,SAAS,aAAa;AAAA,GAFf,8BAInCC,IAA2B,gBAAAZ,EAAA,CAC/BU,GACAG,MACuB;AA5DzB,MAAAF;AA6DE,QAAMG,IAAW,EAAE,GAAGJ,EAAA;AAEtB,gBAAOI,EAAS,UAChB,OAAOA,EAAS,IAET;AAAA,IACL,GAAGA;AAAA,IACH,MAAML,EAA0BC,CAAI;AAAA,IACpC,WAAUC,IAAAD,EAAK,aAAL,gBAAAC,EAAe,IAAI,CAACI,MAAUA,EAAM;AAAA,IAC9C,OAAAF;AAAA,EAAA;AAEJ,GAfiC,6BAoBpBG,IAAN,MAAMA,EAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO/B,OAAO,kBACLC,IAAoC,CAAA,GACpCC,IAAuC,CAAA,GACvCC,IAAsB,IACA;AAxF1B,QAAAR;AAyFI,aAASS,IAAI,GAAGA,IAAIH,EAAgB,QAAQG,KAAK,GAAG;AAClD,YAAMC,IAAUJ,EAAgBG,CAAC,GAC3BE,IAAWb,EAA0BY,CAAO,GAC5CR,IAAQM,IAAc,GAAGA,CAAW,IAAIC,IAAI,CAAC,KAAK,GAAGA,IAAI,CAAC;AAEhE,MAAIE,MAAa,UACfJ,EAAe,KAAKN,EAAyBS,GAASR,CAAK,CAAC,IAGzDS,MAAa,cAAcA,MAAa,cAAYX,IAAAU,EAAQ,aAAR,QAAAV,EAAkB,WACzE,KAAK,kBAAkBU,EAAQ,UAAUH,GAAgBL,CAAK;AAAA,IAElE;AAEA,WAAOK;AAAA,EACT;AACF;AA5BiClB,EAAAgB,GAAA;AAA1B,IAAMO,IAANP;"}