@gx-design-vue/pro-layout-components 0.1.0-alpha.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.
Files changed (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/AppsLogoComponents/AppLogoList.d.ts +24 -0
  4. package/dist/AppsLogoComponents/AppLogoList.js +43 -0
  5. package/dist/AppsLogoComponents/AppsLogo.d.ts +10 -0
  6. package/dist/AppsLogoComponents/AppsLogo.js +12 -0
  7. package/dist/AppsLogoComponents/DefaultContent.d.ts +27 -0
  8. package/dist/AppsLogoComponents/DefaultContent.js +43 -0
  9. package/dist/AppsLogoComponents/SimpleContent.d.ts +38 -0
  10. package/dist/AppsLogoComponents/SimpleContent.js +63 -0
  11. package/dist/AppsLogoComponents/index.d.ts +32 -0
  12. package/dist/AppsLogoComponents/index.js +71 -0
  13. package/dist/AppsLogoComponents/props.d.ts +26 -0
  14. package/dist/AppsLogoComponents/props.js +12 -0
  15. package/dist/AppsLogoComponents/style/default.d.ts +6 -0
  16. package/dist/AppsLogoComponents/style/default.js +70 -0
  17. package/dist/AppsLogoComponents/style/index.d.ts +7 -0
  18. package/dist/AppsLogoComponents/style/index.js +60 -0
  19. package/dist/AppsLogoComponents/style/simple.d.ts +6 -0
  20. package/dist/AppsLogoComponents/style/simple.js +83 -0
  21. package/dist/Icon/components/Paintbrush.d.ts +6 -0
  22. package/dist/Icon/components/Paintbrush.js +21 -0
  23. package/dist/Icon/components/Palette.d.ts +6 -0
  24. package/dist/Icon/components/Palette.js +20 -0
  25. package/dist/Icon/components/index.d.ts +10 -0
  26. package/dist/Icon/components/index.js +11 -0
  27. package/dist/Icon/index.d.ts +37 -0
  28. package/dist/Icon/index.js +24 -0
  29. package/dist/PageLock/Popup.d.ts +43 -0
  30. package/dist/PageLock/Popup.js +68 -0
  31. package/dist/PageLock/UserForm.d.ts +42 -0
  32. package/dist/PageLock/UserForm.js +68 -0
  33. package/dist/PageLock/index.d.ts +52 -0
  34. package/dist/PageLock/index.js +92 -0
  35. package/dist/PageLock/props.d.ts +51 -0
  36. package/dist/PageLock/props.js +29 -0
  37. package/dist/PageLock/style.d.ts +7 -0
  38. package/dist/PageLock/style.js +108 -0
  39. package/dist/PageLock/useFormState.d.ts +16 -0
  40. package/dist/PageLock/useFormState.js +19 -0
  41. package/dist/Paintbrush-EfUpNqey.js +14 -0
  42. package/dist/Palette-B5wq9KtV.js +13 -0
  43. package/dist/RightContent/Search/Panel.d.ts +42 -0
  44. package/dist/RightContent/Search/Panel.js +146 -0
  45. package/dist/RightContent/Search/index.d.ts +50 -0
  46. package/dist/RightContent/Search/index.js +118 -0
  47. package/dist/RightContent/Search/props.d.ts +17 -0
  48. package/dist/RightContent/Search/props.js +15 -0
  49. package/dist/RightContent/Search/style.d.ts +10 -0
  50. package/dist/RightContent/Search/style.js +96 -0
  51. package/dist/RightContent/index.d.ts +407 -0
  52. package/dist/RightContent/index.js +152 -0
  53. package/dist/RightContent/props.d.ts +64 -0
  54. package/dist/RightContent/props.js +63 -0
  55. package/dist/RightContent/style.d.ts +10 -0
  56. package/dist/RightContent/style.js +73 -0
  57. package/dist/ThemeEditor/components/BlockCheckbox.d.ts +39 -0
  58. package/dist/ThemeEditor/components/BlockCheckbox.js +42 -0
  59. package/dist/ThemeEditor/components/RegionalChange.d.ts +21 -0
  60. package/dist/ThemeEditor/components/RegionalChange.js +43 -0
  61. package/dist/ThemeEditor/components/Setting/index.d.ts +52 -0
  62. package/dist/ThemeEditor/components/Setting/index.js +125 -0
  63. package/dist/ThemeEditor/components/SwitchTab/index.d.ts +51 -0
  64. package/dist/ThemeEditor/components/SwitchTab/index.js +52 -0
  65. package/dist/ThemeEditor/components/SwitchTab/style.d.ts +6 -0
  66. package/dist/ThemeEditor/components/SwitchTab/style.js +54 -0
  67. package/dist/ThemeEditor/components/Tokens/Colors/ColorSvg.d.ts +7 -0
  68. package/dist/ThemeEditor/components/Tokens/Colors/ColorSvg.js +453 -0
  69. package/dist/ThemeEditor/components/Tokens/Colors/Primary.d.ts +7 -0
  70. package/dist/ThemeEditor/components/Tokens/Colors/Primary.js +58 -0
  71. package/dist/ThemeEditor/components/Tokens/Colors/Side.d.ts +7 -0
  72. package/dist/ThemeEditor/components/Tokens/Colors/Side.js +18 -0
  73. package/dist/ThemeEditor/components/Tokens/Colors/index.d.ts +7 -0
  74. package/dist/ThemeEditor/components/Tokens/Colors/index.js +15 -0
  75. package/dist/ThemeEditor/components/Tokens/context.d.ts +9 -0
  76. package/dist/ThemeEditor/components/Tokens/context.js +7 -0
  77. package/dist/ThemeEditor/components/Tokens/index.d.ts +45 -0
  78. package/dist/ThemeEditor/components/Tokens/index.js +69 -0
  79. package/dist/ThemeEditor/components/Tokens/utils/config.d.ts +10 -0
  80. package/dist/ThemeEditor/components/Tokens/utils/config.js +8 -0
  81. package/dist/ThemeEditor/components/Trigger.d.ts +21 -0
  82. package/dist/ThemeEditor/components/Trigger.js +46 -0
  83. package/dist/ThemeEditor/context.d.ts +14 -0
  84. package/dist/ThemeEditor/context.js +7 -0
  85. package/dist/ThemeEditor/index.d.ts +841 -0
  86. package/dist/ThemeEditor/index.js +165 -0
  87. package/dist/ThemeEditor/props.d.ts +57 -0
  88. package/dist/ThemeEditor/props.js +40 -0
  89. package/dist/ThemeEditor/style/animate.d.ts +9 -0
  90. package/dist/ThemeEditor/style/animate.js +38 -0
  91. package/dist/ThemeEditor/style/index.d.ts +10 -0
  92. package/dist/ThemeEditor/style/index.js +318 -0
  93. package/dist/ThemeEditor/style/theme.d.ts +6 -0
  94. package/dist/ThemeEditor/style/theme.js +71 -0
  95. package/dist/ThemeEditor/utils/config.d.ts +37 -0
  96. package/dist/ThemeEditor/utils/config.js +132 -0
  97. package/dist/ThemeEditor/utils/index.d.ts +9 -0
  98. package/dist/ThemeEditor/utils/index.js +64 -0
  99. package/dist/hooks/useClockTime/index.d.ts +11 -0
  100. package/dist/hooks/useClockTime/index.js +28 -0
  101. package/dist/index.d.ts +7 -0
  102. package/dist/index.js +5 -0
  103. package/dist/pro-layout-components.esm.js +6258 -0
  104. package/dist/pro-layout-components.js +5 -0
  105. package/dist/utils/index.d.ts +2 -0
  106. package/dist/utils/index.js +3 -0
  107. package/dist/utils/util.d.ts +10 -0
  108. package/dist/utils/util.js +17 -0
  109. package/global.d.ts +10 -0
  110. package/package.json +77 -0
@@ -0,0 +1,96 @@
1
+ import { unit, useStyle as useStyle$1 } from "@gx-design-vue/pro-provider";
2
+
3
+ //#region src/RightContent/Search/style.ts
4
+ const getStyle = (token) => {
5
+ const fontSize = unit(token.layout?.menuItemIconSize || token.fontSize);
6
+ return { [token.componentCls]: {
7
+ display: "flex",
8
+ alignItems: "center",
9
+ justifyContent: "center",
10
+ height: 36,
11
+ gap: 12,
12
+ cursor: "pointer",
13
+ fontSize: token.fontSizeSM,
14
+ color: token.colorTextTertiary,
15
+ paddingBlock: token.paddingXXS / 2,
16
+ paddingInline: token.paddingXS,
17
+ borderRadius: token.borderRadiusLG * 2,
18
+ backgroundColor: token.layout?.header?.colorBgRightActionsItemHover,
19
+ transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,
20
+ ">.anticon": {
21
+ fontSize: token.fontSize,
22
+ color: token.colorTextTertiary
23
+ },
24
+ "&-word-icon": {
25
+ padding: "4px 6px",
26
+ lineHeight: unit(token.fontSizeSM),
27
+ borderTopLeftRadius: token.borderRadiusSM,
28
+ borderBottomLeftRadius: token.borderRadiusSM,
29
+ borderTopRightRadius: token.borderRadiusLG * 2,
30
+ borderBottomRightRadius: token.borderRadiusLG * 2,
31
+ backgroundColor: token.colorBgContainer
32
+ },
33
+ "&:hover": { color: token.colorTextSecondary },
34
+ "&-panel": {
35
+ "&-title": {
36
+ color: token.colorTextQuaternary,
37
+ lineHeight: token.lineHeight,
38
+ marginBlockEnd: token.marginXS
39
+ },
40
+ "&-list": {
41
+ display: "flex",
42
+ flexDirection: "column",
43
+ gap: 12
44
+ },
45
+ "&-item": {
46
+ display: "flex",
47
+ alignItems: "center",
48
+ justifyContent: "space-between",
49
+ cursor: "pointer",
50
+ fontSize: token.fontSize,
51
+ lineHeight: token.lineHeight,
52
+ padding: token.paddingXS,
53
+ borderRadius: token.borderRadiusLG,
54
+ backgroundColor: token.colorBgContainer,
55
+ transition: `all ${token.motionDurationFast} ${token.motionEaseInOut}`,
56
+ "&-left": {
57
+ display: "flex",
58
+ alignItems: "center",
59
+ gap: token.sizeStep,
60
+ ">.anticon": { fontSize }
61
+ },
62
+ "&.active": {
63
+ backgroundColor: token.colorPrimary,
64
+ color: token.colorTextLightSolid
65
+ }
66
+ }
67
+ },
68
+ "&-result": {
69
+ display: "flex",
70
+ alignItems: "center",
71
+ justifyContent: "center",
72
+ paddingBlockStart: 60,
73
+ color: token.colorTextQuaternary
74
+ },
75
+ "&-modal-footer": {
76
+ display: "flex",
77
+ alignItems: "center",
78
+ gap: token.marginXS,
79
+ fontSize: 12,
80
+ color: token.colorTextSecondary
81
+ },
82
+ "&-modal-footer-icon": {
83
+ display: "flex",
84
+ alignItems: "center",
85
+ gap: 4
86
+ }
87
+ } };
88
+ };
89
+ function useStyle(componentCls) {
90
+ return useStyle$1("SearchPageInput", (token) => {
91
+ return [getStyle(token)];
92
+ }, componentCls);
93
+ }
94
+
95
+ //#endregion
96
+ export { useStyle };
@@ -0,0 +1,407 @@
1
+ import { ShortcutKeyProps } from "../PageLock/props.js";
2
+ import { RightContentActions } from "./props.js";
3
+ import * as vue65 from "vue";
4
+ import { SlotsType } from "vue";
5
+ import * as _gx_design_vue_pro_utils0 from "@gx-design-vue/pro-utils";
6
+ import { CustomRender } from "@gx-design-vue/pro-utils";
7
+ import * as ant_design_vue0 from "ant-design-vue";
8
+ import * as _gx_design_vue_pro_layout0 from "@gx-design-vue/pro-layout";
9
+ import * as ant_design_vue_es__util_type1 from "ant-design-vue/es/_util/type";
10
+ import * as ant_design_vue_es_dropdown_props0 from "ant-design-vue/es/dropdown/props";
11
+ import * as ant_design_vue_es__util_transition0 from "ant-design-vue/es/_util/transition";
12
+ import * as ant_design_vue_es_menu_src_interface0 from "ant-design-vue/es/menu/src/interface";
13
+ import * as ant_design_vue_es__util_EventInterface0 from "ant-design-vue/es/_util/EventInterface";
14
+
15
+ //#region src/RightContent/index.d.ts
16
+ declare const GlobalRightContent: vue65.DefineComponent<vue65.ExtractPropTypes<{
17
+ actions: {
18
+ type: vue65.PropType<RightContentActions | false>;
19
+ default: () => {};
20
+ };
21
+ shortsKey: {
22
+ type: vue65.PropType<ShortcutKeyProps["search"]>;
23
+ default: () => ShortcutKeyProps["search"];
24
+ };
25
+ name: {
26
+ type: vue65.PropType<string>;
27
+ default: any;
28
+ };
29
+ avatar: vue65.PropType<string>;
30
+ actionsRender: {
31
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<(classNames: string[]) => CustomRender>>;
32
+ default: any;
33
+ };
34
+ dropdownProps: {
35
+ type: vue65.PropType<{
36
+ arrow?: boolean | ant_design_vue_es_dropdown_props0.DropdownArrowOptions;
37
+ trigger?: ant_design_vue_es_dropdown_props0.Trigger | ant_design_vue_es_dropdown_props0.Trigger[];
38
+ menu?: Partial<vue65.ExtractPropTypes<{
39
+ id: StringConstructor;
40
+ prefixCls: StringConstructor;
41
+ items: vue65.PropType<ant_design_vue0.ItemType[]>;
42
+ disabled: BooleanConstructor;
43
+ inlineCollapsed: BooleanConstructor;
44
+ disabledOverflow: BooleanConstructor;
45
+ forceSubMenuRender: BooleanConstructor;
46
+ openKeys: vue65.PropType<ant_design_vue_es__util_type1.Key[]>;
47
+ selectedKeys: vue65.PropType<ant_design_vue_es__util_type1.Key[]>;
48
+ activeKey: StringConstructor;
49
+ selectable: {
50
+ type: BooleanConstructor;
51
+ default: boolean;
52
+ };
53
+ multiple: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
57
+ tabindex: {
58
+ type: (StringConstructor | NumberConstructor)[];
59
+ };
60
+ motion: vue65.PropType<ant_design_vue_es__util_transition0.CSSMotionProps>;
61
+ role: StringConstructor;
62
+ theme: {
63
+ type: vue65.PropType<ant_design_vue0.MenuTheme>;
64
+ default: string;
65
+ };
66
+ mode: {
67
+ type: vue65.PropType<ant_design_vue0.MenuMode>;
68
+ default: string;
69
+ };
70
+ inlineIndent: {
71
+ type: NumberConstructor;
72
+ default: number;
73
+ };
74
+ subMenuOpenDelay: {
75
+ type: NumberConstructor;
76
+ default: number;
77
+ };
78
+ subMenuCloseDelay: {
79
+ type: NumberConstructor;
80
+ default: number;
81
+ };
82
+ builtinPlacements: {
83
+ type: vue65.PropType<ant_design_vue_es_menu_src_interface0.BuiltinPlacements>;
84
+ };
85
+ triggerSubMenuAction: {
86
+ type: vue65.PropType<ant_design_vue_es_menu_src_interface0.TriggerSubMenuAction>;
87
+ default: string;
88
+ };
89
+ getPopupContainer: vue65.PropType<(node: HTMLElement) => HTMLElement>;
90
+ expandIcon: vue65.PropType<(p?: {
91
+ [key: string]: any;
92
+ isOpen: boolean;
93
+ }) => any>;
94
+ onOpenChange: vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
95
+ onSelect: vue65.PropType<ant_design_vue_es_menu_src_interface0.SelectEventHandler>;
96
+ onDeselect: vue65.PropType<ant_design_vue_es_menu_src_interface0.SelectEventHandler>;
97
+ onClick: vue65.PropType<ant_design_vue_es_menu_src_interface0.MenuClickEventHandler>;
98
+ onFocus: vue65.PropType<ant_design_vue_es__util_EventInterface0.FocusEventHandler>;
99
+ onBlur: vue65.PropType<ant_design_vue_es__util_EventInterface0.FocusEventHandler>;
100
+ onMousedown: vue65.PropType<ant_design_vue_es__util_EventInterface0.MouseEventHandler>;
101
+ 'onUpdate:openKeys': vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
102
+ 'onUpdate:selectedKeys': vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
103
+ 'onUpdate:activeKey': vue65.PropType<(key: ant_design_vue_es__util_type1.Key) => void>;
104
+ }>>;
105
+ visible?: boolean;
106
+ open?: boolean;
107
+ disabled?: boolean;
108
+ danger?: boolean;
109
+ autofocus?: boolean;
110
+ align?: ant_design_vue_es_dropdown_props0.Align;
111
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
112
+ prefixCls?: string;
113
+ transitionName?: string;
114
+ overlayClassName?: string;
115
+ overlayStyle?: vue65.CSSProperties;
116
+ forceRender?: boolean;
117
+ mouseEnterDelay?: number;
118
+ mouseLeaveDelay?: number;
119
+ openClassName?: string;
120
+ minOverlayWidthMatchTrigger?: boolean;
121
+ destroyPopupOnHide?: boolean;
122
+ onVisibleChange?: (val: boolean) => void;
123
+ 'onUpdate:visible'?: (val: boolean) => void;
124
+ onOpenChange?: (val: boolean) => void;
125
+ 'onUpdate:open'?: (val: boolean) => void;
126
+ }>;
127
+ default: () => {};
128
+ };
129
+ dropdownRender: {
130
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<CustomRender>>;
131
+ default: any;
132
+ };
133
+ dropdownMenuRender: {
134
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<CustomRender>>;
135
+ default: any;
136
+ };
137
+ dropdownMenuExtraItemRender: {
138
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<CustomRender>>;
139
+ default: any;
140
+ };
141
+ onLogout: vue65.PropType<(callback?: () => void) => void>;
142
+ onClick: vue65.PropType<(type: keyof RightContentActions) => void>;
143
+ dataSource: {
144
+ type: vue65.PropType<_gx_design_vue_pro_layout0.AppRouteModule[]>;
145
+ default: () => any[];
146
+ };
147
+ historyKey: vue65.PropType<string>;
148
+ emptyProps: {
149
+ type: vue65.PropType<any>;
150
+ default: () => {};
151
+ };
152
+ }>, () => ant_design_vue_es__util_type1.VueNode, {}, {}, {}, vue65.ComponentOptionsMixin, vue65.ComponentOptionsMixin, {
153
+ click: (type: keyof RightContentActions) => boolean;
154
+ logout: (callback?: () => void) => boolean;
155
+ }, string, vue65.PublicProps, Readonly<vue65.ExtractPropTypes<{
156
+ actions: {
157
+ type: vue65.PropType<RightContentActions | false>;
158
+ default: () => {};
159
+ };
160
+ shortsKey: {
161
+ type: vue65.PropType<ShortcutKeyProps["search"]>;
162
+ default: () => ShortcutKeyProps["search"];
163
+ };
164
+ name: {
165
+ type: vue65.PropType<string>;
166
+ default: any;
167
+ };
168
+ avatar: vue65.PropType<string>;
169
+ actionsRender: {
170
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<(classNames: string[]) => CustomRender>>;
171
+ default: any;
172
+ };
173
+ dropdownProps: {
174
+ type: vue65.PropType<{
175
+ arrow?: boolean | ant_design_vue_es_dropdown_props0.DropdownArrowOptions;
176
+ trigger?: ant_design_vue_es_dropdown_props0.Trigger | ant_design_vue_es_dropdown_props0.Trigger[];
177
+ menu?: Partial<vue65.ExtractPropTypes<{
178
+ id: StringConstructor;
179
+ prefixCls: StringConstructor;
180
+ items: vue65.PropType<ant_design_vue0.ItemType[]>;
181
+ disabled: BooleanConstructor;
182
+ inlineCollapsed: BooleanConstructor;
183
+ disabledOverflow: BooleanConstructor;
184
+ forceSubMenuRender: BooleanConstructor;
185
+ openKeys: vue65.PropType<ant_design_vue_es__util_type1.Key[]>;
186
+ selectedKeys: vue65.PropType<ant_design_vue_es__util_type1.Key[]>;
187
+ activeKey: StringConstructor;
188
+ selectable: {
189
+ type: BooleanConstructor;
190
+ default: boolean;
191
+ };
192
+ multiple: {
193
+ type: BooleanConstructor;
194
+ default: boolean;
195
+ };
196
+ tabindex: {
197
+ type: (StringConstructor | NumberConstructor)[];
198
+ };
199
+ motion: vue65.PropType<ant_design_vue_es__util_transition0.CSSMotionProps>;
200
+ role: StringConstructor;
201
+ theme: {
202
+ type: vue65.PropType<ant_design_vue0.MenuTheme>;
203
+ default: string;
204
+ };
205
+ mode: {
206
+ type: vue65.PropType<ant_design_vue0.MenuMode>;
207
+ default: string;
208
+ };
209
+ inlineIndent: {
210
+ type: NumberConstructor;
211
+ default: number;
212
+ };
213
+ subMenuOpenDelay: {
214
+ type: NumberConstructor;
215
+ default: number;
216
+ };
217
+ subMenuCloseDelay: {
218
+ type: NumberConstructor;
219
+ default: number;
220
+ };
221
+ builtinPlacements: {
222
+ type: vue65.PropType<ant_design_vue_es_menu_src_interface0.BuiltinPlacements>;
223
+ };
224
+ triggerSubMenuAction: {
225
+ type: vue65.PropType<ant_design_vue_es_menu_src_interface0.TriggerSubMenuAction>;
226
+ default: string;
227
+ };
228
+ getPopupContainer: vue65.PropType<(node: HTMLElement) => HTMLElement>;
229
+ expandIcon: vue65.PropType<(p?: {
230
+ [key: string]: any;
231
+ isOpen: boolean;
232
+ }) => any>;
233
+ onOpenChange: vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
234
+ onSelect: vue65.PropType<ant_design_vue_es_menu_src_interface0.SelectEventHandler>;
235
+ onDeselect: vue65.PropType<ant_design_vue_es_menu_src_interface0.SelectEventHandler>;
236
+ onClick: vue65.PropType<ant_design_vue_es_menu_src_interface0.MenuClickEventHandler>;
237
+ onFocus: vue65.PropType<ant_design_vue_es__util_EventInterface0.FocusEventHandler>;
238
+ onBlur: vue65.PropType<ant_design_vue_es__util_EventInterface0.FocusEventHandler>;
239
+ onMousedown: vue65.PropType<ant_design_vue_es__util_EventInterface0.MouseEventHandler>;
240
+ 'onUpdate:openKeys': vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
241
+ 'onUpdate:selectedKeys': vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
242
+ 'onUpdate:activeKey': vue65.PropType<(key: ant_design_vue_es__util_type1.Key) => void>;
243
+ }>>;
244
+ visible?: boolean;
245
+ open?: boolean;
246
+ disabled?: boolean;
247
+ danger?: boolean;
248
+ autofocus?: boolean;
249
+ align?: ant_design_vue_es_dropdown_props0.Align;
250
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
251
+ prefixCls?: string;
252
+ transitionName?: string;
253
+ overlayClassName?: string;
254
+ overlayStyle?: vue65.CSSProperties;
255
+ forceRender?: boolean;
256
+ mouseEnterDelay?: number;
257
+ mouseLeaveDelay?: number;
258
+ openClassName?: string;
259
+ minOverlayWidthMatchTrigger?: boolean;
260
+ destroyPopupOnHide?: boolean;
261
+ onVisibleChange?: (val: boolean) => void;
262
+ 'onUpdate:visible'?: (val: boolean) => void;
263
+ onOpenChange?: (val: boolean) => void;
264
+ 'onUpdate:open'?: (val: boolean) => void;
265
+ }>;
266
+ default: () => {};
267
+ };
268
+ dropdownRender: {
269
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<CustomRender>>;
270
+ default: any;
271
+ };
272
+ dropdownMenuRender: {
273
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<CustomRender>>;
274
+ default: any;
275
+ };
276
+ dropdownMenuExtraItemRender: {
277
+ type: vue65.PropType<_gx_design_vue_pro_utils0.WithFalse<CustomRender>>;
278
+ default: any;
279
+ };
280
+ onLogout: vue65.PropType<(callback?: () => void) => void>;
281
+ onClick: vue65.PropType<(type: keyof RightContentActions) => void>;
282
+ dataSource: {
283
+ type: vue65.PropType<_gx_design_vue_pro_layout0.AppRouteModule[]>;
284
+ default: () => any[];
285
+ };
286
+ historyKey: vue65.PropType<string>;
287
+ emptyProps: {
288
+ type: vue65.PropType<any>;
289
+ default: () => {};
290
+ };
291
+ }>> & Readonly<{
292
+ onClick?: (type: keyof RightContentActions) => any;
293
+ onLogout?: (callback?: () => void) => any;
294
+ }>, {
295
+ name: string;
296
+ actions: {};
297
+ shortsKey: {
298
+ keys?: string;
299
+ disabled?: boolean;
300
+ };
301
+ actionsRender: _gx_design_vue_pro_utils0.WithFalse<(classNames: string[]) => CustomRender>;
302
+ dropdownProps: {
303
+ arrow?: boolean | ant_design_vue_es_dropdown_props0.DropdownArrowOptions;
304
+ trigger?: ant_design_vue_es_dropdown_props0.Trigger | ant_design_vue_es_dropdown_props0.Trigger[];
305
+ menu?: Partial<vue65.ExtractPropTypes<{
306
+ id: StringConstructor;
307
+ prefixCls: StringConstructor;
308
+ items: vue65.PropType<ant_design_vue0.ItemType[]>;
309
+ disabled: BooleanConstructor;
310
+ inlineCollapsed: BooleanConstructor;
311
+ disabledOverflow: BooleanConstructor;
312
+ forceSubMenuRender: BooleanConstructor;
313
+ openKeys: vue65.PropType<ant_design_vue_es__util_type1.Key[]>;
314
+ selectedKeys: vue65.PropType<ant_design_vue_es__util_type1.Key[]>;
315
+ activeKey: StringConstructor;
316
+ selectable: {
317
+ type: BooleanConstructor;
318
+ default: boolean;
319
+ };
320
+ multiple: {
321
+ type: BooleanConstructor;
322
+ default: boolean;
323
+ };
324
+ tabindex: {
325
+ type: (StringConstructor | NumberConstructor)[];
326
+ };
327
+ motion: vue65.PropType<ant_design_vue_es__util_transition0.CSSMotionProps>;
328
+ role: StringConstructor;
329
+ theme: {
330
+ type: vue65.PropType<ant_design_vue0.MenuTheme>;
331
+ default: string;
332
+ };
333
+ mode: {
334
+ type: vue65.PropType<ant_design_vue0.MenuMode>;
335
+ default: string;
336
+ };
337
+ inlineIndent: {
338
+ type: NumberConstructor;
339
+ default: number;
340
+ };
341
+ subMenuOpenDelay: {
342
+ type: NumberConstructor;
343
+ default: number;
344
+ };
345
+ subMenuCloseDelay: {
346
+ type: NumberConstructor;
347
+ default: number;
348
+ };
349
+ builtinPlacements: {
350
+ type: vue65.PropType<ant_design_vue_es_menu_src_interface0.BuiltinPlacements>;
351
+ };
352
+ triggerSubMenuAction: {
353
+ type: vue65.PropType<ant_design_vue_es_menu_src_interface0.TriggerSubMenuAction>;
354
+ default: string;
355
+ };
356
+ getPopupContainer: vue65.PropType<(node: HTMLElement) => HTMLElement>;
357
+ expandIcon: vue65.PropType<(p?: {
358
+ [key: string]: any;
359
+ isOpen: boolean;
360
+ }) => any>;
361
+ onOpenChange: vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
362
+ onSelect: vue65.PropType<ant_design_vue_es_menu_src_interface0.SelectEventHandler>;
363
+ onDeselect: vue65.PropType<ant_design_vue_es_menu_src_interface0.SelectEventHandler>;
364
+ onClick: vue65.PropType<ant_design_vue_es_menu_src_interface0.MenuClickEventHandler>;
365
+ onFocus: vue65.PropType<ant_design_vue_es__util_EventInterface0.FocusEventHandler>;
366
+ onBlur: vue65.PropType<ant_design_vue_es__util_EventInterface0.FocusEventHandler>;
367
+ onMousedown: vue65.PropType<ant_design_vue_es__util_EventInterface0.MouseEventHandler>;
368
+ 'onUpdate:openKeys': vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
369
+ 'onUpdate:selectedKeys': vue65.PropType<(keys: ant_design_vue_es__util_type1.Key[]) => void>;
370
+ 'onUpdate:activeKey': vue65.PropType<(key: ant_design_vue_es__util_type1.Key) => void>;
371
+ }>>;
372
+ visible?: boolean;
373
+ open?: boolean;
374
+ disabled?: boolean;
375
+ danger?: boolean;
376
+ autofocus?: boolean;
377
+ align?: ant_design_vue_es_dropdown_props0.Align;
378
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
379
+ prefixCls?: string;
380
+ transitionName?: string;
381
+ overlayClassName?: string;
382
+ overlayStyle?: vue65.CSSProperties;
383
+ forceRender?: boolean;
384
+ mouseEnterDelay?: number;
385
+ mouseLeaveDelay?: number;
386
+ openClassName?: string;
387
+ minOverlayWidthMatchTrigger?: boolean;
388
+ destroyPopupOnHide?: boolean;
389
+ onVisibleChange?: (val: boolean) => void;
390
+ 'onUpdate:visible'?: (val: boolean) => void;
391
+ onOpenChange?: (val: boolean) => void;
392
+ 'onUpdate:open'?: (val: boolean) => void;
393
+ };
394
+ dropdownRender: CustomRender;
395
+ dropdownMenuRender: CustomRender;
396
+ dropdownMenuExtraItemRender: CustomRender;
397
+ dataSource: _gx_design_vue_pro_layout0.AppRouteModule[];
398
+ emptyProps: any;
399
+ }, SlotsType<{
400
+ default: () => CustomRender;
401
+ actionsRender: (classNames: string[]) => CustomRender;
402
+ dropdownRender: () => CustomRender;
403
+ dropdownMenuRender: () => CustomRender;
404
+ dropdownMenuExtraItemRender: () => CustomRender;
405
+ }>, {}, {}, string, vue65.ComponentProvideOptions, true, {}, any>;
406
+ //#endregion
407
+ export { GlobalRightContent as default };
@@ -0,0 +1,152 @@
1
+ import Icon_default from "../Icon/index.js";
2
+ import { getRightContentProps } from "./props.js";
3
+ import PageLock_default from "../PageLock/index.js";
4
+ import { systemTheme } from "../ThemeEditor/utils/config.js";
5
+ import Search_default from "./Search/index.js";
6
+ import { useStyle } from "./style.js";
7
+ import { Fragment, computed, createTextVNode, createVNode, defineComponent, isVNode, mergeProps, ref } from "vue";
8
+ import { useMediaQuery, useState } from "@gx-design-vue/pro-hooks";
9
+ import { getPrefixCls, getSlot, getSlotsProps, isBoolean, isFunction } from "@gx-design-vue/pro-utils";
10
+ import { Avatar, Dropdown, Menu, MenuItem } from "ant-design-vue";
11
+ import { useProLayoutContext } from "@gx-design-vue/pro-layout";
12
+ import { CompressOutlined, ExpandOutlined, LockOutlined, LogoutOutlined, SettingOutlined, UserOutlined } from "@ant-design/icons-vue";
13
+ import { toggleAnimateTheme, useThemeContext } from "@gx-design-vue/context";
14
+ import { useColorMode, useDebounceFn, useFullscreen } from "@vueuse/core";
15
+ import ResizeObserver from "ant-design-vue/es/vc-resize-observer";
16
+
17
+ //#region src/RightContent/index.tsx
18
+ function _isSlot(s) {
19
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
20
+ }
21
+ const GlobalRightContent = /* @__PURE__ */ defineComponent({
22
+ name: "GlobalRightContent",
23
+ props: getRightContentProps(),
24
+ inheritAttrs: false,
25
+ emits: {
26
+ click: (type) => type.length > 0,
27
+ logout: (callback) => typeof callback === "function"
28
+ },
29
+ slots: Object,
30
+ setup(props, { slots }) {
31
+ const { isFullscreen, toggle } = useFullscreen();
32
+ const layoutContext = useProLayoutContext();
33
+ const colSize = useMediaQuery();
34
+ const { system } = useColorMode();
35
+ const { setTheme, isDark, theme } = useThemeContext();
36
+ const prefixCls = getPrefixCls({
37
+ suffixCls: "global",
38
+ isPor: true
39
+ });
40
+ const { wrapSSR, hashId } = useStyle(prefixCls);
41
+ const toggleEl = ref();
42
+ const [lock, openLock] = useState(false);
43
+ const [rightSize, setRightSize] = useState("auto");
44
+ const isMobile = computed(() => isBoolean(layoutContext?.isMobile?.value) ? layoutContext?.isMobile?.value : colSize.value === "sm" || colSize.value === "xs");
45
+ const actions = computed(() => {
46
+ if (props.actions === false) return {};
47
+ return {
48
+ lock: true,
49
+ theme: true,
50
+ search: true,
51
+ themeEditor: true,
52
+ fullScreen: true,
53
+ ...props.actions
54
+ };
55
+ });
56
+ /** 减少一下渲染的次数 */
57
+ const setRightSizeDebounceFn = useDebounceFn(async (width) => {
58
+ setRightSize(width);
59
+ }, 160);
60
+ const changeTheme = (value) => {
61
+ const themeValue = value === "system" ? system.value : value;
62
+ if (toggleEl.value) toggleAnimateTheme(toggleEl.value, {
63
+ isDark: themeValue === "dark",
64
+ setTheme: () => setTheme(value)
65
+ });
66
+ };
67
+ function onClick(type) {
68
+ if (isFunction(props.onClick)) props.onClick?.(type);
69
+ }
70
+ return () => {
71
+ let _slot2;
72
+ const slotsProps = getSlotsProps({
73
+ slots,
74
+ props,
75
+ keys: [
76
+ "dropdownRender",
77
+ "dropdownMenuRender",
78
+ "dropdownMenuExtraItemRender"
79
+ ],
80
+ render: true
81
+ });
82
+ const actionsRender = getSlot({
83
+ slots,
84
+ props,
85
+ key: "actionsRender"
86
+ });
87
+ const FullScreenIcon = isFullscreen.value ? CompressOutlined : ExpandOutlined;
88
+ return wrapSSR(createVNode("div", {
89
+ "class": `${prefixCls}-right-content ${hashId.value}`.trim(),
90
+ "style": {
91
+ minWidth: rightSize.value,
92
+ height: "100%"
93
+ }
94
+ }, [createVNode("div", { "style": { height: "100%" } }, [createVNode(ResizeObserver, {
95
+ "key": "resize-observer",
96
+ "onResize": ({ width }) => {
97
+ setRightSizeDebounceFn(width);
98
+ }
99
+ }, { default: () => [createVNode("div", { "class": `${prefixCls}-header-actions ${hashId.value}`.trim() }, [slots.default?.() ?? createVNode(Fragment, null, [
100
+ actions.value.search && !isMobile.value && createVNode(Search_default, {
101
+ "dataSource": props.dataSource,
102
+ "disabledShortKey": props.shortsKey?.disabled,
103
+ "emptyProps": props.emptyProps
104
+ }, null),
105
+ actions.value.theme && createVNode("div", {
106
+ "ref": toggleEl,
107
+ "class": `${prefixCls}-header-actions-item ${prefixCls}-header-actions-theme ${hashId.value}`.trim()
108
+ }, [createVNode(Dropdown, {
109
+ "trigger": ["click"],
110
+ "placement": "bottomRight",
111
+ "overlay": createVNode(Menu, { "selectedKeys": [theme.value] }, _isSlot(_slot2 = systemTheme.map((item) => {
112
+ let _slot;
113
+ return createVNode(Menu.Item, {
114
+ "key": item.value,
115
+ "onClick": () => changeTheme(item.value)
116
+ }, _isSlot(_slot = item.label()) ? _slot : { default: () => [_slot] });
117
+ })) ? _slot2 : { default: () => [_slot2] })
118
+ }, { default: () => [createVNode(Icon_default, {
119
+ "class": `${prefixCls}-header-actions-icon ${hashId.value}`.trim(),
120
+ "type": isDark.value ? "moon" : "sunny"
121
+ }, null)] })]),
122
+ actions.value.themeEditor && !isMobile.value && createVNode("div", { "class": `${prefixCls}-header-actions-item ${hashId.value}`.trim() }, [createVNode(SettingOutlined, { "onClick": () => onClick("themeEditor") }, null)]),
123
+ actions.value.fullScreen && !isMobile.value && createVNode("div", { "class": `${prefixCls}-header-actions-item ${hashId.value}`.trim() }, [createVNode(FullScreenIcon, { "onClick": () => toggle() }, null)]),
124
+ actionsRender ? actionsRender?.([`${prefixCls}-header-actions-item`, hashId.value]) : null
125
+ ]), createVNode(Dropdown, mergeProps({ "placement": "bottomRight" }, props.dropdownProps, { "overlay": slotsProps.dropdownMenuRender || createVNode(Menu, null, { default: () => [
126
+ slotsProps.dropdownMenuExtraItemRender,
127
+ actions.value.lock && createVNode(Fragment, null, [createVNode(MenuItem, {
128
+ "key": "lock",
129
+ "icon": createVNode(LockOutlined, null, null),
130
+ "onClick": () => openLock(true)
131
+ }, { default: () => [createTextVNode("锁定屏幕")] }), createVNode(Menu.Divider, null, null)]),
132
+ createVNode(MenuItem, {
133
+ "key": "logout",
134
+ "icon": createVNode(LogoutOutlined, null, null),
135
+ "onClick": () => props.onLogout?.()
136
+ }, { default: () => [createTextVNode("退出登录")] })
137
+ ] }) }), { default: () => [slotsProps.dropdownRender || createVNode("div", { "class": `${prefixCls}-header-actions-avatar ${hashId.value}`.trim() }, [createVNode(Avatar, {
138
+ "size": 28,
139
+ "icon": createVNode(UserOutlined, null, null),
140
+ "src": props.avatar
141
+ }, null), props.name && createVNode("span", { "class": `${prefixCls}-header-actions-name ${hashId.value}`.trim() }, [props.name])])] })])] })]), createVNode(PageLock_default, {
142
+ "open": lock.value,
143
+ "name": props.name,
144
+ "onOpenChange": (val) => openLock(val)
145
+ }, null)]));
146
+ };
147
+ }
148
+ });
149
+ var RightContent_default = GlobalRightContent;
150
+
151
+ //#endregion
152
+ export { RightContent_default as default };