@timus-networks/theme 2.0.16 → 2.2.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 (214) hide show
  1. package/README.md +113 -0
  2. package/dist/module.cjs +5 -0
  3. package/dist/module.d.mts +11 -0
  4. package/dist/module.d.ts +11 -0
  5. package/dist/module.json +9 -0
  6. package/dist/module.mjs +187 -0
  7. package/dist/runtime/components/development/example.alert.vue +29 -0
  8. package/dist/runtime/components/development/example.avatar.vue +85 -0
  9. package/dist/runtime/components/development/example.badge.vue +93 -0
  10. package/dist/runtime/components/development/example.breadcrumb.vue +54 -0
  11. package/dist/runtime/components/development/example.button.vue +235 -0
  12. package/dist/runtime/components/development/example.button.vue.d.ts +11 -0
  13. package/dist/runtime/components/development/example.card.vue +68 -0
  14. package/dist/runtime/components/development/example.checkbox.vue +176 -0
  15. package/dist/runtime/components/development/example.checkbox.vue.d.ts +24 -0
  16. package/dist/runtime/components/development/example.collapse.vue +38 -0
  17. package/dist/runtime/components/development/example.datepicker.vue +193 -0
  18. package/dist/runtime/components/development/example.description.vue +94 -0
  19. package/dist/runtime/components/development/example.dialog.vue +79 -0
  20. package/dist/runtime/components/development/example.dropdown.vue +166 -0
  21. package/dist/runtime/components/development/example.form.vue +488 -0
  22. package/dist/runtime/components/development/example.input.vue +270 -0
  23. package/dist/runtime/components/development/example.input.vue.d.ts +23 -0
  24. package/dist/runtime/components/development/example.link.vue +68 -0
  25. package/dist/runtime/components/development/example.message.vue +64 -0
  26. package/dist/runtime/components/development/example.notification.vue +75 -0
  27. package/dist/runtime/components/development/example.number.vue +70 -0
  28. package/dist/runtime/components/development/example.pagination.vue +89 -0
  29. package/dist/runtime/components/development/example.popover.vue +151 -0
  30. package/dist/runtime/components/development/example.radio.vue +163 -0
  31. package/dist/runtime/components/development/example.radio.vue.d.ts +25 -0
  32. package/dist/runtime/components/development/example.select.vue +588 -0
  33. package/dist/runtime/components/development/example.select.vue.d.ts +70 -0
  34. package/dist/runtime/components/development/example.sidebar.vue +101 -0
  35. package/dist/runtime/components/development/example.static.vue +50 -0
  36. package/dist/runtime/components/development/example.switch.vue +101 -0
  37. package/dist/runtime/components/development/example.table.vue +112 -0
  38. package/dist/runtime/components/development/example.tag.vue +255 -0
  39. package/dist/runtime/components/development/example.timepicker.vue +89 -0
  40. package/dist/runtime/components/development/example.tooltip.vue +104 -0
  41. package/dist/runtime/components/development/example.upload.vue +84 -0
  42. package/dist/runtime/components/production/html-encode.vue +96 -0
  43. package/dist/runtime/components/production/timus-breadcrumb.d.ts +36 -0
  44. package/dist/runtime/components/production/timus-breadcrumb.js +224 -0
  45. package/dist/runtime/components/production/timus-breadcrumb.mjs +224 -0
  46. package/dist/runtime/components/production/timus-breadcrumb.vue +83 -0
  47. package/dist/runtime/components/production/timus-breadcrumb.vue.d.ts +340 -0
  48. package/dist/runtime/composables/useBreadcrumb.d.ts +8 -0
  49. package/dist/runtime/composables/useBreadcrumb.js +53 -0
  50. package/dist/runtime/composables/useBreadcrumb.mjs +53 -0
  51. package/dist/runtime/pages/theme.vue +61 -0
  52. package/dist/runtime/plugins/disable-warnings-plugin.d.ts +2 -0
  53. package/dist/runtime/plugins/disable-warnings-plugin.js +18 -0
  54. package/dist/runtime/plugins/disable-warnings-plugin.mjs +18 -0
  55. package/dist/runtime/plugins/sample-plugin.d.ts +20 -0
  56. package/dist/runtime/plugins/sample-plugin.js +5 -0
  57. package/dist/runtime/plugins/sample-plugin.mjs +5 -0
  58. package/dist/runtime/plugins/theme-provider-plugin.d.ts +30 -0
  59. package/dist/runtime/plugins/theme-provider-plugin.js +46 -0
  60. package/dist/runtime/plugins/theme-provider-plugin.mjs +46 -0
  61. package/dist/runtime/public/scss/element-plus/affix.css +305 -0
  62. package/dist/runtime/public/scss/element-plus/alert.css +516 -0
  63. package/dist/runtime/public/scss/element-plus/anchor-link.css +332 -0
  64. package/dist/runtime/public/scss/element-plus/anchor.css +376 -0
  65. package/dist/runtime/public/scss/element-plus/aside.css +308 -0
  66. package/dist/runtime/public/scss/element-plus/autocomplete.css +411 -0
  67. package/dist/runtime/public/scss/element-plus/avatar.css +370 -0
  68. package/dist/runtime/public/scss/element-plus/backtop.css +326 -0
  69. package/dist/runtime/public/scss/element-plus/badge.css +376 -0
  70. package/dist/runtime/public/scss/element-plus/base.css +550 -0
  71. package/dist/runtime/public/scss/element-plus/breadcrumb-item.css +0 -0
  72. package/dist/runtime/public/scss/element-plus/breadcrumb.css +370 -0
  73. package/dist/runtime/public/scss/element-plus/button-group.css +535 -0
  74. package/dist/runtime/public/scss/element-plus/button.css +1089 -0
  75. package/dist/runtime/public/scss/element-plus/calendar.css +370 -0
  76. package/dist/runtime/public/scss/element-plus/card.css +347 -0
  77. package/dist/runtime/public/scss/element-plus/carousel-item.css +350 -0
  78. package/dist/runtime/public/scss/element-plus/carousel.css +475 -0
  79. package/dist/runtime/public/scss/element-plus/cascader-panel.css +428 -0
  80. package/dist/runtime/public/scss/element-plus/cascader.css +560 -0
  81. package/dist/runtime/public/scss/element-plus/check-tag.css +386 -0
  82. package/dist/runtime/public/scss/element-plus/checkbox-button.css +451 -0
  83. package/dist/runtime/public/scss/element-plus/checkbox-group.css +307 -0
  84. package/dist/runtime/public/scss/element-plus/checkbox.css +588 -0
  85. package/dist/runtime/public/scss/element-plus/col.css +3270 -0
  86. package/dist/runtime/public/scss/element-plus/collapse-item.css +0 -0
  87. package/dist/runtime/public/scss/element-plus/collapse-transition.css +0 -0
  88. package/dist/runtime/public/scss/element-plus/collapse.css +490 -0
  89. package/dist/runtime/public/scss/element-plus/color/index.css +0 -0
  90. package/dist/runtime/public/scss/element-plus/color-picker.css +650 -0
  91. package/dist/runtime/public/scss/element-plus/common/popup.css +338 -0
  92. package/dist/runtime/public/scss/element-plus/common/transition.css +420 -0
  93. package/dist/runtime/public/scss/element-plus/common/var.css +302 -0
  94. package/dist/runtime/public/scss/element-plus/config-provider.css +0 -0
  95. package/dist/runtime/public/scss/element-plus/container.css +313 -0
  96. package/dist/runtime/public/scss/element-plus/dark/css-vars.css +353 -0
  97. package/dist/runtime/public/scss/element-plus/dark/var.css +302 -0
  98. package/dist/runtime/public/scss/element-plus/date-picker/date-picker.css +558 -0
  99. package/dist/runtime/public/scss/element-plus/date-picker/date-range-picker.css +410 -0
  100. package/dist/runtime/public/scss/element-plus/date-picker/date-table.css +426 -0
  101. package/dist/runtime/public/scss/element-plus/date-picker/month-table.css +388 -0
  102. package/dist/runtime/public/scss/element-plus/date-picker/picker-panel.css +454 -0
  103. package/dist/runtime/public/scss/element-plus/date-picker/picker.css +662 -0
  104. package/dist/runtime/public/scss/element-plus/date-picker/time-picker.css +384 -0
  105. package/dist/runtime/public/scss/element-plus/date-picker/time-range-picker.css +338 -0
  106. package/dist/runtime/public/scss/element-plus/date-picker/time-spinner.css +389 -0
  107. package/dist/runtime/public/scss/element-plus/date-picker/year-table.css +384 -0
  108. package/dist/runtime/public/scss/element-plus/date-picker.css +1531 -0
  109. package/dist/runtime/public/scss/element-plus/descriptions-item.css +347 -0
  110. package/dist/runtime/public/scss/element-plus/descriptions.css +435 -0
  111. package/dist/runtime/public/scss/element-plus/dialog.css +512 -0
  112. package/dist/runtime/public/scss/element-plus/display.css +357 -0
  113. package/dist/runtime/public/scss/element-plus/divider.css +345 -0
  114. package/dist/runtime/public/scss/element-plus/drawer.css +419 -0
  115. package/dist/runtime/public/scss/element-plus/dropdown-item.css +0 -0
  116. package/dist/runtime/public/scss/element-plus/dropdown-menu.css +0 -0
  117. package/dist/runtime/public/scss/element-plus/dropdown.css +495 -0
  118. package/dist/runtime/public/scss/element-plus/empty.css +355 -0
  119. package/dist/runtime/public/scss/element-plus/footer.css +310 -0
  120. package/dist/runtime/public/scss/element-plus/form-item.css +0 -0
  121. package/dist/runtime/public/scss/element-plus/form.css +527 -0
  122. package/dist/runtime/public/scss/element-plus/header.css +310 -0
  123. package/dist/runtime/public/scss/element-plus/icon.css +343 -0
  124. package/dist/runtime/public/scss/element-plus/image-viewer.css +439 -0
  125. package/dist/runtime/public/scss/element-plus/image.css +343 -0
  126. package/dist/runtime/public/scss/element-plus/index.css +17293 -0
  127. package/dist/runtime/public/scss/element-plus/infinite-scroll.css +0 -0
  128. package/dist/runtime/public/scss/element-plus/input-number.css +494 -0
  129. package/dist/runtime/public/scss/element-plus/input.css +770 -0
  130. package/dist/runtime/public/scss/element-plus/link.css +453 -0
  131. package/dist/runtime/public/scss/element-plus/loading.css +391 -0
  132. package/dist/runtime/public/scss/element-plus/main.css +311 -0
  133. package/dist/runtime/public/scss/element-plus/mention.css +413 -0
  134. package/dist/runtime/public/scss/element-plus/menu-item-group.css +0 -0
  135. package/dist/runtime/public/scss/element-plus/menu-item.css +0 -0
  136. package/dist/runtime/public/scss/element-plus/menu.css +737 -0
  137. package/dist/runtime/public/scss/element-plus/message-box.css +533 -0
  138. package/dist/runtime/public/scss/element-plus/message.css +528 -0
  139. package/dist/runtime/public/scss/element-plus/mixins/config.css +0 -0
  140. package/dist/runtime/public/scss/element-plus/mixins/function.css +0 -0
  141. package/dist/runtime/public/scss/element-plus/mixins/mixins.css +302 -0
  142. package/dist/runtime/public/scss/element-plus/mixins/utils.css +0 -0
  143. package/dist/runtime/public/scss/element-plus/notification.css +413 -0
  144. package/dist/runtime/public/scss/element-plus/option-group.css +331 -0
  145. package/dist/runtime/public/scss/element-plus/option.css +354 -0
  146. package/dist/runtime/public/scss/element-plus/overlay.css +317 -0
  147. package/dist/runtime/public/scss/element-plus/page-header.css +351 -0
  148. package/dist/runtime/public/scss/element-plus/pagination.css +586 -0
  149. package/dist/runtime/public/scss/element-plus/popconfirm.css +315 -0
  150. package/dist/runtime/public/scss/element-plus/popover.css +352 -0
  151. package/dist/runtime/public/scss/element-plus/popper.css +400 -0
  152. package/dist/runtime/public/scss/element-plus/progress.css +449 -0
  153. package/dist/runtime/public/scss/element-plus/radio-button.css +436 -0
  154. package/dist/runtime/public/scss/element-plus/radio-group.css +308 -0
  155. package/dist/runtime/public/scss/element-plus/radio.css +561 -0
  156. package/dist/runtime/public/scss/element-plus/rate.css +384 -0
  157. package/dist/runtime/public/scss/element-plus/reset.css +399 -0
  158. package/dist/runtime/public/scss/element-plus/result.css +381 -0
  159. package/dist/runtime/public/scss/element-plus/row.css +339 -0
  160. package/dist/runtime/public/scss/element-plus/scrollbar.css +373 -0
  161. package/dist/runtime/public/scss/element-plus/segmented.css +460 -0
  162. package/dist/runtime/public/scss/element-plus/select-dropdown-v2.css +351 -0
  163. package/dist/runtime/public/scss/element-plus/select-dropdown.css +351 -0
  164. package/dist/runtime/public/scss/element-plus/select-v2.css +765 -0
  165. package/dist/runtime/public/scss/element-plus/select.css +765 -0
  166. package/dist/runtime/public/scss/element-plus/skeleton-item.css +372 -0
  167. package/dist/runtime/public/scss/element-plus/skeleton.css +335 -0
  168. package/dist/runtime/public/scss/element-plus/slider.css +480 -0
  169. package/dist/runtime/public/scss/element-plus/space.css +317 -0
  170. package/dist/runtime/public/scss/element-plus/spinner.css +342 -0
  171. package/dist/runtime/public/scss/element-plus/statistic.css +336 -0
  172. package/dist/runtime/public/scss/element-plus/step.css +586 -0
  173. package/dist/runtime/public/scss/element-plus/steps.css +319 -0
  174. package/dist/runtime/public/scss/element-plus/sub-menu.css +0 -0
  175. package/dist/runtime/public/scss/element-plus/switch.css +594 -0
  176. package/dist/runtime/public/scss/element-plus/tab-pane.css +0 -0
  177. package/dist/runtime/public/scss/element-plus/table-column.css +382 -0
  178. package/dist/runtime/public/scss/element-plus/table-v2.css +520 -0
  179. package/dist/runtime/public/scss/element-plus/table.css +893 -0
  180. package/dist/runtime/public/scss/element-plus/tabs.css +892 -0
  181. package/dist/runtime/public/scss/element-plus/tag.css +624 -0
  182. package/dist/runtime/public/scss/element-plus/text.css +378 -0
  183. package/dist/runtime/public/scss/element-plus/time-picker.css +1023 -0
  184. package/dist/runtime/public/scss/element-plus/time-select.css +946 -0
  185. package/dist/runtime/public/scss/element-plus/timeline-item.css +415 -0
  186. package/dist/runtime/public/scss/element-plus/timeline.css +334 -0
  187. package/dist/runtime/public/scss/element-plus/tooltip-v2.css +410 -0
  188. package/dist/runtime/public/scss/element-plus/tooltip.css +0 -0
  189. package/dist/runtime/public/scss/element-plus/tour.css +461 -0
  190. package/dist/runtime/public/scss/element-plus/transfer.css +497 -0
  191. package/dist/runtime/public/scss/element-plus/tree-select.css +325 -0
  192. package/dist/runtime/public/scss/element-plus/tree.css +538 -0
  193. package/dist/runtime/public/scss/element-plus/upload.css +862 -0
  194. package/dist/runtime/public/scss/element-plus/var.css +389 -0
  195. package/dist/runtime/public/scss/element-plus/virtual-list.css +330 -0
  196. package/dist/runtime/public/scss/theme.css +1268 -0
  197. package/dist/runtime/server/tsconfig.json +6 -0
  198. package/dist/runtime/types.d.ts +31 -0
  199. package/dist/types.d.mts +7 -0
  200. package/dist/types.d.ts +7 -0
  201. package/package.json +35 -12
  202. package/components/TimusIcons.vue +0 -54
  203. package/generate-icon.js +0 -22
  204. package/module.ts +0 -84
  205. package/pages/icons.vue +0 -37
  206. package/plugins/sample-plugin.ts +0 -5
  207. package/public/isax/fonts/iconsax.svg +0 -927
  208. package/public/isax/fonts/iconsax.ttf +0 -0
  209. package/public/isax/fonts/iconsax.woff +0 -0
  210. package/public/isax/icons.json +0 -899
  211. package/public/isax/selection.json +0 -1
  212. package/public/isax/style.css +0 -1
  213. package/public/isax/style.scss +0 -5435
  214. package/public/isax/variables.scss +0 -900
@@ -0,0 +1,89 @@
1
+ <template>
2
+ <div class="flex flex-col gap-8 mb-16">
3
+ <h1 class="">TimePicker</h1>
4
+ <p>Use Time Picker for time input.</p>
5
+
6
+ <el-card>
7
+ <template #header>Arbitrary time picker</template>
8
+ <div class="flex flex-col gap-3">
9
+ <p>
10
+ Can pick an arbitrary time. By default, you can scroll the mouse wheel to pick time, alternatively you can use the control arrows when the
11
+ <el-text tag="mark">arrow-control</el-text> attribute is set.
12
+ </p>
13
+ <section class="flex gap-7.5">
14
+ <el-time-picker v-model="value" placeholder="Arbitrary time" />
15
+ <el-time-picker v-model="value" arrow-control placeholder="Arbitrary time" />
16
+ </section>
17
+ </div>
18
+ <template #footer> <html-encode :tag="snippets.basic" /> </template>
19
+ </el-card>
20
+
21
+ <el-card>
22
+ <template #header>Limit the time range</template>
23
+ <div class="flex flex-col gap-3">
24
+ <p>
25
+ You can also limit the time range. Limit the time range by specifying <el-text tag="mark">disabledHours</el-text> <el-text tag="mark">disabledMinutes</el-text> and
26
+ <el-text tag="mark">disabledSeconds</el-text>.
27
+ </p>
28
+ <section class="flex gap-7.5">
29
+ <el-time-picker v-model="limited" :disabled-hours="disabledHours" :disabled-minutes="disabledMinutes" :disabled-seconds="disabledSeconds" placeholder="Arbitrary time" />
30
+ </section>
31
+ </div>
32
+ <template #footer> <html-encode :tag="snippets.limit" /> </template>
33
+ </el-card>
34
+
35
+ <el-card>
36
+ <template #header>Arbitrary time range</template>
37
+ <div class="flex flex-col gap-3">
38
+ <p>
39
+ Can pick an arbitrary time range. We can pick a time range by adding an <el-text tag="mark">is-range</el-text> attribute. Also,
40
+ <el-text tag="mark">arrow-control</el-text> is supported in range mode.
41
+ </p>
42
+ <section class="flex gap-7.5">
43
+ <el-time-picker v-model="range" is-range range-separator="To" start-placeholder="Start time" end-placeholder="End time" />
44
+ <el-time-picker v-model="range" is-range arrow-control range-separator="To" start-placeholder="Start time" end-placeholder="End time" />
45
+ </section>
46
+ </div>
47
+ <template #footer> <html-encode :tag="snippets.arbitrary" /> </template>
48
+ </el-card>
49
+ </div>
50
+ </template>
51
+
52
+ <script lang="ts" setup>
53
+ import type { GetDisabledMinutes } from 'element-plus';
54
+ import { ref } from 'vue';
55
+
56
+ const value = ref('');
57
+ const range = ref<[Date, Date]>([new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)]);
58
+ const limited = ref(new Date(2016, 9, 10, 18, 30));
59
+ const makeRange = (start: number, end: number) => {
60
+ const result: number[] = [];
61
+
62
+ for (let i = start; i <= end; i++) {
63
+ result.push(i);
64
+ }
65
+
66
+ return result;
67
+ };
68
+ const disabledHours = () => makeRange(0, 16).concat(makeRange(19, 23));
69
+ const disabledMinutes: GetDisabledMinutes = (hour: number) => {
70
+ if (hour === 17) {
71
+ return makeRange(0, 29) as number[];
72
+ }
73
+ if (hour === 18) {
74
+ return makeRange(31, 59) as number[];
75
+ }
76
+
77
+ return [];
78
+ };
79
+ const disabledSeconds = (hour: number, minute: number) => {
80
+ if (hour === 18 && minute === 30) {
81
+ return makeRange(1, 59);
82
+ }
83
+ };
84
+ const snippets = ref({
85
+ basic: `<el-time-picker v-model="value" arrow-control placeholder="Arbitrary time" />`,
86
+ limit: `<el-time-picker v-model="limited" :disabled-hours="disabledHours" :disabled-minutes="disabledMinutes" :disabled-seconds="disabledSeconds" placeholder="Arbitrary time" />`,
87
+ arbitrary: `<el-time-picker v-model="range" is-range arrow-control range-separator="To" start-placeholder="Start time" end-placeholder="End time" />`,
88
+ });
89
+ </script>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div class="flex flex-col gap-8 mb-16">
3
+ <h1 class="">Tooltip</h1>
4
+ <p>Display prompt information for mouse hover.</p>
5
+
6
+ <el-card>
7
+ <template #header> Basic usage </template>
8
+ <div class="flex flex-col gap-3">
9
+ <p>
10
+ Tooltip has 9 placements. Use attribute <el-text tag="mark">content</el-text> to set the display content when hover. The attribute
11
+ <el-text tag="mark"> placement </el-text> determines the position of the tooltip. Its value is <el-text tag="mark">[orientation]-[alignment]</el-text> with four
12
+ orientations <el-text tag="mark">top, left, right, bottom</el-text> and three alignments <el-text tag="mark">start, end, null, and the default</el-text> alignment is
13
+ null. Take <el-text tag="mark">placement="left-end"</el-text> for example, Tooltip will display on the left of the element which you are hovering and the bottom of the
14
+ tooltip aligns with the bottom of the element. attribute for display an image
15
+ </p>
16
+ <section class="flex gap-7.5">
17
+ <div class="flex flex-col items-center gap-4 grow w-[600px]">
18
+ <div class="flex gap-7.5">
19
+ <el-tooltip class="box-item" effect="dark" content="Top Left prompts info" placement="top-start">
20
+ <el-button>top-start</el-button>
21
+ </el-tooltip>
22
+ <el-tooltip class="box-item" effect="dark" content="Top Center prompts info" placement="top">
23
+ <el-button>top</el-button>
24
+ </el-tooltip>
25
+ <el-tooltip class="box-item" effect="dark" content="Top Right prompts info" placement="top-end">
26
+ <el-button>top-end</el-button>
27
+ </el-tooltip>
28
+ </div>
29
+ <div class="flex gap-7.5">
30
+ <el-tooltip class="box-item" effect="dark" content="Left Top prompts info" placement="left-start">
31
+ <el-button>left-start</el-button>
32
+ </el-tooltip>
33
+ <el-tooltip class="box-item" effect="dark" content="Right Top prompts info" placement="right-start">
34
+ <el-button>right-start</el-button>
35
+ </el-tooltip>
36
+ </div>
37
+ <div class="flex gap-7.5">
38
+ <el-tooltip class="box-item" effect="dark" content="Left Center prompts info" placement="left">
39
+ <el-button>left</el-button>
40
+ </el-tooltip>
41
+ <el-tooltip class="box-item" effect="dark" content="Right Center prompts info" placement="right">
42
+ <el-button>right</el-button>
43
+ </el-tooltip>
44
+ </div>
45
+ <div class="flex gap-7.5">
46
+ <el-tooltip class="box-item" effect="dark" content="Left Bottom prompts info" placement="left-end">
47
+ <el-button>left-end</el-button>
48
+ </el-tooltip>
49
+ <el-tooltip class="box-item" effect="dark" content="Right Bottom prompts info" placement="right-end">
50
+ <el-button>right-end</el-button>
51
+ </el-tooltip>
52
+ </div>
53
+ <div class="flex gap-7.5">
54
+ <el-tooltip class="box-item" effect="dark" content="Bottom Left prompts info" placement="bottom-start">
55
+ <el-button>bottom-start</el-button>
56
+ </el-tooltip>
57
+ <el-tooltip class="box-item" effect="dark" content="Bottom Center prompts info" placement="bottom">
58
+ <el-button>bottom</el-button>
59
+ </el-tooltip>
60
+ <el-tooltip class="box-item" effect="dark" content="Bottom Right prompts info" placement="bottom-end">
61
+ <el-button>bottom-end</el-button>
62
+ </el-tooltip>
63
+ </div>
64
+ </div>
65
+ </section>
66
+ </div>
67
+ <template #footer> <html-encode :tag="snippets.basic" /> </template>
68
+ </el-card>
69
+
70
+ <el-card>
71
+ <template #header> More Content </template>
72
+ <div class="flex flex-col gap-3">
73
+ <p>
74
+ Display multiple lines of text and set their format. Override attribute <el-text tag="mark">content</el-text> of <el-text tag="mark">el-tooltip</el-text> by adding a slot
75
+ named <el-text tag="mark">content</el-text>.
76
+ </p>
77
+ <section class="flex gap-7.5">
78
+ <el-tooltip placement="top">
79
+ <template #content> multiple lines<br />second line </template>
80
+ <el-button>Top center</el-button>
81
+ </el-tooltip>
82
+ </section>
83
+ </div>
84
+ <template #footer> <html-encode :tag="snippets.content" /> </template>
85
+ </el-card>
86
+ </div>
87
+ </template>
88
+
89
+ <script lang="ts" setup>
90
+ import { ref } from 'vue';
91
+
92
+ const snippets = ref({
93
+ basic: `
94
+ <el-tooltip class="box-item" effect="dark" content="Left Bottom prompts info" placement="left-end">
95
+ <el-button>left-end</el-button>
96
+ </el-tooltip>`,
97
+ content: `
98
+ <el-tooltip placement="top">
99
+ <template #content> multiple lines<br />second line </template>
100
+ <el-button>Top center</el-button>
101
+ </el-tooltip>
102
+ `,
103
+ });
104
+ </script>
@@ -0,0 +1,84 @@
1
+ <template>
2
+ <div class="flex flex-col gap-8 mb-16">
3
+ <h1 class="">Upload - (Coding Not Started)</h1>
4
+ <p>Upload files by clicking or drag-and-drop.</p>
5
+
6
+ <el-card>
7
+ <template #header>Basic usage</template>
8
+ <div class="flex flex-col gap-7.5">
9
+ <p>
10
+ Customize upload button type and text using <el-text tag="mark">slot</el-text>. Set <el-text tag="mark">limit</el-text> and <el-text tag="mark">on-exceed</el-text> to
11
+ limit the maximum number of uploads allowed and specify method when the limit is exceeded. Plus, you can abort removing a file in the before-remove hook.
12
+ </p>
13
+ <section class="flex gap-7.5">
14
+ <el-upload
15
+ v-model:file-list="fileList"
16
+ class="upload-demo"
17
+ action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
18
+ multiple
19
+ :on-preview="handlePreview"
20
+ :on-remove="handleRemove"
21
+ :before-remove="beforeRemove"
22
+ :limit="3"
23
+ :on-exceed="handleExceed"
24
+ >
25
+ <el-button type="primary">Click to upload</el-button>
26
+ <template #tip>
27
+ <div class="el-upload__tip">jpg/png files with a size less than 500KB.</div>
28
+ </template>
29
+ </el-upload>
30
+ </section>
31
+ </div>
32
+ <template #footer> <html-encode :tag="snippets.basic" /> </template>
33
+ </el-card>
34
+ </div>
35
+ </template>
36
+
37
+ <script lang="ts" setup>
38
+ import type { UploadProps, UploadUserFile } from 'element-plus';
39
+ import { ElMessage, ElMessageBox } from 'element-plus';
40
+ import { ref } from 'vue';
41
+
42
+ const fileList = ref<UploadUserFile[]>([
43
+ {
44
+ name: 'element-plus-logo.svg',
45
+ url: 'https://element-plus.org/images/element-plus-logo.svg',
46
+ },
47
+ {
48
+ name: 'element-plus-logo2.svg',
49
+ url: 'https://element-plus.org/images/element-plus-logo.svg',
50
+ },
51
+ ]);
52
+ const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => {
53
+ console.log(file, uploadFiles);
54
+ };
55
+ const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
56
+ console.log(uploadFile);
57
+ };
58
+ const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => {
59
+ ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`);
60
+ };
61
+ const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) =>
62
+ ElMessageBox.confirm(`Cancel the transfer of ${uploadFile.name} ?`).then(
63
+ () => true,
64
+ () => false,
65
+ );
66
+ const snippets = ref({
67
+ basic: `<el-upload
68
+ v-model:file-list="fileList"
69
+ class="upload-demo"
70
+ action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
71
+ multiple
72
+ :on-preview="handlePreview"
73
+ :on-remove="handleRemove"
74
+ :before-remove="beforeRemove"
75
+ :limit="3"
76
+ :on-exceed="handleExceed"
77
+ >
78
+ <el-button type="primary">Click to upload</el-button>
79
+ <template #tip>
80
+ <div class="el-upload__tip">jpg/png files with a size less than 500KB.</div>
81
+ </template>
82
+ </el-upload>`,
83
+ });
84
+ </script>
@@ -0,0 +1,96 @@
1
+ <template>
2
+ <div class="code-container">
3
+ <pre>
4
+ <code>
5
+ <span v-for="(line, index) in formattedLines" :key="index" class="line">
6
+ <span class="line-number">{{ index + 1 }}</span>
7
+ <span class="line-content" v-html="line" />
8
+ </span>
9
+ </code>
10
+ </pre>
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import { computed } from 'vue';
16
+
17
+ const props = defineProps<{ tag: string }>();
18
+ const htmlEncode = (str: string): string => {
19
+ const entityMap: { [key: string]: string } = {
20
+ '&': '&amp;',
21
+ '<': '&lt;',
22
+ '>': '&gt;',
23
+ '"': '&quot;',
24
+ "'": '&#39;',
25
+ };
26
+
27
+ return str.replace(/[&<>"']/g, (m: string) => entityMap[m]);
28
+ };
29
+ const formattedLines = computed(() => {
30
+ const lines = props.tag.split('\n');
31
+ const baseIndent = lines.reduce((min, line) => {
32
+ const match = line.match(/^\s*/);
33
+ const indent = match ? match[0].length : 0;
34
+
35
+ return line.trim() ? Math.min(min, indent) : min;
36
+ }, Infinity);
37
+
38
+ return lines
39
+ .filter((line) => line.trim() !== '') // Remove empty lines
40
+ .map((line) => {
41
+ const trimmedLine = line.trim();
42
+ const match = line.match(/^\s*/);
43
+ const lineIndent = match ? match[0].length : 0;
44
+ const indent = Math.max(0, lineIndent - baseIndent);
45
+ const encodedIndent = '&nbsp;'.repeat(indent);
46
+ const encodedLine = htmlEncode(trimmedLine);
47
+
48
+ return encodedIndent + encodedLine;
49
+ });
50
+ });
51
+ </script>
52
+
53
+ <style scoped>
54
+ .code-container {
55
+ background-color: #5e5877;
56
+ border: 2px solid #534e6a;
57
+ border-radius: 4px;
58
+ color: var(--el-color-neutral-light-1);
59
+ overflow-x: auto;
60
+ padding: 8px;
61
+ width: 100%;
62
+ }
63
+
64
+ pre {
65
+ display: flex;
66
+ flex-direction: column;
67
+ margin: 0;
68
+ }
69
+
70
+ code {
71
+ display: flex;
72
+ flex-direction: column;
73
+ font-family: monospace;
74
+ font-size: 12px;
75
+ }
76
+
77
+ .line {
78
+ display: flex;
79
+ line-height: 20px;
80
+ white-space: pre;
81
+ }
82
+
83
+ .line-number {
84
+ color: #888888;
85
+ display: inline-block;
86
+ margin-right: 10px;
87
+ min-width: 30px;
88
+ text-align: right;
89
+ user-select: none;
90
+ width: 30px;
91
+ }
92
+
93
+ .line-content {
94
+ flex: 1;
95
+ }
96
+ </style>
@@ -0,0 +1,36 @@
1
+ export declare const path: ({
2
+ regex: RegExp;
3
+ label: string;
4
+ path?: undefined;
5
+ hidden?: undefined;
6
+ deep?: undefined;
7
+ parameter?: undefined;
8
+ } | {
9
+ regex: RegExp;
10
+ label: string;
11
+ path: string;
12
+ hidden?: undefined;
13
+ deep?: undefined;
14
+ parameter?: undefined;
15
+ } | {
16
+ regex: RegExp;
17
+ label: string;
18
+ hidden: boolean;
19
+ path?: undefined;
20
+ deep?: undefined;
21
+ parameter?: undefined;
22
+ } | {
23
+ regex: RegExp;
24
+ hidden: boolean;
25
+ label?: undefined;
26
+ path?: undefined;
27
+ deep?: undefined;
28
+ parameter?: undefined;
29
+ } | {
30
+ regex: RegExp;
31
+ label: string;
32
+ path: string;
33
+ deep: boolean;
34
+ parameter: string;
35
+ hidden?: undefined;
36
+ })[];
@@ -0,0 +1,224 @@
1
+ export const path = [
2
+ /* Users */
3
+ {
4
+ regex: /^\/about$/,
5
+ label: "header.about.text"
6
+ },
7
+ {
8
+ regex: /^\/users$/,
9
+ label: "header.users.text",
10
+ path: "/users?tab=users"
11
+ },
12
+ {
13
+ regex: /^\/users\/(\d+)/,
14
+ label: "header.users.detail.text"
15
+ },
16
+ {
17
+ regex: /^\/teams/,
18
+ label: "header.teams.text",
19
+ path: "/users?tab=teams"
20
+ },
21
+ {
22
+ regex: /^\/teams\/(\d+)/,
23
+ label: "header.teams.detail.text"
24
+ },
25
+ /* Devices */
26
+ {
27
+ regex: /^\/devices\/telemetry\/([A-Za-z0-9\-_]+)/,
28
+ label: "header.devices.detail.text",
29
+ hidden: true
30
+ },
31
+ {
32
+ regex: /^\/devices\/(?![telemetry])([A-Za-z0-9\-_]+)/,
33
+ // regex: /^\/devices\/details(?:\/([A-Za-z0-9\-_]+))?$/,
34
+ label: "header.devices.posture_details.text"
35
+ },
36
+ /* Sites */
37
+ {
38
+ regex: /^\/sites\/(\d+)/,
39
+ label: "header.sites.detail.text"
40
+ },
41
+ /* Sites Custom Port */
42
+ {
43
+ regex: /^\/sites\/([^/]+)\/custom-ports/,
44
+ label: "header.sites.custom_ports.text"
45
+ },
46
+ /* Rules */
47
+ {
48
+ regex: /^\/rules$/,
49
+ label: "header.rules.text",
50
+ path: "/rules/firewall"
51
+ },
52
+ {
53
+ regex: /^\/rules\/firewall\/create/,
54
+ label: "header.rules.firewall.create.text"
55
+ },
56
+ {
57
+ regex: /^\/rules\/firewall\/(?!create)([A-Za-z0-9\-_]+)/,
58
+ label: "header.rules.firewall.detail.text"
59
+ },
60
+ {
61
+ regex: /^\/rules\/forwarding\/(?!create)([A-Za-z0-9\-_]+)/,
62
+ label: "header.rules.forwarding.detail.text"
63
+ },
64
+ {
65
+ regex: /^\/rules\/acls\/([A-Za-z0-9\-_]+)/,
66
+ label: "header.rules.acls.edit.text"
67
+ },
68
+ /* Ztna - Zero Trust Security */
69
+ {
70
+ regex: /^\/ztna$/,
71
+ label: "header.ztna.text",
72
+ path: "/ztna/dashboard"
73
+ },
74
+ {
75
+ regex: /^\/ztna\/device-posture-check\/(view|edit)$/,
76
+ hidden: true
77
+ },
78
+ {
79
+ regex: /^\/ztna\/device-posture-check\/view\/([A-Za-z0-9\-_]+)/,
80
+ label: "header.ztna.device-posture-check.view.text"
81
+ },
82
+ {
83
+ regex: /^\/ztna\/device-posture-check\/edit\/([A-Za-z0-9\-_]+)/,
84
+ label: "header.ztna.device-posture-check.edit.text"
85
+ },
86
+ /* Insights */
87
+ {
88
+ regex: /^\/insights$/,
89
+ // /insights ya da /insights/alerts ikisinden biri yeterli
90
+ label: "header.insights.text",
91
+ path: "/insights/alerts?tab=alerts&page=1"
92
+ },
93
+ {
94
+ regex: /^\/insights(?:\/alerts)$/,
95
+ // /insights ya da /insights/alerts ikisinden biri yeterli
96
+ label: "header.insights.alerts.text",
97
+ path: "/insights/alerts?tab=alerts&page=1"
98
+ },
99
+ {
100
+ regex: /^\/insights(?:\/traffic)$/,
101
+ // /insights ya da /insights/alerts ikisinden biri yeterli
102
+ label: "header.insights.traffic.text",
103
+ path: "/insights/traffic?tab=log&page=1"
104
+ },
105
+ {
106
+ regex: /^\/insights(?:\/events)$/,
107
+ // /insights ya da /insights/events ikisinden biri yeterli
108
+ label: "header.insights.events.text",
109
+ path: "/insights/events?tab=user&page=1"
110
+ },
111
+ {
112
+ regex: /^\/insights\/reports\/(?!templates)([A-Za-z0-9\-_]+)/,
113
+ label: "header.insights.tracker.reports.detail.text"
114
+ },
115
+ {
116
+ regex: /^\/insights\/reports\/templates$/,
117
+ label: "header.insights.tracker.reports.templates.text",
118
+ path: "/insights/reports?page=1"
119
+ },
120
+ {
121
+ regex: /^\/insights\/reports\/templates\/([A-Za-z0-9\-_]+)/,
122
+ label: "header.insights.tracker.reports.templates.edit.text"
123
+ },
124
+ {
125
+ regex: /^\/insights\/tracker$/,
126
+ label: "header.insights.tracker.text",
127
+ path: "/insights/tracker?tab=overview"
128
+ },
129
+ {
130
+ regex: /^\/insights\/tracker\/overview$/,
131
+ label: "header.insights.tracker.overview.text",
132
+ path: "/insights/tracker?tab=overview"
133
+ },
134
+ {
135
+ regex: /^\/insights\/tracker\/user(?:s)?$/,
136
+ label: "header.insights.tracker.users.text",
137
+ path: "/insights/tracker?tab=users"
138
+ },
139
+ {
140
+ regex: /^\/insights\/tracker\/team(?:s)?$/,
141
+ label: "header.insights.tracker.teams.text",
142
+ path: "/insights/tracker?tab=teams"
143
+ },
144
+ {
145
+ regex: /^\/insights\/tracker\/application(?:s)?$/,
146
+ label: "header.insights.tracker.applications.text",
147
+ path: "/insights/tracker?tab=applications"
148
+ },
149
+ {
150
+ regex: /^\/insights\/tracker\/user\/([A-Za-z0-9\-_]+)/,
151
+ label: "header.insights.tracker.user.detail.text"
152
+ },
153
+ {
154
+ regex: /^\/insights\/tracker\/team\/([A-Za-z0-9\-_]+)/,
155
+ label: "header.insights.tracker.team.detail.text"
156
+ },
157
+ {
158
+ regex: /^\/insights\/tracker\/application\/([A-Za-z0-9\-_]+)/,
159
+ label: "header.insights.tracker.application.detail.text"
160
+ },
161
+ {
162
+ regex: /^\/insights\/dpc-reports$/,
163
+ // /insights ya da /insights/events ikisinden biri yeterli
164
+ label: "header.insights.dpc-reports.text",
165
+ path: "/insights/dpc-reports?tab=overview"
166
+ },
167
+ {
168
+ regex: /^\/insights\/dpc-reports\/(?!overview|devices|posture_checks)([A-Za-z0-9\-_]+)$/,
169
+ label: "header.insights.dpc-reports.detail.text",
170
+ path: "/insights/dpc-reports?tab=overview"
171
+ },
172
+ {
173
+ regex: /^\/insights\/dpc-reports\/([A-Za-z0-9\-_]+)\/([A-Za-z0-9\-_]+)$/,
174
+ label: "header.insights.dpc-reports.batch_id.detail.text",
175
+ path: "/insights/dpc-reports?tab=overview",
176
+ deep: true,
177
+ parameter: "show"
178
+ },
179
+ {
180
+ regex: /^\/settings$/,
181
+ label: "header.settings.text",
182
+ path: "/settings/integrations"
183
+ },
184
+ {
185
+ regex: /^\/settings\/configuration\/(?:trusted_networks|trusted-networks)$/,
186
+ label: "header.settings.configuration.trusted_networks.text",
187
+ path: "/settings/configuration?tab=trusted_networks"
188
+ },
189
+ {
190
+ regex: /^\/settings\/configuration\/trusted-networks\/(?!create)([A-Za-z0-9\-_]+)$/,
191
+ label: "header.settings.configuration.trusted_networks.edit.text",
192
+ path: "/settings/configuration?tab=trusted_networks"
193
+ },
194
+ {
195
+ regex: /^\/settings\/tags\/new$/,
196
+ label: "header.settings.tags.new.text"
197
+ },
198
+ {
199
+ regex: /^\/settings\/tags\/(?!new)([A-Za-z0-9\-_]+)/,
200
+ label: "header.settings.tags.detail.text"
201
+ },
202
+ {
203
+ regex: /^\/settings\/administrators$/,
204
+ label: "header.settings.administrators.text"
205
+ },
206
+ {
207
+ regex: /^\/settings\/administrators\/roles$/,
208
+ label: "header.settings.administrators.roles.text",
209
+ path: "/settings/administrators?tab=roles"
210
+ },
211
+ {
212
+ regex: /^\/settings\/administrators\/roles\/detail$/,
213
+ label: "header.settings.administrators.roles.create.text"
214
+ },
215
+ {
216
+ regex: /^\/settings\/administrators\/roles\/detail\?id=\d+$/,
217
+ label: "header.settings.administrators.roles.edit.text"
218
+ }
219
+ // {
220
+ // path: 'settings',
221
+ // regex: '/settings/.*',
222
+ // label: 'header.settings.detail.text',
223
+ // },
224
+ ];