@koi-design/uxd-ui 14.0.6 → 14.0.8

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 (276) 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/Cascader/Cascader.d.ts +3 -3
  9. package/es/components/Cascader/Cascader.mjs +2 -4
  10. package/es/components/Cascader/Cascader.mjs.map +1 -1
  11. package/es/components/Cascader/Cascader.type.d.ts +1 -1
  12. package/es/components/Cascader/Cascader.type.mjs +1 -1
  13. package/es/components/Cascader/Cascader.type.mjs.map +1 -1
  14. package/es/components/Cascader/CascaderMenu.mjs +4 -4
  15. package/es/components/Cascader/CascaderMenu.mjs.map +1 -1
  16. package/es/components/Cascader/index.d.ts +6 -6
  17. package/es/components/Checkbox/Checkbox.mjs +1 -0
  18. package/es/components/Checkbox/Checkbox.mjs.map +1 -1
  19. package/es/components/Checkbox/Checkbox.type.d.ts +1 -0
  20. package/es/components/Checkbox/Checkbox.type.mjs +2 -1
  21. package/es/components/Checkbox/Checkbox.type.mjs.map +1 -1
  22. package/es/components/Checkbox/Checkbox.vue.d.ts +2 -0
  23. package/es/components/Checkbox/CheckboxGroup.vue.d.ts +2 -0
  24. package/es/components/Checkbox/index.d.ts +7 -0
  25. package/es/components/DatePicker/DatePicker.mjs +2 -4
  26. package/es/components/DatePicker/DatePicker.mjs.map +1 -1
  27. package/es/components/DatePicker/Panel/DatePickerPanel.mjs +1 -0
  28. package/es/components/DatePicker/Panel/DatePickerPanel.mjs.map +1 -1
  29. package/es/components/Layout/Layout.type.d.ts +2 -7
  30. package/es/components/Layout/Layout.type.mjs +2 -7
  31. package/es/components/Layout/Layout.type.mjs.map +1 -1
  32. package/es/components/Layout/Sider.mjs +20 -16
  33. package/es/components/Layout/Sider.mjs.map +1 -1
  34. package/es/components/Layout/Sider.vue.d.ts +9 -17
  35. package/es/components/Layout/index.d.ts +9 -17
  36. package/es/components/Menu/Menu.d.ts +0 -11
  37. package/es/components/Menu/Menu.mjs +1 -3
  38. package/es/components/Menu/Menu.mjs.map +1 -1
  39. package/es/components/Menu/Menu.type.d.ts +0 -6
  40. package/es/components/Menu/Menu.type.mjs +0 -5
  41. package/es/components/Menu/Menu.type.mjs.map +1 -1
  42. package/es/components/Menu/SubMenu.mjs +1 -3
  43. package/es/components/Menu/SubMenu.mjs.map +1 -1
  44. package/es/components/Menu/SubMenu.vue.d.ts +0 -1
  45. package/es/components/Menu/index.d.ts +0 -19
  46. package/es/components/Progress/Circle.mjs +1 -3
  47. package/es/components/Progress/Circle.mjs.map +1 -1
  48. package/es/components/Progress/Progress.mjs +2 -3
  49. package/es/components/Progress/Progress.mjs.map +1 -1
  50. package/es/components/Progress/Progress.type.d.ts +1 -6
  51. package/es/components/Progress/Progress.type.mjs +0 -6
  52. package/es/components/Progress/Progress.type.mjs.map +1 -1
  53. package/es/components/Progress/Progress.vue.d.ts +0 -16
  54. package/es/components/Progress/index.d.ts +0 -33
  55. package/es/components/Select/RefSelect.vue.d.ts +7 -0
  56. package/es/components/Table/BaseTable.vue.d.ts +7 -19
  57. package/es/components/Table/BodyTable.vue.d.ts +7 -19
  58. package/es/components/Table/HeadTable.vue.d.ts +7 -19
  59. package/es/components/Table/Table.vue.d.ts +14 -38
  60. package/es/components/Table/TableBox.vue.d.ts +14 -38
  61. package/es/components/Table/tableUnits/FilterDropdown.vue.d.ts +7 -19
  62. package/es/components/Table/tableUnits/SelectionBox.vue.d.ts +7 -0
  63. package/es/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +7 -19
  64. package/es/components/Table/tableUnits/TableHeader.vue.d.ts +7 -19
  65. package/es/components/Table/tableUnits/TableHeaderRow.vue.d.ts +7 -19
  66. package/es/components/Transfer/Operation.mjs +6 -4
  67. package/es/components/Transfer/Operation.mjs.map +1 -1
  68. package/es/components/Transfer/Transfer.mjs +2 -4
  69. package/es/components/Transfer/Transfer.mjs.map +1 -1
  70. package/es/components/Transfer/Transfer.type.d.ts +0 -5
  71. package/es/components/Transfer/Transfer.type.mjs +1 -8
  72. package/es/components/Transfer/Transfer.type.mjs.map +1 -1
  73. package/es/components/Transfer/Transfer.vue.d.ts +42 -11
  74. package/es/components/Transfer/TransferList.mjs +14 -10
  75. package/es/components/Transfer/TransferList.mjs.map +1 -1
  76. package/es/components/Transfer/TransferList.vue.d.ts +14 -0
  77. package/es/components/Transfer/TransferListItem.vue.d.ts +7 -0
  78. package/es/components/Transfer/index.d.ts +112 -18
  79. package/es/components/Tree/SubTree.vue.d.ts +7 -0
  80. package/es/components/Tree/Tree.vue.d.ts +7 -0
  81. package/es/components/Tree/TreeNode.vue.d.ts +7 -0
  82. package/es/components/Tree/index.d.ts +14 -0
  83. package/es/components/TreeSelect/TreeSelect.vue.d.ts +14 -0
  84. package/es/components/TreeSelect/index.d.ts +28 -0
  85. package/es/components/Upload/UploadList.vue.d.ts +0 -33
  86. package/es/components/base/CollapseTransition.mjs +0 -16
  87. package/es/components/base/CollapseTransition.mjs.map +1 -1
  88. package/es/components/base/hooks/useGlobalConfig.d.ts +1 -0
  89. package/es/components/locale/default.d.ts +1 -0
  90. package/es/components/locale/default.mjs.map +1 -1
  91. package/lib/components/Card/Card.d.ts +9 -9
  92. package/lib/components/Card/Card.js +22 -29
  93. package/lib/components/Card/Card.js.map +1 -1
  94. package/lib/components/Card/Card.type.d.ts +4 -4
  95. package/lib/components/Card/Card.type.js +4 -4
  96. package/lib/components/Card/Card.type.js.map +1 -1
  97. package/lib/components/Card/index.d.ts +15 -15
  98. package/lib/components/Cascader/Cascader.d.ts +3 -3
  99. package/lib/components/Cascader/Cascader.js +2 -4
  100. package/lib/components/Cascader/Cascader.js.map +1 -1
  101. package/lib/components/Cascader/Cascader.type.d.ts +1 -1
  102. package/lib/components/Cascader/Cascader.type.js +1 -1
  103. package/lib/components/Cascader/Cascader.type.js.map +1 -1
  104. package/lib/components/Cascader/CascaderMenu.js +3 -3
  105. package/lib/components/Cascader/CascaderMenu.js.map +1 -1
  106. package/lib/components/Cascader/index.d.ts +6 -6
  107. package/lib/components/Checkbox/Checkbox.js +1 -0
  108. package/lib/components/Checkbox/Checkbox.js.map +1 -1
  109. package/lib/components/Checkbox/Checkbox.type.d.ts +1 -0
  110. package/lib/components/Checkbox/Checkbox.type.js +2 -1
  111. package/lib/components/Checkbox/Checkbox.type.js.map +1 -1
  112. package/lib/components/Checkbox/Checkbox.vue.d.ts +2 -0
  113. package/lib/components/Checkbox/CheckboxGroup.vue.d.ts +2 -0
  114. package/lib/components/Checkbox/index.d.ts +7 -0
  115. package/lib/components/DatePicker/DatePicker.js +2 -4
  116. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  117. package/lib/components/DatePicker/Panel/DatePickerPanel.js +1 -0
  118. package/lib/components/DatePicker/Panel/DatePickerPanel.js.map +1 -1
  119. package/lib/components/Layout/Layout.type.d.ts +2 -7
  120. package/lib/components/Layout/Layout.type.js +2 -7
  121. package/lib/components/Layout/Layout.type.js.map +1 -1
  122. package/lib/components/Layout/Sider.js +19 -15
  123. package/lib/components/Layout/Sider.js.map +1 -1
  124. package/lib/components/Layout/Sider.vue.d.ts +9 -17
  125. package/lib/components/Layout/index.d.ts +9 -17
  126. package/lib/components/Menu/Menu.d.ts +0 -11
  127. package/lib/components/Menu/Menu.js +1 -3
  128. package/lib/components/Menu/Menu.js.map +1 -1
  129. package/lib/components/Menu/Menu.type.d.ts +0 -6
  130. package/lib/components/Menu/Menu.type.js +0 -5
  131. package/lib/components/Menu/Menu.type.js.map +1 -1
  132. package/lib/components/Menu/SubMenu.js +1 -3
  133. package/lib/components/Menu/SubMenu.js.map +1 -1
  134. package/lib/components/Menu/SubMenu.vue.d.ts +0 -1
  135. package/lib/components/Menu/index.d.ts +0 -19
  136. package/lib/components/Progress/Circle.js +1 -3
  137. package/lib/components/Progress/Circle.js.map +1 -1
  138. package/lib/components/Progress/Progress.js +2 -3
  139. package/lib/components/Progress/Progress.js.map +1 -1
  140. package/lib/components/Progress/Progress.type.d.ts +1 -6
  141. package/lib/components/Progress/Progress.type.js +0 -6
  142. package/lib/components/Progress/Progress.type.js.map +1 -1
  143. package/lib/components/Progress/Progress.vue.d.ts +0 -16
  144. package/lib/components/Progress/index.d.ts +0 -33
  145. package/lib/components/Select/RefSelect.vue.d.ts +7 -0
  146. package/lib/components/Table/BaseTable.vue.d.ts +7 -19
  147. package/lib/components/Table/BodyTable.vue.d.ts +7 -19
  148. package/lib/components/Table/HeadTable.vue.d.ts +7 -19
  149. package/lib/components/Table/Table.vue.d.ts +14 -38
  150. package/lib/components/Table/TableBox.vue.d.ts +14 -38
  151. package/lib/components/Table/tableUnits/FilterDropdown.vue.d.ts +7 -19
  152. package/lib/components/Table/tableUnits/SelectionBox.vue.d.ts +7 -0
  153. package/lib/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +7 -19
  154. package/lib/components/Table/tableUnits/TableHeader.vue.d.ts +7 -19
  155. package/lib/components/Table/tableUnits/TableHeaderRow.vue.d.ts +7 -19
  156. package/lib/components/Transfer/Operation.js +6 -4
  157. package/lib/components/Transfer/Operation.js.map +1 -1
  158. package/lib/components/Transfer/Transfer.js +2 -4
  159. package/lib/components/Transfer/Transfer.js.map +1 -1
  160. package/lib/components/Transfer/Transfer.type.d.ts +0 -5
  161. package/lib/components/Transfer/Transfer.type.js +0 -7
  162. package/lib/components/Transfer/Transfer.type.js.map +1 -1
  163. package/lib/components/Transfer/Transfer.vue.d.ts +42 -11
  164. package/lib/components/Transfer/TransferList.js +14 -10
  165. package/lib/components/Transfer/TransferList.js.map +1 -1
  166. package/lib/components/Transfer/TransferList.vue.d.ts +14 -0
  167. package/lib/components/Transfer/TransferListItem.vue.d.ts +7 -0
  168. package/lib/components/Transfer/index.d.ts +112 -18
  169. package/lib/components/Tree/SubTree.vue.d.ts +7 -0
  170. package/lib/components/Tree/Tree.vue.d.ts +7 -0
  171. package/lib/components/Tree/TreeNode.vue.d.ts +7 -0
  172. package/lib/components/Tree/index.d.ts +14 -0
  173. package/lib/components/TreeSelect/TreeSelect.vue.d.ts +14 -0
  174. package/lib/components/TreeSelect/index.d.ts +28 -0
  175. package/lib/components/Upload/UploadList.vue.d.ts +0 -33
  176. package/lib/components/base/CollapseTransition.js +0 -16
  177. package/lib/components/base/CollapseTransition.js.map +1 -1
  178. package/lib/components/base/hooks/useGlobalConfig.d.ts +1 -0
  179. package/lib/components/locale/default.d.ts +1 -0
  180. package/lib/components/locale/default.js.map +1 -1
  181. package/package.json +1 -1
  182. package/styles/components/alert/index.css +1 -1
  183. package/styles/components/autoComplete/index.css +1 -1
  184. package/styles/components/avatar/index.css +1 -1
  185. package/styles/components/breadcrumb/index.css +1 -1
  186. package/styles/components/breadcrumb/index.less +5 -6
  187. package/styles/components/breadcrumb/var.less +4 -6
  188. package/styles/components/button/index.css +1 -1
  189. package/styles/components/card/index.css +1 -1
  190. package/styles/components/card/index.less +64 -70
  191. package/styles/components/card/var.less +4 -13
  192. package/styles/components/carousel/index.css +1 -1
  193. package/styles/components/carousel/index.less +38 -35
  194. package/styles/components/carousel/var.less +6 -19
  195. package/styles/components/cascader/index.css +1 -1
  196. package/styles/components/cascader/index.less +20 -32
  197. package/styles/components/datePicker/index.css +1 -1
  198. package/styles/components/form/index.css +1 -1
  199. package/styles/components/icon/index.css +1 -1
  200. package/styles/components/input/index.css +1 -1
  201. package/styles/components/inputNumber/index.css +1 -1
  202. package/styles/components/layout/index.css +1 -1
  203. package/styles/components/layout/index.less +40 -55
  204. package/styles/components/layout/var.less +9 -41
  205. package/styles/components/link/index.css +1 -1
  206. package/styles/components/mentions/index.css +1 -1
  207. package/styles/components/menu/index.css +1 -1
  208. package/styles/components/menu/index.less +63 -207
  209. package/styles/components/menu/var.less +40 -69
  210. package/styles/components/modal/index.css +1 -1
  211. package/styles/components/progress/index.css +1 -1
  212. package/styles/components/progress/index.less +42 -56
  213. package/styles/components/progress/var.less +3 -4
  214. package/styles/components/select/index.css +1 -1
  215. package/styles/components/spin/index.css +1 -1
  216. package/styles/components/timePicker/index.css +1 -1
  217. package/styles/components/transfer/index.css +1 -1
  218. package/styles/components/transfer/index.less +38 -42
  219. package/styles/components/transfer/var.less +8 -42
  220. package/styles/components/tree/index.css +1 -1
  221. package/styles/components/tree/index.less +17 -27
  222. package/styles/components/tree/var.less +5 -16
  223. package/styles/cssVariable.css +1 -1
  224. package/styles/cssVariable.less +8 -8
  225. package/styles/index.css +1 -1
  226. package/styles/tokens/typography.css +1 -1
  227. package/types/components/Card/Card.d.ts +9 -9
  228. package/types/components/Card/Card.type.d.ts +4 -4
  229. package/types/components/Card/index.d.ts +15 -15
  230. package/types/components/Cascader/Cascader.d.ts +3 -3
  231. package/types/components/Cascader/Cascader.type.d.ts +1 -1
  232. package/types/components/Cascader/index.d.ts +6 -6
  233. package/types/components/Checkbox/Checkbox.type.d.ts +1 -0
  234. package/types/components/Checkbox/Checkbox.vue.d.ts +2 -0
  235. package/types/components/Checkbox/CheckboxGroup.vue.d.ts +2 -0
  236. package/types/components/Checkbox/index.d.ts +7 -0
  237. package/types/components/Layout/Layout.type.d.ts +2 -7
  238. package/types/components/Layout/Sider.vue.d.ts +9 -17
  239. package/types/components/Layout/index.d.ts +9 -17
  240. package/types/components/Menu/Menu.d.ts +0 -11
  241. package/types/components/Menu/Menu.type.d.ts +0 -6
  242. package/types/components/Menu/SubMenu.vue.d.ts +0 -1
  243. package/types/components/Menu/index.d.ts +0 -19
  244. package/types/components/Progress/Progress.type.d.ts +1 -6
  245. package/types/components/Progress/Progress.vue.d.ts +0 -16
  246. package/types/components/Progress/index.d.ts +0 -33
  247. package/types/components/Select/RefSelect.vue.d.ts +7 -0
  248. package/types/components/Table/BaseTable.vue.d.ts +7 -19
  249. package/types/components/Table/BodyTable.vue.d.ts +7 -19
  250. package/types/components/Table/HeadTable.vue.d.ts +7 -19
  251. package/types/components/Table/Table.vue.d.ts +14 -38
  252. package/types/components/Table/TableBox.vue.d.ts +14 -38
  253. package/types/components/Table/tableUnits/FilterDropdown.vue.d.ts +7 -19
  254. package/types/components/Table/tableUnits/SelectionBox.vue.d.ts +7 -0
  255. package/types/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +7 -19
  256. package/types/components/Table/tableUnits/TableHeader.vue.d.ts +7 -19
  257. package/types/components/Table/tableUnits/TableHeaderRow.vue.d.ts +7 -19
  258. package/types/components/Transfer/Transfer.type.d.ts +0 -5
  259. package/types/components/Transfer/Transfer.vue.d.ts +42 -11
  260. package/types/components/Transfer/TransferList.vue.d.ts +14 -0
  261. package/types/components/Transfer/TransferListItem.vue.d.ts +7 -0
  262. package/types/components/Transfer/index.d.ts +112 -18
  263. package/types/components/Tree/SubTree.vue.d.ts +7 -0
  264. package/types/components/Tree/Tree.vue.d.ts +7 -0
  265. package/types/components/Tree/TreeNode.vue.d.ts +7 -0
  266. package/types/components/Tree/index.d.ts +14 -0
  267. package/types/components/TreeSelect/TreeSelect.vue.d.ts +14 -0
  268. package/types/components/TreeSelect/index.d.ts +28 -0
  269. package/types/components/Upload/UploadList.vue.d.ts +0 -33
  270. package/types/components/base/hooks/useGlobalConfig.d.ts +1 -0
  271. package/types/components/locale/default.d.ts +1 -0
  272. package/uxd-ui.css +1 -1
  273. package/uxd-ui.esm.min.mjs +6 -6
  274. package/uxd-ui.esm.mjs +513 -555
  275. package/uxd-ui.umd.js +512 -554
  276. package/uxd-ui.umd.min.js +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerPanel.mjs","sources":["../../../../../src/components/DatePicker/Panel/DatePickerPanel.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-time`]: showTime,\n [`${prefixCls}-week`]: weekMode,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }\n ]\"\n >\n <div v-if=\"shortcuts\" :class=\"`${prefixCls}-shortcut-container`\">\n <!-- <a v-for=\"(shortcut, index) in shortcuts\" :key=\"index\" :class=\"`${prefixCls}-shortcut-item`\" @click=\"onShortcutClick(shortcut)\">\n {{ shortcut.text }}\n </a> -->\n <USelect\n v-model=\"selectedShortcut\"\n size=\"small\"\n :options=\"shortcuts.map((shortcut: any) => ({ label: shortcut.text, value: shortcut.text, func: shortcut.value }))\"\n :placeholder=\"locale.shortcutsPlaceholder\"\n @change=\"(value: any, option: any) => onShortcutClick({\n value: option.func\n })\"\n />\n </div>\n <div>\n <DatePanel\n v-if=\"statePanel !== 'quarter'\"\n :prefix-cls=\"prefixCls\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :has-time-picker=\"showTime\"\n :show-time-picker=\"showTimePicker\"\n :week-mode=\"weekMode\"\n :time-options=\"timeOptions\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n @current-change=\"onCurrentChange\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <QuarterPanel\n v-if=\"statePanel === 'quarter'\"\n :prefix-cls=\"`${prefixCls}-quarter-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <MonthPanel\n v-if=\"statePanel === 'month'\"\n :prefix-cls=\"`${prefixCls}-month-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <YearPanel\n v-if=\"statePanel === 'year'\"\n :prefix-cls=\"`${prefixCls}-year-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, watch, computed, inject } from 'vue';\nimport type { PropType } from 'vue';\nimport type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\nimport USelect from '@uxd-ui/components/Select';\nimport DatePanel from './DatePanel/DatePanel.vue';\nimport MonthPanel from './MonthPanel/MonthPanel.vue';\nimport YearPanel from './YearPanel/YearPanel.vue';\nimport QuarterPanel from './QuarterPanel';\nimport { getTodayTime, isAllowedDateTime } from '../utils';\nimport type {\n DatePickerContext,\n DatePickerShortcut,\n DatePickerSingleValueType,\n DisabledTimeFunction,\n DatePickerSingleType\n} from '../DatePicker.type';\nimport type { DisabledDateFunction } from '../../Calendar/Calendar.type';\nimport type { DatePickerLocal } from '../../locale/default';\n\nexport default defineComponent({\n name: 'DatePickerPanel',\n components: {\n DatePanel,\n MonthPanel,\n YearPanel,\n QuarterPanel,\n USelect\n },\n props: {\n prefixCls: {\n type: String\n },\n value: {\n type: [String, Date, Object] as PropType<DatePickerSingleValueType>\n },\n mode: {\n type: String as PropType<DatePickerSingleType>,\n default: 'date'\n },\n locale: {\n type: Object as PropType<DatePickerLocal>,\n required: true\n },\n open: {\n type: Boolean,\n default: false\n },\n\n showConfirm: {\n type: Boolean,\n default: false\n },\n timeOptions: {\n type: Object as PropType<Record<string, any>>\n },\n disabledDate: {\n type: Function as PropType<DisabledDateFunction>\n },\n disabledTime: {\n type: Function as PropType<DisabledTimeFunction>\n },\n shortcuts: {\n type: Array as PropType<DatePickerShortcut[]>\n },\n showTimeClear: {\n type: Boolean,\n default: true\n },\n direction: {\n type: String as PropType<'ltr' | 'rtl'>,\n default: 'ltr'\n }\n },\n emits: {\n select: (v: Date | null, close?: boolean) => (v === null || v instanceof Date) && typeof close === 'boolean',\n close: () => true,\n 'panel-change': (p: string) => typeof p === 'string'\n },\n setup(props, { emit }) {\n const currentDate = ref(dayjs());\n const selectedDate = ref<Dayjs | null>(null);\n const statePanel = ref(props.mode);\n const selectedShortcut = ref<string>('');\n const { setOpened } = inject<DatePickerContext>('datePickerContext', {} as DatePickerContext);\n\n watch(\n () => props.value,\n (val) => {\n selectedDate.value = val ? dayjs(val) : null;\n currentDate.value = val ? dayjs(val) : dayjs().startOf('day');\n },\n { immediate: true }\n );\n\n const showTime = computed(() => {\n return props.mode === 'dateTime';\n });\n\n const weekMode = computed(() => {\n return props.mode === 'week';\n });\n\n const onCurrentChange = (date: Dayjs) => {\n currentDate.value = date;\n };\n\n const fireChangePanel = (panel: DatePickerSingleType) => {\n statePanel.value = panel;\n emit('panel-change', panel);\n };\n\n const onPanelChange = (panel: DatePickerSingleType) => {\n fireChangePanel(panel);\n };\n\n const showTimePicker = computed(() => {\n return props.mode === 'dateTime' && statePanel.value === 'dateTime';\n });\n\n const onSelectedChange = ({ type, value }: { type: string; value: any }) => {\n if (type === 'date' || type === 'time') {\n emit('select', value.toDate());\n } else if (type === 'month') {\n if (props.mode !== 'month') {\n currentDate.value = value;\n fireChangePanel(props.mode === 'dateTime' ? 'dateTime' : 'date');\n } else {\n emit('select', value.startOf('month').toDate());\n }\n } else if (type === 'year') {\n if (props.mode === 'quarter') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('quarter');\n } else if (props.mode !== 'year') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('month');\n } else {\n const date = dayjs().year(value).startOf('year');\n emit('select', date.toDate());\n }\n } else if (type === 'quarter') {\n // const date = dayjs().quarter(value).startOf('quarter');\n emit('select', value.startOf('quarter').toDate());\n }\n };\n\n watch(\n () => props.open,\n (val) => {\n selectedShortcut.value = '';\n if (val) {\n currentDate.value = props.value ? dayjs(props.value) : dayjs().startOf('day');\n fireChangePanel(props.mode || 'date');\n }\n }\n );\n\n // ============ footer btn =================\n\n // const onToggleTime = () => {\n // if (selectedDate.value) {\n // showTimePicker.value = !showTimePicker.value;\n // }\n // };\n const disabledToday = computed(() => {\n const today = getTodayTime();\n if (props.disabledDate && props.disabledDate(today.toDate())) {\n return true;\n }\n return false;\n });\n\n const okDisabled = computed(() => {\n if (!selectedDate.value) {\n return true;\n }\n return !isAllowedDateTime(selectedDate.value, props.disabledDate, props.disabledTime);\n });\n\n const onSelectToday = () => {\n onSelectedChange({ type: 'date', value: getTodayTime() });\n };\n\n const onOk = () => {\n if (!okDisabled.value) {\n setOpened(false);\n }\n };\n\n const onClear = () => {\n if (!okDisabled.value) {\n emit('select', null, false);\n }\n };\n\n const onShortcutClick = (shortcut: DatePickerShortcut) => {\n if (typeof shortcut.value === 'function') {\n const date = shortcut.value();\n\n onSelectedChange({\n type: 'date',\n value: dayjs((date as DatePickerSingleValueType) || undefined)\n });\n }\n };\n\n return {\n currentDate,\n selectedDate,\n selectedShortcut,\n statePanel,\n showTime,\n weekMode,\n showTimePicker,\n disabledToday,\n okDisabled,\n onSelectToday,\n onOk,\n onClear,\n // onToggleTime,\n onCurrentChange,\n onPanelChange,\n onSelectedChange,\n onShortcutClick\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createCommentVNode","_createVNode","_createElementVNode","_createBlock"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerPanel.mjs","sources":["../../../../../src/components/DatePicker/Panel/DatePickerPanel.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-time`]: showTime,\n [`${prefixCls}-week`]: weekMode,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }\n ]\"\n >\n <div v-if=\"shortcuts\" :class=\"`${prefixCls}-shortcut-container`\">\n <!-- <a v-for=\"(shortcut, index) in shortcuts\" :key=\"index\" :class=\"`${prefixCls}-shortcut-item`\" @click=\"onShortcutClick(shortcut)\">\n {{ shortcut.text }}\n </a> -->\n <USelect\n v-model=\"selectedShortcut\"\n size=\"small\"\n :options=\"shortcuts.map((shortcut: any) => ({ label: shortcut.text, value: shortcut.text, func: shortcut.value }))\"\n :placeholder=\"locale.shortcutsPlaceholder\"\n @change=\"(value: any, option: any) => onShortcutClick({\n text: value,\n value: option.func\n })\"\n />\n </div>\n <div>\n <DatePanel\n v-if=\"statePanel !== 'quarter'\"\n :prefix-cls=\"prefixCls\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :has-time-picker=\"showTime\"\n :show-time-picker=\"showTimePicker\"\n :week-mode=\"weekMode\"\n :time-options=\"timeOptions\"\n :disabled-date=\"disabledDate\"\n :disabled-time=\"disabledTime\"\n @current-change=\"onCurrentChange\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <QuarterPanel\n v-if=\"statePanel === 'quarter'\"\n :prefix-cls=\"`${prefixCls}-quarter-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <MonthPanel\n v-if=\"statePanel === 'month'\"\n :prefix-cls=\"`${prefixCls}-month-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n <YearPanel\n v-if=\"statePanel === 'year'\"\n :prefix-cls=\"`${prefixCls}-year-panel`\"\n :locale=\"locale\"\n :current-date=\"currentDate\"\n :selected-date=\"selectedDate\"\n :disabled-date=\"disabledDate\"\n @selected-change=\"onSelectedChange\"\n @panel-change=\"onPanelChange\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, watch, computed, inject } from 'vue';\nimport type { PropType } from 'vue';\nimport type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\nimport USelect from '@uxd-ui/components/Select';\nimport DatePanel from './DatePanel/DatePanel.vue';\nimport MonthPanel from './MonthPanel/MonthPanel.vue';\nimport YearPanel from './YearPanel/YearPanel.vue';\nimport QuarterPanel from './QuarterPanel';\nimport { getTodayTime, isAllowedDateTime } from '../utils';\nimport type {\n DatePickerContext,\n DatePickerShortcut,\n DatePickerSingleValueType,\n DisabledTimeFunction,\n DatePickerSingleType\n} from '../DatePicker.type';\nimport type { DisabledDateFunction } from '../../Calendar/Calendar.type';\nimport type { DatePickerLocal } from '../../locale/default';\n\nexport default defineComponent({\n name: 'DatePickerPanel',\n components: {\n DatePanel,\n MonthPanel,\n YearPanel,\n QuarterPanel,\n USelect\n },\n props: {\n prefixCls: {\n type: String\n },\n value: {\n type: [String, Date, Object] as PropType<DatePickerSingleValueType>\n },\n mode: {\n type: String as PropType<DatePickerSingleType>,\n default: 'date'\n },\n locale: {\n type: Object as PropType<DatePickerLocal>,\n required: true\n },\n open: {\n type: Boolean,\n default: false\n },\n\n showConfirm: {\n type: Boolean,\n default: false\n },\n timeOptions: {\n type: Object as PropType<Record<string, any>>\n },\n disabledDate: {\n type: Function as PropType<DisabledDateFunction>\n },\n disabledTime: {\n type: Function as PropType<DisabledTimeFunction>\n },\n shortcuts: {\n type: Array as PropType<DatePickerShortcut[]>\n },\n showTimeClear: {\n type: Boolean,\n default: true\n },\n direction: {\n type: String as PropType<'ltr' | 'rtl'>,\n default: 'ltr'\n }\n },\n emits: {\n select: (v: Date | null, close?: boolean) => (v === null || v instanceof Date) && typeof close === 'boolean',\n close: () => true,\n 'panel-change': (p: string) => typeof p === 'string'\n },\n setup(props, { emit }) {\n const currentDate = ref(dayjs());\n const selectedDate = ref<Dayjs | null>(null);\n const statePanel = ref(props.mode);\n const selectedShortcut = ref<string>('');\n const { setOpened } = inject<DatePickerContext>('datePickerContext', {} as DatePickerContext);\n\n watch(\n () => props.value,\n (val) => {\n selectedDate.value = val ? dayjs(val) : null;\n currentDate.value = val ? dayjs(val) : dayjs().startOf('day');\n },\n { immediate: true }\n );\n\n const showTime = computed(() => {\n return props.mode === 'dateTime';\n });\n\n const weekMode = computed(() => {\n return props.mode === 'week';\n });\n\n const onCurrentChange = (date: Dayjs) => {\n currentDate.value = date;\n };\n\n const fireChangePanel = (panel: DatePickerSingleType) => {\n statePanel.value = panel;\n emit('panel-change', panel);\n };\n\n const onPanelChange = (panel: DatePickerSingleType) => {\n fireChangePanel(panel);\n };\n\n const showTimePicker = computed(() => {\n return props.mode === 'dateTime' && statePanel.value === 'dateTime';\n });\n\n const onSelectedChange = ({ type, value }: { type: string; value: any }) => {\n if (type === 'date' || type === 'time') {\n emit('select', value.toDate());\n } else if (type === 'month') {\n if (props.mode !== 'month') {\n currentDate.value = value;\n fireChangePanel(props.mode === 'dateTime' ? 'dateTime' : 'date');\n } else {\n emit('select', value.startOf('month').toDate());\n }\n } else if (type === 'year') {\n if (props.mode === 'quarter') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('quarter');\n } else if (props.mode !== 'year') {\n currentDate.value = currentDate.value.year(value);\n fireChangePanel('month');\n } else {\n const date = dayjs().year(value).startOf('year');\n emit('select', date.toDate());\n }\n } else if (type === 'quarter') {\n // const date = dayjs().quarter(value).startOf('quarter');\n emit('select', value.startOf('quarter').toDate());\n }\n };\n\n watch(\n () => props.open,\n (val) => {\n selectedShortcut.value = '';\n if (val) {\n currentDate.value = props.value ? dayjs(props.value) : dayjs().startOf('day');\n fireChangePanel(props.mode || 'date');\n }\n }\n );\n\n // ============ footer btn =================\n\n // const onToggleTime = () => {\n // if (selectedDate.value) {\n // showTimePicker.value = !showTimePicker.value;\n // }\n // };\n const disabledToday = computed(() => {\n const today = getTodayTime();\n if (props.disabledDate && props.disabledDate(today.toDate())) {\n return true;\n }\n return false;\n });\n\n const okDisabled = computed(() => {\n if (!selectedDate.value) {\n return true;\n }\n return !isAllowedDateTime(selectedDate.value, props.disabledDate, props.disabledTime);\n });\n\n const onSelectToday = () => {\n onSelectedChange({ type: 'date', value: getTodayTime() });\n };\n\n const onOk = () => {\n if (!okDisabled.value) {\n setOpened(false);\n }\n };\n\n const onClear = () => {\n if (!okDisabled.value) {\n emit('select', null, false);\n }\n };\n\n const onShortcutClick = (shortcut: DatePickerShortcut) => {\n if (typeof shortcut.value === 'function') {\n const date = shortcut.value();\n\n onSelectedChange({\n type: 'date',\n value: dayjs((date as DatePickerSingleValueType) || undefined)\n });\n }\n };\n\n return {\n currentDate,\n selectedDate,\n selectedShortcut,\n statePanel,\n showTime,\n weekMode,\n showTimePicker,\n disabledToday,\n okDisabled,\n onSelectToday,\n onOk,\n onClear,\n // onToggleTime,\n onCurrentChange,\n onPanelChange,\n onSelectedChange,\n onShortcutClick\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createCommentVNode","_createVNode","_createElementVNode","_createBlock"],"mappings":"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"}
@@ -15,7 +15,7 @@ export declare const siderProps: {
15
15
  type: BooleanConstructor;
16
16
  default: undefined;
17
17
  };
18
- reverseArrow: {
18
+ isRight: {
19
19
  type: BooleanConstructor;
20
20
  default: boolean;
21
21
  };
@@ -33,7 +33,7 @@ export declare const siderProps: {
33
33
  type: (StringConstructor | NumberConstructor)[];
34
34
  default: number;
35
35
  };
36
- collapseWidth: {
36
+ collapsedWidth: {
37
37
  type: (StringConstructor | NumberConstructor)[];
38
38
  default: number;
39
39
  };
@@ -41,11 +41,6 @@ export declare const siderProps: {
41
41
  type: PropType<"xxl" | "xl" | "lg" | "md" | "sm" | "xs">;
42
42
  validator: (val: "xxl" | "xl" | "lg" | "md" | "sm" | "xs") => boolean;
43
43
  };
44
- theme: {
45
- type: PropType<"light" | "dark">;
46
- default: string;
47
- validator: (val: "light" | "dark") => boolean;
48
- };
49
44
  background: {
50
45
  type: StringConstructor;
51
46
  };
@@ -11,7 +11,7 @@ const siderProps = {
11
11
  type: Boolean,
12
12
  default: void 0
13
13
  },
14
- reverseArrow: {
14
+ isRight: {
15
15
  type: Boolean,
16
16
  default: false
17
17
  },
@@ -29,7 +29,7 @@ const siderProps = {
29
29
  type: [Number, String],
30
30
  default: 200
31
31
  },
32
- collapseWidth: {
32
+ collapsedWidth: {
33
33
  type: [Number, String],
34
34
  default: 80
35
35
  },
@@ -37,11 +37,6 @@ const siderProps = {
37
37
  type: String,
38
38
  validator: oneOf(responsiveArray)
39
39
  },
40
- theme: {
41
- type: String,
42
- default: "dark",
43
- validator: oneOf(siderTheme)
44
- },
45
40
  background: {
46
41
  type: String
47
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.type.mjs","sources":["../../../../src/components/Layout/Layout.type.ts"],"sourcesContent":["import type { PropType, Ref, ExtractPropTypes } from 'vue';\nimport type { IconPropType } from '../../utils/globalType';\nimport { responsiveArray, type ResponsiveKeys } from '../../utils/responsiveObserve';\nimport { oneOf } from '../../utils/propsValidators';\n\nexport interface SiderHooks {\n attachSider: (id: string) => void;\n removeSider: (id: string) => void;\n}\n\nexport const siderTheme = ['light', 'dark'] as const;\nexport type SiderTheme = (typeof siderTheme)[number];\n\nexport const siderProps = {\n collapsible: {\n type: Boolean,\n default: false\n },\n collapsed: {\n type: Boolean,\n default: undefined as undefined\n },\n reverseArrow: {\n type: Boolean,\n default: false\n },\n hideTrigger: {\n type: Boolean,\n default: false\n },\n zeroTrigger: {\n type: Boolean\n },\n triggerIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n width: {\n type: [Number, String],\n default: 200\n },\n collapseWidth: {\n type: [Number, String],\n default: 80\n },\n breakpoint: {\n type: String as PropType<ResponsiveKeys>,\n\n validator: oneOf(responsiveArray)\n },\n theme: {\n type: String as PropType<SiderTheme>,\n default: 'dark',\n validator: oneOf(siderTheme)\n },\n background: {\n type: String\n }\n};\nexport type SiderProps = ExtractPropTypes<typeof siderProps>;\n\nexport const siderEmits = {\n 'update:collapsed': (v: boolean) => typeof v === 'boolean',\n collapse: (v: boolean, type: string) => typeof v === 'boolean' && typeof type === 'string',\n breakpoint: (v: boolean) => typeof v === 'boolean'\n};\n\nexport type SiderEmits = typeof siderEmits;\n\nexport interface LayoutSiderContext {\n collapsed: Ref<boolean>;\n collapseWidth: Ref<number | string>;\n}\n"],"names":[],"mappings":";;;MAUa,aAAa,CAAC,SAAS,MAAM;MAG7B,aAAa;AAAA,EACxB,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA;AACR,EACA,aAAa;AAAA,IACX,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,eAAe;AAAA,IACb,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IAEN,WAAW,MAAM,eAAe;AAAA;AAClC,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW,MAAM,UAAU;AAAA;AAC7B,EACA,YAAY;AAAA,IACV,MAAM;AAAA;AAEV;MAGa,aAAa;AAAA,EACxB,oBAAoB,CAAC,MAAe,OAAO,MAAM;AAAA,EACjD,UAAU,CAAC,GAAY,SAAiB,OAAO,MAAM,aAAa,OAAO,SAAS;AAAA,EAClF,YAAY,CAAC,MAAe,OAAO,MAAM;AAC3C;;;;"}
1
+ {"version":3,"file":"Layout.type.mjs","sources":["../../../../src/components/Layout/Layout.type.ts"],"sourcesContent":["import type { PropType, Ref, ExtractPropTypes } from 'vue';\nimport type { IconPropType } from '../../utils/globalType';\nimport { responsiveArray, type ResponsiveKeys } from '../../utils/responsiveObserve';\nimport { oneOf } from '../../utils/propsValidators';\n\nexport interface SiderHooks {\n attachSider: (id: string) => void;\n removeSider: (id: string) => void;\n}\n\nexport const siderTheme = ['light', 'dark'] as const;\nexport type SiderTheme = (typeof siderTheme)[number];\n\nexport const siderProps = {\n collapsible: {\n type: Boolean,\n default: false\n },\n collapsed: {\n type: Boolean,\n default: undefined as undefined\n },\n isRight: {\n type: Boolean,\n default: false\n },\n hideTrigger: {\n type: Boolean,\n default: false\n },\n zeroTrigger: {\n type: Boolean\n },\n triggerIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n width: {\n type: [Number, String],\n default: 200\n },\n collapsedWidth: {\n type: [Number, String],\n default: 80\n },\n breakpoint: {\n type: String as PropType<ResponsiveKeys>,\n\n validator: oneOf(responsiveArray)\n },\n background: {\n type: String\n }\n};\nexport type SiderProps = ExtractPropTypes<typeof siderProps>;\n\nexport const siderEmits = {\n 'update:collapsed': (v: boolean) => typeof v === 'boolean',\n collapse: (v: boolean, type: string) => typeof v === 'boolean' && typeof type === 'string',\n breakpoint: (v: boolean) => typeof v === 'boolean'\n};\n\nexport type SiderEmits = typeof siderEmits;\n\nexport interface LayoutSiderContext {\n collapsed: Ref<boolean>;\n collapseWidth: Ref<number | string>;\n}\n"],"names":[],"mappings":";;;MAUa,aAAa,CAAC,SAAS,MAAM;MAG7B,aAAa;AAAA,EACxB,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,aAAa;AAAA,IACX,MAAM;AAAA;AACR,EACA,aAAa;AAAA,IACX,MAAM,CAAC,QAAQ,MAAM;AAAA;AACvB,EACA,OAAO;AAAA,IACL,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA;AACX,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IAEN,WAAW,MAAM,eAAe;AAAA;AAClC,EACA,YAAY;AAAA,IACV,MAAM;AAAA;AAEV;MAGa,aAAa;AAAA,EACxB,oBAAoB,CAAC,MAAe,OAAO,MAAM;AAAA,EACjD,UAAU,CAAC,GAAY,SAAiB,OAAO,MAAM,aAAa,OAAO,SAAS;AAAA,EAClF,YAAY,CAAC,MAAe,OAAO,MAAM;AAC3C;;;;"}
@@ -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>;