@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: true,
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 items = [];
58
- if (actions.value.lock && slots.lock) {
59
- items.push({
60
- key: "lock",
61
- icon: () => createVNode(GIcon, { "type": "LockOutlined" }, null),
62
- label: mergedLocale.value.lockScreen
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`, hashId.value) }, [slots.default ? slots.default() : createVNode(Fragment, null, [
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`, hashId.value),
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": slots.dropdownMenu ? void 0 : {
125
- items: userMenuItems.value,
126
- onClick: handleUserMenuClick
127
- } }), { default: () => [slots.dropdownTrigger ? slots.dropdownTrigger() : createVNode("div", { "class": classNames(`${prefixCls.value}-header-actions-avatar`, hashId.value) }, [createVNode(Avatar, {
128
- "size": 28,
129
- "icon": createVNode(GIcon, { "type": "UserOutlined" }, null)
130
- }, null), props.name && createVNode("span", { "class": classNames(`${prefixCls.value}-header-actions-name`, hashId.value) }, [props.name])])] })])]), slots.lock?.({
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: () => VNodeChild;
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?: Record<string, unknown>;
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?: () => VNodeChild;
68
+ default?: () => CustomRender;
69
69
  /** 额外 action 项(在 avatar dropdown 前) */
70
- actionsRender?: (classNames: string[]) => VNodeChild;
70
+ actionsRender?: (classNames: string[]) => CustomRender;
71
71
  /** 替换 avatar 触发器 */
72
- dropdownTrigger?: () => VNodeChild;
73
- /** 替换 dropdown 菜单内容 */
74
- dropdownMenu?: () => VNodeChild;
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), P = t(() => ({
655
+ let N = l(!1), F = t(() => ({
656
656
  ...ee,
657
657
  ...n.locale
658
- })), F = t(() => n.actions === !1 ? {} : {
659
- lock: !0,
658
+ })), I = t(() => n.actions === !1 ? {} : {
660
659
  theme: !0,
661
660
  search: !0,
662
- themeEditor: !0,
661
+ themeEditor: !1,
663
662
  fullScreen: !0,
664
663
  ...n.actions
665
- }), I = t(() => (n.themeOptions || Pe).map((e) => ({
664
+ }), L = t(() => (n.themeOptions || Pe).map((e) => ({
666
665
  key: e.value,
667
666
  label: e.label()
668
667
  })));
669
- function L(e) {
668
+ function R(e) {
670
669
  let t = e.key;
671
670
  h(t);
672
671
  }
673
- let R = t(() => {
674
- let e = [];
675
- return F.value.lock && a.lock && (e.push({
676
- key: "lock",
677
- icon: () => r(p, { type: "LockOutlined" }, null),
678
- label: P.value.lockScreen
679
- }), e.push({ type: "divider" })), e.push({
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: P.value.logout
683
- }), e;
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("actionClick", e);
689
+ e.key === "lock" ? N.value = !0 : e.key === "logout" && i("logout");
690
690
  }
691
691
  function H(e) {
692
- N.value = e;
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`, w.value) }, [a.default ? a.default() : r(e, null, [
704
- F.value.search && !O.value && r(je, {
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: P.value
709
+ locale: F.value
710
710
  }, null),
711
- F.value.theme && r("div", {
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: I.value,
719
- onClick: L,
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`, w.value),
723
+ class: B(`${b.value}-header-actions-icon`),
724
724
  type: v.value ? "Moon" : "Sun"
725
725
  }, null)] })]),
726
- F.value.themeEditor && !O.value && r("div", { class: B(t) }, [r(p, {
726
+ I.value.themeEditor && !O.value && r("div", { class: B(t) }, [r(p, {
727
727
  type: "SettingOutlined",
728
- onClick: () => V("themeEditor")
728
+ onClick: () => H("themeEditor")
729
729
  }, null)]),
730
- F.value.fullScreen && !O.value && r("div", { class: B(t) }, [r(p, {
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: a.dropdownMenu ? void 0 : {
736
- items: R.value,
737
- onClick: z
738
- } }), { default: () => [a.dropdownTrigger ? a.dropdownTrigger() : r("div", { class: B(`${b.value}-header-actions-avatar`, w.value) }, [r(S, {
739
- size: 28,
740
- icon: r(p, { type: "UserOutlined" }, null)
741
- }, null), n.name && r("span", { class: B(`${b.value}-header-actions-name`, w.value) }, [n.name])])] })])]), a.lock?.({
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.5",
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.7",
52
- "@gx-design-vue/pro-modal": "^0.2.0-alpha.7",
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.7"
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%",