@j-solution/components 1.8.0 → 1.9.0
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/README.md +413 -415
- package/assets/jwms-portal-frontend-Ct2Tc7yj.css +1 -0
- package/assets/styles/j-components.css +1 -1
- package/assets/styles/themes.css +422 -422
- package/components/atoms/JButton.vue.cjs +1 -1
- package/components/atoms/JButton.vue.js +1 -1
- package/components/atoms/JButton.vue2.cjs.map +1 -1
- package/components/atoms/JButton.vue2.js.map +1 -1
- package/components/atoms/JLabel.vue.cjs.map +1 -1
- package/components/atoms/JLabel.vue.js.map +1 -1
- package/components/molecules/JTabs.vue.cjs +1 -1
- package/components/molecules/JTabs.vue.js +1 -1
- package/components/molecules/JTabs.vue2.cjs.map +1 -1
- package/components/molecules/JTabs.vue2.js.map +1 -1
- package/components/organisms/JDynamicTabs.vue.cjs.map +1 -1
- package/components/organisms/JDynamicTabs.vue.js.map +1 -1
- package/components/organisms/JFilterBar.vue.cjs +1 -1
- package/components/organisms/JFilterBar.vue.js +2 -2
- package/components/organisms/JFilterBar.vue2.cjs +1 -1
- package/components/organisms/JFilterBar.vue2.cjs.map +1 -1
- package/components/organisms/JFilterBar.vue2.js +14 -12
- package/components/organisms/JFilterBar.vue2.js.map +1 -1
- package/components/organisms/JPageContainer.vue.cjs.map +1 -1
- package/components/organisms/JPageContainer.vue.js.map +1 -1
- package/components/organisms/JSidebar/JSidebar.vue.cjs +2 -0
- package/components/organisms/JSidebar/JSidebar.vue.cjs.map +1 -0
- package/components/organisms/JSidebar/JSidebar.vue.js +189 -0
- package/components/organisms/JSidebar/JSidebar.vue.js.map +1 -0
- package/components/organisms/JSidebar/JSidebar.vue2.cjs +2 -0
- package/components/organisms/JSidebar/JSidebar.vue2.cjs.map +1 -0
- package/components/organisms/JSidebar/JSidebar.vue2.js +5 -0
- package/components/organisms/JSidebar/JSidebar.vue2.js.map +1 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue.cjs +2 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue.cjs.map +1 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue.js +89 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue.js.map +1 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue2.cjs +2 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue2.cjs.map +1 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue2.js +5 -0
- package/components/organisms/JSidebar/JSidebarGroup.vue2.js.map +1 -0
- package/components/organisms/JSidebar/JSidebarItem.vue.cjs +2 -0
- package/components/organisms/JSidebar/JSidebarItem.vue.cjs.map +1 -0
- package/components/organisms/JSidebar/JSidebarItem.vue.js +79 -0
- package/components/organisms/JSidebar/JSidebarItem.vue.js.map +1 -0
- package/components/organisms/JSidebar/JSidebarItem.vue2.cjs +2 -0
- package/components/organisms/JSidebar/JSidebarItem.vue2.cjs.map +1 -0
- package/components/organisms/JSidebar/JSidebarItem.vue2.js +5 -0
- package/components/organisms/JSidebar/JSidebarItem.vue2.js.map +1 -0
- package/components/shadcn/Card.vue.cjs.map +1 -1
- package/components/shadcn/Card.vue.js.map +1 -1
- package/components/shadcn/CardContent.vue.cjs.map +1 -1
- package/components/shadcn/CardContent.vue.js.map +1 -1
- package/components/shadcn/CardHeader.vue.cjs.map +1 -1
- package/components/shadcn/CardHeader.vue.js.map +1 -1
- package/components/shadcn/Input.vue.cjs.map +1 -1
- package/components/shadcn/Input.vue.js.map +1 -1
- package/components/shadcn/SelectTrigger.vue.cjs.map +1 -1
- package/components/shadcn/SelectTrigger.vue.js.map +1 -1
- package/components/shadcn/TabsContent.vue.cjs.map +1 -1
- package/components/shadcn/TabsContent.vue.js.map +1 -1
- package/components/shadcn/Textarea.vue.cjs.map +1 -1
- package/components/shadcn/Textarea.vue.js.map +1 -1
- package/components/shadcn/index.cjs.map +1 -1
- package/components/shadcn/index.js.map +1 -1
- package/components/templates/JLayout.vue.cjs.map +1 -1
- package/components/templates/JLayout.vue.js.map +1 -1
- package/components/templates/JLayoutSimple.vue.cjs +1 -1
- package/components/templates/JLayoutSimple.vue.cjs.map +1 -1
- package/components/templates/JLayoutSimple.vue.js +36 -30
- package/components/templates/JLayoutSimple.vue.js.map +1 -1
- package/index.cjs +1 -1
- package/index.js +22 -20
- package/package.json +1 -1
- package/types/index.d.ts +119 -61
- package/types/sidebar.types.cjs +2 -0
- package/types/sidebar.types.cjs.map +1 -0
- package/types/sidebar.types.js +5 -0
- package/types/sidebar.types.js.map +1 -0
- package/assets/jwms-portal-frontend-BtHTA-UF.css +0 -1
package/types/index.d.ts
CHANGED
|
@@ -285,10 +285,10 @@ defaultTheme: string;
|
|
|
285
285
|
availableThemes: string[];
|
|
286
286
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>;
|
|
287
287
|
|
|
288
|
-
declare const __VLS_component_23: DefineComponent<
|
|
288
|
+
declare const __VLS_component_23: DefineComponent<__VLS_Props_38, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
289
289
|
breadcrumbClick: (item: BreadcrumbItem, index: number) => any;
|
|
290
290
|
titlebarButtonClick: (button: TitlebarButton) => any;
|
|
291
|
-
}, string, PublicProps, Readonly<
|
|
291
|
+
}, string, PublicProps, Readonly<__VLS_Props_38> & Readonly<{
|
|
292
292
|
onBreadcrumbClick?: ((item: BreadcrumbItem, index: number) => any) | undefined;
|
|
293
293
|
onTitlebarButtonClick?: ((button: TitlebarButton) => any) | undefined;
|
|
294
294
|
}>, {
|
|
@@ -299,14 +299,17 @@ showTitlebar: boolean;
|
|
|
299
299
|
contentScroll: boolean;
|
|
300
300
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
301
301
|
|
|
302
|
-
declare const __VLS_component_24: DefineComponent<
|
|
302
|
+
declare const __VLS_component_24: DefineComponent<__VLS_Props_40, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_40> & Readonly<{}>, {
|
|
303
303
|
styletype: StyleType_29;
|
|
304
304
|
contentScroll: boolean;
|
|
305
305
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
306
306
|
|
|
307
|
-
declare const __VLS_component_25: DefineComponent<
|
|
307
|
+
declare const __VLS_component_25: DefineComponent<__VLS_Props_41, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
308
|
+
"menu-click": (item: SidebarMenuItem, event: MouseEvent) => any;
|
|
309
|
+
}, string, PublicProps, Readonly<__VLS_Props_41> & Readonly<{
|
|
310
|
+
"onMenu-click"?: ((item: SidebarMenuItem, event: MouseEvent) => any) | undefined;
|
|
311
|
+
}>, {
|
|
308
312
|
styletype: "default" | "minimal";
|
|
309
|
-
permissions: MenuPermission[];
|
|
310
313
|
menuItems: SidebarMenuItem[];
|
|
311
314
|
contentScroll: boolean;
|
|
312
315
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
@@ -858,9 +861,35 @@ declare type __VLS_Props_34 = {
|
|
|
858
861
|
availableThemes?: string[];
|
|
859
862
|
};
|
|
860
863
|
|
|
864
|
+
/**
|
|
865
|
+
* JSidebar - 통합 사이드바 컴포넌트
|
|
866
|
+
*
|
|
867
|
+
* DB 트리 데이터 기반, provide/inject로 상태 공유.
|
|
868
|
+
* collapsed 모드, 검색, 즐겨찾기(localStorage) 지원.
|
|
869
|
+
* 라우터를 모름 — @menu-click으로 아이템을 올려보냄.
|
|
870
|
+
*/
|
|
861
871
|
declare type __VLS_Props_35 = {
|
|
872
|
+
/** 메뉴 트리 데이터 */
|
|
873
|
+
items: SidebarMenuItem[];
|
|
874
|
+
/** 접힘 상태 (v-model:collapsed) */
|
|
875
|
+
collapsed?: boolean;
|
|
876
|
+
/** 현재 활성 경로 */
|
|
877
|
+
activePath?: string;
|
|
878
|
+
/** 펼침 너비 */
|
|
879
|
+
width?: string;
|
|
880
|
+
/** 접힘 너비 */
|
|
881
|
+
collapsedWidth?: string;
|
|
882
|
+
/** 즐겨찾기 localStorage 키 (없으면 즐겨찾기 비활성) */
|
|
883
|
+
storageKey?: string;
|
|
884
|
+
/** 검색 표시 여부 */
|
|
885
|
+
showSearch?: boolean;
|
|
886
|
+
/** 즐겨찾기 섹션 표시 여부 */
|
|
887
|
+
showFavorites?: boolean;
|
|
888
|
+
};
|
|
889
|
+
|
|
890
|
+
declare type __VLS_Props_36 = {
|
|
862
891
|
/** 메뉴 아이템 목록 */
|
|
863
|
-
menuItems:
|
|
892
|
+
menuItems: SidebarMenuItem_2[];
|
|
864
893
|
/** 권한 목록 */
|
|
865
894
|
permissions?: MenuPermission[];
|
|
866
895
|
/** 검색어 */
|
|
@@ -875,9 +904,9 @@ declare type __VLS_Props_35 = {
|
|
|
875
904
|
isVisible?: boolean;
|
|
876
905
|
};
|
|
877
906
|
|
|
878
|
-
declare type
|
|
907
|
+
declare type __VLS_Props_37 = {
|
|
879
908
|
/** 메뉴 아이템 목록 */
|
|
880
|
-
menuItems:
|
|
909
|
+
menuItems: SidebarMenuItem_2[];
|
|
881
910
|
/** 권한 목록 */
|
|
882
911
|
permissions?: MenuPermission[];
|
|
883
912
|
/** 즐겨찾기 메뉴 키 목록 */
|
|
@@ -892,7 +921,7 @@ declare type __VLS_Props_36 = {
|
|
|
892
921
|
isVisible?: boolean;
|
|
893
922
|
};
|
|
894
923
|
|
|
895
|
-
declare type
|
|
924
|
+
declare type __VLS_Props_38 = {
|
|
896
925
|
/** 브레드크럼 아이템 목록 */
|
|
897
926
|
breadcrumbItems?: BreadcrumbItem[];
|
|
898
927
|
/** 브레드크럼 표시 여부 */
|
|
@@ -913,9 +942,9 @@ declare type __VLS_Props_37 = {
|
|
|
913
942
|
class?: string;
|
|
914
943
|
};
|
|
915
944
|
|
|
916
|
-
declare type
|
|
945
|
+
declare type __VLS_Props_39 = {
|
|
917
946
|
/** 트리 노드 데이터 */
|
|
918
|
-
items:
|
|
947
|
+
items: SidebarMenuItem_2[];
|
|
919
948
|
/** 펼쳐진 노드 키 목록 (v-model 지원, 배열) */
|
|
920
949
|
expandedKeys?: (number | string)[];
|
|
921
950
|
/** 현재 선택(하이라이트)된 노드의 menuKey (v-model 지원) */
|
|
@@ -932,15 +961,6 @@ declare type __VLS_Props_38 = {
|
|
|
932
961
|
class?: string;
|
|
933
962
|
};
|
|
934
963
|
|
|
935
|
-
declare type __VLS_Props_39 = {
|
|
936
|
-
/** 레이아웃 스타일 타입 */
|
|
937
|
-
styletype?: StyleType_29;
|
|
938
|
-
/** 콘텐츠 영역 스크롤 가능 여부 */
|
|
939
|
-
contentScroll?: boolean;
|
|
940
|
-
/** 추가 CSS 클래스 */
|
|
941
|
-
class?: string;
|
|
942
|
-
};
|
|
943
|
-
|
|
944
964
|
declare type __VLS_Props_4 = {
|
|
945
965
|
modelValue?: string;
|
|
946
966
|
disabled?: boolean;
|
|
@@ -952,37 +972,28 @@ declare type __VLS_Props_4 = {
|
|
|
952
972
|
styletype?: StyleType_4;
|
|
953
973
|
};
|
|
954
974
|
|
|
975
|
+
declare type __VLS_Props_40 = {
|
|
976
|
+
/** 레이아웃 스타일 타입 */
|
|
977
|
+
styletype?: StyleType_29;
|
|
978
|
+
/** 콘텐츠 영역 스크롤 가능 여부 */
|
|
979
|
+
contentScroll?: boolean;
|
|
980
|
+
/** 추가 CSS 클래스 */
|
|
981
|
+
class?: string;
|
|
982
|
+
};
|
|
983
|
+
|
|
955
984
|
/**
|
|
956
|
-
* JLayoutSimple -
|
|
957
|
-
* Simple Layout Template
|
|
958
|
-
*
|
|
959
|
-
* @description
|
|
960
|
-
* JLayout을 사용하는 Preset 템플릿입니다.
|
|
961
|
-
* JHeader, JSidebarSimple, JPageContainer를 조합한 기본 레이아웃 예시를 제공합니다.
|
|
962
|
-
*
|
|
963
|
-
* 레이아웃 구조:
|
|
964
|
-
* - header: 상단 헤더 영역 (슬롯)
|
|
965
|
-
* - sidebar: 사이드바 영역 (슬롯)
|
|
966
|
-
* - content: 메인 콘텐츠 영역 (슬롯, 기본 슬롯)
|
|
985
|
+
* JLayoutSimple - JSidebar + 일반 PageContainer 조합 템플릿
|
|
967
986
|
*
|
|
968
987
|
* @example
|
|
969
988
|
* ```vue
|
|
970
|
-
* <JLayoutSimple
|
|
971
|
-
* <template #header>
|
|
972
|
-
* <JHeader logo-text="JWMS Portal" :user-name="userName" styletype="default" />
|
|
973
|
-
* </template>
|
|
974
|
-
* <template #sidebar>
|
|
975
|
-
* <JSidebarSimple :menu-items="menuItems" styletype="default" />
|
|
976
|
-
* </template>
|
|
989
|
+
* <JLayoutSimple :menu-items="menuItems" storage-key="my-app-favorites">
|
|
977
990
|
* <template #content>
|
|
978
|
-
* <
|
|
979
|
-
* <div>페이지 콘텐츠</div>
|
|
980
|
-
* </JPageContainer>
|
|
991
|
+
* <RouterView />
|
|
981
992
|
* </template>
|
|
982
993
|
* </JLayoutSimple>
|
|
983
994
|
* ```
|
|
984
995
|
*/
|
|
985
|
-
declare type
|
|
996
|
+
declare type __VLS_Props_41 = {
|
|
986
997
|
/** 레이아웃 스타일 타입 */
|
|
987
998
|
styletype?: 'default' | 'minimal';
|
|
988
999
|
/** 콘텐츠 영역 스크롤 가능 여부 */
|
|
@@ -991,8 +1002,10 @@ declare type __VLS_Props_40 = {
|
|
|
991
1002
|
class?: string;
|
|
992
1003
|
/** 메뉴 아이템 목록 */
|
|
993
1004
|
menuItems?: SidebarMenuItem[];
|
|
994
|
-
/**
|
|
995
|
-
|
|
1005
|
+
/** 현재 활성 경로 */
|
|
1006
|
+
activePath?: string;
|
|
1007
|
+
/** 즐겨찾기 localStorage 키 */
|
|
1008
|
+
storageKey?: string;
|
|
996
1009
|
};
|
|
997
1010
|
|
|
998
1011
|
declare type __VLS_Props_5 = {
|
|
@@ -1289,11 +1302,11 @@ declare function __VLS_template_25(): {
|
|
|
1289
1302
|
attrs: Partial<{}>;
|
|
1290
1303
|
slots: {
|
|
1291
1304
|
header?(_: {
|
|
1292
|
-
|
|
1305
|
+
isSidebarCollapsed: boolean;
|
|
1293
1306
|
onSidebarToggle: () => void;
|
|
1294
1307
|
}): any;
|
|
1295
1308
|
sidebar?(_: {
|
|
1296
|
-
|
|
1309
|
+
isSidebarCollapsed: boolean;
|
|
1297
1310
|
}): any;
|
|
1298
1311
|
content?(_: {}): any;
|
|
1299
1312
|
default?(_: {}): any;
|
|
@@ -3185,30 +3198,44 @@ declare interface JShuttleProps {
|
|
|
3185
3198
|
class?: string;
|
|
3186
3199
|
}
|
|
3187
3200
|
|
|
3188
|
-
export declare const
|
|
3201
|
+
export declare const JSidebar: DefineComponent<__VLS_Props_35, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
3202
|
+
"update:collapsed": (value: boolean) => any;
|
|
3203
|
+
"menu-click": (item: SidebarMenuItem, event: MouseEvent) => any;
|
|
3204
|
+
}, string, PublicProps, Readonly<__VLS_Props_35> & Readonly<{
|
|
3205
|
+
"onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
|
|
3206
|
+
"onMenu-click"?: ((item: SidebarMenuItem, event: MouseEvent) => any) | undefined;
|
|
3207
|
+
}>, {
|
|
3208
|
+
width: string;
|
|
3209
|
+
collapsed: boolean;
|
|
3210
|
+
collapsedWidth: string;
|
|
3211
|
+
showSearch: boolean;
|
|
3212
|
+
showFavorites: boolean;
|
|
3213
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>;
|
|
3214
|
+
|
|
3215
|
+
export declare const JSidebarAdvanced: DefineComponent<__VLS_Props_37, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
3189
3216
|
menuClick: (event: MenuClickEvent) => any;
|
|
3190
3217
|
favoriteChange: (menuKey: string | number | undefined, isFavorite: boolean) => any;
|
|
3191
|
-
}, string, PublicProps, Readonly<
|
|
3218
|
+
}, string, PublicProps, Readonly<__VLS_Props_37> & Readonly<{
|
|
3192
3219
|
onMenuClick?: ((event: MenuClickEvent) => any) | undefined;
|
|
3193
3220
|
onFavoriteChange?: ((menuKey: string | number | undefined, isFavorite: boolean) => any) | undefined;
|
|
3194
3221
|
}>, {
|
|
3195
3222
|
width: string;
|
|
3196
3223
|
styletype: StyleType_26;
|
|
3197
3224
|
isVisible: boolean;
|
|
3198
|
-
permissions: MenuPermission[];
|
|
3199
3225
|
favorites: (number | string)[];
|
|
3226
|
+
permissions: MenuPermission[];
|
|
3200
3227
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
3201
3228
|
|
|
3202
|
-
export declare const JSidebarSimple: DefineComponent<
|
|
3229
|
+
export declare const JSidebarSimple: DefineComponent<__VLS_Props_36, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
3203
3230
|
menuClick: (event: MenuClickEvent) => any;
|
|
3204
|
-
}, string, PublicProps, Readonly<
|
|
3231
|
+
}, string, PublicProps, Readonly<__VLS_Props_36> & Readonly<{
|
|
3205
3232
|
onMenuClick?: ((event: MenuClickEvent) => any) | undefined;
|
|
3206
3233
|
}>, {
|
|
3207
3234
|
width: string;
|
|
3208
3235
|
styletype: StyleType_25;
|
|
3209
3236
|
isVisible: boolean;
|
|
3210
|
-
permissions: MenuPermission[];
|
|
3211
3237
|
searchQuery: string;
|
|
3238
|
+
permissions: MenuPermission[];
|
|
3212
3239
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
3213
3240
|
|
|
3214
3241
|
export declare const JSpinner: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{}>, {
|
|
@@ -3284,23 +3311,23 @@ closeButton: boolean;
|
|
|
3284
3311
|
|
|
3285
3312
|
export declare const JTooltip: __VLS_WithTemplateSlots_6<typeof __VLS_component_6, __VLS_TemplateResult_6["slots"]>;
|
|
3286
3313
|
|
|
3287
|
-
export declare const JTree: DefineComponent<
|
|
3314
|
+
export declare const JTree: DefineComponent<__VLS_Props_39, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
3288
3315
|
expandChange: (menuKey: string | number | undefined, expanded: boolean) => any;
|
|
3289
3316
|
nodeClick: (event: MenuClickEvent) => any;
|
|
3290
3317
|
"update:expandedKeys": (keys: (string | number)[]) => any;
|
|
3291
3318
|
"update:activeKey": (key: string | number | null) => any;
|
|
3292
|
-
}, string, PublicProps, Readonly<
|
|
3319
|
+
}, string, PublicProps, Readonly<__VLS_Props_39> & Readonly<{
|
|
3293
3320
|
onExpandChange?: ((menuKey: string | number | undefined, expanded: boolean) => any) | undefined;
|
|
3294
3321
|
onNodeClick?: ((event: MenuClickEvent) => any) | undefined;
|
|
3295
3322
|
"onUpdate:expandedKeys"?: ((keys: (string | number)[]) => any) | undefined;
|
|
3296
3323
|
"onUpdate:activeKey"?: ((key: string | number | null) => any) | undefined;
|
|
3297
3324
|
}>, {
|
|
3298
3325
|
styletype: StyleType_28;
|
|
3326
|
+
searchQuery: string;
|
|
3299
3327
|
permissions: MenuPermission[];
|
|
3300
3328
|
expandedKeys: (number | string)[];
|
|
3301
3329
|
maxDepth: number;
|
|
3302
3330
|
activeKey: number | string | null;
|
|
3303
|
-
searchQuery: string;
|
|
3304
3331
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
3305
3332
|
|
|
3306
3333
|
declare type LabelPosition = 'right' | 'left' | 'top' | 'bottom';
|
|
@@ -3316,9 +3343,9 @@ declare type LanguageType = 'K' | 'E';
|
|
|
3316
3343
|
*/
|
|
3317
3344
|
declare interface MenuClickEvent {
|
|
3318
3345
|
/** 클릭된 메뉴 아이템 */
|
|
3319
|
-
menuItem:
|
|
3346
|
+
menuItem: SidebarMenuItem_2;
|
|
3320
3347
|
/** 메뉴 경로 (부모 메뉴 포함) */
|
|
3321
|
-
path:
|
|
3348
|
+
path: SidebarMenuItem_2[];
|
|
3322
3349
|
/** 이벤트 객체 */
|
|
3323
3350
|
event: MouseEvent;
|
|
3324
3351
|
}
|
|
@@ -3334,6 +3361,13 @@ declare interface MenuPermission {
|
|
|
3334
3361
|
permissionLevel: number;
|
|
3335
3362
|
}
|
|
3336
3363
|
|
|
3364
|
+
/**
|
|
3365
|
+
* JSidebar 타입 정의
|
|
3366
|
+
* JSidebar Type Definitions
|
|
3367
|
+
*/
|
|
3368
|
+
/** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */
|
|
3369
|
+
export declare type MenuType = 'F' | 'L';
|
|
3370
|
+
|
|
3337
3371
|
/**
|
|
3338
3372
|
* 사이드바 메뉴 관련 타입 정의
|
|
3339
3373
|
* Sidebar Menu Type Definitions
|
|
@@ -3343,7 +3377,7 @@ declare interface MenuPermission {
|
|
|
3343
3377
|
* - 'F': Folder (폴더 - 하위 메뉴를 가지는 메뉴)
|
|
3344
3378
|
* - 'L': Link (링크 - 실제 페이지로 이동하는 메뉴)
|
|
3345
3379
|
*/
|
|
3346
|
-
declare type
|
|
3380
|
+
declare type MenuType_2 = 'F' | 'L';
|
|
3347
3381
|
|
|
3348
3382
|
export declare type NotificationItem = {
|
|
3349
3383
|
/** 알림 ID */
|
|
@@ -3433,23 +3467,47 @@ declare interface ShuttleItem {
|
|
|
3433
3467
|
[key: string]: any;
|
|
3434
3468
|
}
|
|
3435
3469
|
|
|
3470
|
+
/**
|
|
3471
|
+
* 사이드바 메뉴 아이템 (DB J_마스터_프로그램 트리 매핑)
|
|
3472
|
+
*/
|
|
3473
|
+
export declare interface SidebarMenuItem {
|
|
3474
|
+
/** 프로그램 아이디 */
|
|
3475
|
+
id: string;
|
|
3476
|
+
/** 부모 아이디 */
|
|
3477
|
+
parentId?: string;
|
|
3478
|
+
/** 메뉴 표시 이름 */
|
|
3479
|
+
label: string;
|
|
3480
|
+
/** lucide 아이콘 이름 */
|
|
3481
|
+
icon?: string;
|
|
3482
|
+
/** 라우트 경로 (L 타입만) */
|
|
3483
|
+
path?: string;
|
|
3484
|
+
/** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */
|
|
3485
|
+
menuType: MenuType;
|
|
3486
|
+
/** 정렬 순서 */
|
|
3487
|
+
sortOrder?: number;
|
|
3488
|
+
/** 하위 메뉴 (서버에서 트리로 변환) */
|
|
3489
|
+
children?: SidebarMenuItem[];
|
|
3490
|
+
/** 비활성화 여부 */
|
|
3491
|
+
disabled?: boolean;
|
|
3492
|
+
}
|
|
3493
|
+
|
|
3436
3494
|
/**
|
|
3437
3495
|
* 사이드바 메뉴 아이템
|
|
3438
3496
|
* Sidebar Menu Item
|
|
3439
3497
|
*/
|
|
3440
|
-
declare interface
|
|
3498
|
+
declare interface SidebarMenuItem_2 {
|
|
3441
3499
|
/** 메뉴 표시 이름 */
|
|
3442
3500
|
label: string;
|
|
3443
3501
|
/** 메뉴 아이콘 이름 (lucide-vue-next 아이콘 이름 또는 컴포넌트) */
|
|
3444
3502
|
icon?: string;
|
|
3445
3503
|
/** 메뉴 타입 (Folder/Link) */
|
|
3446
|
-
menuType?:
|
|
3504
|
+
menuType?: MenuType_2;
|
|
3447
3505
|
/** 메뉴 키 (권한 체크용) */
|
|
3448
3506
|
menuKey?: number;
|
|
3449
3507
|
/** 라우팅 경로 (menuType이 'L'일 때 사용) */
|
|
3450
3508
|
path?: string;
|
|
3451
3509
|
/** 하위 메뉴 목록 */
|
|
3452
|
-
children?:
|
|
3510
|
+
children?: SidebarMenuItem_2[];
|
|
3453
3511
|
/** 비활성화 여부 */
|
|
3454
3512
|
disabled?: boolean;
|
|
3455
3513
|
/** 추가 메타데이터 */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.types.cjs","sources":["../../../src/types/sidebar.types.ts"],"sourcesContent":["/**\n * JSidebar 타입 정의\n * JSidebar Type Definitions\n */\n\n/** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */\nexport type MenuType = 'F' | 'L'\n\n/**\n * 사이드바 메뉴 아이템 (DB J_마스터_프로그램 트리 매핑)\n */\nexport interface SidebarMenuItem {\n /** 프로그램 아이디 */\n id: string\n /** 부모 아이디 */\n parentId?: string\n /** 메뉴 표시 이름 */\n label: string\n /** lucide 아이콘 이름 */\n icon?: string\n /** 라우트 경로 (L 타입만) */\n path?: string\n /** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */\n menuType: MenuType\n /** 정렬 순서 */\n sortOrder?: number\n /** 하위 메뉴 (서버에서 트리로 변환) */\n children?: SidebarMenuItem[]\n /** 비활성화 여부 */\n disabled?: boolean\n}\n\n/**\n * 사이드바 내부 상태 (provide/inject)\n */\nexport interface SidebarState {\n /** 접힘 상태 */\n collapsed: boolean\n /** 현재 활성 경로 */\n activePath: string | undefined\n /** 즐겨찾기 id Set */\n favorites: Set<string>\n /** 즐겨찾기 토글 */\n toggleFavorite: (id: string) => void\n}\n\n// Vue InjectionKey 타입을 위한 import\nimport type { InjectionKey } from 'vue'\n\n/** provide/inject 키 */\nexport const SIDEBAR_INJECTION_KEY = Symbol('sidebar-state') as InjectionKey<SidebarState>\n"],"names":["SIDEBAR_INJECTION_KEY"],"mappings":"gFAkDO,MAAMA,SAA+B,eAAe"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.types.js","sources":["../../../src/types/sidebar.types.ts"],"sourcesContent":["/**\n * JSidebar 타입 정의\n * JSidebar Type Definitions\n */\n\n/** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */\nexport type MenuType = 'F' | 'L'\n\n/**\n * 사이드바 메뉴 아이템 (DB J_마스터_프로그램 트리 매핑)\n */\nexport interface SidebarMenuItem {\n /** 프로그램 아이디 */\n id: string\n /** 부모 아이디 */\n parentId?: string\n /** 메뉴 표시 이름 */\n label: string\n /** lucide 아이콘 이름 */\n icon?: string\n /** 라우트 경로 (L 타입만) */\n path?: string\n /** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */\n menuType: MenuType\n /** 정렬 순서 */\n sortOrder?: number\n /** 하위 메뉴 (서버에서 트리로 변환) */\n children?: SidebarMenuItem[]\n /** 비활성화 여부 */\n disabled?: boolean\n}\n\n/**\n * 사이드바 내부 상태 (provide/inject)\n */\nexport interface SidebarState {\n /** 접힘 상태 */\n collapsed: boolean\n /** 현재 활성 경로 */\n activePath: string | undefined\n /** 즐겨찾기 id Set */\n favorites: Set<string>\n /** 즐겨찾기 토글 */\n toggleFavorite: (id: string) => void\n}\n\n// Vue InjectionKey 타입을 위한 import\nimport type { InjectionKey } from 'vue'\n\n/** provide/inject 키 */\nexport const SIDEBAR_INJECTION_KEY = Symbol('sidebar-state') as InjectionKey<SidebarState>\n"],"names":["SIDEBAR_INJECTION_KEY"],"mappings":"AAkDO,MAAMA,2BAA+B,eAAe;"}
|