tt-design-web-vue 0.1.0

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 (227) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +120 -0
  3. package/dist/index.cjs +2 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.js +5220 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/rich-text.css +1 -0
  8. package/dist/style.cjs +2 -0
  9. package/dist/style.cjs.map +1 -0
  10. package/dist/style.css +1 -0
  11. package/dist/style.js +2 -0
  12. package/dist/style.js.map +1 -0
  13. package/dist/types/components/ActivityFeed/ActivityFeed.vue.d.ts +13 -0
  14. package/dist/types/components/ActivityFeed/index.d.ts +2 -0
  15. package/dist/types/components/Alert/Alert.vue.d.ts +164 -0
  16. package/dist/types/components/Alert/index.d.ts +1 -0
  17. package/dist/types/components/Anchor/Anchor.vue.d.ts +12 -0
  18. package/dist/types/components/Anchor/AnchorLink.vue.d.ts +14 -0
  19. package/dist/types/components/Anchor/index.d.ts +2 -0
  20. package/dist/types/components/AttachmentList/AttachmentList.vue.d.ts +19 -0
  21. package/dist/types/components/AttachmentList/index.d.ts +2 -0
  22. package/dist/types/components/Avatar/Avatar.vue.d.ts +153 -0
  23. package/dist/types/components/Avatar/AvatarGroup.vue.d.ts +208 -0
  24. package/dist/types/components/Avatar/avatar.d.ts +3 -0
  25. package/dist/types/components/Avatar/index.d.ts +6 -0
  26. package/dist/types/components/BackTop/BackTop.vue.d.ts +138 -0
  27. package/dist/types/components/BackTop/index.d.ts +1 -0
  28. package/dist/types/components/Badge/Badge.vue.d.ts +164 -0
  29. package/dist/types/components/Badge/index.d.ts +1 -0
  30. package/dist/types/components/Breadcrumb/Breadcrumb.vue.d.ts +108 -0
  31. package/dist/types/components/Breadcrumb/BreadcrumbItem.vue.d.ts +108 -0
  32. package/dist/types/components/Breadcrumb/index.d.ts +2 -0
  33. package/dist/types/components/Button/Button.vue.d.ts +12 -0
  34. package/dist/types/components/Button/index.d.ts +2 -0
  35. package/dist/types/components/Calendar/Calendar.vue.d.ts +205 -0
  36. package/dist/types/components/Calendar/index.d.ts +1 -0
  37. package/dist/types/components/Card/Card.vue.d.ts +179 -0
  38. package/dist/types/components/Card/index.d.ts +2 -0
  39. package/dist/types/components/CardSelect/CardSelect.vue.d.ts +56 -0
  40. package/dist/types/components/CardSelect/index.d.ts +2 -0
  41. package/dist/types/components/Carousel/Carousel.vue.d.ts +214 -0
  42. package/dist/types/components/Carousel/CarouselItem.vue.d.ts +112 -0
  43. package/dist/types/components/Carousel/index.d.ts +2 -0
  44. package/dist/types/components/Cascader/Cascader.vue.d.ts +704 -0
  45. package/dist/types/components/Cascader/index.d.ts +3 -0
  46. package/dist/types/components/Chart/Chart.vue.d.ts +47 -0
  47. package/dist/types/components/Chart/index.d.ts +2 -0
  48. package/dist/types/components/Checkbox/Checkbox.vue.d.ts +21 -0
  49. package/dist/types/components/Checkbox/CheckboxGroup.vue.d.ts +20 -0
  50. package/dist/types/components/Checkbox/index.d.ts +5 -0
  51. package/dist/types/components/Collapse/Collapse.vue.d.ts +150 -0
  52. package/dist/types/components/Collapse/CollapseItem.vue.d.ts +146 -0
  53. package/dist/types/components/Collapse/index.d.ts +2 -0
  54. package/dist/types/components/Color/Color.vue.d.ts +26 -0
  55. package/dist/types/components/Color/index.d.ts +2 -0
  56. package/dist/types/components/ColorPicker/ColorPicker.vue.d.ts +195 -0
  57. package/dist/types/components/ColorPicker/index.d.ts +3 -0
  58. package/dist/types/components/Comment/Comment.vue.d.ts +46 -0
  59. package/dist/types/components/Comment/index.d.ts +2 -0
  60. package/dist/types/components/Container/Container.vue.d.ts +12 -0
  61. package/dist/types/components/Container/index.d.ts +1 -0
  62. package/dist/types/components/DatePicker/DatePicker.vue.d.ts +568 -0
  63. package/dist/types/components/DatePicker/index.d.ts +3 -0
  64. package/dist/types/components/Descriptions/Descriptions.vue.d.ts +138 -0
  65. package/dist/types/components/Descriptions/DescriptionsItem.vue.d.ts +150 -0
  66. package/dist/types/components/Descriptions/index.d.ts +2 -0
  67. package/dist/types/components/Dialog/Dialog.vue.d.ts +360 -0
  68. package/dist/types/components/Dialog/index.d.ts +1 -0
  69. package/dist/types/components/Divider/Divider.vue.d.ts +123 -0
  70. package/dist/types/components/Divider/index.d.ts +1 -0
  71. package/dist/types/components/Drawer/Drawer.vue.d.ts +398 -0
  72. package/dist/types/components/Drawer/index.d.ts +1 -0
  73. package/dist/types/components/Dropdown/Dropdown.vue.d.ts +1610 -0
  74. package/dist/types/components/Dropdown/DropdownItem.vue.d.ts +12 -0
  75. package/dist/types/components/Dropdown/DropdownMenu.vue.d.ts +12 -0
  76. package/dist/types/components/Dropdown/index.d.ts +3 -0
  77. package/dist/types/components/EChartsWrapper/EChartsWrapper.vue.d.ts +39 -0
  78. package/dist/types/components/EChartsWrapper/index.d.ts +2 -0
  79. package/dist/types/components/Empty/Empty.vue.d.ts +126 -0
  80. package/dist/types/components/Empty/index.d.ts +1 -0
  81. package/dist/types/components/FilePreview/FilePreview.vue.d.ts +67 -0
  82. package/dist/types/components/FilePreview/index.d.ts +2 -0
  83. package/dist/types/components/FloatButton/FloatButton.vue.d.ts +44 -0
  84. package/dist/types/components/FloatButton/index.d.ts +2 -0
  85. package/dist/types/components/Font/Font.vue.d.ts +18 -0
  86. package/dist/types/components/Font/index.d.ts +2 -0
  87. package/dist/types/components/Form/Form.vue.d.ts +221 -0
  88. package/dist/types/components/Form/FormItem.vue.d.ts +17 -0
  89. package/dist/types/components/Form/index.d.ts +4 -0
  90. package/dist/types/components/Grid/Col.vue.d.ts +160 -0
  91. package/dist/types/components/Grid/Row.vue.d.ts +120 -0
  92. package/dist/types/components/Grid/index.d.ts +2 -0
  93. package/dist/types/components/Icon/Icon.vue.d.ts +30 -0
  94. package/dist/types/components/Icon/gradient.d.ts +10 -0
  95. package/dist/types/components/Icon/index.d.ts +1 -0
  96. package/dist/types/components/Image/Image.vue.d.ts +285 -0
  97. package/dist/types/components/Image/index.d.ts +1 -0
  98. package/dist/types/components/Input/Input.vue.d.ts +407 -0
  99. package/dist/types/components/Input/index.d.ts +2 -0
  100. package/dist/types/components/InputNumber/InputNumber.vue.d.ts +282 -0
  101. package/dist/types/components/InputNumber/index.d.ts +2 -0
  102. package/dist/types/components/Layout/Layout.vue.d.ts +27 -0
  103. package/dist/types/components/Layout/index.d.ts +1 -0
  104. package/dist/types/components/Link/Link.vue.d.ts +148 -0
  105. package/dist/types/components/Link/index.d.ts +1 -0
  106. package/dist/types/components/List/List.vue.d.ts +26 -0
  107. package/dist/types/components/List/ListItem.vue.d.ts +27 -0
  108. package/dist/types/components/List/index.d.ts +2 -0
  109. package/dist/types/components/Loading/Loading.vue.d.ts +12 -0
  110. package/dist/types/components/Loading/index.d.ts +3 -0
  111. package/dist/types/components/Masonry/Masonry.vue.d.ts +35 -0
  112. package/dist/types/components/Masonry/index.d.ts +2 -0
  113. package/dist/types/components/Menu/Menu.vue.d.ts +235 -0
  114. package/dist/types/components/Menu/MenuItem.vue.d.ts +295 -0
  115. package/dist/types/components/Menu/MenuItemGroup.vue.d.ts +14 -0
  116. package/dist/types/components/Menu/SubMenu.vue.d.ts +216 -0
  117. package/dist/types/components/Menu/index.d.ts +4 -0
  118. package/dist/types/components/Message/index.d.ts +9 -0
  119. package/dist/types/components/Money/Money.vue.d.ts +30 -0
  120. package/dist/types/components/Money/index.d.ts +2 -0
  121. package/dist/types/components/Notification/index.d.ts +9 -0
  122. package/dist/types/components/Pagination/Pagination.vue.d.ts +3 -0
  123. package/dist/types/components/Pagination/index.d.ts +1 -0
  124. package/dist/types/components/Plate/Plate.vue.d.ts +46 -0
  125. package/dist/types/components/Plate/index.d.ts +2 -0
  126. package/dist/types/components/Popconfirm/Popconfirm.vue.d.ts +23 -0
  127. package/dist/types/components/Popconfirm/index.d.ts +1 -0
  128. package/dist/types/components/Popover/Popover.vue.d.ts +19 -0
  129. package/dist/types/components/Popover/index.d.ts +1 -0
  130. package/dist/types/components/Progress/Progress.vue.d.ts +180 -0
  131. package/dist/types/components/Progress/index.d.ts +1 -0
  132. package/dist/types/components/QRCode/QRCode.vue.d.ts +43 -0
  133. package/dist/types/components/QRCode/index.d.ts +2 -0
  134. package/dist/types/components/QueryForm/QueryForm.vue.d.ts +227 -0
  135. package/dist/types/components/QueryForm/index.d.ts +1 -0
  136. package/dist/types/components/Radio/Radio.vue.d.ts +20 -0
  137. package/dist/types/components/Radio/RadioButton.vue.d.ts +12 -0
  138. package/dist/types/components/Radio/RadioGroup.vue.d.ts +20 -0
  139. package/dist/types/components/Radio/index.d.ts +6 -0
  140. package/dist/types/components/Rate/Rate.vue.d.ts +120 -0
  141. package/dist/types/components/Rate/index.d.ts +3 -0
  142. package/dist/types/components/Result/Result.vue.d.ts +136 -0
  143. package/dist/types/components/Result/index.d.ts +1 -0
  144. package/dist/types/components/RichText/RichText.vue.d.ts +42 -0
  145. package/dist/types/components/RichText/index.d.ts +2 -0
  146. package/dist/types/components/SearchFilter/SearchFilter.vue.d.ts +14 -0
  147. package/dist/types/components/SearchFilter/index.d.ts +1 -0
  148. package/dist/types/components/Segmented/Segmented.vue.d.ts +24 -0
  149. package/dist/types/components/Segmented/index.d.ts +3 -0
  150. package/dist/types/components/Select/Select.vue.d.ts +56 -0
  151. package/dist/types/components/Select/index.d.ts +3 -0
  152. package/dist/types/components/Skeleton/Skeleton.vue.d.ts +140 -0
  153. package/dist/types/components/Skeleton/SkeletonItem.vue.d.ts +26 -0
  154. package/dist/types/components/Skeleton/index.d.ts +2 -0
  155. package/dist/types/components/Space/Space.vue.d.ts +184 -0
  156. package/dist/types/components/Space/SpaceCompact.vue.d.ts +23 -0
  157. package/dist/types/components/Space/index.d.ts +579 -0
  158. package/dist/types/components/Spin/Spin.vue.d.ts +23 -0
  159. package/dist/types/components/Spin/index.d.ts +3 -0
  160. package/dist/types/components/Splitter/Splitter.vue.d.ts +146 -0
  161. package/dist/types/components/Splitter/SplitterPanel.vue.d.ts +144 -0
  162. package/dist/types/components/Splitter/index.d.ts +2 -0
  163. package/dist/types/components/Statistic/Statistic.vue.d.ts +158 -0
  164. package/dist/types/components/Statistic/index.d.ts +1 -0
  165. package/dist/types/components/Steps/Step.vue.d.ts +136 -0
  166. package/dist/types/components/Steps/Steps.vue.d.ts +148 -0
  167. package/dist/types/components/Steps/index.d.ts +2 -0
  168. package/dist/types/components/Switch/Switch.vue.d.ts +238 -0
  169. package/dist/types/components/Switch/index.d.ts +3 -0
  170. package/dist/types/components/Table/Table.vue.d.ts +38 -0
  171. package/dist/types/components/Table/TableColumn.vue.d.ts +4 -0
  172. package/dist/types/components/Table/TableOperationColumn.vue.d.ts +27 -0
  173. package/dist/types/components/Table/index.d.ts +3 -0
  174. package/dist/types/components/Tabs/TabPane.vue.d.ts +14 -0
  175. package/dist/types/components/Tabs/Tabs.vue.d.ts +19 -0
  176. package/dist/types/components/Tabs/index.d.ts +4 -0
  177. package/dist/types/components/Tag/CheckableTag.vue.d.ts +23 -0
  178. package/dist/types/components/Tag/Tag.vue.d.ts +150 -0
  179. package/dist/types/components/Tag/index.d.ts +479 -0
  180. package/dist/types/components/TimePicker/TimePicker.vue.d.ts +551 -0
  181. package/dist/types/components/TimePicker/index.d.ts +3 -0
  182. package/dist/types/components/Timeline/Timeline.vue.d.ts +60 -0
  183. package/dist/types/components/Timeline/TimelineItem.vue.d.ts +144 -0
  184. package/dist/types/components/Timeline/index.d.ts +2 -0
  185. package/dist/types/components/Tooltip/Tooltip.vue.d.ts +19 -0
  186. package/dist/types/components/Tooltip/index.d.ts +1 -0
  187. package/dist/types/components/TopicSwitch/TopicSwitch.vue.d.ts +36 -0
  188. package/dist/types/components/TopicSwitch/index.d.ts +3 -0
  189. package/dist/types/components/Tour/Tour.vue.d.ts +222 -0
  190. package/dist/types/components/Tour/index.d.ts +2 -0
  191. package/dist/types/components/Transfer/Transfer.vue.d.ts +29 -0
  192. package/dist/types/components/Transfer/index.d.ts +3 -0
  193. package/dist/types/components/Tree/Tree.vue.d.ts +5857 -0
  194. package/dist/types/components/Tree/index.d.ts +3 -0
  195. package/dist/types/components/TreeSelect/TreeSelect.vue.d.ts +990 -0
  196. package/dist/types/components/TreeSelect/index.d.ts +3 -0
  197. package/dist/types/components/Upload/Upload.vue.d.ts +322 -0
  198. package/dist/types/components/Upload/index.d.ts +3 -0
  199. package/dist/types/components/UserDisplay/UserDisplay.vue.d.ts +21 -0
  200. package/dist/types/components/UserDisplay/index.d.ts +1 -0
  201. package/dist/types/components/Watermark/Watermark.vue.d.ts +13 -0
  202. package/dist/types/components/Watermark/index.d.ts +1 -0
  203. package/dist/types/index.d.ts +119 -0
  204. package/dist/types/style.d.ts +0 -0
  205. package/dist/types/theme.d.ts +5 -0
  206. package/docs/component-compatibility.md +85 -0
  207. package/docs/component-manifest.json +100 -0
  208. package/docs/components/button.md +32 -0
  209. package/docs/components/chart.md +37 -0
  210. package/docs/components/container.md +28 -0
  211. package/docs/components/dialog.md +46 -0
  212. package/docs/components/echarts-wrapper.md +46 -0
  213. package/docs/components/form.md +67 -0
  214. package/docs/components/grid.md +32 -0
  215. package/docs/components/icon.md +45 -0
  216. package/docs/components/index.md +36 -0
  217. package/docs/components/loading.md +46 -0
  218. package/docs/components/message.md +26 -0
  219. package/docs/components/qr-code.md +49 -0
  220. package/docs/components/rich-text.md +65 -0
  221. package/docs/components/select.md +71 -0
  222. package/docs/components/table.md +44 -0
  223. package/docs/components/upload.md +40 -0
  224. package/docs/index.md +35 -0
  225. package/docs/migration-from-workspace.md +79 -0
  226. package/docs/theme.md +100 -0
  227. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/Timeline/Timeline.vue","../src/components/Timeline/TimelineItem.vue","../src/components/ActivityFeed/ActivityFeed.vue","../src/components/Alert/Alert.vue","../src/components/Anchor/Anchor.vue","../src/components/Anchor/AnchorLink.vue","../src/components/FilePreview/FilePreview.vue","../src/components/AttachmentList/AttachmentList.vue","../src/components/Avatar/avatar.ts","../src/components/Avatar/Avatar.vue","../src/components/Avatar/AvatarGroup.vue","../src/components/Badge/Badge.vue","../src/components/BackTop/BackTop.vue","../src/components/Breadcrumb/Breadcrumb.vue","../src/components/Breadcrumb/BreadcrumbItem.vue","../src/components/Button/Button.vue","../src/components/Card/Card.vue","../src/components/Icon/gradient.ts","../src/components/Icon/Icon.vue","../src/components/CardSelect/CardSelect.vue","../src/components/Cascader/Cascader.vue","../src/components/Calendar/Calendar.vue","../src/components/Carousel/Carousel.vue","../src/components/Carousel/CarouselItem.vue","../src/components/EChartsWrapper/EChartsWrapper.vue","../src/components/Chart/Chart.vue","../src/components/Checkbox/Checkbox.vue","../src/components/Checkbox/CheckboxGroup.vue","../src/components/Color/Color.vue","../src/components/ColorPicker/ColorPicker.vue","../src/components/Comment/Comment.vue","../src/components/Container/Container.vue","../src/components/Collapse/Collapse.vue","../src/components/Collapse/CollapseItem.vue","../src/components/DatePicker/DatePicker.vue","../src/components/Descriptions/Descriptions.vue","../src/components/Descriptions/DescriptionsItem.vue","../src/components/Dialog/Dialog.vue","../src/components/Divider/Divider.vue","../src/components/Drawer/Drawer.vue","../src/components/Dropdown/Dropdown.vue","../src/components/Dropdown/DropdownMenu.vue","../src/components/Dropdown/DropdownItem.vue","../src/components/Empty/Empty.vue","../src/components/FloatButton/FloatButton.vue","../src/components/Font/Font.vue","../src/components/Form/Form.vue","../src/components/Form/FormItem.vue","../src/components/Grid/Row.vue","../src/components/Grid/Col.vue","../src/components/Image/Image.vue","../src/components/Layout/Layout.vue","../src/components/List/List.vue","../src/components/List/ListItem.vue","../src/components/Link/Link.vue","../src/components/Input/Input.vue","../src/components/InputNumber/InputNumber.vue","../src/components/Message/index.ts","../src/components/Masonry/Masonry.vue","../src/components/Menu/Menu.vue","../src/components/Menu/MenuItem.vue","../src/components/Menu/MenuItemGroup.vue","../src/components/Menu/SubMenu.vue","../src/components/Money/Money.vue","../src/components/Notification/index.ts","../src/components/Pagination/Pagination.vue","../src/components/Plate/Plate.vue","../src/components/Popconfirm/Popconfirm.vue","../src/components/Popover/Popover.vue","../src/components/QueryForm/QueryForm.vue","../src/components/QRCode/QRCode.vue","../src/components/Radio/Radio.vue","../src/components/Radio/RadioButton.vue","../src/components/Radio/RadioGroup.vue","../src/components/Rate/Rate.vue","../src/components/Result/Result.vue","../src/components/RichText/RichText.vue","../src/components/SearchFilter/SearchFilter.vue","../src/components/Select/Select.vue","../src/components/Segmented/Segmented.vue","../src/components/Skeleton/Skeleton.vue","../src/components/Skeleton/SkeletonItem.vue","../src/components/Space/Space.vue","../src/components/Space/SpaceCompact.vue","../src/components/Space/index.ts","../src/components/Splitter/Splitter.vue","../src/components/Splitter/SplitterPanel.vue","../src/components/Statistic/Statistic.vue","../src/components/Spin/Spin.vue","../src/components/Loading/Loading.vue","../src/components/Switch/Switch.vue","../src/components/Table/Table.vue","../src/components/Table/TableColumn.vue","../src/components/Table/TableOperationColumn.vue","../src/components/Tabs/Tabs.vue","../src/components/Tabs/TabPane.vue","../src/components/Tag/Tag.vue","../src/components/Tag/CheckableTag.vue","../src/components/Tag/index.ts","../src/components/TimePicker/TimePicker.vue","../src/components/Tooltip/Tooltip.vue","../src/components/TopicSwitch/TopicSwitch.vue","../src/components/Tour/Tour.vue","../src/components/Transfer/Transfer.vue","../src/components/Tree/Tree.vue","../src/components/TreeSelect/TreeSelect.vue","../src/components/Upload/Upload.vue","../src/components/UserDisplay/UserDisplay.vue","../src/components/Watermark/Watermark.vue","../src/components/Progress/Progress.vue","../src/components/Steps/Steps.vue","../src/components/Steps/Step.vue","../src/theme.ts"],"sourcesContent":["<template>\n <ElTimeline ref=\"timelineRef\" class=\"tt-timeline\" v-bind=\"$attrs\">\n <slot />\n </ElTimeline>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElTimeline } from 'element-plus';\n\nconst timelineRef = ref<InstanceType<typeof ElTimeline>>();\n\ndefineOptions({\n name: 'Timeline',\n});\n\ndefineExpose({\n timelineRef,\n});\n</script>\n","<template>\n <ElTimelineItem ref=\"timelineItemRef\" class=\"tt-timeline-item\" v-bind=\"$attrs\">\n <template v-if=\"slots.dot\" #dot>\n <span class=\"tt-timeline-item__dot\">\n <slot name=\"dot\" />\n </span>\n </template>\n <slot />\n </ElTimelineItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElTimelineItem } from 'element-plus';\n\nconst slots = useSlots();\nconst timelineItemRef = ref<InstanceType<typeof ElTimelineItem>>();\n\ndefineOptions({\n name: 'TimelineItem',\n});\n\ndefineExpose({\n timelineItemRef,\n});\n</script>\n","<template>\n <div class=\"tt-activity-feed\">\n <Timeline>\n <TimelineItem v-for=\"item in items\" :key=\"item.key\" :timestamp=\"item.time\" :type=\"item.type || 'primary'\" placement=\"top\">\n <div class=\"tt-activity-feed__item\">\n <div class=\"tt-activity-feed__title\">{{ item.title }}</div>\n <div v-if=\"item.description\" class=\"tt-activity-feed__description\">{{ item.description }}</div>\n <div v-if=\"item.user\" class=\"tt-activity-feed__user\">{{ item.user }}</div>\n </div>\n </TimelineItem>\n </Timeline>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport Timeline, { TimelineItem } from '../Timeline';\n\nexport interface ActivityFeedItem {\n key: string | number;\n title: string;\n description?: string;\n user?: string;\n time?: string;\n type?: 'primary' | 'success' | 'warning' | 'danger' | 'info';\n}\n\ndefineProps<{\n items: ActivityFeedItem[];\n}>();\n\ndefineOptions({\n name: 'ActivityFeed',\n});\n</script>\n","<template>\n <ElAlert ref=\"alertRef\" class=\"tt-alert\" v-bind=\"$attrs\">\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-if=\"slots.default\" #default>\n <slot />\n </template>\n </ElAlert>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElAlert } from 'element-plus';\n\nconst slots = useSlots();\nconst alertRef = ref<InstanceType<typeof ElAlert>>();\n\ndefineOptions({\n name: 'Alert',\n});\n\ndefineExpose({\n alertRef,\n});\n</script>\n","<template>\n <ElAnchor class=\"tt-anchor\" v-bind=\"$attrs\">\n <slot />\n </ElAnchor>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElAnchor } from 'element-plus';\n\ndefineOptions({\n name: 'Anchor',\n});\n</script>\n","<template>\n <ElAnchorLink class=\"tt-anchor-link\" v-bind=\"$attrs\">\n <slot />\n <template #sub-link>\n <slot name=\"sub-link\" />\n </template>\n </ElAnchorLink>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElAnchorLink } from 'element-plus';\n\ndefineOptions({\n name: 'AnchorLink',\n});\n</script>\n","<template>\n <div v-if=\"!isPreviewMode\" v-bind=\"attrs\" class=\"tt-file-preview\" :class=\"{ 'is-clickable': clickable }\" :role=\"clickable ? 'button' : undefined\" :tabindex=\"clickable ? 0 : undefined\" @click=\"handlePreview\" @keydown.enter=\"handlePreview\">\n <span class=\"tt-file-preview__icon\" aria-hidden=\"true\">{{ iconText }}</span>\n <div class=\"tt-file-preview__body\"><strong>{{ name }}</strong><span v-if=\"description\">{{ description }}</span></div>\n <slot name=\"extra\" />\n </div>\n <Teleport v-else to=\"body\">\n <div v-if=\"visible\" ref=\"root\" v-bind=\"attrs\" class=\"tt-file-preview-overlay\" :style=\"{ zIndex }\" role=\"dialog\" aria-modal=\"true\" :aria-label=\"`${currentName} 文件预览`\" @click.self=\"handleMaskClick\">\n <header class=\"tt-file-preview-overlay__header\">\n <strong :title=\"currentName\">{{ currentName }}</strong>\n <div class=\"tt-file-preview-overlay__actions\">\n <button v-if=\"copyable\" type=\"button\" :disabled=\"!currentUrl\" aria-label=\"复制链接\" @click=\"copyCurrentUrl\"><CopyDocument /></button>\n <a v-if=\"downloadable\" :href=\"currentUrl || undefined\" :download=\"currentName\" :aria-disabled=\"!currentUrl\" aria-label=\"下载\" @click=\"handleDownload\"><Download /></a>\n <button type=\"button\" aria-label=\"关闭预览\" @click=\"close\"><Close /></button>\n </div>\n </header>\n <main class=\"tt-file-preview-overlay__content\">\n <img v-if=\"previewType === 'image' && currentUrl\" class=\"tt-file-preview-overlay__image\" :class=\"{ 'is-draggable': imageTransform.scale > 1 }\" :src=\"imageUrl\" :alt=\"currentName\" :style=\"imageStyle\" draggable=\"false\" @wheel.prevent=\"handleImageWheel\" @mousedown=\"startImageDrag\" />\n <video v-else-if=\"previewType === 'video' && currentUrl\" controls :src=\"currentUrl\" />\n <audio v-else-if=\"previewType === 'audio' && currentUrl\" controls :src=\"currentUrl\" />\n <pre v-else-if=\"previewType === 'txt' && textPreviewContent !== null\" class=\"tt-file-preview-overlay__text\">{{ textPreviewContent }}</pre>\n <iframe v-else-if=\"(previewType === 'pdf' || previewType === 'txt') && currentUrl\" :src=\"previewType === 'pdf' ? `${currentUrl}#toolbar=0` : currentUrl\" :title=\"currentName\" />\n <iframe v-else-if=\"isOfficeFile && currentUrl\" :src=\"officeUrl\" :title=\"currentName\" />\n <div v-else class=\"tt-file-preview-overlay__file-card\">\n <span>{{ currentIconText }}</span><strong :title=\"currentName\">{{ currentName }}</strong>\n <a v-if=\"downloadable && currentUrl\" :href=\"currentUrl\" :download=\"currentName\"><Download />下载文件</a>\n </div>\n <button v-if=\"canNavigate\" class=\"tt-file-preview-overlay__nav tt-file-preview-overlay__nav--prev\" type=\"button\" :disabled=\"!canPrev\" aria-label=\"上一个文件\" @click=\"prev\"><ArrowLeft /></button>\n <button v-if=\"canNavigate\" class=\"tt-file-preview-overlay__nav tt-file-preview-overlay__nav--next\" type=\"button\" :disabled=\"!canNext\" aria-label=\"下一个文件\" @click=\"next\"><ArrowRight /></button>\n </main>\n <div v-if=\"showToolbar && previewType === 'image' && currentUrl\" class=\"tt-file-preview-overlay__toolbar\" aria-label=\"图片工具栏\">\n <button type=\"button\" aria-label=\"缩小图片\" @click=\"updateScale(-IMAGE_SCALE_STEP)\"><ZoomOut /></button><button type=\"button\" aria-label=\"放大图片\" @click=\"updateScale(IMAGE_SCALE_STEP)\"><ZoomIn /></button><button type=\"button\" aria-label=\"向左旋转\" @click=\"rotateImage(-90)\"><RefreshLeft /></button><button type=\"button\" aria-label=\"向右旋转\" @click=\"rotateImage(90)\"><RefreshRight /></button><button type=\"button\" aria-label=\"重置图片\" @click=\"reset\"><Refresh /></button>\n </div>\n <footer v-if=\"canNavigate\" class=\"tt-file-preview-overlay__footer\" :class=\"{ 'is-expanded': footerExpanded }\">\n <div class=\"tt-file-preview-overlay__footer-bar\"><button type=\"button\" :aria-label=\"footerExpanded ? '收起文件列表' : '展开文件列表'\" @click=\"footerExpanded = !footerExpanded\"><ArrowUp v-if=\"footerExpanded\" /><ArrowDown v-else /></button><span>{{ currentIndex + 1 }} / {{ normalizedFiles.length }}</span></div>\n <div v-if=\"footerExpanded\" class=\"tt-file-preview-overlay__file-list\">\n <button v-for=\"(file, index) in normalizedFiles\" :key=\"fileKey(file, index)\" type=\"button\" :class=\"{ 'is-active': index === currentIndex }\" :aria-label=\"`预览 ${file.name || '未命名文件'}`\" @click=\"selectFile(index)\">\n <span class=\"tt-file-preview-overlay__thumb\"><img v-if=\"getPreviewType(file) === 'image' && safeUrl(file.url)\" :src=\"originImageUrl(file.url)\" :alt=\"file.name\" /><span v-else>{{ fileIcon(file) }}</span></span><span :title=\"file.name\">{{ file.name || '未命名文件' }}</span>\n </button>\n </div>\n </footer>\n </div>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, ref, useAttrs, watch } from 'vue';\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Close, CopyDocument, Download, Refresh, RefreshLeft, RefreshRight, ZoomIn, ZoomOut } from '@element-plus/icons-vue';\n\nconst IMAGE_MIN_SCALE = 0.2;\nconst IMAGE_MAX_SCALE = 5;\nconst IMAGE_SCALE_STEP = 0.2;\nconst DEFAULT_OFFICE_PREVIEW_URL = 'https://view.officeapps.live.com/op/embed.aspx?src=';\n\nexport interface FilePreviewItem { name?: string; url?: string; [key: string]: unknown; }\nexport interface FilePreviewInstance { root: HTMLElement | null; reset: () => void; prev: () => void; next: () => void; getCurrentFile: () => FilePreviewItem | undefined; }\n\nconst props = withDefaults(defineProps<{\n name?: string; description?: string; type?: string; clickable?: boolean; visible?: boolean; fileList?: FilePreviewItem[]; startFile?: FilePreviewItem; copyable?: boolean; downloadable?: boolean; loop?: boolean; officePreviewUrl?: string | ((url: string) => string); zIndex?: number; closeOnMaskClick?: boolean; showToolbar?: boolean;\n}>(), {\n clickable: true, closeOnMaskClick: false, copyable: true, description: '', downloadable: true, fileList: () => [], loop: true, name: '', showToolbar: true, type: 'file', visible: true, zIndex: 2000,\n});\nconst emit = defineEmits<{ close: []; preview: []; 'update:visible': [visible: boolean]; }>();\nconst attrs = useAttrs();\nconst root = ref<HTMLElement | null>(null);\nconst footerExpanded = ref(false);\nconst currentIndex = ref(0);\nconst imageTransform = ref({ scale: 1, rotate: 0, offsetX: 0, offsetY: 0 });\nconst textPreviewContent = ref<string | null>(null);\nconst dragState = { dragging: false, startX: 0, startY: 0, offsetX: 0, offsetY: 0 };\nconst normalizedFiles = computed(() => props.fileList.filter(Boolean));\nconst isPreviewMode = computed(() => normalizedFiles.value.length > 0);\nconst currentFile = computed(() => normalizedFiles.value[currentIndex.value]);\nconst currentName = computed(() => currentFile.value?.name || '未命名文件');\nconst currentUrl = computed(() => safeUrl(currentFile.value?.url));\nconst previewType = computed(() => getPreviewType(currentFile.value));\nconst currentIconText = computed(() => fileIcon(currentFile.value));\nconst imageUrl = computed(() => originImageUrl(currentUrl.value));\nconst officeUrl = computed(() => getOfficePreviewUrl(currentUrl.value));\nconst isOfficeFile = computed(() => ['word', 'excel', 'ppt'].includes(previewType.value));\nconst canNavigate = computed(() => normalizedFiles.value.length > 1);\nconst canPrev = computed(() => props.loop || currentIndex.value > 0);\nconst canNext = computed(() => props.loop || currentIndex.value < normalizedFiles.value.length - 1);\nconst iconText = computed(() => props.type.slice(0, 3).toUpperCase() || 'FILE');\nconst imageStyle = computed(() => ({ transform: `translate(${imageTransform.value.offsetX}px, ${imageTransform.value.offsetY}px) scale(${imageTransform.value.scale}) rotate(${imageTransform.value.rotate}deg)` }));\n\nwatch([normalizedFiles, () => props.startFile, () => props.visible], ([files, startFile]) => {\n const startIndex = startFile ? files.findIndex(file => file === startFile || file.url === startFile.url && file.name === startFile.name) : -1;\n currentIndex.value = startIndex >= 0 ? startIndex : 0;\n reset();\n}, { immediate: true });\nwatch([isPreviewMode, () => props.visible], ([previewMode, visible], _, onCleanup) => {\n if (!previewMode || !visible || typeof document === 'undefined') return;\n const originalOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n onCleanup(() => { document.body.style.overflow = originalOverflow; });\n}, { immediate: true });\nwatch([previewType, currentUrl], async ([type, url], _, onCleanup) => {\n textPreviewContent.value = null;\n if (type !== 'txt' || !url) return;\n\n const controller = new AbortController();\n onCleanup(() => controller.abort());\n try {\n const response = await fetch(url, { signal: controller.signal });\n if (response.ok) textPreviewContent.value = await response.text();\n } catch {\n // 跨域或服务端禁止读取时,保留 iframe 作为兼容回退。\n }\n}, { immediate: true });\n\nfunction getExtension(file?: FilePreviewItem) { const source = file?.name || file?.url || ''; return source.split(/[?#]/)[0].split('.').pop()?.toLowerCase() || ''; }\nfunction getPreviewType(file?: FilePreviewItem) {\n const extension = getExtension(file);\n if (['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg', 'bmp'].includes(extension)) return 'image';\n if (['mp4', 'webm', 'ogg', 'mov'].includes(extension)) return 'video';\n if (['mp3', 'wav', 'm4a'].includes(extension)) return 'audio';\n if (extension === 'pdf') return 'pdf'; if (extension === 'txt') return 'txt';\n if (['doc', 'docx'].includes(extension)) return 'word'; if (['xls', 'xlsx', 'csv'].includes(extension)) return 'excel'; if (['ppt', 'pptx'].includes(extension)) return 'ppt'; return 'other';\n}\nfunction safeUrl(url?: string) {\n if (!url) return ''; if (url.startsWith('/') || url.startsWith('./') || url.startsWith('../')) return url;\n try { const parsedUrl = new URL(url, typeof window === 'undefined' ? 'http://localhost' : window.location.href); return ['http:', 'https:', 'blob:'].includes(parsedUrl.protocol) ? url : ''; } catch { return ''; }\n}\nfunction originImageUrl(url?: string) { return url?.replace('_thumbnail.', '.') || ''; }\nfunction getOfficePreviewUrl(url: string) { if (!url) return ''; if (typeof props.officePreviewUrl === 'function') return props.officePreviewUrl(url); return `${props.officePreviewUrl || DEFAULT_OFFICE_PREVIEW_URL}${encodeURIComponent(url)}`; }\nfunction fileIcon(file?: FilePreviewItem) { return getExtension(file).slice(0, 3).toUpperCase() || 'FILE'; }\nfunction fileKey(file: FilePreviewItem, index: number) { return `${file.url || ''}-${file.name || ''}-${index}`; }\nfunction handlePreview() { if (props.clickable) emit('preview'); }\nfunction close() { emit('update:visible', false); emit('close'); }\nfunction handleMaskClick() { if (props.closeOnMaskClick) close(); }\nfunction reset() { imageTransform.value = { scale: 1, rotate: 0, offsetX: 0, offsetY: 0 }; }\nfunction selectFile(index: number) { if (!normalizedFiles.value[index]) return; currentIndex.value = index; reset(); }\nfunction prev() { if (canPrev.value) selectFile(currentIndex.value === 0 ? normalizedFiles.value.length - 1 : currentIndex.value - 1); }\nfunction next() { if (canNext.value) selectFile(currentIndex.value === normalizedFiles.value.length - 1 ? 0 : currentIndex.value + 1); }\nfunction updateScale(step: number) { const scale = Math.min(IMAGE_MAX_SCALE, Math.max(IMAGE_MIN_SCALE, imageTransform.value.scale + step)); imageTransform.value = { ...imageTransform.value, scale, offsetX: scale <= 1 ? 0 : imageTransform.value.offsetX, offsetY: scale <= 1 ? 0 : imageTransform.value.offsetY }; }\nfunction rotateImage(offset: number) { imageTransform.value = { ...imageTransform.value, rotate: imageTransform.value.rotate + offset }; }\nfunction handleImageWheel(event: WheelEvent) { updateScale(event.deltaY < 0 ? IMAGE_SCALE_STEP : -IMAGE_SCALE_STEP); }\nfunction startImageDrag(event: MouseEvent) { if (imageTransform.value.scale <= 1) return; event.preventDefault(); Object.assign(dragState, { dragging: true, startX: event.clientX, startY: event.clientY, offsetX: imageTransform.value.offsetX, offsetY: imageTransform.value.offsetY }); }\nfunction handleMouseMove(event: MouseEvent) { if (!dragState.dragging) return; imageTransform.value = { ...imageTransform.value, offsetX: dragState.offsetX + event.clientX - dragState.startX, offsetY: dragState.offsetY + event.clientY - dragState.startY }; }\nfunction stopImageDrag() { dragState.dragging = false; }\nasync function copyCurrentUrl() {\n if (!currentUrl.value) return;\n if (navigator.clipboard?.writeText) { await navigator.clipboard.writeText(currentUrl.value).catch(() => undefined); return; }\n const textarea = document.createElement('textarea'); textarea.value = currentUrl.value; textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy'); document.body.removeChild(textarea);\n}\nfunction handleDownload(event: MouseEvent) { if (!currentUrl.value) event.preventDefault(); }\nfunction handleKeydown(event: KeyboardEvent) { if (!props.visible) return; if (event.key === 'Escape') close(); else if (event.key === 'ArrowLeft') prev(); else if (event.key === 'ArrowRight') next(); }\nonMounted(() => { document.addEventListener('keydown', handleKeydown); document.addEventListener('mousemove', handleMouseMove); document.addEventListener('mouseup', stopImageDrag); window.addEventListener('blur', stopImageDrag); });\nonBeforeUnmount(() => { document.removeEventListener('keydown', handleKeydown); document.removeEventListener('mousemove', handleMouseMove); document.removeEventListener('mouseup', stopImageDrag); window.removeEventListener('blur', stopImageDrag); });\ndefineExpose<FilePreviewInstance>({ get root() { return root.value; }, reset, prev, next, getCurrentFile: () => currentFile.value });\ndefineOptions({ name: 'FilePreview' });\n</script>\n","<template>\n <div class=\"tt-attachment-list\">\n <FilePreview\n v-for=\"file in files\"\n :key=\"file.key\"\n :name=\"file.name\"\n :description=\"file.description || file.size\"\n :type=\"file.type\"\n @preview=\"emit('preview', file)\"\n >\n <template #extra>\n <button type=\"button\" class=\"tt-attachment-list__action\" @click.stop=\"emit('download', file)\">下载</button>\n </template>\n </FilePreview>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport FilePreview from '../FilePreview';\n\nexport interface AttachmentItem {\n key: string | number;\n name: string;\n description?: string;\n size?: string;\n type?: string;\n url?: string;\n}\n\ndefineProps<{\n files: AttachmentItem[];\n}>();\n\nconst emit = defineEmits<{\n preview: [file: AttachmentItem];\n download: [file: AttachmentItem];\n}>();\n\ndefineOptions({\n name: 'AttachmentList',\n});\n</script>\n","export const avatarColors = [\n 'red',\n 'orange',\n 'gold',\n 'lime',\n 'green',\n 'cyan',\n 'blue',\n 'geekBlue',\n 'purple',\n 'pink',\n 'rosePink',\n] as const;\n\nexport type AvatarColor = (typeof avatarColors)[number];\nexport type AvatarStatus = 'online' | 'offline' | 'away' | 'busy';\n","<template>\n <ElTooltip :content=\"name\" placement=\"top\" :disabled=\"!showTooltip || !name\">\n <span class=\"tt-avatar-wrapper\">\n <ElAvatar ref=\"avatarRef\" :class=\"avatarClass\" v-bind=\"$attrs\">\n <slot />\n </ElAvatar>\n <span v-if=\"status\" class=\"tt-avatar-status-dot\" :class=\"`is-${status}`\" />\n <span v-if=\"badgeCount > 0\" class=\"tt-avatar-badge\">{{ badgeLabel }}</span>\n <button v-if=\"showRemove\" class=\"tt-avatar-remove-btn\" type=\"button\" aria-label=\"移除头像\" @click.stop=\"emit('remove')\">\n <ElIcon><CircleCloseFilled /></ElIcon>\n </button>\n </span>\n </ElTooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots } from 'vue';\nimport { CircleCloseFilled } from '@element-plus/icons-vue';\nimport { ElAvatar, ElIcon, ElTooltip } from 'element-plus';\nimport { avatarColors, type AvatarColor, type AvatarStatus } from './avatar';\n\nconst props = withDefaults(\n defineProps<{\n color?: AvatarColor;\n name?: string;\n showTooltip?: boolean;\n status?: AvatarStatus;\n badgeCount?: number;\n showRemove?: boolean;\n }>(),\n {\n showTooltip: false,\n badgeCount: 0,\n showRemove: false,\n }\n);\n\nconst emit = defineEmits<{\n remove: [];\n}>();\n\nconst avatarRef = ref<InstanceType<typeof ElAvatar>>();\nconst slots = useSlots();\nconst slotText = computed(() =>\n slots\n .default?.()\n .map(node => (typeof node.children === 'string' ? node.children : ''))\n .join('') ?? ''\n);\nconst resolvedColor = computed<AvatarColor | undefined>(() => {\n if (props.color) return props.color;\n if (!slotText.value) return undefined;\n\n return avatarColors[slotText.value.charCodeAt(0) % avatarColors.length];\n});\nconst avatarClass = computed(() => [\n 'tt-avatar',\n resolvedColor.value && `tt-avatar-color-${resolvedColor.value}`,\n resolvedColor.value && ['gold', 'lime', 'cyan'].includes(resolvedColor.value) ? 'tt-avatar-text-dark' : 'tt-avatar-text-light',\n]);\nconst badgeLabel = computed(() => (props.badgeCount > 99 ? '99+' : props.badgeCount));\n\ndefineOptions({\n name: 'Avatar',\n});\n\ndefineExpose({\n avatarRef,\n});\n</script>\n","<template>\n <ElAvatarGroup ref=\"avatarGroupRef\" class=\"tt-avatar-group\" v-bind=\"$attrs\">\n <slot />\n </ElAvatarGroup>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElAvatarGroup } from 'element-plus';\n\nconst avatarGroupRef = ref<InstanceType<typeof ElAvatarGroup>>();\n\ndefineOptions({\n name: 'AvatarGroup',\n});\n\ndefineExpose({\n avatarGroupRef,\n});\n</script>\n","<template>\n <ElBadge ref=\"badgeRef\" class=\"tt-badge\" v-bind=\"$attrs\">\n <slot />\n </ElBadge>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElBadge } from 'element-plus';\n\nconst badgeRef = ref<InstanceType<typeof ElBadge>>();\n\ndefineOptions({\n name: 'Badge',\n});\n\ndefineExpose({\n badgeRef,\n});\n</script>\n","<template>\n <ElBacktop ref=\"backtopRef\" class=\"tt-backtop\" v-bind=\"$attrs\">\n <slot />\n </ElBacktop>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElBacktop } from 'element-plus';\n\nconst backtopRef = ref<InstanceType<typeof ElBacktop>>();\n\ndefineOptions({\n name: 'BackTop',\n});\n\ndefineExpose({\n backtopRef,\n});\n</script>\n","<template>\n <ElBreadcrumb ref=\"breadcrumbRef\" class=\"tt-breadcrumb\" v-bind=\"$attrs\">\n <slot />\n </ElBreadcrumb>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElBreadcrumb } from 'element-plus';\n\nconst breadcrumbRef = ref<InstanceType<typeof ElBreadcrumb>>();\n\ndefineOptions({\n name: 'Breadcrumb',\n});\n\ndefineExpose({\n breadcrumbRef,\n});\n</script>\n","<template>\n <ElBreadcrumbItem ref=\"breadcrumbItemRef\" class=\"tt-breadcrumb-item\" v-bind=\"$attrs\">\n <slot />\n </ElBreadcrumbItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElBreadcrumbItem } from 'element-plus';\n\nconst breadcrumbItemRef = ref<InstanceType<typeof ElBreadcrumbItem>>();\n\ndefineOptions({\n name: 'BreadcrumbItem',\n});\n\ndefineExpose({\n breadcrumbItemRef,\n});\n</script>\n","<template>\n <ElButton :class=\"buttonClass\" v-bind=\"buttonAttrs\">\n <slot />\n </ElButton>\n</template>\n\n<script lang=\"ts\">\ntype ButtonAttrs = Record<string, unknown>;\n\nfunction isBooleanAttr(value: unknown) {\n return value === true || value === '';\n}\n\nexport function getButtonClass(attrs: ButtonAttrs) {\n const type = typeof attrs.type === 'string' ? attrs.type : 'default';\n const size = typeof attrs.size === 'string' ? attrs.size : undefined;\n\n return [\n 'tt-button',\n `tt-button-${type}`,\n size && `tt-button-${size}`,\n isBooleanAttr(attrs.plain) && 'tt-button-plain',\n isBooleanAttr(attrs.round) && 'tt-button-round',\n isBooleanAttr(attrs.circle) && 'tt-button-circle',\n isBooleanAttr(attrs.text) && 'tt-button-text',\n isBooleanAttr(attrs.link) && 'tt-button-link',\n isBooleanAttr(attrs.disabled) && 'tt-button-disabled',\n isBooleanAttr(attrs.loading) && 'tt-button-loading',\n ];\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport { ElButton } from 'element-plus';\nimport type { ButtonProps } from 'element-plus';\n\nconst attrs = useAttrs();\nconst props = defineProps<Partial<ButtonProps>>();\nconst buttonAttrs = computed(() => ({ ...props, ...attrs }));\nconst buttonClass = computed(() => getButtonClass(buttonAttrs.value));\n\ndefineOptions({\n name: 'Button',\n inheritAttrs: false,\n});\n</script>\n","<template>\n <ElCard v-if=\"isMetric\" ref=\"cardRef\" :class=\"cardClass\" v-bind=\"$attrs\">\n <div class=\"tt-card-metric__content\">\n <div v-if=\"slots.icon\" class=\"tt-card-metric__icon\">\n <slot name=\"icon\" />\n </div>\n <div class=\"tt-card-metric__body\">\n <div v-if=\"label || title\" class=\"tt-card-metric__label\">{{ label || title }}</div>\n <div v-if=\"value !== undefined && value !== null\" class=\"tt-card-metric__value\">{{ value }}</div>\n <div v-if=\"hasCompare\" class=\"tt-card-metric__footer\">\n <span v-if=\"compareLabel\" class=\"tt-card-metric__footer-label\">{{ compareLabel }}</span>\n <span v-if=\"compareValue !== undefined && compareValue !== null\" class=\"tt-card-metric__compare\" :class=\"`tt-card-metric__compare--${compareDirection}`\">\n <span>{{ compareValue }}</span>\n <span class=\"tt-card-metric__compare-icon\" aria-hidden=\"true\">{{ compareDirection === 'down' ? '↓' : '↑' }}</span>\n </span>\n </div>\n <slot />\n </div>\n </div>\n </ElCard>\n\n <ElCard v-else-if=\"hasHeader\" ref=\"cardRef\" :class=\"cardClass\" v-bind=\"$attrs\">\n <template #header>\n <slot name=\"header\">\n <div class=\"tt-card-panel__header\">\n <div class=\"tt-card-panel__title-wrap\" :class=\"{ 'tt-card-panel__title-wrap--subtitle': isPanelSubtitle }\">\n <strong v-if=\"title\" class=\"tt-card-panel__title\">{{ title }}</strong>\n <span v-if=\"subTitle && !isPanel\" class=\"tt-card-panel__subtitle\">{{ subTitle }}</span>\n </div>\n <div v-if=\"slots.extra || isPanel && subTitle\" class=\"tt-card-panel__extra\">\n <span v-if=\"isPanel && subTitle\" class=\"tt-card-panel__subtitle\">{{ subTitle }}</span>\n <slot name=\"extra\" />\n </div>\n </div>\n </slot>\n </template>\n <slot />\n <template v-if=\"slots.footer\" #footer>\n <slot name=\"footer\" />\n </template>\n </ElCard>\n\n <ElCard v-else ref=\"cardRef\" :class=\"cardClass\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.footer\" #footer>\n <slot name=\"footer\" />\n </template>\n </ElCard>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots } from 'vue';\nimport { ElCard } from 'element-plus';\n\nexport type CardType = 'default' | 'metric' | 'panel' | 'panel-subtitle';\nexport type CardCompareDirection = 'up' | 'down';\n\nconst props = withDefaults(\n defineProps<{\n type?: CardType;\n title?: string | number;\n subTitle?: string | number;\n label?: string | number;\n value?: string | number;\n compareLabel?: string | number;\n compareValue?: string | number;\n compareDirection?: CardCompareDirection;\n }>(),\n {\n type: 'default',\n compareDirection: 'up',\n },\n);\n\nconst slots = useSlots();\nconst cardRef = ref<InstanceType<typeof ElCard>>();\nconst isMetric = computed(() => props.type === 'metric');\nconst isPanel = computed(() => props.type === 'panel');\nconst isPanelSubtitle = computed(() => props.type === 'panel-subtitle');\nconst hasHeader = computed(() => Boolean(slots.header || slots.extra || props.title || props.subTitle));\nconst hasCompare = computed(() => Boolean(props.compareLabel || props.compareValue !== undefined && props.compareValue !== null));\nconst cardClass = computed(() => [\n 'tt-card',\n {\n 'tt-card--metric': props.type === 'metric',\n 'tt-card--panel': props.type === 'panel',\n 'tt-card--panel-subtitle': props.type === 'panel-subtitle',\n },\n]);\n\ndefineOptions({\n name: 'Card',\n});\n\ndefineExpose({\n cardRef,\n});\n</script>\n","export type GradientStop = {\n color: string;\n offset: string;\n};\n\nexport type GradientDefinition = {\n type: 'linear' | 'radial';\n stops: GradientStop[];\n coordinates?: Record<'x1' | 'y1' | 'x2' | 'y2', string>;\n};\n\nfunction splitGradientArguments(value: string) {\n const items: string[] = [];\n let start = 0;\n let depth = 0;\n\n for (let index = 0; index < value.length; index += 1) {\n if (value[index] === '(') depth += 1;\n if (value[index] === ')') depth -= 1;\n if (value[index] === ',' && depth === 0) {\n items.push(value.slice(start, index).trim());\n start = index + 1;\n }\n }\n\n items.push(value.slice(start).trim());\n return items.filter(Boolean);\n}\n\nfunction gradientAngle(value: string) {\n const degree = Number.parseFloat(value);\n if (value.endsWith('deg') && !Number.isNaN(degree)) return degree;\n\n const directions: Record<string, number> = {\n 'to top': 0,\n 'to top right': 45,\n 'to right top': 45,\n 'to right': 90,\n 'to bottom right': 135,\n 'to right bottom': 135,\n 'to bottom': 180,\n 'to bottom left': 225,\n 'to left bottom': 225,\n 'to left': 270,\n 'to top left': 315,\n 'to left top': 315,\n };\n\n return directions[value] ?? 180;\n}\n\nfunction linearCoordinates(angle: number) {\n const radians = (angle * Math.PI) / 180;\n const horizontal = Math.sin(radians) * 0.5;\n const vertical = -Math.cos(radians) * 0.5;\n const toPercent = (value: number) => `${Math.round(value * 10000) / 100}%`;\n\n return {\n x1: toPercent(0.5 - horizontal),\n y1: toPercent(0.5 - vertical),\n x2: toPercent(0.5 + horizontal),\n y2: toPercent(0.5 + vertical),\n };\n}\n\nexport function parseGradient(value?: string): GradientDefinition | null {\n if (!value) return null;\n\n const match = value.match(/^(linear|radial)-gradient\\((.*)\\)$/i);\n if (!match) return null;\n\n const type = match[1].toLowerCase() as GradientDefinition['type'];\n const argumentsList = splitGradientArguments(match[2]);\n const firstArgument = argumentsList[0] ?? '';\n const hasDirection = type === 'linear' && (firstArgument.endsWith('deg') || firstArgument.startsWith('to '));\n const stops = (hasDirection ? argumentsList.slice(1) : argumentsList)\n .map((stop, index, allStops) => {\n const color = stop.replace(/\\s+(?:\\d*\\.?\\d+)(?:%|px)?(?:\\s+(?:\\d*\\.?\\d+)(?:%|px)?)?$/, '');\n const offsetMatch = stop.match(/\\s((?:\\d*\\.?\\d+)(?:%|px))(?:\\s+(?:\\d*\\.?\\d+)(?:%|px))?$/);\n\n return {\n color,\n offset: offsetMatch?.[1] ?? `${(index / Math.max(allStops.length - 1, 1)) * 100}%`,\n };\n })\n .filter(stop => stop.color);\n\n if (stops.length < 2) return null;\n\n return {\n type,\n stops,\n coordinates: type === 'linear' ? linearCoordinates(gradientAngle(hasDirection ? firstArgument : '180deg')) : undefined,\n };\n}\n","<template>\n <ElIcon class=\"tt-icon\" :class=\"iconClass\" :size=\"size\" :color=\"iconColor\" :style=\"iconStyle\" :aria-label=\"label || undefined\" :aria-hidden=\"label ? undefined : 'true'\" v-bind=\"$attrs\">\n <svg v-if=\"gradientDefinition\" class=\"tt-icon__gradient-defs\" width=\"0\" height=\"0\" aria-hidden=\"true\" focusable=\"false\">\n <defs>\n <linearGradient v-if=\"gradientDefinition.type === 'linear'\" :id=\"gradientId\" v-bind=\"gradientDefinition.coordinates\">\n <stop v-for=\"stop in gradientDefinition.stops\" :key=\"`${stop.color}-${stop.offset}`\" :offset=\"stop.offset\" :stop-color=\"stop.color\" />\n </linearGradient>\n <radialGradient v-else :id=\"gradientId\">\n <stop v-for=\"stop in gradientDefinition.stops\" :key=\"`${stop.color}-${stop.offset}`\" :offset=\"stop.offset\" :stop-color=\"stop.color\" />\n </radialGradient>\n </defs>\n </svg>\n <span v-if=\"slots.default\" class=\"tt-icon__slot\"><slot /></span>\n <span v-else-if=\"isComponentIcon\" class=\"tt-icon__component\"><component :is=\"icon\" /></span>\n <i v-else-if=\"iconfont\" class=\"tt-icon__iconfont\" :class=\"iconfont\" aria-hidden=\"true\" />\n <span v-else-if=\"icon\" class=\"tt-icon__fallback\">{{ icon }}</span>\n </ElIcon>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useId, useSlots, type Component } from 'vue';\nimport { ElIcon } from 'element-plus';\nimport { parseGradient } from './gradient';\n\nconst props = withDefaults(\n defineProps<{\n icon?: Component | string;\n size?: number | string;\n color?: string;\n iconfont?: string;\n spin?: boolean;\n inline?: boolean;\n label?: string;\n }>(),\n {\n icon: undefined,\n size: undefined,\n color: undefined,\n iconfont: '',\n spin: false,\n inline: true,\n label: '',\n },\n);\n\nconst slots = useSlots();\nconst gradientId = `tt-icon-gradient-${useId()}`;\nconst gradientDefinition = computed(() => parseGradient(props.color));\nconst iconColor = computed(() => (gradientDefinition.value ? undefined : props.color));\nconst iconStyle = computed(() => {\n if (!gradientDefinition.value || !props.color) return undefined;\n\n return {\n '--tt-icon-gradient': props.color,\n '--tt-icon-gradient-fill': `url(#${gradientId})`,\n };\n});\nconst isComponentIcon = computed(() => Boolean(props.icon && typeof props.icon !== 'string'));\nconst isTextIcon = computed(() => typeof props.icon === 'string' && Boolean(props.icon));\nconst iconClass = computed(() => [\n `tt-icon-${props.inline ? 'inline' : 'block'}`,\n props.spin && 'tt-icon-spin',\n slots.default && 'tt-icon-slot',\n isComponentIcon.value && 'tt-icon-component',\n isTextIcon.value && 'tt-icon-text',\n props.iconfont && 'tt-icon-iconfont',\n gradientDefinition.value && 'tt-icon-gradient',\n props.label && 'tt-icon-labeled',\n]);\n\ndefineOptions({\n name: 'Icon',\n});\n</script>\n","<template>\n <div\n class=\"tt-card-select-list\"\n :class=\"{\n 'tt-card-select-list--grid': grid,\n 'is-disabled': disabled,\n }\"\n v-bind=\"$attrs\"\n >\n <button\n v-for=\"(record, index) in data\"\n :key=\"getKey(record, index)\"\n type=\"button\"\n class=\"tt-card-select\"\n :class=\"[\n `tt-card-select--${type}`,\n `tt-card-select--${position}`,\n { 'is-selected': isSelected(record, index), 'is-disabled': disabled },\n ]\"\n :disabled=\"disabled\"\n :aria-pressed=\"isSelected(record, index)\"\n @click=\"toggle(record, index)\"\n >\n <span\n v-if=\"type === 'corner' && isSelected(record, index)\"\n class=\"tt-card-select__corner-mark\"\n aria-hidden=\"true\"\n ><Icon :icon=\"Check\" :size=\"16\" :inline=\"false\" /></span>\n <span\n v-if=\"type === 'radio' && position === 'left'\"\n class=\"tt-card-select__radio-indicator\"\n aria-hidden=\"true\"\n />\n <span class=\"tt-card-select__content\">\n <slot name=\"item\" :record=\"record\" :index=\"index\" :selected=\"isSelected(record, index)\">\n <span class=\"tt-card-select__title\">{{ getTitle(record) }}</span>\n <span v-if=\"getDescription(record)\" class=\"tt-card-select__description\">{{ getDescription(record) }}</span>\n </slot>\n </span>\n <span\n v-if=\"type === 'radio' && position === 'right'\"\n class=\"tt-card-select__radio-indicator\"\n aria-hidden=\"true\"\n />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport { Check } from '@element-plus/icons-vue';\nimport Icon from '../Icon';\n\nexport type CardSelectKey = string | number;\nexport type CardSelectType = 'corner' | 'border' | 'radio';\nexport type CardSelectPosition = 'left' | 'right';\nexport type CardSelectMode = 'single' | 'multiple';\nexport type CardSelectRecord = Record<string, unknown>;\n\nconst props = withDefaults(defineProps<{\n /** 可供选择的卡片数据。 */\n data?: CardSelectRecord[];\n /** 当前选中项,使用 v-model 绑定。 */\n modelValue?: CardSelectKey[];\n /** 非受控模式的初始选中项。 */\n defaultValue?: CardSelectKey[];\n /** 卡片唯一标识对应的字段名或取值函数。 */\n rowKey?: string | ((record: CardSelectRecord, index: number) => CardSelectKey);\n /** 选中标记样式。 */\n type?: CardSelectType;\n /** 角标或单选标记所在位置。 */\n position?: CardSelectPosition;\n /** 是否禁用整个选项组。 */\n disabled?: boolean;\n /** 是否使用自适应网格布局。 */\n grid?: boolean;\n /** 选择模式。 */\n mode?: CardSelectMode;\n}>(), {\n data: () => [],\n defaultValue: () => [],\n rowKey: 'key',\n type: 'corner',\n position: 'left',\n disabled: false,\n grid: false,\n mode: 'single',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: CardSelectKey[]];\n change: [value: CardSelectKey[], action: 'select' | 'deselect', key: CardSelectKey];\n}>();\n\nconst innerValue = ref<CardSelectKey[]>([...props.defaultValue]);\nconst selectedValue = computed(() => props.modelValue ?? innerValue.value);\n\nfunction getKey(record: CardSelectRecord, index: number): CardSelectKey {\n if (typeof props.rowKey === 'function') {\n return props.rowKey(record, index);\n }\n\n const key = record[props.rowKey];\n return typeof key === 'string' || typeof key === 'number' ? key : index;\n}\n\nfunction getTitle(record: CardSelectRecord) {\n return typeof record.title === 'string' || typeof record.title === 'number' ? record.title : '';\n}\n\nfunction getDescription(record: CardSelectRecord) {\n return typeof record.description === 'string' || typeof record.description === 'number' ? record.description : '';\n}\n\nfunction isSelected(record: CardSelectRecord, index: number) {\n return selectedValue.value.includes(getKey(record, index));\n}\n\nfunction toggle(record: CardSelectRecord, index: number) {\n if (props.disabled) return;\n\n const key = getKey(record, index);\n const selected = selectedValue.value.includes(key);\n const value = props.mode === 'single'\n ? (selected ? [] : [key])\n : (selected ? selectedValue.value.filter(item => item !== key) : [...selectedValue.value, key]);\n\n if (props.modelValue === undefined) {\n innerValue.value = value;\n }\n\n emit('update:modelValue', value);\n emit('change', value, selected ? 'deselect' : 'select', key);\n}\n\ndefineOptions({ name: 'CardSelect' });\n</script>\n","<template>\n <ElCascader\n ref=\"cascaderRef\"\n v-model=\"modelValue\"\n class=\"tt-cascader\"\n :popper-class=\"mergedPopperClass\"\n v-bind=\"cascaderAttrs\"\n >\n <template v-if=\"$slots.footer || useSelectAll\" #footer>\n <div class=\"tt-cascader__footer\">\n <slot name=\"footer\" />\n <div v-if=\"useSelectAll\" class=\"tt-cascader__select-all\">\n <ElCheckbox\n :model-value=\"allSelected\"\n :indeterminate=\"isIndeterminate\"\n :disabled=\"leafPaths.length === 0\"\n @update:model-value=\"toggleSelectAll\"\n >\n 全选\n </ElCheckbox>\n </div>\n </div>\n </template>\n </ElCascader>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs } from 'vue';\nimport { ElCascader, ElCheckbox } from 'element-plus';\nimport type {\n CascaderOption as ElementCascaderOption,\n CascaderValue as ElementCascaderValue,\n} from 'element-plus';\n\nexport type CascaderValue = string | number | Record<string, unknown>;\nexport type CascaderModelValue = ElementCascaderValue;\n\nexport interface CascaderOption extends ElementCascaderOption {\n label?: string;\n value?: CascaderValue;\n disabled?: boolean;\n children?: CascaderOption[];\n}\n\ntype CascaderPath = CascaderValue[];\n\nconst props = withDefaults(defineProps<{\n /** 多选时在下拉面板底部显示全选操作。 */\n showSelectAll?: boolean;\n}>(), {\n showSelectAll: false,\n});\n\nconst attrs = useAttrs();\nconst modelValue = defineModel<CascaderModelValue>();\nconst cascaderAttrs = computed(() => {\n const { popperClass: _popperClass, ...rest } = attrs;\n\n return rest;\n});\nconst mergedPopperClass = computed(() => ['tt-cascader-dropdown', attrs.popperClass].filter(Boolean).join(' '));\nconst cascaderProps = computed(() => attrs.props as { multiple?: boolean } | undefined);\nconst useSelectAll = computed(() => props.showSelectAll && cascaderProps.value?.multiple === true);\nconst leafPaths = computed(() => collectLeafPaths(attrs.options));\nconst selectedPaths = computed(() => {\n if (!useSelectAll.value || !Array.isArray(modelValue.value)) {\n return [] as CascaderPath[];\n }\n\n return modelValue.value.filter(Array.isArray) as CascaderPath[];\n});\nconst allSelected = computed(() => leafPaths.value.length > 0\n && leafPaths.value.every(path => selectedPaths.value.some(selectedPath => isPathEqual(selectedPath, path))));\nconst isIndeterminate = computed(() => !allSelected.value && selectedPaths.value.length > 0);\nconst cascaderRef = ref<InstanceType<typeof ElCascader>>();\n\nfunction collectLeafPaths(options: unknown, parentPath: CascaderPath = [], parentDisabled = false): CascaderPath[] {\n if (!Array.isArray(options)) {\n return [];\n }\n\n return options.flatMap(option => {\n if (!isCascaderOption(option) || option.value === undefined) {\n return [];\n }\n\n const currentPath = [...parentPath, option.value];\n const disabled = parentDisabled || option.disabled === true;\n if (option.children?.length) {\n return collectLeafPaths(option.children, currentPath, disabled);\n }\n\n return disabled ? [] : [currentPath];\n });\n}\n\nfunction isPathEqual(first: CascaderPath, second: CascaderPath) {\n return JSON.stringify(first) === JSON.stringify(second);\n}\n\nfunction toggleSelectAll() {\n const nextValue = allSelected.value ? [] : leafPaths.value;\n\n modelValue.value = nextValue as CascaderModelValue;\n triggerChange(nextValue as CascaderModelValue);\n}\n\nfunction isCascaderOption(option: unknown): option is CascaderOption {\n return Boolean(option) && typeof option === 'object';\n}\n\nfunction triggerChange(value: CascaderModelValue) {\n const listener = attrs.onChange;\n\n if (Array.isArray(listener)) {\n listener.forEach(handler => typeof handler === 'function' && handler(value));\n return;\n }\n\n if (typeof listener === 'function') {\n listener(value);\n }\n}\n\nfunction getCheckedNodes(...args: unknown[]) {\n return (cascaderRef.value as any)?.getCheckedNodes(...args);\n}\n\nfunction togglePopperVisible(visible?: boolean) {\n return (cascaderRef.value as any)?.togglePopperVisible?.(visible);\n}\n\nfunction focus() {\n return (cascaderRef.value as any)?.focus?.();\n}\n\nfunction blur() {\n return (cascaderRef.value as any)?.blur?.();\n}\n\ndefineOptions({\n name: 'Cascader',\n inheritAttrs: false,\n});\n\ndefineExpose({\n cascaderRef,\n getCheckedNodes,\n togglePopperVisible,\n focus,\n blur,\n});\n</script>\n","<template>\n <ElCalendar ref=\"calendarRef\" class=\"tt-calendar\" v-bind=\"$attrs\">\n <template v-if=\"slots.header\" #header=\"slotProps\">\n <slot name=\"header\" v-bind=\"slotProps\" />\n </template>\n <template v-if=\"slots.dateCell\" #date-cell=\"slotProps\">\n <slot name=\"dateCell\" v-bind=\"slotProps\" />\n </template>\n </ElCalendar>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElCalendar } from 'element-plus';\n\nconst slots = useSlots();\nconst calendarRef = ref<InstanceType<typeof ElCalendar>>();\n\ndefineOptions({\n name: 'Calendar',\n});\n\ndefineExpose({\n calendarRef,\n});\n</script>\n","<template>\n <ElCarousel ref=\"carouselRef\" class=\"tt-carousel\" v-bind=\"$attrs\">\n <slot />\n </ElCarousel>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElCarousel } from 'element-plus';\n\nconst carouselRef = ref<InstanceType<typeof ElCarousel>>();\n\nfunction setActiveItem(index: string | number) {\n return carouselRef.value?.setActiveItem(index);\n}\n\nfunction prev() {\n return carouselRef.value?.prev();\n}\n\nfunction next() {\n return carouselRef.value?.next();\n}\n\ndefineOptions({\n name: 'Carousel',\n});\n\ndefineExpose({\n carouselRef,\n setActiveItem,\n prev,\n next,\n});\n</script>\n","<template>\n <ElCarouselItem ref=\"carouselItemRef\" class=\"tt-carousel-item\" v-bind=\"$attrs\">\n <slot />\n </ElCarouselItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElCarouselItem } from 'element-plus';\n\nconst carouselItemRef = ref<InstanceType<typeof ElCarouselItem>>();\n\ndefineOptions({\n name: 'CarouselItem',\n});\n\ndefineExpose({\n carouselItemRef,\n});\n</script>\n","<template>\n <div ref=\"chartRef\" class=\"tt-echarts-wrapper\" :style=\"{ height: normalizedHeight }\" v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport * as echarts from 'echarts';\nimport type { ECharts, EChartsOption, SetOptionOpts } from 'echarts';\n\nexport type EChartsTheme = string | object;\nexport type EChartsEvents = Record<string, (params: unknown) => void>;\n\nexport interface EChartsWrapperInstance {\n getEchartsInstance: () => ECharts | null;\n resize: (options?: Parameters<ECharts['resize']>[0]) => void;\n setOption: (option: EChartsOption, options?: boolean | SetOptionOpts) => void;\n dispatchAction: (payload: Parameters<ECharts['dispatchAction']>[0]) => void;\n convertToPixel: (...args: any[]) => unknown;\n convertFromPixel: (...args: any[]) => unknown;\n}\n\nconst props = withDefaults(defineProps<{\n option: EChartsOption;\n height?: number | string;\n theme?: EChartsTheme;\n loading?: boolean;\n loadingOptions?: object;\n onEvents?: EChartsEvents;\n notMerge?: boolean;\n lazyUpdate?: boolean;\n autoResize?: boolean;\n}>(), {\n height: 300,\n loading: false,\n loadingOptions: () => ({}),\n onEvents: () => ({}),\n notMerge: false,\n lazyUpdate: false,\n autoResize: true,\n});\n\nconst chartRef = ref<HTMLElement>();\nlet instance: ECharts | null = null;\nlet resizeObserver: ResizeObserver | null = null;\nconst normalizedHeight = computed(() => typeof props.height === 'number' ? `${props.height}px` : props.height);\n\nfunction initChart() {\n if (!chartRef.value) return null;\n instance?.dispose();\n instance = echarts.init(chartRef.value, props.theme);\n bindEvents();\n setOption(props.option, { notMerge: props.notMerge, lazyUpdate: props.lazyUpdate });\n updateLoading();\n nextTick(() => instance?.resize());\n return instance;\n}\n\nfunction bindEvents() {\n if (!instance) return;\n instance.off();\n Object.entries(props.onEvents).forEach(([eventName, handler]) => {\n if (typeof handler === 'function') instance?.on(eventName, handler);\n });\n}\n\nfunction setOption(option: EChartsOption, options: boolean | SetOptionOpts = { notMerge: props.notMerge, lazyUpdate: props.lazyUpdate }) {\n if (typeof options === 'boolean') instance?.setOption(option, options);\n else instance?.setOption(option, options);\n}\n\nfunction resize(options?: Parameters<ECharts['resize']>[0]) {\n instance?.resize(options);\n}\n\nfunction updateLoading() {\n if (!instance) return;\n if (props.loading) instance.showLoading('default', props.loadingOptions);\n else instance.hideLoading();\n}\n\nfunction dispatchAction(payload: Parameters<ECharts['dispatchAction']>[0]) {\n instance?.dispatchAction(payload);\n}\n\nfunction convertToPixel(...args: any[]) {\n return (instance as any)?.convertToPixel(...args) ?? null;\n}\n\nfunction convertFromPixel(...args: any[]) {\n return (instance as any)?.convertFromPixel(...args) ?? null;\n}\n\nfunction handleWindowResize() { resize(); }\n\nonMounted(() => {\n initChart();\n if (props.autoResize && chartRef.value && typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(() => resize());\n resizeObserver.observe(chartRef.value);\n }\n if (props.autoResize) window.addEventListener('resize', handleWindowResize);\n});\n\nonBeforeUnmount(() => {\n window.removeEventListener('resize', handleWindowResize);\n resizeObserver?.disconnect();\n instance?.dispose();\n instance = null;\n});\n\nwatch(() => props.option, option => setOption(option, { notMerge: props.notMerge, lazyUpdate: props.lazyUpdate }), { deep: true });\nwatch(() => props.onEvents, bindEvents, { deep: true });\nwatch([() => props.loading, () => props.loadingOptions], updateLoading, { deep: true });\nwatch(() => props.theme, initChart);\nwatch(() => props.autoResize, enabled => {\n resizeObserver?.disconnect();\n if (enabled && chartRef.value && typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(() => resize());\n resizeObserver.observe(chartRef.value);\n }\n if (enabled) window.addEventListener('resize', handleWindowResize);\n else window.removeEventListener('resize', handleWindowResize);\n});\n\ndefineExpose<EChartsWrapperInstance>({\n getEchartsInstance: () => instance,\n resize,\n setOption,\n dispatchAction,\n convertToPixel,\n convertFromPixel,\n});\ndefineOptions({ name: 'EChartsWrapper' });\n</script>\n","<template>\n <div class=\"tt-chart\" v-bind=\"$attrs\">\n <div v-if=\"title || description || slots.extra\" class=\"tt-chart__header\">\n <div><strong v-if=\"title\">{{ title }}</strong><span v-if=\"description\">{{ description }}</span></div>\n <slot name=\"extra\" />\n </div>\n <EChartsWrapper ref=\"wrapper\" class=\"tt-chart__dom\" :option=\"option\" :height=\"height\" :theme=\"resolvedTheme\" :loading=\"loading\" :loading-options=\"loadingOptions\" :on-events=\"onEvents\" :not-merge=\"notMerge\" :lazy-update=\"lazyUpdate\" :auto-resize=\"autoResize\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots } from 'vue';\nimport type { EChartsOption } from 'echarts';\nimport EChartsWrapper, { type EChartsEvents, type EChartsTheme, type EChartsWrapperInstance } from '../EChartsWrapper';\n\nexport type ChartThemeName = 'geekBlue' | 'dustRed' | 'mintGreen' | 'neonBlue' | 'sunsetOrange' | 'goldenPurple' | 'cyan';\nexport type ChartTheme = ChartThemeName | EChartsTheme;\n\nconst themeColors: Record<ChartThemeName, string[]> = {\n geekBlue: ['#3388ff', '#11c79b', '#fadb14', '#ff4433', '#73c0de', '#9a60b4'],\n dustRed: ['#ff4433', '#ff7875', '#faad14', '#3388ff', '#73c0de', '#9a60b4'],\n mintGreen: ['#11c79b', '#3388ff', '#fadb14', '#ff4433', '#73c0de', '#9a60b4'],\n neonBlue: ['#1677ff', '#36cfc9', '#9254de', '#f759ab', '#faad14', '#ff7a45'],\n sunsetOrange: ['#ff7a45', '#ffbb96', '#faad14', '#11c79b', '#3388ff', '#9254de'],\n goldenPurple: ['#9254de', '#d3adf7', '#faad14', '#11c79b', '#3388ff', '#ff7a45'],\n cyan: ['#13c2c2', '#3388ff', '#11c79b', '#faad14', '#ff4433', '#9254de'],\n};\n\nconst props = withDefaults(defineProps<{\n option: EChartsOption;\n theme?: ChartTheme;\n loading?: boolean;\n loadingOptions?: object;\n onEvents?: EChartsEvents;\n notMerge?: boolean;\n lazyUpdate?: boolean;\n autoResize?: boolean;\n height?: number | string;\n title?: string;\n description?: string;\n}>(), {\n autoResize: true,\n height: 300,\n loading: false,\n loadingOptions: () => ({}),\n notMerge: false,\n lazyUpdate: false,\n onEvents: () => ({}),\n theme: 'geekBlue',\n title: '',\n description: '',\n});\n\nconst wrapper = ref<EChartsWrapperInstance>();\nconst slots = useSlots();\nconst resolvedTheme = computed<EChartsTheme>(() => {\n if (typeof props.theme !== 'string') return props.theme;\n return { color: themeColors[props.theme as ChartThemeName] || themeColors.geekBlue, backgroundColor: 'transparent' };\n});\n\ndefineExpose({\n getEchartsInstance: () => wrapper.value?.getEchartsInstance() ?? null,\n resize: (...args: Parameters<EChartsWrapperInstance['resize']>) => wrapper.value?.resize(...args),\n setOption: (...args: Parameters<EChartsWrapperInstance['setOption']>) => wrapper.value?.setOption(...args),\n dispatchAction: (...args: Parameters<EChartsWrapperInstance['dispatchAction']>) => wrapper.value?.dispatchAction(...args),\n convertToPixel: (...args: Parameters<EChartsWrapperInstance['convertToPixel']>) => wrapper.value?.convertToPixel(...args) ?? null,\n convertFromPixel: (...args: Parameters<EChartsWrapperInstance['convertFromPixel']>) => wrapper.value?.convertFromPixel(...args) ?? null,\n});\ndefineOptions({ name: 'Chart' });\n</script>\n","<template>\n <ElCheckbox v-model=\"modelValue\" class=\"tt-checkbox\" v-bind=\"$attrs\">\n <slot />\n </ElCheckbox>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElCheckbox } from 'element-plus';\n\nexport type CheckboxValue = string | number | boolean;\nexport type CheckboxGroupValue = string | number;\n\ndefineOptions({\n name: 'Checkbox',\n});\n\nconst modelValue = defineModel<CheckboxValue>();\n</script>\n","<template>\n <ElCheckboxGroup v-model=\"modelValue\" class=\"tt-checkbox-group\" v-bind=\"$attrs\">\n <slot />\n </ElCheckboxGroup>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElCheckboxGroup } from 'element-plus';\nimport type { CheckboxGroupValue } from './Checkbox.vue';\n\ndefineOptions({\n name: 'CheckboxGroup',\n});\n\nconst modelValue = defineModel<CheckboxGroupValue[]>();\n</script>\n","<template>\n <div\n class=\"tt-color\"\n :class=\"colorClass\"\n role=\"button\"\n tabindex=\"0\"\n :aria-label=\"`复制颜色 ${colorValue}`\"\n v-bind=\"$attrs\"\n @click=\"copyColor\"\n @keydown.enter.prevent=\"copyColor\"\n @keydown.space.prevent=\"copyColor\"\n >\n <span class=\"tt-color__swatch\" :style=\"{ background: colorValue }\" aria-hidden=\"true\" />\n <span v-if=\"showText\" class=\"tt-color__info\">\n <span class=\"tt-color__name\">{{ colorName }}</span>\n <span class=\"tt-color__hex\">{{ copied ? '已复制!' : colorValue }}</span>\n </span>\n <span v-if=\"copied\" class=\"tt-color__tooltip\" role=\"status\">已复制!</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\n\nexport type ColorSize = 'small' | 'default' | 'large';\nexport type ColorType = 'primary' | 'neutral' | 'success' | 'warning' | 'error';\n\nconst props = withDefaults(defineProps<{\n /** 参考项目属性:颜色名称。 */\n name?: string;\n /** 参考项目属性:颜色值。 */\n hex?: string;\n type?: ColorType;\n size?: ColorSize;\n /** 兼容既有 ColorPicker 示例的颜色值属性。 */\n value?: string;\n /** 兼容既有 ColorPicker 示例的展示名称。 */\n label?: string;\n showText?: boolean;\n}>(), {\n type: 'primary',\n size: 'default',\n showText: true,\n value: '',\n});\n\nconst emit = defineEmits<{ copy: [value: string] }>();\nconst copied = ref(false);\nlet copiedTimer: number | undefined;\nconst colorValue = computed(() => props.hex || props.value);\nconst colorName = computed(() => props.name || props.label || colorValue.value);\nconst colorClass = computed(() => [`tt-color--${props.type}`, `tt-color--${props.size}`, { 'is-copied': copied.value }]);\n\nasync function copyColor() {\n if (!colorValue.value) return;\n try {\n await navigator.clipboard?.writeText(colorValue.value);\n } catch {\n // 不支持 Clipboard API 时仍保持组件可点击,不抛出运行时错误。\n return;\n }\n copied.value = true;\n if (copiedTimer) window.clearTimeout(copiedTimer);\n copiedTimer = window.setTimeout(() => { copied.value = false; }, 2000);\n emit('copy', colorValue.value);\n}\n\ndefineOptions({ name: 'Color' });\n</script>\n","<template>\n <ElPopover v-model:visible=\"visible\" class=\"tt-color-picker\" trigger=\"click\" placement=\"bottom-start\" :disabled=\"isDisabled\" popper-class=\"tt-color-picker-popper\">\n <template #reference>\n <button class=\"tt-color-picker__trigger\" :class=\"[`tt-color-picker__trigger--${size}`, { 'is-disabled': isDisabled }]\" type=\"button\" :disabled=\"isDisabled\">\n <span v-if=\"showIcon\" class=\"tt-color-picker__icon\" aria-hidden=\"true\">◆</span>\n <span class=\"tt-color-picker__preview\" aria-hidden=\"true\"><span class=\"tt-color-picker__preview-color\" :style=\"{ background: previewValue }\" /></span>\n <span class=\"tt-color-picker__value\">{{ displayValue }}</span>\n </button>\n </template>\n\n <div class=\"tt-color-picker__panel\">\n <div v-if=\"showStatus\" class=\"tt-color-picker__mode\" role=\"tablist\" aria-label=\"颜色类型\">\n <button class=\"tt-color-picker__mode-button\" :class=\"{ 'is-active': mode === 'pure' }\" type=\"button\" role=\"tab\" :aria-selected=\"mode === 'pure'\" @click=\"setMode('pure')\">纯色</button>\n <button class=\"tt-color-picker__mode-button\" :class=\"{ 'is-active': mode === 'gradient' }\" type=\"button\" role=\"tab\" :aria-selected=\"mode === 'gradient'\" @click=\"setMode('gradient')\">渐变</button>\n </div>\n\n <ElColorPickerPanel v-if=\"mode === 'pure'\" ref=\"colorPickerRef\" v-model=\"pureColor\" class=\"tt-color-picker__pure-panel\" :border=\"false\" :show-alpha=\"showAlpha\" :color-format=\"colorFormat\" :predefine=\"predefine\" :disabled=\"isDisabled\" />\n\n <template v-else>\n <div class=\"tt-color-picker__gradient-preview\" :style=\"{ background: gradientValue }\" />\n <div class=\"tt-color-picker__stops\" aria-label=\"渐变色标\">\n <button v-for=\"(stop, index) in gradientStops\" :key=\"`${stop.position}-${index}`\" class=\"tt-color-picker__stop\" :class=\"{ 'is-active': selectedStop === index }\" type=\"button\" :style=\"{ background: stop.color }\" :aria-label=\"`色标 ${index + 1}`\" @click=\"selectedStop = index\" />\n <button class=\"tt-color-picker__add-stop\" type=\"button\" aria-label=\"添加色标\" @click=\"addStop\">+</button>\n </div>\n <div class=\"tt-color-picker__gradient-settings\">\n <label class=\"tt-color-picker__setting\">\n <span>位置</span>\n <input class=\"tt-color-picker__range\" type=\"range\" min=\"0\" max=\"100\" :value=\"activeStop.position\" @input=\"updateStopPosition\">\n <output>{{ activeStop.position }}%</output>\n </label>\n <label class=\"tt-color-picker__setting tt-color-picker__angle\">\n <span>角度</span>\n <ElInputNumber v-model=\"gradientAngle\" :min=\"0\" :max=\"360\" controls-position=\"right\" />\n <em>°</em>\n </label>\n </div>\n <ElColorPickerPanel ref=\"colorPickerRef\" v-model=\"activeStopColor\" class=\"tt-color-picker__gradient-panel\" :border=\"false\" :show-alpha=\"showAlpha\" :color-format=\"colorFormat\" :predefine=\"predefine\" :disabled=\"isDisabled\" />\n <div class=\"tt-color-picker__gradient-actions\"><button type=\"button\" :disabled=\"gradientStops.length <= 2\" @click=\"removeStop\">删除当前色标</button></div>\n </template>\n\n <div class=\"tt-color-picker__common\">\n <span>常用颜色</span>\n <div class=\"tt-color-picker__common-list\">\n <button v-for=\"color in commonColors\" :key=\"color\" type=\"button\" :style=\"{ background: color }\" :aria-label=\"`选择 ${color}`\" @click=\"selectCommonColor(color)\" />\n </div>\n <template v-if=\"mode === 'gradient'\">\n <span class=\"tt-color-picker__sub-title\">常用渐变</span>\n <div class=\"tt-color-picker__common-list\">\n <button v-for=\"gradient in commonGradients\" :key=\"gradient\" type=\"button\" :style=\"{ background: gradient }\" :aria-label=\"`选择 ${gradient}`\" @click=\"selectGradient(gradient)\" />\n </div>\n </template>\n </div>\n <div v-if=\"recentColors.length\" class=\"tt-color-picker__recent\">\n <span>最近使用</span>\n <div class=\"tt-color-picker__common-list\">\n <button v-for=\"color in recentColors\" :key=\"color\" type=\"button\" :style=\"{ background: color }\" :aria-label=\"`选择最近使用的 ${color}`\" @click=\"selectRecentColor(color)\" />\n </div>\n </div>\n <button v-if=\"clearable\" class=\"tt-color-picker__clear\" type=\"button\" @click=\"clear\">清除</button>\n </div>\n </ElPopover>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, watch } from 'vue';\nimport type { ColorFormats } from '@ctrl/tinycolor';\nimport { ElColorPickerPanel, ElInputNumber, ElPopover } from 'element-plus';\n\nexport type ColorPickerValue = string | null;\ntype ColorPickerMode = 'pure' | 'gradient';\ninterface GradientStop { color: string; position: number; }\n\nconst props = withDefaults(defineProps<{\n initialColor?: string;\n initialStatus?: ColorPickerMode;\n showIcon?: boolean;\n showStatus?: boolean;\n debounceTime?: number;\n}>(), {\n initialColor: '#3388ff',\n initialStatus: 'pure',\n showIcon: false,\n showStatus: true,\n debounceTime: 0,\n});\n\nconst emit = defineEmits<{ change: [value: ColorPickerValue]; 'value-change': [value: ColorPickerValue]; clear: []; }>();\nconst attrs = useAttrs();\nconst modelValue = defineModel<ColorPickerValue>();\nconst visible = ref(false);\nconst initialValue = modelValue.value ?? props.initialColor;\nconst initialGradient = parseGradient(initialValue ?? null);\nconst mode = ref<ColorPickerMode>(initialGradient ? 'gradient' : props.initialStatus);\nconst pureColor = ref(initialValue && !initialGradient ? initialValue : '#3388ff');\nconst gradientStops = ref<GradientStop[]>(initialGradient?.stops || createDefaultStops(pureColor.value));\nconst gradientAngle = ref(initialGradient?.angle || 90);\nconst selectedStop = ref(0);\nconst colorPickerRef = ref<InstanceType<typeof ElColorPickerPanel>>();\n\nconst commonColors = ['#3388ff', '#00a870', '#f2b824', '#e34d59', '#722ed1', '#1f2329', '#86909c', '#ffffff', '#ff4433', '#ff8629', '#33bbff', '#4433ff'];\nconst commonGradients = [\n 'linear-gradient(135deg, #6b7a99 0%, #223355 100%)',\n 'linear-gradient(135deg, #ff7962 0%, #ff4433 100%)',\n 'linear-gradient(135deg, #ffd400 0%, #ffaa00 100%)',\n 'linear-gradient(135deg, #27e5cb 0%, #11c79b 100%)',\n 'linear-gradient(135deg, #62bdff 0%, #3388ff 100%)',\n 'linear-gradient(135deg, #7962ff 0%, #4433ff 100%)',\n];\nconst RECENT_COLORS_KEY = 'tt-color-picker-recent-colors';\nconst recentColors = ref<string[]>(loadRecentColors());\nconst showIcon = computed(() => props.showIcon);\nconst showStatus = computed(() => props.showStatus);\nconst showAlpha = computed(() => attrs.showAlpha === '' || attrs.showAlpha === true);\nconst colorFormat = computed(() => attrs.colorFormat as ColorFormats | undefined);\nconst predefine = computed(() => attrs.predefine as string[] | undefined);\nconst clearable = computed(() => attrs.clearable === '' || attrs.clearable === true);\nconst isDisabled = computed(() => attrs.disabled === '' || attrs.disabled === true);\nconst size = computed(() => (attrs.size === 'small' || attrs.size === 'large' ? attrs.size : 'default'));\nconst activeStop = computed(() => gradientStops.value[selectedStop.value] || gradientStops.value[0]);\nconst activeStopColor = computed({\n get: () => activeStop.value?.color || '#3388ff',\n set: color => updateActiveStop({ color: color || '#3388ff' }),\n});\nconst gradientValue = computed(() => formatGradient(gradientAngle.value, gradientStops.value));\nconst previewValue = computed(() => mode.value === 'gradient' ? gradientValue.value : pureColor.value);\nconst displayValue = computed(() => modelValue.value || '未选择颜色');\n\nwatch(pureColor, color => { if (mode.value === 'pure') updateValue(color); });\nwatch(gradientValue, value => { if (mode.value === 'gradient') updateValue(value); });\nwatch(modelValue, value => {\n if (!value) return;\n const gradient = parseGradient(value);\n if (gradient) {\n mode.value = 'gradient';\n gradientAngle.value = gradient.angle;\n gradientStops.value = gradient.stops;\n selectedStop.value = 0;\n return;\n }\n mode.value = 'pure';\n pureColor.value = value;\n});\n\nfunction setMode(nextMode: ColorPickerMode) {\n if (nextMode === mode.value) return;\n if (nextMode === 'gradient') {\n gradientStops.value = createDefaultStops(pureColor.value);\n gradientAngle.value = 90;\n selectedStop.value = 0;\n } else {\n pureColor.value = activeStop.value?.color || pureColor.value;\n }\n mode.value = nextMode;\n updateValue(nextMode === 'gradient' ? gradientValue.value : pureColor.value);\n}\n\nfunction updateActiveStop(updates: Partial<GradientStop>) {\n gradientStops.value = gradientStops.value.map((stop, index) => index === selectedStop.value ? { ...stop, ...updates } : stop);\n}\n\nfunction updateStopPosition(event: Event) {\n const position = Number((event.target as HTMLInputElement).value);\n updateActiveStop({ position: Math.max(0, Math.min(100, position)) });\n}\n\nfunction addStop() {\n const position = Math.round((gradientStops.value[0].position + gradientStops.value.at(-1)!.position) / 2);\n gradientStops.value = [...gradientStops.value, { color: activeStop.value?.color || pureColor.value, position }];\n selectedStop.value = gradientStops.value.length - 1;\n}\n\nfunction removeStop() {\n if (gradientStops.value.length <= 2) return;\n gradientStops.value = gradientStops.value.filter((_, index) => index !== selectedStop.value);\n selectedStop.value = Math.min(selectedStop.value, gradientStops.value.length - 1);\n}\n\nfunction selectCommonColor(color: string) {\n if (mode.value === 'pure') pureColor.value = color;\n else updateActiveStop({ color });\n}\n\nfunction selectGradient(gradient: string) {\n const parsed = parseGradient(gradient);\n if (!parsed) return;\n mode.value = 'gradient';\n gradientAngle.value = parsed.angle;\n gradientStops.value = parsed.stops;\n selectedStop.value = 0;\n updateValue(gradient);\n}\n\nfunction selectRecentColor(color: string) {\n if (color.startsWith('linear-gradient(')) selectGradient(color);\n else {\n mode.value = 'pure';\n pureColor.value = color;\n updateValue(color);\n }\n}\n\nfunction updateValue(value: ColorPickerValue) {\n if (modelValue.value === value) return;\n modelValue.value = value;\n if (value) saveRecentColor(value);\n emit('change', value);\n if (props.debounceTime > 0) window.setTimeout(() => emit('value-change', value), props.debounceTime);\n else emit('value-change', value);\n}\n\nfunction clear() {\n modelValue.value = null;\n emit('change', null);\n emit('clear');\n}\n\nfunction show() { if (!isDisabled.value) visible.value = true; }\nfunction hide() { visible.value = false; }\nfunction createDefaultStops(color: string): GradientStop[] { return [{ color: color || '#3388ff', position: 0 }, { color: '#00a870', position: 100 }]; }\nfunction formatGradient(angle: number, stops: GradientStop[]) {\n return `linear-gradient(${angle}deg, ${[...stops].sort((first, second) => first.position - second.position).map(stop => `${stop.color} ${stop.position}%`).join(', ')})`;\n}\n\nfunction loadRecentColors() {\n if (typeof window === 'undefined') return [];\n try {\n const stored = window.localStorage.getItem(RECENT_COLORS_KEY);\n return stored ? JSON.parse(stored) : [];\n } catch {\n return [];\n }\n}\n\nfunction saveRecentColor(color: string) {\n recentColors.value = [color, ...recentColors.value.filter(item => item !== color)].slice(0, 12);\n if (typeof window !== 'undefined') {\n try { window.localStorage.setItem(RECENT_COLORS_KEY, JSON.stringify(recentColors.value)); } catch { /* storage unavailable */ }\n }\n}\nfunction parseGradient(value: ColorPickerValue) {\n if (!value?.startsWith('linear-gradient(')) return undefined;\n const angle = Number(value.match(/linear-gradient\\(\\s*(-?\\d+(?:\\.\\d+)?)deg/i)?.[1] || 90);\n const stops = [...value.matchAll(/(#[0-9a-f]{3,8}|rgba?\\([^)]*\\)|hsla?\\([^)]*\\))\\s+(\\d+(?:\\.\\d+)?)%/gi)].map(match => ({ color: match[1], position: Number(match[2]) }));\n return stops.length >= 2 ? { angle, stops } : undefined;\n}\n\ndefineOptions({ name: 'ColorPicker', inheritAttrs: false });\ndefineExpose({ colorPickerRef, show, hide });\n</script>\n","<template>\n <article class=\"tt-comment\" v-bind=\"$attrs\">\n <div class=\"tt-comment__avatar\" aria-hidden=\"true\">\n <slot name=\"avatar\">\n <img v-if=\"avatar\" :src=\"avatar\" :alt=\"avatarAlt\" />\n <span v-else>{{ avatarText || authorInitial }}</span>\n </slot>\n </div>\n <div class=\"tt-comment__main\">\n <header v-if=\"author || datetime || slots.author || slots.datetime\" class=\"tt-comment__header\">\n <strong v-if=\"author || slots.author\" class=\"tt-comment__author\">\n <slot name=\"author\">{{ author }}</slot>\n </strong>\n <time v-if=\"datetime || slots.datetime\" class=\"tt-comment__datetime\">\n <slot name=\"datetime\">{{ datetime }}</slot>\n </time>\n </header>\n <div class=\"tt-comment__content\">\n <slot>{{ content }}</slot>\n </div>\n <div v-if=\"normalizedActions.length || slots.actions\" class=\"tt-comment__actions\">\n <slot name=\"actions\">\n <button\n v-for=\"(action, index) in normalizedActions\"\n :key=\"action.key\"\n type=\"button\"\n :disabled=\"action.disabled\"\n @click=\"handleAction(action, index)\"\n >\n {{ action.label }}\n </button>\n </slot>\n </div>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\n\nexport interface CommentAction {\n label: string;\n key?: string | number;\n disabled?: boolean;\n}\n\nconst props = withDefaults(\n defineProps<{\n author?: string;\n datetime?: string;\n content?: string;\n avatar?: string;\n avatarText?: string;\n avatarAlt?: string;\n actions?: Array<string | CommentAction>;\n }>(),\n {\n author: '',\n datetime: '',\n content: '',\n avatar: '',\n avatarText: '',\n avatarAlt: '',\n actions: () => [],\n },\n);\n\nconst emit = defineEmits<{\n action: [action: CommentAction, index: number];\n}>();\n\nconst slots = useSlots();\nconst authorInitial = computed(() => props.author?.trim().slice(0, 1).toUpperCase() || 'U');\nconst normalizedActions = computed<CommentAction[]>(() =>\n props.actions.map((action, index) =>\n typeof action === 'string'\n ? {\n label: action,\n key: action || index,\n }\n : {\n key: action.key ?? action.label ?? index,\n ...action,\n },\n ),\n);\n\nfunction handleAction(action: CommentAction, index: number) {\n if (action.disabled) {\n return;\n }\n\n emit('action', action, index);\n}\n\ndefineOptions({\n name: 'Comment',\n});\n</script>\n","<template>\n <ElContainer ref=\"containerRef\" class=\"tt-container\" v-bind=\"$attrs\">\n <slot />\n </ElContainer>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'Container',\n});\n</script>\n","<template>\n <ElCollapse ref=\"collapseRef\" class=\"tt-collapse\" v-bind=\"$attrs\">\n <slot />\n </ElCollapse>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElCollapse } from 'element-plus';\n\nconst collapseRef = ref<InstanceType<typeof ElCollapse>>();\n\ndefineOptions({\n name: 'Collapse',\n});\n\ndefineExpose({\n collapseRef,\n});\n</script>\n","<template>\n <ElCollapseItem ref=\"collapseItemRef\" class=\"tt-collapse-item\" v-bind=\"$attrs\">\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-if=\"slots.icon\" #icon=\"slotProps\">\n <slot name=\"icon\" v-bind=\"slotProps\" />\n </template>\n <slot />\n </ElCollapseItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElCollapseItem } from 'element-plus';\n\nconst slots = useSlots();\nconst collapseItemRef = ref<InstanceType<typeof ElCollapseItem>>();\n\ndefineOptions({\n name: 'CollapseItem',\n});\n\ndefineExpose({\n collapseItemRef,\n});\n</script>\n","<template>\n <ElDatePicker\n ref=\"datePickerRef\"\n v-model=\"modelValue\"\n class=\"tt-datepicker\"\n :popper-class=\"mergedPopperClass\"\n :shortcuts=\"mergedShortcuts\"\n v-bind=\"datePickerAttrs\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs } from 'vue';\nimport { ElDatePicker } from 'element-plus';\n\ntype DatePickerSingleValue = string | number | Date;\n\nexport type DatePickerValue = DatePickerSingleValue | string[] | number[] | Date[] | null;\nexport type DatePickerQuickActionValue = Date | [Date, Date];\n\nexport interface DatePickerQuickAction {\n key: string;\n label: string;\n getValue: () => DatePickerQuickActionValue;\n}\n\nconst props = withDefaults(\n defineProps<{\n popperClass?: string;\n /** 显示与 tt-design 对齐的默认快捷日期。 */\n showQuickActions?: boolean;\n /** 自定义快捷日期,优先级高于默认快捷日期。 */\n quickActions?: DatePickerQuickAction[];\n }>(),\n {\n popperClass: '',\n showQuickActions: false,\n quickActions: () => [],\n }\n);\n\nconst attrs = useAttrs();\nconst modelValue = defineModel<DatePickerValue>();\nconst pickerType = computed(() => String(attrs.type || 'date'));\nconst isRangePicker = computed(() => ['daterange', 'datetimerange', 'monthrange'].includes(pickerType.value));\nconst nativeShortcuts = computed(() => attrs.shortcuts as unknown[] | undefined);\nconst datePickerAttrs = computed(() => {\n const { shortcuts: _shortcuts, ...rest } = attrs;\n\n return rest;\n});\nconst mergedShortcuts = computed(() => {\n if (props.quickActions.length > 0) {\n return props.quickActions.map(action => ({ text: action.label, value: action.getValue }));\n }\n\n if (props.showQuickActions) {\n return getDefaultQuickActions(isRangePicker.value);\n }\n\n return nativeShortcuts.value;\n});\nconst mergedPopperClass = computed(() => ['tt-picker-dropdown', 'tt-datepicker-dropdown', props.popperClass].filter(Boolean).join(' '));\nconst datePickerRef = ref<InstanceType<typeof ElDatePicker>>();\n\nfunction getDefaultQuickActions(isRange: boolean) {\n if (isRange) {\n return [\n { text: '近一周', value: () => getRecentRange(6, 'day') },\n { text: '近一月', value: () => getRecentRange(1, 'month') },\n { text: '近一季', value: () => getRecentRange(3, 'month') },\n ];\n }\n\n return [\n { text: '昨天', value: () => addDays(-1) },\n { text: '今天', value: () => new Date() },\n { text: '明天', value: () => addDays(1) },\n ];\n}\n\nfunction addDays(amount: number) {\n const date = new Date();\n date.setDate(date.getDate() + amount);\n return date;\n}\n\nfunction getRecentRange(amount: number, unit: 'day' | 'month'): [Date, Date] {\n const end = new Date();\n const start = new Date();\n\n if (unit === 'day') {\n start.setDate(start.getDate() - amount);\n } else {\n start.setMonth(start.getMonth() - amount);\n start.setDate(start.getDate() + 1);\n }\n\n return [start, end];\n}\n\nfunction focus() {\n return (datePickerRef.value as any)?.focus?.();\n}\n\nfunction blur() {\n return (datePickerRef.value as any)?.blur?.();\n}\n\ndefineOptions({\n name: 'DatePicker',\n});\n\ndefineExpose({\n datePickerRef,\n focus,\n blur,\n});\n</script>\n","<template>\n <ElDescriptions ref=\"descriptionsRef\" class=\"tt-descriptions\" v-bind=\"$attrs\">\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-if=\"slots.extra\" #extra>\n <slot name=\"extra\" />\n </template>\n <slot />\n </ElDescriptions>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElDescriptions } from 'element-plus';\n\nconst slots = useSlots();\nconst descriptionsRef = ref<InstanceType<typeof ElDescriptions>>();\n\ndefineOptions({\n name: 'Descriptions',\n});\n\ndefineExpose({\n descriptionsRef,\n});\n</script>\n","<template>\n <ElDescriptionsItem ref=\"descriptionsItemRef\" class=\"tt-descriptions-item\" v-bind=\"$attrs\">\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n <slot />\n </ElDescriptionsItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElDescriptionsItem } from 'element-plus';\n\nconst slots = useSlots();\nconst descriptionsItemRef = ref<InstanceType<typeof ElDescriptionsItem>>();\n\ndefineOptions({\n name: 'ElDescriptionsItem',\n});\n\ndefineExpose({\n descriptionsItemRef,\n});\n</script>\n","<template>\n <ElDialog ref=\"dialogRef\" v-model=\"visible\" class=\"tt-dialog\" v-bind=\"dialogAttrs\" :append-to-body=\"appendToBody\">\n <template v-if=\"slots.header\" #header=\"slotProps\">\n <slot name=\"header\" v-bind=\"slotProps\" />\n </template>\n <slot />\n <template v-if=\"slots.footer\" #footer>\n <slot name=\"footer\" />\n </template>\n </ElDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, useSlots } from 'vue';\nimport { ElDialog } from 'element-plus';\nimport type { DialogProps } from 'element-plus';\n\nconst slots = useSlots();\ntype TTDialogProps = Pick<DialogProps, 'appendToBody'>;\nconst props = withDefaults(defineProps<TTDialogProps>(), { appendToBody: true });\nconst attrs = useAttrs();\nconst visible = defineModel<boolean>();\nconst appendToBody = computed(() => props.appendToBody ?? true);\nconst dialogAttrs = computed(() => {\n const { appendToBody: _propAppendToBody, ...restProps } = props;\n const { appendToBody: _appendToBody, ...rest } = attrs;\n return { ...restProps, ...rest };\n});\nconst dialogRef = ref<InstanceType<typeof ElDialog>>();\n\ndefineOptions({\n name: 'Dialog',\n inheritAttrs: false,\n});\n\ndefineExpose({\n dialogRef,\n});\n</script>\n","<template>\n <ElDivider ref=\"dividerRef\" class=\"tt-divider\" :class=\"{ 'tt-divider-plain': props.plain }\" v-bind=\"$attrs\">\n <slot />\n </ElDivider>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElDivider } from 'element-plus';\n\nconst props = withDefaults(\n defineProps<{\n plain?: boolean;\n }>(),\n {\n plain: false,\n },\n);\n\nconst dividerRef = ref<InstanceType<typeof ElDivider>>();\n\ndefineOptions({\n name: 'Divider',\n});\n\ndefineExpose({\n dividerRef,\n});\n</script>\n","<template>\n <ElDrawer ref=\"drawerRef\" v-model=\"visible\" class=\"tt-drawer\" v-bind=\"drawerAttrs\" :append-to-body=\"appendToBody\">\n <template v-if=\"slots.header\" #header=\"slotProps\">\n <slot name=\"header\" v-bind=\"slotProps\" />\n </template>\n <slot />\n <template v-if=\"slots.footer\" #footer>\n <slot name=\"footer\" />\n </template>\n </ElDrawer>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, useSlots } from 'vue';\nimport { ElDrawer } from 'element-plus';\nimport type { DrawerProps } from 'element-plus';\n\nconst slots = useSlots();\ntype TTDrawerProps = Pick<DrawerProps, 'appendToBody'>;\nconst props = withDefaults(defineProps<TTDrawerProps>(), { appendToBody: true });\nconst attrs = useAttrs();\nconst visible = defineModel<boolean>();\nconst appendToBody = computed(() => props.appendToBody ?? true);\nconst drawerAttrs = computed(() => {\n const { appendToBody: _propAppendToBody, ...restProps } = props;\n const { appendToBody: _appendToBody, ...rest } = attrs;\n return { ...restProps, ...rest };\n});\nconst drawerRef = ref<InstanceType<typeof ElDrawer>>();\n\ndefineOptions({\n name: 'Drawer',\n inheritAttrs: false,\n});\n\ndefineExpose({\n drawerRef,\n});\n</script>\n","<template>\n <ElDropdown\n ref=\"dropdownRef\"\n class=\"tt-dropdown\"\n v-bind=\"$attrs\"\n :popper-class=\"mergedPopperClass\"\n :popper-options=\"mergedPopperOptions\"\n >\n <slot />\n <template v-if=\"slots.dropdown\" #dropdown>\n <slot name=\"dropdown\" />\n </template>\n </ElDropdown>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElDropdown } from 'element-plus';\nimport { computed, ref, useSlots } from 'vue';\n\ntype DropdownPopperOptions = NonNullable<InstanceType<typeof ElDropdown>['$props']['popperOptions']>;\n\nconst props = withDefaults(\n defineProps<{\n popperClass?: string;\n popperOptions?: DropdownPopperOptions;\n }>(),\n {\n popperClass: '',\n }\n);\n\nconst slots = useSlots();\nconst dropdownRef = ref<InstanceType<typeof ElDropdown>>();\nconst mergedPopperClass = computed(() => ['tt-dropdown-popper', props.popperClass].filter(Boolean).join(' '));\nconst mergedPopperOptions = computed<DropdownPopperOptions>(() => ({\n ...props.popperOptions,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 0],\n },\n },\n ...(props.popperOptions?.modifiers ?? []),\n ],\n}));\n\nfunction handleOpen() {\n return dropdownRef.value?.handleOpen();\n}\n\nfunction handleClose() {\n return dropdownRef.value?.handleClose();\n}\n\ndefineOptions({\n name: 'Dropdown',\n});\n\ndefineExpose({\n dropdownRef,\n handleOpen,\n handleClose,\n});\n</script>\n","<template>\n <ElDropdownMenu class=\"tt-dropdown-menu\" v-bind=\"$attrs\">\n <slot />\n </ElDropdownMenu>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElDropdownMenu } from 'element-plus';\n\ndefineOptions({\n name: 'DropdownMenu',\n});\n</script>\n","<template>\n <ElDropdownItem class=\"tt-dropdown-item\" v-bind=\"$attrs\">\n <slot />\n </ElDropdownItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElDropdownItem } from 'element-plus';\n\ndefineOptions({\n name: 'DropdownItem',\n});\n</script>\n","<template>\n <ElEmpty ref=\"emptyRef\" class=\"tt-empty\" v-bind=\"$attrs\">\n <template v-if=\"slots.image\" #image>\n <slot name=\"image\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n <template v-if=\"slots.default\" #default>\n <slot />\n </template>\n </ElEmpty>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElEmpty } from 'element-plus';\n\nconst slots = useSlots();\nconst emptyRef = ref<InstanceType<typeof ElEmpty>>();\n\ndefineOptions({\n name: 'Empty',\n});\n\ndefineExpose({\n emptyRef,\n});\n</script>\n","<template>\n <component\n :is=\"componentTag\"\n class=\"tt-float-button\"\n :class=\"buttonClass\"\n :style=\"buttonStyle\"\n :href=\"href || undefined\"\n :target=\"href ? target : undefined\"\n :rel=\"href && target === '_blank' ? 'noopener noreferrer' : undefined\"\n :disabled=\"!href ? disabled : undefined\"\n :aria-disabled=\"href && disabled ? 'true' : undefined\"\n :title=\"tooltip || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <span v-if=\"slots.icon\" class=\"tt-float-button__icon\">\n <slot name=\"icon\" />\n </span>\n <span v-if=\"slots.default\" class=\"tt-float-button__content\">\n <slot />\n </span>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\n\nexport type FloatButtonType = 'default' | 'primary' | 'success' | 'warning' | 'danger';\nexport type FloatButtonShape = 'circle' | 'square';\nexport type FloatButtonPosition = 'right-bottom' | 'right-top' | 'left-bottom' | 'left-top' | 'inline';\n\nconst props = withDefaults(\n defineProps<{\n type?: FloatButtonType;\n shape?: FloatButtonShape;\n position?: FloatButtonPosition;\n right?: number | string;\n left?: number | string;\n top?: number | string;\n bottom?: number | string;\n offset?: number;\n disabled?: boolean;\n href?: string;\n target?: string;\n tooltip?: string;\n }>(),\n {\n type: 'primary',\n shape: 'circle',\n position: 'right-bottom',\n offset: 28,\n disabled: false,\n href: '',\n target: '_self',\n tooltip: '',\n },\n);\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst slots = useSlots();\nconst componentTag = computed(() => (props.href ? 'a' : 'button'));\nconst buttonClass = computed(() => [`tt-float-button--${props.type}`, `tt-float-button--${props.shape}`, `tt-float-button--${props.position}`, { 'is-disabled': props.disabled }]);\n\nfunction toCssLength(value: number | string | undefined, fallback: number) {\n if (typeof value === 'number') {\n return `${value}px`;\n }\n\n return value || `${fallback}px`;\n}\n\nconst buttonStyle = computed(() => ({\n '--tt-float-button-right': toCssLength(props.right, props.offset),\n '--tt-float-button-left': toCssLength(props.left, props.offset),\n '--tt-float-button-top': toCssLength(props.top, props.offset),\n '--tt-float-button-bottom': toCssLength(props.bottom, props.offset),\n}));\n\nfunction handleClick(event: MouseEvent) {\n if (props.disabled) {\n event.preventDefault();\n return;\n }\n\n emit('click', event);\n}\n\ndefineOptions({\n name: 'FloatButton',\n});\n</script>\n","<template>\n <component :is=\"tagName\" class=\"tt-font\" :class=\"fontClass\" v-bind=\"$attrs\">\n <slot />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nexport type FontVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'body' | 'small';\n\nconst props = withDefaults(\n defineProps<{\n variant?: FontVariant;\n }>(),\n {\n variant: 'body',\n },\n);\n\nconst tagMap: Record<FontVariant, string> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n body: 'p',\n small: 'span',\n};\n\nconst tagName = computed(() => tagMap[props.variant]);\n\nconst fontClass = computed(() => `tt-font-${props.variant}`);\n\ndefineOptions({\n name: 'Font',\n});\n</script>\n","<template>\n <ElForm ref=\"formRef\" class=\"tt-form\" v-bind=\"formAttrs\">\n <slot />\n </ElForm>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs } from 'vue';\nimport { ElForm } from 'element-plus';\nimport type { FormProps } from 'element-plus';\n\ndefineOptions({\n name: 'Form',\n inheritAttrs: false,\n});\n\nconst formRef = ref<InstanceType<typeof ElForm>>();\nconst props = defineProps<Partial<FormProps>>();\nconst attrs = useAttrs();\nconst formAttrs = computed(() => ({ ...props, ...attrs }));\n\nfunction validate(...args: unknown[]) {\n return (formRef.value as any)?.validate(...args);\n}\n\nfunction validateField(...args: unknown[]) {\n return (formRef.value as any)?.validateField(...args);\n}\n\nfunction resetFields(...args: unknown[]) {\n return (formRef.value as any)?.resetFields(...args);\n}\n\nfunction clearValidate(...args: unknown[]) {\n return (formRef.value as any)?.clearValidate(...args);\n}\n\nfunction scrollToField(...args: unknown[]) {\n return (formRef.value as any)?.scrollToField(...args);\n}\n\ndefineExpose({\n formRef,\n validate,\n validateField,\n resetFields,\n clearValidate,\n scrollToField,\n});\n</script>\n","<template>\n <ElFormItem class=\"tt-form-item\" v-bind=\"formItemAttrs\">\n <slot />\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n <template v-if=\"slots.error\" #error>\n <slot name=\"error\" />\n </template>\n </ElFormItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useAttrs, useSlots } from 'vue';\nimport { ElFormItem } from 'element-plus';\nimport type { FormItemProps } from 'element-plus';\n\ndefineOptions({\n name: 'FormItem',\n inheritAttrs: false,\n});\n\nconst slots = useSlots();\nconst props = defineProps<Partial<FormItemProps>>();\nconst attrs = useAttrs();\nconst formItemAttrs = computed(() => ({ ...props, ...attrs }));\n</script>\n","<template>\n <ElRow ref=\"rowRef\" class=\"tt-row\" v-bind=\"$attrs\">\n <slot />\n </ElRow>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElRow } from 'element-plus';\n\nconst rowRef = ref<InstanceType<typeof ElRow>>();\n\ndefineOptions({\n name: 'Row',\n});\n\ndefineExpose({\n rowRef,\n});\n</script>\n","<template>\n <ElCol ref=\"colRef\" class=\"tt-col\" v-bind=\"$attrs\">\n <slot />\n </ElCol>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElCol } from 'element-plus';\n\nconst colRef = ref<InstanceType<typeof ElCol>>();\n\ndefineOptions({\n name: 'Col',\n});\n\ndefineExpose({\n colRef,\n});\n</script>\n","<template>\n <ElImage ref=\"imageRef\" class=\"tt-image\" :preview-teleported=\"previewTeleported\" v-bind=\"$attrs\">\n <template v-if=\"slots.placeholder\" #placeholder>\n <slot name=\"placeholder\" />\n </template>\n <template v-if=\"slots.error\" #error>\n <slot name=\"error\" />\n </template>\n <template v-if=\"slots.viewer\" #viewer=\"slotProps\">\n <slot name=\"viewer\" v-bind=\"slotProps\" />\n </template>\n </ElImage>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElImage } from 'element-plus';\n\nwithDefaults(\n defineProps<{\n previewTeleported?: boolean;\n }>(),\n {\n previewTeleported: true,\n },\n);\n\nconst slots = useSlots();\nconst imageRef = ref<InstanceType<typeof ElImage>>();\n\ndefineOptions({\n name: 'Image',\n});\n\ndefineExpose({\n imageRef,\n});\n</script>\n","<template>\n <section class=\"tt-layout\" :class=\"layoutClass\" :style=\"layoutStyle\">\n <header v-if=\"slots.header\" class=\"tt-layout__header\">\n <slot name=\"header\" />\n </header>\n <div class=\"tt-layout__body\">\n <aside v-if=\"slots.sider\" class=\"tt-layout__sider\" :style=\"siderStyle\">\n <slot name=\"sider\" />\n </aside>\n <main class=\"tt-layout__content\">\n <slot />\n </main>\n </div>\n <footer v-if=\"slots.footer\" class=\"tt-layout__footer\">\n <slot name=\"footer\" />\n </footer>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n direction?: 'vertical' | 'horizontal';\n gap?: string | number;\n siderWidth?: string | number;\n }>(),\n {\n direction: 'vertical',\n gap: 0,\n siderWidth: 220,\n },\n);\n\nconst slots = useSlots();\nconst normalizedGap = computed(() => (typeof props.gap === 'number' ? `${props.gap}px` : props.gap));\nconst normalizedSiderWidth = computed(() => (typeof props.siderWidth === 'number' ? `${props.siderWidth}px` : props.siderWidth));\nconst layoutClass = computed(() => ({\n 'tt-layout--horizontal': props.direction === 'horizontal',\n 'tt-layout--has-sider': Boolean(slots.sider),\n}));\nconst layoutStyle = computed(() => ({\n '--tt-layout-gap': normalizedGap.value,\n}));\nconst siderStyle = computed(() => ({\n '--tt-layout-sider-width': normalizedSiderWidth.value,\n}));\n\ndefineOptions({\n name: 'Layout',\n});\n</script>\n","<template>\n <div class=\"tt-list\" :class=\"{ 'tt-list--bordered': bordered }\">\n <div v-if=\"slots.header || title\" class=\"tt-list__header\">\n <slot name=\"header\">\n <strong>{{ title }}</strong>\n </slot>\n </div>\n <div class=\"tt-list__body\">\n <slot />\n <div v-if=\"empty && !slots.default\" class=\"tt-list__empty\">{{ emptyText }}</div>\n </div>\n <div v-if=\"slots.footer\" class=\"tt-list__footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue';\n\nwithDefaults(\n defineProps<{\n title?: string;\n bordered?: boolean;\n empty?: boolean;\n emptyText?: string;\n }>(),\n {\n bordered: true,\n empty: false,\n emptyText: '暂无数据',\n },\n);\n\nconst slots = useSlots();\n\ndefineOptions({\n name: 'List',\n});\n</script>\n","<template>\n <div class=\"tt-list-item\" :class=\"{ 'is-clickable': clickable }\" :role=\"clickable ? 'button' : undefined\" :tabindex=\"clickable ? 0 : undefined\" @click=\"handleClick\" @keydown.enter=\"handleClick\">\n <div v-if=\"slots.meta || title || description\" class=\"tt-list-item__meta\">\n <slot name=\"meta\">\n <strong v-if=\"title\">{{ title }}</strong>\n <span v-if=\"description\">{{ description }}</span>\n </slot>\n </div>\n <div v-if=\"slots.default\" class=\"tt-list-item__content\">\n <slot />\n </div>\n <div v-if=\"slots.actions\" class=\"tt-list-item__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n title?: string;\n description?: string;\n clickable?: boolean;\n }>(),\n {\n clickable: false,\n },\n);\n\nconst emit = defineEmits<{\n click: [];\n}>();\nconst slots = useSlots();\n\nfunction handleClick() {\n if (props.clickable) {\n emit('click');\n }\n}\n\ndefineOptions({\n name: 'ListItem',\n});\n</script>\n","<template>\n <ElLink ref=\"linkRef\" :class=\"linkClass\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.icon\" #icon>\n <slot name=\"icon\" />\n </template>\n </ElLink>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, useSlots } from 'vue';\nimport { ElLink } from 'element-plus';\n\nconst attrs = useAttrs();\nconst slots = useSlots();\nconst linkRef = ref<InstanceType<typeof ElLink>>();\nconst linkClass = computed(() => {\n const type = typeof attrs.type === 'string' ? attrs.type : 'default';\n const underline = attrs.underline === true ? 'hover' : attrs.underline === false ? 'never' : typeof attrs.underline === 'string' ? attrs.underline : 'hover';\n\n return [\n 'tt-link',\n `tt-link-${type}`,\n `tt-link-underline-${underline}`,\n attrs.disabled === true && 'tt-link-disabled',\n slots.icon && 'tt-link-with-icon',\n ];\n});\n\ndefineOptions({\n name: 'Link',\n});\n\ndefineExpose({\n linkRef,\n});\n</script>\n","<template>\n <ElInput ref=\"inputRef\" v-model=\"modelValue\" class=\"tt-input\" v-bind=\"inputAttrs\">\n <template v-if=\"slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n <template v-if=\"slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n </ElInput>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, useSlots } from 'vue';\nimport { ElInput } from 'element-plus';\nimport type { InputProps } from 'element-plus';\n\ndefineOptions({\n name: 'Input',\n inheritAttrs: false,\n});\n\nconst props = defineProps<Omit<Partial<InputProps>, 'modelValue' | 'modelModifiers'>>();\nconst attrs = useAttrs();\nconst modelValue = defineModel<string | number | null | undefined>();\nconst inputAttrs = computed(() => ({ ...props, ...attrs }));\nconst slots = useSlots();\nconst inputRef = ref<InstanceType<typeof ElInput>>();\n\nfunction focus() {\n return inputRef.value?.focus();\n}\n\nfunction blur() {\n return inputRef.value?.blur();\n}\n\nfunction clear() {\n return inputRef.value?.clear();\n}\n\nfunction select() {\n return inputRef.value?.select();\n}\n\ndefineExpose({\n inputRef,\n focus,\n blur,\n clear,\n select,\n});\n</script>\n","<template>\n <div\n v-if=\"prefix || suffix || buttonMode === 'side'\"\n class=\"tt-input-number-wrapper\"\n :class=\"buttonMode === 'side' ? 'tt-input-number-side-wrapper' : 'tt-input-number-affix-wrapper'\"\n :style=\"$attrs.style\"\n >\n <button\n v-if=\"buttonMode === 'side'\"\n class=\"tt-input-number-side-btn tt-input-number-side-btn-left\"\n :class=\"{ 'tt-input-number-side-btn-disabled': isDecreaseDisabled }\"\n type=\"button\"\n :disabled=\"isDecreaseDisabled\"\n @click=\"decrease\"\n >\n <Minus />\n </button>\n <span v-if=\"prefix\" :class=\"buttonMode === 'side' ? 'tt-input-number-side-prefix' : 'tt-input-number-prefix'\">{{ prefix }}</span>\n <ElInputNumber ref=\"inputNumberRef\" v-model=\"modelValue\" class=\"tt-input-number\" controls-position=\"right\" :controls=\"buttonMode !== 'side' && $attrs.controls !== false\" v-bind=\"inputAttrs\" />\n <span v-if=\"suffix\" :class=\"buttonMode === 'side' ? 'tt-input-number-side-suffix' : 'tt-input-number-suffix'\">{{ suffix }}</span>\n <button\n v-if=\"buttonMode === 'side'\"\n class=\"tt-input-number-side-btn tt-input-number-side-btn-right\"\n :class=\"{ 'tt-input-number-side-btn-disabled': isIncreaseDisabled }\"\n type=\"button\"\n :disabled=\"isIncreaseDisabled\"\n @click=\"increase\"\n >\n <Plus />\n </button>\n </div>\n <ElInputNumber v-else ref=\"inputNumberRef\" v-model=\"modelValue\" class=\"tt-input-number\" controls-position=\"right\" v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs } from 'vue';\nimport { ElInputNumber } from 'element-plus';\nimport { Minus, Plus } from '@element-plus/icons-vue';\n\ndefineOptions({\n name: 'InputNumber',\n});\n\nconst props = withDefaults(\n defineProps<{\n buttonMode?: 'default' | 'side';\n prefix?: string;\n suffix?: string;\n }>(),\n {\n buttonMode: 'default',\n prefix: '',\n suffix: '',\n },\n);\nconst attrs = useAttrs();\nconst modelValue = defineModel<number | undefined>();\nconst inputNumberRef = ref<InstanceType<typeof ElInputNumber>>();\nconst inputAttrs = computed(() => {\n const { controls: _controls, style: _style, ...rest } = attrs;\n return rest;\n});\nconst min = computed(() => toFiniteNumber(attrs.min));\nconst max = computed(() => toFiniteNumber(attrs.max));\nconst step = computed(() => toFiniteNumber(attrs.step) ?? 1);\nconst isDisabled = computed(() => attrs.disabled === '' || attrs.disabled === true);\nconst isDecreaseDisabled = computed(() => isDisabled.value || (min.value !== undefined && (modelValue.value ?? 0) <= min.value));\nconst isIncreaseDisabled = computed(() => isDisabled.value || (max.value !== undefined && (modelValue.value ?? 0) >= max.value));\n\nfunction toFiniteNumber(value: unknown) {\n const numberValue = Number(value);\n return Number.isFinite(numberValue) ? numberValue : undefined;\n}\n\nfunction decrease() {\n if (!isDecreaseDisabled.value) {\n modelValue.value = Math.max(min.value ?? -Infinity, (modelValue.value ?? 0) - step.value);\n }\n}\n\nfunction increase() {\n if (!isIncreaseDisabled.value) {\n modelValue.value = Math.min(max.value ?? Infinity, (modelValue.value ?? 0) + step.value);\n }\n}\n\nfunction focus() {\n return inputNumberRef.value?.focus();\n}\n\nfunction blur() {\n return inputNumberRef.value?.blur();\n}\n\ndefineExpose({\n inputNumberRef,\n focus,\n blur,\n});\n</script>\n","import { ElMessage } from 'element-plus';\nimport type { MessageHandler } from 'element-plus';\n\nconst messageTypes = ['success', 'warning', 'info', 'error'] as const;\ntype MessageType = (typeof messageTypes)[number];\ntype MessageOptions = string | number | boolean | Record<string, any>;\ntype MessageFactory = ((options: MessageOptions) => MessageHandler) & Record<MessageType, (options: MessageOptions) => MessageHandler> & {\n closeAll: typeof ElMessage.closeAll;\n};\n\nfunction normalizeOptions(options: MessageOptions, type?: MessageType) {\n if (typeof options === 'string' || typeof options === 'number' || typeof options === 'boolean') {\n return {\n type,\n message: options,\n customClass: 'tt-message',\n };\n }\n\n return {\n ...options,\n type: type ?? options.type,\n customClass: ['tt-message', options.customClass].filter(Boolean).join(' '),\n };\n}\n\nconst Message = ((options: MessageOptions) => (ElMessage as any)(normalizeOptions(options))) as MessageFactory;\n\nmessageTypes.forEach(type => {\n Message[type] = (options: MessageOptions) => (ElMessage[type] as any)(normalizeOptions(options, type));\n});\n\nMessage.closeAll = ElMessage.closeAll;\n\nexport default Message;\n","<template>\n <component :is=\"tag\" class=\"tt-masonry\" :class=\"{ 'tt-masonry--auto': hasMinColumnWidth }\" :style=\"masonryStyle\" v-bind=\"$attrs\">\n <template v-if=\"items.length\">\n <component :is=\"itemTag\" v-for=\"(item, index) in items\" :key=\"getItemKey(item, index)\" class=\"tt-masonry__item\">\n <slot name=\"item\" :item=\"item\" :index=\"index\">{{ item }}</slot>\n </component>\n </template>\n <slot v-else />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nexport type MasonryItemKey = string | ((item: unknown, index: number) => string | number);\n\nconst props = withDefaults(\n defineProps<{\n items?: unknown[];\n columns?: number;\n minColumnWidth?: number | string;\n gap?: number | string;\n itemKey?: MasonryItemKey;\n tag?: string;\n itemTag?: string;\n }>(),\n {\n items: () => [],\n columns: 3,\n minColumnWidth: undefined,\n gap: 16,\n itemKey: undefined,\n tag: 'div',\n itemTag: 'div',\n },\n);\n\nconst masonryStyle = computed(() => ({\n '--tt-masonry-columns': props.minColumnWidth ? 'auto' : props.columns,\n '--tt-masonry-column-width': props.minColumnWidth\n ? (typeof props.minColumnWidth === 'number' ? `${props.minColumnWidth}px` : props.minColumnWidth)\n : 'auto',\n '--tt-masonry-gap': typeof props.gap === 'number' ? `${props.gap}px` : props.gap,\n}));\n\nconst hasMinColumnWidth = computed(() => Boolean(props.minColumnWidth));\n\nfunction getItemKey(item: unknown, index: number) {\n if (typeof props.itemKey === 'function') {\n return props.itemKey(item, index);\n }\n\n if (typeof props.itemKey === 'string' && item && typeof item === 'object' && props.itemKey in item) {\n return (item as Record<string, unknown>)[props.itemKey] as string | number;\n }\n\n return index;\n}\n\ndefineOptions({\n name: 'Masonry',\n});\n</script>\n","<template>\n <ElMenu ref=\"menuRef\" class=\"tt-menu\" :class=\"menuClass\" :mode=\"mode\" v-bind=\"$attrs\">\n <slot />\n </ElMenu>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport { ElMenu } from 'element-plus';\n\nconst props = withDefaults(\n defineProps<{\n mode?: 'horizontal' | 'vertical';\n }>(),\n {\n mode: 'vertical',\n },\n);\n\nconst menuRef = ref<InstanceType<typeof ElMenu>>();\nconst menuClass = computed(() => ({\n 'tt-menu--horizontal': props.mode === 'horizontal',\n}));\n\nfunction open(...args: unknown[]) {\n return (menuRef.value as any)?.open(...args);\n}\n\nfunction close(...args: unknown[]) {\n return (menuRef.value as any)?.close(...args);\n}\n\nfunction handleResize(...args: unknown[]) {\n return (menuRef.value as any)?.handleResize?.(...args);\n}\n\ndefineOptions({\n name: 'Menu',\n});\n\ndefineExpose({\n menuRef,\n open,\n close,\n handleResize,\n});\n</script>\n","<template>\n <ElMenuItem ref=\"menuItemRef\" class=\"tt-menu-item\" :index=\"index\" v-bind=\"$attrs\">\n <slot />\n </ElMenuItem>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElMenuItem } from 'element-plus';\n\nconst props = defineProps<{\n index: string;\n}>();\n\nconst menuItemRef = ref<InstanceType<typeof ElMenuItem>>();\nconst { index } = props;\n\ndefineOptions({\n name: 'MenuItem',\n});\n\ndefineExpose({\n menuItemRef,\n});\n</script>\n","<template>\n <ElMenuItemGroup class=\"tt-menu-item-group\" v-bind=\"$attrs\">\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <slot />\n </ElMenuItemGroup>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue';\nimport { ElMenuItemGroup } from 'element-plus';\n\nconst slots = useSlots();\n\ndefineOptions({\n name: 'MenuItemGroup',\n});\n</script>\n","<template>\n <ElSubMenu ref=\"subMenuRef\" class=\"tt-sub-menu\" :index=\"index\" :popper-class=\"mergedPopperClass\" v-bind=\"$attrs\">\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <slot />\n </ElSubMenu>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots } from 'vue';\nimport { ElSubMenu } from 'element-plus';\n\nconst props = withDefaults(defineProps<{\n index: string;\n popperClass?: string;\n}>(), {\n popperClass: '',\n});\n\nconst slots = useSlots();\nconst subMenuRef = ref<InstanceType<typeof ElSubMenu>>();\nconst { index } = props;\nconst mergedPopperClass = computed(() => ['tt-menu-popper', props.popperClass].filter(Boolean).join(' '));\n\ndefineOptions({\n name: 'SubMenu',\n});\n\ndefineExpose({\n subMenuRef,\n});\n</script>\n","<template>\n <span class=\"tt-money\" :class=\"moneyClass\" v-bind=\"$attrs\">\n <span v-if=\"prefix\" class=\"tt-money__prefix\">{{ prefix }}</span>\n <span class=\"tt-money__value\">{{ displayValue }}</span>\n <span v-if=\"suffix\" class=\"tt-money__suffix\">{{ suffix }}</span>\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nexport type MoneyValue = number | string | null | undefined;\n\nconst props = withDefaults(\n defineProps<{\n value?: MoneyValue;\n currency?: string;\n locale?: string;\n precision?: number;\n symbol?: string;\n prefix?: string;\n suffix?: string;\n showSign?: boolean;\n placeholder?: string;\n negativeType?: 'minus' | 'parentheses';\n colorByValue?: boolean;\n strong?: boolean;\n }>(),\n {\n value: undefined,\n currency: 'CNY',\n locale: 'zh-CN',\n precision: undefined,\n symbol: undefined,\n prefix: '',\n suffix: '',\n showSign: false,\n placeholder: '--',\n negativeType: 'minus',\n colorByValue: false,\n strong: false,\n },\n);\n\nconst numericValue = computed(() => {\n if (props.value === null || props.value === undefined || props.value === '') {\n return null;\n }\n\n const value = Number(props.value);\n return Number.isFinite(value) ? value : null;\n});\n\nconst displayValue = computed(() => {\n const value = numericValue.value;\n\n if (value === null) {\n return props.placeholder;\n }\n\n const isNegative = value < 0;\n const formatValue = props.negativeType === 'parentheses' ? Math.abs(value) : value;\n const options: Intl.NumberFormatOptions = {\n minimumFractionDigits: props.precision,\n maximumFractionDigits: props.precision,\n signDisplay: props.showSign ? 'exceptZero' : 'auto',\n };\n\n if (!props.symbol) {\n options.style = 'currency';\n options.currency = props.currency;\n }\n\n const formatted = new Intl.NumberFormat(props.locale, options).format(formatValue);\n const withSymbol = props.symbol ? `${props.symbol}${formatted}` : formatted;\n\n if (props.negativeType === 'parentheses' && isNegative) {\n return `(${withSymbol})`;\n }\n\n return withSymbol;\n});\n\nconst moneyClass = computed(() => ({\n 'is-empty': numericValue.value === null,\n 'is-positive': props.colorByValue && numericValue.value !== null && numericValue.value > 0,\n 'is-negative': props.colorByValue && numericValue.value !== null && numericValue.value < 0,\n 'is-strong': props.strong,\n}));\n\ndefineOptions({\n name: 'Money',\n});\n</script>\n","import { ElNotification } from 'element-plus';\nimport type { NotificationHandle } from 'element-plus';\n\nconst notificationTypes = ['success', 'warning', 'info', 'error'] as const;\ntype NotificationType = (typeof notificationTypes)[number];\ntype NotificationOptions = string | number | boolean | Record<string, any>;\ntype NotificationFactory = ((options: NotificationOptions) => NotificationHandle) & Record<NotificationType, (options: NotificationOptions) => NotificationHandle> & {\n closeAll: typeof ElNotification.closeAll;\n};\n\nfunction normalizeOptions(options: NotificationOptions, type?: NotificationType) {\n if (typeof options === 'string' || typeof options === 'number' || typeof options === 'boolean') {\n return {\n type,\n message: String(options),\n customClass: 'tt-notification',\n };\n }\n\n return {\n ...options,\n type: type ?? options.type,\n customClass: ['tt-notification', options.customClass].filter(Boolean).join(' '),\n };\n}\n\nconst Notification = ((options: NotificationOptions) => (ElNotification as any)(normalizeOptions(options))) as NotificationFactory;\n\nnotificationTypes.forEach(type => {\n Notification[type] = (options: NotificationOptions) => (ElNotification[type] as any)(normalizeOptions(options, type));\n});\n\nNotification.closeAll = ElNotification.closeAll;\n\nexport default Notification;\n","<template>\n <ElPagination class=\"tt-pagination\" v-bind=\"paginationAttrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport { ElPagination } from 'element-plus';\nimport type { PaginationProps } from 'element-plus';\n\nconst props = defineProps<Partial<PaginationProps>>();\nconst attrs = useAttrs();\nconst paginationAttrs = computed(() => ({ ...props, ...attrs }));\n\ndefineOptions({\n name: 'Pagination',\n inheritAttrs: false,\n});\n</script>\n","<template>\n <div class=\"tt-plate\" :class=\"plateClass\" v-bind=\"$attrs\">\n <ElPopover\n :visible=\"popoverVisible\"\n trigger=\"click\"\n :width=\"360\"\n :placement=\"popoverToTop ? 'top-start' : 'bottom-start'\"\n :teleported=\"false\"\n popper-class=\"tt-plate-popper\"\n @update:visible=\"handlePopoverVisible\"\n >\n <template #reference>\n <div\n class=\"tt-plate__box\"\n :class=\"{ 'is-disabled': disabled, 'is-focused': focused }\"\n tabindex=\"0\"\n role=\"textbox\"\n :aria-label=\"'车牌号'\"\n :aria-disabled=\"disabled\"\n @click=\"focusAt()\"\n @keydown=\"handleKeydown\"\n @paste=\"handlePaste\"\n >\n <span v-for=\"(_, index) in plateLength\" :key=\"index\" class=\"tt-plate__char\" :class=\"{ 'is-active': focused && cursor === index, 'is-new-energy': index === plateLength - 1 && plateLength === 8 }\" @click.stop=\"focusAt(index)\">\n {{ displayChars[index] }}\n </span>\n </div>\n </template>\n\n <div class=\"tt-plate__keyboard\" @mousedown.prevent>\n <template v-if=\"cursor === 0\">\n <span class=\"tt-plate__keyboard-title\">选择省份简称</span>\n <div class=\"tt-plate__keyboard-grid tt-plate__keyboard-grid--province\">\n <button v-for=\"brief in availableBriefs\" :key=\"brief\" type=\"button\" :class=\"{ 'is-selected': value.startsWith(brief), 'is-special': brief.length > 1 }\" @click=\"selectProvince(brief)\">{{ brief }}</button>\n </div>\n </template>\n <template v-else>\n <span class=\"tt-plate__keyboard-title\">{{ keyboardMode === 'en' ? '输入字母或数字' : '输入省份或特殊字符' }}</span>\n <div class=\"tt-plate__keyboard-grid tt-plate__keyboard-grid--code\">\n <div v-for=\"(row, rowIndex) in keyboardRows\" :key=\"rowIndex\" class=\"tt-plate__keyboard-row\">\n <button\n v-for=\"key in row\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"isKeyboardKeyDisabled(key)\"\n :class=\"{ 'is-disabled': isKeyboardKeyDisabled(key) }\"\n @click=\"handleKeyboardKey(key)\"\n >{{ key }}</button>\n </div>\n </div>\n </template>\n </div>\n </ElPopover>\n\n <button v-if=\"value && !disabled\" class=\"tt-plate__clear\" type=\"button\" aria-label=\"清空车牌\" @click=\"clear\">×</button>\n <button v-if=\"copy && value\" class=\"tt-plate__copy\" type=\"button\" aria-label=\"复制车牌号\" @click=\"copyValue\">复制</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport { ElPopover } from 'element-plus';\n\nexport type PlateType = 'search' | 'input' | 'single-input' | 'default' | 'new-energy' | 'temporary' | 'police';\nexport type PlateSize = 'small' | 'default' | 'large';\nexport type PlateColor = 'blue' | 'green' | 'yellow' | 'yellow-green' | 'white' | 'black';\n\nconst provinceBriefs = ['京', '冀', '津', '豫', '鲁', '贵', '渝', '云', '辽', '沪', '黑', '湘', '皖', '新', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '蒙', '陕', '吉', '闽', '粤', '青', '藏', '川', '宁', '琼', '使', '电', 'U', '无牌', '未登记'];\nconst disabledKeyboardKeys = ['I', 'O'];\nconst keyboardLayouts = {\n en: [\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\n ['字', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '⌫'],\n ],\n zh: [\n ['京', '津', '冀', '辽', '蒙', '鲁', '豫', '贵'],\n ['渝', '云', '沪', '黑', '湘', '皖', '新', '苏'],\n ['浙', '赣', '鄂', '桂', '甘', '晋', '陕', '吉'],\n ['闽', '粤', '青', '藏', '川', '宁', '琼', '台'],\n ['领', '警', '学', '挂', '港', '澳', '试', '超', '使'],\n ['EN', '无牌', '非机动车', '电', 'U', '⌫'],\n ],\n} as const;\n\nconst props = withDefaults(defineProps<{\n value?: string;\n type?: PlateType;\n size?: PlateSize;\n disabled?: boolean;\n masked?: boolean;\n placeholder?: string;\n hideBrief?: string[];\n canInputKeys?: string[];\n plateColorValueFromOutside?: number;\n copy?: boolean;\n popoverToTop?: boolean;\n}>(), {\n value: '',\n type: 'search',\n size: 'default',\n disabled: false,\n masked: false,\n placeholder: '未录入',\n hideBrief: () => [],\n canInputKeys: () => [],\n copy: true,\n popoverToTop: false,\n});\n\nconst modelValue = defineModel<string>();\nconst emit = defineEmits<{\n change: [value: string];\n blur: [];\n 'color-options-change': [values: number[]];\n keypress: [event: KeyboardEvent];\n copy: [value: string];\n}>();\n\nconst innerValue = ref(normalize(props.value));\nconst focused = ref(false);\nconst cursor = ref(0);\nconst keyboardMode = ref<keyof typeof keyboardLayouts>('en');\nconst value = computed(() => normalize(modelValue.value ?? innerValue.value));\nconst isVirtualPlate = computed(() => value.value.startsWith('U') || value.value.startsWith('电'));\nconst plateLength = computed(() => isVirtualPlate.value ? 13 : 8);\ntype PlateInputMode = 'search' | 'input' | 'single-input';\nconst mode = computed<PlateInputMode>(() => ['search', 'input', 'single-input'].includes(props.type) ? props.type as PlateInputMode : 'search');\nconst availableBriefs = computed(() => provinceBriefs.filter(item => !props.hideBrief.includes(item)));\nconst plateColor = computed<PlateColor>(() => resolvePlateColor(value.value, mode.value, props.plateColorValueFromOutside, props.type));\nconst colorOptions = computed(() => resolveColorOptions(value.value, mode.value));\nconst popoverVisible = computed(() => focused.value && !props.disabled);\nconst keyboardRows = computed(() => keyboardLayouts[keyboardMode.value]);\nconst displayChars = computed(() => {\n const chars = Array.from(value.value.padEnd(plateLength.value, ' ').slice(0, plateLength.value));\n if (props.masked && value.value.length > 4) {\n for (let index = 2; index < Math.min(value.value.length - 2, chars.length); index += 1) chars[index] = '*';\n }\n return chars;\n});\nconst plateClass = computed(() => [\n `tt-plate--${props.size}`,\n `tt-plate--${plateColor.value}`,\n { 'has-dot': plateLength.value === 8, 'is-empty': !value.value, 'popover-to-top': props.popoverToTop },\n]);\n\nwatch(colorOptions, options => emit('color-options-change', options), { immediate: true });\nwatch(plateLength, length => { cursor.value = Math.min(cursor.value, length - 1); });\nwatch(() => props.value, nextValue => {\n if (modelValue.value === undefined) innerValue.value = normalize(nextValue);\n});\n\nfunction normalize(nextValue: string) {\n return nextValue.replace(/[\\s·•・]/g, '').toUpperCase();\n}\n\nfunction updateValue(nextValue: string) {\n const normalized = normalize(nextValue).slice(0, plateLength.value);\n innerValue.value = normalized;\n modelValue.value = normalized;\n emit('change', normalized);\n}\n\nfunction focusAt(index = Math.min(value.value.length, plateLength.value - 1)) {\n if (props.disabled) return;\n cursor.value = Math.max(0, Math.min(index, plateLength.value - 1));\n focused.value = true;\n}\n\nfunction handlePopoverVisible(nextVisible: boolean) {\n focused.value = nextVisible;\n if (!nextVisible) emit('blur');\n}\n\nfunction insertKey(key: string) {\n if (props.disabled) return;\n const nextValue = `${value.value.slice(0, cursor.value)}${key}${value.value.slice(cursor.value + 1)}`;\n updateValue(nextValue);\n cursor.value = Math.min(cursor.value + 1, plateLength.value - 1);\n}\n\nfunction isKeyboardKeyDisabled(key: string) {\n return disabledKeyboardKeys.includes(key);\n}\n\nfunction handleKeyboardKey(key: string) {\n if (key === '字') {\n keyboardMode.value = 'zh';\n return;\n }\n if (key === 'EN') {\n keyboardMode.value = 'en';\n return;\n }\n if (key === '⌫') {\n removeKey();\n return;\n }\n if (!isKeyboardKeyDisabled(key)) insertKey(key);\n}\n\nfunction removeKey() {\n if (props.disabled) return;\n const target = value.value[cursor.value] ? cursor.value : Math.max(0, cursor.value - 1);\n updateValue(`${value.value.slice(0, target)}${value.value.slice(target + 1)}`);\n cursor.value = target;\n}\n\nfunction selectProvince(brief: string) {\n const oldBriefLength = value.value.startsWith('未登记') ? 3 : value.value.startsWith('无牌') ? 2 : 1;\n const suffix = value.value.slice(oldBriefLength);\n updateValue(props.canInputKeys.includes(brief) || !['无牌', '未登记'].includes(brief) ? `${brief}${suffix}` : brief);\n cursor.value = Math.min(brief.length, plateLength.value - 1);\n}\n\nfunction handleKeydown(event: KeyboardEvent) {\n if (props.disabled) return;\n if (mode.value === 'search') emit('keypress', event);\n if (event.key === 'ArrowLeft') { event.preventDefault(); cursor.value = Math.max(0, cursor.value - 1); return; }\n if (event.key === 'ArrowRight') { event.preventDefault(); cursor.value = Math.min(plateLength.value - 1, cursor.value + 1); return; }\n if (event.key === 'Backspace') { event.preventDefault(); removeKey(); return; }\n if (/^[A-Za-z0-9\\u4e00-\\u9fa5]$/.test(event.key)) {\n event.preventDefault();\n const key = event.key.toUpperCase();\n if (!isKeyboardKeyDisabled(key)) insertKey(key);\n }\n}\n\nfunction handlePaste(event: ClipboardEvent) {\n if (props.disabled) return;\n event.preventDefault();\n const pasted = normalize(event.clipboardData?.getData('text') || '');\n updateValue(`${value.value.slice(0, cursor.value)}${pasted}${value.value.slice(cursor.value)}`);\n cursor.value = Math.min(cursor.value + pasted.length, plateLength.value - 1);\n}\n\nfunction clear() {\n updateValue('');\n cursor.value = 0;\n focused.value = true;\n}\n\nasync function copyValue() {\n if (navigator.clipboard?.writeText) await navigator.clipboard.writeText(value.value);\n emit('copy', value.value);\n}\n\nfunction resolveColorOptions(currentValue: string, currentMode: PlateInputMode) {\n if (currentMode !== 'input') return [];\n if (/^[A-TV-Z0-9]/.test(currentValue)) return [2, 3];\n if (currentValue.startsWith('U') || currentValue.startsWith('电')) return [1, 2, 3];\n if (provinceBriefs.includes(currentValue[0] || '')) return currentValue.length >= 8 && /^[A-Z]$/.test(currentValue[2] || '') ? [5] : currentValue.length >= 8 && /^[A-Z]$/.test(currentValue[7] || '') ? [6] : [1, 0, 4, 2, 3];\n return [];\n}\n\nfunction resolvePlateColor(currentValue: string, currentMode: PlateInputMode, externalColor: number | undefined, legacyType: PlateType): PlateColor {\n if (legacyType === 'new-energy') return 'green';\n if (legacyType === 'temporary') return 'yellow';\n if (legacyType === 'police') return 'white';\n const colorMap: Record<number, PlateColor> = { 0: 'yellow', 1: 'blue', 2: 'white', 3: 'black', 4: 'yellow', 5: 'green', 6: 'yellow-green' };\n if (currentMode === 'input' && externalColor !== undefined && colorMap[externalColor]) return colorMap[externalColor];\n if (currentMode === 'search') return currentValue.length === 8 ? 'green' : 'blue';\n if (/^[A-TV-Z0-9]/.test(currentValue)) return currentMode === 'single-input' ? 'white' : 'black';\n if (currentValue.startsWith('U') || currentValue.startsWith('电')) return 'blue';\n if (currentValue.length >= 8 && /^[A-Z]$/.test(currentValue[2] || '')) return 'green';\n if (currentValue.length >= 8 && /^[A-Z]$/.test(currentValue[7] || '')) return 'yellow-green';\n return 'blue';\n}\n\ndefineOptions({ name: 'Plate', inheritAttrs: false });\n</script>\n","<template>\n <ElPopconfirm :width=\"props.width ?? 'fit-content'\" :popper-class=\"mergedPopperClass\" v-bind=\"$attrs\">\n <template v-if=\"slots.reference\" #reference>\n <slot name=\"reference\" />\n </template>\n <template v-if=\"slots.actions\" #actions=\"slotProps\">\n <slot name=\"actions\" v-bind=\"slotProps\" />\n </template>\n </ElPopconfirm>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\nimport { ElPopconfirm } from 'element-plus';\n\nconst props = withDefaults(\n defineProps<{\n popperClass?: string;\n width?: number | string;\n }>(),\n {\n popperClass: '',\n }\n);\n\nconst slots = useSlots();\nconst mergedPopperClass = computed(() => ['tt-popconfirm', props.popperClass].filter(Boolean).join(' '));\n\ndefineOptions({\n name: 'Popconfirm',\n});\n</script>\n","<template>\n <ElPopover :popper-class=\"mergedPopperClass\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.reference\" #reference>\n <slot name=\"reference\" />\n </template>\n </ElPopover>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\nimport { ElPopover } from 'element-plus';\n\nconst props = withDefaults(\n defineProps<{\n popperClass?: string;\n }>(),\n {\n popperClass: '',\n }\n);\n\nconst slots = useSlots();\nconst mergedPopperClass = computed(() => ['tt-popover', props.popperClass].filter(Boolean).join(' '));\n\ndefineOptions({\n name: 'Popover',\n});\n</script>\n","<template>\n <ElForm ref=\"queryFormRef\" class=\"tt-query-form\" :inline=\"true\" v-bind=\"$attrs\" @submit.prevent>\n <div class=\"tt-query-form__content\">\n <slot />\n </div>\n <div v-if=\"showActions || slots.actions\" class=\"tt-query-form__actions\">\n <slot name=\"actions\">\n <ElButton class=\"tt-button\" @click=\"emit('reset')\">{{ resetText }}</ElButton>\n <ElButton class=\"tt-button\" type=\"primary\" @click=\"emit('search')\">{{ searchText }}</ElButton>\n </slot>\n </div>\n </ElForm>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElButton, ElForm } from 'element-plus';\n\nwithDefaults(\n defineProps<{\n showActions?: boolean;\n searchText?: string;\n resetText?: string;\n }>(),\n {\n showActions: true,\n searchText: '查询',\n resetText: '重置',\n },\n);\n\nconst emit = defineEmits<{\n search: [];\n reset: [];\n}>();\n\nconst slots = useSlots();\nconst queryFormRef = ref<InstanceType<typeof ElForm>>();\n\ndefineOptions({\n name: 'QueryForm',\n});\n\ndefineExpose({\n queryFormRef,\n});\n</script>\n","<template>\n <div class=\"tt-qrcode\" :class=\"qrcodeClass\" :style=\"qrcodeStyle\" v-bind=\"$attrs\">\n <div class=\"tt-qrcode__canvas\">\n <img v-if=\"dataUrl && status === 'active'\" :src=\"dataUrl\" :alt=\"altText\" />\n <div v-else-if=\"status === 'loading'\" class=\"tt-qrcode__loading\">\n <slot name=\"loading\">生成中</slot>\n </div>\n <div v-else class=\"tt-qrcode__expired\">\n <slot name=\"expired\">\n <span>二维码已过期</span>\n <button type=\"button\" @click=\"emit('refresh')\">{{ refreshText }}</button>\n </slot>\n </div>\n <span v-if=\"slots.icon && status === 'active'\" class=\"tt-qrcode__icon\">\n <slot name=\"icon\" />\n </span>\n </div>\n <div v-if=\"description || slots.description\" class=\"tt-qrcode__description\">\n <slot name=\"description\">{{ description }}</slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots, watch } from 'vue';\nimport * as QRCodeLib from 'qrcode';\n\nexport type QRCodeStatus = 'active' | 'expired' | 'loading';\nexport type QRCodeLevel = 'L' | 'M' | 'Q' | 'H';\n\nconst props = withDefaults(\n defineProps<{\n value?: string;\n size?: number;\n level?: QRCodeLevel;\n status?: QRCodeStatus;\n bordered?: boolean;\n description?: string;\n refreshText?: string;\n alt?: string;\n }>(),\n {\n value: '',\n size: 156,\n level: 'M',\n status: 'active',\n bordered: true,\n description: '',\n refreshText: '刷新',\n alt: '',\n },\n);\n\nconst emit = defineEmits<{\n refresh: [];\n}>();\n\nconst slots = useSlots();\nconst dataUrl = ref('');\nconst altText = computed(() => props.alt || `QRCode: ${props.value}`);\nconst qrcodeClass = computed(() => ({\n 'is-bordered': props.bordered,\n 'is-expired': props.status === 'expired',\n 'is-loading': props.status === 'loading',\n}));\nconst qrcodeStyle = computed(() => ({\n '--tt-qrcode-size': `${props.size}px`,\n}));\n\nwatch(\n () => [props.value, props.size, props.level] as const,\n async ([value, size, level]) => {\n if (!value) {\n dataUrl.value = '';\n return;\n }\n\n dataUrl.value = await QRCodeLib.toDataURL(value, {\n width: size,\n margin: 1,\n errorCorrectionLevel: level,\n color: {\n dark: '#081126',\n light: '#ffffff',\n },\n });\n },\n { immediate: true },\n);\n\ndefineOptions({\n name: 'QRCode',\n});\n</script>\n","<template>\n <ElRadio v-model=\"modelValue\" class=\"tt-radio\" v-bind=\"$attrs\">\n <slot />\n </ElRadio>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElRadio } from 'element-plus';\n\nexport type RadioValue = string | number | boolean;\n\ndefineOptions({\n name: 'Radio',\n});\n\nconst modelValue = defineModel<RadioValue>();\n</script>\n","<template>\n <ElRadioButton class=\"tt-radio-button\" v-bind=\"$attrs\">\n <slot />\n </ElRadioButton>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElRadioButton } from 'element-plus';\n\ndefineOptions({\n name: 'RadioButton',\n});\n</script>\n","<template>\n <ElRadioGroup v-model=\"modelValue\" class=\"tt-radio-group\" v-bind=\"$attrs\">\n <slot />\n </ElRadioGroup>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElRadioGroup } from 'element-plus';\nimport type { RadioValue } from './Radio.vue';\n\ndefineOptions({\n name: 'RadioGroup',\n});\n\nconst modelValue = defineModel<RadioValue>();\n</script>\n","<template>\n <ElRate ref=\"rateRef\" v-model=\"modelValue\" class=\"tt-rate\" v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElRate } from 'element-plus';\n\nexport type RateValue = number;\n\nconst modelValue = defineModel<RateValue>();\nconst rateRef = ref<InstanceType<typeof ElRate>>();\n\ndefineOptions({\n name: 'Rate',\n});\n\ndefineExpose({\n rateRef,\n});\n</script>\n","<template>\n <ElResult ref=\"resultRef\" class=\"tt-result\" v-bind=\"$attrs\">\n <template v-if=\"slots.icon\" #icon>\n <slot name=\"icon\" />\n </template>\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-if=\"slots.subTitle\" #sub-title>\n <slot name=\"subTitle\" />\n </template>\n <template v-if=\"slots.extra\" #extra>\n <slot name=\"extra\" />\n </template>\n </ElResult>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElResult } from 'element-plus';\n\nconst slots = useSlots();\nconst resultRef = ref<InstanceType<typeof ElResult>>();\n\ndefineOptions({\n name: 'Result',\n});\n\ndefineExpose({\n resultRef,\n});\n</script>\n","<template>\n <section\n class=\"tt-rich-text\"\n :class=\"{ 'is-disabled': disabled, 'is-readonly': readonly }\"\n :style=\"{ '--tt-rich-text-min-height': minHeightValue }\"\n v-bind=\"$attrs\"\n >\n <component\n :is=\"ToolbarComp\"\n v-if=\"!readonly && ToolbarComp\"\n class=\"tt-rich-text__toolbar\"\n :editor=\"editorRef\"\n :default-config=\"toolbarConfig\"\n mode=\"default\"\n />\n <component\n :is=\"EditorComp\"\n v-if=\"EditorComp\"\n v-model=\"modelValue\"\n class=\"tt-rich-text__editor\"\n :default-config=\"editorConfig\"\n mode=\"default\"\n @on-created=\"handleCreated\"\n @on-change=\"handleChange\"\n @on-focus=\"emit('focus', $event)\"\n @on-blur=\"emit('blur', $event)\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, markRaw, onBeforeUnmount, onMounted, shallowRef, watch, type Component } from 'vue';\nimport type { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor';\n// wangEditor 是浏览器专属的重型依赖(在 Node/SSR 环境求值会因 global.navigator 只读而崩溃),\n// 组件挂载后再动态加载,包入口导入不触发其求值,SSR/Node 环境安全。\nconst EditorComp = shallowRef<Component | null>(null);\nconst ToolbarComp = shallowRef<Component | null>(null);\nonMounted(() => {\n void import('@wangeditor/editor-for-vue').then(mod => {\n EditorComp.value = markRaw(mod.Editor);\n ToolbarComp.value = markRaw(mod.Toolbar);\n });\n});\n// wangEditor 样式随 RichText 组件加载,不进入全局 style 入口,避免未使用富文本的宿主背体积\nimport '@wangeditor/editor/dist/css/style.css';\n\nexport type RichTextTool = 'bold' | 'italic' | 'underline' | 'strike' | 'heading1' | 'heading2' | 'unorderedList' | 'orderedList' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'link' | 'removeFormat' | 'divider';\n\nconst toolbarKeyMap: Record<RichTextTool, string> = {\n bold: 'bold', italic: 'italic', underline: 'underline', strike: 'through',\n heading1: 'headerSelect', heading2: 'headerSelect',\n unorderedList: 'bulletedList', orderedList: 'numberedList',\n alignLeft: 'justifyLeft', alignCenter: 'justifyCenter', alignRight: 'justifyRight',\n link: 'insertLink', removeFormat: 'clearStyle', divider: '|',\n};\n\nconst props = withDefaults(defineProps<{\n placeholder?: string;\n disabled?: boolean;\n readonly?: boolean;\n minHeight?: number | string;\n toolbar?: RichTextTool[];\n}>(), {\n placeholder: '请输入内容...',\n disabled: false,\n readonly: false,\n minHeight: 200,\n});\n\nconst modelValue = defineModel<string>({ default: '' });\nconst emit = defineEmits<{\n change: [value: string];\n focus: [editor: IDomEditor];\n blur: [editor: IDomEditor];\n clear: [];\n}>();\n\nconst editorRef = shallowRef<IDomEditor | null>(null);\nconst minHeightValue = computed(() => typeof props.minHeight === 'number' ? `${props.minHeight}px` : props.minHeight);\nconst editorConfig = computed<Partial<IEditorConfig>>(() => ({ placeholder: props.placeholder }));\nconst toolbarConfig = computed<Partial<IToolbarConfig>>(() => {\n if (!props.toolbar) return {};\n const toolbarKeys = props.toolbar\n .map(tool => toolbarKeyMap[tool])\n .filter((tool, index, tools) => tool === '|' || tools.indexOf(tool) === index);\n return { toolbarKeys };\n});\n\nfunction syncReadonlyState() {\n if (!editorRef.value) return;\n if (props.disabled || props.readonly) editorRef.value.disable();\n else editorRef.value.enable();\n}\n\nfunction handleCreated(editor: IDomEditor) {\n editorRef.value = editor;\n syncReadonlyState();\n}\n\nfunction handleChange(editor: IDomEditor) {\n const value = editor.getHtml();\n if (modelValue.value !== value) modelValue.value = value;\n emit('change', value);\n}\n\nfunction clear() {\n if (props.disabled || props.readonly || !editorRef.value) return;\n editorRef.value.clear();\n emit('clear');\n}\n\nfunction focus() { editorRef.value?.focus(); }\nfunction blur() { editorRef.value?.blur(); }\nfunction getHtml() { return editorRef.value?.getHtml() ?? modelValue.value; }\nfunction setHtml(value: string) {\n if (editorRef.value) editorRef.value.setHtml(value);\n else modelValue.value = value;\n}\n\nwatch(() => [props.disabled, props.readonly], syncReadonlyState);\nonBeforeUnmount(() => editorRef.value?.destroy());\n\ndefineOptions({ name: 'RichText', inheritAttrs: false });\ndefineExpose({ blur, clear, focus, getHtml, setHtml });\n</script>\n","<template>\n <QueryForm class=\"tt-search-filter\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.actions\" #actions>\n <slot name=\"actions\" />\n </template>\n </QueryForm>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue';\nimport QueryForm from '../QueryForm';\n\nconst slots = useSlots();\n\ndefineOptions({\n name: 'SearchFilter',\n});\n</script>\n","<template>\n <ElSelect\n ref=\"selectRef\"\n v-model=\"modelValue\"\n class=\"tt-select\"\n :popper-class=\"mergedPopperClass\"\n v-bind=\"selectAttrs\"\n @change=\"emit('change', $event)\"\n >\n <template v-if=\"searchable\" #header>\n <div class=\"tt-select__search\">\n <ElInput v-model=\"searchQuery\" clearable placeholder=\"搜索选项\" @click.stop />\n </div>\n </template>\n\n <slot v-if=\"$slots.default\" />\n <template v-else>\n <template v-for=\"option in filteredOptions\" :key=\"getOptionKey(option)\">\n <ElOption\n v-if=\"isSelectOption(option)\"\n :label=\"option.label\"\n :value=\"option.value\"\n :disabled=\"option.disabled\"\n />\n <ElOptionGroup\n v-else\n :label=\"option.label\"\n :disabled=\"option.disabled\"\n >\n <ElOption\n v-for=\"child in option.options\"\n :key=\"getOptionKey(child)\"\n :label=\"child.label\"\n :value=\"child.value\"\n :disabled=\"child.disabled\"\n />\n </ElOptionGroup>\n </template>\n </template>\n\n <template v-if=\"$slots.footer || useSelectAll\" #footer>\n <div class=\"tt-select__footer\" @mouseenter=\"clearHoveringOption\">\n <slot name=\"footer\" />\n <div v-if=\"useSelectAll\" class=\"tt-select__select-all\" @mousedown.stop @click.stop>\n <ElCheckbox\n :model-value=\"allSelected\"\n :indeterminate=\"isIndeterminate\"\n :disabled=\"selectableOptionValues.length === 0\"\n @update:model-value=\"toggleSelectAll\"\n >\n 全选\n </ElCheckbox>\n </div>\n </div>\n </template>\n </ElSelect>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs } from 'vue';\nimport { ElCheckbox, ElInput, ElOption, ElOptionGroup, ElSelect } from 'element-plus';\nimport type { SelectInstance, SelectProps } from 'element-plus';\n\nexport type SelectValue = string | number | boolean;\n\nexport interface SelectOption {\n label: string;\n value: SelectValue;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup {\n label: string;\n options: SelectOption[];\n disabled?: boolean;\n}\n\nexport type SelectOptionItem = SelectOption | SelectOptionGroup;\n\nconst props = withDefaults(defineProps<{\n /** 多选时在下拉面板底部显示全选操作。 */\n showSelectAll?: boolean;\n /** 使用 TT 自定义下拉搜索头;Element Plus 原生 `filterable` 仍可通过属性透传。 */\n searchable?: boolean;\n /** 无默认插槽内容时渲染的选项列表。 */\n options?: SelectOptionItem[];\n popperClass?: string;\n} & Partial<Pick<SelectProps, 'placeholder' | 'multiple' | 'clearable'>>>(), {\n showSelectAll: false,\n searchable: false,\n options: () => [],\n popperClass: '',\n});\nconst emit = defineEmits<{ change: [value: SelectValue | SelectValue[] | undefined] }>();\nconst attrs = useAttrs();\nconst modelValue = defineModel<SelectValue | SelectValue[]>();\nconst selectRef = ref<SelectInstance>();\nconst searchQuery = ref('');\nconst searchable = computed(() => props.searchable === true);\n\nconst selectAttrs = computed(() => {\n const { popperClass: _popperClass, options: _options, searchable: _searchable, ...rest } = attrs;\n // placeholder/multiple/clearable 已声明为 props,需显式回传给 ElSelect\n return {\n ...rest,\n placeholder: props.placeholder,\n multiple: props.multiple,\n clearable: props.clearable,\n };\n});\nconst mergedPopperClass = computed(() => ['tt-select-popper', props.popperClass, attrs.popperClass].filter(Boolean).join(' '));\nconst filteredOptions = computed<SelectOptionItem[]>(() => {\n const keyword = searchQuery.value.trim().toLocaleLowerCase();\n if (!keyword) {\n return props.options;\n }\n\n return props.options.flatMap<SelectOptionItem>(option => {\n if (isSelectOption(option)) {\n return option.label.toLocaleLowerCase().includes(keyword) ? [option] : [];\n }\n\n const children = option.options.filter(child => child.label.toLocaleLowerCase().includes(keyword));\n return children.length > 0 ? [{ ...option, options: children }] : [];\n });\n});\nconst isMultiple = computed(() => props.multiple === true);\nconst useSelectAll = computed(() => props.showSelectAll && isMultiple.value);\nconst selectedValues = computed(() => modelValue.value === undefined || modelValue.value === null\n ? [] as SelectValue[]\n : (Array.isArray(modelValue.value) ? modelValue.value : [modelValue.value]));\nconst selectableOptionValues = computed(() => collectSelectableValues(props.options));\nconst allSelected = computed(() => selectableOptionValues.value.length > 0\n && selectableOptionValues.value.every(value => selectedValues.value.includes(value)));\nconst isIndeterminate = computed(() => !allSelected.value\n && selectableOptionValues.value.some(value => selectedValues.value.includes(value)));\n\nfunction collectSelectableValues(options: unknown): SelectValue[] {\n if (!Array.isArray(options)) {\n return [];\n }\n\n return options.flatMap(option => {\n if (isSelectOption(option)) {\n return option.disabled ? [] : [option.value];\n }\n\n return option.disabled ? [] : collectSelectableValues(option.options);\n });\n}\n\nfunction isSelectOption(option: unknown): option is SelectOption {\n if (!option || typeof option !== 'object') {\n return false;\n }\n\n const record = option as Record<string, unknown>;\n return 'value' in record && !Array.isArray(record.options);\n}\n\nfunction getOptionKey(option: SelectOptionItem | SelectOption) {\n if (isSelectOption(option)) {\n return `option-${typeof option.value}-${String(option.value)}`;\n }\n\n return `group-${option.label}`;\n}\n\nfunction clearHoveringOption() {\n const select = selectRef.value as SelectInstance & { states?: { hoveringIndex: number } };\n if (select?.states) {\n select.states.hoveringIndex = -1;\n }\n}\n\nfunction toggleSelectAll() {\n const nextValue = allSelected.value ? [] : [...selectableOptionValues.value];\n modelValue.value = nextValue;\n emit('change', nextValue);\n}\n\nfunction focus() {\n return selectRef.value?.focus();\n}\n\nfunction blur() {\n return selectRef.value?.blur();\n}\n\ndefineOptions({\n name: 'Select',\n inheritAttrs: false,\n});\n\ndefineExpose({\n selectRef,\n focus,\n blur,\n});\n</script>\n","<template>\n <ElSegmented ref=\"segmentedRef\" v-model=\"modelValue\" class=\"tt-segmented\" v-bind=\"$attrs\">\n <template v-if=\"slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n </ElSegmented>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElSegmented } from 'element-plus';\n\nexport type SegmentedValue = string | number | boolean;\n\nconst slots = useSlots();\nconst modelValue = defineModel<SegmentedValue>();\nconst segmentedRef = ref<unknown>();\n\ndefineOptions({\n name: 'Segmented',\n});\n\ndefineExpose({\n segmentedRef,\n});\n</script>\n","<template>\n <ElSkeleton ref=\"skeletonRef\" class=\"tt-skeleton\" v-bind=\"$attrs\">\n <template v-if=\"slots.template\" #template>\n <slot name=\"template\" />\n </template>\n <template v-if=\"slots.default\" #default>\n <slot />\n </template>\n </ElSkeleton>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElSkeleton } from 'element-plus';\n\nconst slots = useSlots();\nconst skeletonRef = ref<InstanceType<typeof ElSkeleton>>();\n\ndefineOptions({\n name: 'Skeleton',\n});\n\ndefineExpose({\n skeletonRef,\n});\n</script>\n","<template>\n <ElSkeletonItem ref=\"skeletonItemRef\" class=\"tt-skeleton-item\" v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElSkeletonItem } from 'element-plus';\n\nconst skeletonItemRef = ref<InstanceType<typeof ElSkeletonItem>>();\n\ndefineOptions({\n name: 'SkeletonItem',\n});\n\ndefineExpose({\n skeletonItemRef,\n});\n</script>\n","<template>\n <ElSpace ref=\"spaceRef\" class=\"tt-space\" v-bind=\"$attrs\">\n <slot />\n </ElSpace>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElSpace } from 'element-plus';\n\nconst spaceRef = ref<InstanceType<typeof ElSpace>>();\n\ndefineOptions({\n name: 'Space',\n});\n\ndefineExpose({\n spaceRef,\n});\n</script>\n","<template>\n <div class=\"tt-space-compact\" :class=\"compactClass\" v-bind=\"$attrs\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nexport type SpaceCompactDirection = 'horizontal' | 'vertical';\nexport type SpaceCompactSize = 'small' | 'default' | 'large' | number;\n\nconst props = withDefaults(\n defineProps<{\n block?: boolean;\n direction?: SpaceCompactDirection;\n size?: SpaceCompactSize;\n }>(),\n {\n block: false,\n direction: 'horizontal',\n size: undefined,\n },\n);\n\nconst compactClass = computed(() => [\n `tt-space-compact-${props.direction}`,\n props.size && `tt-space-compact-${props.size}`,\n props.block && 'tt-space-compact-block',\n]);\n\ndefineOptions({\n name: 'SpaceCompact',\n});\n</script>\n","import Space from './Space.vue';\nimport SpaceCompact from './SpaceCompact.vue';\n\nexport type { SpaceCompactDirection, SpaceCompactSize } from './SpaceCompact.vue';\nexport { SpaceCompact };\nexport default Object.assign(Space, { Compact: SpaceCompact });\n","<template>\n <ElSplitter ref=\"splitterRef\" class=\"tt-splitter\" v-bind=\"$attrs\">\n <slot />\n </ElSplitter>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElSplitter } from 'element-plus';\n\nconst splitterRef = ref<InstanceType<typeof ElSplitter>>();\n\ndefineOptions({\n name: 'Splitter',\n});\n\ndefineExpose({\n splitterRef,\n});\n</script>\n","<template>\n <ElSplitterPanel ref=\"splitterPanelRef\" class=\"tt-splitter-panel\" v-bind=\"$attrs\">\n <slot />\n </ElSplitterPanel>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElSplitterPanel } from 'element-plus';\n\nconst splitterPanelRef = ref<InstanceType<typeof ElSplitterPanel>>();\n\ndefineOptions({\n name: 'SplitterPanel',\n});\n\ndefineExpose({\n splitterPanelRef,\n});\n</script>\n","<template>\n <ElStatistic ref=\"statisticRef\" class=\"tt-statistic\" v-bind=\"$attrs\">\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-if=\"slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n </ElStatistic>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElStatistic } from 'element-plus';\n\nconst slots = useSlots();\nconst statisticRef = ref<InstanceType<typeof ElStatistic>>();\n\ndefineOptions({\n name: 'Statistic',\n});\n\ndefineExpose({\n statisticRef,\n});\n</script>\n","<template>\n <div class=\"tt-spin\" :class=\"spinClass\" :aria-busy=\"visibleSpinning\">\n <div v-if=\"visibleSpinning\" class=\"tt-spin__indicator\" role=\"status\" :aria-label=\"text || '加载中'\">\n <i v-for=\"dot in 4\" :key=\"dot\" class=\"tt-spin__dot\" />\n </div>\n <span v-if=\"visibleSpinning && text\" class=\"tt-spin__text\">{{ text }}</span>\n <div v-if=\"slots.default\" class=\"tt-spin__content\" :class=\"{ 'is-blur': visibleSpinning }\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, useSlots, watch } from 'vue';\n\nexport type SpinSize = 'small' | 'default' | 'large';\n\nconst props = withDefaults(\n defineProps<{\n spinning?: boolean;\n text?: string;\n size?: SpinSize;\n delay?: number;\n }>(),\n {\n spinning: true,\n size: 'default',\n delay: 0,\n },\n);\n\nconst slots = useSlots();\nconst visibleSpinning = ref(false);\nlet delayTimer: ReturnType<typeof setTimeout> | undefined;\n\nwatch(\n () => [props.spinning, props.delay] as const,\n ([spinning, delay]) => {\n if (delayTimer) {\n clearTimeout(delayTimer);\n delayTimer = undefined;\n }\n\n if (!spinning) {\n visibleSpinning.value = false;\n return;\n }\n\n if (delay > 0) {\n delayTimer = setTimeout(() => {\n visibleSpinning.value = true;\n }, delay);\n return;\n }\n\n visibleSpinning.value = true;\n },\n {\n immediate: true,\n },\n);\n\nonBeforeUnmount(() => {\n if (delayTimer) {\n clearTimeout(delayTimer);\n }\n});\n\nconst spinClass = computed(() => ({\n [`tt-spin--${props.size}`]: props.size !== 'default',\n 'tt-spin--nested': Boolean(slots.default),\n 'is-spinning': visibleSpinning.value,\n}));\n\ndefineOptions({\n name: 'Spin',\n});\n</script>\n","<template>\n <div class=\"tt-loading\" v-bind=\"$attrs\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: 'Loading',\n inheritAttrs: false,\n});\n</script>\n","<template>\n <ElSwitch ref=\"switchRef\" v-model=\"modelValue\" class=\"tt-switch\" v-bind=\"$attrs\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElSwitch } from 'element-plus';\n\nexport type SwitchValue = string | number | boolean;\n\ndefineOptions({\n name: 'Switch',\n});\n\nconst modelValue = defineModel<SwitchValue>();\nconst switchRef = ref<InstanceType<typeof ElSwitch>>();\n\nfunction focus() {\n return switchRef.value?.focus();\n}\n\ndefineExpose({\n switchRef,\n focus,\n});\n</script>\n","<template>\n <ElTable ref=\"tableRef\" class=\"tt-table\" :data=\"props.data\" :stripe=\"props.stripe\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n </ElTable>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElTable } from 'element-plus';\nimport type { TableInstance, TableProps } from 'element-plus';\n\n// 高频透传 props 显式声明以提供组件类型;其余 ElTable 属性继续经 $attrs 透传\nconst props = defineProps<Pick<TableProps, 'data' | 'stripe'>>();\n\nconst slots = useSlots();\nconst tableRef = ref<TableInstance>();\n\nfunction clearSelection() {\n return tableRef.value?.clearSelection();\n}\n\nfunction toggleRowSelection(\n row: Parameters<TableInstance['toggleRowSelection']>[0],\n selected?: Parameters<TableInstance['toggleRowSelection']>[1],\n ignoreSelectable?: Parameters<TableInstance['toggleRowSelection']>[2]\n) {\n return tableRef.value?.toggleRowSelection(row, selected, ignoreSelectable);\n}\n\nfunction toggleAllSelection() {\n return tableRef.value?.toggleAllSelection();\n}\n\nfunction toggleRowExpansion(row: unknown, expanded?: boolean) {\n return tableRef.value?.toggleRowExpansion(row as never, expanded);\n}\n\nfunction setCurrentRow(row?: unknown) {\n return tableRef.value?.setCurrentRow(row as never);\n}\n\nfunction clearSort() {\n return tableRef.value?.clearSort();\n}\n\nfunction clearFilter(columnKeys?: Parameters<TableInstance['clearFilter']>[0]) {\n return tableRef.value?.clearFilter(columnKeys);\n}\n\nfunction doLayout() {\n return tableRef.value?.doLayout();\n}\n\nfunction sort(prop: string, order: string) {\n return tableRef.value?.sort(prop, order);\n}\n\ndefineOptions({\n name: 'Table',\n});\n\ndefineExpose({\n tableRef,\n clearSelection,\n toggleRowSelection,\n toggleAllSelection,\n toggleRowExpansion,\n setCurrentRow,\n clearSort,\n clearFilter,\n doLayout,\n sort,\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport { ElTableColumn } from 'element-plus';\n\nfunction normalizeClassName(value: unknown): string {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map(normalizeClassName).filter(Boolean).join(' ');\n }\n\n if (typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>)\n .filter(([, active]) => Boolean(active))\n .map(([name]) => name)\n .join(' ');\n }\n\n return '';\n}\n\nexport default defineComponent({\n name: 'TableColumn',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n const { className, 'class-name': kebabClassName, ...columnAttrs } = attrs as Record<string, unknown>;\n const mergedClassName = normalizeClassName(['tt-table-column', className, kebabClassName]);\n\n return h(\n ElTableColumn,\n {\n ...columnAttrs,\n className: mergedClassName,\n },\n {\n ...(slots.default ? { default: (scope: unknown) => slots.default?.(scope) } : {}),\n ...(slots.header ? { header: (scope: unknown) => slots.header?.(scope) } : {}),\n }\n );\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport { ElIcon } from 'element-plus';\nimport { Tools } from '@element-plus/icons-vue';\nimport TableColumn from './TableColumn.vue';\n\nfunction normalizeClassName(value: unknown): string {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map(normalizeClassName).filter(Boolean).join(' ');\n }\n\n if (typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>)\n .filter(([, active]) => Boolean(active))\n .map(([name]) => name)\n .join(' ');\n }\n\n return '';\n}\n\nexport default defineComponent({\n name: 'TableOperationColumn',\n inheritAttrs: false,\n props: {\n label: {\n type: String,\n default: '操作',\n },\n showHeaderTools: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['header-tools-click'],\n setup(props, { attrs, emit, slots }) {\n return () => {\n const { className, 'class-name': kebabClassName, label, fixed, ...columnAttrs } = attrs as Record<string, unknown>;\n const columnLabel = label ?? props.label;\n const columnFixed = fixed ?? 'right';\n const mergedClassName = normalizeClassName(['tt-table-operation-column', className, kebabClassName]);\n\n return h(\n TableColumn,\n {\n ...columnAttrs,\n label: columnLabel,\n fixed: columnFixed,\n className: mergedClassName,\n },\n {\n ...(slots.default ? { default: (scope: unknown) => slots.default?.(scope) } : {}),\n header: (scope: unknown) =>\n h('span', { class: 'tt-table-operation-column__header' }, [\n h('span', { class: 'tt-table-operation-column__label' }, slots.header ? slots.header(scope) : String(columnLabel ?? '')),\n props.showHeaderTools\n ? h(\n ElIcon,\n {\n class: 'tt-table-operation-column__tools',\n onClick: (event: MouseEvent) => {\n event.stopPropagation();\n emit('header-tools-click', event);\n },\n },\n () => h(Tools)\n )\n : null,\n ]),\n }\n );\n };\n },\n});\n</script>\n","<template>\n <ElTabs v-model=\"modelValue\" class=\"tt-tabs\" v-bind=\"$attrs\">\n <slot />\n </ElTabs>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElTabs } from 'element-plus';\n\ndefineOptions({\n name: 'Tabs',\n});\n\nconst modelValue = defineModel<string | number>();\n</script>\n","<template>\n <ElTabPane class=\"tt-tab-pane\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.label\" #label>\n <slot name=\"label\" />\n </template>\n </ElTabPane>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSlots } from 'vue';\nimport { ElTabPane } from 'element-plus';\n\ndefineOptions({\n name: 'TabPane',\n});\n\nconst slots = useSlots();\n</script>\n","<template>\n <ElTag ref=\"tagRef\" class=\"tt-tag\" v-bind=\"$attrs\">\n <slot />\n </ElTag>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElTag } from 'element-plus';\n\nconst tagRef = ref<InstanceType<typeof ElTag>>();\n\ndefineOptions({\n name: 'Tag',\n});\n\ndefineExpose({\n tagRef,\n});\n</script>\n","<template>\n <span\n class=\"tt-tag tt-tag-checkable\"\n :class=\"{ 'is-checked': checked }\"\n role=\"checkbox\"\n :aria-checked=\"checked\"\n tabindex=\"0\"\n @click=\"handleClick\"\n @keydown.enter.prevent=\"toggle\"\n @keydown.space.prevent=\"toggle\"\n >\n <slot />\n </span>\n</template>\n\n<script setup lang=\"ts\">\nconst props = withDefaults(\n defineProps<{\n checked?: boolean;\n }>(),\n {\n checked: false,\n },\n);\n\nconst emit = defineEmits<{\n change: [checked: boolean];\n click: [event: MouseEvent];\n}>();\n\nfunction toggle() {\n emit('change', !props.checked);\n}\n\nfunction handleClick(event: MouseEvent) {\n toggle();\n emit('click', event);\n}\n\ndefineOptions({\n name: 'CheckableTag',\n});\n</script>\n","import Tag from './Tag.vue';\nimport CheckableTag from './CheckableTag.vue';\n\nexport { CheckableTag };\nexport default Object.assign(Tag, { CheckableTag });\n","<template>\n <ElTimePicker\n ref=\"timePickerRef\"\n v-model=\"modelValue\"\n class=\"tt-timepicker\"\n :popper-class=\"mergedPopperClass\"\n v-bind=\"timePickerAttrs\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useAttrs } from 'vue';\nimport { ElTimePicker } from 'element-plus';\n\ntype TimePickerSingleValue = string | number | Date;\n\nexport type TimePickerValue = TimePickerSingleValue | string[] | number[] | Date[] | null;\n\nconst attrs = useAttrs();\nconst modelValue = defineModel<TimePickerValue>();\nconst timePickerRef = ref<InstanceType<typeof ElTimePicker>>();\nconst mergedPopperClass = computed(() => ['tt-picker-dropdown', attrs.popperClass].filter(Boolean).join(' '));\nconst timePickerAttrs = computed(() => {\n const { popperClass: _popperClass, ...rest } = attrs;\n return rest;\n});\n\nfunction focus() {\n return (timePickerRef.value as any)?.focus?.();\n}\n\nfunction blur() {\n return (timePickerRef.value as any)?.blur?.();\n}\n\ndefineOptions({\n name: 'TimePicker',\n inheritAttrs: false,\n});\n\ndefineExpose({\n timePickerRef,\n focus,\n blur,\n});\n</script>\n","<template>\n <ElTooltip :popper-class=\"mergedPopperClass\" v-bind=\"$attrs\">\n <slot />\n <template v-if=\"slots.content\" #content>\n <slot name=\"content\" />\n </template>\n </ElTooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\nimport { ElTooltip } from 'element-plus';\n\nconst props = withDefaults(\n defineProps<{\n popperClass?: string;\n }>(),\n {\n popperClass: '',\n }\n);\n\nconst slots = useSlots();\nconst mergedPopperClass = computed(() => ['tt-tooltip', props.popperClass].filter(Boolean).join(' '));\n\ndefineOptions({\n name: 'Tooltip',\n});\n</script>\n","<template>\n <div class=\"tt-topic-switch\" role=\"group\" :aria-label=\"ariaLabel\" :style=\"switchStyle\">\n <Button\n v-for=\"option in options\"\n :key=\"String(option.value)\"\n class=\"tt-topic-switch__button\"\n :class=\"{ 'tt-topic-switch__button--active': option.value === modelValue }\"\n native-type=\"button\"\n text\n :disabled=\"option.disabled\"\n @click=\"handleSelect(option)\"\n >\n <slot name=\"option\" :option=\"option\" :active=\"option.value === modelValue\">\n {{ option.label }}\n </slot>\n </Button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport Button from '../Button';\n\nexport type TopicSwitchValue = string | number;\n\nexport interface TopicSwitchOption {\n label: string;\n value: TopicSwitchValue;\n disabled?: boolean;\n}\n\nconst props = withDefaults(defineProps<{\n options: TopicSwitchOption[];\n ariaLabel?: string;\n}>(), {\n ariaLabel: '专题切换',\n});\n\nconst modelValue = defineModel<TopicSwitchValue>();\nconst activeIndex = computed(() => Math.max(props.options.findIndex(option => option.value === modelValue.value), 0));\nconst switchStyle = computed<CSSProperties>(() => ({\n '--tt-topic-switch-count': String(Math.max(props.options.length, 1)),\n '--tt-topic-switch-active-index': String(activeIndex.value),\n}) as CSSProperties);\nconst emit = defineEmits<{\n change: [value: TopicSwitchValue, option: TopicSwitchOption];\n}>();\n\ndefineOptions({\n name: 'TopicSwitch',\n});\n\nfunction handleSelect(option: TopicSwitchOption) {\n if (option.disabled || option.value === modelValue.value) {\n return;\n }\n\n modelValue.value = option.value;\n emit('change', option.value, option);\n}\n</script>\n","<template>\n <ElTour ref=\"tourRef\" class=\"tt-tour\" v-bind=\"$attrs\">\n <slot />\n </ElTour>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElTour } from 'element-plus';\n\nconst tourRef = ref<InstanceType<typeof ElTour>>();\n\ndefineOptions({\n name: 'Tour',\n});\n\ndefineExpose({\n tourRef,\n});\n</script>\n","<template>\n <ElTransfer ref=\"transferRef\" v-model=\"modelValue\" class=\"tt-transfer\" v-bind=\"$attrs\">\n <template v-if=\"slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n <template v-if=\"slots.leftFooter\" #left-footer>\n <slot name=\"leftFooter\" />\n </template>\n <template v-if=\"slots.rightFooter\" #right-footer>\n <slot name=\"rightFooter\" />\n </template>\n </ElTransfer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElTransfer } from 'element-plus';\n\nexport type TransferKey = string | number;\nexport type TransferModelValue = TransferKey[];\n\nconst slots = useSlots();\nconst modelValue = defineModel<TransferModelValue>({ default: () => [] });\nconst transferRef = ref<unknown>();\n\ndefineOptions({\n name: 'Transfer',\n});\n\ndefineExpose({\n transferRef,\n});\n</script>\n","<template>\n <ElTree ref=\"treeRef\" class=\"tt-tree\" v-bind=\"$attrs\">\n <template v-if=\"slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n </ElTree>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElTree } from 'element-plus';\n\nexport type TreeValue = string | number;\n\nexport interface TreeOption {\n label?: string;\n value?: TreeValue;\n id?: TreeValue;\n disabled?: boolean;\n children?: TreeOption[];\n [key: string]: unknown;\n}\n\nconst slots = useSlots();\nconst treeRef = ref<InstanceType<typeof ElTree>>();\n\nfunction filter(...args: unknown[]) {\n return (treeRef.value as any)?.filter(...args);\n}\n\nfunction getCheckedNodes(...args: unknown[]) {\n return (treeRef.value as any)?.getCheckedNodes(...args);\n}\n\nfunction getCheckedKeys(...args: unknown[]) {\n return (treeRef.value as any)?.getCheckedKeys(...args);\n}\n\nfunction setCheckedKeys(...args: unknown[]) {\n return (treeRef.value as any)?.setCheckedKeys(...args);\n}\n\nfunction setChecked(...args: unknown[]) {\n return (treeRef.value as any)?.setChecked(...args);\n}\n\nfunction setCheckedNodes(...args: unknown[]) {\n return (treeRef.value as any)?.setCheckedNodes(...args);\n}\n\nfunction getCurrentNode(...args: unknown[]) {\n return (treeRef.value as any)?.getCurrentNode(...args);\n}\n\nfunction getCurrentKey(...args: unknown[]) {\n return (treeRef.value as any)?.getCurrentKey(...args);\n}\n\nfunction setCurrentKey(...args: unknown[]) {\n return (treeRef.value as any)?.setCurrentKey(...args);\n}\n\nfunction updateKeyChildren(...args: unknown[]) {\n return (treeRef.value as any)?.updateKeyChildren(...args);\n}\n\ndefineOptions({\n name: 'Tree',\n});\n\ndefineExpose({\n treeRef,\n filter,\n getCheckedNodes,\n getCheckedKeys,\n setCheckedKeys,\n setChecked,\n setCheckedNodes,\n getCurrentNode,\n getCurrentKey,\n setCurrentKey,\n updateKeyChildren,\n});\n</script>\n","<template>\n <ElTreeSelect\n ref=\"treeSelectRef\"\n v-model=\"modelValue\"\n class=\"tt-tree-select\"\n :data=\"resolvedData\"\n :icon=\"ArrowRight\"\n :popper-class=\"mergedPopperClass\"\n v-bind=\"$attrs\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport { ElTreeSelect } from 'element-plus';\nimport { ArrowRight } from '@element-plus/icons-vue';\n\nexport type TreeSelectValue = string | number | boolean;\nexport type TreeSelectModelValue = TreeSelectValue | TreeSelectValue[];\n\nexport interface TreeSelectOption {\n label: string;\n value: TreeSelectValue;\n disabled?: boolean;\n children?: TreeSelectOption[];\n}\n\nconst props = defineProps<{\n data?: TreeSelectOption[];\n treeData?: TreeSelectOption[];\n popperClass?: string;\n}>();\n\nconst modelValue = defineModel<TreeSelectModelValue>();\nconst resolvedData = computed(() => props.treeData ?? props.data ?? []);\nconst mergedPopperClass = computed(() => ['tt-tree-select-dropdown', props.popperClass].filter(Boolean).join(' '));\nconst treeSelectRef = ref<InstanceType<typeof ElTreeSelect>>();\n\nfunction focus() {\n return (treeSelectRef.value as any)?.focus?.();\n}\n\nfunction blur() {\n return (treeSelectRef.value as any)?.blur?.();\n}\n\ndefineOptions({\n name: 'TreeSelect',\n});\n\ndefineExpose({\n treeSelectRef,\n focus,\n blur,\n});\n</script>\n","<template>\n <ElUpload\n ref=\"uploadRef\"\n class=\"tt-upload\"\n :class=\"[`tt-upload--${size}`, { 'tt-upload--meta': showMetaInfo }]\"\n :style=\"uploadStyle\"\n v-bind=\"$attrs\"\n >\n <template #default>\n <slot>\n <ElButton type=\"primary\">点击上传</ElButton>\n </slot>\n </template>\n <template v-if=\"slots.tip\" #tip>\n <slot name=\"tip\" />\n </template>\n <template #file=\"slotProps\">\n <slot name=\"file\" v-bind=\"slotProps\">\n <div class=\"tt-upload-item\" :class=\"[`is-${slotProps.file.status || 'ready'}`, { 'tt-upload-item--meta': showMetaInfo }]\">\n <div class=\"tt-upload-item-icon-section\">\n <span class=\"tt-upload-item-icon\">{{ getFileIcon(slotProps.file) }}</span>\n </div>\n <div class=\"tt-upload-item-content\">\n <div class=\"tt-upload-item-main\">\n <span class=\"tt-upload-item-name\" :title=\"slotProps.file.name\">{{ slotProps.file.name }}</span>\n <span v-if=\"slotProps.file.status === 'uploading'\" class=\"tt-upload-item-status-text\">{{ Math.round(slotProps.file.percentage || 0) }}%</span>\n <span v-else-if=\"slotProps.file.status === 'success'\" class=\"tt-upload-item-status-success-icon\">✓</span>\n <span v-else-if=\"slotProps.file.status === 'fail'\" class=\"tt-upload-item-status-error-icon\">!</span>\n </div>\n <div v-if=\"showMetaInfo\" class=\"tt-upload-item-meta\">\n <span>{{ formatFileSize(slotProps.file.size) }}</span>\n <span class=\"tt-upload-item-separator\">/</span>\n <span>{{ slotProps.file.status === 'fail' ? '上传失败' : slotProps.file.status === 'success' ? '上传成功' : '文件已选择' }}</span>\n </div>\n </div>\n </div>\n </slot>\n </template>\n </ElUpload>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, useSlots } from 'vue';\nimport { ElButton, ElUpload } from 'element-plus';\nimport type { UploadFile, UploadRawFile, UploadStatus } from 'element-plus';\n\nexport type UploadSize = 'large' | 'small';\n\nconst props = withDefaults(\n defineProps<{\n pictureCardWidth?: number;\n showMetaInfo?: boolean;\n size?: UploadSize;\n }>(),\n {\n pictureCardWidth: 60,\n showMetaInfo: false,\n size: 'large',\n }\n);\n\nconst slots = useSlots();\nconst uploadRef = ref<InstanceType<typeof ElUpload>>();\nconst uploadStyle = computed(() => ({\n '--tt-upload-picture-card-width': `${props.pictureCardWidth}px`,\n}));\n\nfunction getFileIcon(file: { name?: string; raw?: { type?: string }; type?: string }) {\n const name = file.name || '';\n const type = file.raw?.type || file.type || '';\n const extension = name.split('.').pop()?.toLowerCase();\n\n if (type.startsWith('image/') || ['png', 'jpg', 'jpeg', 'gif', 'webp'].includes(extension || '')) {\n return 'IMG';\n }\n\n if (['xls', 'xlsx'].includes(extension || '')) {\n return 'XLS';\n }\n\n if (['doc', 'docx'].includes(extension || '')) {\n return 'DOC';\n }\n\n if (extension) {\n return extension.slice(0, 3).toUpperCase();\n }\n\n return 'FILE';\n}\n\nfunction formatFileSize(size?: number) {\n if (!size) {\n return '0B';\n }\n\n if (size < 1024) {\n return `${size}B`;\n }\n\n if (size < 1024 * 1024) {\n return `${(size / 1024).toFixed(2)}kb`;\n }\n\n return `${(size / 1024 / 1024).toFixed(2)}MB`;\n}\n\nfunction submit() {\n return uploadRef.value?.submit();\n}\n\nfunction abort(file?: UploadFile) {\n return uploadRef.value?.abort(file);\n}\n\nfunction clearFiles(states?: UploadStatus[]) {\n return uploadRef.value?.clearFiles(states);\n}\n\nfunction handleStart(rawFile: UploadRawFile) {\n return uploadRef.value?.handleStart(rawFile);\n}\n\nfunction handleRemove(file: UploadFile | UploadRawFile) {\n return uploadRef.value?.handleRemove(file);\n}\n\ndefineOptions({\n name: 'Upload',\n});\n\ndefineExpose({\n uploadRef,\n submit,\n abort,\n clearFiles,\n handleStart,\n handleRemove,\n});\n</script>\n","<template>\n <div class=\"tt-user-display\">\n <Avatar class=\"tt-user-display__avatar\" :size=\"size\" :src=\"avatar\">\n <slot name=\"avatar\">{{ fallbackText }}</slot>\n </Avatar>\n <div class=\"tt-user-display__content\">\n <div class=\"tt-user-display__name\">{{ name }}</div>\n <div v-if=\"description\" class=\"tt-user-display__description\">{{ description }}</div>\n </div>\n <span v-if=\"status\" class=\"tt-user-display__status\">{{ status }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Avatar from '../Avatar';\n\nconst props = withDefaults(\n defineProps<{\n name: string;\n description?: string;\n status?: string;\n avatar?: string;\n size?: number | 'small' | 'default' | 'large';\n }>(),\n {\n size: 36,\n },\n);\n\nconst fallbackText = computed(() => props.name.slice(0, 1).toUpperCase());\n\ndefineOptions({\n name: 'UserDisplay',\n});\n</script>\n","<template>\n <ElWatermark class=\"tt-watermark\" v-bind=\"{ ...props, ...$attrs }\">\n <slot />\n </ElWatermark>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElWatermark } from 'element-plus';\nimport type { WatermarkProps } from 'element-plus';\n\nconst props = defineProps<WatermarkProps>();\n\ndefineOptions({\n name: 'Watermark',\n});\n</script>\n","<template>\n <ElProgress ref=\"progressRef\" class=\"tt-progress\" v-bind=\"$attrs\">\n <slot />\n </ElProgress>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElProgress } from 'element-plus';\n\nconst progressRef = ref<InstanceType<typeof ElProgress>>();\n\ndefineOptions({\n name: 'Progress',\n});\n\ndefineExpose({\n progressRef,\n});\n</script>\n","<template>\n <ElSteps ref=\"stepsRef\" class=\"tt-steps\" v-bind=\"$attrs\">\n <slot />\n </ElSteps>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElSteps } from 'element-plus';\n\nconst stepsRef = ref<InstanceType<typeof ElSteps>>();\n\ndefineOptions({\n name: 'Steps',\n});\n\ndefineExpose({\n stepsRef,\n});\n</script>\n","<template>\n <ElStep ref=\"stepRef\" class=\"tt-step\" v-bind=\"$attrs\">\n <template v-if=\"slots.icon\" #icon>\n <slot name=\"icon\" />\n </template>\n <template v-if=\"slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-if=\"slots.description\" #description>\n <slot name=\"description\" />\n </template>\n </ElStep>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, useSlots } from 'vue';\nimport { ElStep } from 'element-plus';\n\nconst slots = useSlots();\nconst stepRef = ref<InstanceType<typeof ElStep>>();\n\ndefineOptions({\n name: 'Step',\n});\n\ndefineExpose({\n stepRef,\n});\n</script>\n","export type TTThemeMode = 'light' | 'dark' | 'system';\n\nconst THEME_ATTRIBUTE = 'data-tt-theme';\nconst VALID_MODES: readonly TTThemeMode[] = ['light', 'dark', 'system'];\n\nexport function normalizeThemeMode(mode: unknown): TTThemeMode {\n return typeof mode === 'string' && (VALID_MODES as readonly string[]).includes(mode)\n ? mode as TTThemeMode\n : 'light';\n}\n\nexport function applyTheme(mode: TTThemeMode, target?: HTMLElement): TTThemeMode {\n const root = target ?? (typeof document !== 'undefined' ? document.documentElement : undefined);\n const resolvedMode = normalizeThemeMode(mode);\n\n if (root) {\n root.setAttribute(THEME_ATTRIBUTE, resolvedMode);\n }\n\n return resolvedMode;\n}\n\nexport function getTheme(target?: HTMLElement): TTThemeMode {\n const root = target ?? (typeof document !== 'undefined' ? document.documentElement : undefined);\n return normalizeThemeMode(root?.getAttribute(THEME_ATTRIBUTE));\n}\n\nexport function getThemeAttributeName() {\n return THEME_ATTRIBUTE;\n}\n"],"names":["timelineRef","ref","__expose","_openBlock","_createBlock","_unref","_mergeProps","$attrs","_renderSlot","_ctx","slots","useSlots","timelineItemRef","_createSlots","_createElementVNode","_hoisted_1","_createElementBlock","_createVNode","Timeline","_Fragment","_renderList","__props","item","TimelineItem","_hoisted_2","_hoisted_3","_toDisplayString","_hoisted_4","_hoisted_5","alertRef","IMAGE_MIN_SCALE","IMAGE_MAX_SCALE","IMAGE_SCALE_STEP","DEFAULT_OFFICE_PREVIEW_URL","props","emit","__emit","attrs","useAttrs","root","footerExpanded","currentIndex","imageTransform","textPreviewContent","dragState","normalizedFiles","computed","isPreviewMode","currentFile","currentName","_a","currentUrl","safeUrl","previewType","getPreviewType","currentIconText","fileIcon","imageUrl","originImageUrl","officeUrl","getOfficePreviewUrl","isOfficeFile","canNavigate","canPrev","canNext","iconText","imageStyle","watch","files","startFile","startIndex","file","reset","previewMode","visible","_","onCleanup","originalOverflow","type","url","controller","response","getExtension","extension","parsedUrl","fileKey","index","handlePreview","close","handleMaskClick","selectFile","prev","next","updateScale","step","scale","rotateImage","offset","handleImageWheel","event","startImageDrag","handleMouseMove","stopImageDrag","copyCurrentUrl","textarea","handleDownload","handleKeydown","onMounted","onBeforeUnmount","_Teleport","_hoisted_6","_hoisted_7","_hoisted_8","CopyDocument","Download","Close","_hoisted_11","_normalizeClass","_hoisted_15","_hoisted_18","_hoisted_19","ArrowLeft","ArrowRight","_hoisted_23","_cache","$event","ZoomOut","ZoomIn","RefreshLeft","RefreshRight","Refresh","_hoisted_24","ArrowUp","ArrowDown","_hoisted_26","_hoisted_28","_hoisted_30","_hoisted_31","FilePreview","_withModifiers","avatarColors","avatarRef","slotText","node","resolvedColor","avatarClass","badgeLabel","ElTooltip","ElIcon","CircleCloseFilled","avatarGroupRef","badgeRef","backtopRef","breadcrumbRef","breadcrumbItemRef","isBooleanAttr","value","getButtonClass","size","buttonAttrs","buttonClass","cardRef","isMetric","isPanel","isPanelSubtitle","hasHeader","hasCompare","cardClass","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","splitGradientArguments","items","start","depth","gradientAngle","degree","linearCoordinates","angle","radians","horizontal","vertical","toPercent","parseGradient","match","argumentsList","firstArgument","hasDirection","stops","stop","allStops","color","offsetMatch","gradientId","useId","gradientDefinition","iconColor","iconStyle","isComponentIcon","isTextIcon","iconClass","_resolveDynamicComponent","innerValue","selectedValue","getKey","record","key","getTitle","getDescription","isSelected","toggle","selected","Icon","Check","modelValue","_useModel","cascaderAttrs","_popperClass","rest","mergedPopperClass","cascaderProps","useSelectAll","leafPaths","collectLeafPaths","selectedPaths","allSelected","selectedPath","isPathEqual","path","isIndeterminate","cascaderRef","options","parentPath","parentDisabled","option","isCascaderOption","currentPath","disabled","first","second","toggleSelectAll","nextValue","triggerChange","listener","handler","getCheckedNodes","args","togglePopperVisible","_b","focus","blur","$slots","ElCheckbox","calendarRef","_withCtx","slotProps","carouselRef","setActiveItem","carouselItemRef","chartRef","instance","resizeObserver","normalizedHeight","initChart","echarts","bindEvents","setOption","updateLoading","nextTick","eventName","resize","dispatchAction","payload","convertToPixel","convertFromPixel","handleWindowResize","enabled","themeColors","wrapper","resolvedTheme","EChartsWrapper","copied","copiedTimer","colorValue","colorName","colorClass","copyColor","RECENT_COLORS_KEY","initialValue","initialGradient","mode","pureColor","gradientStops","createDefaultStops","selectedStop","colorPickerRef","commonColors","commonGradients","recentColors","loadRecentColors","showIcon","showStatus","showAlpha","colorFormat","predefine","clearable","isDisabled","activeStop","activeStopColor","updateActiveStop","gradientValue","formatGradient","previewValue","displayValue","updateValue","gradient","setMode","nextMode","updates","updateStopPosition","position","addStop","removeStop","selectCommonColor","selectGradient","parsed","selectRecentColor","clear","show","hide","stored","saveRecentColor","ElPopover","ElColorPickerPanel","_normalizeStyle","_hoisted_14","ElInputNumber","_hoisted_16","_hoisted_17","_hoisted_20","_hoisted_22","authorInitial","normalizedActions","action","handleAction","_component_ElContainer","collapseRef","collapseItemRef","pickerType","isRangePicker","nativeShortcuts","datePickerAttrs","_shortcuts","mergedShortcuts","getDefaultQuickActions","datePickerRef","isRange","getRecentRange","addDays","amount","date","unit","end","descriptionsRef","descriptionsItemRef","appendToBody","dialogAttrs","_propAppendToBody","restProps","_appendToBody","dialogRef","dividerRef","drawerAttrs","drawerRef","dropdownRef","mergedPopperOptions","handleOpen","handleClose","emptyRef","componentTag","toCssLength","fallback","buttonStyle","handleClick","tagMap","tagName","fontClass","formRef","formAttrs","validate","validateField","resetFields","clearValidate","scrollToField","formItemAttrs","rowRef","colRef","imageRef","normalizedGap","normalizedSiderWidth","layoutClass","layoutStyle","siderStyle","linkRef","linkClass","underline","inputAttrs","inputRef","select","inputNumberRef","_controls","_style","min","toFiniteNumber","max","isDecreaseDisabled","isIncreaseDisabled","numberValue","decrease","increase","Minus","Plus","messageTypes","normalizeOptions","Message","ElMessage","masonryStyle","hasMinColumnWidth","getItemKey","menuRef","menuClass","open","handleResize","menuItemRef","subMenuRef","numericValue","isNegative","formatValue","formatted","withSymbol","moneyClass","notificationTypes","Notification","ElNotification","paginationAttrs","provinceBriefs","disabledKeyboardKeys","keyboardLayouts","normalize","focused","cursor","keyboardMode","isVirtualPlate","plateLength","availableBriefs","plateColor","resolvePlateColor","colorOptions","resolveColorOptions","popoverVisible","keyboardRows","displayChars","chars","plateClass","length","normalized","focusAt","handlePopoverVisible","nextVisible","insertKey","isKeyboardKeyDisabled","handleKeyboardKey","removeKey","target","selectProvince","brief","oldBriefLength","suffix","handlePaste","pasted","copyValue","currentValue","currentMode","externalColor","legacyType","colorMap","row","rowIndex","queryFormRef","ElButton","dataUrl","altText","qrcodeClass","qrcodeStyle","level","QRCodeLib","rateRef","resultRef","EditorComp","shallowRef","ToolbarComp","mod","markRaw","toolbarKeyMap","editorRef","minHeightValue","editorConfig","toolbarConfig","tool","tools","syncReadonlyState","handleCreated","editor","handleChange","getHtml","setHtml","selectRef","searchQuery","searchable","selectAttrs","_options","_searchable","filteredOptions","keyword","isSelectOption","children","child","isMultiple","selectedValues","selectableOptionValues","collectSelectableValues","getOptionKey","clearHoveringOption","ElOption","ElOptionGroup","ElInput","segmentedRef","skeletonRef","skeletonItemRef","spaceRef","compactClass","index$1","Space","SpaceCompact","splitterRef","splitterPanelRef","statisticRef","visibleSpinning","delayTimer","spinning","delay","spinClass","dot","switchRef","tableRef","clearSelection","toggleRowSelection","ignoreSelectable","toggleAllSelection","toggleRowExpansion","expanded","setCurrentRow","clearSort","clearFilter","columnKeys","doLayout","sort","prop","order","normalizeClassName","active","name","_sfc_main$i","defineComponent","className","kebabClassName","columnAttrs","mergedClassName","h","ElTableColumn","scope","_sfc_main$h","label","fixed","columnLabel","columnFixed","TableColumn","Tools","tagRef","Tag","CheckableTag","timePickerRef","timePickerAttrs","activeIndex","switchStyle","handleSelect","Button","_createTextVNode","tourRef","transferRef","treeRef","filter","getCheckedKeys","setCheckedKeys","setChecked","setCheckedNodes","getCurrentNode","getCurrentKey","setCurrentKey","updateKeyChildren","resolvedData","treeSelectRef","uploadRef","uploadStyle","getFileIcon","formatFileSize","submit","abort","clearFiles","states","handleStart","rawFile","handleRemove","_normalizeProps","_guardReactiveProps","fallbackText","Avatar","ElWatermark","progressRef","stepsRef","stepRef","THEME_ATTRIBUTE","VALID_MODES","normalizeThemeMode","applyTheme","resolvedMode","getTheme","getThemeAttributeName"],"mappings":"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"}