@koi-design/uxd-ui 14.0.1 → 14.0.3

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 (268) hide show
  1. package/es/components/Alert/Alert.mjs +10 -24
  2. package/es/components/Alert/Alert.mjs.map +1 -1
  3. package/es/components/Alert/Alert.type.d.ts +5 -7
  4. package/es/components/Alert/Alert.type.mjs +4 -7
  5. package/es/components/Alert/Alert.type.mjs.map +1 -1
  6. package/es/components/Alert/Alert.vue.d.ts +5 -15
  7. package/es/components/Alert/index.d.ts +9 -27
  8. package/es/components/Alert/index.mjs +1 -1
  9. package/es/components/AutoComplete/AutoComplete.vue.d.ts +9 -0
  10. package/es/components/AutoComplete/index.d.ts +18 -0
  11. package/es/components/Calendar/Calendar.vue.d.ts +2 -2
  12. package/es/components/Calendar/index.d.ts +6 -6
  13. package/es/components/ColorPicker/ColorPicker.vue.d.ts +9 -0
  14. package/es/components/ColorPicker/index.d.ts +18 -0
  15. package/es/components/DatePicker/DatePicker.vue.d.ts +14 -14
  16. package/es/components/DatePicker/Panel/DatePickerPanel.vue.d.ts +4 -4
  17. package/es/components/DatePicker/Panel/DateRangePanel.vue.d.ts +6 -6
  18. package/es/components/DatePicker/Panel/RangePart.vue.d.ts +2 -2
  19. package/es/components/DatePicker/Trigger/DateRangeInput.vue.d.ts +4 -4
  20. package/es/components/DatePicker/index.d.ts +28 -28
  21. package/es/components/Dropdown/DropdownMenu.mjs +0 -1
  22. package/es/components/Dropdown/DropdownMenu.mjs.map +1 -1
  23. package/es/components/Input/Input.d.ts +6 -0
  24. package/es/components/Input/Input.mjs +1 -0
  25. package/es/components/Input/Input.mjs.map +1 -1
  26. package/es/components/Input/Input.type.d.ts +3 -0
  27. package/es/components/Input/Input.type.mjs +3 -0
  28. package/es/components/Input/Input.type.mjs.map +1 -1
  29. package/es/components/Input/index.d.ts +9 -0
  30. package/es/components/Menu/MenuItem.vue.d.ts +33 -33
  31. package/es/components/Menu/index.d.ts +33 -33
  32. package/es/components/Message/Message.mjs +4 -3
  33. package/es/components/Message/Message.mjs.map +1 -1
  34. package/es/components/Notice/Notice.mjs +15 -13
  35. package/es/components/Notice/Notice.mjs.map +1 -1
  36. package/es/components/Notice/Notice.type.d.ts +3 -2
  37. package/es/components/Notification/Notice.mjs +1 -5
  38. package/es/components/Notification/Notice.mjs.map +1 -1
  39. package/es/components/Notification/Notification.mjs.map +1 -1
  40. package/es/components/Pagination/Options.d.ts +8 -0
  41. package/es/components/Pagination/Options.mjs +6 -1
  42. package/es/components/Pagination/Options.mjs.map +1 -1
  43. package/es/components/Pagination/Pagination.d.ts +8 -0
  44. package/es/components/Pagination/Pagination.mjs +2 -0
  45. package/es/components/Pagination/Pagination.mjs.map +1 -1
  46. package/es/components/Pagination/index.d.ts +16 -0
  47. package/es/components/Rate/Rate.vue.d.ts +33 -33
  48. package/es/components/Rate/index.d.ts +66 -66
  49. package/es/components/Statistic/Statistic.vue.d.ts +33 -33
  50. package/es/components/Statistic/index.d.ts +66 -66
  51. package/es/components/Table/BaseTable.vue.d.ts +132 -132
  52. package/es/components/Table/BodyTable.vue.d.ts +132 -132
  53. package/es/components/Table/HeadTable.vue.d.ts +132 -132
  54. package/es/components/Table/Table.vue.d.ts +280 -264
  55. package/es/components/Table/TableBox.vue.d.ts +264 -264
  56. package/es/components/Table/tableUnits/ExpandRows.vue.d.ts +33 -33
  57. package/es/components/Table/tableUnits/FilterDropdown.vue.d.ts +66 -66
  58. package/es/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +66 -66
  59. package/es/components/Table/tableUnits/TableBody.vue.d.ts +66 -66
  60. package/es/components/Table/tableUnits/TableCell.vue.d.ts +33 -33
  61. package/es/components/Table/tableUnits/TableHeader.vue.d.ts +66 -66
  62. package/es/components/Table/tableUnits/TableHeaderRow.vue.d.ts +66 -66
  63. package/es/components/Table/tableUnits/TableRow.vue.d.ts +33 -33
  64. package/es/components/ThemePanel/ThemePanel.vue.d.ts +33 -33
  65. package/es/components/ThemePanel/index.d.ts +66 -66
  66. package/es/components/TimePicker/Panel/TimeRangePane.vue.d.ts +4 -4
  67. package/es/components/TimePicker/TimePicker.vue.d.ts +12 -12
  68. package/es/components/TimePicker/Trigger/TimeRangeInput.vue.d.ts +4 -4
  69. package/es/components/TimePicker/index.d.ts +28 -28
  70. package/es/components/Tooltip/Tooltip.mjs +84 -8
  71. package/es/components/Tooltip/Tooltip.mjs.map +1 -1
  72. package/es/components/Tooltip/Tooltip.type.d.ts +2 -2
  73. package/es/components/Tooltip/Tooltip.type.mjs +1 -3
  74. package/es/components/Tooltip/Tooltip.type.mjs.map +1 -1
  75. package/es/components/Tooltip/Tooltip.vue.d.ts +13 -13
  76. package/es/components/Tooltip/index.d.ts +33 -33
  77. package/es/components/Transfer/Transfer.vue.d.ts +27 -0
  78. package/es/components/Transfer/TransferList.vue.d.ts +9 -0
  79. package/es/components/Transfer/index.d.ts +72 -0
  80. package/es/components/index.mjs +1 -1
  81. package/es/index.mjs +1 -1
  82. package/lib/components/Alert/Alert.js +9 -23
  83. package/lib/components/Alert/Alert.js.map +1 -1
  84. package/lib/components/Alert/Alert.type.d.ts +5 -7
  85. package/lib/components/Alert/Alert.type.js +4 -6
  86. package/lib/components/Alert/Alert.type.js.map +1 -1
  87. package/lib/components/Alert/Alert.vue.d.ts +5 -15
  88. package/lib/components/Alert/index.d.ts +9 -27
  89. package/lib/components/Alert/index.js +1 -0
  90. package/lib/components/Alert/index.js.map +1 -1
  91. package/lib/components/AutoComplete/AutoComplete.vue.d.ts +9 -0
  92. package/lib/components/AutoComplete/index.d.ts +18 -0
  93. package/lib/components/Calendar/Calendar.vue.d.ts +2 -2
  94. package/lib/components/Calendar/index.d.ts +6 -6
  95. package/lib/components/ColorPicker/ColorPicker.vue.d.ts +9 -0
  96. package/lib/components/ColorPicker/index.d.ts +18 -0
  97. package/lib/components/DatePicker/DatePicker.vue.d.ts +14 -14
  98. package/lib/components/DatePicker/Panel/DatePickerPanel.vue.d.ts +4 -4
  99. package/lib/components/DatePicker/Panel/DateRangePanel.vue.d.ts +6 -6
  100. package/lib/components/DatePicker/Panel/RangePart.vue.d.ts +2 -2
  101. package/lib/components/DatePicker/Trigger/DateRangeInput.vue.d.ts +4 -4
  102. package/lib/components/DatePicker/index.d.ts +28 -28
  103. package/lib/components/Dropdown/DropdownMenu.js +0 -1
  104. package/lib/components/Dropdown/DropdownMenu.js.map +1 -1
  105. package/lib/components/Input/Input.d.ts +6 -0
  106. package/lib/components/Input/Input.js +1 -0
  107. package/lib/components/Input/Input.js.map +1 -1
  108. package/lib/components/Input/Input.type.d.ts +3 -0
  109. package/lib/components/Input/Input.type.js +3 -0
  110. package/lib/components/Input/Input.type.js.map +1 -1
  111. package/lib/components/Input/index.d.ts +9 -0
  112. package/lib/components/Menu/MenuItem.vue.d.ts +33 -33
  113. package/lib/components/Menu/index.d.ts +33 -33
  114. package/lib/components/Message/Message.js +4 -3
  115. package/lib/components/Message/Message.js.map +1 -1
  116. package/lib/components/Notice/Notice.js +15 -13
  117. package/lib/components/Notice/Notice.js.map +1 -1
  118. package/lib/components/Notice/Notice.type.d.ts +3 -2
  119. package/lib/components/Notification/Notice.js +1 -5
  120. package/lib/components/Notification/Notice.js.map +1 -1
  121. package/lib/components/Notification/Notification.js.map +1 -1
  122. package/lib/components/Pagination/Options.d.ts +8 -0
  123. package/lib/components/Pagination/Options.js +6 -1
  124. package/lib/components/Pagination/Options.js.map +1 -1
  125. package/lib/components/Pagination/Pagination.d.ts +8 -0
  126. package/lib/components/Pagination/Pagination.js +2 -0
  127. package/lib/components/Pagination/Pagination.js.map +1 -1
  128. package/lib/components/Pagination/index.d.ts +16 -0
  129. package/lib/components/Rate/Rate.vue.d.ts +33 -33
  130. package/lib/components/Rate/index.d.ts +66 -66
  131. package/lib/components/Statistic/Statistic.vue.d.ts +33 -33
  132. package/lib/components/Statistic/index.d.ts +66 -66
  133. package/lib/components/Table/BaseTable.vue.d.ts +132 -132
  134. package/lib/components/Table/BodyTable.vue.d.ts +132 -132
  135. package/lib/components/Table/HeadTable.vue.d.ts +132 -132
  136. package/lib/components/Table/Table.vue.d.ts +280 -264
  137. package/lib/components/Table/TableBox.vue.d.ts +264 -264
  138. package/lib/components/Table/tableUnits/ExpandRows.vue.d.ts +33 -33
  139. package/lib/components/Table/tableUnits/FilterDropdown.vue.d.ts +66 -66
  140. package/lib/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +66 -66
  141. package/lib/components/Table/tableUnits/TableBody.vue.d.ts +66 -66
  142. package/lib/components/Table/tableUnits/TableCell.vue.d.ts +33 -33
  143. package/lib/components/Table/tableUnits/TableHeader.vue.d.ts +66 -66
  144. package/lib/components/Table/tableUnits/TableHeaderRow.vue.d.ts +66 -66
  145. package/lib/components/Table/tableUnits/TableRow.vue.d.ts +33 -33
  146. package/lib/components/ThemePanel/ThemePanel.vue.d.ts +33 -33
  147. package/lib/components/ThemePanel/index.d.ts +66 -66
  148. package/lib/components/TimePicker/Panel/TimeRangePane.vue.d.ts +4 -4
  149. package/lib/components/TimePicker/TimePicker.vue.d.ts +12 -12
  150. package/lib/components/TimePicker/Trigger/TimeRangeInput.vue.d.ts +4 -4
  151. package/lib/components/TimePicker/index.d.ts +28 -28
  152. package/lib/components/Tooltip/Tooltip.js +84 -8
  153. package/lib/components/Tooltip/Tooltip.js.map +1 -1
  154. package/lib/components/Tooltip/Tooltip.type.d.ts +2 -2
  155. package/lib/components/Tooltip/Tooltip.type.js +1 -3
  156. package/lib/components/Tooltip/Tooltip.type.js.map +1 -1
  157. package/lib/components/Tooltip/Tooltip.vue.d.ts +13 -13
  158. package/lib/components/Tooltip/index.d.ts +33 -33
  159. package/lib/components/Transfer/Transfer.vue.d.ts +27 -0
  160. package/lib/components/Transfer/TransferList.vue.d.ts +9 -0
  161. package/lib/components/Transfer/index.d.ts +72 -0
  162. package/lib/components/index.js +1 -0
  163. package/lib/components/index.js.map +1 -1
  164. package/lib/index.js +1 -0
  165. package/lib/index.js.map +1 -1
  166. package/package.json +1 -1
  167. package/styles/components/alert/index.css +1 -1
  168. package/styles/components/alert/index.less +51 -48
  169. package/styles/components/alert/var.less +8 -42
  170. package/styles/components/autoComplete/index.css +1 -1
  171. package/styles/components/avatar/index.css +1 -1
  172. package/styles/components/badge/index.css +1 -1
  173. package/styles/components/badge/var.less +2 -2
  174. package/styles/components/button/index.css +1 -1
  175. package/styles/components/carousel/index.css +1 -1
  176. package/styles/components/cascader/index.css +1 -1
  177. package/styles/components/datePicker/index.css +1 -1
  178. package/styles/components/dropdown/index.css +1 -1
  179. package/styles/components/dropdown/index.less +12 -26
  180. package/styles/components/dropdown/var.less +6 -19
  181. package/styles/components/form/index.css +1 -1
  182. package/styles/components/form/index.less +25 -12
  183. package/styles/components/icon/index.css +1 -1
  184. package/styles/components/input/index.css +1 -1
  185. package/styles/components/inputNumber/index.css +1 -1
  186. package/styles/components/link/index.css +1 -1
  187. package/styles/components/mentions/index.css +1 -1
  188. package/styles/components/message/index.css +1 -1
  189. package/styles/components/message/index.less +63 -30
  190. package/styles/components/message/var.less +6 -27
  191. package/styles/components/modal/index.css +1 -1
  192. package/styles/components/notice/index.css +1 -1
  193. package/styles/components/notice/index.less +93 -49
  194. package/styles/components/notice/var.less +10 -33
  195. package/styles/components/pagination/index.css +1 -1
  196. package/styles/components/pagination/index.less +41 -178
  197. package/styles/components/pagination/var.less +8 -21
  198. package/styles/components/select/index.css +1 -1
  199. package/styles/components/select/index.less +3 -10
  200. package/styles/components/select/var.less +1 -3
  201. package/styles/components/spin/index.css +1 -1
  202. package/styles/components/tag/index.css +1 -1
  203. package/styles/components/tag/var.less +17 -17
  204. package/styles/components/timePicker/index.css +1 -1
  205. package/styles/components/tooltip/index.css +1 -1
  206. package/styles/components/tooltip/index.less +3 -55
  207. package/styles/components/tooltip/var.less +15 -14
  208. package/styles/cssVariable.css +1 -1
  209. package/styles/cssVariable.less +8 -9
  210. package/styles/index.css +1 -1
  211. package/types/components/Alert/Alert.type.d.ts +5 -7
  212. package/types/components/Alert/Alert.vue.d.ts +5 -15
  213. package/types/components/Alert/index.d.ts +9 -27
  214. package/types/components/AutoComplete/AutoComplete.vue.d.ts +9 -0
  215. package/types/components/AutoComplete/index.d.ts +18 -0
  216. package/types/components/Calendar/Calendar.vue.d.ts +2 -2
  217. package/types/components/Calendar/index.d.ts +6 -6
  218. package/types/components/ColorPicker/ColorPicker.vue.d.ts +9 -0
  219. package/types/components/ColorPicker/index.d.ts +18 -0
  220. package/types/components/DatePicker/DatePicker.vue.d.ts +14 -14
  221. package/types/components/DatePicker/Panel/DatePickerPanel.vue.d.ts +4 -4
  222. package/types/components/DatePicker/Panel/DateRangePanel.vue.d.ts +6 -6
  223. package/types/components/DatePicker/Panel/RangePart.vue.d.ts +2 -2
  224. package/types/components/DatePicker/Trigger/DateRangeInput.vue.d.ts +4 -4
  225. package/types/components/DatePicker/index.d.ts +28 -28
  226. package/types/components/Input/Input.d.ts +6 -0
  227. package/types/components/Input/Input.type.d.ts +3 -0
  228. package/types/components/Input/index.d.ts +9 -0
  229. package/types/components/Menu/MenuItem.vue.d.ts +33 -33
  230. package/types/components/Menu/index.d.ts +33 -33
  231. package/types/components/Notice/Notice.type.d.ts +3 -2
  232. package/types/components/Pagination/Options.d.ts +8 -0
  233. package/types/components/Pagination/Pagination.d.ts +8 -0
  234. package/types/components/Pagination/index.d.ts +16 -0
  235. package/types/components/Rate/Rate.vue.d.ts +33 -33
  236. package/types/components/Rate/index.d.ts +66 -66
  237. package/types/components/Statistic/Statistic.vue.d.ts +33 -33
  238. package/types/components/Statistic/index.d.ts +66 -66
  239. package/types/components/Table/BaseTable.vue.d.ts +132 -132
  240. package/types/components/Table/BodyTable.vue.d.ts +132 -132
  241. package/types/components/Table/HeadTable.vue.d.ts +132 -132
  242. package/types/components/Table/Table.vue.d.ts +280 -264
  243. package/types/components/Table/TableBox.vue.d.ts +264 -264
  244. package/types/components/Table/tableUnits/ExpandRows.vue.d.ts +33 -33
  245. package/types/components/Table/tableUnits/FilterDropdown.vue.d.ts +66 -66
  246. package/types/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +66 -66
  247. package/types/components/Table/tableUnits/TableBody.vue.d.ts +66 -66
  248. package/types/components/Table/tableUnits/TableCell.vue.d.ts +33 -33
  249. package/types/components/Table/tableUnits/TableHeader.vue.d.ts +66 -66
  250. package/types/components/Table/tableUnits/TableHeaderRow.vue.d.ts +66 -66
  251. package/types/components/Table/tableUnits/TableRow.vue.d.ts +33 -33
  252. package/types/components/ThemePanel/ThemePanel.vue.d.ts +33 -33
  253. package/types/components/ThemePanel/index.d.ts +66 -66
  254. package/types/components/TimePicker/Panel/TimeRangePane.vue.d.ts +4 -4
  255. package/types/components/TimePicker/TimePicker.vue.d.ts +12 -12
  256. package/types/components/TimePicker/Trigger/TimeRangeInput.vue.d.ts +4 -4
  257. package/types/components/TimePicker/index.d.ts +28 -28
  258. package/types/components/Tooltip/Tooltip.type.d.ts +2 -2
  259. package/types/components/Tooltip/Tooltip.vue.d.ts +13 -13
  260. package/types/components/Tooltip/index.d.ts +33 -33
  261. package/types/components/Transfer/Transfer.vue.d.ts +27 -0
  262. package/types/components/Transfer/TransferList.vue.d.ts +9 -0
  263. package/types/components/Transfer/index.d.ts +72 -0
  264. package/uxd-ui.css +1 -1
  265. package/uxd-ui.esm.min.mjs +6 -6
  266. package/uxd-ui.esm.mjs +134 -66
  267. package/uxd-ui.umd.js +133 -64
  268. package/uxd-ui.umd.min.js +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sources":["../../../../src/components/Message/Message.tsx"],"sourcesContent":["import type { Component } from 'vue';\nimport Notification from '@uxd-ui/components/Notification';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { Info, CheckCircle, AlertCircle, CircleX, LoaderCircle } from 'lucide-vue-next';\nimport type { NoticationPublicInstance } from '../Notification/Notication.type';\nimport type { MessageOption, MessageParams, MessageType } from './Message.type';\n\nlet prefixCls = 'uui-message';\nconst prefixKey = 'uui_message_key_';\nlet defaultDuration = 3;\nlet defaultTop = '24px';\nlet key = 0;\nlet messageInstance: NoticationPublicInstance | null;\nlet transitionName = 'move-up';\nlet maxCount: number;\n\nconst iconTypes: Record<MessageType, Component> = {\n info: Info,\n success: CheckCircle,\n warning: AlertCircle,\n error: CircleX,\n loading: LoaderCircle\n};\n\nconst getMessageInstance = () => {\n messageInstance =\n messageInstance ||\n (Notification.newInstance({\n prefixCls,\n transitionName,\n style: { top: defaultTop },\n maxCount,\n type: 'message'\n }) as NoticationPublicInstance);\n return messageInstance;\n};\n\nconst notice = (args: MessageParams) => {\n const { type, content } = args;\n const duration = args.duration !== undefined ? args.duration : defaultDuration;\n const iconType = iconTypes[type];\n key += 1;\n const target = args.key || `${prefixKey}${key}`;\n\n const instance = getMessageInstance();\n instance &&\n instance.notice({\n key: target,\n duration,\n style: {},\n msgType: type,\n closable: args.closable,\n onClose: args.onClose,\n background: args.background,\n content: () => (\n <div class={`${prefixCls}-custom-content ${prefixCls}-${type}`} data-color={type}>\n <UIcon spin={type === 'loading'}>\n <iconType />\n </UIcon>\n <span>{typeof content === 'function' ? content() : content}</span>\n </div>\n )\n });\n\n const result = () => {\n if (messageInstance) {\n messageInstance.remove(target);\n }\n };\n return result;\n};\n\nconst api = {\n config(options: MessageOption) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null;\n }\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n messageInstance = null;\n }\n if (options.prefixCls !== undefined) {\n prefixCls = options.prefixCls;\n }\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n },\n message(type: MessageType, options: string | Omit<MessageParams, 'type'>, duration?: number) {\n let opt: MessageParams;\n if (typeof options === 'string') {\n opt = {\n type,\n content: options,\n duration\n };\n } else {\n opt = {\n type,\n ...options,\n ...(duration ? { duration } : {})\n };\n }\n return notice(opt);\n },\n close(closeKey: string) {\n if (messageInstance) {\n messageInstance.remove(closeKey);\n }\n },\n destroy() {\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n }\n }\n};\n\nexport type MessageFunction = (options: string | Omit<MessageParams, 'type'>, duration?: number) => () => void;\n\nexport interface Message {\n config(options: MessageOption): void;\n message(type: MessageType, options: string | Omit<MessageParams, 'type'>, duration?: number | undefined): () => void;\n close(closeKey: string): void;\n destroy(): void;\n success: MessageFunction;\n info: MessageFunction;\n error: MessageFunction;\n warning: MessageFunction;\n loading: MessageFunction;\n}\n\n(['success', 'info', 'error', 'warning', 'loading'] as MessageType[]).forEach((type) => {\n (api as Message)[type] = (options: string | Omit<MessageParams, 'type'>, duration?: number) => {\n return api.message(type, options, duration);\n };\n});\n\nexport default api as Message;\n"],"names":["prefixCls","prefixKey","defaultDuration","defaultTop","key","messageInstance","transitionName","maxCount","iconTypes","info","Info","success","CheckCircle","warning","AlertCircle","error","CircleX","loading","LoaderCircle","getMessageInstance","Notification","newInstance","style","top","type","notice","args","content","duration","undefined","iconType","target","instance","msgType","closable","onClose","background","_createVNode","UIcon","default","result","remove","api","config","options","message","opt","close","closeKey","destroy","forEach"],"mappings":"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"}
1
+ {"version":3,"file":"Message.js","sources":["../../../../src/components/Message/Message.tsx"],"sourcesContent":["import type { Component } from 'vue';\nimport Notification from '@uxd-ui/components/Notification';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { Info, CheckCircle, AlertCircle, CircleX, LoaderCircle } from 'lucide-vue-next';\nimport type { NoticationPublicInstance } from '../Notification/Notication.type';\nimport type { MessageOption, MessageParams, MessageType } from './Message.type';\n\nlet prefixCls = 'uui-message';\nconst prefixKey = 'uui_message_key_';\nlet defaultDuration = 3;\nlet defaultTop = '24px';\nlet key = 0;\nlet messageInstance: NoticationPublicInstance | null;\nlet transitionName = 'move-up';\nlet maxCount: number;\n\nconst iconTypes: Record<MessageType, Component> = {\n info: Info,\n success: CheckCircle,\n warning: AlertCircle,\n error: CircleX,\n loading: LoaderCircle\n};\n\nconst getMessageInstance = () => {\n messageInstance =\n messageInstance ||\n (Notification.newInstance({\n prefixCls,\n transitionName,\n style: { top: defaultTop },\n maxCount,\n type: 'message'\n }) as NoticationPublicInstance);\n return messageInstance;\n};\n\nconst notice = (args: MessageParams) => {\n const { type, content, showIcon = true } = args;\n const duration = args.duration !== undefined ? args.duration : defaultDuration;\n const iconType = iconTypes[type];\n key += 1;\n const target = args.key || `${prefixKey}${key}`;\n\n const instance = getMessageInstance();\n instance &&\n instance.notice({\n key: target,\n duration,\n style: {},\n msgType: type,\n closable: args.closable,\n onClose: args.onClose,\n background: args.background,\n content: () => (\n <div class={`${prefixCls}-custom-content ${prefixCls}-${type}`} data-type={type}>\n {showIcon && (\n <UIcon spin={type === 'loading'}>\n <iconType />\n </UIcon>\n )}\n <span>{typeof content === 'function' ? content() : content}</span>\n </div>\n )\n });\n\n const result = () => {\n if (messageInstance) {\n messageInstance.remove(target);\n }\n };\n return result;\n};\n\nconst api = {\n config(options: MessageOption) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null;\n }\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n messageInstance = null;\n }\n if (options.prefixCls !== undefined) {\n prefixCls = options.prefixCls;\n }\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n },\n message(type: MessageType, options: string | Omit<MessageParams, 'type'>, duration?: number) {\n let opt: MessageParams;\n if (typeof options === 'string') {\n opt = {\n type,\n content: options,\n duration\n };\n } else {\n opt = {\n type,\n ...options,\n ...(duration ? { duration } : {})\n };\n }\n return notice(opt);\n },\n close(closeKey: string) {\n if (messageInstance) {\n messageInstance.remove(closeKey);\n }\n },\n destroy() {\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n }\n }\n};\n\nexport type MessageFunction = (options: string | Omit<MessageParams, 'type'>, duration?: number) => () => void;\n\nexport interface Message {\n config(options: MessageOption): void;\n message(type: MessageType, options: string | Omit<MessageParams, 'type'>, duration?: number | undefined): () => void;\n close(closeKey: string): void;\n destroy(): void;\n success: MessageFunction;\n info: MessageFunction;\n error: MessageFunction;\n warning: MessageFunction;\n loading: MessageFunction;\n}\n\n(['success', 'info', 'error', 'warning', 'loading'] as MessageType[]).forEach((type) => {\n (api as Message)[type] = (options: string | Omit<MessageParams, 'type'>, duration?: number) => {\n return api.message(type, options, duration);\n };\n});\n\nexport default api as Message;\n"],"names":["prefixCls","prefixKey","defaultDuration","defaultTop","key","messageInstance","transitionName","maxCount","iconTypes","info","Info","success","CheckCircle","warning","AlertCircle","error","CircleX","loading","LoaderCircle","getMessageInstance","Notification","newInstance","style","top","type","notice","args","content","showIcon","duration","undefined","iconType","target","instance","msgType","closable","onClose","background","_createVNode","UIcon","default","result","remove","api","config","options","message","opt","close","closeKey","destroy","forEach"],"mappings":"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"}
@@ -11,9 +11,9 @@ var Notification = require('../Notification/Notification.js');
11
11
  let prefixCls = "uui-notice";
12
12
  const prefixKey = "uui_notice_key_";
13
13
  let defaultDuration = 4.5;
14
- let defaultPlacement = "top-right";
15
- let defaultBottom = "24px";
16
- let defaultTop = "24px";
14
+ let defaultPlacement = "bottom-right";
15
+ let defaultBottom = "0px";
16
+ let defaultTop = "0px";
17
17
  let key = 0;
18
18
  const noticeInstance = {};
19
19
  const transitionName = "move-notice";
@@ -88,7 +88,8 @@ const notice = (args) => {
88
88
  placement,
89
89
  top,
90
90
  bottom,
91
- btn
91
+ action,
92
+ showIcon = true
92
93
  } = args;
93
94
  const duration = args.duration !== void 0 ? args.duration : defaultDuration;
94
95
  let iconType = propIconType || void 0;
@@ -102,15 +103,14 @@ const notice = (args) => {
102
103
  top,
103
104
  bottom
104
105
  });
105
- const IconNode = iconType ? vue.createVNode("span", {
106
- "class": `${prefixCls}-icon ${prefixCls}-icon-${type}`,
107
- "data-color": type || void 0
106
+ const IconNode = showIcon && iconType ? vue.createVNode("span", {
107
+ "class": `${prefixCls}-icon ${prefixCls}-icon-${type}`
108
108
  }, [vue.createVNode(index.UIcon, {
109
109
  "class": `${iconClass || ""}`
110
110
  }, {
111
111
  default: () => [vue.createVNode(iconType, null, null)]
112
112
  })]) : null;
113
- const withIconCls = iconType ? `${prefixCls}-with-icon ${prefixCls}-with-${type} ` : "";
113
+ const withIconCls = showIcon && iconType ? `${prefixCls}-with-icon ${prefixCls}-with-${type} ` : "";
114
114
  const withDescCls = desc ? `${prefixCls}-with-desc` : "";
115
115
  instance.notice({
116
116
  key: target,
@@ -120,14 +120,16 @@ const notice = (args) => {
120
120
  style: args.style || {},
121
121
  class: args.class,
122
122
  content: () => vue.createVNode("div", {
123
- "class": `${withIconCls} ${withDescCls}`
124
- }, [IconNode, vue.createVNode("div", {
123
+ "class": `${prefixCls}-wrapper ${withIconCls} ${withDescCls}`,
124
+ "data-type": type || void 0
125
+ }, [IconNode, vue.createVNode("div", null, [vue.createVNode("div", {
125
126
  "class": `${prefixCls}-title`
126
127
  }, [typeof title === "function" ? title() : title]), vue.createVNode("div", {
127
128
  "class": `${prefixCls}-desc`
128
- }, [typeof desc === "function" ? desc() : desc]), btn ? vue.createVNode("span", {
129
- "class": `${prefixCls}-btn`
130
- }, [typeof btn === "function" ? btn() : btn]) : null])
129
+ }, [typeof desc === "function" ? desc() : desc])]), action ? vue.createVNode("button", {
130
+ "class": `${prefixCls}-btn`,
131
+ "onClick": args.onAction
132
+ }, [action]) : null])
131
133
  });
132
134
  const result = () => {
133
135
  const cls = `${prefixCls}-${placement}`;
@@ -1 +1 @@
1
- {"version":3,"file":"Notice.js","sources":["../../../../src/components/Notice/Notice.tsx"],"sourcesContent":["import type { Component } from 'vue';\nimport Notification from '@uxd-ui/components/Notification';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { Info, CircleCheck, CircleAlert, CircleX } from 'lucide-vue-next';\nimport type { NoticationPublicInstance } from '../Notification/Notication.type';\nimport type { Notice, NoticeOptions, NoticeParams, NoticePlacement, NoticeType } from './Notice.type';\n\nlet prefixCls = 'uui-notice';\nconst prefixKey = 'uui_notice_key_';\nlet defaultDuration = 4.5;\nlet defaultPlacement: NoticePlacement = 'top-right';\nlet defaultBottom = '24px';\nlet defaultTop = '24px';\nlet key = 0;\nconst noticeInstance: Record<string, NoticationPublicInstance> = {};\nconst transitionName = 'move-notice';\nlet maxCount: number;\n\nconst iconTypes: Record<NoticeType, Component[]> = {\n info: [Info, Info],\n success: [CircleCheck, CircleCheck],\n warning: [CircleAlert, CircleAlert],\n error: [CircleX, CircleX]\n};\n\nconst getStyle = (placement: NoticePlacement, top = defaultTop, bottom = defaultBottom) => {\n let style;\n switch (placement) {\n case 'top-left':\n style = {\n left: '0px',\n top,\n bottom: 'auto'\n };\n break;\n case 'top-right':\n style = {\n right: '0px',\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom-left':\n style = {\n left: '0px',\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: '0px',\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n};\n\nconst getNoticeInstance = ({ placement = defaultPlacement, top, bottom }: NoticeParams) => {\n const cls = `${prefixCls}-${placement}`;\n if (noticeInstance[cls]) {\n return noticeInstance[cls];\n }\n const instance: NoticationPublicInstance = Notification.newInstance({\n prefixCls,\n class: cls,\n style: getStyle(placement, top, bottom),\n transitionName,\n maxCount,\n type: 'notice'\n });\n noticeInstance[cls] = instance;\n return instance;\n};\n\nconst notice = (args: NoticeParams) => {\n const { type, iconType: propIconType, iconClass, title, desc, placement, top, bottom, btn } = args;\n const duration = args.duration !== undefined ? args.duration : defaultDuration;\n let iconType = propIconType || undefined;\n if (type && !iconType) {\n iconType = desc ? iconTypes[type][1] : iconTypes[type][0];\n }\n key += 1;\n const target = args.key || `${prefixKey}${key}`;\n const instance = getNoticeInstance({\n placement,\n top,\n bottom\n } as NoticeParams);\n\n // const computedColor = {\n // info: 'blue',\n // error: 'red',\n // warning: 'orange',\n // success: 'green'\n // };\n\n const IconNode = iconType ? (\n <span class={`${prefixCls}-icon ${prefixCls}-icon-${type}`} data-color={type || undefined}>\n <UIcon class={`${iconClass || ''}`}>\n <iconType />\n </UIcon>\n </span>\n ) : null;\n const withIconCls = iconType ? `${prefixCls}-with-icon ${prefixCls}-with-${type} ` : '';\n const withDescCls = desc ? `${prefixCls}-with-desc` : '';\n instance.notice({\n key: target,\n duration,\n closable: true,\n onClose: args.onClose,\n style: args.style || {},\n class: args.class,\n content: () => (\n <div class={`${withIconCls} ${withDescCls}`}>\n {IconNode}\n <div class={`${prefixCls}-title`}>{typeof title === 'function' ? title() : title}</div>\n <div class={`${prefixCls}-desc`}>{typeof desc === 'function' ? desc() : desc}</div>\n {btn ? <span class={`${prefixCls}-btn`}>{typeof btn === 'function' ? btn() : btn}</span> : null}\n </div>\n )\n });\n\n const result = () => {\n const cls = `${prefixCls}-${placement}`;\n if (noticeInstance[cls]) {\n noticeInstance[cls].remove(target);\n }\n };\n return result;\n};\n\nconst api = {\n config(options: NoticeOptions) {\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.placement !== undefined) {\n defaultPlacement = options.placement;\n }\n if (options.bottom !== undefined) {\n defaultBottom = typeof options.bottom === 'number' ? `${options.bottom}px` : options.bottom;\n }\n if (options.top !== undefined) {\n defaultTop = typeof options.top === 'number' ? `${options.top}px` : options.top;\n }\n if (options.prefixCls !== undefined) {\n prefixCls = options.prefixCls;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n },\n open: notice,\n close(closeKey: string) {\n Object.keys(noticeInstance).forEach((cls) => {\n noticeInstance[cls].remove(closeKey);\n });\n },\n destroy() {\n Object.keys(noticeInstance).forEach((cls) => {\n noticeInstance[cls].destroy();\n delete noticeInstance[cls];\n });\n }\n};\n\n(['success', 'info', 'error', 'warning'] as NoticeType[]).forEach((type) => {\n (api as Notice)[type] = (args: Omit<NoticeParams, 'type'>) => {\n return api.open({ type, ...args });\n };\n});\n\nexport default api as Notice;\n"],"names":["prefixCls","prefixKey","defaultDuration","defaultPlacement","defaultBottom","defaultTop","key","noticeInstance","transitionName","maxCount","iconTypes","info","Info","success","CircleCheck","warning","CircleAlert","error","CircleX","getStyle","placement","top","bottom","style","left","right","getNoticeInstance","cls","instance","Notification","newInstance","class","type","notice","args","iconType","propIconType","iconClass","title","desc","btn","duration","undefined","target","IconNode","_createVNode","UIcon","default","withIconCls","withDescCls","closable","onClose","content","result","remove","api","config","options","open","close","closeKey","Object","keys","forEach","destroy"],"mappings":"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"}
1
+ {"version":3,"file":"Notice.js","sources":["../../../../src/components/Notice/Notice.tsx"],"sourcesContent":["import type { Component } from 'vue';\nimport Notification from '@uxd-ui/components/Notification';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { Info, CircleCheck, CircleAlert, CircleX } from 'lucide-vue-next';\nimport type { NoticationPublicInstance } from '../Notification/Notication.type';\nimport type { Notice, NoticeOptions, NoticeParams, NoticePlacement, NoticeType } from './Notice.type';\n\nlet prefixCls = 'uui-notice';\nconst prefixKey = 'uui_notice_key_';\nlet defaultDuration = 4.5;\nlet defaultPlacement: NoticePlacement = 'bottom-right';\nlet defaultBottom = '0px';\nlet defaultTop = '0px';\nlet key = 0;\nconst noticeInstance: Record<string, NoticationPublicInstance> = {};\nconst transitionName = 'move-notice';\nlet maxCount: number;\n\nconst iconTypes: Record<NoticeType, Component[]> = {\n info: [Info, Info],\n success: [CircleCheck, CircleCheck],\n warning: [CircleAlert, CircleAlert],\n error: [CircleX, CircleX]\n};\n\nconst getStyle = (placement: NoticePlacement, top = defaultTop, bottom = defaultBottom) => {\n let style;\n switch (placement) {\n case 'top-left':\n style = {\n left: '0px',\n top,\n bottom: 'auto'\n };\n break;\n case 'top-right':\n style = {\n right: '0px',\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom-left':\n style = {\n left: '0px',\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: '0px',\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n};\n\nconst getNoticeInstance = ({ placement = defaultPlacement, top, bottom }: NoticeParams) => {\n const cls = `${prefixCls}-${placement}`;\n if (noticeInstance[cls]) {\n return noticeInstance[cls];\n }\n const instance: NoticationPublicInstance = Notification.newInstance({\n prefixCls,\n class: cls,\n style: getStyle(placement, top, bottom),\n transitionName,\n maxCount,\n type: 'notice'\n });\n noticeInstance[cls] = instance;\n return instance;\n};\n\nconst notice = (args: NoticeParams) => {\n const { type, iconType: propIconType, iconClass, title, desc, placement, top, bottom, action, showIcon = true } = args;\n const duration = args.duration !== undefined ? args.duration : defaultDuration;\n let iconType = propIconType || undefined;\n if (type && !iconType) {\n iconType = desc ? iconTypes[type][1] : iconTypes[type][0];\n }\n key += 1;\n const target = args.key || `${prefixKey}${key}`;\n const instance = getNoticeInstance({\n placement,\n top,\n bottom\n } as NoticeParams);\n\n // const computedColor = {\n // info: 'blue',\n // error: 'red',\n // warning: 'orange',\n // success: 'green'\n // };\n\n const IconNode =\n showIcon && iconType ? (\n <span class={`${prefixCls}-icon ${prefixCls}-icon-${type}`}>\n <UIcon class={`${iconClass || ''}`}>\n <iconType />\n </UIcon>\n </span>\n ) : null;\n const withIconCls = showIcon && iconType ? `${prefixCls}-with-icon ${prefixCls}-with-${type} ` : '';\n const withDescCls = desc ? `${prefixCls}-with-desc` : '';\n instance.notice({\n key: target,\n duration,\n closable: true,\n onClose: args.onClose,\n style: args.style || {},\n class: args.class,\n content: () => (\n <div class={`${prefixCls}-wrapper ${withIconCls} ${withDescCls}`} data-type={type || undefined}>\n {IconNode}\n <div>\n <div class={`${prefixCls}-title`}>{typeof title === 'function' ? title() : title}</div>\n <div class={`${prefixCls}-desc`}>{typeof desc === 'function' ? desc() : desc}</div>\n </div>\n {action ? (\n <button class={`${prefixCls}-btn`} onClick={args.onAction}>\n {action}\n </button>\n ) : null}\n </div>\n )\n });\n\n const result = () => {\n const cls = `${prefixCls}-${placement}`;\n if (noticeInstance[cls]) {\n noticeInstance[cls].remove(target);\n }\n };\n return result;\n};\n\nconst api = {\n config(options: NoticeOptions) {\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.placement !== undefined) {\n defaultPlacement = options.placement;\n }\n if (options.bottom !== undefined) {\n defaultBottom = typeof options.bottom === 'number' ? `${options.bottom}px` : options.bottom;\n }\n if (options.top !== undefined) {\n defaultTop = typeof options.top === 'number' ? `${options.top}px` : options.top;\n }\n if (options.prefixCls !== undefined) {\n prefixCls = options.prefixCls;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n },\n open: notice,\n close(closeKey: string) {\n Object.keys(noticeInstance).forEach((cls) => {\n noticeInstance[cls].remove(closeKey);\n });\n },\n destroy() {\n Object.keys(noticeInstance).forEach((cls) => {\n noticeInstance[cls].destroy();\n delete noticeInstance[cls];\n });\n }\n};\n\n(['success', 'info', 'error', 'warning'] as NoticeType[]).forEach((type) => {\n (api as Notice)[type] = (args: Omit<NoticeParams, 'type'>) => {\n return api.open({ type, ...args });\n };\n});\n\nexport default api as Notice;\n"],"names":["prefixCls","prefixKey","defaultDuration","defaultPlacement","defaultBottom","defaultTop","key","noticeInstance","transitionName","maxCount","iconTypes","info","Info","success","CircleCheck","warning","CircleAlert","error","CircleX","getStyle","placement","top","bottom","style","left","right","getNoticeInstance","cls","instance","Notification","newInstance","class","type","notice","args","iconType","propIconType","iconClass","title","desc","action","showIcon","duration","undefined","target","IconNode","_createVNode","UIcon","default","withIconCls","withDescCls","closable","onClose","content","onAction","result","remove","api","config","options","open","close","closeKey","Object","keys","forEach","destroy"],"mappings":"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"}
@@ -5,16 +5,17 @@ export interface NoticeParams {
5
5
  key?: string;
6
6
  type?: NoticeType;
7
7
  iconType?: Component;
8
+ showIcon?: boolean;
8
9
  iconClass?: string;
9
10
  title?: string | (() => VNodeChild);
10
11
  desc?: string | (() => VNodeChild);
11
12
  placement?: NoticePlacement;
12
13
  top?: string;
13
14
  bottom?: string;
14
- btn?: () => VNodeChild;
15
+ action?: string;
15
16
  duration?: number;
16
17
  onClose?: () => void;
17
- onClick?: (e?: any) => void;
18
+ onAction?: () => void;
18
19
  style?: CSSProperties;
19
20
  class?: string;
20
21
  }
@@ -109,11 +109,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
109
109
  }
110
110
  ])
111
111
  }, [
112
- vue.createElementVNode("div", {
113
- class: vue.normalizeClass(`${_ctx.prefixCls}-content-text`)
114
- }, [
115
- vue.createVNode(_component_Render, { render: _ctx.content }, null, 8, ["render"])
116
- ], 2),
112
+ vue.createVNode(_component_Render, { render: _ctx.content }, null, 8, ["render"]),
117
113
  _ctx.closable ? (vue.openBlock(), vue.createElementBlock("a", {
118
114
  key: 0,
119
115
  tabindex: "0",
@@ -1 +1 @@
1
- {"version":3,"file":"Notice.js","sources":["../../../../src/components/Notification/Notice.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-closable`]: closable,\n [`${prefixCls}-background`]: background\n }\n ]\"\n @mouseenter=\"clearCloseTimer\"\n @mouseleave=\"startCloseTimer\"\n >\n <div\n :class=\"[\n `${prefixCls}-content`,\n {\n [`${prefixCls}-content-${msgType}`]: msgType\n }\n ]\"\n >\n <div :class=\"`${prefixCls}-content-text`\">\n <Render :render=\"content\" />\n </div>\n <a v-if=\"closable\" tabindex=\"0\" :class=\"`${prefixCls}-close`\" @click.stop.prevent=\"handleClose\">\n <UIcon>\n <X />\n </UIcon>\n </a>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, onMounted, onBeforeUnmount, watch } from 'vue';\nimport type { PropType, VNodeChild } from 'vue';\nimport { X } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport type { JSX } from 'vue/jsx-runtime';\nimport Render from '../base/Render';\nimport type { NoticeProps } from './Notication.type';\n\nexport default defineComponent({\n components: {\n UIcon,\n X,\n Render\n },\n props: {\n prefix: {\n type: String\n },\n duration: {\n type: Number,\n default: 1.5\n },\n closable: {\n type: Boolean,\n default: undefined as undefined\n },\n onClose: {\n type: Function as PropType<() => void>\n },\n content: {\n type: Function as PropType<() => VNodeChild | JSX.Element>\n },\n background: {\n type: Boolean,\n default: undefined as undefined\n },\n msgType: {\n type: String\n }\n },\n emits: ['close'],\n setup(props: NoticeProps, { emit }) {\n const prefixCls = computed(() => {\n return `${props.prefix}-notice`;\n });\n\n let closeTimer: any = null;\n let willDestory = false;\n\n const clearCloseTimer = () => {\n if (closeTimer) {\n clearTimeout(closeTimer);\n closeTimer = null;\n }\n };\n\n const handleClose = () => {\n clearCloseTimer();\n emit('close');\n };\n\n const startCloseTimer = () => {\n clearCloseTimer();\n if (props.duration !== 0 && !willDestory) {\n closeTimer = setTimeout(() => {\n handleClose();\n }, props.duration * 1000);\n }\n };\n\n onMounted(() => {\n startCloseTimer();\n });\n\n onBeforeUnmount(() => {\n clearCloseTimer();\n willDestory = true;\n });\n\n watch(\n () => props.duration,\n () => {\n startCloseTimer();\n }\n );\n\n return {\n prefixCls,\n handleClose,\n startCloseTimer,\n clearCloseTimer\n };\n }\n});\n</script>\n"],"names":["defineComponent","UIcon","X","Render","computed","_createElementBlock","_normalizeClass","_createElementVNode","_createVNode"],"mappings":";;;;;;;;;;AAyCA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,YAAY;AAAA,WACVC;AAAA,OACAC;AAAA,YACAC;AAAA;AACF,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA;AACR,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA;AACR,IACA,SAAS;AAAA,MACP,MAAM;AAAA;AACR,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA;AACR;AACF,EACA,OAAO,CAAC,OAAO;AAAA,EACf,MAAM,OAAoB,EAAE,QAAQ;UAC5B,YAAYC,aAAS,MAAM;aACxB,GAAG,MAAM;AAAA,KACjB;QAEG,aAAkB;QAClB,cAAc;UAEZ,kBAAkB,MAAM;UACxB,YAAY;qBACD,UAAU;qBACV;AAAA;AACf;UAGI,cAAc,MAAM;;WAEnB,OAAO;AAAA;UAGR,kBAAkB,MAAM;;UAExB,MAAM,aAAa,KAAK,CAAC,aAAa;qBAC3B,WAAW,MAAM;;AAChB,WACX,MAAM,WAAW,GAAI;AAAA;AAC1B;kBAGQ,MAAM;;AACE,KACjB;wBAEe,MAAM;;oBAEN;AAAA,KACf;;MAGC,MAAM,MAAM;AAAA,MACZ,MAAM;;AACY;AAClB;WAGK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;0BA7HCC,uBA4BM;IA3BH,OAAKC;MAAU;;YAA+B,4BAAuB;YAAsB,8BAAyB;;;IAOpH,cAAU,uCAAE;IACZ,cAAU,uCAAE;;IAEbC,uBAgBM;MAfH,OAAKD;WAAe;;cAA6C,0BAAqB,iBAAY;;;;MAOnGC,uBAEM;QAFA,OAAKD,sBAAK,6BAAS;AAAA;QACvBE,gBAA4B,qBAAnB,QAAQ;;MAEV,kCAATH,uBAII;;QAJe,UAAS;AAAA,QAAK,OAAKC,sBAAK,sBAAS;AAAA,QAAW,SAAK,yDAAe,+CAAW;;QAC5FE,gBAEQ;+BADN,MAAK;AAAA,YAALA,gBAAK;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Notice.js","sources":["../../../../src/components/Notification/Notice.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-closable`]: closable,\n [`${prefixCls}-background`]: background\n }\n ]\"\n @mouseenter=\"clearCloseTimer\"\n @mouseleave=\"startCloseTimer\"\n >\n <div\n :class=\"[\n `${prefixCls}-content`,\n {\n [`${prefixCls}-content-${msgType}`]: msgType\n }\n ]\"\n >\n <Render :render=\"content\" />\n\n <a v-if=\"closable\" tabindex=\"0\" :class=\"`${prefixCls}-close`\" @click.stop.prevent=\"handleClose\">\n <UIcon>\n <X />\n </UIcon>\n </a>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, onMounted, onBeforeUnmount, watch } from 'vue';\nimport type { PropType, VNodeChild } from 'vue';\nimport { X } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport type { JSX } from 'vue/jsx-runtime';\nimport Render from '../base/Render';\nimport type { NoticeProps } from './Notication.type';\n\nexport default defineComponent({\n components: {\n UIcon,\n X,\n Render\n },\n props: {\n prefix: {\n type: String\n },\n duration: {\n type: Number,\n default: 1.5\n },\n closable: {\n type: Boolean,\n default: undefined as undefined\n },\n onClose: {\n type: Function as PropType<() => void>\n },\n content: {\n type: Function as PropType<() => VNodeChild | JSX.Element>\n },\n background: {\n type: Boolean,\n default: undefined as undefined\n },\n msgType: {\n type: String\n }\n },\n emits: ['close'],\n setup(props: NoticeProps, { emit }) {\n const prefixCls = computed(() => {\n return `${props.prefix}-notice`;\n });\n\n let closeTimer: any = null;\n let willDestory = false;\n\n const clearCloseTimer = () => {\n if (closeTimer) {\n clearTimeout(closeTimer);\n closeTimer = null;\n }\n };\n\n const handleClose = () => {\n clearCloseTimer();\n emit('close');\n };\n\n const startCloseTimer = () => {\n clearCloseTimer();\n if (props.duration !== 0 && !willDestory) {\n closeTimer = setTimeout(() => {\n handleClose();\n }, props.duration * 1000);\n }\n };\n\n onMounted(() => {\n startCloseTimer();\n });\n\n onBeforeUnmount(() => {\n clearCloseTimer();\n willDestory = true;\n });\n\n watch(\n () => props.duration,\n () => {\n startCloseTimer();\n }\n );\n\n return {\n prefixCls,\n handleClose,\n startCloseTimer,\n clearCloseTimer\n };\n }\n});\n</script>\n"],"names":["defineComponent","UIcon","X","Render","computed","_createElementBlock","_normalizeClass","_createElementVNode","_createVNode"],"mappings":";;;;;;;;;;AAwCA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,YAAY;AAAA,WACVC;AAAA,OACAC;AAAA,YACAC;AAAA;AACF,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA;AACR,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA;AACR,IACA,SAAS;AAAA,MACP,MAAM;AAAA;AACR,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA;AACR;AACF,EACA,OAAO,CAAC,OAAO;AAAA,EACf,MAAM,OAAoB,EAAE,QAAQ;UAC5B,YAAYC,aAAS,MAAM;aACxB,GAAG,MAAM;AAAA,KACjB;QAEG,aAAkB;QAClB,cAAc;UAEZ,kBAAkB,MAAM;UACxB,YAAY;qBACD,UAAU;qBACV;AAAA;AACf;UAGI,cAAc,MAAM;;WAEnB,OAAO;AAAA;UAGR,kBAAkB,MAAM;;UAExB,MAAM,aAAa,KAAK,CAAC,aAAa;qBAC3B,WAAW,MAAM;;AAChB,WACX,MAAM,WAAW,GAAI;AAAA;AAC1B;kBAGQ,MAAM;;AACE,KACjB;wBAEe,MAAM;;oBAEN;AAAA,KACf;;MAGC,MAAM,MAAM;AAAA,MACZ,MAAM;;AACY;AAClB;WAGK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;0BA5HCC,uBA2BM;IA1BH,OAAKC;MAAU;;YAA+B,4BAAuB;YAAsB,8BAAyB;;;IAOpH,cAAU,uCAAE;IACZ,cAAU,uCAAE;;IAEbC,uBAeM;MAdH,OAAKD;WAAe;;cAA6C,0BAAqB,iBAAY;;;;MAOnGE,gBAA4B,qBAAnB,QAAQ;MAER,kCAATH,uBAII;;QAJe,UAAS;AAAA,QAAK,OAAKC,sBAAK,sBAAS;AAAA,QAAW,SAAK,yDAAe,+CAAW;;QAC5FE,gBAEQ;+BADN,MAAK;AAAA,YAALA,gBAAK;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.js","sources":["../../../../src/components/Notification/Notification.vue"],"sourcesContent":["<template>\n <div :class=\"[prefixCls]\">\n <transition-group tag=\"span\" appear :name=\"transitionName\" :leave-active-class=\"type === 'message' ? 'message-up-leave' : undefined\">\n <Notice\n v-for=\"notice in notices\"\n :key=\"notice.key\"\n :prefix=\"prefixCls\"\n :duration=\"notice.duration\"\n :closable=\"notice.closable\"\n :style=\"notice.style\"\n :background=\"notice.background\"\n :content=\"notice.content\"\n :class=\"notice.class\"\n :msg-type=\"notice.msgType\"\n @close=\"handleClose(notice)\"\n @click=\"notice.onClick || noop\"\n >\n </Notice>\n </transition-group>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\nimport type { PropType, Ref } from 'vue';\nimport { oneOf } from '../../utils/propsValidators';\nimport Notice from './Notice.vue';\nimport type { NoticeInstance, NoticationType } from './Notication.type';\n\nfunction noop() {}\nlet i = 0;\nconst generateId = () => {\n return (prefix = 'uui-notification') => {\n i += 1;\n return `${prefix}-${i}`;\n };\n};\nconst defineProps = {\n prefixCls: {\n type: String,\n default: 'uui-notifiction'\n },\n transitionName: {\n type: String,\n default: 'fade'\n },\n maxCount: {\n type: Number\n },\n type: {\n type: String as PropType<NoticationType>,\n validator: oneOf(['message', 'notice'])\n }\n};\nexport default defineComponent({\n components: {\n Notice\n },\n props: defineProps,\n setup(props) {\n const notices: Ref<NoticeInstance[]> = ref([]);\n\n const add = (notice: NoticeInstance) => {\n const key = notice.key || generateId()(props.prefixCls);\n notice.key = key;\n const noticeIndex = notices.value.findIndex((x) => x.key === notice.key);\n if (noticeIndex !== -1) {\n notices.value.splice(noticeIndex, 1, notice);\n } else {\n if (props.maxCount && notices.value.length >= props.maxCount) {\n notices.value.shift();\n }\n notices.value.push(notice);\n }\n };\n const remove = (key: string) => {\n notices.value = notices.value.filter((x) => x.key !== key);\n };\n\n const handleClose = (n: NoticeInstance) => {\n remove(n.key as string);\n if (n.onClose) {\n n.onClose();\n }\n };\n\n return {\n notices,\n add,\n remove,\n handleClose,\n noop\n };\n }\n});\n</script>\n"],"names":["oneOf","defineComponent","Notice","ref","_createElementBlock","_normalizeClass","_createVNode","_TransitionGroup","_Fragment","_createBlock","_normalizeStyle"],"mappings":";;;;;;;;;AA6BA,SAAS,OAAO;AAAC;AACjB,IAAI,IAAI;AACR,MAAM,aAAa,MAAM;SAChB,CAAC,SAAS,uBAAuB;SACjC;WACE,GAAG,UAAU;AAAA;AAExB;AACA,MAAM,cAAc;AAAA,EAClB,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA;AACR,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAWA,sBAAM,CAAC,WAAW,QAAQ,CAAC;AAAA;AAE1C;AACA,MAAK,YAAaC,oBAAa;AAAA,EAC7B,YAAY;AAAA,YACVC;AAAA;AACF,EACA,OAAO;AAAA,EACP,MAAM,OAAO;UACL,UAAiCC,QAAI,EAAE;UAEvC,MAAM,CAAC,WAA2B;YAChC,MAAM,OAAO,OAAO,aAAa,MAAM,SAAS;aAC/C,MAAM;YACP,cAAc,QAAQ,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,OAAO,GAAG;UACnE,gBAAgB,IAAI;gBACd,MAAM,OAAO,aAAa,GAAG,MAAM;AAAA,aACtC;YACD,MAAM,YAAY,QAAQ,MAAM,UAAU,MAAM,UAAU;kBACpD,MAAM;AAAM;gBAEd,MAAM,KAAK,MAAM;AAAA;AAC3B;UAEI,SAAS,CAAC,QAAgB;cACtB,QAAQ,QAAQ,MAAM,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG;AAAA;UAGrD,cAAc,CAAC,MAAsB;aAClC,EAAE,GAAa;UAClB,EAAE,SAAS;UACX;AAAQ;AACZ;WAGK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;0BA7FCC,uBAkBM;IAlBA,OAAKC,oBAAG,cAAS;;IACrBC,gBAgBmBC;MAhBD,KAAI;AAAA,MAAO;MAAQ,MAAM;MAAiB,sBAAoB,cAAI,iCAAsC;AAAA;2BAEtH,MAAyB;AAAA,8BAD3BH,uBAcSI,mCAbU,cAAO,CAAjB,WAAM;kCADfC,gBAcS;YAZN,KAAK,OAAO;AAAA,YACZ,QAAQ;YACR,UAAU,OAAO;AAAA,YACjB,UAAU,OAAO;AAAA,YACjB,OAAKC,mBAAE,OAAO,KAAK;AAAA,YACnB,YAAY,OAAO;AAAA,YACnB,SAAS,OAAO;AAAA,YAChB,OAAKL,mBAAE,OAAO,KAAK;AAAA,YACnB,YAAU,OAAO;AAAA,YACjB,SAAK,YAAE,iBAAY,MAAM;AAAA,YACzB,SAAK,YAAE,OAAO,WAAW;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Notification.js","sources":["../../../../src/components/Notification/Notification.vue"],"sourcesContent":["<template>\n <div :class=\"[prefixCls]\">\n <transition-group tag=\"span\" appear :name=\"transitionName\" :leave-active-class=\"type === 'message' ? 'message-up-leave' : undefined\">\n <Notice\n v-for=\"notice in notices\"\n :key=\"notice.key\"\n :prefix=\"prefixCls\"\n :duration=\"notice.duration\"\n :closable=\"notice.closable\"\n :style=\"notice.style\"\n :background=\"notice.background\"\n :content=\"notice.content\"\n :class=\"notice.class\"\n :msg-type=\"notice.msgType\"\n @close=\"handleClose(notice)\"\n @click=\"notice.onClick || noop\"\n />\n </transition-group>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\nimport type { PropType, Ref } from 'vue';\nimport { oneOf } from '../../utils/propsValidators';\nimport Notice from './Notice.vue';\nimport type { NoticeInstance, NoticationType } from './Notication.type';\n\nfunction noop() {}\nlet i = 0;\nconst generateId = () => {\n return (prefix = 'uui-notification') => {\n i += 1;\n return `${prefix}-${i}`;\n };\n};\nconst defineProps = {\n prefixCls: {\n type: String,\n default: 'uui-notifiction'\n },\n transitionName: {\n type: String,\n default: 'fade'\n },\n maxCount: {\n type: Number\n },\n type: {\n type: String as PropType<NoticationType>,\n validator: oneOf(['message', 'notice'])\n }\n};\nexport default defineComponent({\n components: {\n Notice\n },\n props: defineProps,\n setup(props) {\n const notices: Ref<NoticeInstance[]> = ref([]);\n\n const add = (notice: NoticeInstance) => {\n const key = notice.key || generateId()(props.prefixCls);\n notice.key = key;\n const noticeIndex = notices.value.findIndex((x) => x.key === notice.key);\n if (noticeIndex !== -1) {\n notices.value.splice(noticeIndex, 1, notice);\n } else {\n if (props.maxCount && notices.value.length >= props.maxCount) {\n notices.value.shift();\n }\n notices.value.push(notice);\n }\n };\n const remove = (key: string) => {\n notices.value = notices.value.filter((x) => x.key !== key);\n };\n\n const handleClose = (n: NoticeInstance) => {\n remove(n.key as string);\n if (n.onClose) {\n n.onClose();\n }\n };\n\n return {\n notices,\n add,\n remove,\n handleClose,\n noop\n };\n }\n});\n</script>\n"],"names":["oneOf","defineComponent","Notice","ref","_createElementBlock","_normalizeClass","_createVNode","_TransitionGroup","_Fragment","_createBlock","_normalizeStyle"],"mappings":";;;;;;;;;AA4BA,SAAS,OAAO;AAAC;AACjB,IAAI,IAAI;AACR,MAAM,aAAa,MAAM;SAChB,CAAC,SAAS,uBAAuB;SACjC;WACE,GAAG,UAAU;AAAA;AAExB;AACA,MAAM,cAAc;AAAA,EAClB,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA;AACX,EACA,UAAU;AAAA,IACR,MAAM;AAAA;AACR,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAWA,sBAAM,CAAC,WAAW,QAAQ,CAAC;AAAA;AAE1C;AACA,MAAK,YAAaC,oBAAa;AAAA,EAC7B,YAAY;AAAA,YACVC;AAAA;AACF,EACA,OAAO;AAAA,EACP,MAAM,OAAO;UACL,UAAiCC,QAAI,EAAE;UAEvC,MAAM,CAAC,WAA2B;YAChC,MAAM,OAAO,OAAO,aAAa,MAAM,SAAS;aAC/C,MAAM;YACP,cAAc,QAAQ,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,OAAO,GAAG;UACnE,gBAAgB,IAAI;gBACd,MAAM,OAAO,aAAa,GAAG,MAAM;AAAA,aACtC;YACD,MAAM,YAAY,QAAQ,MAAM,UAAU,MAAM,UAAU;kBACpD,MAAM;AAAM;gBAEd,MAAM,KAAK,MAAM;AAAA;AAC3B;UAEI,SAAS,CAAC,QAAgB;cACtB,QAAQ,QAAQ,MAAM,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG;AAAA;UAGrD,cAAc,CAAC,MAAsB;aAClC,EAAE,GAAa;UAClB,EAAE,SAAS;UACX;AAAQ;AACZ;WAGK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;0BA5FCC,uBAiBM;IAjBA,OAAKC,oBAAG,cAAS;;IACrBC,gBAemBC;MAfD,KAAI;AAAA,MAAO;MAAQ,MAAM;MAAiB,sBAAoB,cAAI,iCAAsC;AAAA;2BAEtH,MAAyB;AAAA,8BAD3BH,uBAaEI,mCAZiB,cAAO,CAAjB,WAAM;kCADfC,gBAaE;YAXC,KAAK,OAAO;AAAA,YACZ,QAAQ;YACR,UAAU,OAAO;AAAA,YACjB,UAAU,OAAO;AAAA,YACjB,OAAKC,mBAAE,OAAO,KAAK;AAAA,YACnB,YAAY,OAAO;AAAA,YACnB,SAAS,OAAO;AAAA,YAChB,OAAKL,mBAAE,OAAO,KAAK;AAAA,YACnB,YAAU,OAAO;AAAA,YACjB,SAAK,YAAE,iBAAY,MAAM;AAAA,YACzB,SAAK,YAAE,OAAO,WAAW;;;;;;;;;;;;"}
@@ -42,6 +42,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
42
42
  type: NumberConstructor;
43
43
  default: number;
44
44
  };
45
+ totalPage: {
46
+ type: NumberConstructor;
47
+ required: true;
48
+ };
45
49
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
46
50
  'change-page-size': (v: number) => boolean;
47
51
  'change-page': (v: number) => boolean;
@@ -88,6 +92,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
88
92
  type: NumberConstructor;
89
93
  default: number;
90
94
  };
95
+ totalPage: {
96
+ type: NumberConstructor;
97
+ required: true;
98
+ };
91
99
  }>> & Readonly<{
92
100
  "onChange-page-size"?: (v: number) => any;
93
101
  "onChange-page"?: (v: number) => any;
@@ -58,6 +58,10 @@ var Options = vue.defineComponent({
58
58
  dropdownWidth: {
59
59
  type: Number,
60
60
  default: 128
61
+ },
62
+ totalPage: {
63
+ type: Number,
64
+ required: true
61
65
  }
62
66
  },
63
67
  emits: {
@@ -131,7 +135,8 @@ var Options = vue.defineComponent({
131
135
  "modelValue": stateValue.value,
132
136
  "onUpdate:modelValue": ($event) => stateValue.value = $event,
133
137
  "onKeyup": handleJumpTo,
134
- "onBlur": handleBlur
138
+ "onBlur": handleBlur,
139
+ "inputSize": props.totalPage.toString().length
135
140
  }, null), vue.createVNode("span", null, [props.locale.page])]);
136
141
  }
137
142
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"Options.js","sources":["../../../../src/components/Pagination/Options.tsx"],"sourcesContent":["import { ref, watch, defineComponent } from 'vue';\nimport type { PropType, Ref } from 'vue';\nimport USelect from '@uxd-ui/components/Select';\nimport UInput from '@uxd-ui/components/Input';\nimport keyCode from '../../utils/KeyCode';\nimport Render from '../base/Render';\nimport type { SelectValueType } from '../Select/Select.type';\nimport type { NormalSizeMap } from '../../utils/globalType';\n\nexport default defineComponent({\n name: 'PaginationOption',\n components: {\n Render\n },\n props: {\n prefixCls: {\n type: String\n },\n current: {\n type: Number,\n required: true\n },\n showSizer: {\n type: Boolean,\n default: false\n },\n pageSizeOptions: {\n type: Array as PropType<number[]>,\n required: true\n },\n locale: {\n type: Object,\n required: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n pageSize: {\n type: Number\n },\n showElevator: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default'\n },\n variant: {\n type: String as PropType<'soft' | 'surface' | 'simple'>,\n default: 'surface'\n },\n dropdownWidth: {\n type: Number,\n default: 128\n }\n },\n emits: {\n 'change-page-size': (v: number) => typeof v === 'number',\n 'change-page': (v: number) => typeof v === 'number'\n },\n setup(props, { emit }) {\n const stateValue: Ref<string> = ref(props.current.toString());\n const changeSize = (value: number) => {\n stateValue.value = props.current.toString();\n emit('change-page-size', value);\n };\n watch(\n () => props.current,\n (value) => {\n stateValue.value = value.toString();\n }\n );\n\n const handleBlur = () => {\n const value = !stateValue.value || Number.isNaN(Number(stateValue.value)) ? props.current : Number(stateValue.value);\n emit('change-page', value);\n };\n const handleJumpTo = (e: any) => {\n if (stateValue.value === '') return;\n if (e.keyCode === keyCode.ENTER || e.type === 'click') {\n emit('change-page', Number(stateValue.value));\n }\n };\n\n return () => {\n const { prefixCls, showSizer, size, disabled, pageSize, locale } = props;\n\n const renderSelect = () => {\n if (showSizer) {\n const options = props.pageSizeOptions.map((opt) => {\n return {\n value: opt,\n label: `${opt}${locale.item}/${locale.page}`\n };\n });\n\n const cls = `${prefixCls}-options-size-changer`;\n return (\n <USelect\n class={cls}\n disabled={disabled}\n size={size}\n modelValue={pageSize}\n options={options}\n onChange={(value: SelectValueType) => changeSize(Number(value))}\n clearable={false}\n variant={props.variant !== 'simple' ? props.variant : undefined}\n dropdownMenuWidth={props.dropdownWidth}\n >\n {options}\n </USelect>\n );\n }\n return null;\n };\n\n const renderJumpInput = () => {\n if (props.showElevator) {\n return (\n <div class={`${props.prefixCls}-options-quick-jumper`}>\n <span>{props.locale.jumpTo}</span>\n <UInput\n disabled={props.disabled}\n size={size}\n variant={props.variant !== 'simple' ? props.variant : undefined}\n v-model={stateValue.value}\n onKeyup={handleJumpTo}\n onBlur={handleBlur}\n />\n <span>{props.locale.page}</span>\n </div>\n );\n }\n return null;\n };\n\n return (\n <li class={`${prefixCls}-options`}>\n {renderSelect()}\n {renderJumpInput()}\n </li>\n );\n };\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","components","Render","props","prefixCls","type","String","current","Number","required","showSizer","Boolean","default","pageSizeOptions","Array","locale","disabled","pageSize","showElevator","size","variant","dropdownWidth","emits","v","setup","emit","stateValue","ref","changeSize","value","watch","handleBlur","isNaN","handleJumpTo","e","keyCode","ENTER","renderSelect","options","map","opt","label","item","page","cls","_createVNode","USelect","undefined","renderJumpInput","jumpTo","UInput","$event"],"mappings":"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"}
1
+ {"version":3,"file":"Options.js","sources":["../../../../src/components/Pagination/Options.tsx"],"sourcesContent":["import { ref, watch, defineComponent } from 'vue';\nimport type { PropType, Ref } from 'vue';\nimport USelect from '@uxd-ui/components/Select';\nimport UInput from '@uxd-ui/components/Input';\nimport keyCode from '../../utils/KeyCode';\nimport Render from '../base/Render';\nimport type { SelectValueType } from '../Select/Select.type';\nimport type { NormalSizeMap } from '../../utils/globalType';\n\nexport default defineComponent({\n name: 'PaginationOption',\n components: {\n Render\n },\n props: {\n prefixCls: {\n type: String\n },\n current: {\n type: Number,\n required: true\n },\n showSizer: {\n type: Boolean,\n default: false\n },\n pageSizeOptions: {\n type: Array as PropType<number[]>,\n required: true\n },\n locale: {\n type: Object,\n required: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n pageSize: {\n type: Number\n },\n showElevator: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default'\n },\n variant: {\n type: String as PropType<'soft' | 'surface' | 'simple'>,\n default: 'surface'\n },\n dropdownWidth: {\n type: Number,\n default: 128\n },\n totalPage: {\n type: Number,\n required: true\n }\n },\n emits: {\n 'change-page-size': (v: number) => typeof v === 'number',\n 'change-page': (v: number) => typeof v === 'number'\n },\n setup(props, { emit }) {\n const stateValue: Ref<string> = ref(props.current.toString());\n const changeSize = (value: number) => {\n stateValue.value = props.current.toString();\n emit('change-page-size', value);\n };\n watch(\n () => props.current,\n (value) => {\n stateValue.value = value.toString();\n }\n );\n\n const handleBlur = () => {\n const value = !stateValue.value || Number.isNaN(Number(stateValue.value)) ? props.current : Number(stateValue.value);\n emit('change-page', value);\n };\n const handleJumpTo = (e: any) => {\n if (stateValue.value === '') return;\n if (e.keyCode === keyCode.ENTER || e.type === 'click') {\n emit('change-page', Number(stateValue.value));\n }\n };\n\n return () => {\n const { prefixCls, showSizer, size, disabled, pageSize, locale } = props;\n\n const renderSelect = () => {\n if (showSizer) {\n const options = props.pageSizeOptions.map((opt) => {\n return {\n value: opt,\n label: `${opt}${locale.item}/${locale.page}`\n };\n });\n\n const cls = `${prefixCls}-options-size-changer`;\n return (\n <USelect\n class={cls}\n disabled={disabled}\n size={size}\n modelValue={pageSize}\n options={options}\n onChange={(value: SelectValueType) => changeSize(Number(value))}\n clearable={false}\n variant={props.variant !== 'simple' ? props.variant : undefined}\n dropdownMenuWidth={props.dropdownWidth}\n >\n {options}\n </USelect>\n );\n }\n return null;\n };\n\n const renderJumpInput = () => {\n if (props.showElevator) {\n return (\n <div class={`${props.prefixCls}-options-quick-jumper`}>\n <span>{props.locale.jumpTo}</span>\n <UInput\n disabled={props.disabled}\n size={size}\n variant={props.variant !== 'simple' ? props.variant : undefined}\n v-model={stateValue.value}\n onKeyup={handleJumpTo}\n onBlur={handleBlur}\n inputSize={props.totalPage.toString().length}\n />\n <span>{props.locale.page}</span>\n </div>\n );\n }\n return null;\n };\n\n return (\n <li class={`${prefixCls}-options`}>\n {renderSelect()}\n {renderJumpInput()}\n </li>\n );\n };\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","components","Render","props","prefixCls","type","String","current","Number","required","showSizer","Boolean","default","pageSizeOptions","Array","locale","disabled","pageSize","showElevator","size","variant","dropdownWidth","totalPage","emits","v","setup","emit","stateValue","ref","changeSize","value","watch","handleBlur","isNaN","handleJumpTo","e","keyCode","ENTER","renderSelect","options","map","opt","label","item","page","cls","_createVNode","USelect","undefined","renderJumpInput","jumpTo","UInput","$event","length"],"mappings":"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"}
@@ -436,6 +436,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
436
436
  type: NumberConstructor;
437
437
  default: number;
438
438
  };
439
+ totalPage: {
440
+ type: NumberConstructor;
441
+ required: true;
442
+ };
439
443
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
440
444
  'change-page-size': (v: number) => boolean;
441
445
  'change-page': (v: number) => boolean;
@@ -482,6 +486,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
482
486
  type: NumberConstructor;
483
487
  default: number;
484
488
  };
489
+ totalPage: {
490
+ type: NumberConstructor;
491
+ required: true;
492
+ };
485
493
  }>> & Readonly<{
486
494
  "onChange-page-size"?: (v: number) => any;
487
495
  "onChange-page"?: (v: number) => any;
@@ -226,6 +226,7 @@ var Pagination = vue.defineComponent({
226
226
  "modelValue": this.stateCurrent,
227
227
  "disabled": this.disabled,
228
228
  "size": this.size,
229
+ "inputSize": this.totalPage.toString().length,
229
230
  "onKeyup": this.onKeyUp,
230
231
  "onKeydown": this.onKeyDown,
231
232
  "onBlur": this.onBlur
@@ -275,6 +276,7 @@ var Pagination = vue.defineComponent({
275
276
  "dropdownWidth": this.selectDropdownWidth,
276
277
  "variant": this.variant,
277
278
  "pageSizeOptions": this.pageSizeOptions,
279
+ "totalPage": this.totalPage,
278
280
  "onChange-page-size": this.onChangePageSize,
279
281
  "onChange-page": this.onChangePage
280
282
  }, null)]);
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { defineComponent, computed, ref, watch } from 'vue';\nimport { ChevronRight, ChevronLeft } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UInput from '@uxd-ui/components/Input';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport useCalculate from './hooks/useCalculate';\nimport useGenerateList from './hooks/useGenerateList';\nimport keyCode from '../../utils/KeyCode';\nimport Pager from './Pager.vue';\nimport Options from './Options';\nimport { paginationProps, paginationEmits } from './Pagination.type';\n\nexport default defineComponent({\n name: 'UPagination',\n components: {\n Pager,\n Options,\n UIcon,\n ChevronRight,\n ChevronLeft\n },\n props: paginationProps,\n emits: paginationEmits,\n setup(props, { emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('pagination');\n const stateCurrent = ref(1);\n const statePageSize = ref(10);\n\n const { calculatePage } = useCalculate();\n const { generatePagerList } = useGenerateList(props, stateCurrent, statePageSize, calculatePage);\n // ===================== computed ============================\n const computedLocale = computed(() => {\n return props.locale || globalConfig.locale.pagination;\n });\n const prevDisabled = computed(() => {\n return stateCurrent.value === 1;\n });\n const nextDisabled = computed(() => {\n return stateCurrent.value === calculatePage(undefined, statePageSize.value, props.total);\n });\n const totalPage = computed(() => {\n return calculatePage(undefined, statePageSize.value, props.total);\n });\n\n const isSimple = computed(() => {\n return props.simple || props.variant === 'simple';\n });\n\n watch(\n () => props.current,\n (val) => {\n stateCurrent.value = val;\n },\n { immediate: true }\n );\n\n watch(\n () => props.pageSize,\n (val) => {\n statePageSize.value = val;\n },\n { immediate: true }\n );\n\n const pagerList = computed(() => {\n return generatePagerList(totalPage.value, computedLocale.value, prefixCls.value);\n });\n\n const isValueValid = (value: number) => {\n return typeof value === 'number' && Number.isFinite(value) && Math.floor(value) === value;\n };\n const onChangePage = (page: number) => {\n const pageBool = isValueValid(page) && page !== stateCurrent.value;\n const result = props.beforeChange ? props.beforeChange(page) : true;\n if (pageBool && !props.disabled && result) {\n // const currentPage = calculatePage(\n // undefined,\n // statePageSize.value,\n // props.total\n // );\n if (page > totalPage.value) {\n stateCurrent.value = totalPage.value;\n } else if (page < 1) {\n stateCurrent.value = 1;\n } else {\n stateCurrent.value = page;\n }\n emit('update:current', stateCurrent.value);\n emit('change', stateCurrent.value, statePageSize.value);\n }\n };\n const onChangePageSize = (size: number) => {\n const newTotal = calculatePage(size, statePageSize.value, props.total);\n stateCurrent.value = stateCurrent.value > newTotal ? newTotal : stateCurrent.value;\n statePageSize.value = size;\n emit('update:current', stateCurrent.value);\n emit('update:pageSize', statePageSize.value);\n emit('page-size-change', statePageSize.value, stateCurrent.value);\n };\n const onPrev = () => {\n if (stateCurrent.value > 1) {\n const page = stateCurrent.value - 1;\n onChangePage(page);\n }\n };\n const onNext = () => {\n if (stateCurrent.value < totalPage.value) {\n const page = stateCurrent.value + 1;\n onChangePage(page);\n }\n };\n const getValidValue = (e: any) => {\n const inputValue = e.target.value;\n let value;\n if (inputValue === '') {\n value = inputValue;\n } else if (Number.isNaN(Number(inputValue))) {\n value = stateCurrent.value;\n } else if (inputValue >= totalPage.value) {\n value = totalPage.value;\n } else {\n value = Number(inputValue);\n }\n\n return value;\n };\n\n const onKeyDown = (e: any) => {\n if (e.keyCode === keyCode.UP || e.keyCode === keyCode.DOWN) {\n e.preventDefault();\n }\n };\n const onKeyUp = (e: any) => {\n if (e.isComposing || e.target.composing) return;\n const value = getValidValue(e);\n if (e.keyCode === keyCode.ENTER) {\n onChangePage(value);\n } else if (e.keyCode === keyCode.UP) {\n onChangePage(value + 1);\n } else if (e.keyCode === keyCode.DOWN) {\n onChangePage(value - 1);\n }\n };\n const onBlur = (e: any) => {\n const value = getValidValue(e);\n if (value === stateCurrent.value) {\n e.target.value = value;\n } else {\n stateCurrent.value = value;\n }\n\n onChangePage(stateCurrent.value);\n };\n const onKeyEnter = (event: KeyboardEvent, callBack: () => void) => {\n if (event.key === 'Enter' || event.charCode === 13) {\n callBack();\n }\n };\n const onPrevEnter = (event: KeyboardEvent) => {\n onKeyEnter(event, onPrev);\n };\n const onNextEnter = (event: KeyboardEvent) => {\n onKeyEnter(event, onNext);\n };\n return {\n prefixCls,\n stateCurrent,\n statePageSize,\n computedLocale,\n totalPage,\n pagerList,\n prevDisabled,\n nextDisabled,\n isSimple,\n onChangePage,\n onChangePageSize,\n onPrev,\n onNext,\n onKeyDown,\n onKeyUp,\n onBlur,\n onKeyEnter,\n onPrevEnter,\n onNextEnter\n };\n },\n render() {\n const { prefixCls } = this;\n const previousBtn = () => {\n return (\n <li\n class={[\n `${prefixCls}-item`,\n `${prefixCls}-prev`,\n {\n [`${prefixCls}-item-disabled`]: this.prevDisabled,\n [`${prefixCls}-item-simple`]: this.isSimple,\n [`${prefixCls}-item-custom`]: !!this.$slots.customPrev\n }\n ]}\n title={this.computedLocale.prevPage}\n tabindex={this.prevDisabled || this.disabled ? undefined : 0}\n onClick={this.onPrev}\n onKeypress={this.onPrevEnter}\n >\n {this.$slots.customPrev && !this.isSimple ? (\n this.$slots.customPrev()\n ) : (\n <a class={`${prefixCls}-item-link`}>\n <UIcon>\n <ChevronLeft />\n </UIcon>\n </a>\n )}\n </li>\n );\n };\n const nextBtn = () => {\n return (\n <li\n class={[\n `${prefixCls}-item`,\n `${prefixCls}-next`,\n {\n [`${prefixCls}-item-disabled`]: this.nextDisabled,\n [`${prefixCls}-item-simple`]: this.isSimple,\n [`${prefixCls}-item-custom`]: !!this.$slots.customNext\n }\n ]}\n title={this.computedLocale.nextPage}\n tabindex={this.nextDisabled || this.disabled ? undefined : 0}\n onClick={this.onNext}\n onKeypress={this.onNextEnter}\n >\n {this.$slots.customNext && !this.isSimple ? (\n this.$slots.customNext()\n ) : (\n <a class={`${prefixCls}-item-link`}>\n <UIcon>\n <ChevronRight />\n </UIcon>\n </a>\n )}\n </li>\n );\n };\n\n const pagerContent = () => {\n if (this.isSimple) {\n return (\n <li class={`${prefixCls}-simple-pager`} title={`${this.stateCurrent} / ${this.totalPage}`}>\n <UInput\n modelValue={this.stateCurrent}\n disabled={this.disabled}\n size={this.size}\n onKeyup={this.onKeyUp}\n onKeydown={this.onKeyDown}\n onBlur={this.onBlur}\n />\n <span class={`${prefixCls}-slash`}>/</span>\n <span class={`${prefixCls}-slash`}>{this.totalPage}</span>\n </li>\n );\n }\n return this.pagerList.map((pager) => (\n <Pager\n key={pager.key}\n active={pager.active}\n page={pager.page}\n title={pager.title}\n type={pager.type}\n prefixCls={prefixCls}\n disabled={this.disabled}\n className={pager.className}\n onClick={this.onChangePage}\n onKeyEnter={this.onKeyEnter}\n />\n ));\n };\n\n const totalContent = (\n <li class={`${prefixCls}-total-text`}>\n {this.$slots.totalText\n ? this.$slots.totalText({\n data: {\n total: this.total,\n range: [(this.stateCurrent - 1) * this.statePageSize + 1, this.stateCurrent * this.statePageSize]\n }\n })\n : `${this.computedLocale.total} ${this.total} ${this.computedLocale.item}`}\n </li>\n );\n\n return (\n <ul\n ref=\"paginationRef\"\n class={[\n `${prefixCls}`,\n `${prefixCls}-size-${this.size}`,\n `${prefixCls}-align-${this.align}`,\n {\n [`${prefixCls}-disabled`]: this.disabled,\n [`${prefixCls}-variant-${this.variant}`]: !this.isSimple,\n [`${prefixCls}-variant-simple`]: this.isSimple\n }\n ]}\n >\n {this.showTotal && !this.isSimple && totalContent}\n {previousBtn()}\n {pagerContent()}\n {nextBtn()}\n {!this.isSimple && (\n <Options\n prefixCls={prefixCls}\n disabled={this.disabled}\n size={this.size}\n locale={this.computedLocale}\n current={this.stateCurrent}\n showSizer={this.showSizer}\n showElevator={this.showElevator}\n pageSize={this.statePageSize}\n dropdownWidth={this.selectDropdownWidth}\n variant={this.variant}\n pageSizeOptions={this.pageSizeOptions}\n onChange-page-size={this.onChangePageSize}\n onChange-page={this.onChangePage}\n />\n )}\n </ul>\n );\n }\n});\n"],"names":["defineComponent","name","components","Pager","Options","UIcon","ChevronRight","ChevronLeft","props","paginationProps","emits","paginationEmits","setup","emit","prefixCls","config","globalConfig","useGlobalConfig","stateCurrent","ref","statePageSize","calculatePage","useCalculate","generatePagerList","useGenerateList","computedLocale","computed","locale","pagination","prevDisabled","value","nextDisabled","undefined","total","totalPage","isSimple","simple","variant","watch","current","val","immediate","pageSize","pagerList","isValueValid","Number","isFinite","Math","floor","onChangePage","page","pageBool","result","beforeChange","disabled","onChangePageSize","size","newTotal","onPrev","onNext","getValidValue","e","inputValue","target","isNaN","onKeyDown","keyCode","UP","DOWN","preventDefault","onKeyUp","isComposing","composing","ENTER","onBlur","onKeyEnter","event","callBack","key","charCode","onPrevEnter","onNextEnter","render","previousBtn","_createVNode","$slots","customPrev","prevPage","default","nextBtn","customNext","nextPage","pagerContent","UInput","_createTextVNode","map","pager","active","title","type","className","totalContent","totalText","data","range","item","align","showTotal","showSizer","showElevator","selectDropdownWidth","pageSizeOptions"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { defineComponent, computed, ref, watch } from 'vue';\nimport { ChevronRight, ChevronLeft } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UInput from '@uxd-ui/components/Input';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport useCalculate from './hooks/useCalculate';\nimport useGenerateList from './hooks/useGenerateList';\nimport keyCode from '../../utils/KeyCode';\nimport Pager from './Pager.vue';\nimport Options from './Options';\nimport { paginationProps, paginationEmits } from './Pagination.type';\n\nexport default defineComponent({\n name: 'UPagination',\n components: {\n Pager,\n Options,\n UIcon,\n ChevronRight,\n ChevronLeft\n },\n props: paginationProps,\n emits: paginationEmits,\n setup(props, { emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('pagination');\n const stateCurrent = ref(1);\n const statePageSize = ref(10);\n\n const { calculatePage } = useCalculate();\n const { generatePagerList } = useGenerateList(props, stateCurrent, statePageSize, calculatePage);\n // ===================== computed ============================\n const computedLocale = computed(() => {\n return props.locale || globalConfig.locale.pagination;\n });\n const prevDisabled = computed(() => {\n return stateCurrent.value === 1;\n });\n const nextDisabled = computed(() => {\n return stateCurrent.value === calculatePage(undefined, statePageSize.value, props.total);\n });\n const totalPage = computed(() => {\n return calculatePage(undefined, statePageSize.value, props.total);\n });\n\n const isSimple = computed(() => {\n return props.simple || props.variant === 'simple';\n });\n\n watch(\n () => props.current,\n (val) => {\n stateCurrent.value = val;\n },\n { immediate: true }\n );\n\n watch(\n () => props.pageSize,\n (val) => {\n statePageSize.value = val;\n },\n { immediate: true }\n );\n\n const pagerList = computed(() => {\n return generatePagerList(totalPage.value, computedLocale.value, prefixCls.value);\n });\n\n const isValueValid = (value: number) => {\n return typeof value === 'number' && Number.isFinite(value) && Math.floor(value) === value;\n };\n const onChangePage = (page: number) => {\n const pageBool = isValueValid(page) && page !== stateCurrent.value;\n const result = props.beforeChange ? props.beforeChange(page) : true;\n if (pageBool && !props.disabled && result) {\n // const currentPage = calculatePage(\n // undefined,\n // statePageSize.value,\n // props.total\n // );\n if (page > totalPage.value) {\n stateCurrent.value = totalPage.value;\n } else if (page < 1) {\n stateCurrent.value = 1;\n } else {\n stateCurrent.value = page;\n }\n emit('update:current', stateCurrent.value);\n emit('change', stateCurrent.value, statePageSize.value);\n }\n };\n const onChangePageSize = (size: number) => {\n const newTotal = calculatePage(size, statePageSize.value, props.total);\n stateCurrent.value = stateCurrent.value > newTotal ? newTotal : stateCurrent.value;\n statePageSize.value = size;\n emit('update:current', stateCurrent.value);\n emit('update:pageSize', statePageSize.value);\n emit('page-size-change', statePageSize.value, stateCurrent.value);\n };\n const onPrev = () => {\n if (stateCurrent.value > 1) {\n const page = stateCurrent.value - 1;\n onChangePage(page);\n }\n };\n const onNext = () => {\n if (stateCurrent.value < totalPage.value) {\n const page = stateCurrent.value + 1;\n onChangePage(page);\n }\n };\n const getValidValue = (e: any) => {\n const inputValue = e.target.value;\n let value;\n if (inputValue === '') {\n value = inputValue;\n } else if (Number.isNaN(Number(inputValue))) {\n value = stateCurrent.value;\n } else if (inputValue >= totalPage.value) {\n value = totalPage.value;\n } else {\n value = Number(inputValue);\n }\n\n return value;\n };\n\n const onKeyDown = (e: any) => {\n if (e.keyCode === keyCode.UP || e.keyCode === keyCode.DOWN) {\n e.preventDefault();\n }\n };\n const onKeyUp = (e: any) => {\n if (e.isComposing || e.target.composing) return;\n const value = getValidValue(e);\n if (e.keyCode === keyCode.ENTER) {\n onChangePage(value);\n } else if (e.keyCode === keyCode.UP) {\n onChangePage(value + 1);\n } else if (e.keyCode === keyCode.DOWN) {\n onChangePage(value - 1);\n }\n };\n const onBlur = (e: any) => {\n const value = getValidValue(e);\n if (value === stateCurrent.value) {\n e.target.value = value;\n } else {\n stateCurrent.value = value;\n }\n\n onChangePage(stateCurrent.value);\n };\n const onKeyEnter = (event: KeyboardEvent, callBack: () => void) => {\n if (event.key === 'Enter' || event.charCode === 13) {\n callBack();\n }\n };\n const onPrevEnter = (event: KeyboardEvent) => {\n onKeyEnter(event, onPrev);\n };\n const onNextEnter = (event: KeyboardEvent) => {\n onKeyEnter(event, onNext);\n };\n return {\n prefixCls,\n stateCurrent,\n statePageSize,\n computedLocale,\n totalPage,\n pagerList,\n prevDisabled,\n nextDisabled,\n isSimple,\n onChangePage,\n onChangePageSize,\n onPrev,\n onNext,\n onKeyDown,\n onKeyUp,\n onBlur,\n onKeyEnter,\n onPrevEnter,\n onNextEnter\n };\n },\n render() {\n const { prefixCls } = this;\n const previousBtn = () => {\n return (\n <li\n class={[\n `${prefixCls}-item`,\n `${prefixCls}-prev`,\n {\n [`${prefixCls}-item-disabled`]: this.prevDisabled,\n [`${prefixCls}-item-simple`]: this.isSimple,\n [`${prefixCls}-item-custom`]: !!this.$slots.customPrev\n }\n ]}\n title={this.computedLocale.prevPage}\n tabindex={this.prevDisabled || this.disabled ? undefined : 0}\n onClick={this.onPrev}\n onKeypress={this.onPrevEnter}\n >\n {this.$slots.customPrev && !this.isSimple ? (\n this.$slots.customPrev()\n ) : (\n <a class={`${prefixCls}-item-link`}>\n <UIcon>\n <ChevronLeft />\n </UIcon>\n </a>\n )}\n </li>\n );\n };\n const nextBtn = () => {\n return (\n <li\n class={[\n `${prefixCls}-item`,\n `${prefixCls}-next`,\n {\n [`${prefixCls}-item-disabled`]: this.nextDisabled,\n [`${prefixCls}-item-simple`]: this.isSimple,\n [`${prefixCls}-item-custom`]: !!this.$slots.customNext\n }\n ]}\n title={this.computedLocale.nextPage}\n tabindex={this.nextDisabled || this.disabled ? undefined : 0}\n onClick={this.onNext}\n onKeypress={this.onNextEnter}\n >\n {this.$slots.customNext && !this.isSimple ? (\n this.$slots.customNext()\n ) : (\n <a class={`${prefixCls}-item-link`}>\n <UIcon>\n <ChevronRight />\n </UIcon>\n </a>\n )}\n </li>\n );\n };\n\n const pagerContent = () => {\n if (this.isSimple) {\n return (\n <li class={`${prefixCls}-simple-pager`} title={`${this.stateCurrent} / ${this.totalPage}`}>\n <UInput\n modelValue={this.stateCurrent}\n disabled={this.disabled}\n size={this.size}\n inputSize={this.totalPage.toString().length}\n onKeyup={this.onKeyUp}\n onKeydown={this.onKeyDown}\n onBlur={this.onBlur}\n />\n <span class={`${prefixCls}-slash`}>/</span>\n <span class={`${prefixCls}-slash`}>{this.totalPage}</span>\n </li>\n );\n }\n return this.pagerList.map((pager) => (\n <Pager\n key={pager.key}\n active={pager.active}\n page={pager.page}\n title={pager.title}\n type={pager.type}\n prefixCls={prefixCls}\n disabled={this.disabled}\n className={pager.className}\n onClick={this.onChangePage}\n onKeyEnter={this.onKeyEnter}\n />\n ));\n };\n\n const totalContent = (\n <li class={`${prefixCls}-total-text`}>\n {this.$slots.totalText\n ? this.$slots.totalText({\n data: {\n total: this.total,\n range: [(this.stateCurrent - 1) * this.statePageSize + 1, this.stateCurrent * this.statePageSize]\n }\n })\n : `${this.computedLocale.total} ${this.total} ${this.computedLocale.item}`}\n </li>\n );\n\n return (\n <ul\n ref=\"paginationRef\"\n class={[\n `${prefixCls}`,\n `${prefixCls}-size-${this.size}`,\n `${prefixCls}-align-${this.align}`,\n {\n [`${prefixCls}-disabled`]: this.disabled,\n [`${prefixCls}-variant-${this.variant}`]: !this.isSimple,\n [`${prefixCls}-variant-simple`]: this.isSimple\n }\n ]}\n >\n {this.showTotal && !this.isSimple && totalContent}\n {previousBtn()}\n {pagerContent()}\n {nextBtn()}\n {!this.isSimple && (\n <Options\n prefixCls={prefixCls}\n disabled={this.disabled}\n size={this.size}\n locale={this.computedLocale}\n current={this.stateCurrent}\n showSizer={this.showSizer}\n showElevator={this.showElevator}\n pageSize={this.statePageSize}\n dropdownWidth={this.selectDropdownWidth}\n variant={this.variant}\n pageSizeOptions={this.pageSizeOptions}\n totalPage={this.totalPage}\n onChange-page-size={this.onChangePageSize}\n onChange-page={this.onChangePage}\n />\n )}\n </ul>\n );\n }\n});\n"],"names":["defineComponent","name","components","Pager","Options","UIcon","ChevronRight","ChevronLeft","props","paginationProps","emits","paginationEmits","setup","emit","prefixCls","config","globalConfig","useGlobalConfig","stateCurrent","ref","statePageSize","calculatePage","useCalculate","generatePagerList","useGenerateList","computedLocale","computed","locale","pagination","prevDisabled","value","nextDisabled","undefined","total","totalPage","isSimple","simple","variant","watch","current","val","immediate","pageSize","pagerList","isValueValid","Number","isFinite","Math","floor","onChangePage","page","pageBool","result","beforeChange","disabled","onChangePageSize","size","newTotal","onPrev","onNext","getValidValue","e","inputValue","target","isNaN","onKeyDown","keyCode","UP","DOWN","preventDefault","onKeyUp","isComposing","composing","ENTER","onBlur","onKeyEnter","event","callBack","key","charCode","onPrevEnter","onNextEnter","render","previousBtn","_createVNode","$slots","customPrev","prevPage","default","nextBtn","customNext","nextPage","pagerContent","UInput","toString","length","_createTextVNode","map","pager","active","title","type","className","totalContent","totalText","data","range","item","align","showTotal","showSizer","showElevator","selectDropdownWidth","pageSizeOptions"],"mappings":"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"}
@@ -364,6 +364,10 @@ export declare const UPagination: {
364
364
  type: NumberConstructor;
365
365
  default: number;
366
366
  };
367
+ totalPage: {
368
+ type: NumberConstructor;
369
+ required: true;
370
+ };
367
371
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
368
372
  'change-page-size': (v: number) => boolean;
369
373
  'change-page': (v: number) => boolean;
@@ -410,6 +414,10 @@ export declare const UPagination: {
410
414
  type: NumberConstructor;
411
415
  default: number;
412
416
  };
417
+ totalPage: {
418
+ type: NumberConstructor;
419
+ required: true;
420
+ };
413
421
  }>> & Readonly<{
414
422
  "onChange-page-size"?: (v: number) => any;
415
423
  "onChange-page"?: (v: number) => any;
@@ -1054,6 +1062,10 @@ export declare const UPagination: {
1054
1062
  type: NumberConstructor;
1055
1063
  default: number;
1056
1064
  };
1065
+ totalPage: {
1066
+ type: NumberConstructor;
1067
+ required: true;
1068
+ };
1057
1069
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
1058
1070
  'change-page-size': (v: number) => boolean;
1059
1071
  'change-page': (v: number) => boolean;
@@ -1100,6 +1112,10 @@ export declare const UPagination: {
1100
1112
  type: NumberConstructor;
1101
1113
  default: number;
1102
1114
  };
1115
+ totalPage: {
1116
+ type: NumberConstructor;
1117
+ required: true;
1118
+ };
1103
1119
  }>> & Readonly<{
1104
1120
  "onChange-page-size"?: (v: number) => any;
1105
1121
  "onChange-page"?: (v: number) => any;