x-essential-lib 0.11.5 → 0.11.7

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.
package/dist/index.js CHANGED
@@ -1,10 +1,13 @@
1
1
  (function(){try{document.getElementById(`x-essential-lib`)?.remove();const e = document.createElement(`style`);e.setAttribute(`id`, `x-essential-lib`);const t = document.createTextNode(`.fade-leave-active[data-v-x-essential-lib-c3545c8d]{transition:opacity .5s}.fade-leave-to[data-v-x-essential-lib-c3545c8d]{opacity:0}.x-cont[data-v-x-essential-lib-c3545c8d]{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lds-spinner[data-v-x-essential-lib-c3545c8d]{color:official;width:40px;height:40px;display:inline-block;position:relative}.lds-spinner div[data-v-x-essential-lib-c3545c8d]{transform-origin:20px 20px;animation:1.2s linear infinite lds-spinner-x-essential-lib-c3545c8d}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:after{content:" ";background:#9e9e9e;border-radius:5%;width:2px;height:6px;display:block;position:absolute;top:3px;left:18px}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:first-child{animation-delay:-1.1s;transform:rotate(0)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(2){animation-delay:-1s;transform:rotate(30deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(3){animation-delay:-.9s;transform:rotate(60deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(4){animation-delay:-.8s;transform:rotate(90deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(5){animation-delay:-.7s;transform:rotate(120deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(6){animation-delay:-.6s;transform:rotate(150deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(7){animation-delay:-.5s;transform:rotate(180deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(8){animation-delay:-.4s;transform:rotate(210deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(9){animation-delay:-.3s;transform:rotate(240deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(10){animation-delay:-.2s;transform:rotate(270deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(11){animation-delay:-.1s;transform:rotate(300deg)}.lds-spinner div[data-v-x-essential-lib-c3545c8d]:nth-child(12){animation-delay:0s;transform:rotate(330deg)}@keyframes lds-spinner-x-essential-lib-c3545c8d{0%{opacity:1}to{opacity:0}}.x-item[data-v-x-essential-lib-cfcda9d9]{width:600px}@media (width<=600px){.x-item[data-v-x-essential-lib-cfcda9d9]{width:calc(100vw - 16px)}}.x-cont[data-v-x-essential-lib-b973907d]{z-index:9999;position:fixed;bottom:50px;left:50%;transform:translate(-50%)}`);e.appendChild(t);document.head.appendChild(e);}catch(e){console.error('rolldown-plugin-inject-css', e);}})()
2
- import { a as email$1, c as mitt_default, i as custom, l as usePreferredDark, o as string, r as toLower, s as api } from "./vendor.go3lw3gz.js";
2
+ import { a as email$1, c as mitt_default, i as custom, l as usePreferredDark, o as string, r as toLower, s as api } from "./vendor.gz9a1xde.js";
3
3
  import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, isRef, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, openBlock, provide, ref, renderList, resolveComponent, toDisplayString, unref, useTemplateRef, watch, watchEffect, withCtx, withKeys, withModifiers } from "vue";
4
4
  import { useI18n } from "vue-i18n";
5
5
  import { useDisplay, useTheme } from "vuetify";
6
6
  import axios from "axios";
7
7
  import { globalObjects as globalObjects$1 } from "x-essential-lib";
8
+ import * as components from "vuetify/components";
9
+ import * as directives from "vuetify/directives";
10
+ import * as labsComponents from "vuetify/labs/components";
8
11
  import { useRoute, useRouter } from "vue-router";
9
12
 
10
13
  //#region src/composables/color.ts
@@ -36,7 +39,7 @@ function useColor() {
36
39
  }
37
40
 
38
41
  //#endregion
39
- //#region src/utils/misc.ts
42
+ //#region src/logic/basic/global.ts
40
43
  const globalObjects = (function() {
41
44
  if (!window.globalObjects) {
42
45
  window.globalObjects = {
@@ -54,6 +57,40 @@ const eventBus = (function() {
54
57
  }
55
58
  return window.eventBus;
56
59
  })();
60
+
61
+ //#endregion
62
+ //#region src/logic/basic/type.ts
63
+ const types = [
64
+ "string",
65
+ "number",
66
+ "boolean",
67
+ "array",
68
+ "object",
69
+ "any"
70
+ ];
71
+ function getTypeColor(type) {
72
+ switch (type) {
73
+ case "string": return "#5ba58c";
74
+ case "number": return "#5b67a5";
75
+ case "boolean": return "#5b80a5";
76
+ case "array": return "#745ba5";
77
+ case "object": return "#80a55b";
78
+ case "any": return "#9e9e9e";
79
+ }
80
+ }
81
+ function getTypeDefault(type) {
82
+ switch (type) {
83
+ case "string": return "";
84
+ case "number": return 0;
85
+ case "boolean": return false;
86
+ case "array": return [];
87
+ case "object": return {};
88
+ case "any": return null;
89
+ }
90
+ }
91
+
92
+ //#endregion
93
+ //#region src/logic/basic/utils.ts
57
94
  async function waitMs(ms) {
58
95
  return new Promise((resolve) => {
59
96
  setTimeout(resolve, ms);
@@ -70,20 +107,9 @@ async function waitUtil(conditionFunc, timeout, interval) {
70
107
  check();
71
108
  });
72
109
  }
73
- function appAppear(name, diff) {
74
- const appElement = document.getElementById("single-spa-application:" + name);
75
- if (!appElement) return;
76
- appElement.classList.remove("app-fade", "app-left", "app-right", "app-reset");
77
- if (diff === 0) return;
78
- if (diff > 0) appElement.classList.add("app-left");
79
- else appElement.classList.add("app-right");
80
- setTimeout(() => {
81
- appElement.classList.add("app-reset");
82
- }, 50);
83
- }
84
110
 
85
111
  //#endregion
86
- //#region src/utils/axios/error.ts
112
+ //#region src/logic/axios/error.ts
87
113
  function transformError(error) {
88
114
  const result = {
89
115
  main: "",
@@ -119,7 +145,7 @@ function getErrorMessage(error) {
119
145
  }
120
146
 
121
147
  //#endregion
122
- //#region src/utils/axios/instance.ts
148
+ //#region src/logic/axios/instance.ts
123
149
  function createAxios(options) {
124
150
  const instance = axios.create({ timeout: 6e3 });
125
151
  instance.defaults.baseURL = options.baseUrl;
@@ -142,1425 +168,71 @@ function onReqFulfilled(config) {
142
168
  config.data = JSON.stringify(config.data);
143
169
  return config;
144
170
  }
145
- function onReqRejected(error, onError) {
146
- console.error(error);
147
- onError("request timeout");
148
- }
149
- function onRespFullfilled(resp) {
150
- return resp.data;
151
- }
152
- function onRespRejected(error, onError) {
153
- const resp = error.response;
154
- if (!resp) return Promise.reject(error);
155
- if (resp.status === 401) onUnauthorized();
156
- const msg = resp.data?.message;
157
- if (msg) {
158
- onError(msg);
159
- return Promise.reject(msg);
160
- } else {
161
- const obj = {
162
- code: resp.status,
163
- message: resp.statusText
164
- };
165
- onError(obj);
166
- return Promise.reject(obj);
167
- }
168
- }
169
- function onUnauthorized() {
170
- const { router } = globalObjects;
171
- api.remove("accessToken");
172
- api.remove("refreshToken");
173
- router.replace({ path: `/passport/login` });
174
- }
175
-
176
- //#endregion
177
- //#region src/utils/permission/category.ts
178
- const funcPlaneCategories = [
179
- "app",
180
- "compute",
181
- "data",
182
- "resource",
183
- "org"
184
- ];
185
- const dataPlaneCategories = ["filter"];
186
- const permissionCategories = [...funcPlaneCategories, ...dataPlaneCategories];
187
- function getCategoryPlane(category) {
188
- if (funcPlaneCategories.find((entry) => entry === category) !== void 0) return "func";
189
- if (dataPlaneCategories.find((entry) => entry === category) !== void 0) return "data";
190
- }
191
-
192
- //#endregion
193
- //#region src/pb/orgbase/v1/permission.ts
194
- let Permission = /* @__PURE__ */ function(Permission) {
195
- Permission["unknown_permission"] = "unknown_permission";
196
- Permission["list_app_group"] = "list_app_group";
197
- Permission["create_app_group"] = "create_app_group";
198
- Permission["delete_app_group"] = "delete_app_group";
199
- Permission["update_app_group"] = "update_app_group";
200
- Permission["arrange_app_group"] = "arrange_app_group";
201
- Permission["list_app"] = "list_app";
202
- Permission["get_app"] = "get_app";
203
- Permission["create_app"] = "create_app";
204
- Permission["delete_app"] = "delete_app";
205
- Permission["update_app"] = "update_app";
206
- Permission["list_app_release"] = "list_app_release";
207
- Permission["get_app_release"] = "get_app_release";
208
- Permission["create_app_release"] = "create_app_release";
209
- Permission["delete_app_release"] = "delete_app_release";
210
- Permission["deploy_app_release"] = "deploy_app_release";
211
- Permission["open_app_layer"] = "open_app_layer";
212
- Permission["open_app"] = "open_app";
213
- Permission["list_compute_space"] = "list_compute_space";
214
- Permission["get_compute_space"] = "get_compute_space";
215
- Permission["create_compute_space"] = "create_compute_space";
216
- Permission["delete_compute_space"] = "delete_compute_space";
217
- Permission["update_compute_space"] = "update_compute_space";
218
- Permission["arrange_compute_space"] = "arrange_compute_space";
219
- Permission["list_func_group"] = "list_func_group";
220
- Permission["create_func_group"] = "create_func_group";
221
- Permission["delete_func_group"] = "delete_func_group";
222
- Permission["update_func_group"] = "update_func_group";
223
- Permission["arrange_func_group"] = "arrange_func_group";
224
- Permission["list_func"] = "list_func";
225
- Permission["get_func"] = "get_func";
226
- Permission["create_func"] = "create_func";
227
- Permission["delete_func"] = "delete_func";
228
- Permission["update_func"] = "update_func";
229
- Permission["debug_func"] = "debug_func";
230
- Permission["call_func"] = "call_func";
231
- Permission["list_func_release"] = "list_func_release";
232
- Permission["get_func_release"] = "get_func_release";
233
- Permission["create_func_release"] = "create_func_release";
234
- Permission["delete_func_release"] = "delete_func_release";
235
- Permission["deploy_func_release"] = "deploy_func_release";
236
- Permission["list_flow_group"] = "list_flow_group";
237
- Permission["create_flow_group"] = "create_flow_group";
238
- Permission["delete_flow_group"] = "delete_flow_group";
239
- Permission["update_flow_group"] = "update_flow_group";
240
- Permission["arrange_flow_group"] = "arrange_flow_group";
241
- Permission["list_flow"] = "list_flow";
242
- Permission["get_flow"] = "get_flow";
243
- Permission["create_flow"] = "create_flow";
244
- Permission["delete_flow"] = "delete_flow";
245
- Permission["update_flow"] = "update_flow";
246
- Permission["debug_flow"] = "debug_flow";
247
- Permission["call_flow"] = "call_flow";
248
- Permission["list_flow_release"] = "list_flow_release";
249
- Permission["get_flow_release"] = "get_flow_release";
250
- Permission["create_flow_release"] = "create_flow_release";
251
- Permission["delete_flow_release"] = "delete_flow_release";
252
- Permission["deploy_flow_release"] = "deploy_flow_release";
253
- Permission["list_task_group"] = "list_task_group";
254
- Permission["create_task_group"] = "create_task_group";
255
- Permission["delete_task_group"] = "delete_task_group";
256
- Permission["update_task_group"] = "update_task_group";
257
- Permission["arrange_task_group"] = "arrange_task_group";
258
- Permission["list_task"] = "list_task";
259
- Permission["create_task"] = "create_task";
260
- Permission["delete_task"] = "delete_task";
261
- Permission["update_task"] = "update_task";
262
- Permission["open_compute_layer"] = "open_compute_layer";
263
- Permission["open_task"] = "open_task";
264
- Permission["list_data_space"] = "list_data_space";
265
- Permission["get_data_space"] = "get_data_space";
266
- Permission["create_data_space"] = "create_data_space";
267
- Permission["delete_data_space"] = "delete_data_space";
268
- Permission["update_data_space"] = "update_data_space";
269
- Permission["arrange_data_space"] = "arrange_data_space";
270
- Permission["list_table_group"] = "list_table_group";
271
- Permission["create_table_group"] = "create_table_group";
272
- Permission["delete_table_group"] = "delete_table_group";
273
- Permission["update_table_group"] = "update_table_group";
274
- Permission["arrange_table_group"] = "arrange_table_group";
275
- Permission["list_table"] = "list_table";
276
- Permission["get_table"] = "get_table";
277
- Permission["create_table"] = "create_table";
278
- Permission["delete_table"] = "delete_table";
279
- Permission["update_table"] = "update_table";
280
- Permission["get_data"] = "get_data";
281
- Permission["create_data"] = "create_data";
282
- Permission["delete_data"] = "delete_data";
283
- Permission["update_data"] = "update_data";
284
- Permission["get_relation_graph"] = "get_relation_graph";
285
- Permission["update_relation_graph"] = "update_relation_graph";
286
- Permission["list_change"] = "list_change";
287
- Permission["apply_change"] = "apply_change";
288
- Permission["open_data_layer"] = "open_data_layer";
289
- Permission["list_resource_space"] = "list_resource_space";
290
- Permission["get_resource_space"] = "get_resource_space";
291
- Permission["create_resource_space"] = "create_resource_space";
292
- Permission["delete_resource_space"] = "delete_resource_space";
293
- Permission["update_resource_space"] = "update_resource_space";
294
- Permission["arrange_resource_space"] = "arrange_resource_space";
295
- Permission["list_dir"] = "list_dir";
296
- Permission["create_dir"] = "create_dir";
297
- Permission["delete_dir"] = "delete_dir";
298
- Permission["update_dir"] = "update_dir";
299
- Permission["move_dir"] = "move_dir";
300
- Permission["list_resource"] = "list_resource";
301
- Permission["get_resource"] = "get_resource";
302
- Permission["create_resource"] = "create_resource";
303
- Permission["delete_resource"] = "delete_resource";
304
- Permission["update_resource"] = "update_resource";
305
- Permission["move_resource"] = "move_resource";
306
- Permission["list_resource_release"] = "list_resource_release";
307
- Permission["get_resource_release"] = "get_resource_release";
308
- Permission["create_resource_release"] = "create_resource_release";
309
- Permission["delete_resource_release"] = "delete_resource_release";
310
- Permission["deploy_resource_release"] = "deploy_resource_release";
311
- Permission["open_resource_layer"] = "open_resource_layer";
312
- Permission["list_org_member"] = "list_org_member";
313
- Permission["add_org_member"] = "add_org_member";
314
- Permission["remove_org_member"] = "remove_org_member";
315
- Permission["update_org_member"] = "update_org_member";
316
- Permission["list_org_role_group"] = "list_org_role_group";
317
- Permission["create_org_role_group"] = "create_org_role_group";
318
- Permission["delete_org_role_group"] = "delete_org_role_group";
319
- Permission["update_org_role_group"] = "update_org_role_group";
320
- Permission["arrange_org_role_group"] = "arrange_org_role_group";
321
- Permission["list_org_role"] = "list_org_role";
322
- Permission["get_org_role"] = "get_org_role";
323
- Permission["create_org_role"] = "create_org_role";
324
- Permission["delete_org_role"] = "delete_org_role";
325
- Permission["update_org_role"] = "update_org_role";
326
- Permission["get_org_structure"] = "get_org_structure";
327
- Permission["update_org_structure"] = "update_org_structure";
328
- /** filter_table - 实例:空间/表 */
329
- Permission["filter_table"] = "filter_table";
330
- Permission["UNRECOGNIZED"] = "UNRECOGNIZED";
331
- return Permission;
332
- }({});
333
-
334
- //#endregion
335
- //#region src/utils/permission/types.ts
336
- const planes = ["func", "data"];
337
- const categories = [
338
- "app",
339
- "compute",
340
- "data",
341
- "resource",
342
- "org",
343
- "filter"
344
- ];
345
- const groups = [
346
- "space",
347
- "misc",
348
- "appGroup",
349
- "app",
350
- "appRelease",
351
- "funcGroup",
352
- "func",
353
- "funcRelease",
354
- "flowGroup",
355
- "flow",
356
- "flowRelease",
357
- "taskGroup",
358
- "task",
359
- "tableGroup",
360
- "table",
361
- "data",
362
- "relationGraph",
363
- "change",
364
- "dir",
365
- "resource",
366
- "member",
367
- "role",
368
- "structure"
369
- ];
370
- const layers = [
371
- "env",
372
- "space",
373
- "app",
374
- "func",
375
- "flow",
376
- "task",
377
- "table",
378
- "resource"
379
- ];
380
-
381
- //#endregion
382
- //#region src/utils/permission/meta.ts
383
- const appPermissionMetas = [
384
- {
385
- permission: "list_app_group",
386
- group: "appGroup",
387
- layers: []
388
- },
389
- {
390
- permission: "create_app_group",
391
- group: "appGroup",
392
- layers: []
393
- },
394
- {
395
- permission: "delete_app_group",
396
- group: "appGroup",
397
- layers: []
398
- },
399
- {
400
- permission: "update_app_group",
401
- group: "appGroup",
402
- layers: []
403
- },
404
- {
405
- permission: "arrange_app_group",
406
- group: "appGroup",
407
- layers: []
408
- },
409
- {
410
- permission: "list_app",
411
- group: "app",
412
- layers: []
413
- },
414
- {
415
- permission: "get_app",
416
- group: "app",
417
- layers: ["app"]
418
- },
419
- {
420
- permission: "create_app",
421
- group: "app",
422
- layers: []
423
- },
424
- {
425
- permission: "delete_app",
426
- group: "app",
427
- layers: ["app"]
428
- },
429
- {
430
- permission: "update_app",
431
- group: "app",
432
- layers: ["app"]
433
- },
434
- {
435
- permission: "list_app_release",
436
- group: "appRelease",
437
- layers: ["app"]
438
- },
439
- {
440
- permission: "get_app_release",
441
- group: "appRelease",
442
- layers: ["app"]
443
- },
444
- {
445
- permission: "create_app_release",
446
- group: "appRelease",
447
- layers: ["app"]
448
- },
449
- {
450
- permission: "delete_app_release",
451
- group: "appRelease",
452
- layers: ["app"]
453
- },
454
- {
455
- permission: "deploy_app_release",
456
- group: "appRelease",
457
- layers: ["env", "app"]
458
- },
459
- {
460
- permission: "open_app_layer",
461
- group: "misc",
462
- layers: []
463
- },
464
- {
465
- permission: "open_app",
466
- group: "misc",
467
- layers: ["env", "app"]
468
- }
469
- ];
470
- const computePermissionMetas = [
471
- {
472
- permission: "list_compute_space",
473
- group: "space",
474
- layers: []
475
- },
476
- {
477
- permission: "get_compute_space",
478
- group: "space",
479
- layers: []
480
- },
481
- {
482
- permission: "create_compute_space",
483
- group: "space",
484
- layers: []
485
- },
486
- {
487
- permission: "delete_compute_space",
488
- group: "space",
489
- layers: ["space"]
490
- },
491
- {
492
- permission: "update_compute_space",
493
- group: "space",
494
- layers: ["space"]
495
- },
496
- {
497
- permission: "arrange_compute_space",
498
- group: "space",
499
- layers: []
500
- },
501
- {
502
- permission: "list_func_group",
503
- group: "funcGroup",
504
- layers: ["space"]
505
- },
506
- {
507
- permission: "create_func_group",
508
- group: "funcGroup",
509
- layers: ["space"]
510
- },
511
- {
512
- permission: "delete_func_group",
513
- group: "funcGroup",
514
- layers: ["space"]
515
- },
516
- {
517
- permission: "update_func_group",
518
- group: "funcGroup",
519
- layers: ["space"]
520
- },
521
- {
522
- permission: "arrange_func_group",
523
- group: "funcGroup",
524
- layers: ["space"]
525
- },
526
- {
527
- permission: "list_func",
528
- group: "func",
529
- layers: ["space"]
530
- },
531
- {
532
- permission: "get_func",
533
- group: "func",
534
- layers: ["space", "func"]
535
- },
536
- {
537
- permission: "create_func",
538
- group: "func",
539
- layers: ["space"]
540
- },
541
- {
542
- permission: "delete_func",
543
- group: "func",
544
- layers: ["space", "func"]
545
- },
546
- {
547
- permission: "update_func",
548
- group: "func",
549
- layers: ["space", "func"]
550
- },
551
- {
552
- permission: "debug_func",
553
- group: "func",
554
- layers: ["space", "func"]
555
- },
556
- {
557
- permission: "call_func",
558
- group: "func",
559
- layers: [
560
- "env",
561
- "space",
562
- "func"
563
- ]
564
- },
565
- {
566
- permission: "list_func_release",
567
- group: "funcRelease",
568
- layers: ["space", "func"]
569
- },
570
- {
571
- permission: "get_func_release",
572
- group: "funcRelease",
573
- layers: ["space", "func"]
574
- },
575
- {
576
- permission: "create_func_release",
577
- group: "funcRelease",
578
- layers: ["space", "func"]
579
- },
580
- {
581
- permission: "delete_func_release",
582
- group: "funcRelease",
583
- layers: ["space", "func"]
584
- },
585
- {
586
- permission: "deploy_func_release",
587
- group: "funcRelease",
588
- layers: [
589
- "env",
590
- "space",
591
- "func"
592
- ]
593
- },
594
- {
595
- permission: "list_flow_group",
596
- group: "flowGroup",
597
- layers: ["space"]
598
- },
599
- {
600
- permission: "create_flow_group",
601
- group: "flowGroup",
602
- layers: ["space"]
603
- },
604
- {
605
- permission: "delete_flow_group",
606
- group: "flowGroup",
607
- layers: ["space"]
608
- },
609
- {
610
- permission: "update_flow_group",
611
- group: "flowGroup",
612
- layers: ["space"]
613
- },
614
- {
615
- permission: "arrange_flow_group",
616
- group: "flowGroup",
617
- layers: ["space"]
618
- },
619
- {
620
- permission: "list_flow",
621
- group: "flow",
622
- layers: ["space"]
623
- },
624
- {
625
- permission: "get_flow",
626
- group: "flow",
627
- layers: ["space", "flow"]
628
- },
629
- {
630
- permission: "create_flow",
631
- group: "flow",
632
- layers: ["space"]
633
- },
634
- {
635
- permission: "delete_flow",
636
- group: "flow",
637
- layers: ["space", "flow"]
638
- },
639
- {
640
- permission: "update_flow",
641
- group: "flow",
642
- layers: ["space", "flow"]
643
- },
644
- {
645
- permission: "debug_flow",
646
- group: "flow",
647
- layers: ["space", "flow"]
648
- },
649
- {
650
- permission: "call_flow",
651
- group: "flow",
652
- layers: [
653
- "env",
654
- "space",
655
- "flow"
656
- ]
657
- },
658
- {
659
- permission: "list_flow_release",
660
- group: "flowRelease",
661
- layers: ["space", "flow"]
662
- },
663
- {
664
- permission: "get_flow_release",
665
- group: "flowRelease",
666
- layers: ["space", "flow"]
667
- },
668
- {
669
- permission: "create_flow_release",
670
- group: "flowRelease",
671
- layers: ["space", "flow"]
672
- },
673
- {
674
- permission: "delete_flow_release",
675
- group: "flowRelease",
676
- layers: ["space", "flow"]
677
- },
678
- {
679
- permission: "deploy_flow_release",
680
- group: "flowRelease",
681
- layers: [
682
- "env",
683
- "space",
684
- "flow"
685
- ]
686
- },
687
- {
688
- permission: "list_task_group",
689
- group: "taskGroup",
690
- layers: []
691
- },
692
- {
693
- permission: "create_task_group",
694
- group: "taskGroup",
695
- layers: []
696
- },
697
- {
698
- permission: "delete_task_group",
699
- group: "taskGroup",
700
- layers: []
701
- },
702
- {
703
- permission: "update_task_group",
704
- group: "taskGroup",
705
- layers: []
706
- },
707
- {
708
- permission: "arrange_task_group",
709
- group: "taskGroup",
710
- layers: []
711
- },
712
- {
713
- permission: "list_task",
714
- group: "task",
715
- layers: []
716
- },
717
- {
718
- permission: "create_task",
719
- group: "task",
720
- layers: []
721
- },
722
- {
723
- permission: "delete_task",
724
- group: "task",
725
- layers: []
726
- },
727
- {
728
- permission: "update_task",
729
- group: "task",
730
- layers: []
731
- },
732
- {
733
- permission: "open_compute_layer",
734
- group: "misc",
735
- layers: []
736
- }
737
- ];
738
- const dataPermissionMetas = [
739
- {
740
- permission: "list_data_space",
741
- group: "space",
742
- layers: ["env"]
743
- },
744
- {
745
- permission: "get_data_space",
746
- group: "space",
747
- layers: ["env", "space"]
748
- },
749
- {
750
- permission: "create_data_space",
751
- group: "space",
752
- layers: ["env"]
753
- },
754
- {
755
- permission: "delete_data_space",
756
- group: "space",
757
- layers: ["env", "space"]
758
- },
759
- {
760
- permission: "update_data_space",
761
- group: "space",
762
- layers: ["env", "space"]
763
- },
764
- {
765
- permission: "arrange_data_space",
766
- group: "space",
767
- layers: ["env"]
768
- },
769
- {
770
- permission: "list_table_group",
771
- group: "tableGroup",
772
- layers: ["env", "space"]
773
- },
774
- {
775
- permission: "create_table_group",
776
- group: "tableGroup",
777
- layers: ["env", "space"]
778
- },
779
- {
780
- permission: "delete_table_group",
781
- group: "tableGroup",
782
- layers: ["env", "space"]
783
- },
784
- {
785
- permission: "update_table_group",
786
- group: "tableGroup",
787
- layers: ["env", "space"]
788
- },
789
- {
790
- permission: "arrange_table_group",
791
- group: "tableGroup",
792
- layers: ["env", "space"]
793
- },
794
- {
795
- permission: "list_table",
796
- group: "table",
797
- layers: ["env", "space"]
798
- },
799
- {
800
- permission: "get_table",
801
- group: "table",
802
- layers: [
803
- "env",
804
- "space",
805
- "table"
806
- ]
807
- },
808
- {
809
- permission: "create_table",
810
- group: "table",
811
- layers: ["env", "space"]
812
- },
813
- {
814
- permission: "delete_table",
815
- group: "table",
816
- layers: [
817
- "env",
818
- "space",
819
- "table"
820
- ]
821
- },
822
- {
823
- permission: "update_table",
824
- group: "table",
825
- layers: [
826
- "env",
827
- "space",
828
- "table"
829
- ]
830
- },
831
- {
832
- permission: "get_data",
833
- group: "data",
834
- layers: [
835
- "env",
836
- "space",
837
- "table"
838
- ]
839
- },
840
- {
841
- permission: "create_data",
842
- group: "data",
843
- layers: [
844
- "env",
845
- "space",
846
- "table"
847
- ]
848
- },
849
- {
850
- permission: "delete_data",
851
- group: "data",
852
- layers: [
853
- "env",
854
- "space",
855
- "table"
856
- ]
857
- },
858
- {
859
- permission: "update_data",
860
- group: "data",
861
- layers: [
862
- "env",
863
- "space",
864
- "table"
865
- ]
866
- },
867
- {
868
- permission: "get_relation_graph",
869
- group: "relationGraph",
870
- layers: ["env"]
871
- },
872
- {
873
- permission: "update_relation_graph",
874
- group: "relationGraph",
875
- layers: ["env"]
876
- },
877
- {
878
- permission: "list_change",
879
- group: "change",
880
- layers: ["env"]
881
- },
882
- {
883
- permission: "apply_change",
884
- group: "change",
885
- layers: ["env"]
886
- },
887
- {
888
- permission: "open_data_layer",
889
- group: "misc",
890
- layers: []
891
- }
892
- ];
893
- const resourcePermissionMetas = [
894
- {
895
- permission: "list_resource_space",
896
- group: "space",
897
- layers: []
898
- },
899
- {
900
- permission: "get_resource_space",
901
- group: "space",
902
- layers: ["space"]
903
- },
904
- {
905
- permission: "create_resource_space",
906
- group: "space",
907
- layers: []
908
- },
909
- {
910
- permission: "delete_resource_space",
911
- group: "space",
912
- layers: ["space"]
913
- },
914
- {
915
- permission: "update_resource_space",
916
- group: "space",
917
- layers: ["space"]
918
- },
919
- {
920
- permission: "arrange_resource_space",
921
- group: "space",
922
- layers: []
923
- },
924
- {
925
- permission: "list_dir",
926
- group: "dir",
927
- layers: ["space"]
928
- },
929
- {
930
- permission: "create_dir",
931
- group: "dir",
932
- layers: ["space"]
933
- },
934
- {
935
- permission: "delete_dir",
936
- group: "dir",
937
- layers: ["space"]
938
- },
939
- {
940
- permission: "update_dir",
941
- group: "dir",
942
- layers: ["space"]
943
- },
944
- {
945
- permission: "move_dir",
946
- group: "dir",
947
- layers: ["space"]
948
- },
949
- {
950
- permission: "list_resource",
951
- group: "resource",
952
- layers: ["space"]
953
- },
954
- {
955
- permission: "get_resource",
956
- group: "resource",
957
- layers: ["space"]
958
- },
959
- {
960
- permission: "create_resource",
961
- group: "resource",
962
- layers: ["space"]
963
- },
964
- {
965
- permission: "delete_resource",
966
- group: "resource",
967
- layers: ["space"]
968
- },
969
- {
970
- permission: "update_resource",
971
- group: "resource",
972
- layers: ["space"]
973
- },
974
- {
975
- permission: "move_resource",
976
- group: "resource",
977
- layers: ["space"]
978
- },
979
- {
980
- permission: "open_resource_layer",
981
- group: "misc",
982
- layers: []
983
- }
984
- ];
985
- const orgPermissionMetas = [
986
- {
987
- permission: "list_org_member",
988
- group: "member",
989
- layers: []
990
- },
991
- {
992
- permission: "add_org_member",
993
- group: "member",
994
- layers: []
995
- },
996
- {
997
- permission: "remove_org_member",
998
- group: "member",
999
- layers: []
1000
- },
1001
- {
1002
- permission: "update_org_member",
1003
- group: "member",
1004
- layers: []
1005
- },
1006
- {
1007
- permission: "create_org_role_group",
1008
- group: "role",
1009
- layers: []
1010
- },
1011
- {
1012
- permission: "delete_org_role_group",
1013
- group: "role",
1014
- layers: []
1015
- },
1016
- {
1017
- permission: "update_org_role_group",
1018
- group: "role",
1019
- layers: []
1020
- },
1021
- {
1022
- permission: "arrange_app_group",
1023
- group: "role",
1024
- layers: []
1025
- },
1026
- {
1027
- permission: "list_org_role_group",
1028
- group: "role",
1029
- layers: []
1030
- },
1031
- {
1032
- permission: "list_org_role",
1033
- group: "role",
1034
- layers: []
1035
- },
1036
- {
1037
- permission: "get_org_role",
1038
- group: "role",
1039
- layers: []
1040
- },
1041
- {
1042
- permission: "create_org_role",
1043
- group: "role",
1044
- layers: []
1045
- },
1046
- {
1047
- permission: "delete_org_role",
1048
- group: "role",
1049
- layers: []
1050
- },
1051
- {
1052
- permission: "update_org_role",
1053
- group: "role",
1054
- layers: []
1055
- },
1056
- {
1057
- permission: "get_org_structure",
1058
- group: "structure",
1059
- layers: []
1060
- },
1061
- {
1062
- permission: "update_org_structure",
1063
- group: "structure",
1064
- layers: []
1065
- }
1066
- ];
1067
- const filterPermissionMetas = [{
1068
- permission: "filter_table",
1069
- group: "table",
1070
- layers: []
1071
- }];
1072
- const allPermissionMetas = [
1073
- ...appPermissionMetas,
1074
- ...computePermissionMetas,
1075
- ...dataPermissionMetas,
1076
- ...resourcePermissionMetas,
1077
- ...orgPermissionMetas,
1078
- ...filterPermissionMetas
1079
- ];
1080
- function getCategoryPermissionMetas(category) {
1081
- switch (category) {
1082
- case "app": return appPermissionMetas;
1083
- case "compute": return computePermissionMetas;
1084
- case "data": return dataPermissionMetas;
1085
- case "resource": return resourcePermissionMetas;
1086
- case "org": return orgPermissionMetas;
1087
- case "filter": return filterPermissionMetas;
1088
- default: return [];
1089
- }
1090
- }
1091
- function getPermissionMeta(permission) {
1092
- return allPermissionMetas.find((entry) => entry.permission === permission);
1093
- }
1094
-
1095
- //#endregion
1096
- //#region src/api/appbase/instance.ts
1097
- const instance$4 = createAxios({
1098
- baseUrl: "http://localhost/appbase/",
1099
- onError: (error) => {
1100
- messageError(getErrorMessage(error));
1101
- }
1102
- });
1103
- if (window.API_URL) instance$4.defaults.baseURL = window.API_URL + "/appbase/";
1104
-
1105
- //#endregion
1106
- //#region src/api/appbase/index.ts
1107
- function GetAppList(request) {
1108
- return instance$4.post("getAppList", request);
1109
- }
1110
-
1111
- //#endregion
1112
- //#region src/api/computebase/instance.ts
1113
- const instance$3 = createAxios({
1114
- baseUrl: "http://localhost/computebase/",
1115
- onError: (error) => {
1116
- messageError(getErrorMessage(error));
1117
- }
1118
- });
1119
- if (window.API_URL) instance$3.defaults.baseURL = window.API_URL + "/computebase/";
1120
-
1121
- //#endregion
1122
- //#region src/api/computebase/index.ts
1123
- function GetComputeSpaceList(request) {
1124
- return instance$3.post("getSpaceList", request);
1125
- }
1126
- function GetFuncGroupList(request) {
1127
- return instance$3.post("getFuncGroupList", request);
1128
- }
1129
- function GetFuncList(request) {
1130
- return instance$3.post("getFuncList", request);
1131
- }
1132
- function GetFlowGroupList(request) {
1133
- return instance$3.post("getFlowGroupList", request);
1134
- }
1135
- function GetFlowList(request) {
1136
- return instance$3.post("getFlowList", request);
1137
- }
1138
-
1139
- //#endregion
1140
- //#region src/api/data/instance.ts
1141
- const instance$2 = createAxios({
1142
- baseUrl: "http://localhost/data/",
1143
- onError: (error) => {
1144
- messageError(getErrorMessage(error));
1145
- }
1146
- });
1147
- if (window.API_URL) instance$2.defaults.baseURL = window.API_URL + "/data/";
1148
-
1149
- //#endregion
1150
- //#region src/api/data/index.ts
1151
- function GetDataSpaceList(request) {
1152
- return instance$2.post("getSpaceList", request);
1153
- }
1154
- function GetTableGroupList(request) {
1155
- return instance$2.post("getTableGroupList", request);
1156
- }
1157
- function GetTableList(request) {
1158
- return instance$2.post("getTableList", request);
1159
- }
1160
-
1161
- //#endregion
1162
- //#region src/api/resource/instance.ts
1163
- const instance$1 = createAxios({
1164
- baseUrl: "http://localhost/resource/",
1165
- onError: (error) => {
1166
- messageError(getErrorMessage(error));
1167
- }
1168
- });
1169
- if (window.API_URL) instance$1.defaults.baseURL = window.API_URL + "/resource/";
1170
-
1171
- //#endregion
1172
- //#region src/api/resource/index.ts
1173
- function GetResourceSpaceList(request) {
1174
- return instance$1.post("getSpaceList", request);
1175
- }
1176
-
1177
- //#endregion
1178
- //#region src/utils/permission/object.ts
1179
- function initObjects() {
1180
- return {
1181
- app: { apps: [] },
1182
- compute: { spaces: [] },
1183
- data: {
1184
- devSpaces: [],
1185
- prodSpaces: []
1186
- },
1187
- resource: { spaces: [] }
1188
- };
1189
- }
1190
- async function fetchObjectNames(orgId) {
1191
- const objects = initObjects();
1192
- const names = {};
1193
- await fetchApp(orgId, objects, names);
1194
- await fetchCompute(orgId, objects, names);
1195
- await fetchData(orgId, objects, names);
1196
- await fetchResource(orgId, objects, names);
1197
- return {
1198
- objects,
1199
- names
1200
- };
1201
- }
1202
- async function fetchApp(orgId, objects, names) {
1203
- const { appInfos } = await GetAppList({
1204
- orgId,
1205
- ids: []
1206
- });
1207
- for (const { id, name } of appInfos) {
1208
- objects.app.apps.push(id);
1209
- names[id] = name;
1210
- }
1211
- }
1212
- async function fetchCompute(orgId, objects, names) {
1213
- const { spaceInfos } = await GetComputeSpaceList({ orgId });
1214
- spaceInfos.sort((a, b) => a.position - b.position);
1215
- for (const { id, name } of spaceInfos) {
1216
- const space = {
1217
- id,
1218
- funcGroups: [],
1219
- funcs: [],
1220
- flowGroups: [],
1221
- flows: []
1222
- };
1223
- objects.compute.spaces.push(space);
1224
- names[id] = name;
1225
- const { funcGroupInfos } = await GetFuncGroupList({
1226
- orgId,
1227
- spaceId: id
1228
- });
1229
- funcGroupInfos.sort((a, b) => a.position - b.position);
1230
- for (const { id } of funcGroupInfos) space.funcGroups.push(id);
1231
- const { funcInfos } = await GetFuncList({
1232
- orgId,
1233
- spaceId: id,
1234
- ids: []
1235
- });
1236
- funcInfos.sort((a, b) => {
1237
- const agp = getGroupPos(funcGroupInfos, a.groupId);
1238
- const bgp = getGroupPos(funcGroupInfos, b.groupId);
1239
- if (agp !== bgp) return agp - bgp;
1240
- return a.position - b.position;
1241
- });
1242
- for (const { id, name } of funcInfos) {
1243
- space.funcs.push(id);
1244
- names[id] = name;
1245
- }
1246
- const { flowGroupInfos } = await GetFlowGroupList({
1247
- orgId,
1248
- spaceId: id
1249
- });
1250
- flowGroupInfos.sort((a, b) => a.position - b.position);
1251
- for (const { id } of flowGroupInfos) space.flowGroups.push(id);
1252
- const { flowInfos } = await GetFlowList({
1253
- orgId,
1254
- spaceId: id,
1255
- ids: []
1256
- });
1257
- flowInfos.sort((a, b) => {
1258
- const agp = getGroupPos(funcGroupInfos, a.groupId);
1259
- const bgp = getGroupPos(funcGroupInfos, b.groupId);
1260
- if (agp !== bgp) return agp - bgp;
1261
- return a.position - b.position;
1262
- });
1263
- for (const { id, name } of flowInfos) {
1264
- space.flows.push(id);
1265
- names[id] = name;
1266
- }
1267
- }
1268
- }
1269
- async function fetchData(orgId, objects, names) {
1270
- const { spaceInfos: devSpaceInfos } = await GetDataSpaceList({
1271
- orgId,
1272
- env: "dev"
1273
- });
1274
- devSpaceInfos.sort((a, b) => a.position - b.position);
1275
- for (const { id, name } of devSpaceInfos) {
1276
- const space = {
1277
- id,
1278
- tableGroups: [],
1279
- tables: []
1280
- };
1281
- objects.data.devSpaces.push(space);
1282
- names[id + "dev"] = name;
1283
- const { tableGroupInfos } = await GetTableGroupList({
1284
- orgId,
1285
- env: "dev",
1286
- spaceId: id,
1287
- ids: []
1288
- });
1289
- tableGroupInfos.sort((a, b) => a.position - b.position);
1290
- for (const { id } of tableGroupInfos) space.tableGroups.push(id);
1291
- const { tableInfos } = await GetTableList({
1292
- orgId,
1293
- env: "dev",
1294
- spaceId: id
1295
- });
1296
- tableInfos.sort((a, b) => {
1297
- const agp = getGroupPos(tableGroupInfos, a.groupId);
1298
- const bgp = getGroupPos(tableGroupInfos, b.groupId);
1299
- if (agp !== bgp) return agp - bgp;
1300
- return a.position - b.position;
1301
- });
1302
- for (const { id, name } of tableInfos) {
1303
- space.tables.push(id);
1304
- names[id + "dev"] = name;
1305
- }
1306
- }
1307
- const { spaceInfos: prodSpaceInfos } = await GetDataSpaceList({
1308
- orgId,
1309
- env: "prod"
1310
- });
1311
- prodSpaceInfos.sort((a, b) => a.position - b.position);
1312
- for (const { id, name } of prodSpaceInfos) {
1313
- const space = {
1314
- id,
1315
- tableGroups: [],
1316
- tables: []
1317
- };
1318
- objects.data.prodSpaces.push(space);
1319
- names[id + "prod"] = name;
1320
- const { tableGroupInfos } = await GetTableGroupList({
1321
- orgId,
1322
- env: "prod",
1323
- spaceId: id,
1324
- ids: []
1325
- });
1326
- tableGroupInfos.sort((a, b) => a.position - b.position);
1327
- for (const { id } of tableGroupInfos) space.tableGroups.push(id);
1328
- const { tableInfos } = await GetTableList({
1329
- orgId,
1330
- env: "prod",
1331
- spaceId: id
1332
- });
1333
- tableInfos.sort((a, b) => {
1334
- const agp = getGroupPos(tableGroupInfos, a.groupId);
1335
- const bgp = getGroupPos(tableGroupInfos, b.groupId);
1336
- if (agp !== bgp) return agp - bgp;
1337
- return a.position - b.position;
1338
- });
1339
- for (const { id, name } of tableInfos) {
1340
- space.tables.push(id);
1341
- names[id + "prod"] = name;
1342
- }
1343
- }
1344
- }
1345
- async function fetchResource(orgId, objects, names) {
1346
- const { spaceInfos } = await GetResourceSpaceList({ orgId });
1347
- spaceInfos.sort((a, b) => a.position - b.position);
1348
- for (const { id, name } of spaceInfos) {
1349
- const space = { id };
1350
- objects.resource.spaces.push(space);
1351
- names[id] = name;
1352
- }
1353
- }
1354
- function getGroupPos(groups, id) {
1355
- return groups.find((group) => group.id === id)?.position ?? -1;
1356
- }
1357
- function getLayerObjects(objects, permission, category, layer, keys) {
1358
- const ids = [];
1359
- if (!getPermissionMeta(permission)) return ids;
1360
- if (layer === "env") return ["dev", "prod"];
1361
- if (category === "app") {
1362
- if (layer === "app") for (const id of objects.app.apps) ids.push(id);
1363
- } else if (category === "compute") {
1364
- if (layer === "space") for (const { id } of objects.compute.spaces) ids.push(id);
1365
- else if (layer === "flow") {
1366
- for (const { id, flows } of objects.compute.spaces) if (id === keys[1]) for (const id of flows) ids.push(id);
1367
- } else if (layer === "func") {
1368
- for (const { id, funcs } of objects.compute.spaces) if (id === keys[1]) for (const id of funcs) ids.push(id);
1369
- }
1370
- } else if (category === "data") {
1371
- if (layer === "space") {
1372
- if (keys[0] === "dev") for (const { id } of objects.data.devSpaces) ids.push(id);
1373
- else if (keys[0] === "prod") for (const { id } of objects.data.prodSpaces) ids.push(id);
1374
- } else if (layer === "table") {
1375
- if (keys[0] === "dev") {
1376
- for (const { id, tables } of objects.data.devSpaces) if (id === keys[1]) for (const id of tables) ids.push(id);
1377
- } else if (keys[0] === "prod") {
1378
- for (const { id, tables } of objects.data.prodSpaces) if (id === keys[1]) for (const id of tables) ids.push(id);
1379
- }
1380
- }
1381
- } else if (category === "org") console.assert(false);
1382
- else if (category === "resource") {
1383
- if (layer === "space") for (const { id } of objects.resource.spaces) ids.push(id);
1384
- else if (layer === "resource") console.assert(false);
1385
- } else if (category === "filter") console.assert(false);
1386
- else console.assert(false);
1387
- return ids;
1388
- }
1389
-
1390
- //#endregion
1391
- //#region src/utils/permission/permission.ts
1392
- function toPermissionObjects(permissions) {
1393
- const permissionObjects = {};
1394
- for (const key in permissions) {
1395
- if (key === "checksum") continue;
1396
- const value = permissions[key];
1397
- permissionObjects[key] = JSON.parse(value);
1398
- }
1399
- return permissionObjects;
1400
- }
1401
- function isExist(instanceTree, instance) {
1402
- if (!instanceTree) return false;
1403
- let curr = instanceTree;
1404
- if (Object.keys(curr).length <= 0) return true;
1405
- instance.split("/").forEach((part) => {
1406
- if (Object.keys(curr).length <= 0) return true;
1407
- if (curr[part]) curr = curr[part];
1408
- else return false;
1409
- });
1410
- if (Object.keys(curr).length <= 0) return true;
1411
- else return false;
1412
- }
1413
- function verifyPermission(permissionObjects, permission, instance) {
1414
- const permissionObject = permissionObjects[permission];
1415
- if (!permissionObject) return false;
1416
- if (!instance) return true;
1417
- if (!isExist(permissionObject.includes, instance)) return false;
1418
- if (isExist(permissionObject.excludes, instance)) return false;
1419
- return true;
1420
- }
1421
-
1422
- //#endregion
1423
- //#region src/utils/rules/index.ts
1424
- function i18n(key, obj) {
1425
- const { i18n } = globalObjects$1;
1426
- return i18n.global.t(`x-essential-lib.rule.${key}`, obj);
1427
- }
1428
- function required(value) {
1429
- const { success } = custom((v) => v === 0 || !!v).safeParse(value);
1430
- return success ? success : i18n("required");
1431
- }
1432
- function email(value) {
1433
- const { success } = email$1().safeParse(value);
1434
- return success ? success : i18n("email");
1435
- }
1436
- function minLength(length) {
1437
- return (value) => {
1438
- const { success } = string().min(length).safeParse(value);
1439
- return success ? success : i18n("minLength", { length });
1440
- };
1441
- }
1442
- function maxLength(length) {
1443
- return (value) => {
1444
- const { success } = string().max(length).safeParse(value);
1445
- return success ? success : i18n("maxLength", { length });
1446
- };
1447
- }
1448
- function length(length) {
1449
- return (value) => {
1450
- const { success } = string().length(length).safeParse(value);
1451
- return success ? success : i18n("length", { length });
1452
- };
1453
- }
1454
-
1455
- //#endregion
1456
- //#region src/utils/dialog.ts
1457
- let lastTime = Date.now();
1458
- function tryCooldown() {
1459
- const now = Date.now();
1460
- if (now - lastTime > 500) {
1461
- lastTime = now;
1462
- return true;
1463
- }
1464
- return false;
1465
- }
1466
- let sequence = 0;
1467
- function getSequence() {
1468
- return ++sequence;
1469
- }
1470
- async function openConfirmDlg(params) {
1471
- if (!tryCooldown()) return;
1472
- let resp = false;
1473
- let result;
1474
- const onResult = (res) => {
1475
- result = res;
1476
- resp = true;
1477
- };
1478
- const seq = getSequence();
1479
- eventBus.on("confirmDlgResult" + seq, onResult);
1480
- eventBus.emit("confirmDlg", {
1481
- ...params,
1482
- seq
1483
- });
1484
- await waitUtil(() => resp);
1485
- eventBus.off("confirmDlgResult" + seq, onResult);
1486
- return result;
1487
- }
1488
- async function openNumberDlg(params) {
1489
- if (!tryCooldown()) return;
1490
- let resp = false;
1491
- let result;
1492
- const onResult = (res) => {
1493
- result = res;
1494
- resp = true;
1495
- };
1496
- const seq = getSequence();
1497
- eventBus.on("numberDlgResult" + seq, onResult);
1498
- eventBus.emit("numberDlg", {
1499
- ...params,
1500
- seq
1501
- });
1502
- await waitUtil(() => resp);
1503
- eventBus.off("numberDlgResult" + seq, onResult);
1504
- return result;
1505
- }
1506
- async function openPromptDlg(params) {
1507
- if (!tryCooldown()) return;
1508
- let resp = false;
1509
- let result;
1510
- const onResult = (res) => {
1511
- result = res;
1512
- resp = true;
1513
- };
1514
- const seq = getSequence();
1515
- eventBus.on("promptDlgResult" + seq, onResult);
1516
- eventBus.emit("promptDlg", {
1517
- ...params,
1518
- seq
1519
- });
1520
- await waitUtil(() => resp);
1521
- eventBus.off("promptDlgResult" + seq, onResult);
1522
- return result;
171
+ function onReqRejected(error, onError) {
172
+ console.error(error);
173
+ onError("request timeout");
1523
174
  }
1524
- function openWaitDlg(text) {
1525
- eventBus.emit("waitDlg", { text });
175
+ function onRespFullfilled(resp) {
176
+ return resp.data;
1526
177
  }
1527
- function closeWaitDlg() {
1528
- eventBus.emit("closeWaitDlg");
178
+ function onRespRejected(error, onError) {
179
+ const resp = error.response;
180
+ if (!resp) return Promise.reject(error);
181
+ if (resp.status === 401) onUnauthorized();
182
+ const msg = resp.data?.message;
183
+ if (msg) {
184
+ onError(msg);
185
+ return Promise.reject(msg);
186
+ } else {
187
+ const obj = {
188
+ code: resp.status,
189
+ message: resp.statusText
190
+ };
191
+ onError(obj);
192
+ return Promise.reject(obj);
193
+ }
194
+ }
195
+ function onUnauthorized() {
196
+ const { router } = globalObjects;
197
+ api.remove("accessToken");
198
+ api.remove("refreshToken");
199
+ router.replace({ path: `/passport/login` });
1529
200
  }
1530
201
 
1531
202
  //#endregion
1532
- //#region src/utils/message.ts
1533
- function messageError(text, timeout) {
1534
- eventBus.emit("message", {
1535
- type: "error",
1536
- text,
1537
- timeout
1538
- });
1539
- }
1540
- function messageInfo(text, timeout) {
1541
- eventBus.emit("message", {
1542
- type: "info",
1543
- text,
1544
- timeout
1545
- });
203
+ //#region src/logic/permission/index.ts
204
+ function toPermissionObjects(permissions) {
205
+ const permissionObjects = {};
206
+ for (const key in permissions) {
207
+ if (key === "checksum") continue;
208
+ const value = permissions[key];
209
+ permissionObjects[key] = JSON.parse(value);
210
+ }
211
+ return permissionObjects;
1546
212
  }
1547
- function messageSuccess(text, timeout) {
1548
- eventBus.emit("message", {
1549
- type: "success",
1550
- text,
1551
- timeout
213
+ function isExist(instanceTree, instance) {
214
+ if (!instanceTree) return false;
215
+ let curr = instanceTree;
216
+ if (Object.keys(curr).length <= 0) return true;
217
+ instance.split("/").forEach((part) => {
218
+ if (Object.keys(curr).length <= 0) return true;
219
+ if (curr[part]) curr = curr[part];
220
+ else return false;
1552
221
  });
222
+ if (Object.keys(curr).length <= 0) return true;
223
+ else return false;
1553
224
  }
1554
- function messageWarning(text, timeout) {
1555
- eventBus.emit("message", {
1556
- type: "warning",
1557
- text,
1558
- timeout
1559
- });
225
+ function verifyPermission(permissionObjects, permission, instance) {
226
+ const permissionObject = permissionObjects[permission];
227
+ if (!permissionObject) return false;
228
+ if (!instance) return true;
229
+ if (!isExist(permissionObject.includes, instance)) return false;
230
+ if (isExist(permissionObject.excludes, instance)) return false;
231
+ return true;
1560
232
  }
1561
233
 
1562
234
  //#endregion
1563
- //#region src/utils/provideInject.ts
235
+ //#region src/logic/provideInject/index.ts
1564
236
  function provideDark(dark) {
1565
237
  provide("essentialDark", dark);
1566
238
  }
@@ -1587,7 +259,7 @@ function injectViews() {
1587
259
  }
1588
260
 
1589
261
  //#endregion
1590
- //#region src/utils/router.ts
262
+ //#region src/logic/router/index.ts
1591
263
  const routeMetas = [
1592
264
  {
1593
265
  app: "x-passport-mf",
@@ -1756,40 +428,160 @@ function onBeforeEnter(toPath, fromPath, lastAppPath) {
1756
428
  appAppear(toRouteMeta.app, diff);
1757
429
  }
1758
430
  }
431
+ function appAppear(name, diff) {
432
+ const appElement = document.getElementById("single-spa-application:" + name);
433
+ if (!appElement) return;
434
+ appElement.classList.remove("app-fade", "app-left", "app-right", "app-reset");
435
+ if (diff === 0) return;
436
+ if (diff > 0) appElement.classList.add("app-left");
437
+ else appElement.classList.add("app-right");
438
+ setTimeout(() => {
439
+ appElement.classList.add("app-reset");
440
+ }, 50);
441
+ }
1759
442
 
1760
443
  //#endregion
1761
- //#region src/utils/type.ts
1762
- const types = [
1763
- "string",
1764
- "number",
1765
- "boolean",
1766
- "array",
1767
- "object",
1768
- "any"
1769
- ];
1770
- function getTypeColor(type) {
1771
- switch (type) {
1772
- case "string": return "#5ba58c";
1773
- case "number": return "#5b67a5";
1774
- case "boolean": return "#5b80a5";
1775
- case "array": return "#745ba5";
1776
- case "object": return "#80a55b";
1777
- case "any": return "#9e9e9e";
1778
- }
444
+ //#region src/logic/rules/index.ts
445
+ function i18n(key, obj) {
446
+ const { i18n } = globalObjects$1;
447
+ return i18n.global.t(`x-essential-lib.rule.${key}`, obj);
1779
448
  }
1780
- function getTypeDefault(type) {
1781
- switch (type) {
1782
- case "string": return "";
1783
- case "number": return 0;
1784
- case "boolean": return false;
1785
- case "array": return [];
1786
- case "object": return {};
1787
- case "any": return null;
449
+ function required(value) {
450
+ const { success } = custom((v) => v === 0 || !!v).safeParse(value);
451
+ return success ? success : i18n("required");
452
+ }
453
+ function email(value) {
454
+ const { success } = email$1().safeParse(value);
455
+ return success ? success : i18n("email");
456
+ }
457
+ function minLength(length) {
458
+ return (value) => {
459
+ const { success } = string().min(length).safeParse(value);
460
+ return success ? success : i18n("minLength", { length });
461
+ };
462
+ }
463
+ function maxLength(length) {
464
+ return (value) => {
465
+ const { success } = string().max(length).safeParse(value);
466
+ return success ? success : i18n("maxLength", { length });
467
+ };
468
+ }
469
+ function length(length) {
470
+ return (value) => {
471
+ const { success } = string().length(length).safeParse(value);
472
+ return success ? success : i18n("length", { length });
473
+ };
474
+ }
475
+
476
+ //#endregion
477
+ //#region src/logic/view/dialog.ts
478
+ let lastTime = Date.now();
479
+ function tryCooldown() {
480
+ const now = Date.now();
481
+ if (now - lastTime > 500) {
482
+ lastTime = now;
483
+ return true;
1788
484
  }
485
+ return false;
486
+ }
487
+ let sequence = 0;
488
+ function getSequence() {
489
+ return ++sequence;
490
+ }
491
+ async function openConfirmDlg(params) {
492
+ if (!tryCooldown()) return;
493
+ let resp = false;
494
+ let result;
495
+ const onResult = (res) => {
496
+ result = res;
497
+ resp = true;
498
+ };
499
+ const seq = getSequence();
500
+ eventBus.on("confirmDlgResult" + seq, onResult);
501
+ eventBus.emit("confirmDlg", {
502
+ ...params,
503
+ seq
504
+ });
505
+ await waitUtil(() => resp);
506
+ eventBus.off("confirmDlgResult" + seq, onResult);
507
+ return result;
508
+ }
509
+ async function openNumberDlg(params) {
510
+ if (!tryCooldown()) return;
511
+ let resp = false;
512
+ let result;
513
+ const onResult = (res) => {
514
+ result = res;
515
+ resp = true;
516
+ };
517
+ const seq = getSequence();
518
+ eventBus.on("numberDlgResult" + seq, onResult);
519
+ eventBus.emit("numberDlg", {
520
+ ...params,
521
+ seq
522
+ });
523
+ await waitUtil(() => resp);
524
+ eventBus.off("numberDlgResult" + seq, onResult);
525
+ return result;
526
+ }
527
+ async function openPromptDlg(params) {
528
+ if (!tryCooldown()) return;
529
+ let resp = false;
530
+ let result;
531
+ const onResult = (res) => {
532
+ result = res;
533
+ resp = true;
534
+ };
535
+ const seq = getSequence();
536
+ eventBus.on("promptDlgResult" + seq, onResult);
537
+ eventBus.emit("promptDlg", {
538
+ ...params,
539
+ seq
540
+ });
541
+ await waitUtil(() => resp);
542
+ eventBus.off("promptDlgResult" + seq, onResult);
543
+ return result;
544
+ }
545
+ function openWaitDlg(text) {
546
+ eventBus.emit("waitDlg", { text });
547
+ }
548
+ function closeWaitDlg() {
549
+ eventBus.emit("closeWaitDlg");
550
+ }
551
+
552
+ //#endregion
553
+ //#region src/logic/view/message.ts
554
+ function messageError(text, timeout) {
555
+ eventBus.emit("message", {
556
+ type: "error",
557
+ text,
558
+ timeout
559
+ });
560
+ }
561
+ function messageInfo(text, timeout) {
562
+ eventBus.emit("message", {
563
+ type: "info",
564
+ text,
565
+ timeout
566
+ });
567
+ }
568
+ function messageSuccess(text, timeout) {
569
+ eventBus.emit("message", {
570
+ type: "success",
571
+ text,
572
+ timeout
573
+ });
574
+ }
575
+ function messageWarning(text, timeout) {
576
+ eventBus.emit("message", {
577
+ type: "warning",
578
+ text,
579
+ timeout
580
+ });
1789
581
  }
1790
582
 
1791
583
  //#endregion
1792
- //#region src/utils/viewMgr.ts
584
+ //#region src/logic/view/viewMgr.ts
1793
585
  function isEmpty(views) {
1794
586
  return views.value.length <= 0;
1795
587
  }
@@ -1817,6 +609,31 @@ function clearViews(views) {
1817
609
  views.value = [];
1818
610
  }
1819
611
 
612
+ //#endregion
613
+ //#region src/logic/vuetify/index.ts
614
+ function createVuetifyOptions(prod, localeAdapter) {
615
+ const dynamicOptions = {};
616
+ if (!prod) {
617
+ dynamicOptions["components"] = {
618
+ ...components,
619
+ ...labsComponents
620
+ };
621
+ dynamicOptions["directives"] = directives;
622
+ }
623
+ return {
624
+ ...dynamicOptions,
625
+ locale: { adapter: localeAdapter },
626
+ defaults: {
627
+ VDataTable: { hover: true },
628
+ VDataTableServer: { hover: true },
629
+ VDataTableVirtual: { hover: true },
630
+ VDialog: { captureFocus: false },
631
+ VNavigationDrawer: { disableRouteWatcher: true }
632
+ },
633
+ icons: { defaultSet: "mdi" }
634
+ };
635
+ }
636
+
1820
637
  //#endregion
1821
638
  //#region src/composables/globalStates.ts
1822
639
  function useGlobalStates(globalStates, base) {
@@ -2753,8 +1570,8 @@ const install = (app) => {
2753
1570
  //#endregion
2754
1571
  //#region src/i18n/index.ts
2755
1572
  async function loadLocaleMessageEssential(locale) {
2756
- if (locale === "en") return (await import("./i18n-en.mhphfhwb.js").then((n) => n.t)).default;
2757
- else if (locale === "zhHans") return (await import("./i18n-zhHans.i8y823t5.js").then((n) => n.t)).default;
1573
+ if (locale === "en") return (await import("./i18n-en.b05zxa4b.js").then((n) => n.t)).default;
1574
+ else if (locale === "zhHans") return (await import("./i18n-zhHans.bl5d1n9h.js").then((n) => n.t)).default;
2758
1575
  else throw new Error(`invalid locale=${locale}`);
2759
1576
  }
2760
1577
 
@@ -2763,4 +1580,4 @@ async function loadLocaleMessageEssential(locale) {
2763
1580
  var src_default = { install };
2764
1581
 
2765
1582
  //#endregion
2766
- export { Permission, addView, allPermissionMetas, appAppear, categories, clearViews, closeWaitDlg, createAxios, dataPlaneCategories, src_default as default, delView, email, eventBus, fetchObjectNames, funcPlaneCategories, getCategoryPermissionMetas, getCategoryPlane, getErrorMessage, getLayerObjects, getPermissionMeta, getTypeColor, getTypeDefault, globalObjects, groups, hasView, initObjects, injectDark, injectLocale, injectPermissionObjects, injectViews, isEmpty, isExist, lastView, layers, length, loadLocaleMessageEssential, matchRouteMeta, maxLength, messageError, messageInfo, messageSuccess, messageWarning, minLength, onBeforeEnter, openConfirmDlg, openNumberDlg, openPromptDlg, openWaitDlg, permissionCategories, planes, popView, provideDark, provideLocale, providePermissionObjects, provideViews, required, routeTransName, toPermissionObjects, types, useColor, useGlobalStates, useMicroApp, usePageRoute, usePermission, useSystem, useViewStack, verifyPermission, waitMs, waitUtil };
1583
+ export { addView, clearViews, closeWaitDlg, createAxios, createVuetifyOptions, src_default as default, delView, email, eventBus, getErrorMessage, getTypeColor, getTypeDefault, globalObjects, hasView, injectDark, injectLocale, injectPermissionObjects, injectViews, isEmpty, isExist, lastView, length, loadLocaleMessageEssential, matchRouteMeta, maxLength, messageError, messageInfo, messageSuccess, messageWarning, minLength, onBeforeEnter, openConfirmDlg, openNumberDlg, openPromptDlg, openWaitDlg, popView, provideDark, provideLocale, providePermissionObjects, provideViews, required, routeTransName, toPermissionObjects, types, useColor, useGlobalStates, useMicroApp, usePageRoute, usePermission, useSystem, useViewStack, verifyPermission, waitMs, waitUtil };