@koi-design/uxd-ui 14.0.6 → 14.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/es/components/Card/Card.d.ts +9 -9
  2. package/es/components/Card/Card.mjs +19 -26
  3. package/es/components/Card/Card.mjs.map +1 -1
  4. package/es/components/Card/Card.type.d.ts +4 -4
  5. package/es/components/Card/Card.type.mjs +4 -4
  6. package/es/components/Card/Card.type.mjs.map +1 -1
  7. package/es/components/Card/index.d.ts +15 -15
  8. package/es/components/DatePicker/DatePicker.mjs +2 -4
  9. package/es/components/DatePicker/DatePicker.mjs.map +1 -1
  10. package/es/components/DatePicker/Panel/DatePickerPanel.mjs +1 -0
  11. package/es/components/DatePicker/Panel/DatePickerPanel.mjs.map +1 -1
  12. package/es/components/Layout/Layout.type.d.ts +2 -7
  13. package/es/components/Layout/Layout.type.mjs +2 -7
  14. package/es/components/Layout/Layout.type.mjs.map +1 -1
  15. package/es/components/Layout/Sider.mjs +20 -16
  16. package/es/components/Layout/Sider.mjs.map +1 -1
  17. package/es/components/Layout/Sider.vue.d.ts +9 -17
  18. package/es/components/Layout/index.d.ts +9 -17
  19. package/es/components/Menu/Menu.d.ts +0 -11
  20. package/es/components/Menu/Menu.mjs +1 -3
  21. package/es/components/Menu/Menu.mjs.map +1 -1
  22. package/es/components/Menu/Menu.type.d.ts +0 -6
  23. package/es/components/Menu/Menu.type.mjs +0 -5
  24. package/es/components/Menu/Menu.type.mjs.map +1 -1
  25. package/es/components/Menu/SubMenu.mjs +1 -3
  26. package/es/components/Menu/SubMenu.mjs.map +1 -1
  27. package/es/components/Menu/SubMenu.vue.d.ts +0 -1
  28. package/es/components/Menu/index.d.ts +0 -19
  29. package/es/components/Table/BaseTable.vue.d.ts +0 -19
  30. package/es/components/Table/BodyTable.vue.d.ts +0 -19
  31. package/es/components/Table/HeadTable.vue.d.ts +0 -19
  32. package/es/components/Table/Table.vue.d.ts +0 -38
  33. package/es/components/Table/TableBox.vue.d.ts +0 -38
  34. package/es/components/Table/tableUnits/FilterDropdown.vue.d.ts +0 -19
  35. package/es/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +0 -19
  36. package/es/components/Table/tableUnits/TableHeader.vue.d.ts +0 -19
  37. package/es/components/Table/tableUnits/TableHeaderRow.vue.d.ts +0 -19
  38. package/es/components/base/CollapseTransition.mjs +0 -16
  39. package/es/components/base/CollapseTransition.mjs.map +1 -1
  40. package/es/components/base/hooks/useGlobalConfig.d.ts +1 -0
  41. package/es/components/locale/default.d.ts +1 -0
  42. package/es/components/locale/default.mjs.map +1 -1
  43. package/lib/components/Card/Card.d.ts +9 -9
  44. package/lib/components/Card/Card.js +22 -29
  45. package/lib/components/Card/Card.js.map +1 -1
  46. package/lib/components/Card/Card.type.d.ts +4 -4
  47. package/lib/components/Card/Card.type.js +4 -4
  48. package/lib/components/Card/Card.type.js.map +1 -1
  49. package/lib/components/Card/index.d.ts +15 -15
  50. package/lib/components/DatePicker/DatePicker.js +2 -4
  51. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  52. package/lib/components/DatePicker/Panel/DatePickerPanel.js +1 -0
  53. package/lib/components/DatePicker/Panel/DatePickerPanel.js.map +1 -1
  54. package/lib/components/Layout/Layout.type.d.ts +2 -7
  55. package/lib/components/Layout/Layout.type.js +2 -7
  56. package/lib/components/Layout/Layout.type.js.map +1 -1
  57. package/lib/components/Layout/Sider.js +19 -15
  58. package/lib/components/Layout/Sider.js.map +1 -1
  59. package/lib/components/Layout/Sider.vue.d.ts +9 -17
  60. package/lib/components/Layout/index.d.ts +9 -17
  61. package/lib/components/Menu/Menu.d.ts +0 -11
  62. package/lib/components/Menu/Menu.js +1 -3
  63. package/lib/components/Menu/Menu.js.map +1 -1
  64. package/lib/components/Menu/Menu.type.d.ts +0 -6
  65. package/lib/components/Menu/Menu.type.js +0 -5
  66. package/lib/components/Menu/Menu.type.js.map +1 -1
  67. package/lib/components/Menu/SubMenu.js +1 -3
  68. package/lib/components/Menu/SubMenu.js.map +1 -1
  69. package/lib/components/Menu/SubMenu.vue.d.ts +0 -1
  70. package/lib/components/Menu/index.d.ts +0 -19
  71. package/lib/components/Table/BaseTable.vue.d.ts +0 -19
  72. package/lib/components/Table/BodyTable.vue.d.ts +0 -19
  73. package/lib/components/Table/HeadTable.vue.d.ts +0 -19
  74. package/lib/components/Table/Table.vue.d.ts +0 -38
  75. package/lib/components/Table/TableBox.vue.d.ts +0 -38
  76. package/lib/components/Table/tableUnits/FilterDropdown.vue.d.ts +0 -19
  77. package/lib/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +0 -19
  78. package/lib/components/Table/tableUnits/TableHeader.vue.d.ts +0 -19
  79. package/lib/components/Table/tableUnits/TableHeaderRow.vue.d.ts +0 -19
  80. package/lib/components/base/CollapseTransition.js +0 -16
  81. package/lib/components/base/CollapseTransition.js.map +1 -1
  82. package/lib/components/base/hooks/useGlobalConfig.d.ts +1 -0
  83. package/lib/components/locale/default.d.ts +1 -0
  84. package/lib/components/locale/default.js.map +1 -1
  85. package/package.json +1 -1
  86. package/styles/components/alert/index.css +1 -1
  87. package/styles/components/autoComplete/index.css +1 -1
  88. package/styles/components/avatar/index.css +1 -1
  89. package/styles/components/breadcrumb/index.css +1 -1
  90. package/styles/components/breadcrumb/index.less +5 -6
  91. package/styles/components/breadcrumb/var.less +4 -6
  92. package/styles/components/button/index.css +1 -1
  93. package/styles/components/card/index.css +1 -1
  94. package/styles/components/card/index.less +64 -70
  95. package/styles/components/card/var.less +4 -13
  96. package/styles/components/carousel/index.css +1 -1
  97. package/styles/components/cascader/index.css +1 -1
  98. package/styles/components/datePicker/index.css +1 -1
  99. package/styles/components/form/index.css +1 -1
  100. package/styles/components/icon/index.css +1 -1
  101. package/styles/components/input/index.css +1 -1
  102. package/styles/components/inputNumber/index.css +1 -1
  103. package/styles/components/layout/index.css +1 -1
  104. package/styles/components/layout/index.less +40 -55
  105. package/styles/components/layout/var.less +9 -41
  106. package/styles/components/link/index.css +1 -1
  107. package/styles/components/mentions/index.css +1 -1
  108. package/styles/components/menu/index.css +1 -1
  109. package/styles/components/menu/index.less +63 -207
  110. package/styles/components/menu/var.less +39 -69
  111. package/styles/components/modal/index.css +1 -1
  112. package/styles/components/select/index.css +1 -1
  113. package/styles/components/spin/index.css +1 -1
  114. package/styles/components/timePicker/index.css +1 -1
  115. package/styles/cssVariable.css +1 -1
  116. package/styles/cssVariable.less +8 -7
  117. package/styles/index.css +1 -1
  118. package/types/components/Card/Card.d.ts +9 -9
  119. package/types/components/Card/Card.type.d.ts +4 -4
  120. package/types/components/Card/index.d.ts +15 -15
  121. package/types/components/Layout/Layout.type.d.ts +2 -7
  122. package/types/components/Layout/Sider.vue.d.ts +9 -17
  123. package/types/components/Layout/index.d.ts +9 -17
  124. package/types/components/Menu/Menu.d.ts +0 -11
  125. package/types/components/Menu/Menu.type.d.ts +0 -6
  126. package/types/components/Menu/SubMenu.vue.d.ts +0 -1
  127. package/types/components/Menu/index.d.ts +0 -19
  128. package/types/components/Table/BaseTable.vue.d.ts +0 -19
  129. package/types/components/Table/BodyTable.vue.d.ts +0 -19
  130. package/types/components/Table/HeadTable.vue.d.ts +0 -19
  131. package/types/components/Table/Table.vue.d.ts +0 -38
  132. package/types/components/Table/TableBox.vue.d.ts +0 -38
  133. package/types/components/Table/tableUnits/FilterDropdown.vue.d.ts +0 -19
  134. package/types/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +0 -19
  135. package/types/components/Table/tableUnits/TableHeader.vue.d.ts +0 -19
  136. package/types/components/Table/tableUnits/TableHeaderRow.vue.d.ts +0 -19
  137. package/types/components/base/hooks/useGlobalConfig.d.ts +1 -0
  138. package/types/components/locale/default.d.ts +1 -0
  139. package/uxd-ui.css +1 -1
  140. package/uxd-ui.esm.min.mjs +6 -6
  141. package/uxd-ui.esm.mjs +373 -406
  142. package/uxd-ui.umd.js +372 -405
  143. package/uxd-ui.umd.min.js +6 -6
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, inject, ref, watch, onMounted, nextTick, onUnmounted, computed, toRefs, provide, resolveComponent, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, withCtx, createBlock, createCommentVNode, createElementVNode, renderSlot, resolveDynamicComponent } from 'vue';
2
- import { PanelLeft } from 'lucide-vue-next';
2
+ import { PanelLeft, PanelRight, ChevronLeft, ChevronRight } from 'lucide-vue-next';
3
3
  import { UIcon } from '../Icon/index.mjs';
4
4
  import useGlobalConfig from '../base/hooks/useGlobalConfig.mjs';
5
5
  import { breakpointMap } from '../../utils/responsiveObserve.mjs';
@@ -19,7 +19,10 @@ const _sfc_main = defineComponent({
19
19
  name: "USider",
20
20
  components: {
21
21
  UIcon,
22
- PanelLeft
22
+ PanelLeft,
23
+ PanelRight,
24
+ ChevronLeft,
25
+ ChevronRight
23
26
  },
24
27
  props: siderProps,
25
28
  emits: siderEmits,
@@ -46,7 +49,6 @@ const _sfc_main = defineComponent({
46
49
  const isBreakpoint = ref(false);
47
50
  let mql;
48
51
  const responsiveHandler = ({ matches }) => {
49
- emit("breakpoint", matches);
50
52
  isBreakpoint.value = matches;
51
53
  if (matches !== stateCollapse.value) {
52
54
  setCollapsed(matches, "responsive");
@@ -54,7 +56,7 @@ const _sfc_main = defineComponent({
54
56
  };
55
57
  onMounted(() => {
56
58
  nextTick(() => {
57
- if (typeof window === "undefined") {
59
+ if (typeof window !== "undefined") {
58
60
  if (!!matchMedia && props.breakpoint) {
59
61
  mql = matchMedia(breakpointMap[props.breakpoint]);
60
62
  }
@@ -63,7 +65,9 @@ const _sfc_main = defineComponent({
63
65
  } catch (error) {
64
66
  mql == null ? void 0 : mql.addListener(responsiveHandler);
65
67
  }
66
- responsiveHandler(mql);
68
+ if (mql) {
69
+ responsiveHandler(mql);
70
+ }
67
71
  }
68
72
  if (siderHook.attachSider) {
69
73
  siderHook.attachSider(uniqueId);
@@ -85,12 +89,12 @@ const _sfc_main = defineComponent({
85
89
  const siderWidth = computed(() => {
86
90
  let ret = getPixer(props.width);
87
91
  if (stateCollapse.value) {
88
- ret = getPixer(props.collapseWidth);
92
+ ret = getPixer(props.collapsedWidth);
89
93
  }
90
94
  return ret;
91
95
  });
92
96
  const isZeroCollapse = computed(() => {
93
- return parseFloat(String(props.collapseWidth)) === 0 || props.zeroTrigger;
97
+ return parseFloat(String(props.collapsedWidth)) === 0 || props.zeroTrigger;
94
98
  });
95
99
  const showZeroTrigger = computed(() => {
96
100
  return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && isZeroCollapse.value;
@@ -102,16 +106,16 @@ const _sfc_main = defineComponent({
102
106
  if (props.triggerIcon) {
103
107
  return props.triggerIcon;
104
108
  }
105
- return props.reverseArrow ? PanelLeft : PanelLeft;
109
+ return props.isRight ? PanelLeft : PanelRight;
106
110
  });
107
111
  const handleToggle = () => {
108
112
  const collapsed = !stateCollapse.value;
109
113
  setCollapsed(collapsed, "triggerClick");
110
114
  };
111
- const { collapseWidth } = toRefs(props);
115
+ const { collapsedWidth } = toRefs(props);
112
116
  provide("layoutSiderContext", {
113
117
  collapsed: stateCollapse,
114
- collapseWidth
118
+ collapsedWidth
115
119
  });
116
120
  return {
117
121
  prefixCls,
@@ -127,7 +131,8 @@ const _sfc_main = defineComponent({
127
131
  });
128
132
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
129
133
  var _a;
130
- const _component_PanelLeft = resolveComponent("PanelLeft");
134
+ const _component_ChevronRight = resolveComponent("ChevronRight");
135
+ const _component_ChevronLeft = resolveComponent("ChevronLeft");
131
136
  const _component_UIcon = resolveComponent("UIcon");
132
137
  return openBlock(), createElementBlock("aside", {
133
138
  style: normalizeStyle({
@@ -139,8 +144,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
139
144
  }),
140
145
  class: normalizeClass([
141
146
  _ctx.prefixCls,
142
- `${_ctx.prefixCls}-${_ctx.theme}`,
143
- `${_ctx.prefixCls}-${_ctx.reverseArrow ? "right" : "left"}`,
147
+ `${_ctx.prefixCls}-${_ctx.isRight ? "right" : "left"}`,
144
148
  {
145
149
  [`${_ctx.prefixCls}-collapsed`]: !!_ctx.stateCollapse,
146
150
  [`${_ctx.prefixCls}-has-trigger`]: _ctx.collapsible && !_ctx.hideTrigger && !_ctx.isZeroCollapse,
@@ -150,12 +154,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
150
154
  }, [
151
155
  _ctx.showZeroTrigger ? (openBlock(), createElementBlock("span", {
152
156
  key: 0,
153
- class: normalizeClass([`${_ctx.prefixCls}-zero-trigger`, `${_ctx.prefixCls}-zero-trigger-${_ctx.reverseArrow ? "right" : "left"}`]),
157
+ class: normalizeClass([`${_ctx.prefixCls}-zero-trigger`, `${_ctx.prefixCls}-zero-trigger-${_ctx.isRight ? "right" : "left"}`]),
154
158
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleToggle && _ctx.handleToggle(...args))
155
159
  }, [
156
160
  createVNode(_component_UIcon, null, {
157
161
  default: withCtx(() => [
158
- _ctx.reverseArrow ? (openBlock(), createBlock(_component_PanelLeft, { key: 0 })) : (openBlock(), createBlock(_component_PanelLeft, { key: 1 }))
162
+ _ctx.isRight ? (openBlock(), createBlock(_component_ChevronRight, { key: 0 })) : (openBlock(), createBlock(_component_ChevronLeft, { key: 1 }))
159
163
  ]),
160
164
  _: 1
161
165
  })
@@ -170,7 +174,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
170
174
  ], 2),
171
175
  _ctx.showBottomTrigger ? renderSlot(_ctx.$slots, "trigger", { key: 1 }, () => [
172
176
  createElementVNode("div", {
173
- class: normalizeClass([`${_ctx.prefixCls}-trigger`, `${_ctx.prefixCls}-trigger-${_ctx.reverseArrow ? "right" : "left"}`]),
177
+ class: normalizeClass([`${_ctx.prefixCls}-trigger`, `${_ctx.prefixCls}-trigger-${_ctx.isRight ? "right" : "left"}`]),
174
178
  style: normalizeStyle({ width: _ctx.siderWidth }),
175
179
  onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleToggle && _ctx.handleToggle(...args))
176
180
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"Sider.mjs","sources":["../../../../src/components/Layout/Sider.vue"],"sourcesContent":["<template>\n <aside\n :style=\"{\n width: `${siderWidth}`,\n minWidth: `${siderWidth}`,\n maxWidth: `${siderWidth}`,\n flex: `0 0 ${siderWidth}`,\n ...(background ? { background } : {})\n }\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${theme}`,\n `${prefixCls}-${reverseArrow ? 'right' : 'left'}`,\n {\n [`${prefixCls}-collapsed`]: !!stateCollapse,\n [`${prefixCls}-has-trigger`]: collapsible && !hideTrigger && !isZeroCollapse,\n [`${prefixCls}-zero`]: parseFloat(String(siderWidth)) === 0\n }\n ]\"\n >\n <span\n v-if=\"showZeroTrigger\"\n :class=\"[`${prefixCls}-zero-trigger`, `${prefixCls}-zero-trigger-${reverseArrow ? 'right' : 'left'}`]\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <PanelLeft v-if=\"reverseArrow\" />\n <PanelLeft v-else />\n </UIcon>\n </span>\n\n <div\n :class=\"{\n [`${prefixCls}-children`]: true,\n [`${String($attrs.class)?.split(' ')[0]}-inner`]: !!$attrs.class\n }\"\n >\n <slot />\n </div>\n\n <slot v-if=\"showBottomTrigger\" name=\"trigger\">\n <div\n :class=\"[`${prefixCls}-trigger`, `${prefixCls}-trigger-${reverseArrow ? 'right' : 'left'}`]\"\n :style=\"{ width: siderWidth }\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <component :is=\"triggerType\" />\n </UIcon>\n </div>\n </slot>\n </aside>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, onMounted, onUnmounted, nextTick, toRefs, ref, computed, watch, provide } from 'vue';\nimport { PanelLeft } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { breakpointMap } from '../../utils/responsiveObserve';\nimport { isNumeric } from '../../utils/isValid';\nimport { siderEmits, siderProps, type SiderHooks } from './Layout.type';\n\nlet i = 0;\nconst generateId = (prefix: string) => {\n i += 1;\n return `${prefix}-${i}`;\n};\n\nconst getPixer = (val: string | number) => {\n return isNumeric(val) ? `${val}px` : val;\n};\n\nexport default defineComponent({\n name: 'USider',\n components: {\n UIcon,\n PanelLeft\n },\n props: siderProps,\n emits: siderEmits,\n setup(props, { emit }) {\n const { prefixCls, getPrefixCls } = useGlobalConfig('layout-sider');\n const prefix = getPrefixCls('sider');\n const uniqueId = generateId(prefix);\n const siderHook = inject<SiderHooks>('siderHook', {} as SiderHooks);\n\n // #region for state collapse\n\n const stateCollapse = ref();\n watch(\n () => props.collapsed,\n (val) => {\n stateCollapse.value = !!val;\n },\n { immediate: true }\n );\n\n const setCollapsed = (collapsed: boolean, type: string) => {\n if (props.collapsed === undefined) {\n stateCollapse.value = collapsed;\n }\n emit('update:collapsed', collapsed);\n emit('collapse', collapsed, type);\n };\n // #endregion\n\n // #region lifecircle\n const isBreakpoint = ref(false);\n let mql: MediaQueryList;\n const responsiveHandler = ({ matches }: { matches: boolean }) => {\n emit('breakpoint', matches);\n isBreakpoint.value = matches;\n if (matches !== stateCollapse.value) {\n setCollapsed(matches, 'responsive');\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n if (typeof window === 'undefined') {\n if (!!matchMedia && props.breakpoint) {\n mql = matchMedia(breakpointMap[props.breakpoint]);\n }\n try {\n mql?.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n\n if (siderHook.attachSider) {\n siderHook.attachSider(uniqueId);\n }\n });\n });\n onUnmounted(() => {\n nextTick(() => {\n try {\n mql?.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.removeListener(responsiveHandler);\n }\n\n if (siderHook.removeSider) {\n siderHook.removeSider(uniqueId);\n }\n });\n });\n // #endregion\n\n // #region computed\n\n const siderWidth = computed(() => {\n let ret = getPixer(props.width);\n if (stateCollapse.value) {\n ret = getPixer(props.collapseWidth);\n }\n return ret;\n });\n\n const isZeroCollapse = computed(() => {\n return parseFloat(String(props.collapseWidth)) === 0 || props.zeroTrigger;\n });\n\n const showZeroTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && isZeroCollapse.value;\n });\n\n const showBottomTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && !isZeroCollapse.value;\n });\n\n const triggerType = computed(() => {\n if (props.triggerIcon) {\n return props.triggerIcon;\n }\n return props.reverseArrow ? PanelLeft : PanelLeft;\n });\n // #endregion\n\n // #region event\n const handleToggle = () => {\n const collapsed = !stateCollapse.value;\n setCollapsed(collapsed, 'triggerClick');\n };\n // #endregion\n const { collapseWidth } = toRefs(props);\n provide('layoutSiderContext', {\n collapsed: stateCollapse,\n collapseWidth\n });\n\n return {\n prefixCls,\n stateCollapse,\n siderWidth,\n isZeroCollapse,\n showZeroTrigger,\n showBottomTrigger,\n triggerType,\n handleToggle\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeStyle","_normalizeClass","_createVNode","_createBlock","_createElementVNode","_renderSlot","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"Sider.mjs","sources":["../../../../src/components/Layout/Sider.vue"],"sourcesContent":["<template>\n <aside\n :style=\"{\n width: `${siderWidth}`,\n minWidth: `${siderWidth}`,\n maxWidth: `${siderWidth}`,\n flex: `0 0 ${siderWidth}`,\n ...(background ? { background } : {})\n }\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${isRight ? 'right' : 'left'}`,\n {\n [`${prefixCls}-collapsed`]: !!stateCollapse,\n [`${prefixCls}-has-trigger`]: collapsible && !hideTrigger && !isZeroCollapse,\n [`${prefixCls}-zero`]: parseFloat(String(siderWidth)) === 0\n }\n ]\"\n >\n <span\n v-if=\"showZeroTrigger\"\n :class=\"[`${prefixCls}-zero-trigger`, `${prefixCls}-zero-trigger-${isRight ? 'right' : 'left'}`]\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <ChevronRight v-if=\"isRight\" />\n <ChevronLeft v-else />\n </UIcon>\n </span>\n\n <div\n :class=\"{\n [`${prefixCls}-children`]: true,\n [`${String($attrs.class)?.split(' ')[0]}-inner`]: !!$attrs.class\n }\"\n >\n <slot />\n </div>\n\n <slot v-if=\"showBottomTrigger\" name=\"trigger\">\n <div\n :class=\"[`${prefixCls}-trigger`, `${prefixCls}-trigger-${isRight ? 'right' : 'left'}`]\"\n :style=\"{ width: siderWidth }\"\n @click=\"handleToggle\"\n >\n <UIcon>\n <component :is=\"triggerType\" />\n </UIcon>\n </div>\n </slot>\n </aside>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, onMounted, onUnmounted, nextTick, toRefs, ref, computed, watch, provide } from 'vue';\nimport { ChevronLeft, ChevronRight, PanelLeft, PanelRight } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { breakpointMap } from '../../utils/responsiveObserve';\nimport { isNumeric } from '../../utils/isValid';\nimport { siderEmits, siderProps, type SiderHooks } from './Layout.type';\n\nlet i = 0;\nconst generateId = (prefix: string) => {\n i += 1;\n return `${prefix}-${i}`;\n};\n\nconst getPixer = (val: string | number) => {\n return isNumeric(val) ? `${val}px` : val;\n};\n\nexport default defineComponent({\n name: 'USider',\n components: {\n UIcon,\n PanelLeft,\n PanelRight,\n ChevronLeft,\n ChevronRight\n },\n props: siderProps,\n emits: siderEmits,\n setup(props, { emit }) {\n const { prefixCls, getPrefixCls } = useGlobalConfig('layout-sider');\n const prefix = getPrefixCls('sider');\n const uniqueId = generateId(prefix);\n const siderHook = inject<SiderHooks>('siderHook', {} as SiderHooks);\n\n // #region for state collapse\n\n const stateCollapse = ref();\n watch(\n () => props.collapsed,\n (val) => {\n stateCollapse.value = !!val;\n },\n { immediate: true }\n );\n\n const setCollapsed = (collapsed: boolean, type: string) => {\n if (props.collapsed === undefined) {\n stateCollapse.value = collapsed;\n }\n emit('update:collapsed', collapsed);\n emit('collapse', collapsed, type);\n };\n // #endregion\n\n // #region lifecircle\n const isBreakpoint = ref(false);\n let mql: MediaQueryList;\n const responsiveHandler = ({ matches }: { matches: boolean }) => {\n isBreakpoint.value = matches;\n if (matches !== stateCollapse.value) {\n setCollapsed(matches, 'responsive');\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n if (typeof window !== 'undefined') {\n if (!!matchMedia && props.breakpoint) {\n mql = matchMedia(breakpointMap[props.breakpoint]);\n }\n try {\n mql?.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.addListener(responsiveHandler);\n }\n if (mql) {\n responsiveHandler(mql);\n }\n }\n\n if (siderHook.attachSider) {\n siderHook.attachSider(uniqueId);\n }\n });\n });\n onUnmounted(() => {\n nextTick(() => {\n try {\n mql?.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql?.removeListener(responsiveHandler);\n }\n\n if (siderHook.removeSider) {\n siderHook.removeSider(uniqueId);\n }\n });\n });\n // #endregion\n\n // #region computed\n\n const siderWidth = computed(() => {\n let ret = getPixer(props.width);\n if (stateCollapse.value) {\n ret = getPixer(props.collapsedWidth);\n }\n return ret;\n });\n\n const isZeroCollapse = computed(() => {\n return parseFloat(String(props.collapsedWidth)) === 0 || props.zeroTrigger;\n });\n\n const showZeroTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && isZeroCollapse.value;\n });\n\n const showBottomTrigger = computed(() => {\n return (props.collapsible || isBreakpoint.value) && !props.hideTrigger && !isZeroCollapse.value;\n });\n\n const triggerType = computed(() => {\n if (props.triggerIcon) {\n return props.triggerIcon;\n }\n\n return props.isRight ? PanelLeft : PanelRight;\n });\n // #endregion\n\n // #region event\n const handleToggle = () => {\n const collapsed = !stateCollapse.value;\n setCollapsed(collapsed, 'triggerClick');\n };\n // #endregion\n const { collapsedWidth } = toRefs(props);\n provide('layoutSiderContext', {\n collapsed: stateCollapse,\n collapsedWidth\n });\n\n return {\n prefixCls,\n stateCollapse,\n siderWidth,\n isZeroCollapse,\n showZeroTrigger,\n showBottomTrigger,\n triggerType,\n handleToggle\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeStyle","_normalizeClass","_createVNode","_createBlock","_createElementVNode","_renderSlot","_resolveDynamicComponent"],"mappings":"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"}
@@ -7,7 +7,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7
7
  type: BooleanConstructor;
8
8
  default: undefined;
9
9
  };
10
- reverseArrow: {
10
+ isRight: {
11
11
  type: BooleanConstructor;
12
12
  default: boolean;
13
13
  };
@@ -25,7 +25,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
25
25
  type: (StringConstructor | NumberConstructor)[];
26
26
  default: number;
27
27
  };
28
- collapseWidth: {
28
+ collapsedWidth: {
29
29
  type: (StringConstructor | NumberConstructor)[];
30
30
  default: number;
31
31
  };
@@ -33,11 +33,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
33
33
  type: import("vue").PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
34
34
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
35
35
  };
36
- theme: {
37
- type: import("vue").PropType<"light" | "dark">;
38
- default: string;
39
- validator: (val: "light" | "dark") => boolean;
40
- };
41
36
  background: {
42
37
  type: StringConstructor;
43
38
  };
@@ -63,7 +58,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
63
58
  type: BooleanConstructor;
64
59
  default: undefined;
65
60
  };
66
- reverseArrow: {
61
+ isRight: {
67
62
  type: BooleanConstructor;
68
63
  default: boolean;
69
64
  };
@@ -81,7 +76,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
81
76
  type: (StringConstructor | NumberConstructor)[];
82
77
  default: number;
83
78
  };
84
- collapseWidth: {
79
+ collapsedWidth: {
85
80
  type: (StringConstructor | NumberConstructor)[];
86
81
  default: number;
87
82
  };
@@ -89,11 +84,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
89
84
  type: import("vue").PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
90
85
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
91
86
  };
92
- theme: {
93
- type: import("vue").PropType<"light" | "dark">;
94
- default: string;
95
- validator: (val: "light" | "dark") => boolean;
96
- };
97
87
  background: {
98
88
  type: StringConstructor;
99
89
  };
@@ -105,11 +95,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
105
95
  width: string | number;
106
96
  collapsible: boolean;
107
97
  collapsed: boolean;
108
- reverseArrow: boolean;
98
+ isRight: boolean;
109
99
  hideTrigger: boolean;
110
100
  zeroTrigger: boolean;
111
- collapseWidth: string | number;
112
- theme: "light" | "dark";
101
+ collapsedWidth: string | number;
113
102
  }, {}, {
114
103
  UIcon: {
115
104
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
@@ -243,5 +232,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
243
232
  spin: boolean;
244
233
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin<any[]> & Record<string, any>;
245
234
  PanelLeft: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
235
+ PanelRight: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
236
+ ChevronLeft: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
237
+ ChevronRight: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
246
238
  }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
247
239
  export default _default;
@@ -56,7 +56,7 @@ export declare const ULayout: {
56
56
  type: BooleanConstructor;
57
57
  default: undefined;
58
58
  };
59
- reverseArrow: {
59
+ isRight: {
60
60
  type: BooleanConstructor;
61
61
  default: boolean;
62
62
  };
@@ -74,7 +74,7 @@ export declare const ULayout: {
74
74
  type: (StringConstructor | NumberConstructor)[];
75
75
  default: number;
76
76
  };
77
- collapseWidth: {
77
+ collapsedWidth: {
78
78
  type: (StringConstructor | NumberConstructor)[];
79
79
  default: number;
80
80
  };
@@ -82,11 +82,6 @@ export declare const ULayout: {
82
82
  type: import("vue").PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
83
83
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
84
84
  };
85
- theme: {
86
- type: import("vue").PropType<"light" | "dark">;
87
- default: string;
88
- validator: (val: "light" | "dark") => boolean;
89
- };
90
85
  background: {
91
86
  type: StringConstructor;
92
87
  };
@@ -112,7 +107,7 @@ export declare const ULayout: {
112
107
  type: BooleanConstructor;
113
108
  default: undefined;
114
109
  };
115
- reverseArrow: {
110
+ isRight: {
116
111
  type: BooleanConstructor;
117
112
  default: boolean;
118
113
  };
@@ -130,7 +125,7 @@ export declare const ULayout: {
130
125
  type: (StringConstructor | NumberConstructor)[];
131
126
  default: number;
132
127
  };
133
- collapseWidth: {
128
+ collapsedWidth: {
134
129
  type: (StringConstructor | NumberConstructor)[];
135
130
  default: number;
136
131
  };
@@ -138,11 +133,6 @@ export declare const ULayout: {
138
133
  type: import("vue").PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
139
134
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
140
135
  };
141
- theme: {
142
- type: import("vue").PropType<"light" | "dark">;
143
- default: string;
144
- validator: (val: "light" | "dark") => boolean;
145
- };
146
136
  background: {
147
137
  type: StringConstructor;
148
138
  };
@@ -154,11 +144,10 @@ export declare const ULayout: {
154
144
  width: string | number;
155
145
  collapsible: boolean;
156
146
  collapsed: boolean;
157
- reverseArrow: boolean;
147
+ isRight: boolean;
158
148
  hideTrigger: boolean;
159
149
  zeroTrigger: boolean;
160
- collapseWidth: string | number;
161
- theme: "light" | "dark";
150
+ collapsedWidth: string | number;
162
151
  }, {}, {
163
152
  UIcon: {
164
153
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
@@ -292,6 +281,9 @@ export declare const ULayout: {
292
281
  spin: boolean;
293
282
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin<any[]> & Record<string, any>;
294
283
  PanelLeft: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
284
+ PanelRight: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
285
+ ChevronLeft: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
286
+ ChevronRight: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
295
287
  }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
296
288
  Content: import("vue").DefineComponent<{}, {
297
289
  prefixCls: import("vue").ComputedRef<string>;
@@ -5,11 +5,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
5
5
  default: string;
6
6
  validator: (val: "inline" | "horizontal" | "vertical" | "vertical-left" | "vertical-right") => boolean;
7
7
  };
8
- theme: {
9
- type: import("vue").PropType<"dark" | "light">;
10
- default: string;
11
- validator: (val: "dark" | "light") => boolean;
12
- };
13
8
  selectedKeys: {
14
9
  type: import("vue").PropType<(string | number)[]>;
15
10
  validator: (val: any[]) => boolean;
@@ -63,11 +58,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
63
58
  default: string;
64
59
  validator: (val: "inline" | "horizontal" | "vertical" | "vertical-left" | "vertical-right") => boolean;
65
60
  };
66
- theme: {
67
- type: import("vue").PropType<"dark" | "light">;
68
- default: string;
69
- validator: (val: "dark" | "light") => boolean;
70
- };
71
61
  selectedKeys: {
72
62
  type: import("vue").PropType<(string | number)[]>;
73
63
  validator: (val: any[]) => boolean;
@@ -112,7 +102,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
112
102
  }>, {
113
103
  multiple: boolean;
114
104
  mode: "inline" | "horizontal" | "vertical" | "vertical-left" | "vertical-right";
115
- theme: "dark" | "light";
116
105
  openKeys: (string | number)[];
117
106
  subMenuOpenDelay: number;
118
107
  subMenuCloseDelay: number;
@@ -27,7 +27,6 @@ var Menu = defineComponent({
27
27
  } = useGlobalConfig(inDrop ? "dropdown-menu" : "menu");
28
28
  const {
29
29
  mode,
30
- theme,
31
30
  subMenuOpenDelay,
32
31
  subMenuCloseDelay,
33
32
  inlineCollapsed
@@ -160,7 +159,6 @@ var Menu = defineComponent({
160
159
  provide("menuStore", {
161
160
  mode: computedMode,
162
161
  originalMode: mode,
163
- theme,
164
162
  selectedKeys,
165
163
  openKeys,
166
164
  subMenuOpenDelay,
@@ -191,7 +189,7 @@ var Menu = defineComponent({
191
189
  return createVNode("ul", {
192
190
  "ref": "rootMenu",
193
191
  "role": this.role || "menu",
194
- "class": [`${this.computedPrefixCls}`, `${this.computedPrefixCls}-${this.computedMode}`, `${this.computedPrefixCls}-root`, `${this.computedPrefixCls}-${this.theme}`, {
192
+ "class": [`${this.computedPrefixCls}`, `${this.computedPrefixCls}-${this.computedMode}`, `${this.computedPrefixCls}-root`, {
195
193
  [`${this.computedPrefixCls}-inline-collapsed`]: this.inlineCollapsed || !!this.layoutSiderCollapsed
196
194
  }]
197
195
  }, [this.renderChild()]);
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.mjs","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import { defineComponent, provide, inject, ref, toRefs, watch, computed } from 'vue';\nimport warn from '../../utils/warn';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport Render from '../base/Render';\nimport useWrapDom from './hooks/useWrapDom';\nimport type { DropdownContext } from '../Dropdown/Dropdown.type';\nimport type { LayoutSiderContext } from '../Layout/Layout.type';\nimport { menuProps, menuEmits, type MenuItemClickEvent, type MenuClickEvent, type MenuOpenEvent } from './Menu.type';\n\nexport default defineComponent({\n name: 'UMenu',\n components: { Render },\n props: menuProps,\n emits: menuEmits,\n setup(props, { emit, slots }) {\n const dropdownContext = inject<DropdownContext | undefined>('dropdownContext', undefined);\n const layoutSiderContext = inject<LayoutSiderContext>('layoutSiderContext', {} as LayoutSiderContext);\n const inDrop = dropdownContext !== undefined;\n const { collapsed: layoutSiderCollapsed } = layoutSiderContext;\n const { prefixCls: statePrefixCls } = useGlobalConfig(inDrop ? 'dropdown-menu' : 'menu');\n const { mode, theme, subMenuOpenDelay, subMenuCloseDelay, inlineCollapsed } = toRefs(props);\n\n const computedPrefixCls = computed(() => props.prefixCls || statePrefixCls.value);\n if (props.mode !== 'inline' && props.inlineCollapsed !== undefined) {\n warn('inlineCollapsed only use in inline mode!');\n }\n const selectedKeys = ref(props.selectedKeys || []);\n const openKeys = ref(!props.inlineCollapsed && props.openKeys ? props.openKeys : []);\n const inlineOpenKeys = ref(props.inlineCollapsed ? props.openKeys : []);\n\n const rootMenu = ref<any | null>(null);\n let keypath: (string | number)[] = [];\n\n // const computedMode = computed(() => {\n // if (props.mode === 'inline') {\n // return props.inlineCollapsed || layoutSiderCollapsed?.value ? 'vertical' : props.mode;\n // }\n // return props.mode;\n // });\n const computedMode = ref(props.mode);\n const setInlineMode = () => {\n if (props.mode === 'inline') {\n computedMode.value = props.inlineCollapsed || layoutSiderCollapsed?.value ? 'vertical' : props.mode;\n }\n };\n setInlineMode();\n const collapsed = ref(false);\n // const handleTransitionEnd = (e: any) => {\n // if (e.target !== rootMenu.value || e.propertyName !== 'width') {\n // return;\n // }\n // if (props.mode === 'inline') {\n // if (props.inlineCollapsed || layoutSiderCollapsed?.value) {\n // computedMode.value = 'vertical';\n // inlineOpenKeys.value = openKeys.value;\n // openKeys.value = [];\n // collapsed.value = true;\n // } else {\n // computedMode.value = 'inline';\n // openKeys.value = inlineOpenKeys.value;\n // inlineOpenKeys.value = [];\n // collapsed.value = false;\n // }\n // }\n // };\n\n // #region methods\n const collapsedChange = (val: boolean) => {\n setTimeout(() => {\n setInlineMode();\n }, 300);\n\n if (val) {\n inlineOpenKeys.value = openKeys.value;\n openKeys.value = [];\n collapsed.value = true;\n } else {\n openKeys.value = inlineOpenKeys.value;\n inlineOpenKeys.value = [];\n collapsed.value = false;\n }\n };\n\n const updateKeyPath = (key: string | number, type: string) => {\n if (type === 'item') {\n keypath = [key];\n } else if (type === 'sub') {\n keypath.push(key);\n }\n };\n\n const fireMenuClick = (event: MenuItemClickEvent) => {\n const info: MenuClickEvent = {\n ...event,\n keypath\n };\n emit('click', info);\n if (dropdownContext && dropdownContext.fireItemClick && info.key) {\n dropdownContext.fireItemClick(info);\n }\n };\n\n const selectable = computed(() => {\n return !inDrop || !!props.selectable;\n });\n\n const fireMenuDeselect = (event: MenuItemClickEvent) => {\n if (selectable.value && props.multiple) {\n const _selectedKeys = selectedKeys.value.filter((x) => x !== event.key);\n\n emit('deselect', {\n key: event.key,\n item: event.item,\n selectedKeys: _selectedKeys\n });\n if (props.selectedKeys === undefined) {\n selectedKeys.value = _selectedKeys;\n }\n emit('update:selectedKeys', _selectedKeys);\n }\n };\n\n const fireMenuSelect = (event: MenuItemClickEvent) => {\n if (selectable.value) {\n let _selectedKeys = [] as (string | number)[];\n if (props.multiple) {\n _selectedKeys = [...selectedKeys.value, event.key];\n } else {\n _selectedKeys = [event.key];\n }\n emit('select', {\n key: event.key,\n item: event.item,\n selectedKeys: _selectedKeys\n });\n if (props.selectedKeys === undefined) {\n selectedKeys.value = _selectedKeys;\n }\n\n emit('update:selectedKeys', _selectedKeys);\n }\n };\n\n const fireMenuOpenChange = (event: MenuOpenEvent) => {\n const { open, key } = event;\n let _openKeys = openKeys.value;\n if (open) {\n _openKeys = [..._openKeys, key];\n } else {\n _openKeys = _openKeys.filter((x) => x !== key);\n }\n emit('open-change', _openKeys, event);\n openKeys.value = _openKeys;\n emit('update:openKeys', _openKeys);\n };\n // #endregion\n\n watch(\n () => props.selectedKeys,\n (val) => {\n selectedKeys.value = val || [];\n }\n );\n\n watch(\n () => props.openKeys,\n (val) => {\n openKeys.value = val;\n }\n );\n watch(\n () => props.inlineCollapsed,\n (val) => {\n if (val !== undefined) {\n collapsedChange(val);\n }\n }\n );\n\n if (layoutSiderContext && layoutSiderCollapsed) {\n watch(layoutSiderCollapsed, (val) => {\n collapsedChange(val);\n });\n }\n\n // #region provides\n // just children to use it\n provide('parentMenu', {\n isRootMenu: true,\n getPopupContainer: () => {\n if (dropdownContext) {\n return rootMenu.value?.parentNode;\n }\n return document.body;\n }\n });\n // rootMenu's props supply to descendants use\n provide('menuStore', {\n mode: computedMode,\n originalMode: mode,\n theme,\n selectedKeys,\n openKeys,\n subMenuOpenDelay,\n subMenuCloseDelay,\n rootPrefixCls: computedPrefixCls,\n updateKeyPath,\n // inlineIndent,\n inlineCollapsed,\n collapsed\n });\n // descendants trigger rootMenu's events\n provide('menuEvent', {\n fireMenuClick,\n fireMenuDeselect,\n fireMenuSelect,\n fireMenuOpenChange\n });\n // #endregion\n\n const { renderChild } = useWrapDom(props.mode, rootMenu, slots);\n\n return {\n rootMenu,\n computedPrefixCls,\n computedMode,\n layoutSiderCollapsed,\n renderChild\n };\n },\n render() {\n return (\n <ul\n ref=\"rootMenu\"\n role={this.role || 'menu'}\n class={[\n `${this.computedPrefixCls}`,\n `${this.computedPrefixCls}-${this.computedMode}`,\n `${this.computedPrefixCls}-root`,\n `${this.computedPrefixCls}-${this.theme}`,\n {\n [`${this.computedPrefixCls}-inline-collapsed`]: this.inlineCollapsed || !!this.layoutSiderCollapsed\n }\n ]}\n >\n {this.renderChild()}\n </ul>\n );\n }\n});\n"],"names":["defineComponent","name","components","Render","props","menuProps","emits","menuEmits","setup","emit","slots","dropdownContext","inject","undefined","layoutSiderContext","inDrop","collapsed","layoutSiderCollapsed","prefixCls","statePrefixCls","useGlobalConfig","mode","theme","subMenuOpenDelay","subMenuCloseDelay","inlineCollapsed","toRefs","computedPrefixCls","computed","value","warn","selectedKeys","ref","openKeys","inlineOpenKeys","rootMenu","keypath","computedMode","setInlineMode","collapsedChange","val","setTimeout","updateKeyPath","key","type","push","fireMenuClick","event","info","fireItemClick","selectable","fireMenuDeselect","multiple","_selectedKeys","filter","x","item","fireMenuSelect","fireMenuOpenChange","open","_openKeys","watch","provide","isRootMenu","getPopupContainer","parentNode","document","body","originalMode","rootPrefixCls","renderChild","useWrapDom","render","_createVNode","role"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.mjs","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import { defineComponent, provide, inject, ref, toRefs, watch, computed } from 'vue';\nimport warn from '../../utils/warn';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport Render from '../base/Render';\nimport useWrapDom from './hooks/useWrapDom';\nimport type { DropdownContext } from '../Dropdown/Dropdown.type';\nimport type { LayoutSiderContext } from '../Layout/Layout.type';\nimport { menuProps, menuEmits, type MenuItemClickEvent, type MenuClickEvent, type MenuOpenEvent } from './Menu.type';\n\nexport default defineComponent({\n name: 'UMenu',\n components: { Render },\n props: menuProps,\n emits: menuEmits,\n setup(props, { emit, slots }) {\n const dropdownContext = inject<DropdownContext | undefined>('dropdownContext', undefined);\n const layoutSiderContext = inject<LayoutSiderContext>('layoutSiderContext', {} as LayoutSiderContext);\n const inDrop = dropdownContext !== undefined;\n const { collapsed: layoutSiderCollapsed } = layoutSiderContext;\n const { prefixCls: statePrefixCls } = useGlobalConfig(inDrop ? 'dropdown-menu' : 'menu');\n const { mode, subMenuOpenDelay, subMenuCloseDelay, inlineCollapsed } = toRefs(props);\n\n const computedPrefixCls = computed(() => props.prefixCls || statePrefixCls.value);\n if (props.mode !== 'inline' && props.inlineCollapsed !== undefined) {\n warn('inlineCollapsed only use in inline mode!');\n }\n const selectedKeys = ref(props.selectedKeys || []);\n const openKeys = ref(!props.inlineCollapsed && props.openKeys ? props.openKeys : []);\n const inlineOpenKeys = ref(props.inlineCollapsed ? props.openKeys : []);\n\n const rootMenu = ref<any | null>(null);\n let keypath: (string | number)[] = [];\n\n // const computedMode = computed(() => {\n // if (props.mode === 'inline') {\n // return props.inlineCollapsed || layoutSiderCollapsed?.value ? 'vertical' : props.mode;\n // }\n // return props.mode;\n // });\n const computedMode = ref(props.mode);\n const setInlineMode = () => {\n if (props.mode === 'inline') {\n computedMode.value = props.inlineCollapsed || layoutSiderCollapsed?.value ? 'vertical' : props.mode;\n }\n };\n setInlineMode();\n const collapsed = ref(false);\n // const handleTransitionEnd = (e: any) => {\n // if (e.target !== rootMenu.value || e.propertyName !== 'width') {\n // return;\n // }\n // if (props.mode === 'inline') {\n // if (props.inlineCollapsed || layoutSiderCollapsed?.value) {\n // computedMode.value = 'vertical';\n // inlineOpenKeys.value = openKeys.value;\n // openKeys.value = [];\n // collapsed.value = true;\n // } else {\n // computedMode.value = 'inline';\n // openKeys.value = inlineOpenKeys.value;\n // inlineOpenKeys.value = [];\n // collapsed.value = false;\n // }\n // }\n // };\n\n // #region methods\n const collapsedChange = (val: boolean) => {\n setTimeout(() => {\n setInlineMode();\n }, 300);\n\n if (val) {\n inlineOpenKeys.value = openKeys.value;\n openKeys.value = [];\n collapsed.value = true;\n } else {\n openKeys.value = inlineOpenKeys.value;\n inlineOpenKeys.value = [];\n collapsed.value = false;\n }\n };\n\n const updateKeyPath = (key: string | number, type: string) => {\n if (type === 'item') {\n keypath = [key];\n } else if (type === 'sub') {\n keypath.push(key);\n }\n };\n\n const fireMenuClick = (event: MenuItemClickEvent) => {\n const info: MenuClickEvent = {\n ...event,\n keypath\n };\n emit('click', info);\n if (dropdownContext && dropdownContext.fireItemClick && info.key) {\n dropdownContext.fireItemClick(info);\n }\n };\n\n const selectable = computed(() => {\n return !inDrop || !!props.selectable;\n });\n\n const fireMenuDeselect = (event: MenuItemClickEvent) => {\n if (selectable.value && props.multiple) {\n const _selectedKeys = selectedKeys.value.filter((x) => x !== event.key);\n\n emit('deselect', {\n key: event.key,\n item: event.item,\n selectedKeys: _selectedKeys\n });\n if (props.selectedKeys === undefined) {\n selectedKeys.value = _selectedKeys;\n }\n emit('update:selectedKeys', _selectedKeys);\n }\n };\n\n const fireMenuSelect = (event: MenuItemClickEvent) => {\n if (selectable.value) {\n let _selectedKeys = [] as (string | number)[];\n if (props.multiple) {\n _selectedKeys = [...selectedKeys.value, event.key];\n } else {\n _selectedKeys = [event.key];\n }\n emit('select', {\n key: event.key,\n item: event.item,\n selectedKeys: _selectedKeys\n });\n if (props.selectedKeys === undefined) {\n selectedKeys.value = _selectedKeys;\n }\n\n emit('update:selectedKeys', _selectedKeys);\n }\n };\n\n const fireMenuOpenChange = (event: MenuOpenEvent) => {\n const { open, key } = event;\n let _openKeys = openKeys.value;\n if (open) {\n _openKeys = [..._openKeys, key];\n } else {\n _openKeys = _openKeys.filter((x) => x !== key);\n }\n emit('open-change', _openKeys, event);\n openKeys.value = _openKeys;\n emit('update:openKeys', _openKeys);\n };\n // #endregion\n\n watch(\n () => props.selectedKeys,\n (val) => {\n selectedKeys.value = val || [];\n }\n );\n\n watch(\n () => props.openKeys,\n (val) => {\n openKeys.value = val;\n }\n );\n watch(\n () => props.inlineCollapsed,\n (val) => {\n if (val !== undefined) {\n collapsedChange(val);\n }\n }\n );\n\n if (layoutSiderContext && layoutSiderCollapsed) {\n watch(layoutSiderCollapsed, (val) => {\n collapsedChange(val);\n });\n }\n\n // #region provides\n // just children to use it\n provide('parentMenu', {\n isRootMenu: true,\n getPopupContainer: () => {\n if (dropdownContext) {\n return rootMenu.value?.parentNode;\n }\n return document.body;\n }\n });\n // rootMenu's props supply to descendants use\n provide('menuStore', {\n mode: computedMode,\n originalMode: mode,\n selectedKeys,\n openKeys,\n subMenuOpenDelay,\n subMenuCloseDelay,\n rootPrefixCls: computedPrefixCls,\n updateKeyPath,\n // inlineIndent,\n inlineCollapsed,\n collapsed\n });\n // descendants trigger rootMenu's events\n provide('menuEvent', {\n fireMenuClick,\n fireMenuDeselect,\n fireMenuSelect,\n fireMenuOpenChange\n });\n // #endregion\n\n const { renderChild } = useWrapDom(props.mode, rootMenu, slots);\n\n return {\n rootMenu,\n computedPrefixCls,\n computedMode,\n layoutSiderCollapsed,\n renderChild\n };\n },\n render() {\n return (\n <ul\n ref=\"rootMenu\"\n role={this.role || 'menu'}\n class={[\n `${this.computedPrefixCls}`,\n `${this.computedPrefixCls}-${this.computedMode}`,\n `${this.computedPrefixCls}-root`,\n {\n [`${this.computedPrefixCls}-inline-collapsed`]: this.inlineCollapsed || !!this.layoutSiderCollapsed\n }\n ]}\n >\n {this.renderChild()}\n </ul>\n );\n }\n});\n"],"names":["defineComponent","name","components","Render","props","menuProps","emits","menuEmits","setup","emit","slots","dropdownContext","inject","undefined","layoutSiderContext","inDrop","collapsed","layoutSiderCollapsed","prefixCls","statePrefixCls","useGlobalConfig","mode","subMenuOpenDelay","subMenuCloseDelay","inlineCollapsed","toRefs","computedPrefixCls","computed","value","warn","selectedKeys","ref","openKeys","inlineOpenKeys","rootMenu","keypath","computedMode","setInlineMode","collapsedChange","val","setTimeout","updateKeyPath","key","type","push","fireMenuClick","event","info","fireItemClick","selectable","fireMenuDeselect","multiple","_selectedKeys","filter","x","item","fireMenuSelect","fireMenuOpenChange","open","_openKeys","watch","provide","isRootMenu","getPopupContainer","parentNode","document","body","originalMode","rootPrefixCls","renderChild","useWrapDom","render","_createVNode","role"],"mappings":"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"}
@@ -15,11 +15,6 @@ export declare const menuProps: {
15
15
  default: string;
16
16
  validator: (val: "inline" | "vertical" | "horizontal" | "vertical-left" | "vertical-right") => boolean;
17
17
  };
18
- theme: {
19
- type: PropType<"light" | "dark">;
20
- default: string;
21
- validator: (val: "light" | "dark") => boolean;
22
- };
23
18
  selectedKeys: {
24
19
  type: PropType<(string | number)[]>;
25
20
  validator: (val: any[]) => boolean;
@@ -67,7 +62,6 @@ export interface ParentMenu {
67
62
  export interface MenuStore {
68
63
  mode: ComputedRef<MenuMode>;
69
64
  originalMode: Ref<MenuMode>;
70
- theme: Ref<MenuTheme>;
71
65
  selectedKeys: Ref<(string | number)[]>;
72
66
  openKeys: Ref<(string | number)[]>;
73
67
  subMenuOpenDelay: Ref<number>;
@@ -10,11 +10,6 @@ const menuProps = {
10
10
  default: "vertical",
11
11
  validator: oneOf(menuMode)
12
12
  },
13
- theme: {
14
- type: String,
15
- default: "light",
16
- validator: oneOf(menuTheme)
17
- },
18
13
  selectedKeys: {
19
14
  type: Array,
20
15
  validator: isArrayOf([Number, String])
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.type.mjs","sources":["../../../../src/components/Menu/Menu.type.ts"],"sourcesContent":["import type { Ref, ComputedRef, PropType, ExtractPropTypes } from 'vue';\nimport type { GetPopupContainer, PopupTrigger } from '@uxd-ui/components/Popup/Popup.type';\nimport { isArrayOf, oneOf } from '../../utils/propsValidators';\n\nimport type Menu from './Menu';\n\nimport type MenuItem from './MenuItem.vue';\n\nimport type SubMenu from './SubMenu.vue';\n\nimport type MenuItemGroup from './MenuItemGroup.vue';\n\nimport type MenuDivider from './MenuDivider.vue';\nimport type { ColorType } from '../../utils';\nimport { colorType } from '../../utils';\n\nexport const menuMode = ['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline'] as const;\nexport type MenuMode = (typeof menuMode)[number];\nexport const menuTheme = ['light', 'dark'] as const;\nexport type MenuTheme = (typeof menuTheme)[number];\n\nexport const menuProps = {\n mode: {\n type: String as PropType<MenuMode>,\n default: 'vertical',\n validator: oneOf(menuMode)\n },\n theme: {\n type: String as PropType<MenuTheme>,\n default: 'light',\n validator: oneOf(menuTheme)\n },\n selectedKeys: {\n type: Array as PropType<(string | number)[]>,\n validator: isArrayOf([Number, String])\n },\n multiple: {\n type: Boolean,\n default: false\n },\n openKeys: {\n type: Array as PropType<(string | number)[]>,\n default: () => [] as string[]\n },\n subMenuOpenDelay: {\n type: Number,\n default: 0.1\n },\n subMenuCloseDelay: {\n type: Number,\n default: 0.1\n },\n inlineCollapsed: {\n type: Boolean,\n default: undefined as undefined\n },\n // inlineIndent: {\n // type: Number,\n // default: 24\n // },\n prefixCls: {\n type: String\n },\n role: {\n type: String\n },\n selectable: {\n type: Boolean,\n default: undefined as undefined\n }\n};\nexport type MenuProps = ExtractPropTypes<typeof menuProps>;\n\nexport interface ParentMenu {\n isRootMenu: boolean;\n getPopupContainer: GetPopupContainer;\n level?: number;\n setSubMenuSelected?: (key: string | number, value: boolean) => void;\n fireSubmenuClick?: () => void;\n subMode?: ComputedRef<MenuMode>;\n}\n\nexport interface MenuStore {\n mode: ComputedRef<MenuMode>;\n originalMode: Ref<MenuMode>;\n theme: Ref<MenuTheme>;\n selectedKeys: Ref<(string | number)[]>;\n openKeys: Ref<(string | number)[]>;\n subMenuOpenDelay: Ref<number>;\n subMenuCloseDelay: Ref<number>;\n rootPrefixCls: ComputedRef<string>;\n updateKeyPath: (key: string | number, type: string) => void;\n inlineIndent: Ref<number>;\n inlineCollapsed: Ref<boolean>;\n collapsed: Ref<boolean>;\n}\n\nexport interface MenuItemClickEvent {\n key: string | number;\n item: any;\n}\n\nexport type MenuClickEvent = MenuItemClickEvent & {\n keypath: (string | number)[];\n};\n\nexport interface MenuOpenEvent {\n key: string | number;\n trigger: PopupTrigger & 'Click';\n item: any;\n open: boolean;\n}\n\nexport interface MenuSelectEvent {\n key: string | number;\n item: any;\n selectedKeys: (string | number)[];\n}\n\nexport interface MenuEvent {\n fireMenuClick: (event: MenuItemClickEvent) => void;\n fireMenuDeselect: (event: MenuItemClickEvent) => void;\n fireMenuSelect: (event: MenuItemClickEvent) => void;\n fireMenuOpenChange: (event: MenuOpenEvent) => void;\n}\n\nexport const menuEmits = {\n click: (e: MenuClickEvent) => e.keypath && e.key !== undefined,\n select: (e: MenuSelectEvent) => (typeof e.key === 'string' || typeof e.key === 'number') && Array.isArray(e.selectedKeys),\n deselect: (e: MenuSelectEvent) => (typeof e.key === 'string' || typeof e.key === 'number') && Array.isArray(e.selectedKeys),\n 'update:selectedKeys': (selectedKeys: (string | number)[]) => Array.isArray(selectedKeys),\n 'open-change': (openKeys: (string | number)[], event: MenuOpenEvent) => Array.isArray(openKeys) && event.trigger && typeof event.open === 'boolean',\n 'update:openKeys': (openKeys: (string | number)[]) => Array.isArray(openKeys)\n};\n\nexport type MenuInstanceType = InstanceType<typeof Menu>;\n\nexport const menuItemProps = {\n name: {\n type: [String, Number]\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n title: {\n type: String\n },\n color: {\n type: String as PropType<ColorType | undefined>,\n default: undefined as undefined | ColorType,\n validator: oneOf(colorType)\n }\n};\n\nexport type MenuItemProps = ExtractPropTypes<typeof menuItemProps>;\n\nexport const menuItemEmits = {\n click: (e: MenuItemClickEvent) => typeof e.key === 'string' || typeof e.key === 'number'\n};\n\nexport type MenuItemEmits = typeof menuItemEmits;\n\nexport type MenuItemInstanceType = InstanceType<typeof MenuItem>;\n\nexport const subMenuProps = {\n name: {\n type: [String, Number]\n },\n title: {\n type: String\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n popupClassName: {\n type: String\n },\n color: {\n type: String as PropType<ColorType | undefined>,\n default: undefined as undefined | ColorType,\n validator: oneOf(colorType)\n }\n};\n\nexport type SubMenuProps = ExtractPropTypes<typeof subMenuProps>;\n\nexport const subMenuEmits = {\n 'title-click': (e: { key: string | number }) => typeof e.key === 'string' || typeof e.key === 'number'\n};\n\nexport type SubMenuEmits = typeof subMenuEmits;\n\nexport type SubMenuInstanceType = InstanceType<typeof SubMenu>;\n\nexport const menuItemGroupProps = {\n title: {\n type: String\n }\n};\n\nexport type MenuItemGroupProps = ExtractPropTypes<typeof menuItemGroupProps>;\n\nexport type MenuItemGroupInstanceType = InstanceType<typeof MenuItemGroup>;\n\nexport type MenuDividerInstanceType = InstanceType<typeof MenuDivider>;\n"],"names":[],"mappings":";;;;MAgBa,WAAW,CAAC,cAAc,YAAY,iBAAiB,kBAAkB,QAAQ;MAEjF,YAAY,CAAC,SAAS,MAAM;MAG5B,YAAY;AAAA,EACvB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,QAAQ;AAAA;AAC3B,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,SAAS;AAAA;AAC5B,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW,UAAU,CAAC,QAAQ,MAAM,CAAC;AAAA;AACvC,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS,MAAM;AAAC;AAClB,EACA,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EAKA,WAAW;AAAA,IACT,MAAM;AAAA;AACR,EACA,MAAM;AAAA,IACJ,MAAM;AAAA;AACR,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAwDa,YAAY;AAAA,EACvB,OAAO,CAAC,MAAsB,EAAE,WAAW,EAAE,QAAQ;AAAA,EACrD,QAAQ,CAAC,OAAwB,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ,aAAa,MAAM,QAAQ,EAAE,YAAY;AAAA,EACxH,UAAU,CAAC,OAAwB,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ,aAAa,MAAM,QAAQ,EAAE,YAAY;AAAA,EAC1H,uBAAuB,CAAC,iBAAsC,MAAM,QAAQ,YAAY;AAAA,EACxF,eAAe,CAAC,UAA+B,UAAyB,MAAM,QAAQ,QAAQ,KAAK,MAAM,WAAW,OAAO,MAAM,SAAS;AAAA,EAC1I,mBAAmB,CAAC,aAAkC,MAAM,QAAQ,QAAQ;AAC9E;MAIa,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,SAAS;AAAA;AAE9B;MAIa,gBAAgB;AAAA,EAC3B,OAAO,CAAC,MAA0B,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ;AAClF;MAMa,eAAe;AAAA,EAC1B,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM;AAAA;AACR,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,SAAS;AAAA;AAE9B;MAIa,eAAe;AAAA,EAC1B,eAAe,CAAC,MAAgC,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ;AAChG;MAMa,qBAAqB;AAAA,EAChC,OAAO;AAAA,IACL,MAAM;AAAA;AAEV;;;;"}
1
+ {"version":3,"file":"Menu.type.mjs","sources":["../../../../src/components/Menu/Menu.type.ts"],"sourcesContent":["import type { Ref, ComputedRef, PropType, ExtractPropTypes } from 'vue';\nimport type { GetPopupContainer, PopupTrigger } from '@uxd-ui/components/Popup/Popup.type';\nimport { isArrayOf, oneOf } from '../../utils/propsValidators';\n\nimport type Menu from './Menu';\n\nimport type MenuItem from './MenuItem.vue';\n\nimport type SubMenu from './SubMenu.vue';\n\nimport type MenuItemGroup from './MenuItemGroup.vue';\n\nimport type MenuDivider from './MenuDivider.vue';\nimport type { ColorType } from '../../utils';\nimport { colorType } from '../../utils';\n\nexport const menuMode = ['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline'] as const;\nexport type MenuMode = (typeof menuMode)[number];\nexport const menuTheme = ['light', 'dark'] as const;\nexport type MenuTheme = (typeof menuTheme)[number];\n\nexport const menuProps = {\n mode: {\n type: String as PropType<MenuMode>,\n default: 'vertical',\n validator: oneOf(menuMode)\n },\n selectedKeys: {\n type: Array as PropType<(string | number)[]>,\n validator: isArrayOf([Number, String])\n },\n multiple: {\n type: Boolean,\n default: false\n },\n openKeys: {\n type: Array as PropType<(string | number)[]>,\n default: () => [] as string[]\n },\n subMenuOpenDelay: {\n type: Number,\n default: 0.1\n },\n subMenuCloseDelay: {\n type: Number,\n default: 0.1\n },\n inlineCollapsed: {\n type: Boolean,\n default: undefined as undefined\n },\n // inlineIndent: {\n // type: Number,\n // default: 24\n // },\n prefixCls: {\n type: String\n },\n role: {\n type: String\n },\n selectable: {\n type: Boolean,\n default: undefined as undefined\n }\n};\nexport type MenuProps = ExtractPropTypes<typeof menuProps>;\n\nexport interface ParentMenu {\n isRootMenu: boolean;\n getPopupContainer: GetPopupContainer;\n level?: number;\n setSubMenuSelected?: (key: string | number, value: boolean) => void;\n fireSubmenuClick?: () => void;\n subMode?: ComputedRef<MenuMode>;\n}\n\nexport interface MenuStore {\n mode: ComputedRef<MenuMode>;\n originalMode: Ref<MenuMode>;\n selectedKeys: Ref<(string | number)[]>;\n openKeys: Ref<(string | number)[]>;\n subMenuOpenDelay: Ref<number>;\n subMenuCloseDelay: Ref<number>;\n rootPrefixCls: ComputedRef<string>;\n updateKeyPath: (key: string | number, type: string) => void;\n inlineIndent: Ref<number>;\n inlineCollapsed: Ref<boolean>;\n collapsed: Ref<boolean>;\n}\n\nexport interface MenuItemClickEvent {\n key: string | number;\n item: any;\n}\n\nexport type MenuClickEvent = MenuItemClickEvent & {\n keypath: (string | number)[];\n};\n\nexport interface MenuOpenEvent {\n key: string | number;\n trigger: PopupTrigger & 'Click';\n item: any;\n open: boolean;\n}\n\nexport interface MenuSelectEvent {\n key: string | number;\n item: any;\n selectedKeys: (string | number)[];\n}\n\nexport interface MenuEvent {\n fireMenuClick: (event: MenuItemClickEvent) => void;\n fireMenuDeselect: (event: MenuItemClickEvent) => void;\n fireMenuSelect: (event: MenuItemClickEvent) => void;\n fireMenuOpenChange: (event: MenuOpenEvent) => void;\n}\n\nexport const menuEmits = {\n click: (e: MenuClickEvent) => e.keypath && e.key !== undefined,\n select: (e: MenuSelectEvent) => (typeof e.key === 'string' || typeof e.key === 'number') && Array.isArray(e.selectedKeys),\n deselect: (e: MenuSelectEvent) => (typeof e.key === 'string' || typeof e.key === 'number') && Array.isArray(e.selectedKeys),\n 'update:selectedKeys': (selectedKeys: (string | number)[]) => Array.isArray(selectedKeys),\n 'open-change': (openKeys: (string | number)[], event: MenuOpenEvent) => Array.isArray(openKeys) && event.trigger && typeof event.open === 'boolean',\n 'update:openKeys': (openKeys: (string | number)[]) => Array.isArray(openKeys)\n};\n\nexport type MenuInstanceType = InstanceType<typeof Menu>;\n\nexport const menuItemProps = {\n name: {\n type: [String, Number]\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n title: {\n type: String\n },\n color: {\n type: String as PropType<ColorType | undefined>,\n default: undefined as undefined | ColorType,\n validator: oneOf(colorType)\n }\n};\n\nexport type MenuItemProps = ExtractPropTypes<typeof menuItemProps>;\n\nexport const menuItemEmits = {\n click: (e: MenuItemClickEvent) => typeof e.key === 'string' || typeof e.key === 'number'\n};\n\nexport type MenuItemEmits = typeof menuItemEmits;\n\nexport type MenuItemInstanceType = InstanceType<typeof MenuItem>;\n\nexport const subMenuProps = {\n name: {\n type: [String, Number]\n },\n title: {\n type: String\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n popupClassName: {\n type: String\n },\n color: {\n type: String as PropType<ColorType | undefined>,\n default: undefined as undefined | ColorType,\n validator: oneOf(colorType)\n }\n};\n\nexport type SubMenuProps = ExtractPropTypes<typeof subMenuProps>;\n\nexport const subMenuEmits = {\n 'title-click': (e: { key: string | number }) => typeof e.key === 'string' || typeof e.key === 'number'\n};\n\nexport type SubMenuEmits = typeof subMenuEmits;\n\nexport type SubMenuInstanceType = InstanceType<typeof SubMenu>;\n\nexport const menuItemGroupProps = {\n title: {\n type: String\n }\n};\n\nexport type MenuItemGroupProps = ExtractPropTypes<typeof menuItemGroupProps>;\n\nexport type MenuItemGroupInstanceType = InstanceType<typeof MenuItemGroup>;\n\nexport type MenuDividerInstanceType = InstanceType<typeof MenuDivider>;\n"],"names":[],"mappings":";;;;MAgBa,WAAW,CAAC,cAAc,YAAY,iBAAiB,kBAAkB,QAAQ;MAEjF,YAAY,CAAC,SAAS,MAAM;MAG5B,YAAY;AAAA,EACvB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,QAAQ;AAAA;AAC3B,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW,UAAU,CAAC,QAAQ,MAAM,CAAC;AAAA;AACvC,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS,MAAM;AAAC;AAClB,EACA,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EAKA,WAAW;AAAA,IACT,MAAM;AAAA;AACR,EACA,MAAM;AAAA,IACJ,MAAM;AAAA;AACR,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAEb;MAuDa,YAAY;AAAA,EACvB,OAAO,CAAC,MAAsB,EAAE,WAAW,EAAE,QAAQ;AAAA,EACrD,QAAQ,CAAC,OAAwB,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ,aAAa,MAAM,QAAQ,EAAE,YAAY;AAAA,EACxH,UAAU,CAAC,OAAwB,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ,aAAa,MAAM,QAAQ,EAAE,YAAY;AAAA,EAC1H,uBAAuB,CAAC,iBAAsC,MAAM,QAAQ,YAAY;AAAA,EACxF,eAAe,CAAC,UAA+B,UAAyB,MAAM,QAAQ,QAAQ,KAAK,MAAM,WAAW,OAAO,MAAM,SAAS;AAAA,EAC1I,mBAAmB,CAAC,aAAkC,MAAM,QAAQ,QAAQ;AAC9E;MAIa,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,SAAS;AAAA;AAE9B;MAIa,gBAAgB;AAAA,EAC3B,OAAO,CAAC,MAA0B,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ;AAClF;MAMa,eAAe;AAAA,EAC1B,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,OAAO;AAAA,IACL,MAAM;AAAA;AACR,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM;AAAA;AACR,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,SAAS;AAAA;AAE9B;MAIa,eAAe;AAAA,EAC1B,eAAe,CAAC,MAAgC,OAAO,EAAE,QAAQ,YAAY,OAAO,EAAE,QAAQ;AAChG;MAMa,qBAAqB;AAAA,EAChC,OAAO;AAAA,IACL,MAAM;AAAA;AAEV;;;;"}
@@ -27,7 +27,6 @@ const _sfc_main = defineComponent({
27
27
  const {
28
28
  openKeys,
29
29
  mode: menuMode,
30
- theme,
31
30
  subMenuOpenDelay,
32
31
  subMenuCloseDelay,
33
32
  rootPrefixCls,
@@ -128,7 +127,6 @@ const _sfc_main = defineComponent({
128
127
  titleStyle,
129
128
  mode,
130
129
  subMode,
131
- theme,
132
130
  isOpen,
133
131
  isSelected,
134
132
  menuId,
@@ -207,7 +205,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
207
205
  key: 1,
208
206
  "aria-owns": _ctx.menuId,
209
207
  "aria-haspopup": "true",
210
- "popup-class": `${_ctx.prefixCls}-popup ${_ctx.rootPrefixCls}-${_ctx.theme} ${_ctx.popupClassName || ""}`,
208
+ "popup-class": `${_ctx.prefixCls}-popup ${_ctx.popupClassName || ""}`,
211
209
  prefix: _ctx.prefixCls,
212
210
  placement: _ctx.popupPlacement,
213
211
  offset: _ctx.popupOffset,
@@ -1 +1 @@
1
- {"version":3,"file":"SubMenu.mjs","sources":["../../../../src/components/Menu/SubMenu.vue"],"sourcesContent":["<template>\n <li\n role=\"menuitem\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${mode}`,\n {\n [`${prefixCls}-open`]: isOpen,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-selected`]: isSelected\n }\n ]\"\n >\n <template v-if=\"mode === 'inline'\">\n <div :class=\"[`${prefixCls}-title`]\" :style=\"titleStyle\" :aria-expanded=\"isOpen\" :aria-owns=\"menuId\" aria-haspopup=\"true\" @click=\"onTitleClick\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n <UIcon :class=\"`${prefixCls}-arrow`\">\n <ChevronDown />\n </UIcon>\n </div>\n <!-- <transition name=\"slide-up\"> -->\n <CollapseTransition appear>\n <ul\n v-show=\"isOpen\"\n :id=\"menuId\"\n class=\"collapse-transition\"\n :class=\"[rootPrefixCls, `${rootPrefixCls}-${mode}`, `${rootPrefixCls}-sub`]\"\n :style=\"subMenuStyle\"\n >\n <slot />\n </ul>\n </CollapseTransition>\n <!-- </transition> -->\n </template>\n <template v-else>\n <Popup\n :aria-owns=\"menuId\"\n aria-haspopup=\"true\"\n :popup-class=\"`${prefixCls}-popup ${rootPrefixCls}-${theme} ${popupClassName || ''}`\"\n :prefix=\"prefixCls\"\n :placement=\"popupPlacement\"\n :offset=\"popupOffset\"\n :trigger=\"disabled ? [] : trigger\"\n :mouse-enter-delay=\"subMenuOpenDelay\"\n :mouse-leave-delay=\"subMenuCloseDelay\"\n :transition-name=\"mode === 'horizontal' ? 'slide-up' : 'zoom-big'\"\n :get-popup-container=\"getPopupContainer\"\n @popup-visible-change=\"onPopupVisibleChange\"\n @click=\"onTitleClick\"\n >\n <div\n :class=\"{\n [`${prefixCls}-title`]: true,\n [`${prefixCls}-title-disabled`]: disabled\n }\"\n :data-color=\"color\"\n :aria-owns=\"menuId\"\n aria-haspopup=\"true\"\n >\n <slot name=\"title\">\n {{ title }}\n </slot>\n <UIcon :class=\"`${prefixCls}-arrow`\">\n <ChevronRight />\n </UIcon>\n </div>\n\n <template #popup>\n <ul :id=\"menuId\" :class=\"[rootPrefixCls, `${rootPrefixCls}-${subMode}`, `${rootPrefixCls}-sub`]\">\n <slot />\n </ul>\n </template>\n </Popup>\n </template>\n </li>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, inject, computed, reactive } from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { ChevronDown, ChevronRight } from 'lucide-vue-next';\nimport warn from '../../utils/warn';\nimport useGetTriggerProps from './hooks/useGetTriggerProps';\nimport { isFunction } from '../../utils/isValid';\nimport CollapseTransition from '../base/CollapseTransition';\nimport { subMenuProps, subMenuEmits, type MenuEvent, type MenuStore, type MenuOpenEvent, type ParentMenu } from './Menu.type';\nimport type { GetPopupContainer } from '../Popup/Popup.type';\n\nlet guid = -1;\n\nexport default defineComponent({\n name: 'USubMenu',\n components: {\n Popup,\n UIcon,\n ChevronDown,\n ChevronRight,\n CollapseTransition\n },\n props: subMenuProps,\n emits: subMenuEmits,\n setup(props, { emit }) {\n const parentMenu = inject<ParentMenu>('parentMenu', {} as ParentMenu);\n const {\n openKeys,\n mode: menuMode,\n theme,\n subMenuOpenDelay,\n subMenuCloseDelay,\n rootPrefixCls,\n updateKeyPath\n // inlineIndent\n } = inject<MenuStore>('menuStore', {} as MenuStore);\n const childrenSelected: Record<string, boolean> = reactive({});\n\n if (menuMode === undefined) {\n warn('cannot find menu parent Component ,OR! the menu mode is error');\n }\n const { fireMenuOpenChange } = inject<MenuEvent>('menuEvent', {} as MenuEvent);\n const prefixCls = computed(() => `${rootPrefixCls.value}-submenu`);\n guid += 1;\n const menuId = computed(() => (props.name ? `${props.name}$Menu` : `${guid}$Menu`));\n\n const level = parentMenu.isRootMenu ? 1 : (parentMenu.level || 0) + 1;\n\n // #region computed\n const mode = computed(() => {\n return (parentMenu.subMode || menuMode).value;\n });\n const subMode = computed(() => {\n if (parentMenu.subMode) {\n // fix useGetTriggerProps\n return parentMenu.subMode.value;\n }\n return mode.value === 'horizontal' ? 'vertical' : mode.value;\n });\n\n const subMenuStyle = computed(() => {\n return `--menu-level: ${level};`;\n });\n\n const eventKey = computed(() => {\n if (props.name) {\n return props.name;\n }\n return menuId.value;\n });\n\n const isOpen = computed(() => {\n return openKeys.value.includes(eventKey.value);\n });\n\n const isClickOpen = computed(() => {\n return mode.value === 'inline';\n });\n const titleStyle = computed(() => {\n if (mode.value === 'inline') {\n return {\n // paddingLeft: `${inlineIndent.value * level}px`\n };\n }\n return {};\n });\n const isSelected = computed(() => {\n const selected = Object.keys(childrenSelected).some((key) => childrenSelected[key]);\n if (parentMenu.setSubMenuSelected) {\n parentMenu.setSubMenuSelected(eventKey.value, selected);\n }\n return selected;\n });\n // #endregion\n const { popupPlacement, popupOffset, trigger } = useGetTriggerProps(mode);\n\n // #region methods\n const setSubMenuSelected = (key: string | number, value: boolean) => {\n childrenSelected[`${key}`] = value;\n };\n\n const getPopupContainer: GetPopupContainer = parentMenu.isRootMenu\n ? () => parentMenu.getPopupContainer()\n : (node?: HTMLElement) => {\n return (node?.parentNode as HTMLElement) || undefined;\n };\n\n const triggerOpenChange = (open: boolean, type: string) => {\n const _event = {\n key: eventKey.value,\n trigger: type,\n item: {},\n open\n } as MenuOpenEvent;\n fireMenuOpenChange && isFunction(fireMenuOpenChange) && fireMenuOpenChange(_event);\n };\n\n const onTitleClick = () => {\n const _event = {\n key: eventKey.value\n };\n emit('title-click', _event);\n if (isClickOpen.value) {\n triggerOpenChange(!isOpen.value, 'click');\n }\n };\n\n const onPopupVisibleChange = (visible: boolean) => {\n triggerOpenChange(visible, trigger.value[0]);\n };\n\n const fireSubmenuClick = () => {\n const key = eventKey.value;\n updateKeyPath && isFunction(updateKeyPath) && updateKeyPath(key, 'sub');\n if (parentMenu.fireSubmenuClick && isFunction(parentMenu.fireSubmenuClick)) {\n parentMenu.fireSubmenuClick();\n }\n };\n // #endregion\n\n provide('parentMenu', {\n isRootMenu: false,\n isSubMenu: true,\n fireSubmenuClick,\n setSubMenuSelected,\n level,\n subMode\n });\n\n return {\n prefixCls,\n rootPrefixCls,\n titleStyle,\n mode,\n subMode,\n theme,\n isOpen,\n isSelected,\n menuId,\n popupPlacement,\n popupOffset,\n trigger,\n subMenuOpenDelay,\n subMenuCloseDelay,\n subMenuStyle,\n getPopupContainer,\n onTitleClick,\n onPopupVisibleChange\n };\n }\n});\n</script>\n"],"names":["useGetTriggerProps","_createElementBlock","_normalizeClass","_Fragment","_createElementVNode","_normalizeStyle","_renderSlot","_createVNode","_createCommentVNode","_createBlock","_withCtx"],"mappings":"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"}
1
+ {"version":3,"file":"SubMenu.mjs","sources":["../../../../src/components/Menu/SubMenu.vue"],"sourcesContent":["<template>\n <li\n role=\"menuitem\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${mode}`,\n {\n [`${prefixCls}-open`]: isOpen,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-selected`]: isSelected\n }\n ]\"\n >\n <template v-if=\"mode === 'inline'\">\n <div :class=\"[`${prefixCls}-title`]\" :style=\"titleStyle\" :aria-expanded=\"isOpen\" :aria-owns=\"menuId\" aria-haspopup=\"true\" @click=\"onTitleClick\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n <UIcon :class=\"`${prefixCls}-arrow`\">\n <ChevronDown />\n </UIcon>\n </div>\n <!-- <transition name=\"slide-up\"> -->\n <CollapseTransition appear>\n <ul\n v-show=\"isOpen\"\n :id=\"menuId\"\n class=\"collapse-transition\"\n :class=\"[rootPrefixCls, `${rootPrefixCls}-${mode}`, `${rootPrefixCls}-sub`]\"\n :style=\"subMenuStyle\"\n >\n <slot />\n </ul>\n </CollapseTransition>\n <!-- </transition> -->\n </template>\n <template v-else>\n <Popup\n :aria-owns=\"menuId\"\n aria-haspopup=\"true\"\n :popup-class=\"`${prefixCls}-popup ${popupClassName || ''}`\"\n :prefix=\"prefixCls\"\n :placement=\"popupPlacement\"\n :offset=\"popupOffset\"\n :trigger=\"disabled ? [] : trigger\"\n :mouse-enter-delay=\"subMenuOpenDelay\"\n :mouse-leave-delay=\"subMenuCloseDelay\"\n :transition-name=\"mode === 'horizontal' ? 'slide-up' : 'zoom-big'\"\n :get-popup-container=\"getPopupContainer\"\n @popup-visible-change=\"onPopupVisibleChange\"\n @click=\"onTitleClick\"\n >\n <div\n :class=\"{\n [`${prefixCls}-title`]: true,\n [`${prefixCls}-title-disabled`]: disabled\n }\"\n :data-color=\"color\"\n :aria-owns=\"menuId\"\n aria-haspopup=\"true\"\n >\n <slot name=\"title\">\n {{ title }}\n </slot>\n <UIcon :class=\"`${prefixCls}-arrow`\">\n <ChevronRight />\n </UIcon>\n </div>\n\n <template #popup>\n <ul :id=\"menuId\" :class=\"[rootPrefixCls, `${rootPrefixCls}-${subMode}`, `${rootPrefixCls}-sub`]\">\n <slot />\n </ul>\n </template>\n </Popup>\n </template>\n </li>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, inject, computed, reactive } from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { ChevronDown, ChevronRight } from 'lucide-vue-next';\nimport warn from '../../utils/warn';\nimport useGetTriggerProps from './hooks/useGetTriggerProps';\nimport { isFunction } from '../../utils/isValid';\nimport CollapseTransition from '../base/CollapseTransition';\nimport { subMenuProps, subMenuEmits, type MenuEvent, type MenuStore, type MenuOpenEvent, type ParentMenu } from './Menu.type';\nimport type { GetPopupContainer } from '../Popup/Popup.type';\n\nlet guid = -1;\n\nexport default defineComponent({\n name: 'USubMenu',\n components: {\n Popup,\n UIcon,\n ChevronDown,\n ChevronRight,\n CollapseTransition\n },\n props: subMenuProps,\n emits: subMenuEmits,\n setup(props, { emit }) {\n const parentMenu = inject<ParentMenu>('parentMenu', {} as ParentMenu);\n const {\n openKeys,\n mode: menuMode,\n subMenuOpenDelay,\n subMenuCloseDelay,\n rootPrefixCls,\n updateKeyPath\n // inlineIndent\n } = inject<MenuStore>('menuStore', {} as MenuStore);\n const childrenSelected: Record<string, boolean> = reactive({});\n\n if (menuMode === undefined) {\n warn('cannot find menu parent Component ,OR! the menu mode is error');\n }\n const { fireMenuOpenChange } = inject<MenuEvent>('menuEvent', {} as MenuEvent);\n const prefixCls = computed(() => `${rootPrefixCls.value}-submenu`);\n guid += 1;\n const menuId = computed(() => (props.name ? `${props.name}$Menu` : `${guid}$Menu`));\n\n const level = parentMenu.isRootMenu ? 1 : (parentMenu.level || 0) + 1;\n\n // #region computed\n const mode = computed(() => {\n return (parentMenu.subMode || menuMode).value;\n });\n const subMode = computed(() => {\n if (parentMenu.subMode) {\n // fix useGetTriggerProps\n return parentMenu.subMode.value;\n }\n return mode.value === 'horizontal' ? 'vertical' : mode.value;\n });\n\n const subMenuStyle = computed(() => {\n return `--menu-level: ${level};`;\n });\n\n const eventKey = computed(() => {\n if (props.name) {\n return props.name;\n }\n return menuId.value;\n });\n\n const isOpen = computed(() => {\n return openKeys.value.includes(eventKey.value);\n });\n\n const isClickOpen = computed(() => {\n return mode.value === 'inline';\n });\n const titleStyle = computed(() => {\n if (mode.value === 'inline') {\n return {\n // paddingLeft: `${inlineIndent.value * level}px`\n };\n }\n return {};\n });\n const isSelected = computed(() => {\n const selected = Object.keys(childrenSelected).some((key) => childrenSelected[key]);\n if (parentMenu.setSubMenuSelected) {\n parentMenu.setSubMenuSelected(eventKey.value, selected);\n }\n return selected;\n });\n // #endregion\n const { popupPlacement, popupOffset, trigger } = useGetTriggerProps(mode);\n\n // #region methods\n const setSubMenuSelected = (key: string | number, value: boolean) => {\n childrenSelected[`${key}`] = value;\n };\n\n const getPopupContainer: GetPopupContainer = parentMenu.isRootMenu\n ? () => parentMenu.getPopupContainer()\n : (node?: HTMLElement) => {\n return (node?.parentNode as HTMLElement) || undefined;\n };\n\n const triggerOpenChange = (open: boolean, type: string) => {\n const _event = {\n key: eventKey.value,\n trigger: type,\n item: {},\n open\n } as MenuOpenEvent;\n fireMenuOpenChange && isFunction(fireMenuOpenChange) && fireMenuOpenChange(_event);\n };\n\n const onTitleClick = () => {\n const _event = {\n key: eventKey.value\n };\n emit('title-click', _event);\n if (isClickOpen.value) {\n triggerOpenChange(!isOpen.value, 'click');\n }\n };\n\n const onPopupVisibleChange = (visible: boolean) => {\n triggerOpenChange(visible, trigger.value[0]);\n };\n\n const fireSubmenuClick = () => {\n const key = eventKey.value;\n updateKeyPath && isFunction(updateKeyPath) && updateKeyPath(key, 'sub');\n if (parentMenu.fireSubmenuClick && isFunction(parentMenu.fireSubmenuClick)) {\n parentMenu.fireSubmenuClick();\n }\n };\n // #endregion\n\n provide('parentMenu', {\n isRootMenu: false,\n isSubMenu: true,\n fireSubmenuClick,\n setSubMenuSelected,\n level,\n subMode\n });\n\n return {\n prefixCls,\n rootPrefixCls,\n titleStyle,\n mode,\n subMode,\n isOpen,\n isSelected,\n menuId,\n popupPlacement,\n popupOffset,\n trigger,\n subMenuOpenDelay,\n subMenuCloseDelay,\n subMenuStyle,\n getPopupContainer,\n onTitleClick,\n onPopupVisibleChange\n };\n }\n});\n</script>\n"],"names":["useGetTriggerProps","_createElementBlock","_normalizeClass","_Fragment","_createElementVNode","_normalizeStyle","_renderSlot","_createVNode","_createCommentVNode","_createBlock","_withCtx"],"mappings":"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"}
@@ -24,7 +24,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
24
24
  titleStyle: import("vue").ComputedRef<{}>;
25
25
  mode: import("vue").ComputedRef<"inline" | "vertical" | "horizontal" | "vertical-left" | "vertical-right">;
26
26
  subMode: import("vue").ComputedRef<"inline" | "vertical" | "horizontal" | "vertical-left" | "vertical-right">;
27
- theme: import("vue").Ref<"light" | "dark", "light" | "dark">;
28
27
  isOpen: import("vue").ComputedRef<boolean>;
29
28
  isSelected: import("vue").ComputedRef<boolean>;
30
29
  menuId: import("vue").ComputedRef<string>;