vome-core 0.3.6 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/admin/components/ui/avatar/index.js +1 -1
  2. package/dist/admin/components/ui/checkbox/index.js +1 -1
  3. package/dist/admin/components/ui/dialog/index.js +1 -1
  4. package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
  5. package/dist/admin/components/ui/input/index.js +1 -1
  6. package/dist/admin/components/ui/label/index.js +1 -1
  7. package/dist/admin/components/ui/scroll-area/index.js +1 -1
  8. package/dist/admin/components/ui/select/index.js +1 -1
  9. package/dist/admin/components/ui/separator/index.js +1 -1
  10. package/dist/admin/components/ui/sheet/index.js +1 -1
  11. package/dist/admin/components/ui/sonner/index.js +1 -1
  12. package/dist/admin/components/ui/table/index.js +1 -1
  13. package/dist/admin/components/ui/tabs/index.js +1 -1
  14. package/dist/admin/components/ui/tooltip/index.js +1 -1
  15. package/dist/admin/components/vm-dept-tree.vue +110 -172
  16. package/dist/admin/components/vm-loading.vue +113 -0
  17. package/dist/admin/crud/auto-fields.js +1 -1
  18. package/dist/admin/crud/components/vm-richtext-extensions.js +1 -1
  19. package/dist/admin/crud/components/vm-select.vue +96 -5
  20. package/dist/admin/crud/config.js +1 -1
  21. package/dist/admin/crud/confirm.js +1 -1
  22. package/dist/admin/crud/crud-page-request.js +1 -1
  23. package/dist/admin/crud/data-i18n.js +1 -1
  24. package/dist/admin/crud/dict.js +1 -1
  25. package/dist/admin/crud/export-fetch.js +1 -1
  26. package/dist/admin/crud/index.d.ts +0 -1
  27. package/dist/admin/crud/index.js +0 -1
  28. package/dist/admin/crud/key.js +1 -1
  29. package/dist/admin/crud/plugins.js +1 -1
  30. package/dist/admin/crud/span.js +1 -1
  31. package/dist/admin/crud/style.js +1 -1
  32. package/dist/admin/crud/validate.js +1 -1
  33. package/dist/admin/crud/vm-upsert.vue +0 -1
  34. package/dist/admin/directives/perm.js +1 -1
  35. package/dist/admin/hooks/useUpload.js +1 -1
  36. package/dist/admin/lib/browser.js +1 -1
  37. package/dist/admin/lib/cn.js +1 -1
  38. package/dist/admin/lib/dialog-float.js +1 -1
  39. package/dist/admin/lib/export-excel.js +1 -1
  40. package/dist/admin/lib/import-excel.js +1 -1
  41. package/dist/admin/lib/json.js +1 -1
  42. package/dist/admin/lib/menu.js +1 -1
  43. package/dist/admin/lib/micro-locale.js +1 -1
  44. package/dist/admin/lib/micro-theme.js +1 -1
  45. package/dist/admin/lib/shell.js +1 -1
  46. package/dist/admin/lib/theme-color-options.js +1 -1
  47. package/dist/admin/lib/tree.js +1 -1
  48. package/dist/admin/lib/upload.js +1 -1
  49. package/dist/admin/lib/video-frame.js +1 -1
  50. package/dist/admin/router/create.js +1 -1
  51. package/dist/admin/router/guards.js +1 -1
  52. package/dist/admin/styles/base.css +1 -1
  53. package/dist/ai/index.js +1 -1
  54. package/dist/client/ai-model-registry.js +1 -1
  55. package/dist/client/base.js +1 -1
  56. package/dist/client/configure.js +1 -1
  57. package/dist/client/dict.js +1 -1
  58. package/dist/client/eps-payload.js +1 -1
  59. package/dist/client/eps.js +1 -1
  60. package/dist/client/index.js +1 -1
  61. package/dist/client/locale-store.js +1 -1
  62. package/dist/client/service.js +1 -1
  63. package/dist/client/vite-admin.js +1 -1
  64. package/dist/client/vite-auto-import.js +1 -1
  65. package/dist/client/vite-micro-proxy.js +1 -1
  66. package/dist/client/vite-plugin-eps.js +1 -1
  67. package/dist/client/vite-resolve.js +1 -1
  68. package/dist/config/index.js +1 -1
  69. package/dist/index.js +1 -1
  70. package/dist/server/index.js +1 -1
  71. package/dist/shared/datetime-picker.js +1 -1
  72. package/dist/shared/excel.js +1 -1
  73. package/dist/shared/index.js +1 -1
  74. package/dist/shared/locale-json.js +1 -1
  75. package/dist/shared/tree.js +1 -1
  76. package/package.json +1 -1
  77. package/dist/admin/crud/components/vm-user-select.vue +0 -234
@@ -5,7 +5,7 @@
5
5
  :loading="loading"
6
6
  :add="canAdd && !onlyTrashed"
7
7
  add-title="新增顶级部门"
8
- @refresh="load"
8
+ @refresh="emit('refresh')"
9
9
  @add="openAdd(null)"
10
10
  >
11
11
  <button
@@ -56,13 +56,13 @@
56
56
  </button>
57
57
  </div>
58
58
  <div v-else-if="!onlyTrashed && canManage" class="vm-dept-tree__ops" @click.stop>
59
- <button type="button" title="新增子部门" @click="openAdd(row.id)">
59
+ <button v-if="canAdd" type="button" title="新增子部门" @click="openAdd(row.id)">
60
60
  <i class="ri-add-line" />
61
61
  </button>
62
- <button type="button" title="编辑" @click="openEdit(row)">
62
+ <button v-if="canUpdate" type="button" title="编辑" @click="openEdit(row)">
63
63
  <i class="ri-edit-line" />
64
64
  </button>
65
- <button type="button" title="删除" @click="remove(row)">
65
+ <button v-if="canDelete" type="button" title="删除" @click="remove(row)">
66
66
  <i class="ri-delete-bin-line" />
67
67
  </button>
68
68
  </div>
@@ -101,20 +101,20 @@
101
101
  </template>
102
102
 
103
103
  <script setup lang="ts">
104
- import { useVome } from '../hooks/useVome'
105
- import { ref, computed, watch, onMounted } from 'vue'
104
+ import { ref, computed, watch } from 'vue'
106
105
  import { toast } from 'vue-sonner'
107
- import { deepTree } from '../crud'
106
+ import { flattenTree } from '../lib/tree'
108
107
  import { vmConfirm } from '../crud/confirm'
109
108
 
110
109
  defineOptions({ name: 'vm-dept-tree' })
111
110
 
112
- type DeptRow = {
111
+ /** 调用方须先组装好的树节点(含 children),组件不再做扁平→树转换 */
112
+ export type DeptTreeNode = {
113
113
  id: number
114
114
  parentId: number | null
115
115
  orderNum: number
116
116
  name: string
117
- children?: DeptRow[]
117
+ children?: DeptTreeNode[]
118
118
  }
119
119
 
120
120
  type FlatRow = {
@@ -129,64 +129,70 @@ type FlatRow = {
129
129
 
130
130
  const props = withDefaults(
131
131
  defineProps<{
132
+ /** 已是树形结构的部门数据 */
133
+ data?: DeptTreeNode[]
134
+ loading?: boolean
132
135
  modelValue?: number | null
133
136
  rootLabel?: string
134
- /** 回收站:只加载已软删部门 */
137
+ /** 回收站 UI:隐藏新增,显示恢复/彻底删除 */
135
138
  onlyTrashed?: boolean
139
+ canAdd?: boolean
140
+ canUpdate?: boolean
141
+ canDelete?: boolean
142
+ canRestore?: boolean
136
143
  }>(),
137
144
  {
145
+ data: () => [],
146
+ loading: false,
138
147
  modelValue: null,
139
148
  rootLabel: '全部',
140
149
  onlyTrashed: false,
150
+ canAdd: false,
151
+ canUpdate: false,
152
+ canDelete: false,
153
+ canRestore: false,
141
154
  },
142
155
  )
143
156
 
144
157
  const emit = defineEmits<{
145
158
  'update:modelValue': [v: number | null]
146
159
  change: [v: number | null, meta: { name: string; ids: number[] }]
147
- updated: []
160
+ refresh: []
161
+ add: [payload: { name: string; orderNum: number; parentId: number | null }]
162
+ update: [payload: { id: number; name: string; orderNum: number; parentId: number | null }]
163
+ delete: [payload: { id: number }]
164
+ restore: [payload: { id: number }]
165
+ forceDelete: [payload: { id: number }]
148
166
  }>()
149
167
 
150
- const { service } = useVome()
151
-
152
- const loading = ref(false)
153
168
  const submitting = ref(false)
154
- const rows = ref<DeptRow[]>([])
155
169
  const expanded = ref(new Set<number>())
156
170
  const formOpen = ref(false)
157
171
  const formMode = ref<'add' | 'edit'>('add')
158
172
  const form = ref({ id: 0, name: '', orderNum: '0', parentId: null as number | null })
159
173
  const parentName = ref('顶级')
174
+ const trashBusyId = ref<number | null>(null)
160
175
 
161
- const canAdd = computed(() => Boolean(service.base.department?._permission?.add))
162
176
  const canManage = computed(
163
- () =>
164
- Boolean(service.base.department?._permission?.update) ||
165
- Boolean(service.base.department?._permission?.delete) ||
166
- canAdd.value,
167
- )
168
- const canTrashOps = computed(
169
- () =>
170
- Boolean(service.base.department?._permission?.restore) ||
171
- Boolean(service.base.department?._permission?.delete),
177
+ () => props.canAdd || props.canUpdate || props.canDelete,
172
178
  )
173
- const trashBusyId = ref<number | null>(null)
179
+ const canTrashOps = computed(() => props.canRestore || props.canDelete)
174
180
 
175
181
  const idNameMap = computed(() => {
176
182
  const map = new Map<number, string>()
177
- const walk = (list: DeptRow[]) => {
183
+ const walk = (list: DeptTreeNode[]) => {
178
184
  for (const n of list) {
179
185
  map.set(n.id, n.name)
180
186
  if (n.children?.length) walk(n.children)
181
187
  }
182
188
  }
183
- walk(rows.value)
189
+ walk(props.data)
184
190
  return map
185
191
  })
186
192
 
187
193
  const descendantMap = computed(() => {
188
194
  const map = new Map<number, number[]>()
189
- const walk = (node: DeptRow): number[] => {
195
+ const walk = (node: DeptTreeNode): number[] => {
190
196
  let ids: number[] = []
191
197
  for (const c of node.children || []) {
192
198
  ids.push(c.id)
@@ -195,11 +201,11 @@ const descendantMap = computed(() => {
195
201
  map.set(node.id, ids)
196
202
  return ids
197
203
  }
198
- for (const n of rows.value) walk(n)
204
+ for (const n of props.data) walk(n)
199
205
  return map
200
206
  })
201
207
 
202
- function collectExpandable(list: DeptRow[], into: Set<number>) {
208
+ function collectExpandable(list: DeptTreeNode[], into: Set<number>) {
203
209
  for (const n of list) {
204
210
  if (n.children?.length) {
205
211
  into.add(n.id)
@@ -208,39 +214,21 @@ function collectExpandable(list: DeptRow[], into: Set<number>) {
208
214
  }
209
215
  }
210
216
 
211
- function toTree(list: Array<Record<string, unknown>>) {
212
- const flat = list
213
- .filter((d) => d.id != null)
214
- .map((d) => ({
215
- id: Number(d.id),
216
- parentId: d.parentId == null ? null : Number(d.parentId),
217
- orderNum: Number(d.orderNum ?? 0),
218
- name: String(d.name ?? ''),
219
- }))
220
- return deepTree(flat) as DeptRow[]
221
- }
222
-
223
- function flatten(nodes: DeptRow[], depth = 0, out: FlatRow[] = []) {
224
- for (const n of nodes) {
225
- const kids = n.children || []
226
- out.push({
227
- id: n.id,
228
- label: n.name,
229
- depth,
230
- hasChildren: kids.length > 0,
231
- visible: true,
232
- parentId: n.parentId,
233
- orderNum: n.orderNum,
234
- })
235
- if (kids.length && expanded.value.has(n.id)) flatten(kids, depth + 1, out)
236
- }
237
- return out
238
- }
239
-
240
- const visibleRows = computed(() => flatten(rows.value))
217
+ const visibleRows = computed((): FlatRow[] => {
218
+ const flat = flattenTree(props.data, expanded.value)
219
+ return flat.map((n) => ({
220
+ id: n.id as number,
221
+ label: n.name,
222
+ depth: n.depth,
223
+ hasChildren: n.hasChildren,
224
+ visible: true,
225
+ parentId: n.parentId ?? null,
226
+ orderNum: n.orderNum ?? 0,
227
+ }))
228
+ })
241
229
 
242
230
  const emptyText = computed(() => {
243
- if (loading.value || visibleRows.value.length) return ''
231
+ if (props.loading || visibleRows.value.length) return ''
244
232
  return props.onlyTrashed ? '回收站为空' : '暂无部门'
245
233
  })
246
234
 
@@ -262,83 +250,25 @@ function toggleExpand(id: number) {
262
250
  expanded.value = next
263
251
  }
264
252
 
265
- async function load() {
266
- loading.value = true
267
- try {
268
- const list = (await service.base.department.tree({
269
- onlyTrashed: props.onlyTrashed || undefined,
270
- })) as Array<Record<string, unknown>>
271
- rows.value = toTree(Array.isArray(list) ? list : [])
272
- const next = new Set<number>()
273
- collectExpandable(rows.value, next)
274
- expanded.value = next
275
- if (props.modelValue != null && !idNameMap.value.has(props.modelValue)) {
276
- select(null)
277
- }
278
- } catch (e) {
279
- console.error('[dept-tree] load failed', e)
280
- rows.value = []
281
- toast.error('加载部门失败')
282
- } finally {
283
- loading.value = false
284
- }
285
- }
286
-
287
- async function restoreDept(row: FlatRow) {
288
- if (trashBusyId.value === row.id) return
289
- const ok = await vmConfirm({
290
- title: '恢复部门',
291
- message: `确定恢复「${row.label}」?`,
292
- confirmText: '恢复',
293
- cancelText: '取消',
294
- })
295
- if (!ok) return
296
- trashBusyId.value = row.id
297
- try {
298
- await service.base.department.restore({ ids: [row.id] })
299
- toast.success('已恢复')
300
- if (props.modelValue === row.id) select(null)
301
- await load()
302
- emit('updated')
303
- } catch (e) {
304
- console.error(e)
305
- const err = e as Error & { toasted?: boolean }
306
- if (!err.toasted) toast.error(e instanceof Error ? e.message : '恢复失败')
307
- } finally {
308
- trashBusyId.value = null
253
+ function syncExpandedFromData() {
254
+ const next = new Set<number>()
255
+ collectExpandable(props.data, next)
256
+ expanded.value = next
257
+ if (props.modelValue != null && !idNameMap.value.has(props.modelValue)) {
258
+ select(null)
309
259
  }
310
260
  }
311
261
 
312
- async function forceDeleteDept(row: FlatRow) {
313
- if (trashBusyId.value === row.id) return
314
- const ok = await vmConfirm({
315
- title: '彻底删除',
316
- message: `确定彻底删除「${row.label}」?此操作不可恢复。`,
317
- confirmText: '彻底删除',
318
- cancelText: '取消',
319
- })
320
- if (!ok) return
321
- trashBusyId.value = row.id
322
- try {
323
- await service.base.department.delete({ ids: [row.id], force: true })
324
- toast.success('已彻底删除')
325
- if (props.modelValue === row.id) select(null)
326
- await load()
327
- emit('updated')
328
- } catch (e) {
329
- console.error(e)
330
- const err = e as Error & { toasted?: boolean }
331
- if (!err.toasted) toast.error(e instanceof Error ? e.message : '删除失败')
332
- } finally {
333
- trashBusyId.value = null
334
- }
335
- }
262
+ watch(
263
+ () => props.data,
264
+ () => syncExpandedFromData(),
265
+ { deep: true, immediate: true },
266
+ )
336
267
 
337
268
  watch(
338
269
  () => props.onlyTrashed,
339
270
  () => {
340
271
  select(null)
341
- void load()
342
272
  },
343
273
  )
344
274
 
@@ -363,36 +293,25 @@ function openEdit(row: FlatRow) {
363
293
  formOpen.value = true
364
294
  }
365
295
 
366
- async function submitForm() {
296
+ function submitForm() {
367
297
  const name = form.value.name.trim()
368
298
  if (!name) {
369
299
  toast.error('请填写部门名称')
370
300
  return
371
301
  }
372
302
  submitting.value = true
373
- try {
374
- const payload = {
375
- name,
376
- orderNum: Number(form.value.orderNum || 0),
377
- parentId: form.value.parentId,
378
- }
379
- if (formMode.value === 'add') {
380
- await service.base.department.add(payload)
381
- toast.success('已新增部门')
382
- } else {
383
- await service.base.department.update({ ...payload, id: form.value.id })
384
- toast.success('已保存部门')
385
- }
386
- formOpen.value = false
387
- await load()
388
- emit('updated')
389
- } catch (e) {
390
- console.error(e)
391
- const err = e as Error & { toasted?: boolean }
392
- if (!err.toasted) toast.error(e instanceof Error ? e.message : '保存失败')
393
- } finally {
394
- submitting.value = false
303
+ const payload = {
304
+ name,
305
+ orderNum: Number(form.value.orderNum || 0),
306
+ parentId: form.value.parentId,
307
+ }
308
+ if (formMode.value === 'add') {
309
+ emit('add', payload)
310
+ } else {
311
+ emit('update', { ...payload, id: form.value.id })
395
312
  }
313
+ formOpen.value = false
314
+ submitting.value = false
396
315
  }
397
316
 
398
317
  async function remove(row: FlatRow) {
@@ -403,27 +322,41 @@ async function remove(row: FlatRow) {
403
322
  cancelText: '取消',
404
323
  })
405
324
  if (!ok) return
406
- submitting.value = true
407
- try {
408
- await service.base.department.delete({ ids: [row.id] })
409
- toast.success('已删除')
410
- if (props.modelValue === row.id) select(null)
411
- await load()
412
- emit('updated')
413
- } catch (e) {
414
- console.error(e)
415
- const err = e as Error & { toasted?: boolean }
416
- if (!err.toasted) toast.error(e instanceof Error ? e.message : '删除失败')
417
- } finally {
418
- submitting.value = false
419
- }
325
+ if (props.modelValue === row.id) select(null)
326
+ emit('delete', { id: row.id })
420
327
  }
421
328
 
422
- onMounted(() => {
423
- void load()
424
- })
329
+ async function restoreDept(row: FlatRow) {
330
+ if (trashBusyId.value === row.id) return
331
+ const ok = await vmConfirm({
332
+ title: '恢复部门',
333
+ message: `确定恢复「${row.label}」?`,
334
+ confirmText: '恢复',
335
+ cancelText: '取消',
336
+ })
337
+ if (!ok) return
338
+ trashBusyId.value = row.id
339
+ if (props.modelValue === row.id) select(null)
340
+ emit('restore', { id: row.id })
341
+ trashBusyId.value = null
342
+ }
425
343
 
426
- defineExpose({ load, idNameMap })
344
+ async function forceDeleteDept(row: FlatRow) {
345
+ if (trashBusyId.value === row.id) return
346
+ const ok = await vmConfirm({
347
+ title: '彻底删除',
348
+ message: `确定彻底删除「${row.label}」?此操作不可恢复。`,
349
+ confirmText: '彻底删除',
350
+ cancelText: '取消',
351
+ })
352
+ if (!ok) return
353
+ trashBusyId.value = row.id
354
+ if (props.modelValue === row.id) select(null)
355
+ emit('forceDelete', { id: row.id })
356
+ trashBusyId.value = null
357
+ }
358
+
359
+ defineExpose({ idNameMap })
427
360
  </script>
428
361
 
429
362
  <style lang="scss" scoped>
@@ -529,6 +462,11 @@ defineExpose({ load, idNameMap })
529
462
  background: var(--card);
530
463
  color: var(--brand);
531
464
  }
465
+
466
+ &:disabled {
467
+ opacity: 0.5;
468
+ cursor: not-allowed;
469
+ }
532
470
  }
533
471
  }
534
472
 
@@ -0,0 +1,113 @@
1
+ <template>
2
+ <div
3
+ v-if="mode === 'overlay'"
4
+ class="vm-loading vm-loading--overlay"
5
+ :class="{ 'is-fixed': fixed }"
6
+ :style="overlayStyle"
7
+ aria-busy="true"
8
+ aria-live="polite"
9
+ >
10
+ <i
11
+ class="ri-loader-4-line vm-loading__spinner"
12
+ :style="spinnerStyle"
13
+ aria-hidden="true"
14
+ />
15
+ </div>
16
+ <div
17
+ v-else
18
+ class="vm-loading vm-loading--footer"
19
+ :style="footerStyle"
20
+ role="status"
21
+ >
22
+ {{ status === 'end' ? endText : loadingText }}
23
+ </div>
24
+ </template>
25
+
26
+ <script setup lang="ts">
27
+ import { computed } from 'vue'
28
+
29
+ defineOptions({ name: 'vm-loading' })
30
+
31
+ const props = withDefaults(
32
+ defineProps<{
33
+ /** overlay:蒙层转圈;footer:列表底部文案 */
34
+ mode?: 'overlay' | 'footer'
35
+ /** footer:loading = 加载中…;end = 没有更多了 */
36
+ status?: 'loading' | 'end'
37
+ /** overlay 蒙层色,默认主题半透明 card */
38
+ overlayColor?: string
39
+ /** overlay 转圈色,默认 --brand */
40
+ spinnerColor?: string
41
+ /** footer 文案色,默认 --muted-foreground */
42
+ textColor?: string
43
+ /** overlay 是否 fixed 盖住视口;默认 absolute 盖住定位父级 */
44
+ fixed?: boolean
45
+ loadingText?: string
46
+ endText?: string
47
+ }>(),
48
+ {
49
+ mode: 'overlay',
50
+ status: 'loading',
51
+ fixed: false,
52
+ loadingText: '加载中...',
53
+ endText: '没有更多了',
54
+ },
55
+ )
56
+
57
+ const overlayStyle = computed(() => ({
58
+ background:
59
+ props.overlayColor ||
60
+ 'color-mix(in srgb, var(--card) 70%, transparent)',
61
+ }))
62
+
63
+ const spinnerStyle = computed(() => ({
64
+ color: props.spinnerColor || 'var(--brand)',
65
+ }))
66
+
67
+ const footerStyle = computed(() => ({
68
+ color: props.textColor || 'var(--muted-foreground)',
69
+ }))
70
+ </script>
71
+
72
+ <style lang="scss" scoped>
73
+ .vm-loading--overlay {
74
+ position: absolute;
75
+ inset: 0;
76
+ z-index: 20;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ backdrop-filter: blur(1px);
81
+ pointer-events: all;
82
+
83
+ &.is-fixed {
84
+ position: fixed;
85
+ }
86
+ }
87
+
88
+ .vm-loading__spinner {
89
+ font-size: 28px;
90
+ line-height: 1;
91
+ animation: vm-loading-spin 0.8s linear infinite;
92
+ }
93
+
94
+ .vm-loading--footer {
95
+ display: flex;
96
+ box-sizing: border-box;
97
+ width: 100%;
98
+ min-height: 36px;
99
+ align-items: center;
100
+ justify-content: center;
101
+ margin: 0;
102
+ padding: 8px 0;
103
+ background: transparent;
104
+ font-size: 12px;
105
+ text-align: center;
106
+ }
107
+
108
+ @keyframes vm-loading-spin {
109
+ to {
110
+ transform: rotate(360deg);
111
+ }
112
+ }
113
+ </style>
@@ -1 +1 @@
1
- const _0x1ddfcd=_0x23b8;(function(_0x160406,_0xe6a9a3){const _0x23cdb4=_0x23b8,_0x593bf5=_0x160406();while(!![]){try{const _0x634313=-parseInt(_0x23cdb4(0xb8))/0x1+parseInt(_0x23cdb4(0xdf))/0x2*(-parseInt(_0x23cdb4(0xb5))/0x3)+parseInt(_0x23cdb4(0xc4))/0x4*(-parseInt(_0x23cdb4(0xd1))/0x5)+parseInt(_0x23cdb4(0xa6))/0x6+-parseInt(_0x23cdb4(0xa4))/0x7*(-parseInt(_0x23cdb4(0xa9))/0x8)+-parseInt(_0x23cdb4(0xad))/0x9*(parseInt(_0x23cdb4(0xa0))/0xa)+-parseInt(_0x23cdb4(0xb6))/0xb*(-parseInt(_0x23cdb4(0xba))/0xc);if(_0x634313===_0xe6a9a3)break;else _0x593bf5['push'](_0x593bf5['shift']());}catch(_0x20d1be){_0x593bf5['push'](_0x593bf5['shift']());}}}(_0x4f1a,0xf2e91));import{findEpsEntity}from'../lib/eps';import{getDictOptions}from'../../client';export const UPSERT_BUILTIN_IGNORE=['id',_0x1ddfcd(0xd8),_0x1ddfcd(0xd5),_0x1ddfcd(0xbf),_0x1ddfcd(0xc0)];export const TABLE_BUILTIN_IGNORE=[_0x1ddfcd(0xc0),_0x1ddfcd(0xbf)];function dictKeyOf(_0x2e0194){const _0x602a2a=_0x1ddfcd;if(typeof _0x2e0194['dict']==='string'&&_0x2e0194[_0x602a2a(0xda)])return _0x2e0194[_0x602a2a(0xda)];if(Array[_0x602a2a(0xa2)](_0x2e0194[_0x602a2a(0xda)])&&_0x2e0194['dict'][0x0])return _0x2e0194[_0x602a2a(0xda)][0x0];return;}function isSwitchDict(_0x217273){const _0x5a7ac2=_0x1ddfcd;return _0x217273===_0x5a7ac2(0xb2)||_0x217273===_0x5a7ac2(0xb1);}function switchFormItem(_0x1fd436,_0x3290ba,_0x13b57a){const _0x4a4953=_0x1ddfcd;return{..._0x1fd436,'type':_0x4a4953(0xdd),'value':_0x13b57a,'dict':_0x3290ba,'component':{'props':()=>mapDictOptions(_0x3290ba)}};}function _0x4f1a(){const _0x4c4a0a=['zwrPDa','DgvUyw50swq','BMfTzxnWywnL','zgLJDa','Aw5WDxq','CMvXDwLYzwq','C3DPDgnO','ugDcB29SzwfU','mtrRsNPxAg8','BgfIzwW','mJa2mde0mhPXDfjUEG','ywrK','AxnbCNjHEq','DM0TC3DPDgnO','mZvyBKLHz0W','C2vSzwn0','ndGWmdC2oeT1q1bjzq','y29SDw1UCW','C2vSzwn0Aw9U','mta5nty2ng9NreDRCW','BNvTyMvY','DgvZDa','zNvUy3rPB24','owzuzLD1tW','y29SB3i','yM9VBgvHBG','C2nHBgu','EwvZx25V','C3rHDhvZ','C3rHCNrZv2L0Aa','ugDcAwDjBNq','mZeYndu2BfDYt3ju','nJm4D1PLBwDo','y29TBwvUDa','odKWodK0sM1YuwfO','ugDeB3vIBgvqCMvJAxnPB24','mZG4mJm2u0znt1zx','Dg9mB3DLCKnHC2u','C291CMnL','ugDjBNrLz2vY','BNvSBgfIBgu','DxbKyxrLvgLTzq','zgvSzxrLvgLTzq','ChjVCa','ugDcAwDtzxjPywW','C3rYAw5N','mtjVsw9RAeO','ugDoDw1LCMLJ','ChjVCgvYDhLoyw1L','ugDuzxH0','ugDtzxjPywW','DhLWzq','ChvZAa','ugDtBwfSBfnLCMLHBa','zMLSDgvY','ugDszwfS','CMLNAhq','y29SDw1UvhLWzq','AgfZ','otaWnZy1wgrns3vA','CgfNzunVBhvTBNm','DMfSDwu','BwfW','y3jLyxrLvgLTzq','C3fSvhLWzq'];_0x4f1a=function(){return _0x4c4a0a;};return _0x4f1a();}export function mapDictOptions(_0x333551){const _0x3e6db3=_0x1ddfcd;return getDictOptions(_0x333551)[_0x3e6db3(0xd4)](_0x3098a2=>{const _0x51bfbe=_0x3e6db3;let _0x7f9cb0=_0x3098a2[_0x51bfbe(0xd3)];return typeof _0x3098a2['value']===_0x51bfbe(0xc3)&&/^-?\d+(\.\d+)?$/['test'](_0x3098a2[_0x51bfbe(0xd3)])&&(_0x7f9cb0=Number(_0x3098a2[_0x51bfbe(0xd3)])),{'label':String(_0x3098a2[_0x51bfbe(0xe0)]??''),'value':_0x7f9cb0,'color':_0x3098a2[_0x51bfbe(0xae)]};});}function isMainTableCol(_0xaf5259){const _0x277059=_0x1ddfcd;return!_0xaf5259[_0x277059(0xbc)]||_0xaf5259[_0x277059(0xbc)][_0x277059(0xb3)]('a.');}function epsColumns(_0x36d76f){const _0x30a14e=_0x1ddfcd,_0x2d050d=_0x36d76f[_0x30a14e(0xd9)]?findEpsEntity('/'+_0x36d76f[_0x30a14e(0xd9)]):undefined;if(!_0x2d050d)return[];const _0x43df18=[..._0x2d050d[_0x30a14e(0xa7)]||[],..._0x2d050d[_0x30a14e(0xd2)]||[]],_0x168e08=new Set(),_0x5f2763=[];for(const _0x3a59d1 of _0x43df18){if(!_0x3a59d1[_0x30a14e(0xc6)]||!isMainTableCol(_0x3a59d1))continue;if(_0x168e08[_0x30a14e(0xd0)](_0x3a59d1[_0x30a14e(0xc6)]))continue;_0x168e08[_0x30a14e(0xa1)](_0x3a59d1[_0x30a14e(0xc6)]),_0x5f2763[_0x30a14e(0xca)](_0x3a59d1);}return _0x5f2763;}function columnTypeOf(_0x5bf33e){const _0x17089c=_0x1ddfcd;return String(_0x5bf33e[_0x17089c(0xcf)]||'');}function sqlTypeOf(_0x348f7b){const _0x523433=_0x1ddfcd;return String(_0x348f7b[_0x523433(0xd6)]||'')[_0x523433(0xbb)]();}function isTextCol(_0x562a80){const _0x5412f2=_0x1ddfcd,_0x331d93=columnTypeOf(_0x562a80);if(_0x331d93===_0x5412f2(0xc7))return!![];return sqlTypeOf(_0x562a80)==='text';}function isIntegerCol(_0x4a992b){const _0x4cdf4e=_0x1ddfcd,_0x5a69e2=columnTypeOf(_0x4a992b);if(_0x5a69e2===_0x4cdf4e(0xbd)||_0x5a69e2===_0x4cdf4e(0xc8)||_0x5a69e2==='PgSmallInt'||_0x5a69e2===_0x4cdf4e(0xb4)||_0x5a69e2===_0x4cdf4e(0xcb)||_0x5a69e2===_0x4cdf4e(0xc2))return!![];if(_0x4a992b[_0x4cdf4e(0xc9)]===_0x4cdf4e(0xaa)&&!isNumericCol(_0x4a992b))return!![];return/^(integer|serial|smallint|bigint|smallserial|bigserial)\b/[_0x4cdf4e(0xab)](sqlTypeOf(_0x4a992b));}function _0x23b8(_0xd6b6bd,_0x4dbac1){_0xd6b6bd=_0xd6b6bd-0xa0;const _0x4f1a66=_0x4f1a();let _0x23b831=_0x4f1a66[_0xd6b6bd];if(_0x23b8['NTlCPZ']===undefined){var _0x25ef93=function(_0x23861e){const _0x578689='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e0194='',_0x217273='';for(let _0x1fd436=0x0,_0x3290ba,_0x13b57a,_0x333551=0x0;_0x13b57a=_0x23861e['charAt'](_0x333551++);~_0x13b57a&&(_0x3290ba=_0x1fd436%0x4?_0x3290ba*0x40+_0x13b57a:_0x13b57a,_0x1fd436++%0x4)?_0x2e0194+=String['fromCharCode'](0xff&_0x3290ba>>(-0x2*_0x1fd436&0x6)):0x0){_0x13b57a=_0x578689['indexOf'](_0x13b57a);}for(let _0x3098a2=0x0,_0x7f9cb0=_0x2e0194['length'];_0x3098a2<_0x7f9cb0;_0x3098a2++){_0x217273+='%'+('00'+_0x2e0194['charCodeAt'](_0x3098a2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x217273);};_0x23b8['EOJJdq']=_0x25ef93,_0x23b8['dvtDfs']={},_0x23b8['NTlCPZ']=!![];}const _0x1c27f4=_0x4f1a66[0x0],_0x399a0f=_0xd6b6bd+_0x1c27f4,_0x34cb19=_0x23b8['dvtDfs'][_0x399a0f];return!_0x34cb19?(_0x23b831=_0x23b8['EOJJdq'](_0x23b831),_0x23b8['dvtDfs'][_0x399a0f]=_0x23b831):_0x23b831=_0x34cb19,_0x23b831;}function isNumericCol(_0x441db3){const _0x2369db=_0x1ddfcd,_0x19b7f2=columnTypeOf(_0x441db3);if(_0x19b7f2===_0x2369db(0xc5)||_0x19b7f2===_0x2369db(0xb9)||_0x19b7f2===_0x2369db(0xcd))return!![];return/^(numeric|decimal|double|real)\b/[_0x2369db(0xab)](sqlTypeOf(_0x441db3));}function isBooleanCol(_0x420913){const _0x2c865d=_0x1ddfcd;return columnTypeOf(_0x420913)===_0x2c865d(0xde)||_0x420913[_0x2c865d(0xc9)]===_0x2c865d(0xaf)||sqlTypeOf(_0x420913)[_0x2c865d(0xb3)]('boolean');}function numberPrecision(_0x49e1ec){const _0x23aa96=_0x1ddfcd;if(isIntegerCol(_0x49e1ec))return 0x0;if(typeof _0x49e1ec['scale']===_0x23aa96(0xaa))return _0x49e1ec[_0x23aa96(0xb0)];return 0x2;}export function mergeByProp(_0x1fcaaa,_0x35befa){const _0x45ace7=_0x1ddfcd,_0x57892e=_0x35befa[_0x45ace7(0xcc)](_0xe90cb9=>Boolean(_0xe90cb9[_0x45ace7(0xc1)])),_0x5f00af=_0x35befa['filter'](_0x49b830=>!_0x49b830[_0x45ace7(0xc1)]&&_0x49b830[_0x45ace7(0xc9)]),_0x390926=new Map(_0x57892e[_0x45ace7(0xd4)](_0x153282=>[String(_0x153282['prop']),_0x153282])),_0x3b8976=new Set(_0x5f00af['map'](_0x302648=>String(_0x302648[_0x45ace7(0xc9)]))),_0x2acdf2=new Set(),_0x7df672=[];for(const _0x321a5d of _0x1fcaaa){if(!_0x321a5d[_0x45ace7(0xc1)]&&_0x321a5d[_0x45ace7(0xc9)]){if(_0x3b8976[_0x45ace7(0xd0)](String(_0x321a5d[_0x45ace7(0xc9)])))continue;_0x7df672[_0x45ace7(0xca)](_0x321a5d);continue;}if(!_0x321a5d[_0x45ace7(0xc1)])continue;const _0x1a3b78=String(_0x321a5d[_0x45ace7(0xc1)]),_0x39449d=_0x390926['get'](_0x1a3b78);_0x39449d?(_0x7df672[_0x45ace7(0xca)]({..._0x321a5d,..._0x39449d}),_0x2acdf2['add'](_0x1a3b78)):_0x7df672[_0x45ace7(0xca)](_0x321a5d);}for(const _0x5871ca of _0x57892e){const _0x3863ea=String(_0x5871ca[_0x45ace7(0xc1)]);if(!_0x2acdf2[_0x45ace7(0xd0)](_0x3863ea))_0x7df672['push'](_0x5871ca);}return _0x7df672[_0x45ace7(0xca)](..._0x5f00af),_0x7df672;}export function sortRequiredFirst(_0x5d0fe0){const _0x5ef6ea=_0x1ddfcd,_0x230f56=[],_0xef2043=[];for(const _0x3a4389 of _0x5d0fe0){_0x3a4389[_0x5ef6ea(0xdc)]===!![]||typeof _0x3a4389[_0x5ef6ea(0xdc)]===_0x5ef6ea(0xac)?_0x230f56[_0x5ef6ea(0xca)](_0x3a4389):_0xef2043[_0x5ef6ea(0xca)](_0x3a4389);}return[..._0x230f56,..._0xef2043];}export function buildAutoUpsertItems(_0x48f1aa,_0x6c4eff={}){const _0x384d90=_0x1ddfcd,_0x110ade=new Set([...UPSERT_BUILTIN_IGNORE,..._0x6c4eff['ignoreFields']||[]]),_0x4a54d5=[];for(const _0x1db4e2 of epsColumns(_0x48f1aa)){const _0x4a7096=_0x1db4e2[_0x384d90(0xc6)];if(_0x110ade[_0x384d90(0xd0)](_0x4a7096))continue;const _0x25c1f8=_0x1db4e2['comment']||_0x4a7096,_0x194613=dictKeyOf(_0x1db4e2),_0x5c7f1b=_0x1db4e2[_0x384d90(0xbe)]===![]&&_0x1db4e2['hasDefault']!==!![],_0x5b7792={'prop':_0x4a7096,'label':_0x25c1f8,'span':0xc,..._0x5c7f1b?{'required':!![]}:{}};if(_0x4a7096===_0x384d90(0xb2)){const _0x328374=_0x194613||_0x384d90(0xb2);isSwitchDict(_0x328374)?_0x4a54d5[_0x384d90(0xca)](switchFormItem(_0x5b7792,_0x328374,0x1)):_0x4a54d5[_0x384d90(0xca)]({..._0x5b7792,'type':'select','dict':_0x328374,'value':0x1});continue;}if(_0x194613){isSwitchDict(_0x194613)?_0x4a54d5[_0x384d90(0xca)](switchFormItem(_0x5b7792,_0x194613,_0x194613==='yes_no'?![]:0x1)):_0x4a54d5['push']({..._0x5b7792,'type':_0x384d90(0xa5),'dict':_0x194613,'value':0x0});continue;}if(isTextCol(_0x1db4e2)){_0x4a54d5[_0x384d90(0xca)]({..._0x5b7792,'type':'textarea','span':0xc});continue;}if(isBooleanCol(_0x1db4e2)){_0x4a54d5[_0x384d90(0xca)]({..._0x5b7792,'type':_0x384d90(0xdd),'value':![],'component':{'props':()=>mapDictOptions(_0x384d90(0xb1))},'dict':_0x384d90(0xb1)});continue;}if(isIntegerCol(_0x1db4e2)||isNumericCol(_0x1db4e2)){const _0x241345=numberPrecision(_0x1db4e2);_0x4a54d5['push']({..._0x5b7792,'type':_0x384d90(0xaa),'component':{'props':{'type':_0x384d90(0xaa),'precision':_0x241345,'controls':![]}}});continue;}_0x4a54d5[_0x384d90(0xca)]({..._0x5b7792,'type':_0x384d90(0xdb)});}return _0x4a54d5;}export function buildAutoTableColumns(_0xa1719b,_0x322c2b={}){const _0x2be430=_0x1ddfcd,_0x24f302=new Set([...TABLE_BUILTIN_IGNORE,..._0x322c2b['ignoreFields']||[]]),_0x56df9a=[];!_0x24f302[_0x2be430(0xd0)](_0x2be430(0xa8))&&_0x56df9a[_0x2be430(0xca)]({'type':'selection','width':0x32});for(const _0x4c14ae of epsColumns(_0xa1719b)){const _0xe77f6=_0x4c14ae[_0x2be430(0xc6)];if(_0x24f302['has'](_0xe77f6))continue;const _0x680972=_0x4c14ae[_0x2be430(0xb7)]||_0xe77f6,_0x176fd9=dictKeyOf(_0x4c14ae);if(_0xe77f6===_0x2be430(0xb2)){const _0x55783e=_0x176fd9||_0x2be430(0xb2);isSwitchDict(_0x55783e)?_0x56df9a[_0x2be430(0xca)]({'prop':_0xe77f6,'label':_0x680972,'width':0x50,'fixed':_0x2be430(0xce),'component':{'name':_0x2be430(0xa3),'props':()=>mapDictOptions(_0x55783e)}}):_0x56df9a[_0x2be430(0xca)]({'prop':_0xe77f6,'label':_0x680972,'width':0x64,'fixed':_0x2be430(0xce),'dict':()=>mapDictOptions(_0x55783e)});continue;}if(_0x176fd9&&isSwitchDict(_0x176fd9)){_0x56df9a[_0x2be430(0xca)]({'prop':_0xe77f6,'label':_0x680972,'width':0x50,'component':{'name':_0x2be430(0xa3),'props':()=>mapDictOptions(_0x176fd9)}});continue;}if(_0xe77f6==='id'){_0x56df9a['push']({'prop':_0xe77f6,'label':_0x680972,'width':0x50});continue;}if(_0xe77f6===_0x2be430(0xd5)){_0x56df9a[_0x2be430(0xca)]({'prop':_0xe77f6,'label':_0x680972,'width':0xa0});continue;}if(_0x176fd9){_0x56df9a['push']({'prop':_0xe77f6,'label':_0x680972,'minWidth':0x78,'dict':()=>mapDictOptions(_0x176fd9)});continue;}if(isTextCol(_0x4c14ae)){_0x56df9a[_0x2be430(0xca)]({'prop':_0xe77f6,'label':_0x680972,'minWidth':0xa0,'showOverflowTooltip':!![]});continue;}_0x56df9a[_0x2be430(0xca)]({'prop':_0xe77f6,'label':_0x680972,'minWidth':0x78});}return!_0x24f302[_0x2be430(0xd0)]('op')&&_0x56df9a[_0x2be430(0xca)]({'type':'op','buttons':[_0x2be430(0xd7),'delete']}),_0x56df9a;}
1
+ const _0x4f9bbd=_0x4f1c;(function(_0x25ec11,_0x633a0e){const _0x10afb6=_0x4f1c,_0xb070d0=_0x25ec11();while(!![]){try{const _0x368cb8=-parseInt(_0x10afb6(0x203))/0x1+parseInt(_0x10afb6(0x1e2))/0x2+-parseInt(_0x10afb6(0x207))/0x3+parseInt(_0x10afb6(0x1f3))/0x4*(-parseInt(_0x10afb6(0x1dd))/0x5)+-parseInt(_0x10afb6(0x20e))/0x6*(parseInt(_0x10afb6(0x1fe))/0x7)+-parseInt(_0x10afb6(0x1f7))/0x8*(-parseInt(_0x10afb6(0x206))/0x9)+parseInt(_0x10afb6(0x1ed))/0xa;if(_0x368cb8===_0x633a0e)break;else _0xb070d0['push'](_0xb070d0['shift']());}catch(_0x243b38){_0xb070d0['push'](_0xb070d0['shift']());}}}(_0x5ca9,0x29ed6));import{findEpsEntity}from'../lib/eps';import{getDictOptions}from'../../client';export const UPSERT_BUILTIN_IGNORE=['id',_0x4f9bbd(0x1d5),_0x4f9bbd(0x1df),'updateTime',_0x4f9bbd(0x1ee)];export const TABLE_BUILTIN_IGNORE=[_0x4f9bbd(0x1ee),_0x4f9bbd(0x1e7)];function dictKeyOf(_0x310070){const _0x3fb2ce=_0x4f9bbd;if(typeof _0x310070['dict']===_0x3fb2ce(0x1e0)&&_0x310070['dict'])return _0x310070[_0x3fb2ce(0x1de)];if(Array[_0x3fb2ce(0x1e5)](_0x310070[_0x3fb2ce(0x1de)])&&_0x310070[_0x3fb2ce(0x1de)][0x0])return _0x310070['dict'][0x0];return;}function isSwitchDict(_0x2da269){const _0x126c2f=_0x4f9bbd;return _0x2da269===_0x126c2f(0x1e6)||_0x2da269===_0x126c2f(0x1d3);}function switchFormItem(_0x4a3a61,_0x1ed74d,_0x25bfb6){return{..._0x4a3a61,'type':'switch','value':_0x25bfb6,'dict':_0x1ed74d,'component':{'props':()=>mapDictOptions(_0x1ed74d)}};}export function mapDictOptions(_0x136b3e){const _0x2596d0=_0x4f9bbd;return getDictOptions(_0x136b3e)[_0x2596d0(0x1f1)](_0x3534e7=>{const _0x3ac02a=_0x2596d0;let _0x35d6f2=_0x3534e7[_0x3ac02a(0x1db)];return typeof _0x3534e7[_0x3ac02a(0x1db)]===_0x3ac02a(0x1e0)&&/^-?\d+(\.\d+)?$/[_0x3ac02a(0x1ef)](_0x3534e7[_0x3ac02a(0x1db)])&&(_0x35d6f2=Number(_0x3534e7[_0x3ac02a(0x1db)])),{'label':String(_0x3534e7['label']??''),'value':_0x35d6f2,'color':_0x3534e7[_0x3ac02a(0x1fc)]};});}function isMainTableCol(_0x4b158f){const _0x14a657=_0x4f9bbd;return!_0x4b158f['source']||_0x4b158f[_0x14a657(0x1e9)]['startsWith']('a.');}function epsColumns(_0x5d9f5b){const _0x320985=_0x4f9bbd,_0x1ea518=_0x5d9f5b['namespace']?findEpsEntity('/'+_0x5d9f5b[_0x320985(0x20b)]):undefined;if(!_0x1ea518)return[];const _0x399b98=[..._0x1ea518[_0x320985(0x1d1)]||[],..._0x1ea518['pageColumns']||[]],_0x395cde=new Set(),_0x4f9a15=[];for(const _0x2f9094 of _0x399b98){if(!_0x2f9094[_0x320985(0x200)]||!isMainTableCol(_0x2f9094))continue;if(_0x395cde[_0x320985(0x1fb)](_0x2f9094[_0x320985(0x200)]))continue;_0x395cde['add'](_0x2f9094['propertyName']),_0x4f9a15[_0x320985(0x1e8)](_0x2f9094);}return _0x4f9a15;}function columnTypeOf(_0x43fef2){const _0x44d4e2=_0x4f9bbd;return String(_0x43fef2[_0x44d4e2(0x1d8)]||'');}function sqlTypeOf(_0x5da6a8){const _0x440469=_0x4f9bbd;return String(_0x5da6a8[_0x440469(0x1ea)]||'')[_0x440469(0x202)]();}function isTextCol(_0x53211c){const _0x2d5e0c=_0x4f9bbd,_0x2d0e69=columnTypeOf(_0x53211c);if(_0x2d0e69===_0x2d5e0c(0x208))return!![];return sqlTypeOf(_0x53211c)===_0x2d5e0c(0x209);}function isIntegerCol(_0x13de9b){const _0x498f30=_0x4f9bbd,_0x42692f=columnTypeOf(_0x13de9b);if(_0x42692f===_0x498f30(0x1dc)||_0x42692f===_0x498f30(0x204)||_0x42692f===_0x498f30(0x20c)||_0x42692f===_0x498f30(0x1f8)||_0x42692f===_0x498f30(0x1f9)||_0x42692f==='PgBigSerial')return!![];if(_0x13de9b[_0x498f30(0x1fa)]==='number'&&!isNumericCol(_0x13de9b))return!![];return/^(integer|serial|smallint|bigint|smallserial|bigserial)\b/[_0x498f30(0x1ef)](sqlTypeOf(_0x13de9b));}function isNumericCol(_0x16fff8){const _0x1dbb1e=_0x4f9bbd,_0x31f4a8=columnTypeOf(_0x16fff8);if(_0x31f4a8===_0x1dbb1e(0x1f6)||_0x31f4a8===_0x1dbb1e(0x1d4)||_0x31f4a8==='PgReal')return!![];return/^(numeric|decimal|double|real)\b/[_0x1dbb1e(0x1ef)](sqlTypeOf(_0x16fff8));}function isBooleanCol(_0x4ca9d5){const _0x3a6bfb=_0x4f9bbd;return columnTypeOf(_0x4ca9d5)===_0x3a6bfb(0x205)||_0x4ca9d5['type']===_0x3a6bfb(0x201)||sqlTypeOf(_0x4ca9d5)[_0x3a6bfb(0x1e4)]('boolean');}function numberPrecision(_0x3fe966){const _0x4e852d=_0x4f9bbd;if(isIntegerCol(_0x3fe966))return 0x0;if(typeof _0x3fe966[_0x4e852d(0x1ec)]===_0x4e852d(0x20a))return _0x3fe966[_0x4e852d(0x1ec)];return 0x2;}function _0x4f1c(_0x51901b,_0x1e5139){_0x51901b=_0x51901b-0x1cf;const _0x5ca9e7=_0x5ca9();let _0x4f1c1c=_0x5ca9e7[_0x51901b];if(_0x4f1c['YAmFKa']===undefined){var _0x26d109=function(_0x7a08aa){const _0x4aa226='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x310070='',_0x2da269='';for(let _0x4a3a61=0x0,_0x1ed74d,_0x25bfb6,_0x136b3e=0x0;_0x25bfb6=_0x7a08aa['charAt'](_0x136b3e++);~_0x25bfb6&&(_0x1ed74d=_0x4a3a61%0x4?_0x1ed74d*0x40+_0x25bfb6:_0x25bfb6,_0x4a3a61++%0x4)?_0x310070+=String['fromCharCode'](0xff&_0x1ed74d>>(-0x2*_0x4a3a61&0x6)):0x0){_0x25bfb6=_0x4aa226['indexOf'](_0x25bfb6);}for(let _0x3534e7=0x0,_0x35d6f2=_0x310070['length'];_0x3534e7<_0x35d6f2;_0x3534e7++){_0x2da269+='%'+('00'+_0x310070['charCodeAt'](_0x3534e7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2da269);};_0x4f1c['uGdxYm']=_0x26d109,_0x4f1c['OWnTCL']={},_0x4f1c['YAmFKa']=!![];}const _0x1e68ad=_0x5ca9e7[0x0],_0x59b608=_0x51901b+_0x1e68ad,_0x490c3a=_0x4f1c['OWnTCL'][_0x59b608];return!_0x490c3a?(_0x4f1c1c=_0x4f1c['uGdxYm'](_0x4f1c1c),_0x4f1c['OWnTCL'][_0x59b608]=_0x4f1c1c):_0x4f1c1c=_0x490c3a,_0x4f1c1c;}function _0x5ca9(){const _0x380bb8=['ndGXnti3BKXzBffq','ugDuzxH0','Dgv4Da','BNvTyMvY','BMfTzxnWywnL','ugDtBwfSBeLUDa','Aw5WDxq','mtm3mJu2nKrhtfzywa','C2vSzwn0','zMLSDgvY','y29SDw1UCW','C2vSzwn0Aw9U','EwvZx25V','ugDeB3vIBgvqCMvJAxnPB24','DgvUyw50swq','zNvUy3rPB24','ChjVCa','y29SDw1UvhLWzq','ywrK','C3DPDgnO','DMfSDwu','ugDjBNrLz2vY','mJy2mZbkverKBfi','zgLJDa','y3jLyxrLvgLTzq','C3rYAw5N','BNvSBgfIBgu','nJa3nJi4u2H1CfPT','DM0TC3DPDgnO','C3rHCNrZv2L0Aa','AxnbCNjHEq','C3rHDhvZ','DxbKyxrLvgLTzq','ChvZAa','C291CMnL','C3fSvhLWzq','zwrPDa','C2nHBgu','mZmYodi4mhzPzer1Eq','zgvSzxrLvgLTzq','DgvZDa','AgfZrgvMyxvSDa','BwfW','zgvSzxrL','ogvlCw94wG','z2v0','CMvXDwLYzwq','ugDoDw1LCMLJ','mtK5mZmWngDkAffvqq','ugDcAwDjBNq','ugDtBwfSBfnLCMLHBa','DhLWzq','AgfZ','y29SB3i','CMLNAhq','n1bht3HeEq','AwDUB3jLrMLLBgrZ','ChjVCgvYDhLoyw1L','yM9VBgvHBG','Dg9mB3DLCKnHC2u','mZe0mtq5zNrbrxfL','ugDtzxjPywW','ugDcB29SzwfU','ovnuuMDizG'];_0x5ca9=function(){return _0x380bb8;};return _0x5ca9();}export function mergeByProp(_0x38738a,_0xde5dc7){const _0x1a84b2=_0x4f9bbd,_0x2987b0=_0xde5dc7['filter'](_0x1da208=>Boolean(_0x1da208[_0x1a84b2(0x1d7)])),_0x2b7ef8=_0xde5dc7[_0x1a84b2(0x1d0)](_0x1c1590=>!_0x1c1590[_0x1a84b2(0x1d7)]&&_0x1c1590[_0x1a84b2(0x1fa)]),_0x3f55b8=new Map(_0x2987b0['map'](_0x177e8b=>[String(_0x177e8b[_0x1a84b2(0x1d7)]),_0x177e8b])),_0x2f51dd=new Set(_0x2b7ef8['map'](_0x207514=>String(_0x207514[_0x1a84b2(0x1fa)]))),_0xa85431=new Set(),_0x4467f0=[];for(const _0x1dcc22 of _0x38738a){if(!_0x1dcc22['prop']&&_0x1dcc22['type']){if(_0x2f51dd['has'](String(_0x1dcc22[_0x1a84b2(0x1fa)])))continue;_0x4467f0[_0x1a84b2(0x1e8)](_0x1dcc22);continue;}if(!_0x1dcc22['prop'])continue;const _0x35f0e8=String(_0x1dcc22[_0x1a84b2(0x1d7)]),_0x566bcb=_0x3f55b8[_0x1a84b2(0x1f4)](_0x35f0e8);_0x566bcb?(_0x4467f0[_0x1a84b2(0x1e8)]({..._0x1dcc22,..._0x566bcb}),_0xa85431[_0x1a84b2(0x1d9)](_0x35f0e8)):_0x4467f0['push'](_0x1dcc22);}for(const _0x1674f6 of _0x2987b0){const _0x59ee89=String(_0x1674f6[_0x1a84b2(0x1d7)]);if(!_0xa85431[_0x1a84b2(0x1fb)](_0x59ee89))_0x4467f0['push'](_0x1674f6);}return _0x4467f0[_0x1a84b2(0x1e8)](..._0x2b7ef8),_0x4467f0;}export function sortRequiredFirst(_0x18d2af){const _0x21fc71=_0x4f9bbd,_0x294347=[],_0xfb846a=[];for(const _0x1907d7 of _0x18d2af){_0x1907d7[_0x21fc71(0x1f5)]===!![]||typeof _0x1907d7[_0x21fc71(0x1f5)]===_0x21fc71(0x1d6)?_0x294347[_0x21fc71(0x1e8)](_0x1907d7):_0xfb846a['push'](_0x1907d7);}return[..._0x294347,..._0xfb846a];}export function buildAutoUpsertItems(_0x23e3ca,_0x4d453c={}){const _0x3854c1=_0x4f9bbd,_0x1cbe4d=new Set([...UPSERT_BUILTIN_IGNORE,..._0x4d453c[_0x3854c1(0x1ff)]||[]]),_0x3b69fb=[];for(const _0x1bbeae of epsColumns(_0x23e3ca)){const _0x3243e0=_0x1bbeae[_0x3854c1(0x200)];if(_0x1cbe4d['has'](_0x3243e0))continue;const _0x5bb0aa=_0x1bbeae['comment']||_0x3243e0,_0x47d9ff=dictKeyOf(_0x1bbeae),_0x5f3f7d=_0x1bbeae[_0x3854c1(0x1e1)]===![]&&_0x1bbeae[_0x3854c1(0x1f0)]!==!![],_0x217187={'prop':_0x3243e0,'label':_0x5bb0aa,'span':0xc,..._0x5f3f7d?{'required':!![]}:{}};if(_0x3243e0===_0x3854c1(0x1e6)){const _0x575611=_0x47d9ff||_0x3854c1(0x1e6);isSwitchDict(_0x575611)?_0x3b69fb['push'](switchFormItem(_0x217187,_0x575611,0x1)):_0x3b69fb['push']({..._0x217187,'type':_0x3854c1(0x1cf),'dict':_0x575611,'value':0x1});continue;}if(_0x47d9ff){isSwitchDict(_0x47d9ff)?_0x3b69fb[_0x3854c1(0x1e8)](switchFormItem(_0x217187,_0x47d9ff,_0x47d9ff===_0x3854c1(0x1d3)?![]:0x1)):_0x3b69fb[_0x3854c1(0x1e8)]({..._0x217187,'type':_0x3854c1(0x1cf),'dict':_0x47d9ff,'value':0x0});continue;}if(isTextCol(_0x1bbeae)){_0x3b69fb[_0x3854c1(0x1e8)]({..._0x217187,'type':'textarea','span':0xc});continue;}if(isBooleanCol(_0x1bbeae)){_0x3b69fb[_0x3854c1(0x1e8)]({..._0x217187,'type':_0x3854c1(0x1da),'value':![],'component':{'props':()=>mapDictOptions(_0x3854c1(0x1d3))},'dict':_0x3854c1(0x1d3)});continue;}if(isIntegerCol(_0x1bbeae)||isNumericCol(_0x1bbeae)){const _0x312517=numberPrecision(_0x1bbeae);_0x3b69fb[_0x3854c1(0x1e8)]({..._0x217187,'type':'number','component':{'props':{'type':_0x3854c1(0x20a),'precision':_0x312517,'controls':![]}}});continue;}_0x3b69fb[_0x3854c1(0x1e8)]({..._0x217187,'type':_0x3854c1(0x20d)});}return _0x3b69fb;}export function buildAutoTableColumns(_0x2bcfdb,_0xfee104={}){const _0x33d8c6=_0x4f9bbd,_0x28f811=new Set([...TABLE_BUILTIN_IGNORE,..._0xfee104[_0x33d8c6(0x1ff)]||[]]),_0x5ce4bb=[];!_0x28f811[_0x33d8c6(0x1fb)](_0x33d8c6(0x1d2))&&_0x5ce4bb[_0x33d8c6(0x1e8)]({'type':_0x33d8c6(0x1d2),'width':0x32});for(const _0x58ca6a of epsColumns(_0x2bcfdb)){const _0x350ce9=_0x58ca6a[_0x33d8c6(0x200)];if(_0x28f811[_0x33d8c6(0x1fb)](_0x350ce9))continue;const _0x52e0d9=_0x58ca6a['comment']||_0x350ce9,_0x329389=dictKeyOf(_0x58ca6a);if(_0x350ce9===_0x33d8c6(0x1e6)){const _0xc6a41a=_0x329389||_0x33d8c6(0x1e6);isSwitchDict(_0xc6a41a)?_0x5ce4bb[_0x33d8c6(0x1e8)]({'prop':_0x350ce9,'label':_0x52e0d9,'width':0x50,'fixed':_0x33d8c6(0x1fd),'component':{'name':_0x33d8c6(0x1e3),'props':()=>mapDictOptions(_0xc6a41a)}}):_0x5ce4bb['push']({'prop':_0x350ce9,'label':_0x52e0d9,'width':0x64,'fixed':_0x33d8c6(0x1fd),'dict':()=>mapDictOptions(_0xc6a41a)});continue;}if(_0x329389&&isSwitchDict(_0x329389)){_0x5ce4bb[_0x33d8c6(0x1e8)]({'prop':_0x350ce9,'label':_0x52e0d9,'width':0x50,'component':{'name':_0x33d8c6(0x1e3),'props':()=>mapDictOptions(_0x329389)}});continue;}if(_0x350ce9==='id'){_0x5ce4bb[_0x33d8c6(0x1e8)]({'prop':_0x350ce9,'label':_0x52e0d9,'width':0x50});continue;}if(_0x350ce9===_0x33d8c6(0x1df)){_0x5ce4bb[_0x33d8c6(0x1e8)]({'prop':_0x350ce9,'label':_0x52e0d9,'width':0xa0});continue;}if(_0x329389){_0x5ce4bb[_0x33d8c6(0x1e8)]({'prop':_0x350ce9,'label':_0x52e0d9,'minWidth':0x78,'dict':()=>mapDictOptions(_0x329389)});continue;}if(isTextCol(_0x58ca6a)){_0x5ce4bb['push']({'prop':_0x350ce9,'label':_0x52e0d9,'minWidth':0xa0,'showOverflowTooltip':!![]});continue;}_0x5ce4bb[_0x33d8c6(0x1e8)]({'prop':_0x350ce9,'label':_0x52e0d9,'minWidth':0x78});}return!_0x28f811[_0x33d8c6(0x1fb)]('op')&&_0x5ce4bb[_0x33d8c6(0x1e8)]({'type':'op','buttons':[_0x33d8c6(0x1eb),_0x33d8c6(0x1f2)]}),_0x5ce4bb;}
@@ -1 +1 @@
1
- function _0x5165(){const _0x3f82dd=['Bwf4lxDPzhrOoJeWmcu7yM9YzgvYlxjHzgL1CZO4ChG','nJmZndi5yMvvBwjb','nJa1otyXuKj0tNrm','mZbqA2DTAxC','nZqYmti3mMvlB0LvsW','nNbPBwfMrG','yMXVy2S','mJa1mZy0svHJtMHY','mta4mJC2n3ncvLfmua','ntv4t0vyCNO','Aw5Zzxj0q29UDgvUDa','mJC1nZm1n21YuefiyG','BMfTzq','ntq0nteXngXTrKDMsG'];_0x5165=function(){return _0x3f82dd;};return _0x5165();}const _0xecd53a=_0x1358;(function(_0x286744,_0x31f6bc){const _0x18e1f6=_0x1358,_0x15fee8=_0x286744();while(!![]){try{const _0x27f2c1=parseInt(_0x18e1f6(0x90))/0x1+parseInt(_0x18e1f6(0x93))/0x2*(-parseInt(_0x18e1f6(0x8f))/0x3)+-parseInt(_0x18e1f6(0x95))/0x4*(parseInt(_0x18e1f6(0x89))/0x5)+-parseInt(_0x18e1f6(0x8d))/0x6+parseInt(_0x18e1f6(0x88))/0x7+parseInt(_0x18e1f6(0x92))/0x8+parseInt(_0x18e1f6(0x8b))/0x9*(parseInt(_0x18e1f6(0x91))/0xa);if(_0x27f2c1===_0x31f6bc)break;else _0x15fee8['push'](_0x15fee8['shift']());}catch(_0x1557b8){_0x15fee8['push'](_0x15fee8['shift']());}}}(_0x5165,0x7a7d9));import{Node,mergeAttributes}from'@tiptap/core';function _0x1358(_0xd822e1,_0x71888c){_0xd822e1=_0xd822e1-0x88;const _0x51658e=_0x5165();let _0x1358e1=_0x51658e[_0xd822e1];if(_0x1358['HkepnB']===undefined){var _0x3f3903=function(_0x166855){const _0x4b9c90='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d783d='',_0x41b07a='';for(let _0xcbcb54=0x0,_0x2a92bb,_0x4c7b1f,_0x119744=0x0;_0x4c7b1f=_0x166855['charAt'](_0x119744++);~_0x4c7b1f&&(_0x2a92bb=_0xcbcb54%0x4?_0x2a92bb*0x40+_0x4c7b1f:_0x4c7b1f,_0xcbcb54++%0x4)?_0x5d783d+=String['fromCharCode'](0xff&_0x2a92bb>>(-0x2*_0xcbcb54&0x6)):0x0){_0x4c7b1f=_0x4b9c90['indexOf'](_0x4c7b1f);}for(let _0x14daa9=0x0,_0x4913fd=_0x5d783d['length'];_0x14daa9<_0x4913fd;_0x14daa9++){_0x41b07a+='%'+('00'+_0x5d783d['charCodeAt'](_0x14daa9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41b07a);};_0x1358['knAYSk']=_0x3f3903,_0x1358['hfDYcn']={},_0x1358['HkepnB']=!![];}const _0x964e0b=_0x51658e[0x0],_0x5b51d8=_0xd822e1+_0x964e0b,_0x3c2ede=_0x1358['hfDYcn'][_0x5b51d8];return!_0x3c2ede?(_0x1358e1=_0x1358['knAYSk'](_0x1358e1),_0x1358['hfDYcn'][_0x5b51d8]=_0x1358e1):_0x1358e1=_0x3c2ede,_0x1358e1;}export const VmRichtextVideo=Node['create']({'name':'video','group':_0xecd53a(0x94),'atom':!![],'selectable':!![],'draggable':!![],'addAttributes'(){return{'src':{'default':null},'controls':{'default':!![]}};},'parseHTML'(){return[{'tag':'video[src]'}];},'renderHTML'({HTMLAttributes:_0x5d783d}){const _0x589acb=_0xecd53a;return['video',mergeAttributes(_0x5d783d,{'controls':!![],'style':_0x589acb(0x8e)})];},'addCommands'(){const _0x7ef98f=_0xecd53a;return{'setVideo':_0x41b07a=>({commands:_0xcbcb54})=>_0xcbcb54[_0x7ef98f(0x8a)]({'type':this[_0x7ef98f(0x8c)],'attrs':_0x41b07a})};}});export const VM_RICHTEXT_EMOJIS=['\uD83D\uDE00','\uD83D\uDE03','\uD83D\uDE04','\uD83D\uDE01','\uD83D\uDE06','\uD83D\uDE05','\uD83E\uDD23','\uD83D\uDE02','\uD83D\uDE42','\uD83D\uDE43','\uD83D\uDE09','\uD83D\uDE0A','\uD83D\uDE07','\uD83E\uDD70','\uD83D\uDE0D','\uD83E\uDD29','\uD83D\uDE18','\uD83D\uDE17','\uD83D\uDE1A','\uD83D\uDE19','\uD83D\uDE0B','\uD83D\uDE1B','\uD83D\uDE1C','\uD83E\uDD2A','\uD83D\uDE1D','\uD83E\uDD11','\uD83E\uDD17','\uD83E\uDD2D','\uD83E\uDD2B','\uD83E\uDD14','\uD83E\uDD10','\uD83E\uDD28','\uD83D\uDE10','\uD83D\uDE11','\uD83D\uDE36','\uD83D\uDE0F','\uD83D\uDE12','\uD83D\uDE44','\uD83D\uDE2C','\uD83E\uDD25','\uD83D\uDE0C','\uD83D\uDE14','\uD83D\uDE2A','\uD83E\uDD24','\uD83D\uDE34','\uD83D\uDE37','\uD83E\uDD12','\uD83E\uDD15','\uD83E\uDD22','\uD83E\uDD2E','\uD83E\uDD75','\uD83E\uDD76','\uD83E\uDD74','\uD83D\uDE35','\uD83E\uDD2F','\uD83E\uDD20','\uD83E\uDD73','\uD83D\uDE0E','\uD83E\uDD13','\uD83E\uDDD0','\uD83D\uDE15','\uD83D\uDE1F','\uD83D\uDE41','☹️','\uD83D\uDE2E','\uD83D\uDE2F','\uD83D\uDE32','\uD83D\uDE33','\uD83E\uDD7A','\uD83D\uDE26','\uD83D\uDE27','\uD83D\uDE28','\uD83D\uDE30','\uD83D\uDE25','\uD83D\uDE22','\uD83D\uDE2D','\uD83D\uDE31','\uD83D\uDE16','\uD83D\uDE23','\uD83D\uDE1E','\uD83D\uDE13','\uD83D\uDE29','\uD83D\uDE2B','\uD83E\uDD71','\uD83D\uDE24','\uD83D\uDE21','\uD83D\uDE20','\uD83E\uDD2C','\uD83D\uDE08','\uD83D\uDC7F','\uD83D\uDC4B','\uD83E\uDD1A','\uD83D\uDD90','✋','\uD83D\uDD96','\uD83D\uDC4C','\uD83E\uDD0C','\uD83E\uDD0F','✌️','\uD83E\uDD1E','\uD83E\uDD1F','\uD83E\uDD18','\uD83E\uDD19','\uD83D\uDC48','\uD83D\uDC49','\uD83D\uDC46','\uD83D\uDD95','\uD83D\uDC47','☝️','\uD83D\uDC4D','\uD83D\uDC4E','✊','\uD83D\uDC4A','\uD83E\uDD1B','\uD83E\uDD1C','\uD83D\uDC4F','\uD83D\uDE4C','\uD83D\uDC50','\uD83E\uDD32','\uD83E\uDD1D','\uD83D\uDE4F','\uD83D\uDCAA','\uD83E\uDDBE','✍️','\uD83D\uDC85','\uD83E\uDD33','❤️','\uD83E\uDDE1','\uD83D\uDC9B','\uD83D\uDC9A','\uD83D\uDC99','\uD83D\uDC9C','\uD83D\uDDA4','\uD83E\uDD0D','\uD83E\uDD0E','\uD83D\uDC94','❣️','\uD83D\uDC95','\uD83D\uDC9E','\uD83D\uDC93','\uD83D\uDC97','\uD83D\uDC96','\uD83D\uDC98','\uD83D\uDC9D','\uD83D\uDC9F','☮️','✝️','☪️','\uD83D\uDD49','☸️','✡️','\uD83D\uDD2F','\uD83D\uDD4E','☯️','☦️','\uD83D\uDED0','⭐','\uD83C\uDF1F','✨','⚡','\uD83D\uDD25','\uD83D\uDCA5','☀️','\uD83C\uDF19','⭐️','\uD83C\uDF08','✅','❌','⭕','❗','❓','‼️','⁉️','\uD83D\uDCAF','\uD83D\uDD14','\uD83D\uDD15','\uD83D\uDCCC','\uD83D\uDCCD','\uD83D\uDCCE','\uD83D\uDD17','\uD83D\uDD12','\uD83D\uDD13','\uD83D\uDD11','\uD83D\uDDDD','\uD83D\uDCA1','\uD83D\uDD26','\uD83D\uDCDD','✏️','✒️','\uD83D\uDD8A','\uD83D\uDD8B','\uD83D\uDD8C','\uD83D\uDD8D','\uD83D\uDCBC','\uD83D\uDCC1','\uD83D\uDCC2','\uD83D\uDCC5','\uD83D\uDCC6','\uD83D\uDDD3','\uD83D\uDCC7','\uD83D\uDCC8','\uD83D\uDCC9','\uD83D\uDCCA','\uD83D\uDCCB','\uD83D\uDCE4','\uD83D\uDCE5','\uD83D\uDCE6','\uD83D\uDCEB','\uD83D\uDCEC','\uD83D\uDCED','\uD83D\uDCEE','\uD83D\uDCEF','\uD83D\uDCDC','\uD83D\uDCC3','\uD83D\uDCC4','\uD83D\uDCD1','☕','\uD83C\uDF75','\uD83E\uDDC3','\uD83E\uDD64','\uD83E\uDDCB','\uD83C\uDF7A','\uD83C\uDF7B','\uD83E\uDD42','\uD83C\uDF77','\uD83C\uDF78','\uD83C\uDF55','\uD83C\uDF54','\uD83C\uDF5F','\uD83C\uDF2D','\uD83C\uDF7F','\uD83C\uDF69','\uD83C\uDF6A','\uD83C\uDF82','\uD83C\uDF70','\uD83E\uDDC1','\uD83C\uDF4E','\uD83C\uDF4A','\uD83C\uDF4B','\uD83C\uDF4C','\uD83C\uDF49','\uD83C\uDF47','\uD83C\uDF53','\uD83E\uDED0','\uD83C\uDF52','\uD83C\uDF51','⚽','\uD83C\uDFC0','\uD83C\uDFC8','⚾','\uD83C\uDFBE','\uD83C\uDFD0','\uD83C\uDFC9','\uD83C\uDFB1','\uD83C\uDFD3','\uD83C\uDFF8','\uD83C\uDFAE','\uD83D\uDD79','\uD83C\uDFB2','\uD83E\uDDE9','\uD83C\uDFAF','\uD83C\uDFB3','\uD83C\uDFB0','\uD83C\uDFB8','\uD83C\uDFB9','\uD83E\uDD41','\uD83C\uDFA4','\uD83C\uDFA7','\uD83C\uDFAC','\uD83C\uDFA5','\uD83D\uDCF7','\uD83D\uDCF8','\uD83D\uDCF9','\uD83D\uDCFA','\uD83D\uDCFB','\uD83C\uDF99','\uD83D\uDE80','✈️','\uD83D\uDEE9','\uD83D\uDEEB','\uD83D\uDEEC','\uD83D\uDEF0','\uD83D\uDCBA','\uD83D\uDEF8','\uD83D\uDE81','\uD83D\uDEF6','\uD83D\uDE97','\uD83D\uDE95','\uD83D\uDE99','\uD83D\uDE8C','\uD83D\uDE8E','\uD83C\uDFCE','\uD83D\uDE93','\uD83D\uDE91','\uD83D\uDE92','\uD83D\uDE90','\uD83C\uDFE0','\uD83C\uDFE1','\uD83C\uDFE2','\uD83C\uDFE3','\uD83C\uDFE4','\uD83C\uDFE5','\uD83C\uDFE6','\uD83C\uDFE8','\uD83C\uDFE9','\uD83C\uDFEA','\uD83D\uDC36','\uD83D\uDC31','\uD83D\uDC2D','\uD83D\uDC39','\uD83D\uDC30','\uD83E\uDD8A','\uD83D\uDC3B','\uD83D\uDC3C','\uD83D\uDC3B‍❄️','\uD83D\uDC28','\uD83D\uDC2F','\uD83E\uDD81','\uD83D\uDC2E','\uD83D\uDC37','\uD83D\uDC38','\uD83D\uDC35','\uD83D\uDE48','\uD83D\uDE49','\uD83D\uDE4A','\uD83D\uDC12','\uD83D\uDC14','\uD83D\uDC27','\uD83D\uDC26','\uD83D\uDC24','\uD83D\uDC23','\uD83D\uDC25','\uD83E\uDD86','\uD83E\uDD85','\uD83E\uDD89','\uD83E\uDD87','\uD83C\uDF89','\uD83C\uDF8A','\uD83C\uDF88','\uD83C\uDF81','\uD83C\uDF80','\uD83C\uDF97','\uD83C\uDFAB','\uD83C\uDF9F','\uD83C\uDFC6','\uD83C\uDFC5'];
1
+ function _0x3652(_0x5a1c45,_0x2691ee){_0x5a1c45=_0x5a1c45-0x125;const _0x4ed11a=_0x4ed1();let _0x36526a=_0x4ed11a[_0x5a1c45];if(_0x3652['KqeCZB']===undefined){var _0x5cc66b=function(_0x2784cd){const _0x2d2ec5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21db61='',_0x5f341a='';for(let _0x21569a=0x0,_0x2a6c7e,_0x2d9890,_0x42a7c2=0x0;_0x2d9890=_0x2784cd['charAt'](_0x42a7c2++);~_0x2d9890&&(_0x2a6c7e=_0x21569a%0x4?_0x2a6c7e*0x40+_0x2d9890:_0x2d9890,_0x21569a++%0x4)?_0x21db61+=String['fromCharCode'](0xff&_0x2a6c7e>>(-0x2*_0x21569a&0x6)):0x0){_0x2d9890=_0x2d2ec5['indexOf'](_0x2d9890);}for(let _0x3c18c0=0x0,_0x56d7fb=_0x21db61['length'];_0x3c18c0<_0x56d7fb;_0x3c18c0++){_0x5f341a+='%'+('00'+_0x21db61['charCodeAt'](_0x3c18c0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f341a);};_0x3652['NqPCCD']=_0x5cc66b,_0x3652['pTvsDq']={},_0x3652['KqeCZB']=!![];}const _0x3b8df2=_0x4ed11a[0x0],_0x329c93=_0x5a1c45+_0x3b8df2,_0x514919=_0x3652['pTvsDq'][_0x329c93];return!_0x514919?(_0x36526a=_0x3652['NqPCCD'](_0x36526a),_0x3652['pTvsDq'][_0x329c93]=_0x36526a):_0x36526a=_0x514919,_0x36526a;}const _0x2460cc=_0x3652;function _0x4ed1(){const _0x135a05=['y3jLyxrL','DMLKzw9BC3jJxq','BMfTzq','DMLKzw8','mNLivfnOvG','ndeWody4nwXjufvksq','ndCYmZa5mM9IvK5nAa','mte5nde1m3HczxfnCq','mZa3mte4nefdrhbHyq','Bwf4lxDPzhrOoJeWmcu7yM9YzgvYlxjHzgL1CZO4ChG','nJq2mtmXnwTWvgzlsa','8j+qU+kaJEkDHo+4JW','ohffDKryta','Aw5Zzxj0q29UDgvUDa','ndm5mtvlqwfPCee','mta0mtyYohbxAMD6zq','yMXVy2S'];_0x4ed1=function(){return _0x135a05;};return _0x4ed1();}(function(_0x151663,_0x47f636){const _0x54aef5=_0x3652,_0x43644a=_0x151663();while(!![]){try{const _0x501ae0=-parseInt(_0x54aef5(0x12d))/0x1*(parseInt(_0x54aef5(0x134))/0x2)+parseInt(_0x54aef5(0x126))/0x3+parseInt(_0x54aef5(0x12e))/0x4+parseInt(_0x54aef5(0x135))/0x5+parseInt(_0x54aef5(0x127))/0x6+-parseInt(_0x54aef5(0x129))/0x7+parseInt(_0x54aef5(0x12b))/0x8*(-parseInt(_0x54aef5(0x125))/0x9);if(_0x501ae0===_0x47f636)break;else _0x43644a['push'](_0x43644a['shift']());}catch(_0x3e8eb8){_0x43644a['push'](_0x43644a['shift']());}}}(_0x4ed1,0x7a257));import{Node,mergeAttributes}from'@tiptap/core';export const VmRichtextVideo=Node[_0x2460cc(0x130)]({'name':_0x2460cc(0x133),'group':_0x2460cc(0x12f),'atom':!![],'selectable':!![],'draggable':!![],'addAttributes'(){return{'src':{'default':null},'controls':{'default':!![]}};},'parseHTML'(){const _0xc54e37=_0x2460cc;return[{'tag':_0xc54e37(0x131)}];},'renderHTML'({HTMLAttributes:_0x21db61}){const _0x31c7ca=_0x2460cc;return[_0x31c7ca(0x133),mergeAttributes(_0x21db61,{'controls':!![],'style':_0x31c7ca(0x128)})];},'addCommands'(){const _0x49778d=_0x2460cc;return{'setVideo':_0x5f341a=>({commands:_0x21569a})=>_0x21569a[_0x49778d(0x12c)]({'type':this[_0x49778d(0x132)],'attrs':_0x5f341a})};}});export const VM_RICHTEXT_EMOJIS=['\uD83D\uDE00','\uD83D\uDE03','\uD83D\uDE04','\uD83D\uDE01','\uD83D\uDE06','\uD83D\uDE05','\uD83E\uDD23','\uD83D\uDE02','\uD83D\uDE42','\uD83D\uDE43','\uD83D\uDE09','\uD83D\uDE0A','\uD83D\uDE07','\uD83E\uDD70','\uD83D\uDE0D','\uD83E\uDD29','\uD83D\uDE18','\uD83D\uDE17','\uD83D\uDE1A','\uD83D\uDE19','\uD83D\uDE0B','\uD83D\uDE1B','\uD83D\uDE1C','\uD83E\uDD2A','\uD83D\uDE1D','\uD83E\uDD11','\uD83E\uDD17','\uD83E\uDD2D','\uD83E\uDD2B','\uD83E\uDD14','\uD83E\uDD10','\uD83E\uDD28','\uD83D\uDE10','\uD83D\uDE11','\uD83D\uDE36','\uD83D\uDE0F','\uD83D\uDE12','\uD83D\uDE44','\uD83D\uDE2C','\uD83E\uDD25','\uD83D\uDE0C','\uD83D\uDE14','\uD83D\uDE2A','\uD83E\uDD24','\uD83D\uDE34','\uD83D\uDE37','\uD83E\uDD12','\uD83E\uDD15','\uD83E\uDD22','\uD83E\uDD2E','\uD83E\uDD75','\uD83E\uDD76','\uD83E\uDD74','\uD83D\uDE35','\uD83E\uDD2F','\uD83E\uDD20','\uD83E\uDD73','\uD83D\uDE0E','\uD83E\uDD13','\uD83E\uDDD0','\uD83D\uDE15','\uD83D\uDE1F','\uD83D\uDE41','☹️','\uD83D\uDE2E','\uD83D\uDE2F','\uD83D\uDE32','\uD83D\uDE33','\uD83E\uDD7A','\uD83D\uDE26','\uD83D\uDE27','\uD83D\uDE28','\uD83D\uDE30','\uD83D\uDE25','\uD83D\uDE22','\uD83D\uDE2D','\uD83D\uDE31','\uD83D\uDE16','\uD83D\uDE23','\uD83D\uDE1E','\uD83D\uDE13','\uD83D\uDE29','\uD83D\uDE2B','\uD83E\uDD71','\uD83D\uDE24','\uD83D\uDE21','\uD83D\uDE20','\uD83E\uDD2C','\uD83D\uDE08','\uD83D\uDC7F','\uD83D\uDC4B','\uD83E\uDD1A','\uD83D\uDD90','✋','\uD83D\uDD96','\uD83D\uDC4C','\uD83E\uDD0C','\uD83E\uDD0F','✌️','\uD83E\uDD1E','\uD83E\uDD1F','\uD83E\uDD18','\uD83E\uDD19','\uD83D\uDC48','\uD83D\uDC49','\uD83D\uDC46','\uD83D\uDD95','\uD83D\uDC47','☝️','\uD83D\uDC4D','\uD83D\uDC4E','✊','\uD83D\uDC4A','\uD83E\uDD1B','\uD83E\uDD1C','\uD83D\uDC4F','\uD83D\uDE4C','\uD83D\uDC50','\uD83E\uDD32','\uD83E\uDD1D','\uD83D\uDE4F','\uD83D\uDCAA','\uD83E\uDDBE','✍️','\uD83D\uDC85','\uD83E\uDD33','❤️','\uD83E\uDDE1','\uD83D\uDC9B','\uD83D\uDC9A','\uD83D\uDC99','\uD83D\uDC9C','\uD83D\uDDA4','\uD83E\uDD0D','\uD83E\uDD0E','\uD83D\uDC94','❣️','\uD83D\uDC95','\uD83D\uDC9E','\uD83D\uDC93','\uD83D\uDC97','\uD83D\uDC96','\uD83D\uDC98','\uD83D\uDC9D','\uD83D\uDC9F','☮️','✝️','☪️','\uD83D\uDD49','☸️','✡️','\uD83D\uDD2F','\uD83D\uDD4E','☯️','☦️','\uD83D\uDED0','⭐','\uD83C\uDF1F','✨','⚡','\uD83D\uDD25','\uD83D\uDCA5','☀️','\uD83C\uDF19','⭐️','\uD83C\uDF08','✅','❌','⭕','❗','❓','‼️','⁉️','\uD83D\uDCAF','\uD83D\uDD14','\uD83D\uDD15','\uD83D\uDCCC','\uD83D\uDCCD','\uD83D\uDCCE','\uD83D\uDD17','\uD83D\uDD12','\uD83D\uDD13','\uD83D\uDD11','\uD83D\uDDDD','\uD83D\uDCA1','\uD83D\uDD26','\uD83D\uDCDD','✏️','✒️','\uD83D\uDD8A','\uD83D\uDD8B','\uD83D\uDD8C','\uD83D\uDD8D','\uD83D\uDCBC','\uD83D\uDCC1','\uD83D\uDCC2','\uD83D\uDCC5','\uD83D\uDCC6','\uD83D\uDDD3','\uD83D\uDCC7','\uD83D\uDCC8','\uD83D\uDCC9','\uD83D\uDCCA','\uD83D\uDCCB','\uD83D\uDCE4','\uD83D\uDCE5','\uD83D\uDCE6','\uD83D\uDCEB','\uD83D\uDCEC','\uD83D\uDCED','\uD83D\uDCEE','\uD83D\uDCEF','\uD83D\uDCDC','\uD83D\uDCC3','\uD83D\uDCC4','\uD83D\uDCD1','☕','\uD83C\uDF75','\uD83E\uDDC3','\uD83E\uDD64','\uD83E\uDDCB','\uD83C\uDF7A','\uD83C\uDF7B','\uD83E\uDD42','\uD83C\uDF77','\uD83C\uDF78','\uD83C\uDF55','\uD83C\uDF54','\uD83C\uDF5F','\uD83C\uDF2D','\uD83C\uDF7F','\uD83C\uDF69','\uD83C\uDF6A','\uD83C\uDF82','\uD83C\uDF70','\uD83E\uDDC1','\uD83C\uDF4E','\uD83C\uDF4A','\uD83C\uDF4B','\uD83C\uDF4C','\uD83C\uDF49','\uD83C\uDF47','\uD83C\uDF53','\uD83E\uDED0','\uD83C\uDF52','\uD83C\uDF51','⚽','\uD83C\uDFC0','\uD83C\uDFC8','⚾','\uD83C\uDFBE','\uD83C\uDFD0','\uD83C\uDFC9','\uD83C\uDFB1','\uD83C\uDFD3','\uD83C\uDFF8','\uD83C\uDFAE','\uD83D\uDD79','\uD83C\uDFB2','\uD83E\uDDE9','\uD83C\uDFAF','\uD83C\uDFB3','\uD83C\uDFB0','\uD83C\uDFB8','\uD83C\uDFB9','\uD83E\uDD41','\uD83C\uDFA4','\uD83C\uDFA7','\uD83C\uDFAC','\uD83C\uDFA5','\uD83D\uDCF7','\uD83D\uDCF8','\uD83D\uDCF9','\uD83D\uDCFA','\uD83D\uDCFB','\uD83C\uDF99','\uD83D\uDE80','✈️','\uD83D\uDEE9','\uD83D\uDEEB','\uD83D\uDEEC','\uD83D\uDEF0','\uD83D\uDCBA','\uD83D\uDEF8','\uD83D\uDE81','\uD83D\uDEF6','\uD83D\uDE97','\uD83D\uDE95','\uD83D\uDE99','\uD83D\uDE8C','\uD83D\uDE8E','\uD83C\uDFCE','\uD83D\uDE93','\uD83D\uDE91','\uD83D\uDE92','\uD83D\uDE90','\uD83C\uDFE0','\uD83C\uDFE1','\uD83C\uDFE2','\uD83C\uDFE3','\uD83C\uDFE4','\uD83C\uDFE5','\uD83C\uDFE6','\uD83C\uDFE8','\uD83C\uDFE9','\uD83C\uDFEA','\uD83D\uDC36','\uD83D\uDC31','\uD83D\uDC2D','\uD83D\uDC39','\uD83D\uDC30','\uD83E\uDD8A','\uD83D\uDC3B','\uD83D\uDC3C',_0x2460cc(0x12a),'\uD83D\uDC28','\uD83D\uDC2F','\uD83E\uDD81','\uD83D\uDC2E','\uD83D\uDC37','\uD83D\uDC38','\uD83D\uDC35','\uD83D\uDE48','\uD83D\uDE49','\uD83D\uDE4A','\uD83D\uDC12','\uD83D\uDC14','\uD83D\uDC27','\uD83D\uDC26','\uD83D\uDC24','\uD83D\uDC23','\uD83D\uDC25','\uD83E\uDD86','\uD83E\uDD85','\uD83E\uDD89','\uD83E\uDD87','\uD83C\uDF89','\uD83C\uDF8A','\uD83C\uDF88','\uD83C\uDF81','\uD83C\uDF80','\uD83C\uDF97','\uD83C\uDFAB','\uD83C\uDF9F','\uD83C\uDFC6','\uD83C\uDFC5'];