vome-core 0.3.69 → 0.3.70

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 (278) hide show
  1. package/dist/admin/components/ui/avatar/Avatar.vue +18 -18
  2. package/dist/admin/components/ui/avatar/AvatarFallback.vue +21 -21
  3. package/dist/admin/components/ui/avatar/AvatarImage.vue +16 -16
  4. package/dist/admin/components/ui/avatar/index.js +1 -1
  5. package/dist/admin/components/ui/badge/Badge.vue +26 -26
  6. package/dist/admin/components/ui/button/Button.vue +31 -31
  7. package/dist/admin/components/ui/button/index.d.ts +1 -1
  8. package/dist/admin/components/ui/checkbox/Checkbox.vue +35 -35
  9. package/dist/admin/components/ui/checkbox/index.js +1 -1
  10. package/dist/admin/components/ui/dialog/Dialog.vue +19 -19
  11. package/dist/admin/components/ui/dialog/DialogClose.vue +15 -15
  12. package/dist/admin/components/ui/dialog/DialogContent.vue +267 -267
  13. package/dist/admin/components/ui/dialog/DialogDescription.vue +23 -23
  14. package/dist/admin/components/ui/dialog/DialogFooter.vue +27 -27
  15. package/dist/admin/components/ui/dialog/DialogHeader.vue +17 -17
  16. package/dist/admin/components/ui/dialog/DialogOverlay.vue +21 -21
  17. package/dist/admin/components/ui/dialog/DialogScrollContent.vue +60 -60
  18. package/dist/admin/components/ui/dialog/DialogTitle.vue +23 -23
  19. package/dist/admin/components/ui/dialog/DialogTrigger.vue +15 -15
  20. package/dist/admin/components/ui/dialog/index.js +1 -1
  21. package/dist/admin/components/ui/dropdown-menu/DropdownMenu.vue +19 -19
  22. package/dist/admin/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -39
  23. package/dist/admin/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -39
  24. package/dist/admin/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -15
  25. package/dist/admin/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -31
  26. package/dist/admin/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -23
  27. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -21
  28. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -40
  29. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -23
  30. package/dist/admin/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -17
  31. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -18
  32. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -27
  33. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -31
  34. package/dist/admin/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -17
  35. package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
  36. package/dist/admin/components/ui/input/Input.vue +183 -183
  37. package/dist/admin/components/ui/input/index.js +1 -1
  38. package/dist/admin/components/ui/label/Label.vue +26 -26
  39. package/dist/admin/components/ui/label/index.js +1 -1
  40. package/dist/admin/components/ui/scroll-area/ScrollArea.vue +33 -33
  41. package/dist/admin/components/ui/scroll-area/ScrollBar.vue +32 -32
  42. package/dist/admin/components/ui/scroll-area/index.js +1 -1
  43. package/dist/admin/components/ui/select/Select.vue +19 -19
  44. package/dist/admin/components/ui/select/SelectContent.vue +51 -51
  45. package/dist/admin/components/ui/select/SelectGroup.vue +15 -15
  46. package/dist/admin/components/ui/select/SelectItem.vue +53 -53
  47. package/dist/admin/components/ui/select/SelectItemText.vue +15 -15
  48. package/dist/admin/components/ui/select/SelectLabel.vue +17 -17
  49. package/dist/admin/components/ui/select/SelectScrollDownButton.vue +26 -26
  50. package/dist/admin/components/ui/select/SelectScrollUpButton.vue +26 -26
  51. package/dist/admin/components/ui/select/SelectSeparator.vue +19 -19
  52. package/dist/admin/components/ui/select/SelectTrigger.vue +44 -44
  53. package/dist/admin/components/ui/select/SelectValue.vue +15 -15
  54. package/dist/admin/components/ui/select/index.js +1 -1
  55. package/dist/admin/components/ui/separator/Separator.vue +29 -29
  56. package/dist/admin/components/ui/separator/index.js +1 -1
  57. package/dist/admin/components/ui/sheet/Sheet.vue +19 -19
  58. package/dist/admin/components/ui/sheet/SheetClose.vue +15 -15
  59. package/dist/admin/components/ui/sheet/SheetContent.vue +63 -63
  60. package/dist/admin/components/ui/sheet/SheetDescription.vue +21 -21
  61. package/dist/admin/components/ui/sheet/SheetFooter.vue +16 -16
  62. package/dist/admin/components/ui/sheet/SheetHeader.vue +15 -15
  63. package/dist/admin/components/ui/sheet/SheetOverlay.vue +21 -21
  64. package/dist/admin/components/ui/sheet/SheetTitle.vue +21 -21
  65. package/dist/admin/components/ui/sheet/SheetTrigger.vue +15 -15
  66. package/dist/admin/components/ui/sheet/index.js +1 -1
  67. package/dist/admin/components/ui/sonner/Toaster.vue +117 -117
  68. package/dist/admin/components/ui/sonner/index.js +1 -1
  69. package/dist/admin/components/ui/table/Table.vue +16 -16
  70. package/dist/admin/components/ui/table/TableBody.vue +17 -17
  71. package/dist/admin/components/ui/table/TableCaption.vue +17 -17
  72. package/dist/admin/components/ui/table/TableCell.vue +22 -22
  73. package/dist/admin/components/ui/table/TableEmpty.vue +34 -34
  74. package/dist/admin/components/ui/table/TableFooter.vue +17 -17
  75. package/dist/admin/components/ui/table/TableHead.vue +17 -17
  76. package/dist/admin/components/ui/table/TableHeader.vue +17 -17
  77. package/dist/admin/components/ui/table/TableRow.vue +17 -17
  78. package/dist/admin/components/ui/table/index.js +1 -1
  79. package/dist/admin/components/ui/tabs/Tabs.vue +24 -24
  80. package/dist/admin/components/ui/tabs/TabsContent.vue +21 -21
  81. package/dist/admin/components/ui/tabs/TabsList.vue +24 -24
  82. package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -26
  83. package/dist/admin/components/ui/tabs/index.js +1 -1
  84. package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -19
  85. package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -34
  86. package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -14
  87. package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -15
  88. package/dist/admin/components/ui/tooltip/index.js +1 -1
  89. package/dist/admin/components/vm-action-btn.vue +136 -136
  90. package/dist/admin/components/vm-aside-list-item.vue +136 -136
  91. package/dist/admin/components/vm-aside.vue +229 -229
  92. package/dist/admin/components/vm-auto-perm-dialog.vue +371 -371
  93. package/dist/admin/components/vm-card-grid.vue +37 -37
  94. package/dist/admin/components/vm-card-head.vue +45 -45
  95. package/dist/admin/components/vm-card-meta.vue +22 -22
  96. package/dist/admin/components/vm-card-title.vue +56 -56
  97. package/dist/admin/components/vm-card.vue +176 -176
  98. package/dist/admin/components/vm-check-tree.vue +340 -340
  99. package/dist/admin/components/vm-clamp-text.vue +39 -39
  100. package/dist/admin/components/vm-dept-tree.vue +497 -497
  101. package/dist/admin/components/vm-empty.vue +68 -68
  102. package/dist/admin/components/vm-eps-perm-picker.vue +123 -123
  103. package/dist/admin/components/vm-form-dialog.vue +632 -632
  104. package/dist/admin/components/vm-group-cascader.vue +560 -560
  105. package/dist/admin/components/vm-icon-btn.vue +88 -88
  106. package/dist/admin/components/vm-icon-picker.vue +647 -647
  107. package/dist/admin/components/vm-inline-search.vue +61 -61
  108. package/dist/admin/components/vm-loading.vue +114 -114
  109. package/dist/admin/components/vm-markdown.vue +405 -405
  110. package/dist/admin/components/vm-marquee.vue +265 -265
  111. package/dist/admin/components/vm-page-tabs.vue +94 -94
  112. package/dist/admin/components/vm-perm-section.vue +57 -57
  113. package/dist/admin/components/vm-ri-icon.vue +23 -23
  114. package/dist/admin/components/vm-role-picker.vue +314 -314
  115. package/dist/admin/components/vm-split-layout.vue +106 -106
  116. package/dist/admin/components/vm-thumb.vue +49 -49
  117. package/dist/admin/components/vm-view-path-picker.vue +59 -59
  118. package/dist/admin/crud/auto-fields.d.ts +7 -0
  119. package/dist/admin/crud/auto-fields.js +1 -1
  120. package/dist/admin/crud/components/vm-avatar.vue +104 -104
  121. package/dist/admin/crud/components/vm-color-picker.vue +1626 -1626
  122. package/dist/admin/crud/components/vm-column-custom.vue +193 -193
  123. package/dist/admin/crud/components/vm-context-menu.vue +105 -105
  124. package/dist/admin/crud/components/vm-copy-btn.vue +102 -102
  125. package/dist/admin/crud/components/vm-date-calendar-panel.vue +537 -537
  126. package/dist/admin/crud/components/vm-date-picker.vue +75 -75
  127. package/dist/admin/crud/components/vm-date-range.vue +88 -88
  128. package/dist/admin/crud/components/vm-date-text.vue +42 -42
  129. package/dist/admin/crud/components/vm-datetime-field.vue +215 -215
  130. package/dist/admin/crud/components/vm-datetime-picker.vue +9 -9
  131. package/dist/admin/crud/components/vm-dict-tag.vue +112 -112
  132. package/dist/admin/crud/components/vm-ellipsis-text.vue +34 -34
  133. package/dist/admin/crud/components/vm-form-hint.vue +81 -81
  134. package/dist/admin/crud/components/vm-json-code.vue +41 -41
  135. package/dist/admin/crud/components/vm-json-editor.vue +161 -161
  136. package/dist/admin/crud/components/vm-json-kv-editor.vue +318 -318
  137. package/dist/admin/crud/components/vm-kv-row.vue +51 -51
  138. package/dist/admin/crud/components/vm-multi-select.vue +279 -279
  139. package/dist/admin/crud/components/vm-number-range.vue +204 -204
  140. package/dist/admin/crud/components/vm-preview-viewer.vue +894 -894
  141. package/dist/admin/crud/components/vm-radio.vue +87 -87
  142. package/dist/admin/crud/components/vm-richtext.vue +313 -313
  143. package/dist/admin/crud/components/vm-select.vue +570 -570
  144. package/dist/admin/crud/components/vm-status-tag.vue +158 -158
  145. package/dist/admin/crud/components/vm-switch.vue +158 -158
  146. package/dist/admin/crud/components/vm-tag-list.vue +108 -108
  147. package/dist/admin/crud/components/vm-text-link.vue +52 -52
  148. package/dist/admin/crud/components/vm-toggle-switch.vue +84 -84
  149. package/dist/admin/crud/components/vm-tree-select.vue +450 -450
  150. package/dist/admin/crud/components/vm-upload-item.vue +298 -298
  151. package/dist/admin/crud/components/vm-upload.vue +436 -436
  152. package/dist/admin/crud/config.js +1 -1
  153. package/dist/admin/crud/confirm.js +1 -1
  154. package/dist/admin/crud/crud-page-request.js +1 -1
  155. package/dist/admin/crud/data-i18n.js +1 -1
  156. package/dist/admin/crud/dict.js +1 -1
  157. package/dist/admin/crud/export-fetch.js +1 -1
  158. package/dist/admin/crud/index.d.ts +1 -1
  159. package/dist/admin/crud/index.js +1 -0
  160. package/dist/admin/crud/key.js +1 -1
  161. package/dist/admin/crud/plugins.js +1 -1
  162. package/dist/admin/crud/span.js +1 -1
  163. package/dist/admin/crud/style.js +1 -1
  164. package/dist/admin/crud/validate.js +1 -1
  165. package/dist/admin/crud/vm-add-btn.vue +70 -70
  166. package/dist/admin/crud/vm-adv-search.vue +83 -83
  167. package/dist/admin/crud/vm-crud.vue +711 -711
  168. package/dist/admin/crud/vm-data-i18n-btn.vue +456 -456
  169. package/dist/admin/crud/vm-data-i18n-lang.vue +183 -183
  170. package/dist/admin/crud/vm-export-btn.vue +183 -183
  171. package/dist/admin/crud/vm-flex.vue +14 -14
  172. package/dist/admin/crud/vm-import-btn.vue +747 -747
  173. package/dist/admin/crud/vm-multi-delete-btn.vue +49 -49
  174. package/dist/admin/crud/vm-pagination.vue +212 -212
  175. package/dist/admin/crud/vm-refresh-btn.vue +35 -35
  176. package/dist/admin/crud/vm-row.vue +55 -55
  177. package/dist/admin/crud/vm-search-key.vue +78 -78
  178. package/dist/admin/crud/vm-search.vue +466 -466
  179. package/dist/admin/crud/vm-table.vue +1390 -1390
  180. package/dist/admin/crud/vm-tabs.vue +94 -94
  181. package/dist/admin/crud/vm-toolbar.vue +357 -357
  182. package/dist/admin/crud/vm-upsert.vue +765 -765
  183. package/dist/admin/directives/perm.js +1 -1
  184. package/dist/admin/env.d.ts +1 -1
  185. package/dist/admin/hooks/useUpload.js +1 -1
  186. package/dist/admin/hooks/useVome.d.ts +2 -2
  187. package/dist/admin/lib/browser.js +1 -1
  188. package/dist/admin/lib/cn.js +1 -1
  189. package/dist/admin/lib/dialog-float.js +1 -1
  190. package/dist/admin/lib/export-excel.js +1 -1
  191. package/dist/admin/lib/import-excel.js +1 -1
  192. package/dist/admin/lib/json.js +1 -1
  193. package/dist/admin/lib/menu.js +1 -1
  194. package/dist/admin/lib/micro-locale.js +1 -1
  195. package/dist/admin/lib/micro-theme.js +1 -1
  196. package/dist/admin/lib/shell.js +1 -1
  197. package/dist/admin/lib/theme-color-options.js +1 -1
  198. package/dist/admin/lib/tree.js +1 -1
  199. package/dist/admin/lib/upload.js +1 -1
  200. package/dist/admin/lib/video-frame.js +1 -1
  201. package/dist/admin/router/create.js +1 -1
  202. package/dist/admin/router/guards.js +1 -1
  203. package/dist/admin/stores/app.d.ts +13 -1
  204. package/dist/admin/stores/tags.d.ts +14 -1
  205. package/dist/admin/stores/user.d.ts +48 -1
  206. package/dist/admin/styles/base.css +121 -121
  207. package/dist/admin/vendor/browser-image-compression.js +1144 -1144
  208. package/dist/admin/vendor/decimal-js.js +12 -12
  209. package/dist/admin/vendor/xlsx.js +263 -263
  210. package/dist/ai/index.js +1 -1
  211. package/dist/client/ai-model-registry.js +1 -1
  212. package/dist/client/base.js +1 -1
  213. package/dist/client/configure.js +1 -1
  214. package/dist/client/dict.js +1 -1
  215. package/dist/client/eps-payload.js +1 -1
  216. package/dist/client/eps.d.ts +7 -4
  217. package/dist/client/eps.js +1 -1
  218. package/dist/client/index.d.ts +1 -1
  219. package/dist/client/index.js +1 -1
  220. package/dist/client/locale-change.js +1 -1
  221. package/dist/client/locale-store.d.ts +45 -1
  222. package/dist/client/locale-store.js +1 -1
  223. package/dist/client/path.js +1 -1
  224. package/dist/client/service.d.ts +8 -0
  225. package/dist/client/service.js +1 -1
  226. package/dist/client/vite-admin.js +1 -1
  227. package/dist/client/vite-auto-import.js +1 -1
  228. package/dist/client/vite-micro-proxy.js +1 -1
  229. package/dist/client/vite-plugin-eps.d.ts +5 -0
  230. package/dist/client/vite-plugin-eps.js +1 -1
  231. package/dist/client/vite-resolve.js +1 -1
  232. package/dist/config/index.js +1 -1
  233. package/dist/core/index.d.ts +2 -2
  234. package/dist/index.js +1 -1
  235. package/dist/routing/context.d.ts +12 -2
  236. package/dist/routing/eps.d.ts +4 -1
  237. package/dist/routing/index.d.ts +2 -1
  238. package/dist/routing/metadata.d.ts +7 -3
  239. package/dist/server/index.d.ts +2 -2
  240. package/dist/server/index.js +1 -1
  241. package/dist/shared/datetime-picker.js +1 -1
  242. package/dist/shared/decimal.js +1 -1
  243. package/dist/shared/excel.js +1 -1
  244. package/dist/shared/index.js +1 -1
  245. package/dist/shared/locale-json.js +1 -1
  246. package/dist/shared/tree.js +1 -1
  247. package/dist/typings/routing/eps.d.ts +3 -1
  248. package/dist/typings/routing/meta.d.ts +15 -0
  249. package/package.json +1 -1
  250. package/typings/admin/base/auth.ts +24 -24
  251. package/typings/admin/base/permission.ts +19 -19
  252. package/typings/admin/comm/cascader.ts +7 -7
  253. package/typings/admin/comm/check-tree.ts +7 -7
  254. package/typings/admin/comm/crud.ts +427 -427
  255. package/typings/admin/comm/eps.ts +88 -86
  256. package/typings/admin/comm/request.ts +16 -16
  257. package/typings/admin/comm/service.ts +43 -43
  258. package/typings/admin/comm/upload.ts +39 -39
  259. package/typings/admin/theme.ts +10 -10
  260. package/typings/admin/vome/browser.ts +11 -11
  261. package/typings/admin/vome/module.ts +13 -13
  262. package/typings/admin/vome/tags.ts +9 -9
  263. package/typings/comm/crud.ts +83 -83
  264. package/typings/comm/page.ts +18 -18
  265. package/typings/comm/scan.ts +6 -6
  266. package/typings/common.ts +4 -4
  267. package/typings/context/data.ts +10 -10
  268. package/typings/ext/market-seat.ts +42 -42
  269. package/typings/ext/market.ts +55 -55
  270. package/typings/ext/module.ts +64 -64
  271. package/typings/ext/plugin.ts +38 -38
  272. package/typings/ioc/metadata.ts +34 -34
  273. package/typings/logger/config.ts +6 -6
  274. package/typings/routing/crud.ts +199 -199
  275. package/typings/routing/eps.ts +90 -88
  276. package/typings/routing/meta.ts +80 -63
  277. package/typings/routing/register.ts +21 -21
  278. package/typings/routing/scan-context.ts +7 -7
@@ -1,106 +1,106 @@
1
- <template>
2
- <div
3
- class="vm-split-layout"
4
- :class="{ 'has-toolbar': Boolean($slots.toolbar) }"
5
- :style="gridStyle"
6
- >
7
- <div v-if="$slots.toolbar" class="vm-split-layout__toolbar">
8
- <slot name="toolbar" />
9
- </div>
10
- <aside v-if="$slots.aside" class="vm-split-layout__aside">
11
- <slot name="aside" />
12
- </aside>
13
- <div class="vm-split-layout__main">
14
- <slot />
15
- </div>
16
- </div>
17
- </template>
18
-
19
- <script setup lang="ts">
20
- import { computed } from 'vue'
21
-
22
- defineOptions({ name: 'vm-split-layout' })
23
-
24
- const props = withDefaults(
25
- defineProps<{
26
- asideWidth?: string
27
- }>(),
28
- {
29
- asideWidth: '240px',
30
- },
31
- )
32
-
33
- const gridStyle = computed(() => ({
34
- '--vm-split-aside': props.asideWidth,
35
- }))
36
- </script>
37
-
38
- <style lang="scss" scoped>
39
- .vm-split-layout {
40
- display: grid;
41
- width: 100%;
42
- flex: 1;
43
- min-height: 0;
44
- align-self: stretch;
45
- overflow: hidden;
46
- border-radius: var(--radius);
47
- background: var(--card);
48
- box-shadow: var(--shadow-soft);
49
- grid-template-columns: var(--vm-split-aside, 240px) minmax(0, 1fr);
50
- grid-template-rows: minmax(0, 1fr);
51
- }
52
-
53
- .vm-split-layout.has-toolbar {
54
- grid-template-rows: auto minmax(0, 1fr);
55
- }
56
-
57
- .vm-split-layout__toolbar {
58
- grid-row: 1;
59
- grid-column: 1 / -1;
60
- display: flex;
61
- flex-wrap: wrap;
62
- align-items: center;
63
- justify-content: space-between;
64
- gap: 8px;
65
- padding: 12px 16px;
66
- border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
67
- }
68
-
69
- .vm-split-layout__aside {
70
- grid-row: 1;
71
- grid-column: 1;
72
- min-height: 0;
73
- overflow: hidden;
74
- border-right: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
75
-
76
- :deep(.vm-aside) {
77
- border-right: none;
78
- }
79
- }
80
-
81
- .has-toolbar .vm-split-layout__aside {
82
- grid-row: 2;
83
- }
84
-
85
- .vm-split-layout__main {
86
- grid-row: 1;
87
- grid-column: 2;
88
- display: flex;
89
- flex-direction: column;
90
- min-width: 0;
91
- min-height: 0;
92
- overflow: hidden;
93
- }
94
-
95
- .has-toolbar .vm-split-layout__main {
96
- grid-row: 2;
97
- }
98
-
99
- .vm-split-layout__main :deep(.vm-crud) {
100
- flex: 1;
101
- min-height: 0;
102
- height: 100%;
103
- border-radius: 0;
104
- box-shadow: none;
105
- }
106
- </style>
1
+ <template>
2
+ <div
3
+ class="vm-split-layout"
4
+ :class="{ 'has-toolbar': Boolean($slots.toolbar) }"
5
+ :style="gridStyle"
6
+ >
7
+ <div v-if="$slots.toolbar" class="vm-split-layout__toolbar">
8
+ <slot name="toolbar" />
9
+ </div>
10
+ <aside v-if="$slots.aside" class="vm-split-layout__aside">
11
+ <slot name="aside" />
12
+ </aside>
13
+ <div class="vm-split-layout__main">
14
+ <slot />
15
+ </div>
16
+ </div>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import { computed } from 'vue'
21
+
22
+ defineOptions({ name: 'vm-split-layout' })
23
+
24
+ const props = withDefaults(
25
+ defineProps<{
26
+ asideWidth?: string
27
+ }>(),
28
+ {
29
+ asideWidth: '240px',
30
+ },
31
+ )
32
+
33
+ const gridStyle = computed(() => ({
34
+ '--vm-split-aside': props.asideWidth,
35
+ }))
36
+ </script>
37
+
38
+ <style lang="scss" scoped>
39
+ .vm-split-layout {
40
+ display: grid;
41
+ width: 100%;
42
+ flex: 1;
43
+ min-height: 0;
44
+ align-self: stretch;
45
+ overflow: hidden;
46
+ border-radius: var(--radius);
47
+ background: var(--card);
48
+ box-shadow: var(--shadow-soft);
49
+ grid-template-columns: var(--vm-split-aside, 240px) minmax(0, 1fr);
50
+ grid-template-rows: minmax(0, 1fr);
51
+ }
52
+
53
+ .vm-split-layout.has-toolbar {
54
+ grid-template-rows: auto minmax(0, 1fr);
55
+ }
56
+
57
+ .vm-split-layout__toolbar {
58
+ grid-row: 1;
59
+ grid-column: 1 / -1;
60
+ display: flex;
61
+ flex-wrap: wrap;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ gap: 8px;
65
+ padding: 12px 16px;
66
+ border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
67
+ }
68
+
69
+ .vm-split-layout__aside {
70
+ grid-row: 1;
71
+ grid-column: 1;
72
+ min-height: 0;
73
+ overflow: hidden;
74
+ border-right: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
75
+
76
+ :deep(.vm-aside) {
77
+ border-right: none;
78
+ }
79
+ }
80
+
81
+ .has-toolbar .vm-split-layout__aside {
82
+ grid-row: 2;
83
+ }
84
+
85
+ .vm-split-layout__main {
86
+ grid-row: 1;
87
+ grid-column: 2;
88
+ display: flex;
89
+ flex-direction: column;
90
+ min-width: 0;
91
+ min-height: 0;
92
+ overflow: hidden;
93
+ }
94
+
95
+ .has-toolbar .vm-split-layout__main {
96
+ grid-row: 2;
97
+ }
98
+
99
+ .vm-split-layout__main :deep(.vm-crud) {
100
+ flex: 1;
101
+ min-height: 0;
102
+ height: 100%;
103
+ border-radius: 0;
104
+ box-shadow: none;
105
+ }
106
+ </style>
@@ -1,49 +1,49 @@
1
- <template>
2
- <span class="vm-thumb" :style="boxStyle">
3
- <img v-if="src" :src="src" alt="" />
4
- <i v-else-if="icon" :class="icon" aria-hidden="true" />
5
- <slot v-else />
6
- </span>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { computed } from 'vue'
11
-
12
- defineOptions({ name: 'vm-thumb' })
13
-
14
- const props = withDefaults(
15
- defineProps<{
16
- src?: string
17
- icon?: string
18
- size?: number
19
- }>(),
20
- {
21
- size: 32,
22
- },
23
- )
24
-
25
- const boxStyle = computed(() => ({
26
- width: `${props.size}px`,
27
- height: `${props.size}px`,
28
- }))
29
- </script>
30
-
31
- <style lang="scss" scoped>
32
- .vm-thumb {
33
- display: inline-flex;
34
- flex-shrink: 0;
35
- align-items: center;
36
- justify-content: center;
37
- overflow: hidden;
38
- border-radius: 8px;
39
- background: color-mix(in srgb, var(--brand) 12%, var(--card));
40
- color: var(--brand);
41
- font-size: 16px;
42
-
43
- img {
44
- width: 100%;
45
- height: 100%;
46
- object-fit: cover;
47
- }
48
- }
49
- </style>
1
+ <template>
2
+ <span class="vm-thumb" :style="boxStyle">
3
+ <img v-if="src" :src="src" alt="" />
4
+ <i v-else-if="icon" :class="icon" aria-hidden="true" />
5
+ <slot v-else />
6
+ </span>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { computed } from 'vue'
11
+
12
+ defineOptions({ name: 'vm-thumb' })
13
+
14
+ const props = withDefaults(
15
+ defineProps<{
16
+ src?: string
17
+ icon?: string
18
+ size?: number
19
+ }>(),
20
+ {
21
+ size: 32,
22
+ },
23
+ )
24
+
25
+ const boxStyle = computed(() => ({
26
+ width: `${props.size}px`,
27
+ height: `${props.size}px`,
28
+ }))
29
+ </script>
30
+
31
+ <style lang="scss" scoped>
32
+ .vm-thumb {
33
+ display: inline-flex;
34
+ flex-shrink: 0;
35
+ align-items: center;
36
+ justify-content: center;
37
+ overflow: hidden;
38
+ border-radius: 8px;
39
+ background: color-mix(in srgb, var(--brand) 12%, var(--card));
40
+ color: var(--brand);
41
+ font-size: 16px;
42
+
43
+ img {
44
+ width: 100%;
45
+ height: 100%;
46
+ object-fit: cover;
47
+ }
48
+ }
49
+ </style>
@@ -1,59 +1,59 @@
1
- <template>
2
- <vm-group-cascader
3
- :model-value="modelValue ?? ''"
4
- :tree="tree"
5
- :placeholder="placeholder ?? crudLabel('pickFilePath')"
6
- :clearable="clearable"
7
- :editable="editable"
8
- :disabled="disabled"
9
- @update:model-value="(v) => emit('update:modelValue', v)"
10
- />
11
- </template>
12
-
13
- <script setup lang="ts">
14
- import { crudLabel } from '../crud/style'
15
- import { ref, onMounted, onUnmounted } from 'vue'
16
- import {
17
- listViewsTree,
18
- VIEWS_RESCAN_EVENT,
19
- } from '../lib/module'
20
- import type { ViewsTreeNode } from '../../../typings/admin/vome/module'
21
- defineOptions({ name: 'vm-view-path-picker' })
22
-
23
- withDefaults(
24
- defineProps<{
25
- modelValue?: string | null
26
- placeholder?: string
27
- clearable?: boolean
28
- editable?: boolean
29
- disabled?: boolean
30
- }>(),
31
- {
32
- placeholder: undefined,
33
- clearable: true,
34
- editable: true,
35
- },
36
- )
37
-
38
- const emit = defineEmits<{
39
- 'update:modelValue': [v: string]
40
- }>()
41
-
42
- const tree = ref<ViewsTreeNode[]>([])
43
-
44
- function rescan() {
45
- tree.value = listViewsTree()
46
- }
47
-
48
- onMounted(() => {
49
- rescan()
50
- window.addEventListener(VIEWS_RESCAN_EVENT, rescan)
51
- })
52
-
53
- onUnmounted(() => {
54
- window.removeEventListener(VIEWS_RESCAN_EVENT, rescan)
55
- })
56
-
57
- // 打开选择器前再扫一次(配合 HMR 事件)
58
- defineExpose({ rescan })
59
- </script>
1
+ <template>
2
+ <vm-group-cascader
3
+ :model-value="modelValue ?? ''"
4
+ :tree="tree"
5
+ :placeholder="placeholder ?? crudLabel('pickFilePath')"
6
+ :clearable="clearable"
7
+ :editable="editable"
8
+ :disabled="disabled"
9
+ @update:model-value="(v) => emit('update:modelValue', v)"
10
+ />
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { crudLabel } from '../crud/style'
15
+ import { ref, onMounted, onUnmounted } from 'vue'
16
+ import {
17
+ listViewsTree,
18
+ VIEWS_RESCAN_EVENT,
19
+ } from '../lib/module'
20
+ import type { ViewsTreeNode } from '../../../typings/admin/vome/module'
21
+ defineOptions({ name: 'vm-view-path-picker' })
22
+
23
+ withDefaults(
24
+ defineProps<{
25
+ modelValue?: string | null
26
+ placeholder?: string
27
+ clearable?: boolean
28
+ editable?: boolean
29
+ disabled?: boolean
30
+ }>(),
31
+ {
32
+ placeholder: undefined,
33
+ clearable: true,
34
+ editable: true,
35
+ },
36
+ )
37
+
38
+ const emit = defineEmits<{
39
+ 'update:modelValue': [v: string]
40
+ }>()
41
+
42
+ const tree = ref<ViewsTreeNode[]>([])
43
+
44
+ function rescan() {
45
+ tree.value = listViewsTree()
46
+ }
47
+
48
+ onMounted(() => {
49
+ rescan()
50
+ window.addEventListener(VIEWS_RESCAN_EVENT, rescan)
51
+ })
52
+
53
+ onUnmounted(() => {
54
+ window.removeEventListener(VIEWS_RESCAN_EVENT, rescan)
55
+ })
56
+
57
+ // 打开选择器前再扫一次(配合 HMR 事件)
58
+ defineExpose({ rescan })
59
+ </script>
@@ -32,9 +32,16 @@ type TableAutoPlugin = {
32
32
  __plugin?: string;
33
33
  ignoreFields?: string[];
34
34
  };
35
+ /**
36
+ * 已有 userId 时:用户ID 后紧跟昵称、邮箱。
37
+ * 无 userId 时原样返回——禁止凭空造列(配置页等无用户字段的表)。
38
+ * 幂等:可重复调用。
39
+ */
40
+ export declare function placeNickEmailAfterUserId(columns: CrudColumn[]): CrudColumn[];
35
41
  /**
36
42
  * 与 vm-table 同源:按 service.namespace 从 EPS 拉全列,再与页面手写 columns 浅合并。
37
43
  * 导出按钮在表格兄弟节点,inject 不到 Table.getColumns(),须自己走同一套合并。
44
+ * 合并结果含 userId 时自动在其后插入昵称/邮箱(ignoreFields 含 userId 时跳过)。
38
45
  */
39
46
  export declare function resolveMergedTableColumns(opts: {
40
47
  service: Pick<CrudService, 'namespace' | 'permission' | '_permission'>;
@@ -1 +1 @@
1
- const _0x2252f6=_0x4b5b;(function(_0x2cd898,_0x2113a7){const _0x1edb41=_0x4b5b,_0x126e64=_0x2cd898();while(!![]){try{const _0x8a7a13=-parseInt(_0x1edb41(0x1a3))/0x1*(-parseInt(_0x1edb41(0x196))/0x2)+-parseInt(_0x1edb41(0x1a2))/0x3*(parseInt(_0x1edb41(0x1b1))/0x4)+-parseInt(_0x1edb41(0x194))/0x5+parseInt(_0x1edb41(0x18b))/0x6+-parseInt(_0x1edb41(0x1b4))/0x7*(-parseInt(_0x1edb41(0x1af))/0x8)+parseInt(_0x1edb41(0x1a0))/0x9+-parseInt(_0x1edb41(0x17f))/0xa;if(_0x8a7a13===_0x2113a7)break;else _0x126e64['push'](_0x126e64['shift']());}catch(_0x486ea8){_0x126e64['push'](_0x126e64['shift']());}}}(_0xdd9f,0x87788));import{findEpsEntity}from'../lib/eps';import{getDictOptions}from'../../client';export const UPSERT_BUILTIN_IGNORE=['id',_0x2252f6(0x171),_0x2252f6(0x19d),_0x2252f6(0x175),_0x2252f6(0x16f)];export const TABLE_BUILTIN_IGNORE=[_0x2252f6(0x16f),'updateTime'];export function buildAutoOpButtons(_0x5d07a8){const _0x25d02b=_0x2252f6,_0x54d862=_0x5d07a8[_0x25d02b(0x193)],_0x62f21d=_0x1a5325=>_0x54d862!=null&&typeof _0x54d862===_0x25d02b(0x176)&&Object['prototype']['hasOwnProperty'][_0x25d02b(0x18f)](_0x54d862,_0x1a5325),_0x4a2242=_0x453bb7=>Boolean(_0x5d07a8[_0x25d02b(0x19b)]?.[_0x453bb7]),_0xbe340a=[];if(_0x62f21d(_0x25d02b(0x1a5))&&_0x4a2242('update'))_0xbe340a[_0x25d02b(0x18d)]('edit');if(_0x62f21d(_0x25d02b(0x16b))&&_0x4a2242(_0x25d02b(0x16b)))_0xbe340a['push'](_0x25d02b(0x16b));return _0xbe340a;}function dictKeyOf(_0x2b072d){const _0x418711=_0x2252f6;if(typeof _0x2b072d[_0x418711(0x17d)]===_0x418711(0x1ad)&&_0x2b072d[_0x418711(0x17d)])return _0x2b072d[_0x418711(0x17d)];if(Array[_0x418711(0x195)](_0x2b072d['dict'])&&_0x2b072d[_0x418711(0x17d)][0x0])return _0x2b072d[_0x418711(0x17d)][0x0];return;}function isSwitchDict(_0x5979e2){const _0x1fb208=_0x2252f6;return _0x5979e2===_0x1fb208(0x190)||_0x5979e2===_0x1fb208(0x197)||_0x5979e2==='yes_no_number';}function switchDefaultValue(_0x568a5d){const _0x457f09=_0x2252f6;if(_0x568a5d===_0x457f09(0x197))return![];if(_0x568a5d===_0x457f09(0x187))return 0x0;return 0x1;}function _0xdd9f(){const _0x123913=['C2vYDMLJzq','y2fSBa','C3rHDhvZ','ugDcB29SzwfU','DgfIBgvpChrZ','CgvYBwLZC2LVBG','mtCWntu0mffUr0TcsW','AxnbCNjHEq','mtb6uKntC3K','EwvZx25Vx2jVB2XLyw4','y29TBwvUDa','x19WBhvNAw4','y29SDw1UvhLWzq','x3bLCM1PC3nPB24','DgvZDa','y3jLyxrLvgLTzq','C2v0qxv0BW','ugDszwfS','mJq2otqWmM5ctLzeCq','C2vSzwn0Aw9U','mtuXnZy0ufflz0jy','mta5ntm3y0HAAKPX','C291CMnL','DxbKyxrL','Dgv4DgfYzwe','BNvSBgfIBgu','ugDtBwfSBfnLCMLHBa','yxv0BW','ugDeB3vIBgvqCMvJAxnPB24','ugDcAwDtzxjPywW','BMfTzxnWywnL','C3rYAw5N','C3rHCNrZv2L0Aa','mJy0D0D6BwHM','DhLWzq','mJHNzgfjwvO','C2vSzwn0','C2nHBgu','nZu3nJfiwurZEhK','ugDcAwDjBNq','zNvUy3rPB24','zgvSzxrL','ugDtzxjPywW','C3DPDgnO','BgvUz3rO','zgvSzxrLvgLTzq','DM0TC3DPDgnO','DgvUyw50swq','y29SDw1UCW','CMLNAhq','ChjVCgvYDhLoyw1L','DxbKyxrLvgLTzq','B2jQzwn0','Aw5WDxq','DgfIBgvqBhvNAw5Z','BgfIzwW','zMLSDgvY','AgfZ','ChjVCa','zgLJDa','ugDjBNrLz2vY','ndu1ntyXmg1gt1LQCG','DMfSDwu','CMvXDwLYzwq','Dg9mB3DLCKnHC2u','BwfW','CgfNzvf1zxj5t3a','BNvTyMvY','zMLUza','EwvZx25Vx251BwjLCG','AwDUB3jLrMLLBgrZ','BwfUDwfS','y29SB3i','mZe1odCWnNnbB2nxrG','ywrK','ChvZAa'];_0xdd9f=function(){return _0x123913;};return _0xdd9f();}function switchFormItem(_0x4e759d,_0x55a328,_0x1700eb){const _0x1622f5=_0x2252f6;return{..._0x4e759d,'type':_0x1622f5(0x16d),'value':_0x1700eb,'dict':_0x55a328,'component':{'props':()=>mapDictOptions(_0x55a328)}};}export function mapDictOptions(_0x109ca2){const _0x309f14=_0x2252f6;return getDictOptions(_0x109ca2)[_0x309f14(0x183)](_0x31eb57=>{const _0x3e7cc5=_0x309f14;let _0x595297=_0x31eb57['value'];return typeof _0x31eb57[_0x3e7cc5(0x180)]===_0x3e7cc5(0x1ad)&&/^-?\d+(\.\d+)?$/[_0x3e7cc5(0x19c)](_0x31eb57['value'])&&(_0x595297=Number(_0x31eb57[_0x3e7cc5(0x180)])),{'label':String(_0x31eb57[_0x3e7cc5(0x179)]??''),'value':_0x595297,'color':_0x31eb57[_0x3e7cc5(0x18a)]};});}export function dictFirstValue(_0x447910){const _0x3e6920=mapDictOptions(_0x447910)[0x0];return _0x3e6920?.['value'];}export function resolveFormItemValue(_0x11ba70){const _0x292842=_0x2252f6;return typeof _0x11ba70===_0x292842(0x1b6)?_0x11ba70():_0x11ba70;}function isMainTableCol(_0x59d79a){const _0xeba88c=_0x2252f6;return!_0x59d79a['source']||_0x59d79a[_0xeba88c(0x1a4)]['startsWith']('a.');}function epsTableIgnore(_0xb98783){const _0x17a252=_0x2252f6,_0x4c7ae3=_0xb98783[_0x17a252(0x1ac)]?findEpsEntity('/'+_0xb98783['namespace']):undefined,_0x47879f=_0x4c7ae3?.[_0x17a252(0x184)]?.['ignoreFields'];return Array[_0x17a252(0x195)](_0x47879f)?_0x47879f[_0x17a252(0x17a)](_0x5b2a3=>typeof _0x5b2a3===_0x17a252(0x1ad)&&_0x5b2a3):[];}function epsColumns(_0x292176){const _0x196076=_0x2252f6,_0x2f4f8a=_0x292176['namespace']?findEpsEntity('/'+_0x292176[_0x196076(0x1ac)]):undefined;if(!_0x2f4f8a)return[];const _0x5988f9=[..._0x2f4f8a['columns']||[],..._0x2f4f8a['pageColumns']||[]],_0x387690=new Set(),_0x504204=[];for(const _0x286eb0 of _0x5988f9){if(!_0x286eb0[_0x196076(0x174)]||!isMainTableCol(_0x286eb0))continue;if(_0x387690['has'](_0x286eb0[_0x196076(0x174)]))continue;_0x387690[_0x196076(0x18c)](_0x286eb0['propertyName']),_0x504204[_0x196076(0x18d)](_0x286eb0);}return _0x504204;}function columnTypeOf(_0x4aeaf9){const _0x245e72=_0x2252f6;return String(_0x4aeaf9[_0x245e72(0x19a)]||'');}function sqlTypeOf(_0x5ae163){const _0x1cbbf4=_0x2252f6;return String(_0x5ae163['sqlType']||'')[_0x1cbbf4(0x182)]();}function _0x4b5b(_0x14dcc9,_0x4d22d9){_0x14dcc9=_0x14dcc9-0x16b;const _0xdd9f20=_0xdd9f();let _0x4b5b72=_0xdd9f20[_0x14dcc9];if(_0x4b5b['FfcpOU']===undefined){var _0x513487=function(_0x2261f8){const _0x4de8a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d07a8='',_0x54d862='';for(let _0x62f21d=0x0,_0x4a2242,_0xbe340a,_0x1a5325=0x0;_0xbe340a=_0x2261f8['charAt'](_0x1a5325++);~_0xbe340a&&(_0x4a2242=_0x62f21d%0x4?_0x4a2242*0x40+_0xbe340a:_0xbe340a,_0x62f21d++%0x4)?_0x5d07a8+=String['fromCharCode'](0xff&_0x4a2242>>(-0x2*_0x62f21d&0x6)):0x0){_0xbe340a=_0x4de8a1['indexOf'](_0xbe340a);}for(let _0x453bb7=0x0,_0x2b072d=_0x5d07a8['length'];_0x453bb7<_0x2b072d;_0x453bb7++){_0x54d862+='%'+('00'+_0x5d07a8['charCodeAt'](_0x453bb7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x54d862);};_0x4b5b['GqYEvI']=_0x513487,_0x4b5b['qYCMAl']={},_0x4b5b['FfcpOU']=!![];}const _0x44e0e0=_0xdd9f20[0x0],_0x486104=_0x14dcc9+_0x44e0e0,_0x5710e0=_0x4b5b['qYCMAl'][_0x486104];return!_0x5710e0?(_0x4b5b72=_0x4b5b['GqYEvI'](_0x4b5b72),_0x4b5b['qYCMAl'][_0x486104]=_0x4b5b72):_0x4b5b72=_0x5710e0,_0x4b5b72;}function isTextCol(_0xe4d09){const _0xeaa677=columnTypeOf(_0xe4d09);if(_0xeaa677==='PgText')return!![];return sqlTypeOf(_0xe4d09)==='text';}function isIntegerCol(_0x5d76f2){const _0x3f9738=_0x2252f6,_0x19ef3b=columnTypeOf(_0x5d76f2);if(_0x19ef3b===_0x3f9738(0x17e)||_0x19ef3b===_0x3f9738(0x16c)||_0x19ef3b==='PgSmallInt'||_0x19ef3b===_0x3f9738(0x1b5)||_0x19ef3b===_0x3f9738(0x1a8)||_0x19ef3b===_0x3f9738(0x1ab))return!![];if(_0x5d76f2[_0x3f9738(0x1b0)]==='number'&&!isNumericCol(_0x5d76f2))return!![];return/^(integer|serial|smallint|bigint|smallserial|bigserial)\b/[_0x3f9738(0x19c)](sqlTypeOf(_0x5d76f2));}function isNumericCol(_0x40d1ed){const _0x236ac4=_0x2252f6,_0x455b14=columnTypeOf(_0x40d1ed);if(_0x455b14==='PgNumeric'||_0x455b14===_0x236ac4(0x1aa)||_0x455b14===_0x236ac4(0x19f))return!![];return/^(numeric|decimal|double|real)\b/[_0x236ac4(0x19c)](sqlTypeOf(_0x40d1ed));}function isBooleanCol(_0x1ea2a){const _0x353672=_0x2252f6;return columnTypeOf(_0x1ea2a)===_0x353672(0x191)||_0x1ea2a[_0x353672(0x1b0)]==='boolean'||sqlTypeOf(_0x1ea2a)[_0x353672(0x1ae)]('boolean');}function numberPrecision(_0x23d84d){const _0x299e81=_0x2252f6;if(isIntegerCol(_0x23d84d))return 0x0;if(typeof _0x23d84d[_0x299e81(0x1b3)]===_0x299e81(0x185))return _0x23d84d['scale'];return 0x2;}export function mergeByProp(_0x490765,_0x421ef3){const _0x3baeff=_0x2252f6,_0x2f8be3=_0x421ef3[_0x3baeff(0x17a)](_0x50d047=>Boolean(_0x50d047[_0x3baeff(0x17c)])),_0x5de9d4=_0x421ef3[_0x3baeff(0x17a)](_0x1381ed=>!_0x1381ed[_0x3baeff(0x17c)]&&_0x1381ed[_0x3baeff(0x1b0)]),_0x1658c7=new Map(_0x2f8be3[_0x3baeff(0x183)](_0x5645f1=>[String(_0x5645f1[_0x3baeff(0x17c)]),_0x5645f1])),_0x155dba=new Set(_0x5de9d4['map'](_0x2bfdc5=>String(_0x2bfdc5[_0x3baeff(0x1b0)]))),_0x897551=new Set(),_0x12c227=[];for(const _0x50099b of _0x490765){if(!_0x50099b[_0x3baeff(0x17c)]&&_0x50099b[_0x3baeff(0x1b0)]){if(_0x155dba[_0x3baeff(0x17b)](String(_0x50099b[_0x3baeff(0x1b0)])))continue;_0x12c227[_0x3baeff(0x18d)](_0x50099b);continue;}if(!_0x50099b[_0x3baeff(0x17c)])continue;const _0x1fca11=String(_0x50099b[_0x3baeff(0x17c)]),_0x22835d=_0x1658c7['get'](_0x1fca11);_0x22835d?(_0x12c227[_0x3baeff(0x18d)]({..._0x50099b,..._0x22835d}),_0x897551[_0x3baeff(0x18c)](_0x1fca11)):_0x12c227[_0x3baeff(0x18d)](_0x50099b);}for(const _0x21649b of _0x2f8be3){const _0x32cae2=String(_0x21649b[_0x3baeff(0x17c)]);if(!_0x897551[_0x3baeff(0x17b)](_0x32cae2))_0x12c227[_0x3baeff(0x18d)](_0x21649b);}return _0x12c227[_0x3baeff(0x18d)](..._0x5de9d4),_0x12c227;}export function resolveMergedTableColumns(_0x1f300c){const _0x38e0f7=_0x2252f6,_0x20fcc3=_0x1f300c[_0x38e0f7(0x189)]?.['length']?_0x1f300c[_0x38e0f7(0x189)]:_0x1f300c[_0x38e0f7(0x192)]?.[_0x38e0f7(0x172)]||[],_0x23e616=(_0x1f300c[_0x38e0f7(0x178)]||[])[_0x38e0f7(0x186)](_0x1ce72c=>_0x1ce72c?.[_0x38e0f7(0x199)]===_0x38e0f7(0x19e)),_0x5194b0=_0x1f300c[_0x38e0f7(0x192)]?.[_0x38e0f7(0x1a9)]!==![]&&Boolean(_0x23e616);if(!_0x5194b0)return pinOpColumnsLast(_0x20fcc3);const _0x120c46=_0x23e616?.[_0x38e0f7(0x188)]||[],_0x58f163=_0x1f300c[_0x38e0f7(0x192)]?.[_0x38e0f7(0x188)]||[],_0x480008=buildAutoTableColumns(_0x1f300c[_0x38e0f7(0x18e)],{'ignoreFields':[..._0x120c46,..._0x58f163]});return pinOpColumnsLast(mergeByProp(_0x480008,_0x20fcc3));}export function pinOpColumnsLast(_0x22a8aa){const _0x299309=_0x2252f6,_0x479213=[],_0x2912c4=[];for(const _0x2e3c3a of _0x22a8aa){_0x2e3c3a[_0x299309(0x1b0)]==='op'?_0x479213[_0x299309(0x18d)]({..._0x2e3c3a,'fixed':'right'}):_0x2912c4[_0x299309(0x18d)](_0x2e3c3a);}if(!_0x479213[_0x299309(0x16e)])return _0x22a8aa;return[..._0x2912c4,..._0x479213];}export function sortRequiredFirst(_0x5df183){const _0x587e7e=_0x2252f6,_0x1e5922=[],_0x51aca6=[];for(const _0x5a1c89 of _0x5df183){_0x5a1c89['required']===!![]||typeof _0x5a1c89[_0x587e7e(0x181)]===_0x587e7e(0x1b6)?_0x1e5922[_0x587e7e(0x18d)](_0x5a1c89):_0x51aca6[_0x587e7e(0x18d)](_0x5a1c89);}return[..._0x1e5922,..._0x51aca6];}export function buildAutoUpsertItems(_0x146670,_0x5be35b={}){const _0x28036d=_0x2252f6,_0x167500=new Set([...UPSERT_BUILTIN_IGNORE,..._0x5be35b[_0x28036d(0x188)]||[]]),_0x5051c5=[];for(const _0x561186 of epsColumns(_0x146670)){const _0x1f827a=_0x561186[_0x28036d(0x174)];if(_0x167500['has'](_0x1f827a))continue;const _0x3808da=_0x561186[_0x28036d(0x198)]||_0x1f827a,_0x498ed5=dictKeyOf(_0x561186),_0x1d9412=_0x561186[_0x28036d(0x1a7)]===![]&&_0x561186['hasDefault']!==!![],_0x4dae3f={'prop':_0x1f827a,'label':_0x3808da,'span':0xc,..._0x1d9412?{'required':!![]}:{}};if(_0x1f827a===_0x28036d(0x190)){const _0x2bd614=_0x498ed5||_0x28036d(0x190);isSwitchDict(_0x2bd614)?_0x5051c5[_0x28036d(0x18d)](switchFormItem(_0x4dae3f,_0x2bd614,switchDefaultValue(_0x2bd614))):_0x5051c5[_0x28036d(0x18d)]({..._0x4dae3f,'type':_0x28036d(0x1b2),'dict':_0x2bd614,'value':()=>dictFirstValue(_0x2bd614)});continue;}if(_0x498ed5){isSwitchDict(_0x498ed5)?_0x5051c5[_0x28036d(0x18d)](switchFormItem(_0x4dae3f,_0x498ed5,switchDefaultValue(_0x498ed5))):_0x5051c5['push']({..._0x4dae3f,'type':_0x28036d(0x1b2),'dict':_0x498ed5,'value':()=>dictFirstValue(_0x498ed5)});continue;}if(isTextCol(_0x561186)){_0x5051c5[_0x28036d(0x18d)]({..._0x4dae3f,'type':_0x28036d(0x1a6),'span':0xc});continue;}if(isBooleanCol(_0x561186)){_0x5051c5[_0x28036d(0x18d)]({..._0x4dae3f,'type':_0x28036d(0x16d),'value':![],'component':{'props':()=>mapDictOptions(_0x28036d(0x197))},'dict':_0x28036d(0x197)});continue;}if(isIntegerCol(_0x561186)||isNumericCol(_0x561186)){const _0xafb697=numberPrecision(_0x561186);_0x5051c5['push']({..._0x4dae3f,'type':'number','component':{'props':{'type':_0x28036d(0x185),'precision':_0xafb697,'controls':![]}}});continue;}_0x5051c5['push']({..._0x4dae3f,'type':_0x28036d(0x177)});}return _0x5051c5;}export function buildAutoTableColumns(_0x347ca2,_0x1fe580={}){const _0x2fc488=_0x2252f6,_0x2c03d4=new Set([...TABLE_BUILTIN_IGNORE,...epsTableIgnore(_0x347ca2),..._0x1fe580[_0x2fc488(0x188)]||[]]),_0x762d13=[];!_0x2c03d4[_0x2fc488(0x17b)](_0x2fc488(0x1a1))&&_0x762d13['push']({'type':_0x2fc488(0x1a1),'width':0x32});for(const _0x4a512c of epsColumns(_0x347ca2)){const _0x55bc3b=_0x4a512c[_0x2fc488(0x174)];if(_0x2c03d4['has'](_0x55bc3b))continue;const _0xaaab13=_0x4a512c['comment']||_0x55bc3b,_0x490b7a=dictKeyOf(_0x4a512c);if(_0x55bc3b===_0x2fc488(0x190)){const _0x181111=_0x490b7a||'status';isSwitchDict(_0x181111)?_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x50,'component':{'name':_0x2fc488(0x170),'props':()=>mapDictOptions(_0x181111)}}):_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x64,'dict':()=>mapDictOptions(_0x181111)});continue;}if(_0x490b7a&&isSwitchDict(_0x490b7a)){_0x762d13['push']({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x50,'component':{'name':'vm-switch','props':()=>mapDictOptions(_0x490b7a)}});continue;}if(_0x55bc3b==='id'){_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0x50});continue;}if(_0x55bc3b===_0x2fc488(0x19d)){_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'width':0xa0});continue;}if(_0x490b7a){_0x762d13[_0x2fc488(0x18d)]({'prop':_0x55bc3b,'label':_0xaaab13,'minWidth':0x78,'dict':()=>mapDictOptions(_0x490b7a)});continue;}if(isTextCol(_0x4a512c)){_0x762d13['push']({'prop':_0x55bc3b,'label':_0xaaab13,'minWidth':0xa0,'showOverflowTooltip':!![]});continue;}_0x762d13['push']({'prop':_0x55bc3b,'label':_0xaaab13,'minWidth':0x78});}if(!_0x2c03d4[_0x2fc488(0x17b)]('op')){const _0x5a1519=buildAutoOpButtons(_0x347ca2);_0x5a1519[_0x2fc488(0x16e)]&&_0x762d13[_0x2fc488(0x18d)]({'type':'op','buttons':_0x5a1519,'fixed':_0x2fc488(0x173)});}return _0x762d13;}
1
+ const _0x45a34b=_0x2c8c;(function(_0xc85264,_0xa06496){const _0x4a3096=_0x2c8c,_0x963630=_0xc85264();while(!![]){try{const _0x578254=-parseInt(_0x4a3096(0x114))/0x1+-parseInt(_0x4a3096(0x14e))/0x2+parseInt(_0x4a3096(0x115))/0x3+-parseInt(_0x4a3096(0x110))/0x4*(-parseInt(_0x4a3096(0x13a))/0x5)+-parseInt(_0x4a3096(0x117))/0x6+-parseInt(_0x4a3096(0x148))/0x7*(parseInt(_0x4a3096(0x120))/0x8)+-parseInt(_0x4a3096(0x131))/0x9*(-parseInt(_0x4a3096(0x129))/0xa);if(_0x578254===_0xa06496)break;else _0x963630['push'](_0x963630['shift']());}catch(_0x69db3d){_0x963630['push'](_0x963630['shift']());}}}(_0x287f,0xb7f43));import{findEpsEntity}from'../lib/eps';import{getDictOptions}from'../../client';export const UPSERT_BUILTIN_IGNORE=['id',_0x45a34b(0x150),_0x45a34b(0x141),'updateTime',_0x45a34b(0x118)];export const TABLE_BUILTIN_IGNORE=[_0x45a34b(0x118),_0x45a34b(0x10b)];export function buildAutoOpButtons(_0x3c2e6c){const _0x28e35a=_0x45a34b,_0x59e319=_0x3c2e6c[_0x28e35a(0x109)],_0x36cc3c=_0x589912=>_0x59e319!=null&&typeof _0x59e319===_0x28e35a(0x128)&&Object['prototype'][_0x28e35a(0x136)][_0x28e35a(0x140)](_0x59e319,_0x589912),_0x48dd21=_0x59dd9c=>Boolean(_0x3c2e6c[_0x28e35a(0x126)]?.[_0x59dd9c]),_0x45bf00=[];if(_0x36cc3c(_0x28e35a(0x10e))&&_0x48dd21(_0x28e35a(0x10e)))_0x45bf00[_0x28e35a(0x155)]('edit');if(_0x36cc3c(_0x28e35a(0x119))&&_0x48dd21('delete'))_0x45bf00[_0x28e35a(0x155)](_0x28e35a(0x119));return _0x45bf00;}function dictKeyOf(_0x34464a){const _0x3c63e4=_0x45a34b;if(typeof _0x34464a['dict']==='string'&&_0x34464a['dict'])return _0x34464a[_0x3c63e4(0x124)];if(Array[_0x3c63e4(0x111)](_0x34464a[_0x3c63e4(0x124)])&&_0x34464a[_0x3c63e4(0x124)][0x0])return _0x34464a[_0x3c63e4(0x124)][0x0];return;}function isSwitchDict(_0x49f592){const _0x160a39=_0x45a34b;return _0x49f592===_0x160a39(0x138)||_0x49f592===_0x160a39(0x113)||_0x49f592==='yes_no_number';}function switchDefaultValue(_0x4e9cb4){const _0x427b0e=_0x45a34b;if(_0x4e9cb4===_0x427b0e(0x113))return![];if(_0x4e9cb4==='yes_no_number')return 0x0;return 0x1;}function switchFormItem(_0x59d522,_0x2834fa,_0x23e18b){const _0x505591=_0x45a34b;return{..._0x59d522,'type':_0x505591(0x13c),'value':_0x23e18b,'dict':_0x2834fa,'component':{'props':()=>mapDictOptions(_0x2834fa)}};}export function mapDictOptions(_0x1fb478){const _0xa347f=_0x45a34b;return getDictOptions(_0x1fb478)[_0xa347f(0x132)](_0xa236ce=>{const _0x399f77=_0xa347f;let _0x34545b=_0xa236ce['value'];return typeof _0xa236ce[_0x399f77(0x149)]===_0x399f77(0x108)&&/^-?\d+(\.\d+)?$/['test'](_0xa236ce[_0x399f77(0x149)])&&(_0x34545b=Number(_0xa236ce[_0x399f77(0x149)])),{'label':String(_0xa236ce[_0x399f77(0x139)]??''),'value':_0x34545b,'color':_0xa236ce['color']};});}export function dictFirstValue(_0x2eb76f){const _0x492a73=mapDictOptions(_0x2eb76f)[0x0];return _0x492a73?.['value'];}export function resolveFormItemValue(_0x3ea3ba){return typeof _0x3ea3ba==='function'?_0x3ea3ba():_0x3ea3ba;}function isMainTableCol(_0x57ee2e){const _0x545752=_0x45a34b;return!_0x57ee2e[_0x545752(0x127)]||_0x57ee2e[_0x545752(0x127)][_0x545752(0x10a)]('a.');}function epsTableIgnore(_0x2ea282){const _0x488c4a=_0x45a34b,_0x36ae40=_0x2ea282[_0x488c4a(0x14b)]?findEpsEntity('/'+_0x2ea282[_0x488c4a(0x14b)]):undefined,_0x186308=_0x36ae40?.[_0x488c4a(0x153)]?.[_0x488c4a(0x134)];return Array['isArray'](_0x186308)?_0x186308[_0x488c4a(0x142)](_0x3f0228=>typeof _0x3f0228==='string'&&_0x3f0228):[];}function epsColumns(_0x5dc4f5){const _0x3f999e=_0x45a34b,_0x2d92c8=_0x5dc4f5[_0x3f999e(0x14b)]?findEpsEntity('/'+_0x5dc4f5[_0x3f999e(0x14b)]):undefined;if(!_0x2d92c8)return[];const _0x381789=[..._0x2d92c8['columns']||[],..._0x2d92c8[_0x3f999e(0x12d)]||[]],_0x24d22e=new Set(),_0x20a3e9=[];for(const _0x15f4c8 of _0x381789){if(!_0x15f4c8[_0x3f999e(0x133)]||!isMainTableCol(_0x15f4c8))continue;if(_0x24d22e[_0x3f999e(0x112)](_0x15f4c8[_0x3f999e(0x133)]))continue;_0x24d22e[_0x3f999e(0x152)](_0x15f4c8[_0x3f999e(0x133)]),_0x20a3e9[_0x3f999e(0x155)](_0x15f4c8);}return _0x20a3e9;}function columnTypeOf(_0x5c3a60){return String(_0x5c3a60['columnType']||'');}function sqlTypeOf(_0xc2a538){const _0x8dcc32=_0x45a34b;return String(_0xc2a538[_0x8dcc32(0x122)]||'')[_0x8dcc32(0x130)]();}function isTextCol(_0x4e7424){const _0x3e6f6c=_0x45a34b,_0x1135f7=columnTypeOf(_0x4e7424);if(_0x1135f7===_0x3e6f6c(0x11f))return!![];return sqlTypeOf(_0x4e7424)===_0x3e6f6c(0x11a);}function isIntegerCol(_0x59fb5f){const _0x4e3ae9=_0x45a34b,_0x47e9c5=columnTypeOf(_0x59fb5f);if(_0x47e9c5==='PgInteger'||_0x47e9c5===_0x4e3ae9(0x158)||_0x47e9c5===_0x4e3ae9(0x125)||_0x47e9c5===_0x4e3ae9(0x144)||_0x47e9c5===_0x4e3ae9(0x11c)||_0x47e9c5==='PgBigSerial')return!![];if(_0x59fb5f[_0x4e3ae9(0x11e)]===_0x4e3ae9(0x123)&&!isNumericCol(_0x59fb5f))return!![];return/^(integer|serial|smallint|bigint|smallserial|bigserial)\b/[_0x4e3ae9(0x13d)](sqlTypeOf(_0x59fb5f));}function isNumericCol(_0x155834){const _0x2b93c2=_0x45a34b,_0x490ae1=columnTypeOf(_0x155834);if(_0x490ae1===_0x2b93c2(0x10c)||_0x490ae1===_0x2b93c2(0x14d)||_0x490ae1===_0x2b93c2(0x11b))return!![];return/^(numeric|decimal|double|real)\b/[_0x2b93c2(0x13d)](sqlTypeOf(_0x155834));}function isBooleanCol(_0x38689e){const _0x38304d=_0x45a34b;return columnTypeOf(_0x38689e)==='PgBoolean'||_0x38689e['type']===_0x38304d(0x107)||sqlTypeOf(_0x38689e)['startsWith'](_0x38304d(0x107));}function numberPrecision(_0x450da1){const _0x39e767=_0x45a34b;if(isIntegerCol(_0x450da1))return 0x0;if(typeof _0x450da1[_0x39e767(0x10d)]===_0x39e767(0x123))return _0x450da1[_0x39e767(0x10d)];return 0x2;}export function mergeByProp(_0x2f7e6e,_0x277913){const _0x38f2fc=_0x45a34b,_0x3ccd06=_0x277913[_0x38f2fc(0x142)](_0x23f503=>Boolean(_0x23f503[_0x38f2fc(0x12f)])),_0x5a5d0c=_0x277913[_0x38f2fc(0x142)](_0x9f4511=>!_0x9f4511[_0x38f2fc(0x12f)]&&_0x9f4511[_0x38f2fc(0x11e)]),_0xcacf23=new Map(_0x3ccd06[_0x38f2fc(0x132)](_0xce07bb=>[String(_0xce07bb['prop']),_0xce07bb])),_0x1a093e=new Set(_0x5a5d0c[_0x38f2fc(0x132)](_0x9e718b=>String(_0x9e718b[_0x38f2fc(0x11e)]))),_0x38bf5d=new Set(),_0xc321ab=[];for(const _0xf06ec6 of _0x2f7e6e){if(!_0xf06ec6[_0x38f2fc(0x12f)]&&_0xf06ec6[_0x38f2fc(0x11e)]){if(_0x1a093e[_0x38f2fc(0x112)](String(_0xf06ec6[_0x38f2fc(0x11e)])))continue;_0xc321ab[_0x38f2fc(0x155)](_0xf06ec6);continue;}if(!_0xf06ec6[_0x38f2fc(0x12f)])continue;const _0x578c37=String(_0xf06ec6[_0x38f2fc(0x12f)]),_0x181081=_0xcacf23[_0x38f2fc(0x116)](_0x578c37);_0x181081?(_0xc321ab[_0x38f2fc(0x155)]({..._0xf06ec6,..._0x181081}),_0x38bf5d[_0x38f2fc(0x152)](_0x578c37)):_0xc321ab['push'](_0xf06ec6);}for(const _0xc19bc1 of _0x3ccd06){const _0x2ac669=String(_0xc19bc1[_0x38f2fc(0x12f)]);if(!_0x38bf5d['has'](_0x2ac669))_0xc321ab[_0x38f2fc(0x155)](_0xc19bc1);}return _0xc321ab['push'](..._0x5a5d0c),_0xc321ab;}const USER_ID_COL={'prop':_0x45a34b(0x13e),'label':_0x45a34b(0x157),'labelKey':'common.userId'},NICK_COL={'prop':_0x45a34b(0x10f),'label':'昵称','minWidth':0x78},EMAIL_COL={'prop':_0x45a34b(0x12a),'label':'邮箱','minWidth':0xa0};export function placeNickEmailAfterUserId(_0x43a084){const _0x1796b3=_0x45a34b,_0x1b7730=_0x43a084[_0x1796b3(0x12c)](_0x2e230d=>_0x2e230d?.[_0x1796b3(0x12f)]===_0x1796b3(0x13e));if(_0x1b7730<0x0)return _0x43a084;const _0x191457=_0x43a084['filter'](_0x3260cc=>_0x3260cc?.[_0x1796b3(0x12f)]!==_0x1796b3(0x10f)&&_0x3260cc?.['prop']!==_0x1796b3(0x12a)&&_0x3260cc?.[_0x1796b3(0x12f)]!=='phone'),_0x2a59ba=_0x191457[_0x1796b3(0x12c)](_0x379258=>_0x379258?.[_0x1796b3(0x12f)]===_0x1796b3(0x13e)),_0x3b0e69=_0x191457[_0x2a59ba];return _0x191457[_0x2a59ba]={...USER_ID_COL,..._0x3b0e69,'label':USER_ID_COL[_0x1796b3(0x139)],'labelKey':USER_ID_COL[_0x1796b3(0x147)]},_0x191457[_0x1796b3(0x121)](_0x2a59ba+0x1,0x0,{...NICK_COL},{...EMAIL_COL}),_0x191457;}export function resolveMergedTableColumns(_0x105eb5){const _0x5779d6=_0x45a34b,_0x35f67b=_0x105eb5[_0x5779d6(0x145)]?.[_0x5779d6(0x14c)]?_0x105eb5[_0x5779d6(0x145)]:_0x105eb5[_0x5779d6(0x156)]?.['columns']||[],_0x1314a5=(_0x105eb5['tablePlugins']||[])[_0x5779d6(0x12b)](_0x1ef5a6=>_0x1ef5a6?.[_0x5779d6(0x13b)]==='setAuto'),_0x648c26=_0x105eb5[_0x5779d6(0x156)]?.['auto']!==![]&&Boolean(_0x1314a5),_0x5b7fd3=_0x1314a5?.['ignoreFields']||[],_0xbf193c=_0x105eb5[_0x5779d6(0x156)]?.[_0x5779d6(0x134)]||[],_0x18f3b3=new Set([..._0x5b7fd3,..._0xbf193c]),_0x2191d3=_0x2069ba=>{const _0x4532be=_0x5779d6,_0x42eb99=pinOpColumnsLast(_0x2069ba);if(_0x18f3b3[_0x4532be(0x112)](_0x4532be(0x13e)))return _0x42eb99;return placeNickEmailAfterUserId(_0x42eb99);};if(!_0x648c26)return _0x2191d3(_0x35f67b);const _0xa99167=buildAutoTableColumns(_0x105eb5[_0x5779d6(0x135)],{'ignoreFields':[..._0x5b7fd3,..._0xbf193c]});return _0x2191d3(mergeByProp(_0xa99167,_0x35f67b));}function _0x287f(){const _0x5173aa=['DxnLCKLK','y29TBwvUDa','y2fSBa','y3jLyxrLvgLTzq','zMLSDgvY','zNvUy3rPB24','ugDcAwDjBNq','BwfUDwfS','Aw5WDxq','BgfIzwXlzxK','mZGYnZeXD29nD3bl','DMfSDwu','CMLNAhq','BMfTzxnWywnL','BgvUz3rO','ugDeB3vIBgvqCMvJAxnPB24','mtK1nti1nLPTv1jWsa','DM0TC3DPDgnO','DgvUyw50swq','BNvSBgfIBgu','ywrK','CgfNzvf1zxj5t3a','AgfZrgvMyxvSDa','ChvZAa','DgfIBgvpChrZ','55sO5OI3suq','ugDtzxjPywW','yM9VBgvHBG','C3rYAw5N','CgvYBwLZC2LVBG','C3rHCNrZv2L0Aa','DxbKyxrLvgLTzq','ugDoDw1LCMLJ','C2nHBgu','DxbKyxrL','BMLJA05HBwu','ndqYmZzzsuXACfe','AxnbCNjHEq','AgfZ','EwvZx25Vx2jVB2XLyw4','nZy4mZKYD3njBuDd','mZq4nZu5qxfIsNfY','z2v0','nJq1nZaXnfDqDKjUAG','zgvSzxrLvgLTzq','zgvSzxrL','Dgv4Da','ugDszwfS','ugDtBwfSBfnLCMLHBa','C2vSzwn0','DhLWzq','ugDuzxH0','mtKYsLrlB2TV','C3bSAwnL','C3fSvhLWzq','BNvTyMvY','zgLJDa','ugDtBwfSBeLUDa','x3bLCM1PC3nPB24','C291CMnL','B2jQzwn0','mJGWqxPXwMjc','zw1HAwW','zMLUza','zMLUzeLUzgv4','CgfNzunVBhvTBNm','CMvXDwLYzwq','ChjVCa','Dg9mB3DLCKnHC2u','mtqZmdyZmvjov1LbtG','BwfW','ChjVCgvYDhLoyw1L','AwDUB3jLrMLLBgrZ','C2vYDMLJzq','AgfZt3DUuhjVCgvYDhK','Dgv4DgfYzwe','C3rHDhvZ','BgfIzwW','mtq1uKPuqM9s','x19WBhvNAw4','C3DPDgnO','DgvZDa'];_0x287f=function(){return _0x5173aa;};return _0x287f();}export function pinOpColumnsLast(_0x2d82ae){const _0x9f78fb=_0x45a34b,_0x559bc8=[],_0x533db4=[];for(const _0x406202 of _0x2d82ae){_0x406202[_0x9f78fb(0x11e)]==='op'?_0x559bc8['push']({..._0x406202,'fixed':'right'}):_0x533db4[_0x9f78fb(0x155)](_0x406202);}if(!_0x559bc8[_0x9f78fb(0x14c)])return _0x2d82ae;return[..._0x533db4,..._0x559bc8];}export function sortRequiredFirst(_0x229213){const _0x3fc2af=_0x45a34b,_0x1b1626=[],_0x7c7932=[];for(const _0x5c8896 of _0x229213){_0x5c8896[_0x3fc2af(0x12e)]===!![]||typeof _0x5c8896[_0x3fc2af(0x12e)]===_0x3fc2af(0x143)?_0x1b1626['push'](_0x5c8896):_0x7c7932[_0x3fc2af(0x155)](_0x5c8896);}return[..._0x1b1626,..._0x7c7932];}function _0x2c8c(_0x90f9fb,_0x462bb4){_0x90f9fb=_0x90f9fb-0x107;const _0x287f22=_0x287f();let _0x2c8cce=_0x287f22[_0x90f9fb];if(_0x2c8c['AceZJG']===undefined){var _0x53067f=function(_0x25102a){const _0x5d1f2f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c2e6c='',_0x59e319='';for(let _0x36cc3c=0x0,_0x48dd21,_0x45bf00,_0x589912=0x0;_0x45bf00=_0x25102a['charAt'](_0x589912++);~_0x45bf00&&(_0x48dd21=_0x36cc3c%0x4?_0x48dd21*0x40+_0x45bf00:_0x45bf00,_0x36cc3c++%0x4)?_0x3c2e6c+=String['fromCharCode'](0xff&_0x48dd21>>(-0x2*_0x36cc3c&0x6)):0x0){_0x45bf00=_0x5d1f2f['indexOf'](_0x45bf00);}for(let _0x59dd9c=0x0,_0x34464a=_0x3c2e6c['length'];_0x59dd9c<_0x34464a;_0x59dd9c++){_0x59e319+='%'+('00'+_0x3c2e6c['charCodeAt'](_0x59dd9c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59e319);};_0x2c8c['ZLQAAh']=_0x53067f,_0x2c8c['KglAit']={},_0x2c8c['AceZJG']=!![];}const _0x4c2bcd=_0x287f22[0x0],_0x26b764=_0x90f9fb+_0x4c2bcd,_0x699074=_0x2c8c['KglAit'][_0x26b764];return!_0x699074?(_0x2c8cce=_0x2c8c['ZLQAAh'](_0x2c8cce),_0x2c8c['KglAit'][_0x26b764]=_0x2c8cce):_0x2c8cce=_0x699074,_0x2c8cce;}export function buildAutoUpsertItems(_0x3ef488,_0x3bafc9={}){const _0x31e416=_0x45a34b,_0x2ce346=new Set([...UPSERT_BUILTIN_IGNORE,..._0x3bafc9[_0x31e416(0x134)]||[]]),_0x258592=[];for(const _0x424f57 of epsColumns(_0x3ef488)){const _0x2cecf7=_0x424f57['propertyName'];if(_0x2ce346[_0x31e416(0x112)](_0x2cecf7))continue;const _0x35f778=_0x424f57[_0x31e416(0x13f)]||_0x2cecf7,_0x4f5078=dictKeyOf(_0x424f57),_0x22c20b=_0x424f57[_0x31e416(0x151)]===![]&&_0x424f57[_0x31e416(0x154)]!==!![],_0x1c6e2b={'prop':_0x2cecf7,'label':_0x35f778,'span':0xc,..._0x22c20b?{'required':!![]}:{}};if(_0x2cecf7===_0x31e416(0x138)){const _0x55544c=_0x4f5078||_0x31e416(0x138);isSwitchDict(_0x55544c)?_0x258592[_0x31e416(0x155)](switchFormItem(_0x1c6e2b,_0x55544c,switchDefaultValue(_0x55544c))):_0x258592[_0x31e416(0x155)]({..._0x1c6e2b,'type':'select','dict':_0x55544c,'value':()=>dictFirstValue(_0x55544c)});continue;}if(_0x4f5078){isSwitchDict(_0x4f5078)?_0x258592[_0x31e416(0x155)](switchFormItem(_0x1c6e2b,_0x4f5078,switchDefaultValue(_0x4f5078))):_0x258592[_0x31e416(0x155)]({..._0x1c6e2b,'type':_0x31e416(0x11d),'dict':_0x4f5078,'value':()=>dictFirstValue(_0x4f5078)});continue;}if(isTextCol(_0x424f57)){_0x258592[_0x31e416(0x155)]({..._0x1c6e2b,'type':_0x31e416(0x137),'span':0xc});continue;}if(isBooleanCol(_0x424f57)){_0x258592[_0x31e416(0x155)]({..._0x1c6e2b,'type':_0x31e416(0x13c),'value':![],'component':{'props':()=>mapDictOptions(_0x31e416(0x113))},'dict':_0x31e416(0x113)});continue;}if(isIntegerCol(_0x424f57)||isNumericCol(_0x424f57)){const _0x181bf4=numberPrecision(_0x424f57);_0x258592[_0x31e416(0x155)]({..._0x1c6e2b,'type':'number','component':{'props':{'type':_0x31e416(0x123),'precision':_0x181bf4,'controls':![]}}});continue;}_0x258592[_0x31e416(0x155)]({..._0x1c6e2b,'type':_0x31e416(0x146)});}return _0x258592;}export function buildAutoTableColumns(_0x5761a8,_0x29a450={}){const _0x4dfe8c=_0x45a34b,_0xf07867=new Set([...TABLE_BUILTIN_IGNORE,...epsTableIgnore(_0x5761a8),..._0x29a450[_0x4dfe8c(0x134)]||[]]),_0x678b13=[];!_0xf07867['has']('selection')&&_0x678b13[_0x4dfe8c(0x155)]({'type':'selection','width':0x32});for(const _0x12703d of epsColumns(_0x5761a8)){const _0x2c198c=_0x12703d[_0x4dfe8c(0x133)];if(_0xf07867['has'](_0x2c198c))continue;const _0x1bebdf=_0x12703d[_0x4dfe8c(0x13f)]||_0x2c198c,_0x44cd6e=dictKeyOf(_0x12703d);if(_0x2c198c===_0x4dfe8c(0x138)){const _0x217f51=_0x44cd6e||_0x4dfe8c(0x138);isSwitchDict(_0x217f51)?_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'width':0x50,'component':{'name':_0x4dfe8c(0x14f),'props':()=>mapDictOptions(_0x217f51)}}):_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'width':0x64,'dict':()=>mapDictOptions(_0x217f51)});continue;}if(_0x44cd6e&&isSwitchDict(_0x44cd6e)){_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'width':0x50,'component':{'name':_0x4dfe8c(0x14f),'props':()=>mapDictOptions(_0x44cd6e)}});continue;}if(_0x2c198c==='id'){_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'width':0x50});continue;}if(_0x2c198c===_0x4dfe8c(0x141)){_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'width':0xa0});continue;}if(_0x44cd6e){_0x678b13['push']({'prop':_0x2c198c,'label':_0x1bebdf,'minWidth':0x78,'dict':()=>mapDictOptions(_0x44cd6e)});continue;}if(isTextCol(_0x12703d)){_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'minWidth':0xa0,'showOverflowTooltip':!![]});continue;}_0x678b13[_0x4dfe8c(0x155)]({'prop':_0x2c198c,'label':_0x1bebdf,'minWidth':0x78});}if(!_0xf07867['has']('op')){const _0x44e237=buildAutoOpButtons(_0x5761a8);_0x44e237[_0x4dfe8c(0x14c)]&&_0x678b13[_0x4dfe8c(0x155)]({'type':'op','buttons':_0x44e237,'fixed':_0x4dfe8c(0x14a)});}return _0x678b13;}