@gx-design-vue/pro-layout-components 0.1.0-alpha.5 → 0.1.0-alpha.6
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.
|
@@ -6,7 +6,7 @@ import { Fragment, computed, createVNode, defineComponent, mergeProps, ref, watc
|
|
|
6
6
|
import { useThemeContext } from "@gx-design-vue/context";
|
|
7
7
|
import { GIcon } from "@gx-design-vue/icon";
|
|
8
8
|
import { useInjectLayoutContext } from "@gx-design-vue/pro-layout";
|
|
9
|
-
import { classNames } from "@gx-design-vue/pro-utils";
|
|
9
|
+
import { classNames, isArray } from "@gx-design-vue/pro-utils";
|
|
10
10
|
import { useElementSize, useFullscreen } from "@vueuse/core";
|
|
11
11
|
import { Avatar, Dropdown } from "antdv-next";
|
|
12
12
|
import { useBaseConfig } from "antdv-next/config-provider/context";
|
|
@@ -35,10 +35,9 @@ const RightContent = /* @__PURE__ */ defineComponent((props, { emit, slots }) =>
|
|
|
35
35
|
const actions = computed(() => {
|
|
36
36
|
if (props.actions === false) return {};
|
|
37
37
|
return {
|
|
38
|
-
lock: true,
|
|
39
38
|
theme: true,
|
|
40
39
|
search: true,
|
|
41
|
-
themeEditor:
|
|
40
|
+
themeEditor: false,
|
|
42
41
|
fullScreen: true,
|
|
43
42
|
...props.actions
|
|
44
43
|
};
|
|
@@ -54,19 +53,23 @@ const RightContent = /* @__PURE__ */ defineComponent((props, { emit, slots }) =>
|
|
|
54
53
|
setTheme(value);
|
|
55
54
|
}
|
|
56
55
|
const userMenuItems = computed(() => {
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
const menuSlots = slots?.dropdownMenu?.();
|
|
57
|
+
const items = props.dropdownProps?.menu?.items || [];
|
|
58
|
+
if (isArray(menuSlots)) menuSlots.forEach((item, index) => {
|
|
59
|
+
const key = item.props.key;
|
|
60
|
+
const icon = item.props.icon;
|
|
61
|
+
if (key === "menu-item") items.push({
|
|
62
|
+
key: `menu-${index}`,
|
|
63
|
+
label: item.children,
|
|
64
|
+
icon
|
|
63
65
|
});
|
|
64
|
-
items.push({ type: "divider" });
|
|
65
|
-
}
|
|
66
|
+
else if (key === "menu-divider") items.push({ type: "divider" });
|
|
67
|
+
});
|
|
66
68
|
items.push({
|
|
67
69
|
key: "logout",
|
|
68
70
|
icon: () => createVNode(GIcon, { "type": "LogoutOutlined" }, null),
|
|
69
|
-
label: mergedLocale.value.logout
|
|
71
|
+
label: mergedLocale.value.logout,
|
|
72
|
+
onClick: handleUserMenuClick
|
|
70
73
|
});
|
|
71
74
|
return items;
|
|
72
75
|
});
|
|
@@ -77,9 +80,6 @@ const RightContent = /* @__PURE__ */ defineComponent((props, { emit, slots }) =>
|
|
|
77
80
|
function handleActionClick(type) {
|
|
78
81
|
emit("actionClick", type);
|
|
79
82
|
}
|
|
80
|
-
function handleLockOpenChange(val) {
|
|
81
|
-
lockOpen.value = val;
|
|
82
|
-
}
|
|
83
83
|
return () => {
|
|
84
84
|
const actionClassNames = [`${prefixCls.value}-header-actions-item`, hashId.value];
|
|
85
85
|
return createVNode("div", {
|
|
@@ -89,7 +89,7 @@ const RightContent = /* @__PURE__ */ defineComponent((props, { emit, slots }) =>
|
|
|
89
89
|
minWidth: minWidth.value,
|
|
90
90
|
height: "100%"
|
|
91
91
|
}
|
|
92
|
-
}, [createVNode("div", { "style": { height: "100%" } }, [createVNode("div", { "class": classNames(`${prefixCls.value}-header-actions
|
|
92
|
+
}, [createVNode("div", { "style": { height: "100%" } }, [createVNode("div", { "class": classNames(`${prefixCls.value}-header-actions`) }, [slots.default ? slots.default() : createVNode(Fragment, null, [
|
|
93
93
|
actions.value.search && !isMobile.value && createVNode(GSearchInput, {
|
|
94
94
|
"dataSource": props.searchConfig?.dataSource,
|
|
95
95
|
"disabledShortKey": props.searchConfig?.disabledShortKey,
|
|
@@ -109,7 +109,7 @@ const RightContent = /* @__PURE__ */ defineComponent((props, { emit, slots }) =>
|
|
|
109
109
|
selectedKeys: [theme.value]
|
|
110
110
|
}
|
|
111
111
|
}, { default: () => [createVNode(GIcon, {
|
|
112
|
-
"class": classNames(`${prefixCls.value}-header-actions-icon
|
|
112
|
+
"class": classNames(`${prefixCls.value}-header-actions-icon`),
|
|
113
113
|
"type": isDark.value ? "Moon" : "Sun"
|
|
114
114
|
}, null)] })]),
|
|
115
115
|
actions.value.themeEditor && !isMobile.value && createVNode("div", { "class": classNames(actionClassNames) }, [createVNode(GIcon, {
|
|
@@ -121,16 +121,13 @@ const RightContent = /* @__PURE__ */ defineComponent((props, { emit, slots }) =>
|
|
|
121
121
|
"onClick": () => toggleFullscreen()
|
|
122
122
|
}, null)]),
|
|
123
123
|
slots.actionsRender?.(actionClassNames)
|
|
124
|
-
]), createVNode(Dropdown, mergeProps({ "placement": "bottomRight" }, props.dropdownProps, { "menu":
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
"
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
open: lockOpen.value,
|
|
132
|
-
onOpenChange: handleLockOpenChange
|
|
133
|
-
})]);
|
|
124
|
+
]), createVNode(Dropdown, mergeProps({ "placement": "bottomRight" }, props.dropdownProps, { "menu": { items: userMenuItems.value } }), {
|
|
125
|
+
default: () => [slots.dropdownTrigger ? slots.dropdownTrigger() : createVNode("div", { "class": classNames(`${prefixCls.value}-header-actions-avatar`) }, [createVNode(Avatar, {
|
|
126
|
+
"size": 28,
|
|
127
|
+
"icon": createVNode(GIcon, { "type": "UserOutlined" }, null)
|
|
128
|
+
}, null), props.name && createVNode("span", { "class": classNames(`${prefixCls.value}-header-actions-name`) }, [props.name])])],
|
|
129
|
+
popupRender: slots.popupRender
|
|
130
|
+
})])])]);
|
|
134
131
|
};
|
|
135
132
|
}, {
|
|
136
133
|
props: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { VNodeChild } from "vue";
|
|
2
1
|
import { ThemeValue } from "@gx-design-vue/context";
|
|
3
2
|
import { LayoutMenuRoute } from "@gx-design-vue/pro-layout";
|
|
3
|
+
import { CustomRender } from "@gx-design-vue/pro-utils";
|
|
4
|
+
import { DropdownProps, DropdownSlots } from "antdv-next";
|
|
4
5
|
|
|
5
6
|
//#region src/RightContent/interface.d.ts
|
|
6
7
|
interface RightContentEmits {
|
|
@@ -16,11 +17,10 @@ interface RightContentActionsConfig {
|
|
|
16
17
|
theme?: boolean;
|
|
17
18
|
themeEditor?: boolean;
|
|
18
19
|
fullScreen?: boolean;
|
|
19
|
-
lock?: boolean;
|
|
20
20
|
}
|
|
21
21
|
interface RightContentThemeOption {
|
|
22
22
|
value: ThemeValue;
|
|
23
|
-
label: () =>
|
|
23
|
+
label: () => CustomRender;
|
|
24
24
|
}
|
|
25
25
|
interface RightContentLocale {
|
|
26
26
|
searchPlaceholder?: string;
|
|
@@ -55,7 +55,7 @@ interface RightContentProps extends RightContentEmitsProps {
|
|
|
55
55
|
/** 用户头像 URL */
|
|
56
56
|
avatar?: string;
|
|
57
57
|
/** 透传给 antdv-next Dropdown 的额外 props */
|
|
58
|
-
dropdownProps?:
|
|
58
|
+
dropdownProps?: DropdownProps;
|
|
59
59
|
/** 自定义主题选项(覆盖默认的 亮色/深色/自动) */
|
|
60
60
|
themeOptions?: RightContentThemeOption[];
|
|
61
61
|
/** 搜索配置 */
|
|
@@ -65,20 +65,13 @@ interface RightContentProps extends RightContentEmitsProps {
|
|
|
65
65
|
}
|
|
66
66
|
interface RightContentSlots {
|
|
67
67
|
/** 替换整个 actions 区域 */
|
|
68
|
-
default?: () =>
|
|
68
|
+
default?: () => CustomRender;
|
|
69
69
|
/** 额外 action 项(在 avatar dropdown 前) */
|
|
70
|
-
actionsRender?: (classNames: string[]) =>
|
|
70
|
+
actionsRender?: (classNames: string[]) => CustomRender;
|
|
71
71
|
/** 替换 avatar 触发器 */
|
|
72
|
-
dropdownTrigger?: () =>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
/** dropdown 菜单顶部额外项 */
|
|
76
|
-
dropdownMenuExtra?: () => VNodeChild;
|
|
77
|
-
/** 锁屏内容(解耦 PageLock) */
|
|
78
|
-
lock?: (props: {
|
|
79
|
-
open: boolean;
|
|
80
|
-
onOpenChange: (val: boolean) => void;
|
|
81
|
-
}) => VNodeChild;
|
|
72
|
+
dropdownTrigger?: () => CustomRender;
|
|
73
|
+
dropdownMenu?: () => CustomRender;
|
|
74
|
+
popupRender?: DropdownSlots['popupRender'];
|
|
82
75
|
}
|
|
83
76
|
//#endregion
|
|
84
77
|
export { RightContentActionsConfig, RightContentEmits, RightContentEmitsProps, RightContentLocale, RightContentProps, RightContentSlots, RightContentThemeOption, SearchConfig };
|
|
@@ -652,44 +652,44 @@ var Pe = [
|
|
|
652
652
|
d(A, (e) => {
|
|
653
653
|
j.value = e > 0 ? e : "auto";
|
|
654
654
|
});
|
|
655
|
-
let N = l(!1),
|
|
655
|
+
let N = l(!1), F = t(() => ({
|
|
656
656
|
...ee,
|
|
657
657
|
...n.locale
|
|
658
|
-
})),
|
|
659
|
-
lock: !0,
|
|
658
|
+
})), I = t(() => n.actions === !1 ? {} : {
|
|
660
659
|
theme: !0,
|
|
661
660
|
search: !0,
|
|
662
|
-
themeEditor: !
|
|
661
|
+
themeEditor: !1,
|
|
663
662
|
fullScreen: !0,
|
|
664
663
|
...n.actions
|
|
665
|
-
}),
|
|
664
|
+
}), L = t(() => (n.themeOptions || Pe).map((e) => ({
|
|
666
665
|
key: e.value,
|
|
667
666
|
label: e.label()
|
|
668
667
|
})));
|
|
669
|
-
function
|
|
668
|
+
function R(e) {
|
|
670
669
|
let t = e.key;
|
|
671
670
|
h(t);
|
|
672
671
|
}
|
|
673
|
-
let
|
|
674
|
-
let e = [];
|
|
675
|
-
return
|
|
676
|
-
key
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
672
|
+
let z = t(() => {
|
|
673
|
+
let e = a?.dropdownMenu?.(), t = n.dropdownProps?.menu?.items || [];
|
|
674
|
+
return P(e) && e.forEach((e, n) => {
|
|
675
|
+
let r = e.props.key, i = e.props.icon;
|
|
676
|
+
r === "menu-item" ? t.push({
|
|
677
|
+
key: `menu-${n}`,
|
|
678
|
+
label: e.children,
|
|
679
|
+
icon: i
|
|
680
|
+
}) : r === "menu-divider" && t.push({ type: "divider" });
|
|
681
|
+
}), t.push({
|
|
680
682
|
key: "logout",
|
|
681
683
|
icon: () => r(p, { type: "LogoutOutlined" }, null),
|
|
682
|
-
label:
|
|
683
|
-
|
|
684
|
+
label: F.value.logout,
|
|
685
|
+
onClick: V
|
|
686
|
+
}), t;
|
|
684
687
|
});
|
|
685
|
-
function z(e) {
|
|
686
|
-
e.key === "lock" ? N.value = !0 : e.key === "logout" && i("logout");
|
|
687
|
-
}
|
|
688
688
|
function V(e) {
|
|
689
|
-
i("
|
|
689
|
+
e.key === "lock" ? N.value = !0 : e.key === "logout" && i("logout");
|
|
690
690
|
}
|
|
691
691
|
function H(e) {
|
|
692
|
-
|
|
692
|
+
i("actionClick", e);
|
|
693
693
|
}
|
|
694
694
|
return () => {
|
|
695
695
|
let t = [`${b.value}-header-actions-item`, w.value];
|
|
@@ -700,48 +700,45 @@ var Pe = [
|
|
|
700
700
|
minWidth: j.value,
|
|
701
701
|
height: "100%"
|
|
702
702
|
}
|
|
703
|
-
}, [r("div", { style: { height: "100%" } }, [r("div", { class: B(`${b.value}-header-actions
|
|
704
|
-
|
|
703
|
+
}, [r("div", { style: { height: "100%" } }, [r("div", { class: B(`${b.value}-header-actions`) }, [a.default ? a.default() : r(e, null, [
|
|
704
|
+
I.value.search && !O.value && r(je, {
|
|
705
705
|
dataSource: n.searchConfig?.dataSource,
|
|
706
706
|
disabledShortKey: n.searchConfig?.disabledShortKey,
|
|
707
707
|
searchHistoryKey: n.searchConfig?.historyKey,
|
|
708
708
|
emptyProps: n.searchConfig?.emptyProps,
|
|
709
|
-
locale:
|
|
709
|
+
locale: F.value
|
|
710
710
|
}, null),
|
|
711
|
-
|
|
711
|
+
I.value.theme && r("div", {
|
|
712
712
|
ref: M,
|
|
713
713
|
class: B(`${b.value}-header-actions-item`, `${b.value}-header-actions-theme`, w.value)
|
|
714
714
|
}, [r(C, {
|
|
715
715
|
trigger: ["click"],
|
|
716
716
|
placement: "bottomRight",
|
|
717
717
|
menu: {
|
|
718
|
-
items:
|
|
719
|
-
onClick:
|
|
718
|
+
items: L.value,
|
|
719
|
+
onClick: R,
|
|
720
720
|
selectedKeys: [y.value]
|
|
721
721
|
}
|
|
722
722
|
}, { default: () => [r(p, {
|
|
723
|
-
class: B(`${b.value}-header-actions-icon
|
|
723
|
+
class: B(`${b.value}-header-actions-icon`),
|
|
724
724
|
type: v.value ? "Moon" : "Sun"
|
|
725
725
|
}, null)] })]),
|
|
726
|
-
|
|
726
|
+
I.value.themeEditor && !O.value && r("div", { class: B(t) }, [r(p, {
|
|
727
727
|
type: "SettingOutlined",
|
|
728
|
-
onClick: () =>
|
|
728
|
+
onClick: () => H("themeEditor")
|
|
729
729
|
}, null)]),
|
|
730
|
-
|
|
730
|
+
I.value.fullScreen && !O.value && r("div", { class: B(t) }, [r(p, {
|
|
731
731
|
type: s.value ? "CompressOutlined" : "ExpandOutlined",
|
|
732
732
|
onClick: () => c()
|
|
733
733
|
}, null)]),
|
|
734
734
|
a.actionsRender?.(t)
|
|
735
|
-
]), r(C, o({ placement: "bottomRight" }, n.dropdownProps, { menu:
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
}
|
|
742
|
-
open: N.value,
|
|
743
|
-
onOpenChange: H
|
|
744
|
-
})]);
|
|
735
|
+
]), r(C, o({ placement: "bottomRight" }, n.dropdownProps, { menu: { items: z.value } }), {
|
|
736
|
+
default: () => [a.dropdownTrigger ? a.dropdownTrigger() : r("div", { class: B(`${b.value}-header-actions-avatar`) }, [r(S, {
|
|
737
|
+
size: 28,
|
|
738
|
+
icon: r(p, { type: "UserOutlined" }, null)
|
|
739
|
+
}, null), n.name && r("span", { class: B(`${b.value}-header-actions-name`) }, [n.name])])],
|
|
740
|
+
popupRender: a.popupRender
|
|
741
|
+
})])])]);
|
|
745
742
|
};
|
|
746
743
|
}, {
|
|
747
744
|
props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("@gx-design-vue/context"),require("@gx-design-vue/icon"),require("@gx-design-vue/pro-layout"),require("@vueuse/core"),require("antdv-next"),require("antdv-next/config-provider/context"),require("antdv-next/config-provider/hooks/useCSSVarCls"),require("@gx-design-vue/pro-modal"),require("@gx-design-vue/pro-provider"),require("vue-router")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@gx-design-vue/context`,`@gx-design-vue/icon`,`@gx-design-vue/pro-layout`,`@vueuse/core`,`antdv-next`,`antdv-next/config-provider/context`,`antdv-next/config-provider/hooks/useCSSVarCls`,`@gx-design-vue/pro-modal`,`@gx-design-vue/pro-provider`,`vue-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ProLayoutComponents={},e.Vue,e._gx_design_vue_context,e._gx_design_vue_icon,e._gx_design_vue_pro_layout,e._vueuse_core,e.antdv_next,e.antdv_next_config_provider_context,e.antdv_next_config_provider_hooks_useCSSVarCls,e._gx_design_vue_pro_modal,e._gx_design_vue_pro_provider,e.vue_router))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var f=Object.create,p=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyNames,g=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=h(t),a=0,o=i.length,s;a<o;a++)s=i[a],!_.call(e,s)&&s!==n&&p(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=m(t,s))||r.enumerable});return e};c=((e,t,n)=>(n=e==null?{}:f(g(e)),v(t||!e||!e.__esModule?p(n,`default`,{value:e,enumerable:!0}):n,e)))(c,1);function y(){return typeof navigator>`u`?!1:/windows|win32/i.test(navigator.userAgent)}function b(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function x(e){return Array.isArray===void 0?Object.prototype.toString.call(e)===`[object Array]`:Array.isArray(e)}function S(e){return e!==null&&b(e,`Object`)}function C(e){return typeof e==`string`}function w(e){if(!e||!e.startsWith(`http`))return!1;try{return!!new URL(e)}catch{return!1}}function T(e,t=`children`){let n=[];return e.forEach(e=>{n.push(e),x(e[t])&&e[t].length>0&&(n=n.concat(T(e[t],t)))}),n}function E({suffixCls:e,customizePrefixCls:t,isPro:n,className:r}){let i=r||(n?`gx-pro`:`gx`);return t||(e?`${i}-${e}`:i)}function D(...e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r){if(C(r))t.push(r);else if(x(r))for(let e=0;e<r.length;e++){let n=D(r[e]);n&&t.push(n)}else if(S(r))for(let e in r)r[e]&&t.push(e)}}return t.filter(e=>e).join(` `)}var ee={searchPlaceholder:`搜索导航菜单`,searchLabel:`搜索`,searchShortcutLabel:`⌘ K`,lockScreen:`锁定屏幕`,logout:`退出登录`,noResult:e=>`未找到搜索结果 "${e}"`,noHistory:`没有搜索历史`,searchHistory:`搜索历史`,selectLabel:`选择`,navigateLabel:`导航`,lightTheme:`亮色`,darkTheme:`深色`,autoTheme:`自动`};function O(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function k(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function A(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function j(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var M=`[object RegExp]`,N=`[object String]`,P=`[object Number]`,F=`[object Boolean]`,te=`[object Arguments]`,ne=`[object Symbol]`,re=`[object Date]`,ie=`[object Map]`,ae=`[object Set]`,oe=`[object Array]`,I=`[object ArrayBuffer]`,L=`[object Object]`,R=`[object DataView]`,z=`[object Uint8Array]`,B=`[object Uint8ClampedArray]`,V=`[object Uint16Array]`,H=`[object Uint32Array]`,U=`[object Int8Array]`,W=`[object Int16Array]`,G=`[object Int32Array]`,K=`[object Float32Array]`,q=`[object Float64Array]`;function J(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!==void 0)return a;if(O(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=J(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,J(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(J(a,void 0,n,r,i));return t}if(typeof Buffer<`u`&&Buffer.isBuffer(e))return e.subarray();if(k(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=J(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),Y(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),Y(t,e,n,r,i),t}if(typeof Blob<`u`&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),Y(t,e,n,r,i),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,Y(t,e,n,r,i),t}if(e instanceof Boolean){let t=new Boolean(e.valueOf());return r.set(e,t),Y(t,e,n,r,i),t}if(e instanceof Number){let t=new Number(e.valueOf());return r.set(e,t),Y(t,e,n,r,i),t}if(e instanceof String){let t=new String(e.valueOf());return r.set(e,t),Y(t,e,n,r,i),t}if(typeof e==`object`&&se(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),Y(t,e,n,r,i),t}return e}function Y(e,t,n=e,r,i){let a=[...Object.keys(t),...A(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=J(t[s],s,n,r,i))}}function se(e){switch(j(e)){case te:case oe:case I:case R:case F:case re:case K:case q:case U:case W:case G:case ie:case P:case L:case M:case ae:case N:case ne:case z:case B:case V:case H:return!0;default:return!1}}function X(e){return J(e,void 0,e,new Map,void 0)}function ce(e,t){let n=new Map;return e.filter(e=>{let r=e[t];return n.has(r)?!1:(n.set(r,e),!0)})}var le=`ABCDEFGHJKLMNOPQRSTWXYZ`,ue=`阿八嚓哒鹅发旮哈讥咔垃妈拿噢啪七日撒他挖昔压匝`;function de(e){let t=e.codePointAt(0);if(t>=65&&t<=90)return e;if(t>=97&&t<=122)return e.toUpperCase();if(t<19968||t>40959)return``;for(let t=22;t>=0;t--)if(e.localeCompare(ue[t],`zh-CN`)>=0)return le[t];return``}function fe(e){let t=``;for(let n of e)t+=de(n);return t}function pe(e,t){if(!t)return!1;let n=t.trim().toLowerCase();return!!(e.toLowerCase().includes(n)||fe(e).toLowerCase().includes(n))}function me(e,t){let n=t.trim();if(!n)return[];let r=[];for(let t of e)t.meta?.hideInMenu||pe(t.meta?.title||(typeof t.name==`string`?t.name:``)||``,n)&&r.push(t);return r}var he=({className:e,value:n,locale:r})=>n?(0,t.createVNode)(o.Empty,{image:o.Empty.PRESENTED_IMAGE_SIMPLE,description:r.noResult?.(n)},null):(0,t.createVNode)(`div`,{class:e},[r.noHistory]),Z=(0,t.defineComponent)(e=>{let n=(0,d.useRouter)(),{renderEmpty:i}=(0,u.useProConfigContext)(),o=(0,a.useLocalStorage)(e.historyKey||E({suffixCls:`search-history`,isPro:!0}),[]),s=(0,t.ref)(0),c=(0,t.ref)(X((0,t.unref)(o))),l=(0,a.useThrottleFn)(t=>{let n=t.trim();if(!n){c.value=[];return}c.value=me(e.dataSource??[],n),s.value=0},200);(0,t.watch)(()=>e.keyword,e=>{e?l(e):c.value=X((0,t.unref)(o))});function f(){document.querySelector(`[data-search-item="${s.value}"]`)?.scrollIntoView({block:`nearest`})}async function p(){if(c.value.length===0)return;let r=s.value;if(r<0)return;let i=c.value[r];if(!i)return;let a=C(i.redirect)?i.redirect:i.path||``,l=i.meta?.link||``,u=w(l);o.value.every(e=>e.name!==i.name)&&o.value.push(X(i)),e.onClose?.(!0),await(0,t.nextTick)(),u&&l&&i.meta?.linkStatus===1?window.open(l,`_blank`):n.push({path:a})}function m(){c.value.length!==0&&(e.onBlur?.(),s.value--,s.value<0&&(s.value=c.value.length-1),f())}function h(){c.value.length!==0&&(e.onBlur?.(),s.value++,s.value>c.value.length-1&&(s.value=0),f())}(0,t.onMounted)(()=>{(0,a.onKeyStroke)(`Enter`,p),(0,a.onKeyStroke)(`ArrowUp`,m),(0,a.onKeyStroke)(`ArrowDown`,h)});function g(e){s.value=e}function _(e,t){e.stopPropagation(),c.value=c.value.filter(e=>e.name!==t.name),o.value=o.value.filter(e=>e.name!==t.name),s.value=s.value-1>=0?s.value-1:0,f()}let v=t=>D(`${e.className}${t?`-${t}`:``}`,e.hashId);return()=>(0,t.createVNode)(t.Fragment,null,[c.value.length>0?(0,t.createVNode)(t.Fragment,null,[o.value.length>0&&!e.keyword&&(0,t.createVNode)(`div`,{class:v(`panel-title`)},[e.locale.searchHistory]),(0,t.createVNode)(`div`,{class:v(`panel-list`)},[ce(c.value,`name`).map((n,i)=>(0,t.createVNode)(`div`,{key:n.name,class:v(D(`panel-item`,i===s.value&&`active`)),"data-search-item":i,onClick:()=>p(),onMouseenter:()=>g(i)},[(0,t.createVNode)(`div`,{class:v(`panel-item-left`)},[n.meta?.title]),o.value.length>0&&!e.keyword&&(0,t.createVNode)(r.GIcon,{type:`CloseOutlined`,onClick:e=>_(e,n)},null)]))])]):i.value?.()||(0,t.createVNode)(he,{className:v(`result`),value:e.keyword,locale:e.locale},null)])},{props:{className:{type:String,required:!1},hashId:{type:String,required:!1},keyword:{type:String,required:!1},dataSource:{type:Array,required:!1},historyKey:{type:String,required:!1},emptyProps:{type:Object,required:!1},locale:{type:Object,required:!0},onBlur:{type:Function,required:!1},onClose:{type:Function,required:!1}},name:`GSearchPanel`,inheritAttrs:!1}),ge=(0,u.proGenStyleHooks)(`ProRightSearch`,e=>{let t=e.menuItemIconSize||e.fontSize,n=e.calc(e.borderRadiusLG).mul(2).equal(),r=e.calc(e.paddingXXS).div(2).equal();return{[e.componentCls]:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:36,gap:12,cursor:`pointer`,fontSize:e.fontSizeSM,color:e.colorTextTertiary,paddingBlock:r,paddingInline:e.paddingXS,borderRadius:n,backgroundColor:e.headerColorBgRightActionsItemHover,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,lineHeight:1,">.anticon":{fontSize:e.fontSize,color:e.colorTextTertiary},"&-word":{lineHeight:1},"&-word-icon":{lineHeight:1,padding:`4px 6px`,borderTopLeftRadius:e.borderRadiusSM,borderBottomLeftRadius:e.borderRadiusSM,borderTopRightRadius:n,borderBottomRightRadius:n,backgroundColor:e.colorBgContainer},"&:hover":{color:e.colorTextSecondary},"&-modal":{"&-footer":{display:`flex`,alignItems:`center`,gap:e.marginXS,fontSize:12,color:e.colorTextSecondary},"&-footer-icon":{display:`flex`,alignItems:`center`,gap:4}},"&-panel":{"&-title":{color:e.colorTextQuaternary,lineHeight:e.lineHeight,marginBlockEnd:e.marginXS},"&-list":{display:`flex`,flexDirection:`column`,gap:12},"&-item":{display:`flex`,alignItems:`center`,justifyContent:`space-between`,cursor:`pointer`,fontSize:e.fontSize,lineHeight:e.lineHeight,padding:e.paddingXS,borderRadius:e.borderRadiusLG,backgroundColor:e.colorBgContainer,transition:`all ${e.motionDurationFast} ${e.motionEaseInOut}`,"&-left":{display:`flex`,alignItems:`center`,gap:e.sizeStep,">.anticon":{fontSize:`${t}px`}},"&.active":{backgroundColor:e.colorPrimary,color:e.colorTextLightSolid}}},"&-result":{display:`flex`,alignItems:`center`,justifyContent:`center`,paddingBlockStart:60,color:e.colorTextQuaternary}}}}),_e=({className:e,hashId:n,locale:i})=>(0,t.createVNode)(`div`,{class:D(`${e}-footer`,n)},[(0,t.createVNode)(`div`,{class:D(`${e}-footer-icon`,n)},[(0,t.createVNode)(r.GIcon,{type:`EnterOutlined`},null),i.selectLabel]),(0,t.createVNode)(`div`,{class:D(`${e}-footer-icon`,n)},[(0,t.createVNode)(r.GIcon,{type:`ArrowUpOutlined`},null),(0,t.createVNode)(r.GIcon,{type:`ArrowUpOutlined`,rotate:180},null),i.navigateLabel])]),ve=(0,t.defineComponent)(e=>{let n=(0,i.useInjectLayoutContext)(),{prefixCls:u}=(0,s.useBaseConfig)(`pro-right-search`),d=(0,c.default)(u),[f,p]=ge(u,d),m=(0,t.ref)(``),h=(0,t.ref)(!1),g=(0,a.useMagicKeys)(),_=y()?g[`ctrl+k`]:g[`cmd+k`],v=(0,t.ref)(),b=(0,t.computed)(()=>e.dataSource?.length?T(e.dataSource):n?.menuState?.flatMenus?n.menuState.flatMenus.value:[]);(0,a.whenever)(_,()=>{e.disabledShortKey||(h.value=!0)}),(0,a.whenever)(()=>h.value,()=>{(0,t.nextTick)(()=>{v.value?.focus?.()})});function x(e){h.value=!1,e&&(m.value=``)}return()=>{let n={className:u.value,hashId:f.value},i=`${u.value}-modal`;return(0,t.createVNode)(t.Fragment,null,[(0,t.createVNode)(`div`,{class:D(u.value,f.value,p.value,d.value),onClick:()=>{h.value=!0}},[(0,t.createVNode)(r.GIcon,{type:`SearchOutlined`},null),(0,t.createVNode)(`span`,{class:D(`${u.value}-word`,f.value)},[e.locale.searchLabel]),(0,t.createVNode)(`span`,{class:D(`${u.value}-word-icon`,f.value)},[(0,t.createTextVNode)(`⌘`),` `,(0,t.createVNode)(`kbd`,null,[(0,t.createTextVNode)(`K`)])])]),(0,t.createVNode)(l.GProModal,{wrapClassName:D(i,f.value),width:600,scrollProps:{maxHeight:400,minHeight:200},centered:!1,destroyOnHidden:!1,title:(0,t.createVNode)(o.Input,{style:{width:`${600*.8}px`,padding:0},ref:v,bordered:!1,size:`large`,placeholder:e.locale.searchPlaceholder,value:m.value,prefix:(0,t.createVNode)(r.GIcon,{type:`SearchOutlined`},null),"onUpdate:value":e=>{m.value=e}},null),open:h.value,footer:(0,t.createVNode)(_e,{className:i,hashId:f.value,locale:e.locale},null),onCancel:()=>x()},{default:()=>[(0,t.createVNode)(Z,(0,t.mergeProps)(n,{emptyProps:e.emptyProps,keyword:m.value,dataSource:b.value,historyKey:e.searchHistoryKey,locale:e.locale,onClose:x}),null)]})])}},{props:{dataSource:{type:Array,required:!1},disabledShortKey:{type:Boolean,required:!1,default:void 0},locale:{type:Object,required:!0},searchHistoryKey:{type:String,required:!1},emptyProps:{type:Object,required:!1}},name:`GSearchInput`,inheritAttrs:!1});function ye(e,t){return`color-mix(in srgb, ${e} ${t*100}%, transparent)`}var be=(0,u.proGenStyleHooks)(`ProRightContent`,e=>({[e.componentCls]:{height:`100%`,"&-header-actions":{display:`flex`,alignItems:`center`,justifyContent:`flex-end`,height:`100%`,gap:e.paddingXS,"&-item":{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,paddingBlock:0,paddingInline:2,color:e.headerColorTextRightActionsItem,fontSize:14,cursor:`pointer`,borderRadius:e.borderRadius,".anticon":{color:e.headerColorTextRightActionsItem,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&:hover":{color:e.headerColorTextRightActionsItemHover}},[`&${e.componentCls}-header-actions-theme`]:{[`${e.componentCls}-header-actions-icon`]:{paddingInline:4,paddingBlock:4,fontSize:18}},"> *":{paddingInline:6,paddingBlock:6,borderRadius:e.borderRadius,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&:hover":{color:e.headerColorTextRightActionsItemHover,backgroundColor:e.headerColorBgRightActionsItemHover}}},[`&>${e.antCls}-dropdown-trigger`]:{color:e.colorTextTertiary,paddingInline:8,paddingBlock:8,cursor:`pointer`,display:`flex`,alignItems:`center`,height:44,lineHeight:`44px`,borderRadius:e.borderRadius,"&:hover":{backgroundColor:ye(e.colorTextBase,.03)}},"&-avatar":{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,gap:e.paddingXS,paddingInlineStart:e.padding,paddingInlineEnd:e.padding,cursor:`pointer`,color:e.headerColorTextRightActionsItem},"&-name":{color:e.headerColorTextRightActionsItem}}}})),Q={fontSize:`15px`};function $(e,n){return()=>(0,t.createVNode)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`}},[typeof e==`function`?e():e,n])}var xe=[{value:`light`,label:$((0,t.h)(r.GIcon,{type:`Moon`,style:Q}),`亮色`)},{value:`dark`,label:$((0,t.h)(r.GIcon,{type:`Sun`,style:Q}),`深色`)},{value:`system`,label:$((0,t.h)(r.GIcon,{type:`DesktopOutlined`,style:Q}),`自动`)}];e.RightContent=(0,t.defineComponent)((e,{emit:l,slots:u})=>{let{isFullscreen:d,toggle:f}=(0,a.useFullscreen)(),p=(0,i.useInjectLayoutContext)(),{setTheme:m,isDark:h,theme:g}=(0,n.useThemeContext)(),{prefixCls:_}=(0,s.useBaseConfig)(`pro-right-content`),v=(0,c.default)(_),[y,b]=be(_,v),x=(0,t.computed)(()=>p?.isMobile.value??!1),S=(0,t.ref)(),{width:C}=(0,a.useElementSize)(S),w=(0,t.ref)(`auto`),T=(0,t.ref)();(0,t.watch)(C,e=>{w.value=e>0?e:`auto`});let E=(0,t.ref)(!1),O=(0,t.computed)(()=>({...ee,...e.locale})),k=(0,t.computed)(()=>e.actions===!1?{}:{lock:!0,theme:!0,search:!0,themeEditor:!0,fullScreen:!0,...e.actions}),A=(0,t.computed)(()=>(e.themeOptions||xe).map(e=>({key:e.value,label:e.label()})));function j(e){let t=e.key;m(t)}let M=(0,t.computed)(()=>{let e=[];return k.value.lock&&u.lock&&(e.push({key:`lock`,icon:()=>(0,t.createVNode)(r.GIcon,{type:`LockOutlined`},null),label:O.value.lockScreen}),e.push({type:`divider`})),e.push({key:`logout`,icon:()=>(0,t.createVNode)(r.GIcon,{type:`LogoutOutlined`},null),label:O.value.logout}),e});function N(e){e.key===`lock`?E.value=!0:e.key===`logout`&&l(`logout`)}function P(e){l(`actionClick`,e)}function F(e){E.value=e}return()=>{let n=[`${_.value}-header-actions-item`,y.value];return(0,t.createVNode)(`div`,{ref:S,class:D(_.value,y.value,b.value,v.value),style:{minWidth:w.value,height:`100%`}},[(0,t.createVNode)(`div`,{style:{height:`100%`}},[(0,t.createVNode)(`div`,{class:D(`${_.value}-header-actions`,y.value)},[u.default?u.default():(0,t.createVNode)(t.Fragment,null,[k.value.search&&!x.value&&(0,t.createVNode)(ve,{dataSource:e.searchConfig?.dataSource,disabledShortKey:e.searchConfig?.disabledShortKey,searchHistoryKey:e.searchConfig?.historyKey,emptyProps:e.searchConfig?.emptyProps,locale:O.value},null),k.value.theme&&(0,t.createVNode)(`div`,{ref:T,class:D(`${_.value}-header-actions-item`,`${_.value}-header-actions-theme`,y.value)},[(0,t.createVNode)(o.Dropdown,{trigger:[`click`],placement:`bottomRight`,menu:{items:A.value,onClick:j,selectedKeys:[g.value]}},{default:()=>[(0,t.createVNode)(r.GIcon,{class:D(`${_.value}-header-actions-icon`,y.value),type:h.value?`Moon`:`Sun`},null)]})]),k.value.themeEditor&&!x.value&&(0,t.createVNode)(`div`,{class:D(n)},[(0,t.createVNode)(r.GIcon,{type:`SettingOutlined`,onClick:()=>P(`themeEditor`)},null)]),k.value.fullScreen&&!x.value&&(0,t.createVNode)(`div`,{class:D(n)},[(0,t.createVNode)(r.GIcon,{type:d.value?`CompressOutlined`:`ExpandOutlined`,onClick:()=>f()},null)]),u.actionsRender?.(n)]),(0,t.createVNode)(o.Dropdown,(0,t.mergeProps)({placement:`bottomRight`},e.dropdownProps,{menu:u.dropdownMenu?void 0:{items:M.value,onClick:N}}),{default:()=>[u.dropdownTrigger?u.dropdownTrigger():(0,t.createVNode)(`div`,{class:D(`${_.value}-header-actions-avatar`,y.value)},[(0,t.createVNode)(o.Avatar,{size:28,icon:(0,t.createVNode)(r.GIcon,{type:`UserOutlined`},null)},null),e.name&&(0,t.createVNode)(`span`,{class:D(`${_.value}-header-actions-name`,y.value)},[e.name])])]})])]),u.lock?.({open:E.value,onOpenChange:F})])}},{props:{actions:{type:[Object,Boolean],required:!1,default:void 0},name:{type:String,required:!1},avatar:{type:String,required:!1},dropdownProps:{type:Object,required:!1},themeOptions:{type:Array,required:!1},searchConfig:{type:Object,required:!1},locale:{type:Object,required:!1}},emits:[`logout`,`actionClick`],name:`RightContent`,inheritAttrs:!1})});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("@gx-design-vue/context"),require("@gx-design-vue/icon"),require("@gx-design-vue/pro-layout"),require("@vueuse/core"),require("antdv-next"),require("antdv-next/config-provider/context"),require("antdv-next/config-provider/hooks/useCSSVarCls"),require("@gx-design-vue/pro-modal"),require("@gx-design-vue/pro-provider"),require("vue-router")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@gx-design-vue/context`,`@gx-design-vue/icon`,`@gx-design-vue/pro-layout`,`@vueuse/core`,`antdv-next`,`antdv-next/config-provider/context`,`antdv-next/config-provider/hooks/useCSSVarCls`,`@gx-design-vue/pro-modal`,`@gx-design-vue/pro-provider`,`vue-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ProLayoutComponents={},e.Vue,e._gx_design_vue_context,e._gx_design_vue_icon,e._gx_design_vue_pro_layout,e._vueuse_core,e.antdv_next,e.antdv_next_config_provider_context,e.antdv_next_config_provider_hooks_useCSSVarCls,e._gx_design_vue_pro_modal,e._gx_design_vue_pro_provider,e.vue_router))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var f=Object.create,p=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyNames,g=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=h(t),a=0,o=i.length,s;a<o;a++)s=i[a],!_.call(e,s)&&s!==n&&p(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=m(t,s))||r.enumerable});return e};c=((e,t,n)=>(n=e==null?{}:f(g(e)),v(t||!e||!e.__esModule?p(n,`default`,{value:e,enumerable:!0}):n,e)))(c,1);function y(){return typeof navigator>`u`?!1:/windows|win32/i.test(navigator.userAgent)}function b(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function x(e){return Array.isArray===void 0?Object.prototype.toString.call(e)===`[object Array]`:Array.isArray(e)}function S(e){return e!==null&&b(e,`Object`)}function C(e){return typeof e==`string`}function w(e){if(!e||!e.startsWith(`http`))return!1;try{return!!new URL(e)}catch{return!1}}function T(e,t=`children`){let n=[];return e.forEach(e=>{n.push(e),x(e[t])&&e[t].length>0&&(n=n.concat(T(e[t],t)))}),n}function E({suffixCls:e,customizePrefixCls:t,isPro:n,className:r}){let i=r||(n?`gx-pro`:`gx`);return t||(e?`${i}-${e}`:i)}function D(...e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r){if(C(r))t.push(r);else if(x(r))for(let e=0;e<r.length;e++){let n=D(r[e]);n&&t.push(n)}else if(S(r))for(let e in r)r[e]&&t.push(e)}}return t.filter(e=>e).join(` `)}var ee={searchPlaceholder:`搜索导航菜单`,searchLabel:`搜索`,searchShortcutLabel:`⌘ K`,lockScreen:`锁定屏幕`,logout:`退出登录`,noResult:e=>`未找到搜索结果 "${e}"`,noHistory:`没有搜索历史`,searchHistory:`搜索历史`,selectLabel:`选择`,navigateLabel:`导航`,lightTheme:`亮色`,darkTheme:`深色`,autoTheme:`自动`};function O(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function k(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function A(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function j(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var M=`[object RegExp]`,N=`[object String]`,P=`[object Number]`,F=`[object Boolean]`,te=`[object Arguments]`,ne=`[object Symbol]`,re=`[object Date]`,ie=`[object Map]`,ae=`[object Set]`,oe=`[object Array]`,I=`[object ArrayBuffer]`,L=`[object Object]`,R=`[object DataView]`,z=`[object Uint8Array]`,B=`[object Uint8ClampedArray]`,V=`[object Uint16Array]`,H=`[object Uint32Array]`,U=`[object Int8Array]`,W=`[object Int16Array]`,G=`[object Int32Array]`,K=`[object Float32Array]`,q=`[object Float64Array]`;function J(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!==void 0)return a;if(O(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=J(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,J(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(J(a,void 0,n,r,i));return t}if(typeof Buffer<`u`&&Buffer.isBuffer(e))return e.subarray();if(k(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=J(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),Y(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),Y(t,e,n,r,i),t}if(typeof Blob<`u`&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),Y(t,e,n,r,i),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,Y(t,e,n,r,i),t}if(e instanceof Boolean){let t=new Boolean(e.valueOf());return r.set(e,t),Y(t,e,n,r,i),t}if(e instanceof Number){let t=new Number(e.valueOf());return r.set(e,t),Y(t,e,n,r,i),t}if(e instanceof String){let t=new String(e.valueOf());return r.set(e,t),Y(t,e,n,r,i),t}if(typeof e==`object`&&se(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),Y(t,e,n,r,i),t}return e}function Y(e,t,n=e,r,i){let a=[...Object.keys(t),...A(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=J(t[s],s,n,r,i))}}function se(e){switch(j(e)){case te:case oe:case I:case R:case F:case re:case K:case q:case U:case W:case G:case ie:case P:case L:case M:case ae:case N:case ne:case z:case B:case V:case H:return!0;default:return!1}}function X(e){return J(e,void 0,e,new Map,void 0)}function ce(e,t){let n=new Map;return e.filter(e=>{let r=e[t];return n.has(r)?!1:(n.set(r,e),!0)})}var le=`ABCDEFGHJKLMNOPQRSTWXYZ`,ue=`阿八嚓哒鹅发旮哈讥咔垃妈拿噢啪七日撒他挖昔压匝`;function de(e){let t=e.codePointAt(0);if(t>=65&&t<=90)return e;if(t>=97&&t<=122)return e.toUpperCase();if(t<19968||t>40959)return``;for(let t=22;t>=0;t--)if(e.localeCompare(ue[t],`zh-CN`)>=0)return le[t];return``}function fe(e){let t=``;for(let n of e)t+=de(n);return t}function pe(e,t){if(!t)return!1;let n=t.trim().toLowerCase();return!!(e.toLowerCase().includes(n)||fe(e).toLowerCase().includes(n))}function me(e,t){let n=t.trim();if(!n)return[];let r=[];for(let t of e)t.meta?.hideInMenu||pe(t.meta?.title||(typeof t.name==`string`?t.name:``)||``,n)&&r.push(t);return r}var he=({className:e,value:n,locale:r})=>n?(0,t.createVNode)(o.Empty,{image:o.Empty.PRESENTED_IMAGE_SIMPLE,description:r.noResult?.(n)},null):(0,t.createVNode)(`div`,{class:e},[r.noHistory]),Z=(0,t.defineComponent)(e=>{let n=(0,d.useRouter)(),{renderEmpty:i}=(0,u.useProConfigContext)(),o=(0,a.useLocalStorage)(e.historyKey||E({suffixCls:`search-history`,isPro:!0}),[]),s=(0,t.ref)(0),c=(0,t.ref)(X((0,t.unref)(o))),l=(0,a.useThrottleFn)(t=>{let n=t.trim();if(!n){c.value=[];return}c.value=me(e.dataSource??[],n),s.value=0},200);(0,t.watch)(()=>e.keyword,e=>{e?l(e):c.value=X((0,t.unref)(o))});function f(){document.querySelector(`[data-search-item="${s.value}"]`)?.scrollIntoView({block:`nearest`})}async function p(){if(c.value.length===0)return;let r=s.value;if(r<0)return;let i=c.value[r];if(!i)return;let a=C(i.redirect)?i.redirect:i.path||``,l=i.meta?.link||``,u=w(l);o.value.every(e=>e.name!==i.name)&&o.value.push(X(i)),e.onClose?.(!0),await(0,t.nextTick)(),u&&l&&i.meta?.linkStatus===1?window.open(l,`_blank`):n.push({path:a})}function m(){c.value.length!==0&&(e.onBlur?.(),s.value--,s.value<0&&(s.value=c.value.length-1),f())}function h(){c.value.length!==0&&(e.onBlur?.(),s.value++,s.value>c.value.length-1&&(s.value=0),f())}(0,t.onMounted)(()=>{(0,a.onKeyStroke)(`Enter`,p),(0,a.onKeyStroke)(`ArrowUp`,m),(0,a.onKeyStroke)(`ArrowDown`,h)});function g(e){s.value=e}function _(e,t){e.stopPropagation(),c.value=c.value.filter(e=>e.name!==t.name),o.value=o.value.filter(e=>e.name!==t.name),s.value=s.value-1>=0?s.value-1:0,f()}let v=t=>D(`${e.className}${t?`-${t}`:``}`,e.hashId);return()=>(0,t.createVNode)(t.Fragment,null,[c.value.length>0?(0,t.createVNode)(t.Fragment,null,[o.value.length>0&&!e.keyword&&(0,t.createVNode)(`div`,{class:v(`panel-title`)},[e.locale.searchHistory]),(0,t.createVNode)(`div`,{class:v(`panel-list`)},[ce(c.value,`name`).map((n,i)=>(0,t.createVNode)(`div`,{key:n.name,class:v(D(`panel-item`,i===s.value&&`active`)),"data-search-item":i,onClick:()=>p(),onMouseenter:()=>g(i)},[(0,t.createVNode)(`div`,{class:v(`panel-item-left`)},[n.meta?.title]),o.value.length>0&&!e.keyword&&(0,t.createVNode)(r.GIcon,{type:`CloseOutlined`,onClick:e=>_(e,n)},null)]))])]):i.value?.()||(0,t.createVNode)(he,{className:v(`result`),value:e.keyword,locale:e.locale},null)])},{props:{className:{type:String,required:!1},hashId:{type:String,required:!1},keyword:{type:String,required:!1},dataSource:{type:Array,required:!1},historyKey:{type:String,required:!1},emptyProps:{type:Object,required:!1},locale:{type:Object,required:!0},onBlur:{type:Function,required:!1},onClose:{type:Function,required:!1}},name:`GSearchPanel`,inheritAttrs:!1}),ge=(0,u.proGenStyleHooks)(`ProRightSearch`,e=>{let t=e.menuItemIconSize||e.fontSize,n=e.calc(e.borderRadiusLG).mul(2).equal(),r=e.calc(e.paddingXXS).div(2).equal();return{[e.componentCls]:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:36,gap:12,cursor:`pointer`,fontSize:e.fontSizeSM,color:e.colorTextTertiary,paddingBlock:r,paddingInline:e.paddingXS,borderRadius:n,backgroundColor:e.headerColorBgRightActionsItemHover,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,lineHeight:1,">.anticon":{fontSize:e.fontSize,color:e.colorTextTertiary},"&-word":{lineHeight:1},"&-word-icon":{lineHeight:1,padding:`4px 6px`,borderTopLeftRadius:e.borderRadiusSM,borderBottomLeftRadius:e.borderRadiusSM,borderTopRightRadius:n,borderBottomRightRadius:n,backgroundColor:e.colorBgContainer},"&:hover":{color:e.colorTextSecondary},"&-modal":{"&-footer":{display:`flex`,alignItems:`center`,gap:e.marginXS,fontSize:12,color:e.colorTextSecondary},"&-footer-icon":{display:`flex`,alignItems:`center`,gap:4}},"&-panel":{"&-title":{color:e.colorTextQuaternary,lineHeight:e.lineHeight,marginBlockEnd:e.marginXS},"&-list":{display:`flex`,flexDirection:`column`,gap:12},"&-item":{display:`flex`,alignItems:`center`,justifyContent:`space-between`,cursor:`pointer`,fontSize:e.fontSize,lineHeight:e.lineHeight,padding:e.paddingXS,borderRadius:e.borderRadiusLG,backgroundColor:e.colorBgContainer,transition:`all ${e.motionDurationFast} ${e.motionEaseInOut}`,"&-left":{display:`flex`,alignItems:`center`,gap:e.sizeStep,">.anticon":{fontSize:`${t}px`}},"&.active":{backgroundColor:e.colorPrimary,color:e.colorTextLightSolid}}},"&-result":{display:`flex`,alignItems:`center`,justifyContent:`center`,paddingBlockStart:60,color:e.colorTextQuaternary}}}}),_e=({className:e,hashId:n,locale:i})=>(0,t.createVNode)(`div`,{class:D(`${e}-footer`,n)},[(0,t.createVNode)(`div`,{class:D(`${e}-footer-icon`,n)},[(0,t.createVNode)(r.GIcon,{type:`EnterOutlined`},null),i.selectLabel]),(0,t.createVNode)(`div`,{class:D(`${e}-footer-icon`,n)},[(0,t.createVNode)(r.GIcon,{type:`ArrowUpOutlined`},null),(0,t.createVNode)(r.GIcon,{type:`ArrowUpOutlined`,rotate:180},null),i.navigateLabel])]),ve=(0,t.defineComponent)(e=>{let n=(0,i.useInjectLayoutContext)(),{prefixCls:u}=(0,s.useBaseConfig)(`pro-right-search`),d=(0,c.default)(u),[f,p]=ge(u,d),m=(0,t.ref)(``),h=(0,t.ref)(!1),g=(0,a.useMagicKeys)(),_=y()?g[`ctrl+k`]:g[`cmd+k`],v=(0,t.ref)(),b=(0,t.computed)(()=>e.dataSource?.length?T(e.dataSource):n?.menuState?.flatMenus?n.menuState.flatMenus.value:[]);(0,a.whenever)(_,()=>{e.disabledShortKey||(h.value=!0)}),(0,a.whenever)(()=>h.value,()=>{(0,t.nextTick)(()=>{v.value?.focus?.()})});function x(e){h.value=!1,e&&(m.value=``)}return()=>{let n={className:u.value,hashId:f.value},i=`${u.value}-modal`;return(0,t.createVNode)(t.Fragment,null,[(0,t.createVNode)(`div`,{class:D(u.value,f.value,p.value,d.value),onClick:()=>{h.value=!0}},[(0,t.createVNode)(r.GIcon,{type:`SearchOutlined`},null),(0,t.createVNode)(`span`,{class:D(`${u.value}-word`,f.value)},[e.locale.searchLabel]),(0,t.createVNode)(`span`,{class:D(`${u.value}-word-icon`,f.value)},[(0,t.createTextVNode)(`⌘`),` `,(0,t.createVNode)(`kbd`,null,[(0,t.createTextVNode)(`K`)])])]),(0,t.createVNode)(l.GProModal,{wrapClassName:D(i,f.value),width:600,scrollProps:{maxHeight:400,minHeight:200},centered:!1,destroyOnHidden:!1,title:(0,t.createVNode)(o.Input,{style:{width:`${600*.8}px`,padding:0},ref:v,bordered:!1,size:`large`,placeholder:e.locale.searchPlaceholder,value:m.value,prefix:(0,t.createVNode)(r.GIcon,{type:`SearchOutlined`},null),"onUpdate:value":e=>{m.value=e}},null),open:h.value,footer:(0,t.createVNode)(_e,{className:i,hashId:f.value,locale:e.locale},null),onCancel:()=>x()},{default:()=>[(0,t.createVNode)(Z,(0,t.mergeProps)(n,{emptyProps:e.emptyProps,keyword:m.value,dataSource:b.value,historyKey:e.searchHistoryKey,locale:e.locale,onClose:x}),null)]})])}},{props:{dataSource:{type:Array,required:!1},disabledShortKey:{type:Boolean,required:!1,default:void 0},locale:{type:Object,required:!0},searchHistoryKey:{type:String,required:!1},emptyProps:{type:Object,required:!1}},name:`GSearchInput`,inheritAttrs:!1});function ye(e,t){return`color-mix(in srgb, ${e} ${t*100}%, transparent)`}var be=(0,u.proGenStyleHooks)(`ProRightContent`,e=>({[e.componentCls]:{height:`100%`,"&-header-actions":{display:`flex`,alignItems:`center`,justifyContent:`flex-end`,height:`100%`,gap:e.paddingXS,"&-item":{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,paddingBlock:0,paddingInline:2,color:e.headerColorTextRightActionsItem,fontSize:14,cursor:`pointer`,borderRadius:e.borderRadius,".anticon":{color:e.headerColorTextRightActionsItem,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&:hover":{color:e.headerColorTextRightActionsItemHover}},[`&${e.componentCls}-header-actions-theme`]:{[`${e.componentCls}-header-actions-icon`]:{paddingInline:4,paddingBlock:4,fontSize:18}},"> *":{paddingInline:6,paddingBlock:6,borderRadius:e.borderRadius,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&:hover":{color:e.headerColorTextRightActionsItemHover,backgroundColor:e.headerColorBgRightActionsItemHover}}},[`&>${e.antCls}-dropdown-trigger`]:{color:e.colorTextTertiary,paddingInline:8,paddingBlock:8,cursor:`pointer`,display:`flex`,alignItems:`center`,height:44,lineHeight:`44px`,borderRadius:e.borderRadius,"&:hover":{backgroundColor:ye(e.colorTextBase,.03)}},"&-avatar":{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,gap:e.paddingXS,paddingInlineStart:e.padding,paddingInlineEnd:e.padding,cursor:`pointer`,color:e.headerColorTextRightActionsItem},"&-name":{color:e.headerColorTextRightActionsItem}}}})),Q={fontSize:`15px`};function $(e,n){return()=>(0,t.createVNode)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`}},[typeof e==`function`?e():e,n])}var xe=[{value:`light`,label:$((0,t.h)(r.GIcon,{type:`Moon`,style:Q}),`亮色`)},{value:`dark`,label:$((0,t.h)(r.GIcon,{type:`Sun`,style:Q}),`深色`)},{value:`system`,label:$((0,t.h)(r.GIcon,{type:`DesktopOutlined`,style:Q}),`自动`)}];e.RightContent=(0,t.defineComponent)((e,{emit:l,slots:u})=>{let{isFullscreen:d,toggle:f}=(0,a.useFullscreen)(),p=(0,i.useInjectLayoutContext)(),{setTheme:m,isDark:h,theme:g}=(0,n.useThemeContext)(),{prefixCls:_}=(0,s.useBaseConfig)(`pro-right-content`),v=(0,c.default)(_),[y,b]=be(_,v),S=(0,t.computed)(()=>p?.isMobile.value??!1),C=(0,t.ref)(),{width:w}=(0,a.useElementSize)(C),T=(0,t.ref)(`auto`),E=(0,t.ref)();(0,t.watch)(w,e=>{T.value=e>0?e:`auto`});let O=(0,t.ref)(!1),k=(0,t.computed)(()=>({...ee,...e.locale})),A=(0,t.computed)(()=>e.actions===!1?{}:{theme:!0,search:!0,themeEditor:!1,fullScreen:!0,...e.actions}),j=(0,t.computed)(()=>(e.themeOptions||xe).map(e=>({key:e.value,label:e.label()})));function M(e){let t=e.key;m(t)}let N=(0,t.computed)(()=>{let n=u?.dropdownMenu?.(),i=e.dropdownProps?.menu?.items||[];return x(n)&&n.forEach((e,t)=>{let n=e.props.key,r=e.props.icon;n===`menu-item`?i.push({key:`menu-${t}`,label:e.children,icon:r}):n===`menu-divider`&&i.push({type:`divider`})}),i.push({key:`logout`,icon:()=>(0,t.createVNode)(r.GIcon,{type:`LogoutOutlined`},null),label:k.value.logout,onClick:P}),i});function P(e){e.key===`lock`?O.value=!0:e.key===`logout`&&l(`logout`)}function F(e){l(`actionClick`,e)}return()=>{let n=[`${_.value}-header-actions-item`,y.value];return(0,t.createVNode)(`div`,{ref:C,class:D(_.value,y.value,b.value,v.value),style:{minWidth:T.value,height:`100%`}},[(0,t.createVNode)(`div`,{style:{height:`100%`}},[(0,t.createVNode)(`div`,{class:D(`${_.value}-header-actions`)},[u.default?u.default():(0,t.createVNode)(t.Fragment,null,[A.value.search&&!S.value&&(0,t.createVNode)(ve,{dataSource:e.searchConfig?.dataSource,disabledShortKey:e.searchConfig?.disabledShortKey,searchHistoryKey:e.searchConfig?.historyKey,emptyProps:e.searchConfig?.emptyProps,locale:k.value},null),A.value.theme&&(0,t.createVNode)(`div`,{ref:E,class:D(`${_.value}-header-actions-item`,`${_.value}-header-actions-theme`,y.value)},[(0,t.createVNode)(o.Dropdown,{trigger:[`click`],placement:`bottomRight`,menu:{items:j.value,onClick:M,selectedKeys:[g.value]}},{default:()=>[(0,t.createVNode)(r.GIcon,{class:D(`${_.value}-header-actions-icon`),type:h.value?`Moon`:`Sun`},null)]})]),A.value.themeEditor&&!S.value&&(0,t.createVNode)(`div`,{class:D(n)},[(0,t.createVNode)(r.GIcon,{type:`SettingOutlined`,onClick:()=>F(`themeEditor`)},null)]),A.value.fullScreen&&!S.value&&(0,t.createVNode)(`div`,{class:D(n)},[(0,t.createVNode)(r.GIcon,{type:d.value?`CompressOutlined`:`ExpandOutlined`,onClick:()=>f()},null)]),u.actionsRender?.(n)]),(0,t.createVNode)(o.Dropdown,(0,t.mergeProps)({placement:`bottomRight`},e.dropdownProps,{menu:{items:N.value}}),{default:()=>[u.dropdownTrigger?u.dropdownTrigger():(0,t.createVNode)(`div`,{class:D(`${_.value}-header-actions-avatar`)},[(0,t.createVNode)(o.Avatar,{size:28,icon:(0,t.createVNode)(r.GIcon,{type:`UserOutlined`},null)},null),e.name&&(0,t.createVNode)(`span`,{class:D(`${_.value}-header-actions-name`)},[e.name])])],popupRender:u.popupRender})])])])}},{props:{actions:{type:[Object,Boolean],required:!1,default:void 0},name:{type:String,required:!1},avatar:{type:String,required:!1},dropdownProps:{type:Object,required:!1},themeOptions:{type:Array,required:!1},searchConfig:{type:Object,required:!1},locale:{type:Object,required:!1}},emits:[`logout`,`actionClick`],name:`RightContent`,inheritAttrs:!1})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gx-design-vue/pro-layout-components",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.6",
|
|
5
5
|
"description": "Gx Design Pro Layout Components",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "gx12358",
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
"es-toolkit": "^1.43.0",
|
|
49
49
|
"vue-router": "^5.1.0",
|
|
50
50
|
"@gx-design-vue/context": "^0.0.5-alpha.6",
|
|
51
|
-
"@gx-design-vue/pro-layout": "^0.1.0-alpha.
|
|
52
|
-
"@gx-design-vue/pro-
|
|
53
|
-
"@gx-design-vue/pro-hooks": "^0.2.0-alpha.6",
|
|
54
|
-
"@gx-design-vue/pro-provider": "^0.1.0-alpha.8",
|
|
51
|
+
"@gx-design-vue/pro-layout": "^0.1.0-alpha.8",
|
|
52
|
+
"@gx-design-vue/pro-provider": "^0.1.0-alpha.10",
|
|
55
53
|
"@gx-design-vue/pro-utils": "^0.2.0-alpha.6",
|
|
54
|
+
"@gx-design-vue/pro-modal": "^0.2.0-alpha.7",
|
|
56
55
|
"@gx-design-vue/scrollbar": "^0.2.0-alpha.5",
|
|
57
|
-
"@gx-design-vue/icon": "^0.0.1-alpha.
|
|
56
|
+
"@gx-design-vue/icon": "^0.0.1-alpha.8",
|
|
57
|
+
"@gx-design-vue/pro-hooks": "^0.2.0-alpha.6"
|
|
58
58
|
},
|
|
59
59
|
"browserslist": [
|
|
60
60
|
"> 1%",
|