vome-core 0.0.49 → 0.0.51

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 (38) hide show
  1. package/dist/admin/config/plugin-dev.js +1 -54
  2. package/dist/admin/crud/components/vm-richtext.vue +115 -2
  3. package/dist/admin/crud/components/vm-upload.vue +1 -1
  4. package/dist/admin/crud/config.js +1 -33
  5. package/dist/admin/crud/confirm.js +1 -97
  6. package/dist/admin/crud/dict.js +1 -48
  7. package/dist/admin/crud/index.js +1 -74
  8. package/dist/admin/crud/key.js +1 -20
  9. package/dist/admin/crud/mitt.js +1 -21
  10. package/dist/admin/crud/plugins.js +1 -216
  11. package/dist/admin/crud/span.js +1 -35
  12. package/dist/admin/crud/style.js +1 -74
  13. package/dist/admin/crud/validate.js +1 -92
  14. package/dist/admin/crud/vm-search.vue +12 -4
  15. package/dist/admin/crud/vm-tabs.vue +94 -0
  16. package/dist/admin/crud/vm-toolbar.vue +16 -57
  17. package/dist/admin/directives/perm.js +1 -14
  18. package/dist/admin/hooks/useUpload.js +1 -63
  19. package/dist/admin/lib/browser.js +1 -24
  20. package/dist/admin/lib/cn.js +1 -5
  21. package/dist/admin/lib/dialog-float.js +1 -13
  22. package/dist/admin/lib/export-excel.js +1 -64
  23. package/dist/admin/lib/file-preview.js +1 -74
  24. package/dist/admin/lib/import-excel.js +1 -61
  25. package/dist/admin/lib/json.js +1 -42
  26. package/dist/admin/lib/menu.js +1 -11
  27. package/dist/admin/lib/tree.js +1 -1
  28. package/dist/admin/lib/upload.js +1 -88
  29. package/dist/admin/lib/video-frame.js +1 -80
  30. package/dist/index.js +1 -28021
  31. package/dist/server/index.js +1 -31407
  32. package/dist/shared/excel.js +1 -93
  33. package/dist/shared/index.js +1 -14
  34. package/dist/shared/tree.js +1 -39
  35. package/dist/src/orm/query-op.d.ts +10 -1
  36. package/package.json +1 -1
  37. package/typings/admin/comm/crud.d.ts +2 -2
  38. package/typings/admin/comm/crud.ts +1 -1
@@ -47,24 +47,12 @@
47
47
  重置
48
48
  </button>
49
49
  </div>
50
- <div v-if="trash" class="vm-crud-toolbar__tabs">
51
- <button
52
- type="button"
53
- class="vm-crud-toolbar__tab"
54
- :class="{ 'is-active': crud.trashMode.value === 'default' }"
55
- @click="onTrash('default')"
56
- >
57
- 列表
58
- </button>
59
- <button
60
- type="button"
61
- class="vm-crud-toolbar__tab"
62
- :class="{ 'is-active': crud.trashMode.value === 'onlyTrashed' }"
63
- @click="onTrash('onlyTrashed')"
64
- >
65
- 回收站
66
- </button>
67
- </div>
50
+ <vm-tabs
51
+ v-if="trash"
52
+ :model-value="crud.trashMode.value"
53
+ :items="trashTabs"
54
+ @update:model-value="onTrash"
55
+ />
68
56
  </div>
69
57
  </div>
70
58
  </template>
@@ -74,8 +62,14 @@ import { computed } from 'vue'
74
62
  import { useCrud } from './useCrud'
75
63
  import VmExportBtn from './vm-export-btn.vue'
76
64
  import VmImportBtn from './vm-import-btn.vue'
65
+ import VmTabs from './vm-tabs.vue'
77
66
  defineOptions({ name: 'vm-toolbar' })
78
67
 
68
+ const trashTabs = [
69
+ { label: '列表', value: 'default' as const },
70
+ { label: '回收站', value: 'onlyTrashed' as const },
71
+ ]
72
+
79
73
  const props = withDefaults(
80
74
  defineProps<{
81
75
  trash?: boolean
@@ -148,8 +142,10 @@ function onReset() {
148
142
  crud.searchActions.value?.reset()
149
143
  }
150
144
 
151
- function onTrash(mode: CrudTrashMode) {
152
- crud.trashMode.value = mode
145
+ function onTrash(mode: string | number) {
146
+ const next = String(mode) as CrudTrashMode
147
+ if (next !== 'default' && next !== 'onlyTrashed') return
148
+ crud.trashMode.value = next
153
149
  crud.pagination.value = { ...crud.pagination.value, page: 1 }
154
150
  void crud.refresh()
155
151
  }
@@ -233,39 +229,6 @@ function onTrash(mode: CrudTrashMode) {
233
229
  }
234
230
  }
235
231
 
236
- .vm-crud-toolbar__tabs {
237
- display: inline-flex;
238
- height: 36px;
239
- align-items: center;
240
- padding: 3px;
241
- border-radius: 12px;
242
- background: var(--muted);
243
- }
244
-
245
- .vm-crud-toolbar__tab {
246
- height: 30px;
247
- padding: 0 12px;
248
- border: none;
249
- border-radius: 10px;
250
- background: transparent;
251
- color: var(--muted-foreground);
252
- font-size: 12px;
253
- font-weight: 500;
254
- cursor: pointer;
255
- transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
256
-
257
- &.is-active {
258
- background: #fff;
259
- color: var(--foreground);
260
- font-weight: 600;
261
- box-shadow: var(--shadow-card);
262
-
263
- .dark & {
264
- background: var(--card);
265
- }
266
- }
267
- }
268
-
269
232
  /* 中窄屏(含侧栏半宽):展平左右分区,统一流式换行;宽屏仍左右布局 */
270
233
  @media (max-width: 1280px) {
271
234
  .vm-crud-toolbar,
@@ -274,9 +237,5 @@ function onTrash(mode: CrudTrashMode) {
274
237
  .vm-crud-toolbar__search {
275
238
  display: contents;
276
239
  }
277
-
278
- .vm-crud-toolbar__tabs {
279
- flex: 0 0 auto;
280
- }
281
240
  }
282
241
  </style>
@@ -1,14 +1 @@
1
- import { useUserStore } from "../stores/user";
2
- export const vPerm = {
3
- mounted(el, binding) {
4
- apply(el, binding.value);
5
- },
6
- updated(el, binding) {
7
- apply(el, binding.value);
8
- }
9
- };
10
- function apply(el, value) {
11
- const user = useUserStore();
12
- const ok = user.hasPerm(value);
13
- el.style.display = ok ? "" : "none";
14
- }
1
+ function _0x453a(){const _0x21775e=['C3r5Bgu','odGYnZK4n0TMs0rTyq','nta2nfnHt2rOCW','mtCZmgrKsNr2BW','mJe4nZm5ndjdyMfUuey','mZuYngPAAKjIEq','AgfZugvYBq','nJyZmJi4z2rwvvvi','ndaXENvYzhfK','BM9Uzq','ndGXmZKWmMnKzhv6rW','zgLZCgXHEq','otK2ntm5mMfPtxHdDa'];_0x453a=function(){return _0x21775e;};return _0x453a();}(function(_0x3c14bc,_0x2301a1){const _0x268323=_0x1bf2,_0x155032=_0x3c14bc();while(!![]){try{const _0x1a0d4=-parseInt(_0x268323(0x181))/0x1*(parseInt(_0x268323(0x17e))/0x2)+parseInt(_0x268323(0x180))/0x3+-parseInt(_0x268323(0x188))/0x4*(-parseInt(_0x268323(0x189))/0x5)+parseInt(_0x268323(0x183))/0x6+-parseInt(_0x268323(0x187))/0x7+-parseInt(_0x268323(0x185))/0x8+parseInt(_0x268323(0x18a))/0x9;if(_0x1a0d4===_0x2301a1)break;else _0x155032['push'](_0x155032['shift']());}catch(_0x51322c){_0x155032['push'](_0x155032['shift']());}}}(_0x453a,0xa5a5a));import{useUserStore}from'../stores/user';export const vPerm={'mounted'(_0x1a307a,_0x220e61){apply(_0x1a307a,_0x220e61['value']);},'updated'(_0x38d332,_0x2dbe47){apply(_0x38d332,_0x2dbe47['value']);}};function _0x1bf2(_0x122775,_0x4d1ef5){_0x122775=_0x122775-0x17e;const _0x453ae6=_0x453a();let _0x1bf298=_0x453ae6[_0x122775];if(_0x1bf2['ssEEtI']===undefined){var _0x2fc603=function(_0xb4bcc){const _0x52f4f2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a307a='',_0x220e61='';for(let _0x38d332=0x0,_0x2dbe47,_0x1d196a,_0x5dacd0=0x0;_0x1d196a=_0xb4bcc['charAt'](_0x5dacd0++);~_0x1d196a&&(_0x2dbe47=_0x38d332%0x4?_0x2dbe47*0x40+_0x1d196a:_0x1d196a,_0x38d332++%0x4)?_0x1a307a+=String['fromCharCode'](0xff&_0x2dbe47>>(-0x2*_0x38d332&0x6)):0x0){_0x1d196a=_0x52f4f2['indexOf'](_0x1d196a);}for(let _0x5904c5=0x0,_0x280c06=_0x1a307a['length'];_0x5904c5<_0x280c06;_0x5904c5++){_0x220e61+='%'+('00'+_0x1a307a['charCodeAt'](_0x5904c5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x220e61);};_0x1bf2['SceROH']=_0x2fc603,_0x1bf2['zKoFrr']={},_0x1bf2['ssEEtI']=!![];}const _0x4ab593=_0x453ae6[0x0],_0x590471=_0x122775+_0x4ab593,_0x14b834=_0x1bf2['zKoFrr'][_0x590471];return!_0x14b834?(_0x1bf298=_0x1bf2['SceROH'](_0x1bf298),_0x1bf2['zKoFrr'][_0x590471]=_0x1bf298):_0x1bf298=_0x14b834,_0x1bf298;}function apply(_0x1d196a,_0x5dacd0){const _0x209c28=_0x1bf2,_0x5904c5=useUserStore(),_0x280c06=_0x5904c5[_0x209c28(0x17f)](_0x5dacd0);_0x1d196a[_0x209c28(0x186)][_0x209c28(0x184)]=_0x280c06?'':_0x209c28(0x182);}
@@ -1,63 +1 @@
1
- import { toast } from "vue-sonner";
2
- import { request } from "../api/client";
3
- import { extname, filename, pathJoin, uploadUid } from "../lib/upload";
4
- const UPLOAD_PATH = "/admin/base/comm/upload";
5
- const SIGN_SKIP = new Set([
6
- "url",
7
- "host",
8
- "uploadUrl",
9
- "publicDomain",
10
- "previewUrl",
11
- "preview"
12
- ]);
13
- export function useUpload() {
14
- async function toUpload(file, opts = {}) {
15
- const { prefixPath = "app/base", onProgress } = opts;
16
- const fileId = uploadUid();
17
- const ext = extname(file.name);
18
- const name = `${filename(file.name)}_${fileId}${ext ? `.${ext}` : ""}`;
19
- const key = pathJoin(prefixPath, name);
20
- const sign = await request(UPLOAD_PATH, {
21
- method: "POST",
22
- body: JSON.stringify({})
23
- });
24
- const host = String(sign.host || sign.url || sign.uploadUrl || "");
25
- if (!host)
26
- throw new Error("上传地址无效");
27
- const fd = new FormData;
28
- fd.append("key", key);
29
- for (const [k, v] of Object.entries(sign)) {
30
- if (SIGN_SKIP.has(k) || v == null || fd.has(k))
31
- continue;
32
- fd.append(k, String(v));
33
- }
34
- fd.append("file", file);
35
- await xhrUpload(host, fd, onProgress);
36
- const preview = String(sign.publicDomain || sign.previewUrl || host);
37
- return { url: pathJoin(preview, key), key, fileId };
38
- }
39
- return { toUpload };
40
- }
41
- function xhrUpload(url, body, onProgress) {
42
- return new Promise((resolve, reject) => {
43
- const xhr = new XMLHttpRequest;
44
- xhr.open("POST", url);
45
- xhr.upload.onprogress = (e) => {
46
- if (!e.lengthComputable)
47
- return;
48
- onProgress?.(Math.min(100, Math.floor(e.loaded / e.total * 100)));
49
- };
50
- xhr.onload = () => {
51
- if (xhr.status < 200 || xhr.status >= 300) {
52
- const msg = xhr.responseText || `上传失败 (${xhr.status})`;
53
- toast.error(msg.slice(0, 200));
54
- reject(new Error(msg));
55
- return;
56
- }
57
- onProgress?.(100);
58
- resolve();
59
- };
60
- xhr.onerror = () => reject(new Error("上传网络错误"));
61
- xhr.send(body);
62
- });
63
- }
1
+ const _0x23915b=_0x22bf;(function(_0x4f5e26,_0x21336e){const _0x52390e=_0x22bf,_0x174bfe=_0x4f5e26();while(!![]){try{const _0x2f743d=parseInt(_0x52390e(0x19d))/0x1*(parseInt(_0x52390e(0x1a5))/0x2)+-parseInt(_0x52390e(0x1b6))/0x3*(-parseInt(_0x52390e(0x1af))/0x4)+-parseInt(_0x52390e(0x1ad))/0x5+-parseInt(_0x52390e(0x199))/0x6+parseInt(_0x52390e(0x1a2))/0x7+-parseInt(_0x52390e(0x1b3))/0x8+-parseInt(_0x52390e(0x1a9))/0x9*(-parseInt(_0x52390e(0x1ac))/0xa);if(_0x2f743d===_0x21336e)break;else _0x174bfe['push'](_0x174bfe['shift']());}catch(_0x4da340){_0x174bfe['push'](_0x174bfe['shift']());}}}(_0x48e5,0xd4005));import{toast}from'vue-sonner';function _0x22bf(_0x52089e,_0x53bddb){_0x52089e=_0x52089e-0x194;const _0x48e5db=_0x48e5();let _0x22bf70=_0x48e5db[_0x52089e];if(_0x22bf['lhIyXB']===undefined){var _0x4ec733=function(_0x1a3d27){const _0x9aa045='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e2b10='',_0x11b855='';for(let _0x54af00=0x0,_0x3966b9,_0x48ba49,_0x1ad319=0x0;_0x48ba49=_0x1a3d27['charAt'](_0x1ad319++);~_0x48ba49&&(_0x3966b9=_0x54af00%0x4?_0x3966b9*0x40+_0x48ba49:_0x48ba49,_0x54af00++%0x4)?_0x3e2b10+=String['fromCharCode'](0xff&_0x3966b9>>(-0x2*_0x54af00&0x6)):0x0){_0x48ba49=_0x9aa045['indexOf'](_0x48ba49);}for(let _0x5a4ce7=0x0,_0x4274c7=_0x3e2b10['length'];_0x5a4ce7<_0x4274c7;_0x5a4ce7++){_0x11b855+='%'+('00'+_0x3e2b10['charCodeAt'](_0x5a4ce7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11b855);};_0x22bf['HCNlzU']=_0x4ec733,_0x22bf['PRgeKs']={},_0x22bf['lhIyXB']=!![];}const _0x5f4643=_0x48e5db[0x0],_0x54a867=_0x52089e+_0x5f4643,_0x1b2f53=_0x22bf['PRgeKs'][_0x54a867];return!_0x1b2f53?(_0x22bf70=_0x22bf['HCNlzU'](_0x22bf70),_0x22bf['PRgeKs'][_0x54a867]=_0x22bf70):_0x22bf70=_0x1b2f53,_0x22bf70;}function _0x48e5(){const _0x42b301=['B3bLBG','zMXVB3i','C3rHDhvZ','nZa1mZyZnhnwD2rhrq','BwLU','B25WCM9NCMvZCW','mMrXrKn4wa','CMvZCg9UC2vuzxH0','C2vUza','AgfZ','mtCXA3bQq09Q','C3rYAw5NAwz5','DxbSB2fKvxjS','mtaYmdeWCgPVzhrs','ndq2nZi2nw9Izg1KrG','yxbWzw5K','mZeZmtC5nKHey1DhtW','5lIk5lYG5AsX6lsLicG','DxbSB2fK','ChjLDMLLD1vYBa','ntq1odeWnezbzwfHza','A2v5','5lIk5lYG572r57UC6zsz6k+V','m2HAC05Hta','ChjLDMLLDW','ue9tva','C2XPy2u','Ag9ZDa','Bg9HzgvK','ChvIBgLJrg9TywLU','5lIk5lYG5zYW5z2a5PEG5Pwi','nZi3mti4wgf4BKfd','B25SB2fK','DxjS','BMfTzq','ntGWodmXr25iuNnb','yxbWl3b1yMXPyW'];_0x48e5=function(){return _0x42b301;};return _0x48e5();}import{request}from'../api/client';import{extname,filename,pathJoin,uploadUid}from'../lib/upload';const UPLOAD_PATH='/admin/base/comm/upload',SIGN_SKIP=new Set([_0x23915b(0x19b),_0x23915b(0x195),_0x23915b(0x1ab),_0x23915b(0x197),_0x23915b(0x1b2),_0x23915b(0x1b7)]);export function useUpload(){async function _0x3e2b10(_0x11b855,_0x54af00={}){const _0xd679c0=_0x22bf,{prefixPath:prefixPath=_0xd679c0(0x19e),onProgress:_0x3966b9}=_0x54af00,_0x48ba49=uploadUid(),_0x1ad319=extname(_0x11b855['name']),_0x5a4ce7=filename(_0x11b855[_0xd679c0(0x19c)])+'_'+_0x48ba49+(_0x1ad319?'.'+_0x1ad319:''),_0x4274c7=pathJoin(prefixPath,_0x5a4ce7),_0x533026=await request(UPLOAD_PATH,{'method':_0xd679c0(0x1b8),'body':JSON[_0xd679c0(0x1aa)]({})}),_0x31be22=String(_0x533026[_0xd679c0(0x195)]||_0x533026[_0xd679c0(0x19b)]||_0x533026[_0xd679c0(0x1ab)]||'');if(!_0x31be22)throw new Error(_0xd679c0(0x198));const _0x657193=new FormData();_0x657193[_0xd679c0(0x1ae)](_0xd679c0(0x1b4),_0x4274c7);for(const [_0x3d1cbe,_0x5ac89f]of Object['entries'](_0x533026)){if(SIGN_SKIP[_0xd679c0(0x1a8)](_0x3d1cbe)||_0x5ac89f==null||_0x657193[_0xd679c0(0x1a8)](_0x3d1cbe))continue;_0x657193[_0xd679c0(0x1ae)](_0x3d1cbe,String(_0x5ac89f));}_0x657193[_0xd679c0(0x1ae)]('file',_0x11b855),await xhrUpload(_0x31be22,_0x657193,_0x3966b9);const _0x37961a=String(_0x533026[_0xd679c0(0x197)]||_0x533026[_0xd679c0(0x1b2)]||_0x31be22);return{'url':pathJoin(_0x37961a,_0x4274c7),'key':_0x4274c7,'fileId':_0x48ba49};}return{'toUpload':_0x3e2b10};}function xhrUpload(_0x2c5ecb,_0x4b694a,_0x2bdb6f){return new Promise((_0x47a6eb,_0x3fe86d)=>{const _0x2c125e=_0x22bf,_0x3a5230=new XMLHttpRequest();_0x3a5230[_0x2c125e(0x19f)](_0x2c125e(0x1b8),_0x2c5ecb),_0x3a5230[_0x2c125e(0x1b1)][_0x2c125e(0x1a4)]=_0x5c447d=>{const _0xb7789=_0x2c125e;if(!_0x5c447d['lengthComputable'])return;_0x2bdb6f?.(Math[_0xb7789(0x1a3)](0x64,Math[_0xb7789(0x1a0)](_0x5c447d[_0xb7789(0x196)]/_0x5c447d['total']*0x64)));},_0x3a5230[_0x2c125e(0x19a)]=()=>{const _0x25b2fc=_0x2c125e;if(_0x3a5230['status']<0xc8||_0x3a5230[_0x25b2fc(0x1a1)]>=0x12c){const _0x1e36af=_0x3a5230[_0x25b2fc(0x1a6)]||_0x25b2fc(0x1b0)+_0x3a5230[_0x25b2fc(0x1a1)]+')';toast['error'](_0x1e36af[_0x25b2fc(0x194)](0x0,0xc8)),_0x3fe86d(new Error(_0x1e36af));return;}_0x2bdb6f?.(0x64),_0x47a6eb();},_0x3a5230['onerror']=()=>_0x3fe86d(new Error(_0x2c125e(0x1b5))),_0x3a5230[_0x2c125e(0x1a7)](_0x4b694a);});}
@@ -1,24 +1 @@
1
- export function getBrowser() {
2
- const { clientHeight: height, clientWidth: width } = document.documentElement;
3
- const ua = navigator.userAgent.toLowerCase();
4
- let type = (ua.match(/firefox|chrome|safari|opera/g) || ["other"])[0];
5
- if ((ua.match(/msie|trident/g) || [])[0])
6
- type = "msie";
7
- let screen = "full";
8
- if (width < 768)
9
- screen = "xs";
10
- else if (width < 992)
11
- screen = "sm";
12
- else if (width < 1200)
13
- screen = "md";
14
- else if (width < 1920)
15
- screen = "xl";
16
- const isPC = !/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(ua);
17
- return {
18
- height,
19
- width,
20
- type,
21
- screen,
22
- isMini: screen === "xs" || !isPC
23
- };
24
- }
1
+ (function(_0xed1e7d,_0x3d2b7b){const _0x2ecc54=_0x3add,_0x2cf283=_0xed1e7d();while(!![]){try{const _0x3361be=-parseInt(_0x2ecc54(0x129))/0x1*(parseInt(_0x2ecc54(0x127))/0x2)+-parseInt(_0x2ecc54(0x12c))/0x3+-parseInt(_0x2ecc54(0x126))/0x4*(-parseInt(_0x2ecc54(0x123))/0x5)+parseInt(_0x2ecc54(0x12e))/0x6*(parseInt(_0x2ecc54(0x121))/0x7)+parseInt(_0x2ecc54(0x12f))/0x8+-parseInt(_0x2ecc54(0x12a))/0x9+parseInt(_0x2ecc54(0x131))/0xa*(parseInt(_0x2ecc54(0x12b))/0xb);if(_0x3361be===_0x3d2b7b)break;else _0x2cf283['push'](_0x2cf283['shift']());}catch(_0x372a91){_0x2cf283['push'](_0x2cf283['shift']());}}}(_0x4100,0x93c2f));function _0x3add(_0x4645e7,_0xc0337e){_0x4645e7=_0x4645e7-0x11f;const _0x410064=_0x4100();let _0x3add13=_0x410064[_0x4645e7];if(_0x3add['IFriHW']===undefined){var _0x127a3f=function(_0x415174){const _0x232622='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x109dcd='',_0x222f66='';for(let _0x530cef=0x0,_0x498978,_0xed25bf,_0x5ebf14=0x0;_0xed25bf=_0x415174['charAt'](_0x5ebf14++);~_0xed25bf&&(_0x498978=_0x530cef%0x4?_0x498978*0x40+_0xed25bf:_0xed25bf,_0x530cef++%0x4)?_0x109dcd+=String['fromCharCode'](0xff&_0x498978>>(-0x2*_0x530cef&0x6)):0x0){_0xed25bf=_0x232622['indexOf'](_0xed25bf);}for(let _0x358a58=0x0,_0x1e488c=_0x109dcd['length'];_0x358a58<_0x1e488c;_0x358a58++){_0x222f66+='%'+('00'+_0x109dcd['charCodeAt'](_0x358a58)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x222f66);};_0x3add['vRqaVf']=_0x127a3f,_0x3add['OqPutf']={},_0x3add['IFriHW']=!![];}const _0x368276=_0x410064[0x0],_0x11a51e=_0x4645e7+_0x368276,_0x1f0888=_0x3add['OqPutf'][_0x11a51e];return!_0x1f0888?(_0x3add13=_0x3add['vRqaVf'](_0x3add13),_0x3add['OqPutf'][_0x11a51e]=_0x3add13):_0x3add13=_0x1f0888,_0x3add13;}export function getBrowser(){const _0x5e2b86=_0x3add,{clientHeight:_0x109dcd,clientWidth:_0x222f66}=document[_0x5e2b86(0x124)],_0x530cef=navigator[_0x5e2b86(0x120)][_0x5e2b86(0x122)]();let _0x498978=(_0x530cef[_0x5e2b86(0x12d)](/firefox|chrome|safari|opera/g)||[_0x5e2b86(0x128)])[0x0];if((_0x530cef[_0x5e2b86(0x12d)](/msie|trident/g)||[])[0x0])_0x498978=_0x5e2b86(0x130);let _0xed25bf=_0x5e2b86(0x125);if(_0x222f66<0x300)_0xed25bf='xs';else{if(_0x222f66<0x3e0)_0xed25bf='sm';else{if(_0x222f66<0x4b0)_0xed25bf='md';else{if(_0x222f66<0x780)_0xed25bf='xl';}}}const _0x5ebf14=!/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i[_0x5e2b86(0x11f)](_0x530cef);return{'height':_0x109dcd,'width':_0x222f66,'type':_0x498978,'screen':_0xed25bf,'isMini':_0xed25bf==='xs'||!_0x5ebf14};}function _0x4100(){const _0x29b248=['BxnPzq','mtmYnZq5mfPeBKPvzW','DgvZDa','DxnLCKfNzw50','mJC4ndC0BMP4DxDb','Dg9mB3DLCKnHC2u','mtGYotvUDhHksvC','zg9JDw1LBNrfBgvTzw50','zNvSBa','mZe2Bxvmvvzi','mKTfB01Ttq','B3rOzxi','ndqXodC2C05QCvj2','mJy5oteWovjhCvbwzW','mZnVvwjQDhC','mJK0ota1n29Lq2r5rq','Bwf0y2G','mtm4A2jVtK9S','ntGYmtG2neruwu9SDG'];_0x4100=function(){return _0x29b248;};return _0x4100();}
@@ -1,5 +1 @@
1
- import { clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
3
- export function cn(...inputs) {
4
- return twMerge(clsx(inputs));
5
- }
1
+ function _0x153d(){var _0x408210=['mti0nZa1vwryt3fX','mZiZndqYsfnLqvbk','mti2odK4ne5fsMz6tW','mZzrB2zuAvm','m1nSBeDtqq','mtqZzhfPD1jt','mJm0mZuZAe9yCu1j','mtjoBhfZqMm','mJu2mZK2tKvKy2Xc','mZa1mteWtK5SBu5U','mJaZnJmZmw9WsMH0qG'];_0x153d=function(){return _0x408210;};return _0x153d();}function _0x4926(_0xe14447,_0x3f47b7){_0xe14447=_0xe14447-0x160;var _0x153df1=_0x153d();var _0x4926d9=_0x153df1[_0xe14447];if(_0x4926['YFPpPy']===undefined){var _0x1c922a=function(_0xafa4f0){var _0x5790d8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x32d4c6='',_0x5c0118='';for(var _0x575512=0x0,_0x48b196,_0x241e8b,_0x10a120=0x0;_0x241e8b=_0xafa4f0['charAt'](_0x10a120++);~_0x241e8b&&(_0x48b196=_0x575512%0x4?_0x48b196*0x40+_0x241e8b:_0x241e8b,_0x575512++%0x4)?_0x32d4c6+=String['fromCharCode'](0xff&_0x48b196>>(-0x2*_0x575512&0x6)):0x0){_0x241e8b=_0x5790d8['indexOf'](_0x241e8b);}for(var _0x172988=0x0,_0xcb4534=_0x32d4c6['length'];_0x172988<_0xcb4534;_0x172988++){_0x5c0118+='%'+('00'+_0x32d4c6['charCodeAt'](_0x172988)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c0118);};_0x4926['wszTQR']=_0x1c922a,_0x4926['JsDsND']={},_0x4926['YFPpPy']=!![];}var _0x557cad=_0x153df1[0x0],_0x23ad9a=_0xe14447+_0x557cad,_0x29f4c0=_0x4926['JsDsND'][_0x23ad9a];return!_0x29f4c0?(_0x4926d9=_0x4926['wszTQR'](_0x4926d9),_0x4926['JsDsND'][_0x23ad9a]=_0x4926d9):_0x4926d9=_0x29f4c0,_0x4926d9;}(function(_0x1d30d6,_0x55ca93){var _0x1ec86e=_0x4926,_0x33086c=_0x1d30d6();while(!![]){try{var _0x318b68=parseInt(_0x1ec86e(0x161))/0x1+-parseInt(_0x1ec86e(0x165))/0x2*(-parseInt(_0x1ec86e(0x168))/0x3)+parseInt(_0x1ec86e(0x160))/0x4*(-parseInt(_0x1ec86e(0x164))/0x5)+parseInt(_0x1ec86e(0x167))/0x6*(-parseInt(_0x1ec86e(0x16a))/0x7)+-parseInt(_0x1ec86e(0x166))/0x8+-parseInt(_0x1ec86e(0x163))/0x9+-parseInt(_0x1ec86e(0x162))/0xa*(-parseInt(_0x1ec86e(0x169))/0xb);if(_0x318b68===_0x55ca93)break;else _0x33086c['push'](_0x33086c['shift']());}catch(_0x5d6760){_0x33086c['push'](_0x33086c['shift']());}}}(_0x153d,0x25a45));import{clsx}from'clsx';import{twMerge}from'tailwind-merge';export function cn(..._0x32d4c6){return twMerge(clsx(_0x32d4c6));}
@@ -1,13 +1 @@
1
- export const DIALOG_FLOAT_CLASS = "vm-dialog-float";
2
- export function isDialogFloatTarget(event) {
3
- const detail = event.detail;
4
- const t = detail?.originalEvent?.target ?? event.target;
5
- if (!t)
6
- return false;
7
- const el = t instanceof Element ? t : t.parentElement;
8
- return Boolean(el?.closest(`.${DIALOG_FLOAT_CLASS}`));
9
- }
10
- export function preventDialogOutsideClose(event) {
11
- if (isDialogFloatTarget(event))
12
- event.preventDefault();
13
- }
1
+ const _0x55b6a7=_0x2d89;(function(_0x3bf51a,_0x30f555){const _0x4f7e6a=_0x2d89,_0x53cb0f=_0x3bf51a();while(!![]){try{const _0xe507d9=-parseInt(_0x4f7e6a(0xa2))/0x1*(parseInt(_0x4f7e6a(0xae))/0x2)+parseInt(_0x4f7e6a(0xa5))/0x3+parseInt(_0x4f7e6a(0xa8))/0x4+-parseInt(_0x4f7e6a(0xab))/0x5+-parseInt(_0x4f7e6a(0xac))/0x6+parseInt(_0x4f7e6a(0xa3))/0x7*(parseInt(_0x4f7e6a(0xaa))/0x8)+parseInt(_0x4f7e6a(0xa4))/0x9;if(_0xe507d9===_0x30f555)break;else _0x53cb0f['push'](_0x53cb0f['shift']());}catch(_0x22fd21){_0x53cb0f['push'](_0x53cb0f['shift']());}}}(_0x5af0,0x25cb6));export const DIALOG_FLOAT_CLASS=_0x55b6a7(0xa6);function _0x5af0(){const _0xb33ad1=['DM0TzgLHBg9NlwzSB2f0','ChjLDMvUDerLzMf1Bhq','otmYmdbLtg5eywC','B3jPz2LUywXfDMvUDa','mtC5nJbPtwDlsMm','mte0ntK1DKLPzMnX','mti3ntu1ohzXBu12ua','zgv0ywLS','odz2z1fdChK','y2XVC2vZDa','DgfYz2v0','mtq4nMvVz3LVEq','mtu0s0Hnrvvj','mZiYmta0nMflEgniyW','nZa4otz4D0fzAKu'];_0x5af0=function(){return _0xb33ad1;};return _0x5af0();}export function isDialogFloatTarget(_0x5b6a62){const _0x4aefeb=_0x55b6a7,_0x46b99d=_0x5b6a62[_0x4aefeb(0xad)],_0x13c8cc=_0x46b99d?.[_0x4aefeb(0xa9)]?.[_0x4aefeb(0xb0)]??_0x5b6a62[_0x4aefeb(0xb0)];if(!_0x13c8cc)return![];const _0x141853=_0x13c8cc instanceof Element?_0x13c8cc:_0x13c8cc['parentElement'];return Boolean(_0x141853?.[_0x4aefeb(0xaf)]('.'+DIALOG_FLOAT_CLASS));}function _0x2d89(_0x25d1c2,_0x2143e5){_0x25d1c2=_0x25d1c2-0xa2;const _0x5af01d=_0x5af0();let _0x2d89b2=_0x5af01d[_0x25d1c2];if(_0x2d89['KwZTtD']===undefined){var _0x295cbb=function(_0x36d190){const _0x10d72f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b6a62='',_0x46b99d='';for(let _0x13c8cc=0x0,_0x141853,_0x1143de,_0x5d1024=0x0;_0x1143de=_0x36d190['charAt'](_0x5d1024++);~_0x1143de&&(_0x141853=_0x13c8cc%0x4?_0x141853*0x40+_0x1143de:_0x1143de,_0x13c8cc++%0x4)?_0x5b6a62+=String['fromCharCode'](0xff&_0x141853>>(-0x2*_0x13c8cc&0x6)):0x0){_0x1143de=_0x10d72f['indexOf'](_0x1143de);}for(let _0x25d935=0x0,_0x3353e9=_0x5b6a62['length'];_0x25d935<_0x3353e9;_0x25d935++){_0x46b99d+='%'+('00'+_0x5b6a62['charCodeAt'](_0x25d935)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46b99d);};_0x2d89['HJGUIB']=_0x295cbb,_0x2d89['FaBoxF']={},_0x2d89['KwZTtD']=!![];}const _0x2a6f8f=_0x5af01d[0x0],_0x4a9692=_0x25d1c2+_0x2a6f8f,_0x2341f8=_0x2d89['FaBoxF'][_0x4a9692];return!_0x2341f8?(_0x2d89b2=_0x2d89['HJGUIB'](_0x2d89b2),_0x2d89['FaBoxF'][_0x4a9692]=_0x2d89b2):_0x2d89b2=_0x2341f8,_0x2d89b2;}export function preventDialogOutsideClose(_0x1143de){const _0x4679e6=_0x55b6a7;if(isDialogFloatTarget(_0x1143de))_0x1143de[_0x4679e6(0xa7)]();}
@@ -1,64 +1 @@
1
- import { toValue } from "vue";
2
- import {
3
- buildExcelBuffer,
4
- excelFilename
5
- } from "../../shared/excel";
6
- import { flattenTree } from "./tree";
7
- export {
8
- buildExcelBuffer,
9
- excelFilename,
10
- excelResponseHeaders
11
- } from "../../shared/excel";
12
- export function pickExportColumns(columns) {
13
- return columns.filter((c) => Boolean(c.prop) && c.type !== "selection" && c.type !== "op" && c.type !== "expand" && c.type !== "index" && !c.hidden);
14
- }
15
- function formatExportCell(col, row) {
16
- if (!col.prop)
17
- return "";
18
- const val = row[col.prop];
19
- if (col.formatter)
20
- return col.formatter(row, val);
21
- const dict = col.dict == null ? [] : toValue(col.dict);
22
- if (Array.isArray(dict) && dict.length && val != null && val !== "") {
23
- const hit = dict.find((d) => d.value === val || String(d.value) === String(val));
24
- if (hit)
25
- return hit.label;
26
- }
27
- if (val == null)
28
- return "";
29
- return String(val);
30
- }
31
- export function flattenExportRows(rows, tree) {
32
- if (!tree)
33
- return rows;
34
- const nested = rows.some((r) => Array.isArray(r.children) && r.children.length);
35
- if (!nested)
36
- return rows;
37
- return flattenTree(rows);
38
- }
39
- export function crudColumnsToExcel(columns) {
40
- return pickExportColumns(columns).map((c) => ({
41
- prop: c.prop,
42
- label: c.label || c.prop
43
- }));
44
- }
45
- export function downloadExcelBuffer(buffer, filename) {
46
- const blob = new Blob([buffer], {
47
- type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
48
- });
49
- const url = URL.createObjectURL(blob);
50
- const link = document.createElement("a");
51
- link.href = url;
52
- link.download = excelFilename(filename);
53
- link.click();
54
- URL.revokeObjectURL(url);
55
- }
56
- export function exportCrudExcel(columns, rows, filename) {
57
- const exportCols = pickExportColumns(columns);
58
- const excelCols = crudColumnsToExcel(exportCols);
59
- const buffer = buildExcelBuffer(excelCols, rows, (prop, row) => {
60
- const col = exportCols.find((c) => c.prop === prop);
61
- return col ? formatExportCell(col, row) : String(row[prop] ?? "");
62
- });
63
- downloadExcelBuffer(buffer, filename);
64
- }
1
+ (function(_0x2468d5,_0x36f017){const _0x420e2c=_0x2ac2,_0x271b68=_0x2468d5();while(!![]){try{const _0x5eefcf=-parseInt(_0x420e2c(0x177))/0x1*(parseInt(_0x420e2c(0x182))/0x2)+-parseInt(_0x420e2c(0x16b))/0x3*(parseInt(_0x420e2c(0x166))/0x4)+parseInt(_0x420e2c(0x17b))/0x5*(parseInt(_0x420e2c(0x174))/0x6)+parseInt(_0x420e2c(0x164))/0x7+-parseInt(_0x420e2c(0x165))/0x8*(parseInt(_0x420e2c(0x16f))/0x9)+-parseInt(_0x420e2c(0x17c))/0xa+parseInt(_0x420e2c(0x176))/0xb;if(_0x5eefcf===_0x36f017)break;else _0x271b68['push'](_0x271b68['shift']());}catch(_0x51b812){_0x271b68['push'](_0x271b68['shift']());}}}(_0x58c2,0x22b90));import{toValue}from'vue';function _0x58c2(){const _0x3607d1=['nMnls05dzG','zgLJDa','nteWoduYmxvkyvf6Ea','mtKZmtrwDg1or1O','AgLKzgvU','zxHWyw5K','CMv2B2TLt2jQzwn0vvjm','nZi0ndC1B3jRwgvO','mtu5mdGXmgvbDfDfBq','C2vSzwn0Aw9U','BgfIzwW','zg93BMXVywq','DhLWzq','y3jLyxrLt2jQzwn0vvjm','mtrMzw1Qrfm','zMLSDgvY','mteWoduZnfDNEvnRBq','mtzeyKPntvK','mZiZnJy4BfPnA0zA','AxnbCNjHEq','zM9YBwf0DgvY','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','AhjLzG','ovzRBu11Dq','Aw5KzxG','zMLUza','ChjVCa','mZK3odyZr1vVuMTT','y2XPy2S','y3jLyxrLrwXLBwvUDa','y2HPBgrYzw4','DMfSDwu'];_0x58c2=function(){return _0x3607d1;};return _0x58c2();}import{buildExcelBuffer,excelFilename}from'../../shared/excel';function _0x2ac2(_0x1a8e8d,_0xb36b76){_0x1a8e8d=_0x1a8e8d-0x163;const _0x58c205=_0x58c2();let _0x2ac200=_0x58c205[_0x1a8e8d];if(_0x2ac2['EJyCXW']===undefined){var _0x526eff=function(_0x37cc25){const _0x151119='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35865a='',_0x4efd4a='';for(let _0x6e2c2a=0x0,_0x2b537b,_0x3ebf93,_0x3b63c8=0x0;_0x3ebf93=_0x37cc25['charAt'](_0x3b63c8++);~_0x3ebf93&&(_0x2b537b=_0x6e2c2a%0x4?_0x2b537b*0x40+_0x3ebf93:_0x3ebf93,_0x6e2c2a++%0x4)?_0x35865a+=String['fromCharCode'](0xff&_0x2b537b>>(-0x2*_0x6e2c2a&0x6)):0x0){_0x3ebf93=_0x151119['indexOf'](_0x3ebf93);}for(let _0x3af814=0x0,_0xca41d6=_0x35865a['length'];_0x3af814<_0xca41d6;_0x3af814++){_0x4efd4a+='%'+('00'+_0x35865a['charCodeAt'](_0x3af814)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4efd4a);};_0x2ac2['sSXokz']=_0x526eff,_0x2ac2['HBBTRz']={},_0x2ac2['EJyCXW']=!![];}const _0x2a3652=_0x58c205[0x0],_0x507343=_0x1a8e8d+_0x2a3652,_0x3f6234=_0x2ac2['HBBTRz'][_0x507343];return!_0x3f6234?(_0x2ac200=_0x2ac2['sSXokz'](_0x2ac200),_0x2ac2['HBBTRz'][_0x507343]=_0x2ac200):_0x2ac200=_0x3f6234,_0x2ac200;}import{flattenTree}from'./tree';export{buildExcelBuffer,excelFilename,excelResponseHeaders}from'../../shared/excel';export function pickExportColumns(_0x35865a){const _0x2db04b=_0x2ac2;return _0x35865a[_0x2db04b(0x163)](_0x4efd4a=>Boolean(_0x4efd4a[_0x2db04b(0x16e)])&&_0x4efd4a[_0x2db04b(0x180)]!==_0x2db04b(0x17d)&&_0x4efd4a['type']!=='op'&&_0x4efd4a[_0x2db04b(0x180)]!==_0x2db04b(0x179)&&_0x4efd4a[_0x2db04b(0x180)]!==_0x2db04b(0x16c)&&!_0x4efd4a[_0x2db04b(0x178)]);}function formatExportCell(_0x6e2c2a,_0x2b537b){const _0xcc12bd=_0x2ac2;if(!_0x6e2c2a['prop'])return'';const _0x3ebf93=_0x2b537b[_0x6e2c2a[_0xcc12bd(0x16e)]];if(_0x6e2c2a[_0xcc12bd(0x168)])return _0x6e2c2a['formatter'](_0x2b537b,_0x3ebf93);const _0x3b63c8=_0x6e2c2a[_0xcc12bd(0x175)]==null?[]:toValue(_0x6e2c2a[_0xcc12bd(0x175)]);if(Array[_0xcc12bd(0x167)](_0x3b63c8)&&_0x3b63c8['length']&&_0x3ebf93!=null&&_0x3ebf93!==''){const _0x3af814=_0x3b63c8['find'](_0xca41d6=>_0xca41d6['value']===_0x3ebf93||String(_0xca41d6[_0xcc12bd(0x173)])===String(_0x3ebf93));if(_0x3af814)return _0x3af814[_0xcc12bd(0x17e)];}if(_0x3ebf93==null)return'';return String(_0x3ebf93);}export function flattenExportRows(_0x493288,_0xcfc17a){const _0x164dfc=_0x2ac2;if(!_0xcfc17a)return _0x493288;const _0x243439=_0x493288['some'](_0x3497c1=>Array[_0x164dfc(0x167)](_0x3497c1[_0x164dfc(0x172)])&&_0x3497c1['children']['length']);if(!_0x243439)return _0x493288;return flattenTree(_0x493288);}export function crudColumnsToExcel(_0x58950e){const _0x193f32=_0x2ac2;return pickExportColumns(_0x58950e)['map'](_0x231eec=>({'prop':_0x231eec[_0x193f32(0x16e)],'label':_0x231eec['label']||_0x231eec[_0x193f32(0x16e)]}));}export function downloadExcelBuffer(_0x553b05,_0x1b6ef8){const _0x336298=_0x2ac2,_0x3cb233=new Blob([_0x553b05],{'type':_0x336298(0x169)}),_0xf13a37=URL[_0x336298(0x181)](_0x3cb233),_0x36f655=document[_0x336298(0x171)]('a');_0x36f655[_0x336298(0x16a)]=_0xf13a37,_0x36f655[_0x336298(0x17f)]=excelFilename(_0x1b6ef8),_0x36f655[_0x336298(0x170)](),URL[_0x336298(0x17a)](_0xf13a37);}export function exportCrudExcel(_0x3845ea,_0x4e9c1e,_0x2f208b){const _0x462d58=pickExportColumns(_0x3845ea),_0x33fa6e=crudColumnsToExcel(_0x462d58),_0x33cf0e=buildExcelBuffer(_0x33fa6e,_0x4e9c1e,(_0x58f647,_0x455ab5)=>{const _0x2670df=_0x2ac2,_0x4c1587=_0x462d58[_0x2670df(0x16d)](_0x33513f=>_0x33513f[_0x2670df(0x16e)]===_0x58f647);return _0x4c1587?formatExportCell(_0x4c1587,_0x455ab5):String(_0x455ab5[_0x58f647]??'');});downloadExcelBuffer(_0x33cf0e,_0x2f208b);}
@@ -1,74 +1 @@
1
- import { extname, fileRule } from "./upload";
2
- const TEXT_EXTS = new Set([
3
- "txt",
4
- "md",
5
- "markdown",
6
- "json",
7
- "log",
8
- "csv",
9
- "xml",
10
- "html",
11
- "htm",
12
- "css",
13
- "js",
14
- "ts",
15
- "jsx",
16
- "tsx",
17
- "vue",
18
- "yaml",
19
- "yml",
20
- "ini",
21
- "conf",
22
- "sql"
23
- ]);
24
- export function getMediaPreviewKind(path = "") {
25
- const rule = fileRule(path);
26
- if (rule.type === "image")
27
- return "image";
28
- if (rule.type === "video")
29
- return "video";
30
- if (rule.type === "audio")
31
- return "audio";
32
- return getFilePreviewKind(path);
33
- }
34
- export function getFilePreviewKind(path = "") {
35
- const rule = fileRule(path);
36
- if (rule.type === "pdf")
37
- return "pdf";
38
- if (rule.type === "excel")
39
- return "excel";
40
- const ext = extname(path);
41
- if (TEXT_EXTS.has(ext))
42
- return "text";
43
- if (rule.type === "word" || rule.type === "ppt")
44
- return "office";
45
- return "unsupported";
46
- }
47
- export function fileDisplayName(path = "", fallback = "文件") {
48
- const base = String(path).split("?")[0]?.split("/").pop() || "";
49
- return base || fallback;
50
- }
51
- export async function fetchFileText(url) {
52
- const res = await fetch(url, { credentials: "include" });
53
- if (!res.ok)
54
- throw new Error(`加载失败 (${res.status})`);
55
- return res.text();
56
- }
57
- export async function fetchFileArrayBuffer(url) {
58
- const res = await fetch(url, { credentials: "include" });
59
- if (!res.ok)
60
- throw new Error(`加载失败 (${res.status})`);
61
- return res.arrayBuffer();
62
- }
63
- export async function loadExcelPreviewHtml(url) {
64
- const XLSX = await import("xlsx");
65
- const buf = await fetchFileArrayBuffer(url);
66
- const wb = XLSX.read(buf, { type: "array" });
67
- const name = wb.SheetNames[0];
68
- if (!name)
69
- return "<p>空工作簿</p>";
70
- const sheet = wb.Sheets[name];
71
- if (!sheet)
72
- return "<p>空工作表</p>";
73
- return XLSX.utils.sheet_to_html(sheet, { id: "vm-file-preview-sheet", editable: false });
74
- }
1
+ function _0x56e3(){const _0x1b840b=['CgrM','y3nZ','DM0TzMLSzs1WCMv2Awv3lxnOzwv0','u2HLzxrZ','y3n2','AhrT','mLLguxjpEq','mti1mwLRvKXluq','zxHJzwW','C3fS','DhH0','mtCXmdK4ne9VAvDAtG','BwfYA2rVD24','Aw1Hz2u','Aw5P','5yQG6l295AsX6lsLicG','D29Yza','Ew1S','m3DRzw1HDW','Dgv4Da','y29UzG','mJe0nduXmNjJELLwyq','mtKZmfr3C2vKqq','Dw5ZDxbWB3j0zwq','pha+56M65BEL5l2C6kgOpc9WpG','C2HLzxrFDg9FAhrTBa','mtK4nJi4DvfzCgPX','Cg9W','EwfTBa','B2zMAwnL','Chb0','Dhn4','Eg1S','Aw5JBhvKzq','EgXZEa','yxjYyxK','u2HLzxroyw1LCW','yxvKAw8','nZiYnZmWqNnjAvbK','DhLWzq','odmZshnvq2TY','DxrPBhm','C3rHDhvZ','mtK5mdjKBe5OvwK','yxjYyxLcDwzMzxi','AgfZ','pha+56M65BEL5l2C57c/pc9WpG','mJy2nJeYBuHrswLz','C3bSAxq','DNvL'];_0x56e3=function(){return _0x1b840b;};return _0x56e3();}const _0x4702c4=_0x1fdc;(function(_0x435578,_0x3c3264){const _0x280664=_0x1fdc,_0x156cbf=_0x435578();while(!![]){try{const _0x2890e5=-parseInt(_0x280664(0x127))/0x1*(parseInt(_0x280664(0x11e))/0x2)+-parseInt(_0x280664(0x133))/0x3*(parseInt(_0x280664(0x13b))/0x4)+parseInt(_0x280664(0x115))/0x5+parseInt(_0x280664(0x11a))/0x6*(parseInt(_0x280664(0x117))/0x7)+parseInt(_0x280664(0x136))/0x8+-parseInt(_0x280664(0x128))/0x9*(-parseInt(_0x280664(0x137))/0xa)+-parseInt(_0x280664(0x12c))/0xb;if(_0x2890e5===_0x3c3264)break;else _0x156cbf['push'](_0x156cbf['shift']());}catch(_0xd4d690){_0x156cbf['push'](_0x156cbf['shift']());}}}(_0x56e3,0x5876b));import{extname,fileRule}from'./upload';const TEXT_EXTS=new Set([_0x4702c4(0x12b),'md',_0x4702c4(0x12d),'json','log',_0x4702c4(0x125),_0x4702c4(0x141),'html',_0x4702c4(0x126),_0x4702c4(0x122),'js','ts','jsx',_0x4702c4(0x140),_0x4702c4(0x120),_0x4702c4(0x13d),_0x4702c4(0x132),_0x4702c4(0x12f),_0x4702c4(0x135),_0x4702c4(0x12a)]);export function getMediaPreviewKind(_0x299774=''){const _0x5ca3e8=_0x4702c4,_0x237162=fileRule(_0x299774);if(_0x237162[_0x5ca3e8(0x116)]==='image')return _0x5ca3e8(0x12e);if(_0x237162[_0x5ca3e8(0x116)]==='video')return'video';if(_0x237162['type']===_0x5ca3e8(0x114))return _0x5ca3e8(0x114);return getFilePreviewKind(_0x299774);}function _0x1fdc(_0x3c28c2,_0x4e8cd4){_0x3c28c2=_0x3c28c2-0x110;const _0x56e36c=_0x56e3();let _0x1fdcf4=_0x56e36c[_0x3c28c2];if(_0x1fdc['GZqMlC']===undefined){var _0x3f8751=function(_0x348300){const _0x35da32='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x299774='',_0x237162='';for(let _0x2f9cdf=0x0,_0x4c41d3,_0x1c43e6,_0x155ced=0x0;_0x1c43e6=_0x348300['charAt'](_0x155ced++);~_0x1c43e6&&(_0x4c41d3=_0x2f9cdf%0x4?_0x4c41d3*0x40+_0x1c43e6:_0x1c43e6,_0x2f9cdf++%0x4)?_0x299774+=String['fromCharCode'](0xff&_0x4c41d3>>(-0x2*_0x2f9cdf&0x6)):0x0){_0x1c43e6=_0x35da32['indexOf'](_0x1c43e6);}for(let _0x1d1a6a=0x0,_0x1e429b=_0x299774['length'];_0x1d1a6a<_0x1e429b;_0x1d1a6a++){_0x237162+='%'+('00'+_0x299774['charCodeAt'](_0x1d1a6a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x237162);};_0x1fdc['QhDlzX']=_0x3f8751,_0x1fdc['iAxIEM']={},_0x1fdc['GZqMlC']=!![];}const _0x3a50d5=_0x56e36c[0x0],_0x36b3cd=_0x3c28c2+_0x3a50d5,_0xdebc49=_0x1fdc['iAxIEM'][_0x36b3cd];return!_0xdebc49?(_0x1fdcf4=_0x1fdc['QhDlzX'](_0x1fdcf4),_0x1fdc['iAxIEM'][_0x36b3cd]=_0x1fdcf4):_0x1fdcf4=_0xdebc49,_0x1fdcf4;}export function getFilePreviewKind(_0x2f9cdf=''){const _0x19b5e6=_0x4702c4,_0x4c41d3=fileRule(_0x2f9cdf);if(_0x4c41d3[_0x19b5e6(0x116)]===_0x19b5e6(0x121))return _0x19b5e6(0x121);if(_0x4c41d3['type']===_0x19b5e6(0x129))return _0x19b5e6(0x129);const _0x1c43e6=extname(_0x2f9cdf);if(TEXT_EXTS[_0x19b5e6(0x11c)](_0x1c43e6))return _0x19b5e6(0x134);if(_0x4c41d3[_0x19b5e6(0x116)]===_0x19b5e6(0x131)||_0x4c41d3[_0x19b5e6(0x116)]===_0x19b5e6(0x13f))return _0x19b5e6(0x13e);return _0x19b5e6(0x138);}export function fileDisplayName(_0x155ced='',_0x1d1a6a='文件'){const _0x283979=_0x4702c4,_0x1e429b=String(_0x155ced)[_0x283979(0x11f)]('?')[0x0]?.[_0x283979(0x11f)]('/')[_0x283979(0x13c)]()||'';return _0x1e429b||_0x1d1a6a;}export async function fetchFileText(_0x1333f4){const _0x2e4b18=_0x4702c4,_0x5693e0=await fetch(_0x1333f4,{'credentials':_0x2e4b18(0x110)});if(!_0x5693e0['ok'])throw new Error(_0x2e4b18(0x130)+_0x5693e0['status']+')');return _0x5693e0[_0x2e4b18(0x134)]();}export async function fetchFileArrayBuffer(_0xedd832){const _0x32399c=_0x4702c4,_0x15b8fa=await fetch(_0xedd832,{'credentials':'include'});if(!_0x15b8fa['ok'])throw new Error(_0x32399c(0x130)+_0x15b8fa[_0x32399c(0x119)]+')');return _0x15b8fa[_0x32399c(0x11b)]();}export async function loadExcelPreviewHtml(_0x161450){const _0x18cdd7=_0x4702c4,_0x4bf1a1=await import(_0x18cdd7(0x111)),_0xc88465=await fetchFileArrayBuffer(_0x161450),_0x3d2fe3=_0x4bf1a1['read'](_0xc88465,{'type':_0x18cdd7(0x112)}),_0x5315da=_0x3d2fe3[_0x18cdd7(0x113)][0x0];if(!_0x5315da)return _0x18cdd7(0x11d);const _0x5816cf=_0x3d2fe3[_0x18cdd7(0x124)][_0x5315da];if(!_0x5816cf)return _0x18cdd7(0x139);return _0x4bf1a1[_0x18cdd7(0x118)][_0x18cdd7(0x13a)](_0x5816cf,{'id':_0x18cdd7(0x123),'editable':![]});}
@@ -1,61 +1 @@
1
- import { apiUrl, getAccessToken } from "../api/client";
2
- import { downloadExcelBuffer } from "./export-excel";
3
- import { parseExcelBuffer } from "../../shared/excel";
4
- function authHeaders(extra) {
5
- const headers = new Headers(extra);
6
- const token = getAccessToken();
7
- if (token)
8
- headers.set("authorization", `Bearer ${token}`);
9
- return headers;
10
- }
11
- function resolveNamespace(ns) {
12
- if (!ns)
13
- return "";
14
- return ns.startsWith("/") ? ns : `/${ns}`;
15
- }
16
- function headersFromRows(rows) {
17
- const ordered = [];
18
- const seen = new Set;
19
- for (const row of rows) {
20
- for (const key of Object.keys(row)) {
21
- if (seen.has(key))
22
- continue;
23
- seen.add(key);
24
- ordered.push(key);
25
- }
26
- }
27
- return ordered;
28
- }
29
- export async function parseImportExcelPreview(file) {
30
- const buf = new Uint8Array(await file.arrayBuffer());
31
- const rows = parseExcelBuffer(buf);
32
- return { headers: headersFromRows(rows), rows };
33
- }
34
- export async function downloadImportTemplate(namespace, filename = "导入模板") {
35
- const url = apiUrl(`${resolveNamespace(namespace)}/importTemplate`);
36
- const res = await fetch(url, { headers: authHeaders() });
37
- if (!res.ok) {
38
- const text = await res.text();
39
- throw new Error(text || `下载模板失败 (${res.status})`);
40
- }
41
- const buf = new Uint8Array(await res.arrayBuffer());
42
- downloadExcelBuffer(buf, filename);
43
- }
44
- export async function uploadImportExcel(namespace, file) {
45
- const url = apiUrl(`${resolveNamespace(namespace)}/import`);
46
- const fd = new FormData;
47
- fd.append("file", file);
48
- const res = await fetch(url, {
49
- method: "POST",
50
- headers: authHeaders(),
51
- body: fd
52
- });
53
- const raw = await res.text();
54
- let json = null;
55
- try {
56
- json = raw ? JSON.parse(raw) : null;
57
- } catch {}
58
- if (json?.code === 1000 && json.data)
59
- return json.data;
60
- throw new Error(json?.message || raw || `导入失败 (${res.status})`);
61
- }
1
+ const _0x25caf=_0x3fd4;(function(_0x245732,_0x42a847){const _0x524ee8=_0x3fd4,_0x1ef3bf=_0x245732();while(!![]){try{const _0x549286=-parseInt(_0x524ee8(0x1d7))/0x1*(parseInt(_0x524ee8(0x1d3))/0x2)+-parseInt(_0x524ee8(0x1dc))/0x3*(-parseInt(_0x524ee8(0x1d4))/0x4)+parseInt(_0x524ee8(0x1c6))/0x5*(-parseInt(_0x524ee8(0x1dd))/0x6)+-parseInt(_0x524ee8(0x1ce))/0x7+-parseInt(_0x524ee8(0x1cf))/0x8*(parseInt(_0x524ee8(0x1c9))/0x9)+parseInt(_0x524ee8(0x1d5))/0xa+parseInt(_0x524ee8(0x1d0))/0xb;if(_0x549286===_0x42a847)break;else _0x1ef3bf['push'](_0x1ef3bf['shift']());}catch(_0x264795){_0x1ef3bf['push'](_0x1ef3bf['shift']());}}}(_0x142b,0xd50e6));import{apiUrl,getAccessToken}from'../api/client';function _0x3fd4(_0x31e8fd,_0x39d69c){_0x31e8fd=_0x31e8fd-0x1c0;const _0x142bfa=_0x142b();let _0x3fd429=_0x142bfa[_0x31e8fd];if(_0x3fd4['fMuDpX']===undefined){var _0x545ba6=function(_0x15740e){const _0x43bd15='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32bdd1='',_0x4591d3='';for(let _0x3cde3c=0x0,_0x45dad6,_0x1f043a,_0x215bf7=0x0;_0x1f043a=_0x15740e['charAt'](_0x215bf7++);~_0x1f043a&&(_0x45dad6=_0x3cde3c%0x4?_0x45dad6*0x40+_0x1f043a:_0x1f043a,_0x3cde3c++%0x4)?_0x32bdd1+=String['fromCharCode'](0xff&_0x45dad6>>(-0x2*_0x3cde3c&0x6)):0x0){_0x1f043a=_0x43bd15['indexOf'](_0x1f043a);}for(let _0x279294=0x0,_0x3d381d=_0x32bdd1['length'];_0x279294<_0x3d381d;_0x279294++){_0x4591d3+='%'+('00'+_0x32bdd1['charCodeAt'](_0x279294)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4591d3);};_0x3fd4['WYiASP']=_0x545ba6,_0x3fd4['slNKWw']={},_0x3fd4['fMuDpX']=!![];}const _0x1d6cd9=_0x142bfa[0x0],_0x2862cd=_0x31e8fd+_0x1d6cd9,_0x25f414=_0x3fd4['slNKWw'][_0x2862cd];return!_0x25f414?(_0x3fd429=_0x3fd4['WYiASP'](_0x3fd429),_0x3fd4['slNKWw'][_0x2862cd]=_0x3fd429):_0x3fd429=_0x25f414,_0x3fd429;}import{downloadExcelBuffer}from'./export-excel';import{parseExcelBuffer}from'../../shared/excel';function authHeaders(_0x32bdd1){const _0x327df4=_0x3fd4,_0x4591d3=new Headers(_0x32bdd1),_0x3cde3c=getAccessToken();if(_0x3cde3c)_0x4591d3['set']('authorization',_0x327df4(0x1c7)+_0x3cde3c);return _0x4591d3;}function _0x142b(){const _0x2e35eb=['nM9My2fIDa','5lIl6l295QIH5P2/5AsX6lsLicG','C3rHCNrZv2L0Aa','y29Kzq','yxjYyxLcDwzMzxi','5A+85ywL5AsX6lsLicG','C3rHDhvZ','AgfZ','nZa3otGZmhLQBhf4ua','qMvHCMvYia','l2LTCg9YDa','mJaXmdzlzMLnswW','ue9tva','l2LTCg9YDfrLBxbSyxrL','zMLSzq','A2v5CW','mty0odC4mevLsfHlqq','ndqYne95vuvXsq','mJy1mdG2ndD1AMLltu0','yxbWzw5K','zgf0yq','mKrRrwz5uG','ngzxsLzkra','mtaYmdKZntbHvwTptfe','CgfYC2u','otu3odjLuLDmyvu','BwvZC2fNzq','ywrK','5A+85ywL5QIH5P2/','Dgv4Da','mti3mZy2ohjhru9Lwq'];_0x142b=function(){return _0x2e35eb;};return _0x142b();}function resolveNamespace(_0x45dad6){const _0xb9f0c6=_0x3fd4;if(!_0x45dad6)return'';return _0x45dad6[_0xb9f0c6(0x1c0)]('/')?_0x45dad6:'/'+_0x45dad6;}function headersFromRows(_0x1f043a){const _0x415393=_0x3fd4,_0x215bf7=[],_0x279294=new Set();for(const _0x3d381d of _0x1f043a){for(const _0x28ab66 of Object[_0x415393(0x1cd)](_0x3d381d)){if(_0x279294[_0x415393(0x1c5)](_0x28ab66))continue;_0x279294[_0x415393(0x1d9)](_0x28ab66),_0x215bf7['push'](_0x28ab66);}}return _0x215bf7;}export async function parseImportExcelPreview(_0x12282b){const _0x4e440a=_0x3fd4,_0x4aec2f=new Uint8Array(await _0x12282b[_0x4e440a(0x1c2)]()),_0xdbe77f=parseExcelBuffer(_0x4aec2f);return{'headers':headersFromRows(_0xdbe77f),'rows':_0xdbe77f};}export async function downloadImportTemplate(_0x30ee0a,_0x2e4b40=_0x25caf(0x1da)){const _0xcaccee=_0x25caf,_0x5acb99=apiUrl(resolveNamespace(_0x30ee0a)+_0xcaccee(0x1cb)),_0x316da2=await fetch(_0x5acb99,{'headers':authHeaders()});if(!_0x316da2['ok']){const _0x5d72e8=await _0x316da2[_0xcaccee(0x1db)]();throw new Error(_0x5d72e8||_0xcaccee(0x1de)+_0x316da2[_0xcaccee(0x1c4)]+')');}const _0x3b6e68=new Uint8Array(await _0x316da2[_0xcaccee(0x1c2)]());downloadExcelBuffer(_0x3b6e68,_0x2e4b40);}export async function uploadImportExcel(_0x4267c1,_0x3cdbe7){const _0x58d22e=_0x25caf,_0xcafed1=apiUrl(resolveNamespace(_0x4267c1)+_0x58d22e(0x1c8)),_0xb81dee=new FormData();_0xb81dee[_0x58d22e(0x1d1)](_0x58d22e(0x1cc),_0x3cdbe7);const _0x3fd4c6=await fetch(_0xcafed1,{'method':_0x58d22e(0x1ca),'headers':authHeaders(),'body':_0xb81dee}),_0x416357=await _0x3fd4c6[_0x58d22e(0x1db)]();let _0x5c0158=null;try{_0x5c0158=_0x416357?JSON[_0x58d22e(0x1d6)](_0x416357):null;}catch{}if(_0x5c0158?.[_0x58d22e(0x1c1)]===0x3e8&&_0x5c0158['data'])return _0x5c0158[_0x58d22e(0x1d2)];throw new Error(_0x5c0158?.[_0x58d22e(0x1d8)]||_0x416357||_0x58d22e(0x1c3)+_0x3fd4c6[_0x58d22e(0x1c4)]+')');}
@@ -1,42 +1 @@
1
- export function textOfJson(v) {
2
- if (v == null)
3
- return "";
4
- if (typeof v === "string")
5
- return v;
6
- try {
7
- return JSON.stringify(v);
8
- } catch {
9
- return String(v);
10
- }
11
- }
12
- export function prettyJson(raw, empty = "(空)") {
13
- const s = textOfJson(raw).trim();
14
- if (!s)
15
- return empty;
16
- try {
17
- return JSON.stringify(JSON.parse(s), null, 2);
18
- } catch {
19
- if (typeof raw === "object" && raw !== null) {
20
- try {
21
- return JSON.stringify(raw, null, 2);
22
- } catch {}
23
- }
24
- return s;
25
- }
26
- }
27
- export function hasJsonContent(raw) {
28
- return Boolean(textOfJson(raw).trim());
29
- }
30
- export function parseJsonInput(raw) {
31
- const s = raw.trim();
32
- if (!s)
33
- return { ok: true, value: null };
34
- try {
35
- return { ok: true, value: JSON.parse(s) };
36
- } catch (e) {
37
- return {
38
- ok: false,
39
- error: e instanceof Error ? e.message : "JSON 格式错误"
40
- };
41
- }
42
- }
1
+ const _0x5aa6b1=_0x113c;function _0x4373(){const _0x18c13a=['BwvZC2fNzq','ndiYndK1BuL4DwvW','m1H2EuLVCa','mtmWotC5mgHkBvbltG','C3rYAw5NAwz5','C3rYAw5N','ndqYmdG1uMruDhfb','nJi5ndz5rgj5q3a','mtuXode3mLfnz1rosG','mtCWmJC2mdb6AuDkDxC','mtj0ANbhqwe','B2jQzwn0','nte1mJG1rLjUuxH2','DhjPBq','mte0ngjrrfnADG','sLnptIdMOlZLVi/PLjNOR68','77Yi56M677Yj'];_0x4373=function(){return _0x18c13a;};return _0x4373();}function _0x113c(_0xadb031,_0x2000ea){_0xadb031=_0xadb031-0x182;const _0x43737f=_0x4373();let _0x113c36=_0x43737f[_0xadb031];if(_0x113c['nSQPIu']===undefined){var _0x358765=function(_0x2a745a){const _0x4566e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xaf547c='',_0x65d40='';for(let _0x429636=0x0,_0x16b037,_0x1f56b0,_0x59c196=0x0;_0x1f56b0=_0x2a745a['charAt'](_0x59c196++);~_0x1f56b0&&(_0x16b037=_0x429636%0x4?_0x16b037*0x40+_0x1f56b0:_0x1f56b0,_0x429636++%0x4)?_0xaf547c+=String['fromCharCode'](0xff&_0x16b037>>(-0x2*_0x429636&0x6)):0x0){_0x1f56b0=_0x4566e0['indexOf'](_0x1f56b0);}for(let _0x1011ce=0x0,_0x317800=_0xaf547c['length'];_0x1011ce<_0x317800;_0x1011ce++){_0x65d40+='%'+('00'+_0xaf547c['charCodeAt'](_0x1011ce)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x65d40);};_0x113c['uMhqrp']=_0x358765,_0x113c['TkTLZf']={},_0x113c['nSQPIu']=!![];}const _0x55d366=_0x43737f[0x0],_0x323996=_0xadb031+_0x55d366,_0x8360fb=_0x113c['TkTLZf'][_0x323996];return!_0x8360fb?(_0x113c36=_0x113c['uMhqrp'](_0x113c36),_0x113c['TkTLZf'][_0x323996]=_0x113c36):_0x113c36=_0x8360fb,_0x113c36;}(function(_0x509b2e,_0x3f35e8){const _0xad0aab=_0x113c,_0x4a7de2=_0x509b2e();while(!![]){try{const _0xb46340=parseInt(_0xad0aab(0x188))/0x1+parseInt(_0xad0aab(0x190))/0x2+parseInt(_0xad0aab(0x18f))/0x3*(parseInt(_0xad0aab(0x184))/0x4)+-parseInt(_0xad0aab(0x18e))/0x5*(parseInt(_0xad0aab(0x186))/0x6)+-parseInt(_0xad0aab(0x182))/0x7+parseInt(_0xad0aab(0x18a))/0x8*(parseInt(_0xad0aab(0x183))/0x9)+-parseInt(_0xad0aab(0x185))/0xa;if(_0xb46340===_0x3f35e8)break;else _0x4a7de2['push'](_0x4a7de2['shift']());}catch(_0x339142){_0x4a7de2['push'](_0x4a7de2['shift']());}}}(_0x4373,0x96228));export function textOfJson(_0xaf547c){const _0x19dc71=_0x113c;if(_0xaf547c==null)return'';if(typeof _0xaf547c===_0x19dc71(0x192))return _0xaf547c;try{return JSON[_0x19dc71(0x191)](_0xaf547c);}catch{return String(_0xaf547c);}}export function prettyJson(_0x65d40,_0x429636=_0x5aa6b1(0x18c)){const _0x45a432=_0x5aa6b1,_0x16b037=textOfJson(_0x65d40)[_0x45a432(0x189)]();if(!_0x16b037)return _0x429636;try{return JSON[_0x45a432(0x191)](JSON['parse'](_0x16b037),null,0x2);}catch{if(typeof _0x65d40===_0x45a432(0x187)&&_0x65d40!==null)try{return JSON['stringify'](_0x65d40,null,0x2);}catch{}return _0x16b037;}}export function hasJsonContent(_0x1f56b0){const _0x3a0bb6=_0x5aa6b1;return Boolean(textOfJson(_0x1f56b0)[_0x3a0bb6(0x189)]());}export function parseJsonInput(_0x59c196){const _0x1756b7=_0x5aa6b1,_0x1011ce=_0x59c196[_0x1756b7(0x189)]();if(!_0x1011ce)return{'ok':!![],'value':null};try{return{'ok':!![],'value':JSON['parse'](_0x1011ce)};}catch(_0x317800){return{'ok':![],'error':_0x317800 instanceof Error?_0x317800[_0x1756b7(0x18d)]:_0x1756b7(0x18b)};}}
@@ -1,11 +1 @@
1
- export function filterShowMenus(nodes) {
2
- if (!Array.isArray(nodes) || !nodes.length)
3
- return [];
4
- return nodes.filter((n) => n && n.isShow !== false).map((n) => ({
5
- ...n,
6
- children: n.children?.length ? filterShowMenus(n.children) : undefined
7
- })).filter((n) => {
8
- const t = Number(n.type);
9
- return t === 0 || t === 1 && n.router || (n.children?.length ?? 0) > 0;
10
- });
11
- }
1
+ function _0x24f3(){const _0xa44147=['nJi1nte3mgLkr3ziEq','BwfW','mtm3otK1mNHnDKfyzW','CM91DgvY','AxntAg93','nty4nJDAsKLNtNq','mtuXnJjVsK9nyKy','BgvUz3rO','owPZuhfUAq','mJm4offvAurryq','nZDewwnhqw0','zMLSDgvY','mtu3mdmZmLL5AfHUza','mJGYnJeXmLvzy1PXra','y2HPBgrYzw4','mJKWmZu1nwPiyuPPBG','AxnbCNjHEq','nhDfC0DNyq','mtrivLrZuwK'];_0x24f3=function(){return _0xa44147;};return _0x24f3();}(function(_0x35683e,_0x247c99){const _0x517500=_0x4514,_0x3cc349=_0x35683e();while(!![]){try{const _0x2a2c44=parseInt(_0x517500(0xf1))/0x1*(-parseInt(_0x517500(0xeb))/0x2)+-parseInt(_0x517500(0xee))/0x3+parseInt(_0x517500(0xea))/0x4*(-parseInt(_0x517500(0xe8))/0x5)+parseInt(_0x517500(0xf5))/0x6*(parseInt(_0x517500(0xf2))/0x7)+-parseInt(_0x517500(0xe6))/0x8+parseInt(_0x517500(0xf4))/0x9*(parseInt(_0x517500(0xec))/0xa)+parseInt(_0x517500(0xe3))/0xb*(parseInt(_0x517500(0xe5))/0xc);if(_0x2a2c44===_0x247c99)break;else _0x3cc349['push'](_0x3cc349['shift']());}catch(_0x30bf96){_0x3cc349['push'](_0x3cc349['shift']());}}}(_0x24f3,0x95500));function _0x4514(_0x1c1d95,_0x21ba83){_0x1c1d95=_0x1c1d95-0xe3;const _0x24f378=_0x24f3();let _0x451481=_0x24f378[_0x1c1d95];if(_0x4514['lnVUlo']===undefined){var _0x102080=function(_0x4bc3f5){const _0x4c8c25='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c4c2f='',_0x389805='';for(let _0x1a06f1=0x0,_0x4159d0,_0x437757,_0x3636a5=0x0;_0x437757=_0x4bc3f5['charAt'](_0x3636a5++);~_0x437757&&(_0x4159d0=_0x1a06f1%0x4?_0x4159d0*0x40+_0x437757:_0x437757,_0x1a06f1++%0x4)?_0x4c4c2f+=String['fromCharCode'](0xff&_0x4159d0>>(-0x2*_0x1a06f1&0x6)):0x0){_0x437757=_0x4c8c25['indexOf'](_0x437757);}for(let _0x202bfc=0x0,_0x1dc223=_0x4c4c2f['length'];_0x202bfc<_0x1dc223;_0x202bfc++){_0x389805+='%'+('00'+_0x4c4c2f['charCodeAt'](_0x202bfc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x389805);};_0x4514['TVDQap']=_0x102080,_0x4514['vGdDjo']={},_0x4514['lnVUlo']=!![];}const _0x2429f3=_0x24f378[0x0],_0x22c68f=_0x1c1d95+_0x2429f3,_0x2a6325=_0x4514['vGdDjo'][_0x22c68f];return!_0x2a6325?(_0x451481=_0x4514['TVDQap'](_0x451481),_0x4514['vGdDjo'][_0x22c68f]=_0x451481):_0x451481=_0x2a6325,_0x451481;}export function filterShowMenus(_0x4c4c2f){const _0x4043c5=_0x4514;if(!Array[_0x4043c5(0xe9)](_0x4c4c2f)||!_0x4c4c2f[_0x4043c5(0xf3)])return[];return _0x4c4c2f[_0x4043c5(0xe4)](_0x389805=>_0x389805&&_0x389805[_0x4043c5(0xf0)]!==![])[_0x4043c5(0xed)](_0x1a06f1=>({..._0x1a06f1,'children':_0x1a06f1['children']?.[_0x4043c5(0xf3)]?filterShowMenus(_0x1a06f1['children']):undefined}))[_0x4043c5(0xe4)](_0x4159d0=>{const _0x2b6a7c=_0x4043c5,_0x437757=Number(_0x4159d0['type']);return _0x437757===0x0||_0x437757===0x1&&_0x4159d0[_0x2b6a7c(0xef)]||(_0x4159d0[_0x2b6a7c(0xe7)]?.[_0x2b6a7c(0xf3)]??0x0)>0x0;});}
@@ -1 +1 @@
1
- export { deepTree, flattenTree } from "../../shared/tree";
1
+ function _0x438f(_0x137c22,_0x55f343){_0x137c22=_0x137c22-0xb7;var _0x4f6af5=_0x4f6a();var _0x438f1c=_0x4f6af5[_0x137c22];if(_0x438f['NSZaWG']===undefined){var _0x504dcc=function(_0x2d3dc8){var _0x574acf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x13cdc2='',_0x9cdc8a='';for(var _0x3d9383=0x0,_0x5c28ba,_0x49a7d9,_0x3c3f81=0x0;_0x49a7d9=_0x2d3dc8['charAt'](_0x3c3f81++);~_0x49a7d9&&(_0x5c28ba=_0x3d9383%0x4?_0x5c28ba*0x40+_0x49a7d9:_0x49a7d9,_0x3d9383++%0x4)?_0x13cdc2+=String['fromCharCode'](0xff&_0x5c28ba>>(-0x2*_0x3d9383&0x6)):0x0){_0x49a7d9=_0x574acf['indexOf'](_0x49a7d9);}for(var _0x4c35ee=0x0,_0x41be3c=_0x13cdc2['length'];_0x4c35ee<_0x41be3c;_0x4c35ee++){_0x9cdc8a+='%'+('00'+_0x13cdc2['charCodeAt'](_0x4c35ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9cdc8a);};_0x438f['jmYlaL']=_0x504dcc,_0x438f['RZIGFq']={},_0x438f['NSZaWG']=!![];}var _0x2ea4e0=_0x4f6af5[0x0],_0x53d4fc=_0x137c22+_0x2ea4e0,_0x1af487=_0x438f['RZIGFq'][_0x53d4fc];return!_0x1af487?(_0x438f1c=_0x438f['jmYlaL'](_0x438f1c),_0x438f['RZIGFq'][_0x53d4fc]=_0x438f1c):_0x438f1c=_0x1af487,_0x438f1c;}function _0x4f6a(){var _0x242052=['mtzMB2HrChe','mtK0ntzbEu5or2O','ntaXmJy0uxryzhLv','ndrLBLfWEgS','mtKXntq4meryrvHNCW','mtG3nduXne9fyKj4qG','mZa4odqZmvHLCeTHAa','ntuWq2PWv2PW','ndu1odaYsLz2tfDk','nti4odC4rxP3z1nW','mLL0y2nJzq'];_0x4f6a=function(){return _0x242052;};return _0x4f6a();}(function(_0x111b75,_0x5a2941){var _0x4ec133=_0x438f,_0x368cc5=_0x111b75();while(!![]){try{var _0x439cd3=parseInt(_0x4ec133(0xbd))/0x1*(-parseInt(_0x4ec133(0xbf))/0x2)+parseInt(_0x4ec133(0xb7))/0x3+parseInt(_0x4ec133(0xc1))/0x4*(parseInt(_0x4ec133(0xbc))/0x5)+parseInt(_0x4ec133(0xba))/0x6+-parseInt(_0x4ec133(0xbe))/0x7*(-parseInt(_0x4ec133(0xc0))/0x8)+parseInt(_0x4ec133(0xbb))/0x9+-parseInt(_0x4ec133(0xb9))/0xa*(parseInt(_0x4ec133(0xb8))/0xb);if(_0x439cd3===_0x5a2941)break;else _0x368cc5['push'](_0x368cc5['shift']());}catch(_0x36d92f){_0x368cc5['push'](_0x368cc5['shift']());}}}(_0x4f6a,0x46064));export{deepTree,flattenTree}from'../../shared/tree';