@ibiz-template/vue3-util 0.2.1 → 0.2.3
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.esm.js +82 -74
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/index.d.ts +6 -0
- package/out/index.d.ts.map +1 -1
- package/out/plugin/plugin-factory/plugin-factory.d.ts.map +1 -1
- package/out/plugin/plugin-factory/plugin-factory.js +11 -6
- package/package.json +4 -4
- package/src/index.ts +8 -0
- package/src/plugin/plugin-factory/plugin-factory.ts +14 -9
package/dist/index.esm.js
CHANGED
|
@@ -28,20 +28,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var require_path_browserify = __commonJS({
|
|
29
29
|
"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(exports, module) {
|
|
30
30
|
"use strict";
|
|
31
|
-
function assertPath(
|
|
32
|
-
if (typeof
|
|
33
|
-
throw new TypeError("Path must be a string. Received " + JSON.stringify(
|
|
31
|
+
function assertPath(path2) {
|
|
32
|
+
if (typeof path2 !== "string") {
|
|
33
|
+
throw new TypeError("Path must be a string. Received " + JSON.stringify(path2));
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
function normalizeStringPosix(
|
|
36
|
+
function normalizeStringPosix(path2, allowAboveRoot) {
|
|
37
37
|
var res = "";
|
|
38
38
|
var lastSegmentLength = 0;
|
|
39
39
|
var lastSlash = -1;
|
|
40
40
|
var dots = 0;
|
|
41
41
|
var code;
|
|
42
|
-
for (var i = 0; i <=
|
|
43
|
-
if (i <
|
|
44
|
-
code =
|
|
42
|
+
for (var i = 0; i <= path2.length; ++i) {
|
|
43
|
+
if (i < path2.length)
|
|
44
|
+
code = path2.charCodeAt(i);
|
|
45
45
|
else if (code === 47)
|
|
46
46
|
break;
|
|
47
47
|
else
|
|
@@ -81,9 +81,9 @@ var require_path_browserify = __commonJS({
|
|
|
81
81
|
}
|
|
82
82
|
} else {
|
|
83
83
|
if (res.length > 0)
|
|
84
|
-
res += "/" +
|
|
84
|
+
res += "/" + path2.slice(lastSlash + 1, i);
|
|
85
85
|
else
|
|
86
|
-
res =
|
|
86
|
+
res = path2.slice(lastSlash + 1, i);
|
|
87
87
|
lastSegmentLength = i - lastSlash - 1;
|
|
88
88
|
}
|
|
89
89
|
lastSlash = i;
|
|
@@ -114,20 +114,20 @@ var require_path_browserify = __commonJS({
|
|
|
114
114
|
var resolvedAbsolute = false;
|
|
115
115
|
var cwd;
|
|
116
116
|
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
117
|
-
var
|
|
117
|
+
var path2;
|
|
118
118
|
if (i >= 0)
|
|
119
|
-
|
|
119
|
+
path2 = arguments[i];
|
|
120
120
|
else {
|
|
121
121
|
if (cwd === void 0)
|
|
122
122
|
cwd = process.cwd();
|
|
123
|
-
|
|
123
|
+
path2 = cwd;
|
|
124
124
|
}
|
|
125
|
-
assertPath(
|
|
126
|
-
if (
|
|
125
|
+
assertPath(path2);
|
|
126
|
+
if (path2.length === 0) {
|
|
127
127
|
continue;
|
|
128
128
|
}
|
|
129
|
-
resolvedPath =
|
|
130
|
-
resolvedAbsolute =
|
|
129
|
+
resolvedPath = path2 + "/" + resolvedPath;
|
|
130
|
+
resolvedAbsolute = path2.charCodeAt(0) === 47;
|
|
131
131
|
}
|
|
132
132
|
resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
|
|
133
133
|
if (resolvedAbsolute) {
|
|
@@ -141,24 +141,24 @@ var require_path_browserify = __commonJS({
|
|
|
141
141
|
return ".";
|
|
142
142
|
}
|
|
143
143
|
},
|
|
144
|
-
normalize: function normalize(
|
|
145
|
-
assertPath(
|
|
146
|
-
if (
|
|
144
|
+
normalize: function normalize(path2) {
|
|
145
|
+
assertPath(path2);
|
|
146
|
+
if (path2.length === 0)
|
|
147
147
|
return ".";
|
|
148
|
-
var isAbsolute =
|
|
149
|
-
var trailingSeparator =
|
|
150
|
-
|
|
151
|
-
if (
|
|
152
|
-
|
|
153
|
-
if (
|
|
154
|
-
|
|
148
|
+
var isAbsolute = path2.charCodeAt(0) === 47;
|
|
149
|
+
var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;
|
|
150
|
+
path2 = normalizeStringPosix(path2, !isAbsolute);
|
|
151
|
+
if (path2.length === 0 && !isAbsolute)
|
|
152
|
+
path2 = ".";
|
|
153
|
+
if (path2.length > 0 && trailingSeparator)
|
|
154
|
+
path2 += "/";
|
|
155
155
|
if (isAbsolute)
|
|
156
|
-
return "/" +
|
|
157
|
-
return
|
|
156
|
+
return "/" + path2;
|
|
157
|
+
return path2;
|
|
158
158
|
},
|
|
159
|
-
isAbsolute: function isAbsolute(
|
|
160
|
-
assertPath(
|
|
161
|
-
return
|
|
159
|
+
isAbsolute: function isAbsolute(path2) {
|
|
160
|
+
assertPath(path2);
|
|
161
|
+
return path2.length > 0 && path2.charCodeAt(0) === 47;
|
|
162
162
|
},
|
|
163
163
|
join: function join2() {
|
|
164
164
|
if (arguments.length === 0)
|
|
@@ -246,19 +246,19 @@ var require_path_browserify = __commonJS({
|
|
|
246
246
|
return to.slice(toStart);
|
|
247
247
|
}
|
|
248
248
|
},
|
|
249
|
-
_makeLong: function _makeLong(
|
|
250
|
-
return
|
|
249
|
+
_makeLong: function _makeLong(path2) {
|
|
250
|
+
return path2;
|
|
251
251
|
},
|
|
252
|
-
dirname: function dirname(
|
|
253
|
-
assertPath(
|
|
254
|
-
if (
|
|
252
|
+
dirname: function dirname(path2) {
|
|
253
|
+
assertPath(path2);
|
|
254
|
+
if (path2.length === 0)
|
|
255
255
|
return ".";
|
|
256
|
-
var code =
|
|
256
|
+
var code = path2.charCodeAt(0);
|
|
257
257
|
var hasRoot = code === 47;
|
|
258
258
|
var end = -1;
|
|
259
259
|
var matchedSlash = true;
|
|
260
|
-
for (var i =
|
|
261
|
-
code =
|
|
260
|
+
for (var i = path2.length - 1; i >= 1; --i) {
|
|
261
|
+
code = path2.charCodeAt(i);
|
|
262
262
|
if (code === 47) {
|
|
263
263
|
if (!matchedSlash) {
|
|
264
264
|
end = i;
|
|
@@ -272,23 +272,23 @@ var require_path_browserify = __commonJS({
|
|
|
272
272
|
return hasRoot ? "/" : ".";
|
|
273
273
|
if (hasRoot && end === 1)
|
|
274
274
|
return "//";
|
|
275
|
-
return
|
|
275
|
+
return path2.slice(0, end);
|
|
276
276
|
},
|
|
277
|
-
basename: function basename(
|
|
277
|
+
basename: function basename(path2, ext) {
|
|
278
278
|
if (ext !== void 0 && typeof ext !== "string")
|
|
279
279
|
throw new TypeError('"ext" argument must be a string');
|
|
280
|
-
assertPath(
|
|
280
|
+
assertPath(path2);
|
|
281
281
|
var start = 0;
|
|
282
282
|
var end = -1;
|
|
283
283
|
var matchedSlash = true;
|
|
284
284
|
var i;
|
|
285
|
-
if (ext !== void 0 && ext.length > 0 && ext.length <=
|
|
286
|
-
if (ext.length ===
|
|
285
|
+
if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {
|
|
286
|
+
if (ext.length === path2.length && ext === path2)
|
|
287
287
|
return "";
|
|
288
288
|
var extIdx = ext.length - 1;
|
|
289
289
|
var firstNonSlashEnd = -1;
|
|
290
|
-
for (i =
|
|
291
|
-
var code =
|
|
290
|
+
for (i = path2.length - 1; i >= 0; --i) {
|
|
291
|
+
var code = path2.charCodeAt(i);
|
|
292
292
|
if (code === 47) {
|
|
293
293
|
if (!matchedSlash) {
|
|
294
294
|
start = i + 1;
|
|
@@ -314,11 +314,11 @@ var require_path_browserify = __commonJS({
|
|
|
314
314
|
if (start === end)
|
|
315
315
|
end = firstNonSlashEnd;
|
|
316
316
|
else if (end === -1)
|
|
317
|
-
end =
|
|
318
|
-
return
|
|
317
|
+
end = path2.length;
|
|
318
|
+
return path2.slice(start, end);
|
|
319
319
|
} else {
|
|
320
|
-
for (i =
|
|
321
|
-
if (
|
|
320
|
+
for (i = path2.length - 1; i >= 0; --i) {
|
|
321
|
+
if (path2.charCodeAt(i) === 47) {
|
|
322
322
|
if (!matchedSlash) {
|
|
323
323
|
start = i + 1;
|
|
324
324
|
break;
|
|
@@ -330,18 +330,18 @@ var require_path_browserify = __commonJS({
|
|
|
330
330
|
}
|
|
331
331
|
if (end === -1)
|
|
332
332
|
return "";
|
|
333
|
-
return
|
|
333
|
+
return path2.slice(start, end);
|
|
334
334
|
}
|
|
335
335
|
},
|
|
336
|
-
extname: function extname(
|
|
337
|
-
assertPath(
|
|
336
|
+
extname: function extname(path2) {
|
|
337
|
+
assertPath(path2);
|
|
338
338
|
var startDot = -1;
|
|
339
339
|
var startPart = 0;
|
|
340
340
|
var end = -1;
|
|
341
341
|
var matchedSlash = true;
|
|
342
342
|
var preDotState = 0;
|
|
343
|
-
for (var i =
|
|
344
|
-
var code =
|
|
343
|
+
for (var i = path2.length - 1; i >= 0; --i) {
|
|
344
|
+
var code = path2.charCodeAt(i);
|
|
345
345
|
if (code === 47) {
|
|
346
346
|
if (!matchedSlash) {
|
|
347
347
|
startPart = i + 1;
|
|
@@ -367,7 +367,7 @@ var require_path_browserify = __commonJS({
|
|
|
367
367
|
preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
|
|
368
368
|
return "";
|
|
369
369
|
}
|
|
370
|
-
return
|
|
370
|
+
return path2.slice(startDot, end);
|
|
371
371
|
},
|
|
372
372
|
format: function format(pathObject) {
|
|
373
373
|
if (pathObject === null || typeof pathObject !== "object") {
|
|
@@ -375,12 +375,12 @@ var require_path_browserify = __commonJS({
|
|
|
375
375
|
}
|
|
376
376
|
return _format("/", pathObject);
|
|
377
377
|
},
|
|
378
|
-
parse: function parse(
|
|
379
|
-
assertPath(
|
|
378
|
+
parse: function parse(path2) {
|
|
379
|
+
assertPath(path2);
|
|
380
380
|
var ret = { root: "", dir: "", base: "", ext: "", name: "" };
|
|
381
|
-
if (
|
|
381
|
+
if (path2.length === 0)
|
|
382
382
|
return ret;
|
|
383
|
-
var code =
|
|
383
|
+
var code = path2.charCodeAt(0);
|
|
384
384
|
var isAbsolute = code === 47;
|
|
385
385
|
var start;
|
|
386
386
|
if (isAbsolute) {
|
|
@@ -393,10 +393,10 @@ var require_path_browserify = __commonJS({
|
|
|
393
393
|
var startPart = 0;
|
|
394
394
|
var end = -1;
|
|
395
395
|
var matchedSlash = true;
|
|
396
|
-
var i =
|
|
396
|
+
var i = path2.length - 1;
|
|
397
397
|
var preDotState = 0;
|
|
398
398
|
for (; i >= start; --i) {
|
|
399
|
-
code =
|
|
399
|
+
code = path2.charCodeAt(i);
|
|
400
400
|
if (code === 47) {
|
|
401
401
|
if (!matchedSlash) {
|
|
402
402
|
startPart = i + 1;
|
|
@@ -422,22 +422,22 @@ var require_path_browserify = __commonJS({
|
|
|
422
422
|
preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
|
|
423
423
|
if (end !== -1) {
|
|
424
424
|
if (startPart === 0 && isAbsolute)
|
|
425
|
-
ret.base = ret.name =
|
|
425
|
+
ret.base = ret.name = path2.slice(1, end);
|
|
426
426
|
else
|
|
427
|
-
ret.base = ret.name =
|
|
427
|
+
ret.base = ret.name = path2.slice(startPart, end);
|
|
428
428
|
}
|
|
429
429
|
} else {
|
|
430
430
|
if (startPart === 0 && isAbsolute) {
|
|
431
|
-
ret.name =
|
|
432
|
-
ret.base =
|
|
431
|
+
ret.name = path2.slice(1, startDot);
|
|
432
|
+
ret.base = path2.slice(1, end);
|
|
433
433
|
} else {
|
|
434
|
-
ret.name =
|
|
435
|
-
ret.base =
|
|
434
|
+
ret.name = path2.slice(startPart, startDot);
|
|
435
|
+
ret.base = path2.slice(startPart, end);
|
|
436
436
|
}
|
|
437
|
-
ret.ext =
|
|
437
|
+
ret.ext = path2.slice(startDot, end);
|
|
438
438
|
}
|
|
439
439
|
if (startPart > 0)
|
|
440
|
-
ret.dir =
|
|
440
|
+
ret.dir = path2.slice(0, startPart - 1);
|
|
441
441
|
else if (isAbsolute)
|
|
442
442
|
ret.dir = "/";
|
|
443
443
|
return ret;
|
|
@@ -561,6 +561,9 @@ var PluginFactory = class {
|
|
|
561
561
|
*/
|
|
562
562
|
setPluginCode(code) {
|
|
563
563
|
this.pluginCodes.push(code);
|
|
564
|
+
window.vueInstances.forEach((inst) => {
|
|
565
|
+
inst.use(code);
|
|
566
|
+
});
|
|
564
567
|
}
|
|
565
568
|
/**
|
|
566
569
|
* 设置开发插件,用于本地调试
|
|
@@ -653,16 +656,14 @@ var PluginFactory = class {
|
|
|
653
656
|
*/
|
|
654
657
|
async loadScript(remotePlugin) {
|
|
655
658
|
const pluginPath = remotePlugin.repo;
|
|
656
|
-
const { name, version, system, module } = remotePlugin.config;
|
|
659
|
+
const { name, version, system, module, styles } = remotePlugin.config;
|
|
657
660
|
let scriptUrl = "";
|
|
658
661
|
if (this.devPackages.has(name)) {
|
|
659
662
|
scriptUrl = (0, import_path_browserify.join)("".concat(name, "@").concat(version), module);
|
|
660
663
|
} else if (ibiz.env.dev) {
|
|
661
664
|
scriptUrl = this.urlReg.test(pluginPath) ? "".concat(pluginPath, "/").concat((0, import_path_browserify.join)(module)) : "".concat(ibiz.env.pluginBaseUrl, "/").concat(pluginPath, "/").concat((0, import_path_browserify.join)(module));
|
|
662
665
|
} else {
|
|
663
|
-
scriptUrl =
|
|
664
|
-
system
|
|
665
|
-
));
|
|
666
|
+
scriptUrl = (0, import_path_browserify.join)(pluginPath, system);
|
|
666
667
|
}
|
|
667
668
|
if (scriptUrl) {
|
|
668
669
|
if (this.cache.has(scriptUrl)) {
|
|
@@ -670,6 +671,9 @@ var PluginFactory = class {
|
|
|
670
671
|
}
|
|
671
672
|
let data = null;
|
|
672
673
|
const url = this.parseUrl(scriptUrl);
|
|
674
|
+
const styleUrls = (typeof styles === "string" ? [styles] : styles).map(
|
|
675
|
+
(styleUrl) => this.parseUrl(import_path_browserify.default.join(pluginPath, styleUrl))
|
|
676
|
+
);
|
|
673
677
|
if (this.devPackages.has(name)) {
|
|
674
678
|
const fn = this.devPackages.get(name);
|
|
675
679
|
const pluginModule = await fn();
|
|
@@ -684,7 +688,11 @@ var PluginFactory = class {
|
|
|
684
688
|
System.addImportMap({
|
|
685
689
|
imports: {
|
|
686
690
|
[name]: url
|
|
691
|
+
},
|
|
692
|
+
styles: {
|
|
693
|
+
[name]: styleUrls
|
|
687
694
|
}
|
|
695
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
688
696
|
});
|
|
689
697
|
data = await System.import(name);
|
|
690
698
|
}
|
package/dist/index.system.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["@ibiz-template/core","@ibiz-template/runtime","ramda","vue","qx-util","vue-router","qs"],(function(e,t){"use strict";var r,n,o,i,a,s,c,u,l,p,d,f,h,g,m,v,b,P,y,w,C,x,N,E,A,R;return{setters:[function(e){r=e.RuntimeModelError,n=e.RuntimeError,o=e.onClickOutside,i=e.NOOP,a=e.listenJSEvent,s=e.Namespace},function(e){c=e.ViewType,u=e.RemotePluginItem,l=e.getMatchResPath,p=e.calcDeCodeNameById},function(e){d=e.isNil},function(e){f=e.createCommentVNode,h=e.watch,g=e.onBeforeUnmount,m=e.getCurrentInstance,v=e.isReactive,b=e.toRaw,P=e.inject,y=e.reactive,w=e.ref,C=e.provide},function(e){x=e.isFunc,N=e.notNilEmpty,E=e.clearAll},function(e){A=e.useRoute},function(e){R=e.default}],execute:function(){e({calcResRoutePath:X,generateRoutePath:async function(e,t,r,n){const o=J(t);let i=2;r.toRouteDepth?(i=r.toRouteDepth,delete r.toRouteDepth):ibiz.env.isMob&&(o.pathNodes[0]={viewName:"home"});if(o.pathNodes.splice(i-1,o.pathNodes.length-i+1),r.currentSrfNav){const e=o.pathNodes[o.pathNodes.length-1];e.params=e.params||{},e.srfnav=r.currentSrfNav,delete r.currentSrfNav}t.fullPath.startsWith("/appredirectview")&&((null==n?void 0:n.srfindexname)?(o.pathNodes[0].viewName=n.srfindexname,delete n.srfindexname):o.pathNodes[0].viewName="index");if(o.pathNodes.push({viewName:e.codeName.toLowerCase(),context:H(r),params:n}),2===i&&(await X(o,r,e.appDataEntityId),$.includes(e.viewType))){const t=p(e.appDataEntityId);delete o.pathNodes[0].context[t]}return{path:K(o)}},getArrayProps:Re,getAutoCompleteProps:xe,getCascaderProps:Se,getCheckboxListProps:ue,getCheckboxProps:le,getCodeProps:Ne,getColorPickerProps:ke,getDataPickerProps:pe,getDatePickerProps:de,getDateRangeProps:fe,getDropdownProps:ce,getEditorEmits:function(){return{change:(e,t)=>!0,blur:()=>!0,focus:()=>!0}},getEditorProps:re,getGridArrayProps:function(){return{...Re(),...ne()}},getGridAutoCompleteProps:function(){return{...xe(),...ne()}},getGridCascaderProps:function(){return{...Se(),...ne()}},getGridCheckboxListProps:function(){return{...ue(),...ne()}},getGridCheckboxProps:function(){return{...le(),...ne()}},getGridCodeProps:function(){return{...Ne(),...ne()}},getGridColorPickerProps:function(){return{...ke(),...ne()}},getGridDataPickerProps:function(){return{...pe(),...ne()}},getGridDatePickerProps:function(){return{...de(),...ne()}},getGridDateRangeProps:function(){return{...fe(),...ne()}},getGridDropdownProps:function(){return{...ce(),...ne()}},getGridEditorCommonProps:ne,getGridEditorEmits:function(){return{change:(e,t)=>!0,rowSave:()=>!0}},getGridHtmlProps:function(){return{...Ee(),...ne()}},getGridInputIpProps:function(){return{...ae(),...ne()}},getGridInputNumberProps:function(){return{...ie(),...ne()}},getGridInputProps:function(){return{...oe(),...ne()}},getGridListBoxProps:function(){return{...he(),...ne()}},getGridMarkDownProps:function(){return{...Ae(),...ne()}},getGridNumberRangeProps:function(){return{...ge(),...ne()}},getGridRadioProps:function(){return{...me(),...ne()}},getGridRateProps:function(){return{...ve(),...ne()}},getGridRawProps:function(){return{...be(),...ne()}},getGridSliderProps:function(){return{...Pe(),...ne()}},getGridSpanProps:function(){return{...se(),...ne()}},getGridStepperProps:function(){return{...ye(),...ne()}},getGridSwitchProps:function(){return{...we(),...ne()}},getGridUploadProps:function(){return{...Ce(),...ne()}},getHtmlProps:Ee,getInputIpProps:ae,getInputNumberProps:ie,getInputProps:oe,getListBoxProps:he,getMarkDownProps:Ae,getNestedRoutePath:Q,getNumberRangeProps:ge,getOrigin:W,getOwnRouteContext:H,getRadioProps:me,getRateProps:ve,getRawProps:be,getSliderProps:Pe,getSpanProps:se,getStepperProps:ye,getSwitchProps:we,getUploadProps:Ce,isEmptyVNode:function(e){if(!Array.isArray(e))return e===U;return 1===e.length&&e[0]===U},onRouteChange:function(e,t){const r=A();if(!r)throw new n("无法正确获取route,可能是依赖问题");h((()=>null==r?void 0:r.path),(()=>{const n=Q(r,t);e({currentKey:n,fullPath:r.fullPath})}),{immediate:!0})},parseRouteViewData:async function(e,t){var r;const o=J(e);let i=o.pathNodes[t-1].viewName;if(!i)throw new n("第".concat(t,"级路由不存在视图标识"));"index"===i&&(i=ibiz.hub.defaultAppIndexViewName);const a=await ibiz.hub.getAppView(i);if(!a)throw new n("找不到视图".concat(i));const s={};(null==(r=ibiz.appData)?void 0:r.context)&&Object.assign(s,ibiz.appData.context);o.appContext&&Object.assign(s,o.appContext);if(1!==t)for(let e=0;e<t;e++){const t=o.pathNodes[e];N(t.context)&&Object.assign(s,t.context)}const{params:c,srfnav:u}=o.pathNodes[t-1];return{viewModel:a,context:s,params:c,srfnav:u}},prepareControl:function(e){const t=q("control"),{controlType:r,sysCss:n,codeName:o}=e.model,i=r.toLowerCase(),a=null==n?void 0:n.cssName,s=q("control-".concat(i)),c=[t.b(),t.b(i),t.m(o)];a&&c.push(a);return{controlClass:c,ns:s}},renderString:function(e){if(d(e))return"";if("string"==typeof e)return e;try{return e.toString()}catch(t){ibiz.log.error(e,"转换成字符串失败",t)}return""},route2routePath:J,routePath2string:K,useClickOutside:B,useControlController:function(e){const t=M(),r=T();t.evt.emit("onForecast",r.modelData.name);const n=r.provider;let o;o=(null==n?void 0:n.createController)?n.createController(r.modelData,r.context,r.params,t):e(r.modelData,r.context,r.params,t);(function(e,t){const r=["context","params","modelData"];h((()=>{const t={};return Object.keys(e).forEach((n=>{r.includes(n)||(t[n]=e[n])})),t}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("部件 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{void 0!==n[e]&&(t.state[e]=n[e])}))}),{immediate:!0})})(r,o),o.state=y(o.state),o.force=L();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),i.$emit("controllerAppear",o),o.created(),g((()=>o.destroyed())),o},useController:function(e){e.force=L()},useCtx:M,useEventListener:F,useFocusAndBlur:function(e,t){const r=w(),n=w(!1);let o;const i=()=>{n.value||ibiz.log.debug("没有聚焦,不触发失焦"),t(),o.stop(),n.value=!1};return F(r,"click",(t=>{n.value||(o=B(r,(()=>{i()})),n.value=!0,e())}),{capture:!0}),{componentRef:r,isFocus:n,doBlur:i,pause:()=>{o&&o.pause()},stop:()=>{o&&o.stop()}}},useForce:L,useForceTogether:function(e,t){const r=t.force,n=L();t.force=e=>{r(e),n()}},useMobCtx:function(){return P("ctx")},useNamespace:q,useProps:T,usePropsWatch:function(e,t,r){const n=T();Object.prototype.hasOwnProperty.call(n,e)&&(h((()=>n[e]),((e,r)=>{t(W(e),W(r))}),r),t(W(n[e]),void 0))},useRouteKey:function(e,t,r){r||(r=w(""));r.value=e.value;const n=new Y(t);return h(e,((e,t)=>{e!==t&&n.nextChange((()=>{r.value=e}))})),r},useRouterQuery:function(){const e=A(),{query:t}=e;return t},useViewController:function(e){const t=T(),r=P("ctx",void 0);null==r||r.evt.emit("onForecast",t.modelData.name);const n=t.provider;let o;o=(null==n?void 0:n.createController)?n.createController(t.modelData,t.context,t.params,r):e(t.modelData,t.context,t.params,r);Z(t,o),ee(t,o),C("ctx",o.ctx),o.state=y(o.state),o.slotProps=y(o.slotProps),t.modal&&(o.modal=t.modal);o.force=L();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),o.created(),g((()=>o.destroyed())),o}});var S,k,D=Object.create,O=Object.defineProperty,j=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyNames,_=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty,G=(S={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(e,t){function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var r,n="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)r=e.charCodeAt(s);else{if(47===r)break;r=47}if(47===r){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",o=0):o=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),i=s,a=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=s,a=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===r&&-1!==a?++a:a=-1}return n}var o={resolve:function(){for(var e,t="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),r(a),0!==a.length&&(t=a+"/"+t,o=47===a.charCodeAt(0))}return t=n(t,!o),o?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(r(e),0===e.length)return".";var t=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!t)).length||t||(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return r(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=arguments[t];r(n),n.length>0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":o.normalize(e)},relative:function(e,t){if(r(e),r(t),e===t)return"";if((e=o.resolve(e))===(t=o.resolve(t)))return"";for(var n=1;n<e.length&&47===e.charCodeAt(n);++n);for(var i=e.length,a=i-n,s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var c=t.length-s,u=a<c?a:c,l=-1,p=0;p<=u;++p){if(p===u){if(c>u){if(47===t.charCodeAt(s+p))return t.slice(s+p+1);if(0===p)return t.slice(s+p)}else a>u&&(47===e.charCodeAt(n+p)?l=p:0===p&&(l=0));break}var d=e.charCodeAt(n+p);if(d!==t.charCodeAt(s+p))break;47===d&&(l=p)}var f="";for(p=n+l+1;p<=i;++p)p!==i&&47!==e.charCodeAt(p)||(0===f.length?f+="..":f+="/..");return f.length>0?f+t.slice(s+l):(s+=l,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(r(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?n?"/":".":n&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');r(e);var n,o=0,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,c=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!a){o=n+1;break}}else-1===c&&(a=!1,c=n+1),s>=0&&(u===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=c))}return o===i?i=c:-1===i&&(i=e.length),e.slice(o,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){o=n+1;break}}else-1===i&&(a=!1,i=n+1);return-1===i?"":e.slice(o,i)},extname:function(e){r(e);for(var t=-1,n=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(47!==c)-1===o&&(i=!1,o=s+1),46===c?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){n=s+1;break}}return-1===t||-1===o||0===a||1===a&&t===o-1&&t===n+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){r(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,o=e.charCodeAt(0),i=47===o;i?(t.root="/",n=1):n=0;for(var a=-1,s=0,c=-1,u=!0,l=e.length-1,p=0;l>=n;--l)if(47!==(o=e.charCodeAt(l)))-1===c&&(u=!1,c=l+1),46===o?-1===a?a=l:1!==p&&(p=1):-1!==a&&(p=-1);else if(!u){s=l+1;break}return-1===a||-1===c||0===p||1===p&&a===c-1&&a===s+1?-1!==c&&(t.base=t.name=0===s&&i?e.slice(1,c):e.slice(s,c)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,c)):(t.name=e.slice(s,a),t.base=e.slice(s,c)),t.ext=e.slice(a,c)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,t.exports=o}},function(){return k||(0,S[I(S)[0]])((k={exports:{}}).exports,k),k.exports}),V=((e,t,r)=>(r=null!=e?D(_(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of I(t))z.call(e,o)||o===r||O(e,o,{get:()=>t[o],enumerable:!(n=j(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:O(r,"default",{value:e,enumerable:!0}),e)))(G(),1);e("PluginFactory",class{constructor(){this.urlReg=/^http[s]?:\/\/[^\s]*/,this.cache=new Map,this.devPackages=new Map,this.pluginCache=new Map,this.pluginCodes=[],this.predefinedPlugins=new Map}registerPredefinedPlugin(e){this.predefinedPlugins.set(e.name,e)}register(e){this.pluginCodes.forEach((t=>{e.use(t)}))}async loadPredefinedPlugin(e){if(this.predefinedPlugins.has(e)){const t=this.predefinedPlugins.get(e);t&&await this.loadPluginRef(t.name,t.path)}}setPluginCode(e){this.pluginCodes.push(e)}setDevPlugin(e,t){this.devPackages.set(e,t)}async loadPlugin(e){if(!0===e.runtimeObject){const t=e;if(t)try{await this.loadPluginRef(t.rtobjectName,t.rtobjectRepo)}catch(e){throw new r(t,"配置加载失败")}}return!1}async loadPluginRef(e,t){if(this.pluginCache.has(e))return!0;let r=null;const n=this.devPackages.get(e);if(n)r=await n();else{const e=t,n=this.urlReg.test(e)?"".concat(e,"/package.json"):"".concat(ibiz.env.pluginBaseUrl,"/").concat((0,V.join)(e,"package.json")),o=await ibiz.net.axios({method:"get",headers:{"Access-Control-Allow-Origin":"*"},url:n});if(200!==o.status)throw new Error("配置加载失败");r=o.data}const o=new u(e,t,r);if(o)try{return await this.loadScript(o),this.pluginCache.set(e,o),!0}catch(e){ibiz.log.error(e)}return!1}async loadScript(e){const r=e.repo,{name:o,version:i,system:a,module:s}=e.config;let c="";if(c=this.devPackages.has(o)?(0,V.join)("".concat(o,"@").concat(i),s):ibiz.env.dev?this.urlReg.test(r)?"".concat(r,"/").concat((0,V.join)(s)):"".concat(ibiz.env.pluginBaseUrl,"/").concat(r,"/").concat((0,V.join)(s)):"".concat(r).concat(r.endsWith("/")?"":"/").concat((0,V.join)(a)),c){if(this.cache.has(c))return;let e=null;const r=this.parseUrl(c);if(this.devPackages.has(o)){const e=this.devPackages.get(o),t=await e();this.setPluginCode(t.default),this.cache.set(c,!0)}else ibiz.env.dev?e=await t.import(c):(System.addImportMap({imports:{[o]:r}}),e=await System.import(o));if(!e)throw new n("远程插件加载失败, 未找到文件或文件内容格式不正确");if(!e.default)throw new n("远程插件加载失败, 远程插件未找到[default]默认导出");this.setPluginCode(e.default),this.cache.set(c,!0)}}parseUrl(e){if(this.urlReg.test(e))return e;let t="";t=this.urlReg.test(ibiz.env.pluginBaseUrl)?e.startsWith("/")?ibiz.env.pluginBaseUrl+e:"".concat(ibiz.env.pluginBaseUrl,"/").concat(e):"".concat((0,V.join)(ibiz.env.pluginBaseUrl,e));const{origin:r,pathname:n}=window.location;return n.endsWith("/")&&t.startsWith("/")&&(t=t.substring(1)),t="".concat(r).concat(n).concat(t),t}});function B(e,t,r={}){let n=i,a=i,s=i;const c=()=>{n(),n=i,a=i,s=i};return h(e,((e,i)=>{if(e!==i)if(d(e))c();else{const i=o((null==e?void 0:e.$el)||e,t,r);n=i.stop,a=i.pause,s=i.proceed}}),{immediate:!0}),g((()=>{n!==i&&c()})),{stop:()=>n(),pause:()=>a(),proceed:()=>s()}}function T(){return m().proxy.$props}function W(e){return v(e)?b(e):e}function L(){const e=m().proxy;return t=>{e.$forceUpdate(),t&&x(t)&&e.$nextTick((()=>{t()}))}}var U=e("EmptyVNode",f("EmptyVNode"));function M(){return P("ctx")}function F(e,t,r,n={}){let o=i;return h(e,((e,s)=>{e!==s&&(d(e)?(o(),o=i):o=a((null==e?void 0:e.$el)||e,t,r,n))}),{immediate:!0}),g((()=>{o!==i&&o()})),()=>{o()}}function q(e){return new s(e,ibiz.env.namespace)}function H(e){const t=e.getOwnContext(),r=["srfsessionid","srfappid"];return Object.keys(t).forEach((e=>{r.includes(e)&&delete t[e]})),t}var $=e("excludeViewTypes",[c.DE_GRID_VIEW,c.DE_GRID_EXP_VIEW,c.DE_LIST_VIEW,c.DE_LIST_EXP_VIEW,c.DE_DATA_VIEW,c.DE_DATAVIEW_EXP_VIEW,c.DE_CALENDAR_VIEW,c.DE_CALENDAR_EXP_VIEW,c.DE_CHART_VIEW,c.DE_CHART_EXP_VIEW,c.DE_KANBAN_VIEW]);async function X(e,t,r){if(r){const n=await ibiz.hub.getAppDataEntity(r);let o=l(t,n);if(o||(o={path:"",keys:[n.codeName.toLowerCase()]}),o){const r=e.pathNodes[1].context,n={};o.keys.forEach((e=>{t&&Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e],r&&delete r[e])})),e.pathNodes[0].context=n}}else e.pathNodes[0].context=void 0}function J(e){const t=e.matched.length,r=[];for(let n=1;n<=t;n++){const t=e.path.split("/")[2*n],o=e.params["params".concat(n)];let i,a,s;i=o&&o!==ibiz.env.routePlaceholder?R.parse(o,{strictNullHandling:!0,delimiter:";"}):void 0,i&&(1===n?(a=i,i=void 0):(i.srfnavctx&&(a=JSON.parse(decodeURIComponent(i.srfnavctx)),delete i.srfnavctx),i.srfnav&&(s=i.srfnav,delete i.srfnav))),r.push({viewName:t,context:a,params:i,srfnav:s})}let n;return e.params.appContext&&e.params.appContext!==ibiz.env.routePlaceholder&&(n=R.parse(e.params.appContext,{strictNullHandling:!0,delimiter:";"})),{appContext:n,pathNodes:r}}function K(e){let t="";return e.appContext?t+="/".concat(R.stringify(e.appContext,{delimiter:";",strictNullHandling:!0})):t+="/".concat(ibiz.env.routePlaceholder),e.pathNodes.forEach(((e,r)=>{t+="/".concat(e.viewName,"/");let n={};if(0===r)N(e.context)&&(n=e.context);else{if(n=N(e.params)?e.params:{},N(e.context)){const t=JSON.stringify(e.context);"{}"!==t&&(n.srfnavctx=encodeURIComponent(t))}e.srfnav&&(n.srfnav=e.srfnav)}const o=R.stringify(n,{delimiter:";",strictNullHandling:!0,skipNulls:!0});N(o)?t+=o:t+=ibiz.env.routePlaceholder})),t}function Q(e,t,r=!0){if(e.matched.length<t)return"";if(e.name)return e.path;const n=J(e);return n.pathNodes.length<t?e.path:(n.pathNodes.length>t&&(n.pathNodes=n.pathNodes.slice(0,t)),r&&delete n.pathNodes[t-1].srfnav,K(n))}var Y=e("RouteListener",class{constructor(e,t){this.callbacks=[],this.timers=[],this.wait=500,t&&(this.wait=t),h((()=>e.path),((e,t)=>{if(e!==t){if(this.callbacks.length)for(let e=0;e<this.callbacks.length;e++){(0,this.callbacks[e])()}if(this.callbacks=[],this.timers.length)for(let e=0;e<this.timers.length;e++){const t=this.timers[e];clearTimeout(t)}this.timers=[]}}))}nextChange(e){e&&(this.timers.push(setTimeout((()=>{e();const t=this.callbacks.findIndex((t=>t===e));this.callbacks.splice(t,1)}),this.wait)),this.callbacks.push(e))}});e("withInstall",((e,t)=>(e.install=e=>{t(e)},e)));function Z(e,t){h((()=>({context:e.context,params:e.params})),(e=>{t.context.reset({},e.context),E(t.params),Object.assign(t.params,e.params),t.handleContextParams(),ibiz.log.debug("".concat(t.model.id,"的上下文或视图参数变更:"),e)}))}function ee(e,t){h((()=>e.state?{...e.state}:{}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("视图 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{t.state[e]=n[e]}))}),{immediate:!0})}var te=e("RequiredProp",class{constructor(e,t,r){this.required=!0,t&&(this.default=t),r&&(this.validator=r),this.type=e}});function re(){return{value:String,controller:new te(Object),data:new te(Object),disabled:{type:Boolean},readonly:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1}}}function ne(){return{hasError:{type:Boolean}}}function oe(){return{...re(),value:[String,Number]}}function ie(){return{...re(),value:Number}}function ae(){return{...re(),value:String}}function se(){return{...re(),value:[String,Number]}}function ce(){return{...re(),value:[String,Number]}}function ue(){return{...re(),value:[String,Number]}}function le(){return{...re(),value:[String,Number]}}function pe(){return{...re(),value:[String,Array,Object,Number]}}function de(){return{...re(),value:[String,Number]}}function fe(){return{...re(),value:[String,Number]}}function he(){return{...re(),value:[String,Number]}}function ge(){return{...re(),value:[String,Number]}}function me(){return{...re(),value:[String,Number]}}function ve(){return{...re(),value:[String,Number]}}function be(){return{...re(),value:[String,Number,Array]}}function Pe(){return{...re(),value:[String,Number]}}function ye(){return{...re(),value:[String,Number]}}function we(){return{...re(),value:[String,Number]}}function Ce(){return{...re(),value:String}}function xe(){return{...re(),value:[String,Number]}}function Ne(){return{...re(),value:String,language:{type:String},theme:{type:String}}}function Ee(){return{...re(),value:String}}function Ae(){return{...re(),data:{type:Object,required:!1},controller:{type:Object,required:!1},disabled:{type:Boolean,required:!1}}}function Re(){return{...re(),value:[Array,Array]}}function Se(){return{...re(),value:String}}function ke(){return{...re(),value:String}}}}}));
|
|
1
|
+
System.register(["@ibiz-template/core","@ibiz-template/runtime","ramda","vue","qx-util","vue-router","qs"],(function(e,t){"use strict";var r,n,o,i,a,s,c,u,l,p,d,f,h,g,m,v,b,P,y,w,C,x,N,E,A,R;return{setters:[function(e){r=e.RuntimeModelError,n=e.RuntimeError,o=e.onClickOutside,i=e.NOOP,a=e.listenJSEvent,s=e.Namespace},function(e){c=e.ViewType,u=e.RemotePluginItem,l=e.getMatchResPath,p=e.calcDeCodeNameById},function(e){d=e.isNil},function(e){f=e.createCommentVNode,h=e.watch,g=e.onBeforeUnmount,m=e.getCurrentInstance,v=e.isReactive,b=e.toRaw,P=e.inject,y=e.reactive,w=e.ref,C=e.provide},function(e){x=e.isFunc,N=e.notNilEmpty,E=e.clearAll},function(e){A=e.useRoute},function(e){R=e.default}],execute:function(){e({calcResRoutePath:X,generateRoutePath:async function(e,t,r,n){const o=J(t);let i=2;r.toRouteDepth?(i=r.toRouteDepth,delete r.toRouteDepth):ibiz.env.isMob&&(o.pathNodes[0]={viewName:"home"});if(o.pathNodes.splice(i-1,o.pathNodes.length-i+1),r.currentSrfNav){const e=o.pathNodes[o.pathNodes.length-1];e.params=e.params||{},e.srfnav=r.currentSrfNav,delete r.currentSrfNav}t.fullPath.startsWith("/appredirectview")&&((null==n?void 0:n.srfindexname)?(o.pathNodes[0].viewName=n.srfindexname,delete n.srfindexname):o.pathNodes[0].viewName="index");if(o.pathNodes.push({viewName:e.codeName.toLowerCase(),context:H(r),params:n}),2===i&&(await X(o,r,e.appDataEntityId),$.includes(e.viewType))){const t=p(e.appDataEntityId);delete o.pathNodes[0].context[t]}return{path:K(o)}},getArrayProps:Re,getAutoCompleteProps:xe,getCascaderProps:Se,getCheckboxListProps:ue,getCheckboxProps:le,getCodeProps:Ne,getColorPickerProps:ke,getDataPickerProps:pe,getDatePickerProps:de,getDateRangeProps:fe,getDropdownProps:ce,getEditorEmits:function(){return{change:(e,t)=>!0,blur:()=>!0,focus:()=>!0}},getEditorProps:re,getGridArrayProps:function(){return{...Re(),...ne()}},getGridAutoCompleteProps:function(){return{...xe(),...ne()}},getGridCascaderProps:function(){return{...Se(),...ne()}},getGridCheckboxListProps:function(){return{...ue(),...ne()}},getGridCheckboxProps:function(){return{...le(),...ne()}},getGridCodeProps:function(){return{...Ne(),...ne()}},getGridColorPickerProps:function(){return{...ke(),...ne()}},getGridDataPickerProps:function(){return{...pe(),...ne()}},getGridDatePickerProps:function(){return{...de(),...ne()}},getGridDateRangeProps:function(){return{...fe(),...ne()}},getGridDropdownProps:function(){return{...ce(),...ne()}},getGridEditorCommonProps:ne,getGridEditorEmits:function(){return{change:(e,t)=>!0,rowSave:()=>!0}},getGridHtmlProps:function(){return{...Ee(),...ne()}},getGridInputIpProps:function(){return{...ae(),...ne()}},getGridInputNumberProps:function(){return{...ie(),...ne()}},getGridInputProps:function(){return{...oe(),...ne()}},getGridListBoxProps:function(){return{...he(),...ne()}},getGridMarkDownProps:function(){return{...Ae(),...ne()}},getGridNumberRangeProps:function(){return{...ge(),...ne()}},getGridRadioProps:function(){return{...me(),...ne()}},getGridRateProps:function(){return{...ve(),...ne()}},getGridRawProps:function(){return{...be(),...ne()}},getGridSliderProps:function(){return{...Pe(),...ne()}},getGridSpanProps:function(){return{...se(),...ne()}},getGridStepperProps:function(){return{...ye(),...ne()}},getGridSwitchProps:function(){return{...we(),...ne()}},getGridUploadProps:function(){return{...Ce(),...ne()}},getHtmlProps:Ee,getInputIpProps:ae,getInputNumberProps:ie,getInputProps:oe,getListBoxProps:he,getMarkDownProps:Ae,getNestedRoutePath:Q,getNumberRangeProps:ge,getOrigin:W,getOwnRouteContext:H,getRadioProps:me,getRateProps:ve,getRawProps:be,getSliderProps:Pe,getSpanProps:se,getStepperProps:ye,getSwitchProps:we,getUploadProps:Ce,isEmptyVNode:function(e){if(!Array.isArray(e))return e===L;return 1===e.length&&e[0]===L},onRouteChange:function(e,t){const r=A();if(!r)throw new n("无法正确获取route,可能是依赖问题");h((()=>null==r?void 0:r.path),(()=>{const n=Q(r,t);e({currentKey:n,fullPath:r.fullPath})}),{immediate:!0})},parseRouteViewData:async function(e,t){var r;const o=J(e);let i=o.pathNodes[t-1].viewName;if(!i)throw new n("第".concat(t,"级路由不存在视图标识"));"index"===i&&(i=ibiz.hub.defaultAppIndexViewName);const a=await ibiz.hub.getAppView(i);if(!a)throw new n("找不到视图".concat(i));const s={};(null==(r=ibiz.appData)?void 0:r.context)&&Object.assign(s,ibiz.appData.context);o.appContext&&Object.assign(s,o.appContext);if(1!==t)for(let e=0;e<t;e++){const t=o.pathNodes[e];N(t.context)&&Object.assign(s,t.context)}const{params:c,srfnav:u}=o.pathNodes[t-1];return{viewModel:a,context:s,params:c,srfnav:u}},prepareControl:function(e){const t=q("control"),{controlType:r,sysCss:n,codeName:o}=e.model,i=r.toLowerCase(),a=null==n?void 0:n.cssName,s=q("control-".concat(i)),c=[t.b(),t.b(i),t.m(o)];a&&c.push(a);return{controlClass:c,ns:s}},renderString:function(e){if(d(e))return"";if("string"==typeof e)return e;try{return e.toString()}catch(t){ibiz.log.error(e,"转换成字符串失败",t)}return""},route2routePath:J,routePath2string:K,useClickOutside:B,useControlController:function(e){const t=M(),r=T();t.evt.emit("onForecast",r.modelData.name);const n=r.provider;let o;o=(null==n?void 0:n.createController)?n.createController(r.modelData,r.context,r.params,t):e(r.modelData,r.context,r.params,t);(function(e,t){const r=["context","params","modelData"];h((()=>{const t={};return Object.keys(e).forEach((n=>{r.includes(n)||(t[n]=e[n])})),t}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("部件 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{void 0!==n[e]&&(t.state[e]=n[e])}))}),{immediate:!0})})(r,o),o.state=y(o.state),o.force=U();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),i.$emit("controllerAppear",o),o.created(),g((()=>o.destroyed())),o},useController:function(e){e.force=U()},useCtx:M,useEventListener:F,useFocusAndBlur:function(e,t){const r=w(),n=w(!1);let o;const i=()=>{n.value||ibiz.log.debug("没有聚焦,不触发失焦"),t(),o.stop(),n.value=!1};return F(r,"click",(t=>{n.value||(o=B(r,(()=>{i()})),n.value=!0,e())}),{capture:!0}),{componentRef:r,isFocus:n,doBlur:i,pause:()=>{o&&o.pause()},stop:()=>{o&&o.stop()}}},useForce:U,useForceTogether:function(e,t){const r=t.force,n=U();t.force=e=>{r(e),n()}},useMobCtx:function(){return P("ctx")},useNamespace:q,useProps:T,usePropsWatch:function(e,t,r){const n=T();Object.prototype.hasOwnProperty.call(n,e)&&(h((()=>n[e]),((e,r)=>{t(W(e),W(r))}),r),t(W(n[e]),void 0))},useRouteKey:function(e,t,r){r||(r=w(""));r.value=e.value;const n=new Y(t);return h(e,((e,t)=>{e!==t&&n.nextChange((()=>{r.value=e}))})),r},useRouterQuery:function(){const e=A(),{query:t}=e;return t},useViewController:function(e){const t=T(),r=P("ctx",void 0);null==r||r.evt.emit("onForecast",t.modelData.name);const n=t.provider;let o;o=(null==n?void 0:n.createController)?n.createController(t.modelData,t.context,t.params,r):e(t.modelData,t.context,t.params,r);Z(t,o),ee(t,o),C("ctx",o.ctx),o.state=y(o.state),o.slotProps=y(o.slotProps),t.modal&&(o.modal=t.modal);o.force=U();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),o.created(),g((()=>o.destroyed())),o}});var S,k,D=Object.create,O=Object.defineProperty,j=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyNames,_=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty,G=(S={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(e,t){function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var r,n="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)r=e.charCodeAt(s);else{if(47===r)break;r=47}if(47===r){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",o=0):o=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),i=s,a=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=s,a=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===r&&-1!==a?++a:a=-1}return n}var o={resolve:function(){for(var e,t="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),r(a),0!==a.length&&(t=a+"/"+t,o=47===a.charCodeAt(0))}return t=n(t,!o),o?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(r(e),0===e.length)return".";var t=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!t)).length||t||(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return r(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=arguments[t];r(n),n.length>0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":o.normalize(e)},relative:function(e,t){if(r(e),r(t),e===t)return"";if((e=o.resolve(e))===(t=o.resolve(t)))return"";for(var n=1;n<e.length&&47===e.charCodeAt(n);++n);for(var i=e.length,a=i-n,s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var c=t.length-s,u=a<c?a:c,l=-1,p=0;p<=u;++p){if(p===u){if(c>u){if(47===t.charCodeAt(s+p))return t.slice(s+p+1);if(0===p)return t.slice(s+p)}else a>u&&(47===e.charCodeAt(n+p)?l=p:0===p&&(l=0));break}var d=e.charCodeAt(n+p);if(d!==t.charCodeAt(s+p))break;47===d&&(l=p)}var f="";for(p=n+l+1;p<=i;++p)p!==i&&47!==e.charCodeAt(p)||(0===f.length?f+="..":f+="/..");return f.length>0?f+t.slice(s+l):(s+=l,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(r(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?n?"/":".":n&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');r(e);var n,o=0,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,c=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!a){o=n+1;break}}else-1===c&&(a=!1,c=n+1),s>=0&&(u===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=c))}return o===i?i=c:-1===i&&(i=e.length),e.slice(o,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){o=n+1;break}}else-1===i&&(a=!1,i=n+1);return-1===i?"":e.slice(o,i)},extname:function(e){r(e);for(var t=-1,n=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(47!==c)-1===o&&(i=!1,o=s+1),46===c?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){n=s+1;break}}return-1===t||-1===o||0===a||1===a&&t===o-1&&t===n+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){r(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,o=e.charCodeAt(0),i=47===o;i?(t.root="/",n=1):n=0;for(var a=-1,s=0,c=-1,u=!0,l=e.length-1,p=0;l>=n;--l)if(47!==(o=e.charCodeAt(l)))-1===c&&(u=!1,c=l+1),46===o?-1===a?a=l:1!==p&&(p=1):-1!==a&&(p=-1);else if(!u){s=l+1;break}return-1===a||-1===c||0===p||1===p&&a===c-1&&a===s+1?-1!==c&&(t.base=t.name=0===s&&i?e.slice(1,c):e.slice(s,c)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,c)):(t.name=e.slice(s,a),t.base=e.slice(s,c)),t.ext=e.slice(a,c)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,t.exports=o}},function(){return k||(0,S[I(S)[0]])((k={exports:{}}).exports,k),k.exports}),V=((e,t,r)=>(r=null!=e?D(_(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of I(t))z.call(e,o)||o===r||O(e,o,{get:()=>t[o],enumerable:!(n=j(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:O(r,"default",{value:e,enumerable:!0}),e)))(G(),1);e("PluginFactory",class{constructor(){this.urlReg=/^http[s]?:\/\/[^\s]*/,this.cache=new Map,this.devPackages=new Map,this.pluginCache=new Map,this.pluginCodes=[],this.predefinedPlugins=new Map}registerPredefinedPlugin(e){this.predefinedPlugins.set(e.name,e)}register(e){this.pluginCodes.forEach((t=>{e.use(t)}))}async loadPredefinedPlugin(e){if(this.predefinedPlugins.has(e)){const t=this.predefinedPlugins.get(e);t&&await this.loadPluginRef(t.name,t.path)}}setPluginCode(e){this.pluginCodes.push(e),window.vueInstances.forEach((t=>{t.use(e)}))}setDevPlugin(e,t){this.devPackages.set(e,t)}async loadPlugin(e){if(!0===e.runtimeObject){const t=e;if(t)try{await this.loadPluginRef(t.rtobjectName,t.rtobjectRepo)}catch(e){throw new r(t,"配置加载失败")}}return!1}async loadPluginRef(e,t){if(this.pluginCache.has(e))return!0;let r=null;const n=this.devPackages.get(e);if(n)r=await n();else{const e=t,n=this.urlReg.test(e)?"".concat(e,"/package.json"):"".concat(ibiz.env.pluginBaseUrl,"/").concat((0,V.join)(e,"package.json")),o=await ibiz.net.axios({method:"get",headers:{"Access-Control-Allow-Origin":"*"},url:n});if(200!==o.status)throw new Error("配置加载失败");r=o.data}const o=new u(e,t,r);if(o)try{return await this.loadScript(o),this.pluginCache.set(e,o),!0}catch(e){ibiz.log.error(e)}return!1}async loadScript(e){const r=e.repo,{name:o,version:i,system:a,module:s,styles:c}=e.config;let u="";if(u=this.devPackages.has(o)?(0,V.join)("".concat(o,"@").concat(i),s):ibiz.env.dev?this.urlReg.test(r)?"".concat(r,"/").concat((0,V.join)(s)):"".concat(ibiz.env.pluginBaseUrl,"/").concat(r,"/").concat((0,V.join)(s)):(0,V.join)(r,a),u){if(this.cache.has(u))return;let e=null;const i=this.parseUrl(u),a=("string"==typeof c?[c]:c).map((e=>this.parseUrl(V.default.join(r,e))));if(this.devPackages.has(o)){const e=this.devPackages.get(o),t=await e();this.setPluginCode(t.default),this.cache.set(u,!0)}else ibiz.env.dev?e=await t.import(u):(System.addImportMap({imports:{[o]:i},styles:{[o]:a}}),e=await System.import(o));if(!e)throw new n("远程插件加载失败, 未找到文件或文件内容格式不正确");if(!e.default)throw new n("远程插件加载失败, 远程插件未找到[default]默认导出");this.setPluginCode(e.default),this.cache.set(u,!0)}}parseUrl(e){if(this.urlReg.test(e))return e;let t="";t=this.urlReg.test(ibiz.env.pluginBaseUrl)?e.startsWith("/")?ibiz.env.pluginBaseUrl+e:"".concat(ibiz.env.pluginBaseUrl,"/").concat(e):"".concat((0,V.join)(ibiz.env.pluginBaseUrl,e));const{origin:r,pathname:n}=window.location;return n.endsWith("/")&&t.startsWith("/")&&(t=t.substring(1)),t="".concat(r).concat(n).concat(t),t}});function B(e,t,r={}){let n=i,a=i,s=i;const c=()=>{n(),n=i,a=i,s=i};return h(e,((e,i)=>{if(e!==i)if(d(e))c();else{const i=o((null==e?void 0:e.$el)||e,t,r);n=i.stop,a=i.pause,s=i.proceed}}),{immediate:!0}),g((()=>{n!==i&&c()})),{stop:()=>n(),pause:()=>a(),proceed:()=>s()}}function T(){return m().proxy.$props}function W(e){return v(e)?b(e):e}function U(){const e=m().proxy;return t=>{e.$forceUpdate(),t&&x(t)&&e.$nextTick((()=>{t()}))}}var L=e("EmptyVNode",f("EmptyVNode"));function M(){return P("ctx")}function F(e,t,r,n={}){let o=i;return h(e,((e,s)=>{e!==s&&(d(e)?(o(),o=i):o=a((null==e?void 0:e.$el)||e,t,r,n))}),{immediate:!0}),g((()=>{o!==i&&o()})),()=>{o()}}function q(e){return new s(e,ibiz.env.namespace)}function H(e){const t=e.getOwnContext(),r=["srfsessionid","srfappid"];return Object.keys(t).forEach((e=>{r.includes(e)&&delete t[e]})),t}var $=e("excludeViewTypes",[c.DE_GRID_VIEW,c.DE_GRID_EXP_VIEW,c.DE_LIST_VIEW,c.DE_LIST_EXP_VIEW,c.DE_DATA_VIEW,c.DE_DATAVIEW_EXP_VIEW,c.DE_CALENDAR_VIEW,c.DE_CALENDAR_EXP_VIEW,c.DE_CHART_VIEW,c.DE_CHART_EXP_VIEW,c.DE_KANBAN_VIEW]);async function X(e,t,r){if(r){const n=await ibiz.hub.getAppDataEntity(r);let o=l(t,n);if(o||(o={path:"",keys:[n.codeName.toLowerCase()]}),o){const r=e.pathNodes[1].context,n={};o.keys.forEach((e=>{t&&Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e],r&&delete r[e])})),e.pathNodes[0].context=n}}else e.pathNodes[0].context=void 0}function J(e){const t=e.matched.length,r=[];for(let n=1;n<=t;n++){const t=e.path.split("/")[2*n],o=e.params["params".concat(n)];let i,a,s;i=o&&o!==ibiz.env.routePlaceholder?R.parse(o,{strictNullHandling:!0,delimiter:";"}):void 0,i&&(1===n?(a=i,i=void 0):(i.srfnavctx&&(a=JSON.parse(decodeURIComponent(i.srfnavctx)),delete i.srfnavctx),i.srfnav&&(s=i.srfnav,delete i.srfnav))),r.push({viewName:t,context:a,params:i,srfnav:s})}let n;return e.params.appContext&&e.params.appContext!==ibiz.env.routePlaceholder&&(n=R.parse(e.params.appContext,{strictNullHandling:!0,delimiter:";"})),{appContext:n,pathNodes:r}}function K(e){let t="";return e.appContext?t+="/".concat(R.stringify(e.appContext,{delimiter:";",strictNullHandling:!0})):t+="/".concat(ibiz.env.routePlaceholder),e.pathNodes.forEach(((e,r)=>{t+="/".concat(e.viewName,"/");let n={};if(0===r)N(e.context)&&(n=e.context);else{if(n=N(e.params)?e.params:{},N(e.context)){const t=JSON.stringify(e.context);"{}"!==t&&(n.srfnavctx=encodeURIComponent(t))}e.srfnav&&(n.srfnav=e.srfnav)}const o=R.stringify(n,{delimiter:";",strictNullHandling:!0,skipNulls:!0});N(o)?t+=o:t+=ibiz.env.routePlaceholder})),t}function Q(e,t,r=!0){if(e.matched.length<t)return"";if(e.name)return e.path;const n=J(e);return n.pathNodes.length<t?e.path:(n.pathNodes.length>t&&(n.pathNodes=n.pathNodes.slice(0,t)),r&&delete n.pathNodes[t-1].srfnav,K(n))}var Y=e("RouteListener",class{constructor(e,t){this.callbacks=[],this.timers=[],this.wait=500,t&&(this.wait=t),h((()=>e.path),((e,t)=>{if(e!==t){if(this.callbacks.length)for(let e=0;e<this.callbacks.length;e++){(0,this.callbacks[e])()}if(this.callbacks=[],this.timers.length)for(let e=0;e<this.timers.length;e++){const t=this.timers[e];clearTimeout(t)}this.timers=[]}}))}nextChange(e){e&&(this.timers.push(setTimeout((()=>{e();const t=this.callbacks.findIndex((t=>t===e));this.callbacks.splice(t,1)}),this.wait)),this.callbacks.push(e))}});e("withInstall",((e,t)=>(e.install=e=>{t(e)},e)));function Z(e,t){h((()=>({context:e.context,params:e.params})),(e=>{t.context.reset({},e.context),E(t.params),Object.assign(t.params,e.params),t.handleContextParams(),ibiz.log.debug("".concat(t.model.id,"的上下文或视图参数变更:"),e)}))}function ee(e,t){h((()=>e.state?{...e.state}:{}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("视图 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{t.state[e]=n[e]}))}),{immediate:!0})}var te=e("RequiredProp",class{constructor(e,t,r){this.required=!0,t&&(this.default=t),r&&(this.validator=r),this.type=e}});function re(){return{value:String,controller:new te(Object),data:new te(Object),disabled:{type:Boolean},readonly:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1}}}function ne(){return{hasError:{type:Boolean}}}function oe(){return{...re(),value:[String,Number]}}function ie(){return{...re(),value:Number}}function ae(){return{...re(),value:String}}function se(){return{...re(),value:[String,Number]}}function ce(){return{...re(),value:[String,Number]}}function ue(){return{...re(),value:[String,Number]}}function le(){return{...re(),value:[String,Number]}}function pe(){return{...re(),value:[String,Array,Object,Number]}}function de(){return{...re(),value:[String,Number]}}function fe(){return{...re(),value:[String,Number]}}function he(){return{...re(),value:[String,Number]}}function ge(){return{...re(),value:[String,Number]}}function me(){return{...re(),value:[String,Number]}}function ve(){return{...re(),value:[String,Number]}}function be(){return{...re(),value:[String,Number,Array]}}function Pe(){return{...re(),value:[String,Number]}}function ye(){return{...re(),value:[String,Number]}}function we(){return{...re(),value:[String,Number]}}function Ce(){return{...re(),value:String}}function xe(){return{...re(),value:[String,Number]}}function Ne(){return{...re(),value:String,language:{type:String},theme:{type:String}}}function Ee(){return{...re(),value:String}}function Ae(){return{...re(),data:{type:Object,required:!1},controller:{type:Object,required:!1},disabled:{type:Boolean,required:!1}}}function Re(){return{...re(),value:[Array,Array]}}function Se(){return{...re(),value:String}}function ke(){return{...re(),value:String}}}}}));
|
|
2
2
|
//# sourceMappingURL=index.system.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.system.min.js","sources":["index.esm.js"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\nvar require_path_browserify = __commonJS({\n \"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\"(exports, module) {\n \"use strict\";\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n }\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47)\n break;\n else\n code = 47;\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += \"/..\";\n else\n res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += \"/\" + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n }\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n }\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === void 0)\n cwd = process.cwd();\n path = cwd;\n }\n assertPath(path);\n if (path.length === 0) {\n continue;\n }\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return \"/\" + resolvedPath;\n else\n return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0)\n return \".\";\n var isAbsolute = path.charCodeAt(0) === 47;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47;\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute)\n path = \".\";\n if (path.length > 0 && trailingSeparator)\n path += \"/\";\n if (isAbsolute)\n return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47;\n },\n join: function join2() {\n if (arguments.length === 0)\n return \".\";\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === void 0)\n joined = arg;\n else\n joined += \"/\" + arg;\n }\n }\n if (joined === void 0)\n return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to)\n return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to)\n return \"\";\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47) {\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47) {\n lastCommonSep = i;\n } else if (i === 0) {\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47)\n lastCommonSep = i;\n }\n var out = \"\";\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47) {\n if (out.length === 0)\n out += \"..\";\n else\n out += \"/..\";\n }\n }\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47)\n ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0)\n return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1)\n return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1)\n return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== void 0 && typeof ext !== \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n if (ext !== void 0 && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path)\n return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n end = i;\n }\n } else {\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1)\n return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (path.length === 0)\n return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47;\n var start;\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n var preDotState = 0;\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute)\n ret.base = ret.name = path.slice(1, end);\n else\n ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n if (startPart > 0)\n ret.dir = path.slice(0, startPart - 1);\n else if (isAbsolute)\n ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n module.exports = posix;\n }\n});\n\n// src/plugin/plugin-factory/plugin-factory.ts\nvar import_path_browserify = __toESM(require_path_browserify(), 1);\nimport { RuntimeError, RuntimeModelError } from \"@ibiz-template/core\";\nimport {\n RemotePluginItem\n} from \"@ibiz-template/runtime\";\nvar PluginFactory = class {\n constructor() {\n /**\n * 是否为 http || https 开头\n *\n * @author chitanda\n * @date 2022-11-07 14:11:28\n * @protected\n */\n this.urlReg = /^http[s]?:\\/\\/[^\\s]*/;\n /**\n * 是否已经加载过文件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:17\n * @protected\n * @type {Map<string, boolean>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 本地开发测试包,只在本地开发生效\n *\n * @author chitanda\n * @date 2022-11-02 21:11:41\n * @protected\n */\n this.devPackages = /* @__PURE__ */ new Map();\n /**\n * 插件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:28\n * @protected\n * @type {Map<string, RemotePluginItem>}\n */\n this.pluginCache = /* @__PURE__ */ new Map();\n /**\n * 所有的插件\n *\n * @author chitanda\n * @date 2023-02-02 16:02:55\n * @protected\n * @type {Plugin[]}\n */\n this.pluginCodes = [];\n /**\n * 预定义插件集合\n *\n * @author chitanda\n * @date 2023-03-09 17:03:46\n * @protected\n * @type {Map<string, IPluginItem>}\n */\n this.predefinedPlugins = /* @__PURE__ */ new Map();\n }\n /**\n * 注册视图默认插件\n *\n * @author chitanda\n * @date 2023-02-06 21:02:10\n * @param {IPluginItem} plugin\n */\n registerPredefinedPlugin(plugin) {\n this.predefinedPlugins.set(plugin.name, plugin);\n }\n /**\n * 给入应用实例,将已经加载的过插件注入。主要用于多实例的情况\n *\n * @author chitanda\n * @date 2023-02-02 16:02:51\n * @param {App} app\n */\n register(app) {\n this.pluginCodes.forEach((plugin) => {\n app.use(plugin);\n });\n }\n /**\n * 加载预置插件\n *\n * @author chitanda\n * @date 2023-03-09 18:03:48\n * @param {string} name\n * @return {*} {Promise<void>}\n */\n async loadPredefinedPlugin(name) {\n if (this.predefinedPlugins.has(name)) {\n const plugin = this.predefinedPlugins.get(name);\n if (plugin) {\n await this.loadPluginRef(plugin.name, plugin.path);\n }\n }\n }\n /**\n * 插件刚加载完成回来,设置到目前所有的 vue 实例当中\n *\n * @author chitanda\n * @date 2023-02-02 17:02:38\n * @protected\n * @param {Plugin} code\n */\n setPluginCode(code) {\n this.pluginCodes.push(code);\n }\n /**\n * 设置开发插件,用于本地调试\n *\n * @author chitanda\n * @date 2022-11-02 21:11:56\n * @param {string} name\n * @param {() => Promise<unknown>} fn\n */\n setDevPlugin(name, fn) {\n this.devPackages.set(name, fn);\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-10-31 14:10:13\n * @param {ISysPFPlugin} plugin\n * @return {*} {Promise<boolean>}\n */\n async loadPlugin(plugin) {\n if (plugin.runtimeObject === true) {\n const pluginRef = plugin;\n if (pluginRef) {\n try {\n await this.loadPluginRef(\n pluginRef.rtobjectName,\n pluginRef.rtobjectRepo\n );\n } catch (error) {\n throw new RuntimeModelError(pluginRef, \"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n }\n }\n return false;\n }\n /**\n * 加载应用插件\n *\n * @author chitanda\n * @date 2022-10-31 16:10:57\n * @param {IPSAppPFPluginRef} pluginRef\n * @return {*} {Promise<boolean>}\n */\n async loadPluginRef(rtObjectName, rtObjectRepo) {\n if (this.pluginCache.has(rtObjectName)) {\n return true;\n }\n let configData = null;\n const fn = this.devPackages.get(rtObjectName);\n if (fn) {\n configData = await fn();\n } else {\n const pluginPath = rtObjectRepo;\n const configUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/package.json\") : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat((0, import_path_browserify.join)(pluginPath, \"package.json\"));\n const res = await ibiz.net.axios({\n method: \"get\",\n headers: { \"Access-Control-Allow-Origin\": \"*\" },\n url: configUrl\n });\n if (res.status !== 200) {\n throw new Error(\"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n configData = res.data;\n }\n const remotePlugin = new RemotePluginItem(\n rtObjectName,\n rtObjectRepo,\n configData\n );\n if (remotePlugin) {\n try {\n await this.loadScript(remotePlugin);\n this.pluginCache.set(rtObjectName, remotePlugin);\n return true;\n } catch (error) {\n ibiz.log.error(error);\n }\n }\n return false;\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-11-02 14:11:31\n * @protected\n * @param {RemotePluginItem} remotePlugin\n * @return {*} {Promise<void>}\n */\n async loadScript(remotePlugin) {\n const pluginPath = remotePlugin.repo;\n const { name, version, system, module } = remotePlugin.config;\n let scriptUrl = \"\";\n if (this.devPackages.has(name)) {\n scriptUrl = (0, import_path_browserify.join)(\"\".concat(name, \"@\").concat(version), module);\n } else if (ibiz.env.dev) {\n scriptUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module)) : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module));\n } else {\n scriptUrl = \"\".concat(pluginPath).concat(pluginPath.endsWith(\"/\") ? \"\" : \"/\").concat((0, import_path_browserify.join)(\n system\n ));\n }\n if (scriptUrl) {\n if (this.cache.has(scriptUrl)) {\n return;\n }\n let data = null;\n const url = this.parseUrl(scriptUrl);\n if (this.devPackages.has(name)) {\n const fn = this.devPackages.get(name);\n const pluginModule = await fn();\n this.setPluginCode(pluginModule.default);\n this.cache.set(scriptUrl, true);\n } else if (ibiz.env.dev) {\n data = await import(\n scriptUrl\n /* @vite-ignore */\n );\n } else {\n System.addImportMap({\n imports: {\n [name]: url\n }\n });\n data = await System.import(name);\n }\n if (data) {\n if (data.default) {\n this.setPluginCode(data.default);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u8FDC\\u7A0B\\u63D2\\u4EF6\\u672A\\u627E\\u5230[default]\\u9ED8\\u8BA4\\u5BFC\\u51FA\"\n );\n }\n this.cache.set(scriptUrl, true);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u672A\\u627E\\u5230\\u6587\\u4EF6\\u6216\\u6587\\u4EF6\\u5185\\u5BB9\\u683C\\u5F0F\\u4E0D\\u6B63\\u786E\"\n );\n }\n }\n }\n /**\n * 编译请求文件地址\n *\n * @author chitanda\n * @date 2022-10-31 14:10:19\n * @protected\n * @param {string} script\n * @return {*} {string}\n */\n parseUrl(script) {\n if (this.urlReg.test(script)) {\n return script;\n }\n let url = \"\";\n if (this.urlReg.test(ibiz.env.pluginBaseUrl)) {\n if (script.startsWith(\"/\")) {\n url = ibiz.env.pluginBaseUrl + script;\n } else {\n url = \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(script);\n }\n } else {\n url = \"\".concat((0, import_path_browserify.join)(ibiz.env.pluginBaseUrl, script));\n }\n const { origin, pathname } = window.location;\n if (pathname.endsWith(\"/\") && url.startsWith(\"/\")) {\n url = url.substring(1);\n }\n url = \"\".concat(origin).concat(pathname).concat(url);\n return url;\n }\n};\n\n// src/use/click-outside/click-outside.ts\nimport {\n NOOP,\n onClickOutside\n} from \"@ibiz-template/core\";\nimport { isNil } from \"ramda\";\nimport { onBeforeUnmount, watch } from \"vue\";\nfunction useClickOutside(elRef, handler, options = {}) {\n let stop = NOOP;\n let pause = NOOP;\n let proceed = NOOP;\n const destroy = () => {\n stop();\n stop = NOOP;\n pause = NOOP;\n proceed = NOOP;\n };\n watch(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil(newVal)) {\n destroy();\n } else {\n const result = onClickOutside(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n handler,\n options\n );\n stop = result.stop;\n pause = result.pause;\n proceed = result.proceed;\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount(() => {\n if (stop !== NOOP) {\n destroy();\n }\n });\n return {\n stop: () => stop(),\n pause: () => pause(),\n proceed: () => proceed()\n };\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nimport { getCurrentInstance as getCurrentInstance2, onBeforeUnmount as onBeforeUnmount2, reactive, watch as watch3 } from \"vue\";\n\n// src/use/vue/vue.ts\nimport { isFunc } from \"qx-util\";\nimport {\n createCommentVNode,\n getCurrentInstance,\n isReactive,\n toRaw,\n watch as watch2\n} from \"vue\";\nfunction useProps() {\n const vue = getCurrentInstance().proxy;\n return vue.$props;\n}\nfunction getOrigin(val) {\n return isReactive(val) ? toRaw(val) : val;\n}\nfunction usePropsWatch(key, callback, options) {\n const props = useProps();\n if (Object.prototype.hasOwnProperty.call(props, key)) {\n watch2(\n () => props[key],\n (newVal, oldVal) => {\n callback(getOrigin(newVal), getOrigin(oldVal));\n },\n options\n );\n callback(getOrigin(props[key]), void 0);\n }\n}\nfunction useForce() {\n const vue = getCurrentInstance().proxy;\n return (callback) => {\n vue.$forceUpdate();\n if (callback && isFunc(callback)) {\n vue.$nextTick(() => {\n callback();\n });\n }\n };\n}\nfunction useForceTogether(vue, controller) {\n const orignForce = controller.force;\n const selfForce = useForce();\n controller.force = (callback) => {\n orignForce(callback);\n selfForce();\n };\n}\nfunction useController(controller) {\n controller.force = useForce();\n}\nvar EmptyVNode = createCommentVNode(\"EmptyVNode\");\nfunction isEmptyVNode(nodes) {\n if (!Array.isArray(nodes)) {\n return nodes === EmptyVNode;\n }\n return nodes.length === 1 && nodes[0] === EmptyVNode;\n}\n\n// src/use/util/index.ts\nimport { inject } from \"vue\";\nfunction useCtx() {\n return inject(\"ctx\");\n}\nfunction useMobCtx() {\n return inject(\"ctx\");\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nfunction watchAndUpdateState(props, control) {\n const excludeKeys = [\"context\", \"params\", \"modelData\"];\n watch3(\n () => {\n const watchProps = {};\n Object.keys(props).forEach((key) => {\n if (!excludeKeys.includes(key)) {\n watchProps[key] = props[key];\n }\n });\n return watchProps;\n },\n (newVal, oldVal) => {\n const changeProps = {};\n Object.keys(newVal).forEach((key) => {\n if (newVal[key] !== (oldVal || {})[key]) {\n changeProps[key] = newVal[key];\n }\n });\n ibiz.log.debug(\"\\u90E8\\u4EF6 [\".concat(control.model.name, \"] state \\u53D8\\u66F4\"), changeProps);\n Object.keys(changeProps).forEach((key) => {\n if (changeProps[key] !== void 0) {\n control.state[key] = changeProps[key];\n }\n });\n },\n { immediate: true }\n );\n}\nfunction useControlController(fn) {\n const ctx = useCtx();\n const props = useProps();\n ctx.evt.emit(\"onForecast\", props.modelData.name);\n const provider = props.provider;\n let c;\n if (provider == null ? void 0 : provider.createController) {\n c = provider.createController(\n props.modelData,\n props.context,\n props.params,\n ctx\n );\n } else {\n c = fn(props.modelData, props.context, props.params, ctx);\n }\n watchAndUpdateState(props, c);\n c.state = reactive(c.state);\n c.force = useForce();\n const vue = getCurrentInstance2().proxy;\n c.evt.onAll((eventName, event) => {\n vue.$emit(eventName.slice(2), event);\n });\n vue.$emit(\"controllerAppear\", c);\n c.created();\n onBeforeUnmount2(() => c.destroyed());\n return c;\n}\n\n// src/use/event/event.ts\nimport { listenJSEvent, NOOP as NOOP2 } from \"@ibiz-template/core\";\nimport { isNil as isNil2 } from \"ramda\";\nimport { onBeforeUnmount as onBeforeUnmount3, watch as watch4 } from \"vue\";\nfunction useEventListener(elRef, eventName, listener, options = {}) {\n let cleanup = NOOP2;\n watch4(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil2(newVal)) {\n cleanup();\n cleanup = NOOP2;\n } else {\n cleanup = listenJSEvent(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n eventName,\n listener,\n options\n );\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount3(() => {\n if (cleanup !== NOOP2) {\n cleanup();\n }\n });\n return () => {\n cleanup();\n };\n}\n\n// src/use/focus-blur/focus-blur.ts\nimport { ref } from \"vue\";\nfunction useFocusAndBlur(focus, blur) {\n const componentRef = ref();\n const isFocus = ref(false);\n let outsideFuns;\n const doBlur = () => {\n if (!isFocus.value) {\n ibiz.log.debug(\"\\u6CA1\\u6709\\u805A\\u7126\\uFF0C\\u4E0D\\u89E6\\u53D1\\u5931\\u7126\");\n }\n blur();\n outsideFuns.stop();\n isFocus.value = false;\n };\n const pause = () => {\n if (outsideFuns) {\n outsideFuns.pause();\n }\n };\n const stop = () => {\n if (outsideFuns) {\n outsideFuns.stop();\n }\n };\n useEventListener(\n componentRef,\n \"click\",\n (_evt) => {\n if (!isFocus.value) {\n outsideFuns = useClickOutside(componentRef, () => {\n doBlur();\n });\n isFocus.value = true;\n focus();\n }\n },\n { capture: true }\n // 捕获防止内部ui拦截点击事件\n );\n return { componentRef, isFocus, doBlur, pause, stop };\n}\n\n// src/use/namespace/namespace.ts\nimport { Namespace } from \"@ibiz-template/core\";\nfunction useNamespace(block) {\n return new Namespace(block, ibiz.env.namespace);\n}\n\n// src/use/route/route.ts\nimport { useRoute as useRoute2 } from \"vue-router\";\nimport { ref as ref2, watch as watch7 } from \"vue\";\n\n// src/util/route/route.ts\nimport { notNilEmpty } from \"qx-util\";\nimport { RuntimeError as RuntimeError2 } from \"@ibiz-template/core\";\nimport qs from \"qs\";\nimport { useRoute } from \"vue-router\";\nimport { watch as watch5 } from \"vue\";\nimport {\n calcDeCodeNameById,\n getMatchResPath,\n ViewType\n} from \"@ibiz-template/runtime\";\nfunction getOwnRouteContext(context) {\n const ownContext = context.getOwnContext();\n const excludeKeys = [\"srfsessionid\", \"srfappid\"];\n Object.keys(ownContext).forEach((key) => {\n if (excludeKeys.includes(key)) {\n delete ownContext[key];\n }\n });\n return ownContext;\n}\nvar excludeViewTypes = [\n ViewType.DE_GRID_VIEW,\n ViewType.DE_GRID_EXP_VIEW,\n ViewType.DE_LIST_VIEW,\n ViewType.DE_LIST_EXP_VIEW,\n ViewType.DE_DATA_VIEW,\n ViewType.DE_DATAVIEW_EXP_VIEW,\n ViewType.DE_CALENDAR_VIEW,\n ViewType.DE_CALENDAR_EXP_VIEW,\n ViewType.DE_CHART_VIEW,\n ViewType.DE_CHART_EXP_VIEW,\n ViewType.DE_KANBAN_VIEW\n];\nasync function calcResRoutePath(routePath, context, appDataEntityId) {\n if (!appDataEntityId) {\n routePath.pathNodes[0].context = void 0;\n } else {\n const entity = await ibiz.hub.getAppDataEntity(appDataEntityId);\n let match = getMatchResPath(context, entity);\n if (!match) {\n match = { path: \"\", keys: [entity.codeName.toLowerCase()] };\n }\n if (match) {\n const currentContext = routePath.pathNodes[1].context;\n const resContext = {};\n match.keys.forEach((key) => {\n if (context && Object.prototype.hasOwnProperty.call(context, key)) {\n resContext[key] = context[key];\n if (currentContext) {\n delete currentContext[key];\n }\n }\n });\n routePath.pathNodes[0].context = resContext;\n }\n }\n}\nasync function generateRoutePath(appView, route, context, params) {\n const routePath = route2routePath(route);\n let depth = 2;\n if (context.toRouteDepth) {\n depth = context.toRouteDepth;\n delete context.toRouteDepth;\n } else if (ibiz.env.isMob) {\n routePath.pathNodes[0] = {\n viewName: \"home\"\n };\n }\n routePath.pathNodes.splice(depth - 1, routePath.pathNodes.length - depth + 1);\n if (context.currentSrfNav) {\n const currentNode = routePath.pathNodes[routePath.pathNodes.length - 1];\n currentNode.params = currentNode.params || {};\n currentNode.srfnav = context.currentSrfNav;\n delete context.currentSrfNav;\n }\n if (route.fullPath.startsWith(\"/appredirectview\")) {\n if (params == null ? void 0 : params.srfindexname) {\n routePath.pathNodes[0].viewName = params.srfindexname;\n delete params.srfindexname;\n } else {\n routePath.pathNodes[0].viewName = \"index\";\n }\n }\n routePath.pathNodes.push({\n viewName: appView.codeName.toLowerCase(),\n context: getOwnRouteContext(context),\n params\n });\n if (depth === 2) {\n await calcResRoutePath(routePath, context, appView.appDataEntityId);\n if (excludeViewTypes.includes(appView.viewType)) {\n const deName = calcDeCodeNameById(appView.appDataEntityId);\n delete routePath.pathNodes[0].context[deName];\n }\n }\n return { path: routePath2string(routePath) };\n}\nasync function parseRouteViewData(route, depth) {\n var _a;\n const routePath = route2routePath(route);\n let viewCodeName = routePath.pathNodes[depth - 1].viewName;\n if (!viewCodeName) {\n throw new RuntimeError2(\"\\u7B2C\".concat(depth, \"\\u7EA7\\u8DEF\\u7531\\u4E0D\\u5B58\\u5728\\u89C6\\u56FE\\u6807\\u8BC6\"));\n }\n if (viewCodeName === \"index\") {\n viewCodeName = ibiz.hub.defaultAppIndexViewName;\n }\n const viewModel = await ibiz.hub.getAppView(viewCodeName);\n if (!viewModel) {\n throw new RuntimeError2(\"\\u627E\\u4E0D\\u5230\\u89C6\\u56FE\".concat(viewCodeName));\n }\n const context = {};\n if ((_a = ibiz.appData) == null ? void 0 : _a.context) {\n Object.assign(context, ibiz.appData.context);\n }\n if (routePath.appContext) {\n Object.assign(context, routePath.appContext);\n }\n if (depth !== 1) {\n for (let index = 0; index < depth; index++) {\n const pathNode = routePath.pathNodes[index];\n if (notNilEmpty(pathNode.context)) {\n Object.assign(context, pathNode.context);\n }\n }\n }\n const { params, srfnav } = routePath.pathNodes[depth - 1];\n return {\n viewModel,\n context,\n params,\n srfnav\n };\n}\nfunction route2routePath(route) {\n const depth = route.matched.length;\n const pathNodes = [];\n for (let index = 1; index <= depth; index++) {\n const viewName = route.path.split(\"/\")[index * 2];\n const paramsStr = route.params[\"params\".concat(index)];\n let params;\n let context;\n let srfnav;\n if (!paramsStr || paramsStr === ibiz.env.routePlaceholder) {\n params = void 0;\n } else {\n params = qs.parse(paramsStr, {\n strictNullHandling: true,\n delimiter: \";\"\n });\n }\n if (params) {\n if (index === 1) {\n context = params;\n params = void 0;\n } else {\n if (params.srfnavctx) {\n context = JSON.parse(decodeURIComponent(params.srfnavctx));\n delete params.srfnavctx;\n }\n if (params.srfnav) {\n srfnav = params.srfnav;\n delete params.srfnav;\n }\n }\n }\n pathNodes.push({ viewName, context, params, srfnav });\n }\n let appContext;\n if (route.params.appContext && route.params.appContext !== ibiz.env.routePlaceholder) {\n appContext = qs.parse(route.params.appContext, {\n strictNullHandling: true,\n delimiter: \";\"\n });\n }\n return { appContext, pathNodes };\n}\nfunction routePath2string(routePath) {\n let pathStr = \"\";\n if (routePath.appContext) {\n pathStr += \"/\".concat(qs.stringify(routePath.appContext, {\n delimiter: \";\",\n strictNullHandling: true\n }));\n } else {\n pathStr += \"/\".concat(ibiz.env.routePlaceholder);\n }\n routePath.pathNodes.forEach((pathNode, index) => {\n pathStr += \"/\".concat(pathNode.viewName, \"/\");\n let routeParams = {};\n if (index === 0) {\n if (notNilEmpty(pathNode.context)) {\n routeParams = pathNode.context;\n }\n } else {\n routeParams = notNilEmpty(pathNode.params) ? pathNode.params : {};\n if (notNilEmpty(pathNode.context)) {\n const objStr = JSON.stringify(pathNode.context);\n if (objStr !== \"{}\") {\n routeParams.srfnavctx = encodeURIComponent(objStr);\n }\n }\n if (pathNode.srfnav) {\n routeParams.srfnav = pathNode.srfnav;\n }\n }\n const paramsStr = qs.stringify(routeParams, {\n delimiter: \";\",\n strictNullHandling: true,\n skipNulls: true\n });\n if (notNilEmpty(paramsStr)) {\n pathStr += paramsStr;\n } else {\n pathStr += ibiz.env.routePlaceholder;\n }\n });\n return pathStr;\n}\nfunction getNestedRoutePath(route, depth, noSrfNav = true) {\n if (route.matched.length < depth) {\n return \"\";\n }\n if (route.name) {\n return route.path;\n }\n const routePath = route2routePath(route);\n if (routePath.pathNodes.length < depth) {\n return route.path;\n }\n if (routePath.pathNodes.length > depth) {\n routePath.pathNodes = routePath.pathNodes.slice(0, depth);\n }\n if (noSrfNav) {\n delete routePath.pathNodes[depth - 1].srfnav;\n }\n return routePath2string(routePath);\n}\nfunction onRouteChange(callback, depth) {\n const route = useRoute();\n if (!route) {\n throw new RuntimeError2(\"\\u65E0\\u6CD5\\u6B63\\u786E\\u83B7\\u53D6route,\\u53EF\\u80FD\\u662F\\u4F9D\\u8D56\\u95EE\\u9898\");\n }\n watch5(\n () => route == null ? void 0 : route.path,\n () => {\n const currentKey = getNestedRoutePath(route, depth);\n callback({ currentKey, fullPath: route.fullPath });\n },\n { immediate: true }\n );\n}\n\n// src/util/route/route-listener.ts\nimport { watch as watch6 } from \"vue\";\nvar RouteListener = class {\n constructor(route, wait) {\n /**\n * 回调集合\n *\n * @memberof RouteListener\n */\n this.callbacks = [];\n /**\n * 计时器集合\n *\n * @private\n * @type {any[]}\n * @memberof RouteListener\n */\n this.timers = [];\n /**\n * 等待路由响应时间\n *\n * @private\n * @type {number}\n * @memberof RouteListener\n */\n this.wait = 500;\n if (wait) {\n this.wait = wait;\n }\n watch6(\n () => route.path,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (this.callbacks.length) {\n for (let index = 0; index < this.callbacks.length; index++) {\n const fn = this.callbacks[index];\n fn();\n }\n }\n this.callbacks = [];\n if (this.timers.length) {\n for (let index = 0; index < this.timers.length; index++) {\n const timer = this.timers[index];\n clearTimeout(timer);\n }\n }\n this.timers = [];\n }\n }\n );\n }\n /**\n * 下一次路由变更后执行回调,只执行一次\n *\n * @param {ChangeCallback} callback\n * @memberof RouteListener\n */\n nextChange(callback) {\n if (callback) {\n this.timers.push(\n setTimeout(() => {\n callback();\n const index = this.callbacks.findIndex((item) => item === callback);\n this.callbacks.splice(index, 1);\n }, this.wait)\n );\n this.callbacks.push(callback);\n }\n }\n};\n\n// src/util/install.ts\nvar withInstall = (main, install) => {\n main.install = (app) => {\n install(app);\n };\n return main;\n};\n\n// src/util/control/prepare-control.ts\nfunction prepareControl(c) {\n const commonNs = useNamespace(\"control\");\n const { controlType, sysCss, codeName } = c.model;\n const typeClass = controlType.toLowerCase();\n const sysCssName = sysCss == null ? void 0 : sysCss.cssName;\n const ns = useNamespace(\"control-\".concat(typeClass));\n const controlClass = [\n commonNs.b(),\n commonNs.b(typeClass),\n commonNs.m(codeName)\n ];\n if (sysCssName) {\n controlClass.push(sysCssName);\n }\n return { controlClass, ns };\n}\n\n// src/util/render/render.ts\nimport { isNil as isNil3 } from \"ramda\";\nfunction renderString(value) {\n if (isNil3(value)) {\n return \"\";\n }\n if (typeof value === \"string\") {\n return value;\n }\n try {\n const str = value.toString();\n return str;\n } catch (error) {\n ibiz.log.error(value, \"\\u8F6C\\u6362\\u6210\\u5B57\\u7B26\\u4E32\\u5931\\u8D25\", error);\n }\n return \"\";\n}\n\n// src/use/route/route.ts\nfunction useRouterQuery() {\n const route = useRoute2();\n const { query } = route;\n return query;\n}\nfunction useRouteKey(originKey, route, routeKey) {\n if (!routeKey) {\n routeKey = ref2(\"\");\n }\n routeKey.value = originKey.value;\n const routeListener = new RouteListener(route);\n watch7(originKey, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n routeListener.nextChange(() => {\n routeKey.value = newVal;\n });\n }\n });\n return routeKey;\n}\n\n// src/use/view/use-view-controller/use-view-controller.ts\nimport { clearAll } from \"qx-util\";\nimport {\n getCurrentInstance as getCurrentInstance3,\n inject as inject2,\n onBeforeUnmount as onBeforeUnmount4,\n provide,\n reactive as reactive2,\n watch as watch8\n} from \"vue\";\nfunction watchAndUpdateContextParams(props, view) {\n watch8(\n () => ({ context: props.context, params: props.params }),\n (newVal) => {\n view.context.reset({}, newVal.context);\n clearAll(view.params);\n Object.assign(view.params, newVal.params);\n view.handleContextParams();\n ibiz.log.debug(\"\".concat(view.model.id, \"\\u7684\\u4E0A\\u4E0B\\u6587\\u6216\\u89C6\\u56FE\\u53C2\\u6570\\u53D8\\u66F4\\uFF1A\"), newVal);\n }\n );\n}\nfunction watchAndUpdateState2(props, view) {\n watch8(\n () => {\n return props.state ? { ...props.state } : {};\n },\n (newVal, oldVal) => {\n const changeProps = {};\n Object.keys(newVal).forEach((key) => {\n if (newVal[key] !== (oldVal || {})[key]) {\n changeProps[key] = newVal[key];\n }\n });\n ibiz.log.debug(\"\\u89C6\\u56FE [\".concat(view.model.name, \"] state \\u53D8\\u66F4\"), changeProps);\n Object.keys(changeProps).forEach((key) => {\n view.state[key] = changeProps[key];\n });\n },\n { immediate: true }\n );\n}\nfunction useViewController(fn) {\n const props = useProps();\n const ctx = inject2(\"ctx\", void 0);\n ctx == null ? void 0 : ctx.evt.emit(\"onForecast\", props.modelData.name);\n const provider = props.provider;\n let c;\n if (provider == null ? void 0 : provider.createController) {\n c = provider.createController(\n props.modelData,\n props.context,\n props.params,\n ctx\n );\n } else {\n c = fn(props.modelData, props.context, props.params, ctx);\n }\n watchAndUpdateContextParams(props, c);\n watchAndUpdateState2(props, c);\n provide(\"ctx\", c.ctx);\n c.state = reactive2(c.state);\n c.slotProps = reactive2(c.slotProps);\n if (props.modal) {\n c.modal = props.modal;\n }\n c.force = useForce();\n const vue = getCurrentInstance3().proxy;\n c.evt.onAll((eventName, event) => {\n vue.$emit(eventName.slice(2), event);\n });\n c.created();\n onBeforeUnmount4(() => c.destroyed());\n return c;\n}\n\n// src/props/common.ts\nvar RequiredProp = class {\n constructor(type, _default, validator) {\n this.required = true;\n if (_default) {\n this.default = _default;\n }\n if (validator) {\n this.validator = validator;\n }\n this.type = type;\n }\n};\n\n// src/props/editor/common.ts\nfunction getEditorProps() {\n return {\n value: String,\n controller: new RequiredProp(Object),\n data: new RequiredProp(Object),\n disabled: {\n type: Boolean\n },\n readonly: {\n type: Boolean,\n default: false\n },\n autoFocus: {\n type: Boolean,\n default: false\n }\n };\n}\nfunction getEditorEmits() {\n return {\n /** 值变更事件 */\n change: (_value, _name) => true,\n /** 失焦事件 */\n blur: () => true,\n /** 聚焦事件 */\n focus: () => true\n };\n}\nfunction getGridEditorEmits() {\n return {\n /** 值变更事件 */\n change: (_value, _name) => true,\n /** 是否正在操作事件 */\n rowSave: () => true\n };\n}\nfunction getGridEditorCommonProps() {\n return {\n hasError: {\n type: Boolean\n }\n };\n}\n\n// src/props/editor/text-box.ts\nfunction getInputProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridInputProps() {\n return { ...getInputProps(), ...getGridEditorCommonProps() };\n}\nfunction getInputNumberProps() {\n return { ...getEditorProps(), value: Number };\n}\nfunction getGridInputNumberProps() {\n return { ...getInputNumberProps(), ...getGridEditorCommonProps() };\n}\nfunction getInputIpProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridInputIpProps() {\n return { ...getInputIpProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/span.ts\nfunction getSpanProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSpanProps() {\n return { ...getSpanProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/dropdown-list.ts\nfunction getDropdownProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDropdownProps() {\n return { ...getDropdownProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/check-box-list.ts\nfunction getCheckboxListProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridCheckboxListProps() {\n return { ...getCheckboxListProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/check-box.ts\nfunction getCheckboxProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridCheckboxProps() {\n return { ...getCheckboxProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/data-picker.ts\nfunction getDataPickerProps() {\n return { ...getEditorProps(), value: [String, Array, Object, Number] };\n}\nfunction getGridDataPickerProps() {\n return { ...getDataPickerProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/date-picker.ts\nfunction getDatePickerProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDatePickerProps() {\n return { ...getDatePickerProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/date-range.ts\nfunction getDateRangeProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDateRangeProps() {\n return { ...getDateRangeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/list-box.ts\nfunction getListBoxProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridListBoxProps() {\n return { ...getListBoxProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/number-range.ts\nfunction getNumberRangeProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridNumberRangeProps() {\n return { ...getNumberRangeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/radio-button-list.ts\nfunction getRadioProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridRadioProps() {\n return { ...getRadioProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/rate.ts\nfunction getRateProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridRateProps() {\n return { ...getRateProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/raw.ts\nfunction getRawProps() {\n return { ...getEditorProps(), value: [String, Number, Array] };\n}\nfunction getGridRawProps() {\n return { ...getRawProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/slider.ts\nfunction getSliderProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSliderProps() {\n return { ...getSliderProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/stepper.ts\nfunction getStepperProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridStepperProps() {\n return { ...getStepperProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/switch.ts\nfunction getSwitchProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSwitchProps() {\n return { ...getSwitchProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/upload.ts\nfunction getUploadProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridUploadProps() {\n return { ...getUploadProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/autocomplete.ts\nfunction getAutoCompleteProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridAutoCompleteProps() {\n return { ...getAutoCompleteProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/code.ts\nfunction getCodeProps() {\n return {\n ...getEditorProps(),\n value: String,\n language: {\n type: String\n },\n theme: {\n type: String\n }\n };\n}\nfunction getGridCodeProps() {\n return { ...getCodeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/html.ts\nfunction getHtmlProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridHtmlProps() {\n return { ...getHtmlProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/markdown.ts\nfunction getMarkDownProps() {\n return {\n ...getEditorProps(),\n data: { type: Object, required: false },\n controller: { type: Object, required: false },\n disabled: {\n type: Boolean,\n required: false\n }\n };\n}\nfunction getGridMarkDownProps() {\n return { ...getMarkDownProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/array.ts\nfunction getArrayProps() {\n return { ...getEditorProps(), value: [Array, Array] };\n}\nfunction getGridArrayProps() {\n return { ...getArrayProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/cascader.ts\nfunction getCascaderProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridCascaderProps() {\n return { ...getCascaderProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/color-picker.ts\nfunction getColorPickerProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridColorPickerProps() {\n return { ...getColorPickerProps(), ...getGridEditorCommonProps() };\n}\nexport {\n EmptyVNode,\n PluginFactory,\n RequiredProp,\n RouteListener,\n calcResRoutePath,\n excludeViewTypes,\n generateRoutePath,\n getArrayProps,\n getAutoCompleteProps,\n getCascaderProps,\n getCheckboxListProps,\n getCheckboxProps,\n getCodeProps,\n getColorPickerProps,\n getDataPickerProps,\n getDatePickerProps,\n getDateRangeProps,\n getDropdownProps,\n getEditorEmits,\n getEditorProps,\n getGridArrayProps,\n getGridAutoCompleteProps,\n getGridCascaderProps,\n getGridCheckboxListProps,\n getGridCheckboxProps,\n getGridCodeProps,\n getGridColorPickerProps,\n getGridDataPickerProps,\n getGridDatePickerProps,\n getGridDateRangeProps,\n getGridDropdownProps,\n getGridEditorCommonProps,\n getGridEditorEmits,\n getGridHtmlProps,\n getGridInputIpProps,\n getGridInputNumberProps,\n getGridInputProps,\n getGridListBoxProps,\n getGridMarkDownProps,\n getGridNumberRangeProps,\n getGridRadioProps,\n getGridRateProps,\n getGridRawProps,\n getGridSliderProps,\n getGridSpanProps,\n getGridStepperProps,\n getGridSwitchProps,\n getGridUploadProps,\n getHtmlProps,\n getInputIpProps,\n getInputNumberProps,\n getInputProps,\n getListBoxProps,\n getMarkDownProps,\n getNestedRoutePath,\n getNumberRangeProps,\n getOrigin,\n getOwnRouteContext,\n getRadioProps,\n getRateProps,\n getRawProps,\n getSliderProps,\n getSpanProps,\n getStepperProps,\n getSwitchProps,\n getUploadProps,\n isEmptyVNode,\n onRouteChange,\n parseRouteViewData,\n prepareControl,\n renderString,\n route2routePath,\n routePath2string,\n useClickOutside,\n useControlController,\n useController,\n useCtx,\n useEventListener,\n useFocusAndBlur,\n useForce,\n useForceTogether,\n useMobCtx,\n useNamespace,\n useProps,\n usePropsWatch,\n useRouteKey,\n useRouterQuery,\n useViewController,\n withInstall\n};\n"],"names":["async","appView","route","context","params","routePath","route2routePath","depth","toRouteDepth","ibiz","env","isMob","pathNodes","viewName","splice","length","currentSrfNav","currentNode","srfnav","fullPath","startsWith","srfindexname","push","codeName","toLowerCase","getOwnRouteContext","calcResRoutePath","appDataEntityId","excludeViewTypes","includes","viewType","deName","calcDeCodeNameById","path","routePath2string","change","_value","_name","blur","focus","getArrayProps","getGridEditorCommonProps","getAutoCompleteProps","getCascaderProps","getCheckboxListProps","getCheckboxProps","getCodeProps","getColorPickerProps","getDataPickerProps","getDatePickerProps","getDateRangeProps","getDropdownProps","rowSave","getHtmlProps","getInputIpProps","getInputNumberProps","getInputProps","getListBoxProps","getMarkDownProps","getNumberRangeProps","getRadioProps","getRateProps","getRawProps","getSliderProps","getSpanProps","getStepperProps","getSwitchProps","getUploadProps","nodes","Array","isArray","EmptyVNode","callback","useRoute","RuntimeError2","watch5","currentKey","getNestedRoutePath","immediate","_a","viewCodeName","concat","hub","defaultAppIndexViewName","viewModel","getAppView","appData","Object","assign","appContext","index","pathNode","notNilEmpty","c","commonNs","useNamespace","controlType","sysCss","model","typeClass","sysCssName","cssName","ns","controlClass","b","m","value","isNil3","toString","error","log","fn","ctx","useCtx","props","useProps","evt","emit","modelData","name","provider","createController","control","excludeKeys","watch3","watchProps","keys","forEach","key","newVal","oldVal","changeProps","debug","state","watchAndUpdateState","reactive","force","useForce","vue","getCurrentInstance2","proxy","onAll","eventName","event","$emit","slice","created","onBeforeUnmount2","destroyed","controller","componentRef","ref","isFocus","outsideFuns","doBlur","stop","useEventListener","_evt","useClickOutside","capture","pause","orignForce","selfForce","inject","options","prototype","hasOwnProperty","call","watch2","getOrigin","originKey","routeKey","ref2","routeListener","RouteListener","watch7","nextChange","useRoute2","query","inject2","watchAndUpdateContextParams","watchAndUpdateState2","provide","reactive2","slotProps","modal","getCurrentInstance3","onBeforeUnmount4","cb","mod","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","require_path_browserify","exports","module","assertPath","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","charCodeAt","lastSlashIndex","lastIndexOf","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","ext","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","parse","ret","delimiter","win32","import_path_browserify","isNodeMode","target","except","desc","get","enumerable","__copyProps","__esModule","__toESM","constructor","this","urlReg","cache","Map","devPackages","pluginCache","pluginCodes","predefinedPlugins","registerPredefinedPlugin","plugin","set","register","app","use","loadPredefinedPlugin","has","loadPluginRef","setPluginCode","setDevPlugin","loadPlugin","runtimeObject","pluginRef","rtobjectName","rtobjectRepo","RuntimeModelError","rtObjectName","rtObjectRepo","configData","pluginPath","configUrl","test","pluginBaseUrl","net","axios","method","headers","url","status","Error","data","remotePlugin","RemotePluginItem","loadScript","repo","version","system","config","scriptUrl","dev","endsWith","parseUrl","pluginModule","default","import","System","addImportMap","imports","RuntimeError","script","origin","pathname","window","location","substring","elRef","handler","NOOP","proceed","destroy","watch","isNil","result","onClickOutside","$el","onBeforeUnmount","getCurrentInstance","$props","val","isReactive","toRaw","$forceUpdate","isFunc","$nextTick","createCommentVNode","listener","cleanup","NOOP2","watch4","isNil2","listenJSEvent","onBeforeUnmount3","block","Namespace","namespace","ownContext","getOwnContext","ViewType","DE_GRID_VIEW","DE_GRID_EXP_VIEW","DE_LIST_VIEW","DE_LIST_EXP_VIEW","DE_DATA_VIEW","DE_DATAVIEW_EXP_VIEW","DE_CALENDAR_VIEW","DE_CALENDAR_EXP_VIEW","DE_CHART_VIEW","DE_CHART_EXP_VIEW","DE_KANBAN_VIEW","entity","getAppDataEntity","match","getMatchResPath","currentContext","resContext","matched","split","paramsStr","routePlaceholder","qs","strictNullHandling","srfnavctx","decodeURIComponent","pathStr","routeParams","objStr","encodeURIComponent","skipNulls","noSrfNav","wait","callbacks","timers","watch6","timer","clearTimeout","setTimeout","findIndex","item","main","install","view","watch8","reset","clearAll","handleContextParams","id","RequiredProp","type","_default","validator","required","getEditorProps","String","disabled","Boolean","readonly","autoFocus","hasError","Number","language","theme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.system.min.js","sources":["index.esm.js"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\nvar require_path_browserify = __commonJS({\n \"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\"(exports, module) {\n \"use strict\";\n function assertPath(path2) {\n if (typeof path2 !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path2));\n }\n }\n function normalizeStringPosix(path2, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path2.length; ++i) {\n if (i < path2.length)\n code = path2.charCodeAt(i);\n else if (code === 47)\n break;\n else\n code = 47;\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += \"/..\";\n else\n res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += \"/\" + path2.slice(lastSlash + 1, i);\n else\n res = path2.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n }\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n }\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path2;\n if (i >= 0)\n path2 = arguments[i];\n else {\n if (cwd === void 0)\n cwd = process.cwd();\n path2 = cwd;\n }\n assertPath(path2);\n if (path2.length === 0) {\n continue;\n }\n resolvedPath = path2 + \"/\" + resolvedPath;\n resolvedAbsolute = path2.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return \"/\" + resolvedPath;\n else\n return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var isAbsolute = path2.charCodeAt(0) === 47;\n var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;\n path2 = normalizeStringPosix(path2, !isAbsolute);\n if (path2.length === 0 && !isAbsolute)\n path2 = \".\";\n if (path2.length > 0 && trailingSeparator)\n path2 += \"/\";\n if (isAbsolute)\n return \"/\" + path2;\n return path2;\n },\n isAbsolute: function isAbsolute(path2) {\n assertPath(path2);\n return path2.length > 0 && path2.charCodeAt(0) === 47;\n },\n join: function join2() {\n if (arguments.length === 0)\n return \".\";\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === void 0)\n joined = arg;\n else\n joined += \"/\" + arg;\n }\n }\n if (joined === void 0)\n return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to)\n return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to)\n return \"\";\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47) {\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47) {\n lastCommonSep = i;\n } else if (i === 0) {\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47)\n lastCommonSep = i;\n }\n var out = \"\";\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47) {\n if (out.length === 0)\n out += \"..\";\n else\n out += \"/..\";\n }\n }\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47)\n ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path2) {\n return path2;\n },\n dirname: function dirname(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var code = path2.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path2.length - 1; i >= 1; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1)\n return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1)\n return \"//\";\n return path2.slice(0, end);\n },\n basename: function basename(path2, ext) {\n if (ext !== void 0 && typeof ext !== \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n assertPath(path2);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {\n if (ext.length === path2.length && ext === path2)\n return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n end = i;\n }\n } else {\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path2.length;\n return path2.slice(start, end);\n } else {\n for (i = path2.length - 1; i >= 0; --i) {\n if (path2.charCodeAt(i) === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1)\n return \"\";\n return path2.slice(start, end);\n }\n },\n extname: function extname(path2) {\n assertPath(path2);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var preDotState = 0;\n for (var i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path2.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format(\"/\", pathObject);\n },\n parse: function parse(path2) {\n assertPath(path2);\n var ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (path2.length === 0)\n return ret;\n var code = path2.charCodeAt(0);\n var isAbsolute = code === 47;\n var start;\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path2.length - 1;\n var preDotState = 0;\n for (; i >= start; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute)\n ret.base = ret.name = path2.slice(1, end);\n else\n ret.base = ret.name = path2.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path2.slice(1, startDot);\n ret.base = path2.slice(1, end);\n } else {\n ret.name = path2.slice(startPart, startDot);\n ret.base = path2.slice(startPart, end);\n }\n ret.ext = path2.slice(startDot, end);\n }\n if (startPart > 0)\n ret.dir = path2.slice(0, startPart - 1);\n else if (isAbsolute)\n ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n module.exports = posix;\n }\n});\n\n// src/plugin/plugin-factory/plugin-factory.ts\nvar import_path_browserify = __toESM(require_path_browserify(), 1);\nimport { RuntimeError, RuntimeModelError } from \"@ibiz-template/core\";\nimport {\n RemotePluginItem\n} from \"@ibiz-template/runtime\";\nvar PluginFactory = class {\n constructor() {\n /**\n * 是否为 http || https 开头\n *\n * @author chitanda\n * @date 2022-11-07 14:11:28\n * @protected\n */\n this.urlReg = /^http[s]?:\\/\\/[^\\s]*/;\n /**\n * 是否已经加载过文件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:17\n * @protected\n * @type {Map<string, boolean>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 本地开发测试包,只在本地开发生效\n *\n * @author chitanda\n * @date 2022-11-02 21:11:41\n * @protected\n */\n this.devPackages = /* @__PURE__ */ new Map();\n /**\n * 插件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:28\n * @protected\n * @type {Map<string, RemotePluginItem>}\n */\n this.pluginCache = /* @__PURE__ */ new Map();\n /**\n * 所有的插件\n *\n * @author chitanda\n * @date 2023-02-02 16:02:55\n * @protected\n * @type {Plugin[]}\n */\n this.pluginCodes = [];\n /**\n * 预定义插件集合\n *\n * @author chitanda\n * @date 2023-03-09 17:03:46\n * @protected\n * @type {Map<string, IPluginItem>}\n */\n this.predefinedPlugins = /* @__PURE__ */ new Map();\n }\n /**\n * 注册视图默认插件\n *\n * @author chitanda\n * @date 2023-02-06 21:02:10\n * @param {IPluginItem} plugin\n */\n registerPredefinedPlugin(plugin) {\n this.predefinedPlugins.set(plugin.name, plugin);\n }\n /**\n * 给入应用实例,将已经加载的过插件注入。主要用于多实例的情况\n *\n * @author chitanda\n * @date 2023-02-02 16:02:51\n * @param {App} app\n */\n register(app) {\n this.pluginCodes.forEach((plugin) => {\n app.use(plugin);\n });\n }\n /**\n * 加载预置插件\n *\n * @author chitanda\n * @date 2023-03-09 18:03:48\n * @param {string} name\n * @return {*} {Promise<void>}\n */\n async loadPredefinedPlugin(name) {\n if (this.predefinedPlugins.has(name)) {\n const plugin = this.predefinedPlugins.get(name);\n if (plugin) {\n await this.loadPluginRef(plugin.name, plugin.path);\n }\n }\n }\n /**\n * 插件刚加载完成回来,设置到目前所有的 vue 实例当中\n *\n * @author chitanda\n * @date 2023-02-02 17:02:38\n * @protected\n * @param {Plugin} code\n */\n setPluginCode(code) {\n this.pluginCodes.push(code);\n window.vueInstances.forEach((inst) => {\n inst.use(code);\n });\n }\n /**\n * 设置开发插件,用于本地调试\n *\n * @author chitanda\n * @date 2022-11-02 21:11:56\n * @param {string} name\n * @param {() => Promise<unknown>} fn\n */\n setDevPlugin(name, fn) {\n this.devPackages.set(name, fn);\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-10-31 14:10:13\n * @param {ISysPFPlugin} plugin\n * @return {*} {Promise<boolean>}\n */\n async loadPlugin(plugin) {\n if (plugin.runtimeObject === true) {\n const pluginRef = plugin;\n if (pluginRef) {\n try {\n await this.loadPluginRef(\n pluginRef.rtobjectName,\n pluginRef.rtobjectRepo\n );\n } catch (error) {\n throw new RuntimeModelError(pluginRef, \"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n }\n }\n return false;\n }\n /**\n * 加载应用插件\n *\n * @author chitanda\n * @date 2022-10-31 16:10:57\n * @param {IPSAppPFPluginRef} pluginRef\n * @return {*} {Promise<boolean>}\n */\n async loadPluginRef(rtObjectName, rtObjectRepo) {\n if (this.pluginCache.has(rtObjectName)) {\n return true;\n }\n let configData = null;\n const fn = this.devPackages.get(rtObjectName);\n if (fn) {\n configData = await fn();\n } else {\n const pluginPath = rtObjectRepo;\n const configUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/package.json\") : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat((0, import_path_browserify.join)(pluginPath, \"package.json\"));\n const res = await ibiz.net.axios({\n method: \"get\",\n headers: { \"Access-Control-Allow-Origin\": \"*\" },\n url: configUrl\n });\n if (res.status !== 200) {\n throw new Error(\"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n configData = res.data;\n }\n const remotePlugin = new RemotePluginItem(\n rtObjectName,\n rtObjectRepo,\n configData\n );\n if (remotePlugin) {\n try {\n await this.loadScript(remotePlugin);\n this.pluginCache.set(rtObjectName, remotePlugin);\n return true;\n } catch (error) {\n ibiz.log.error(error);\n }\n }\n return false;\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-11-02 14:11:31\n * @protected\n * @param {RemotePluginItem} remotePlugin\n * @return {*} {Promise<void>}\n */\n async loadScript(remotePlugin) {\n const pluginPath = remotePlugin.repo;\n const { name, version, system, module, styles } = remotePlugin.config;\n let scriptUrl = \"\";\n if (this.devPackages.has(name)) {\n scriptUrl = (0, import_path_browserify.join)(\"\".concat(name, \"@\").concat(version), module);\n } else if (ibiz.env.dev) {\n scriptUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module)) : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module));\n } else {\n scriptUrl = (0, import_path_browserify.join)(pluginPath, system);\n }\n if (scriptUrl) {\n if (this.cache.has(scriptUrl)) {\n return;\n }\n let data = null;\n const url = this.parseUrl(scriptUrl);\n const styleUrls = (typeof styles === \"string\" ? [styles] : styles).map(\n (styleUrl) => this.parseUrl(import_path_browserify.default.join(pluginPath, styleUrl))\n );\n if (this.devPackages.has(name)) {\n const fn = this.devPackages.get(name);\n const pluginModule = await fn();\n this.setPluginCode(pluginModule.default);\n this.cache.set(scriptUrl, true);\n } else if (ibiz.env.dev) {\n data = await import(\n scriptUrl\n /* @vite-ignore */\n );\n } else {\n System.addImportMap({\n imports: {\n [name]: url\n },\n styles: {\n [name]: styleUrls\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n });\n data = await System.import(name);\n }\n if (data) {\n if (data.default) {\n this.setPluginCode(data.default);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u8FDC\\u7A0B\\u63D2\\u4EF6\\u672A\\u627E\\u5230[default]\\u9ED8\\u8BA4\\u5BFC\\u51FA\"\n );\n }\n this.cache.set(scriptUrl, true);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u672A\\u627E\\u5230\\u6587\\u4EF6\\u6216\\u6587\\u4EF6\\u5185\\u5BB9\\u683C\\u5F0F\\u4E0D\\u6B63\\u786E\"\n );\n }\n }\n }\n /**\n * 编译请求文件地址\n *\n * @author chitanda\n * @date 2022-10-31 14:10:19\n * @protected\n * @param {string} script\n * @return {*} {string}\n */\n parseUrl(script) {\n if (this.urlReg.test(script)) {\n return script;\n }\n let url = \"\";\n if (this.urlReg.test(ibiz.env.pluginBaseUrl)) {\n if (script.startsWith(\"/\")) {\n url = ibiz.env.pluginBaseUrl + script;\n } else {\n url = \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(script);\n }\n } else {\n url = \"\".concat((0, import_path_browserify.join)(ibiz.env.pluginBaseUrl, script));\n }\n const { origin, pathname } = window.location;\n if (pathname.endsWith(\"/\") && url.startsWith(\"/\")) {\n url = url.substring(1);\n }\n url = \"\".concat(origin).concat(pathname).concat(url);\n return url;\n }\n};\n\n// src/use/click-outside/click-outside.ts\nimport {\n NOOP,\n onClickOutside\n} from \"@ibiz-template/core\";\nimport { isNil } from \"ramda\";\nimport { onBeforeUnmount, watch } from \"vue\";\nfunction useClickOutside(elRef, handler, options = {}) {\n let stop = NOOP;\n let pause = NOOP;\n let proceed = NOOP;\n const destroy = () => {\n stop();\n stop = NOOP;\n pause = NOOP;\n proceed = NOOP;\n };\n watch(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil(newVal)) {\n destroy();\n } else {\n const result = onClickOutside(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n handler,\n options\n );\n stop = result.stop;\n pause = result.pause;\n proceed = result.proceed;\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount(() => {\n if (stop !== NOOP) {\n destroy();\n }\n });\n return {\n stop: () => stop(),\n pause: () => pause(),\n proceed: () => proceed()\n };\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nimport { getCurrentInstance as getCurrentInstance2, onBeforeUnmount as onBeforeUnmount2, reactive, watch as watch3 } from \"vue\";\n\n// src/use/vue/vue.ts\nimport { isFunc } from \"qx-util\";\nimport {\n createCommentVNode,\n getCurrentInstance,\n isReactive,\n toRaw,\n watch as watch2\n} from \"vue\";\nfunction useProps() {\n const vue = getCurrentInstance().proxy;\n return vue.$props;\n}\nfunction getOrigin(val) {\n return isReactive(val) ? toRaw(val) : val;\n}\nfunction usePropsWatch(key, callback, options) {\n const props = useProps();\n if (Object.prototype.hasOwnProperty.call(props, key)) {\n watch2(\n () => props[key],\n (newVal, oldVal) => {\n callback(getOrigin(newVal), getOrigin(oldVal));\n },\n options\n );\n callback(getOrigin(props[key]), void 0);\n }\n}\nfunction useForce() {\n const vue = getCurrentInstance().proxy;\n return (callback) => {\n vue.$forceUpdate();\n if (callback && isFunc(callback)) {\n vue.$nextTick(() => {\n callback();\n });\n }\n };\n}\nfunction useForceTogether(vue, controller) {\n const orignForce = controller.force;\n const selfForce = useForce();\n controller.force = (callback) => {\n orignForce(callback);\n selfForce();\n };\n}\nfunction useController(controller) {\n controller.force = useForce();\n}\nvar EmptyVNode = createCommentVNode(\"EmptyVNode\");\nfunction isEmptyVNode(nodes) {\n if (!Array.isArray(nodes)) {\n return nodes === EmptyVNode;\n }\n return nodes.length === 1 && nodes[0] === EmptyVNode;\n}\n\n// src/use/util/index.ts\nimport { inject } from \"vue\";\nfunction useCtx() {\n return inject(\"ctx\");\n}\nfunction useMobCtx() {\n return inject(\"ctx\");\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nfunction watchAndUpdateState(props, control) {\n const excludeKeys = [\"context\", \"params\", \"modelData\"];\n watch3(\n () => {\n const watchProps = {};\n Object.keys(props).forEach((key) => {\n if (!excludeKeys.includes(key)) {\n watchProps[key] = props[key];\n }\n });\n return watchProps;\n },\n (newVal, oldVal) => {\n const changeProps = {};\n Object.keys(newVal).forEach((key) => {\n if (newVal[key] !== (oldVal || {})[key]) {\n changeProps[key] = newVal[key];\n }\n });\n ibiz.log.debug(\"\\u90E8\\u4EF6 [\".concat(control.model.name, \"] state \\u53D8\\u66F4\"), changeProps);\n Object.keys(changeProps).forEach((key) => {\n if (changeProps[key] !== void 0) {\n control.state[key] = changeProps[key];\n }\n });\n },\n { immediate: true }\n );\n}\nfunction useControlController(fn) {\n const ctx = useCtx();\n const props = useProps();\n ctx.evt.emit(\"onForecast\", props.modelData.name);\n const provider = props.provider;\n let c;\n if (provider == null ? void 0 : provider.createController) {\n c = provider.createController(\n props.modelData,\n props.context,\n props.params,\n ctx\n );\n } else {\n c = fn(props.modelData, props.context, props.params, ctx);\n }\n watchAndUpdateState(props, c);\n c.state = reactive(c.state);\n c.force = useForce();\n const vue = getCurrentInstance2().proxy;\n c.evt.onAll((eventName, event) => {\n vue.$emit(eventName.slice(2), event);\n });\n vue.$emit(\"controllerAppear\", c);\n c.created();\n onBeforeUnmount2(() => c.destroyed());\n return c;\n}\n\n// src/use/event/event.ts\nimport { listenJSEvent, NOOP as NOOP2 } from \"@ibiz-template/core\";\nimport { isNil as isNil2 } from \"ramda\";\nimport { onBeforeUnmount as onBeforeUnmount3, watch as watch4 } from \"vue\";\nfunction useEventListener(elRef, eventName, listener, options = {}) {\n let cleanup = NOOP2;\n watch4(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil2(newVal)) {\n cleanup();\n cleanup = NOOP2;\n } else {\n cleanup = listenJSEvent(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n eventName,\n listener,\n options\n );\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount3(() => {\n if (cleanup !== NOOP2) {\n cleanup();\n }\n });\n return () => {\n cleanup();\n };\n}\n\n// src/use/focus-blur/focus-blur.ts\nimport { ref } from \"vue\";\nfunction useFocusAndBlur(focus, blur) {\n const componentRef = ref();\n const isFocus = ref(false);\n let outsideFuns;\n const doBlur = () => {\n if (!isFocus.value) {\n ibiz.log.debug(\"\\u6CA1\\u6709\\u805A\\u7126\\uFF0C\\u4E0D\\u89E6\\u53D1\\u5931\\u7126\");\n }\n blur();\n outsideFuns.stop();\n isFocus.value = false;\n };\n const pause = () => {\n if (outsideFuns) {\n outsideFuns.pause();\n }\n };\n const stop = () => {\n if (outsideFuns) {\n outsideFuns.stop();\n }\n };\n useEventListener(\n componentRef,\n \"click\",\n (_evt) => {\n if (!isFocus.value) {\n outsideFuns = useClickOutside(componentRef, () => {\n doBlur();\n });\n isFocus.value = true;\n focus();\n }\n },\n { capture: true }\n // 捕获防止内部ui拦截点击事件\n );\n return { componentRef, isFocus, doBlur, pause, stop };\n}\n\n// src/use/namespace/namespace.ts\nimport { Namespace } from \"@ibiz-template/core\";\nfunction useNamespace(block) {\n return new Namespace(block, ibiz.env.namespace);\n}\n\n// src/use/route/route.ts\nimport { useRoute as useRoute2 } from \"vue-router\";\nimport { ref as ref2, watch as watch7 } from \"vue\";\n\n// src/util/route/route.ts\nimport { notNilEmpty } from \"qx-util\";\nimport { RuntimeError as RuntimeError2 } from \"@ibiz-template/core\";\nimport qs from \"qs\";\nimport { useRoute } from \"vue-router\";\nimport { watch as watch5 } from \"vue\";\nimport {\n calcDeCodeNameById,\n getMatchResPath,\n ViewType\n} from \"@ibiz-template/runtime\";\nfunction getOwnRouteContext(context) {\n const ownContext = context.getOwnContext();\n const excludeKeys = [\"srfsessionid\", \"srfappid\"];\n Object.keys(ownContext).forEach((key) => {\n if (excludeKeys.includes(key)) {\n delete ownContext[key];\n }\n });\n return ownContext;\n}\nvar excludeViewTypes = [\n ViewType.DE_GRID_VIEW,\n ViewType.DE_GRID_EXP_VIEW,\n ViewType.DE_LIST_VIEW,\n ViewType.DE_LIST_EXP_VIEW,\n ViewType.DE_DATA_VIEW,\n ViewType.DE_DATAVIEW_EXP_VIEW,\n ViewType.DE_CALENDAR_VIEW,\n ViewType.DE_CALENDAR_EXP_VIEW,\n ViewType.DE_CHART_VIEW,\n ViewType.DE_CHART_EXP_VIEW,\n ViewType.DE_KANBAN_VIEW\n];\nasync function calcResRoutePath(routePath, context, appDataEntityId) {\n if (!appDataEntityId) {\n routePath.pathNodes[0].context = void 0;\n } else {\n const entity = await ibiz.hub.getAppDataEntity(appDataEntityId);\n let match = getMatchResPath(context, entity);\n if (!match) {\n match = { path: \"\", keys: [entity.codeName.toLowerCase()] };\n }\n if (match) {\n const currentContext = routePath.pathNodes[1].context;\n const resContext = {};\n match.keys.forEach((key) => {\n if (context && Object.prototype.hasOwnProperty.call(context, key)) {\n resContext[key] = context[key];\n if (currentContext) {\n delete currentContext[key];\n }\n }\n });\n routePath.pathNodes[0].context = resContext;\n }\n }\n}\nasync function generateRoutePath(appView, route, context, params) {\n const routePath = route2routePath(route);\n let depth = 2;\n if (context.toRouteDepth) {\n depth = context.toRouteDepth;\n delete context.toRouteDepth;\n } else if (ibiz.env.isMob) {\n routePath.pathNodes[0] = {\n viewName: \"home\"\n };\n }\n routePath.pathNodes.splice(depth - 1, routePath.pathNodes.length - depth + 1);\n if (context.currentSrfNav) {\n const currentNode = routePath.pathNodes[routePath.pathNodes.length - 1];\n currentNode.params = currentNode.params || {};\n currentNode.srfnav = context.currentSrfNav;\n delete context.currentSrfNav;\n }\n if (route.fullPath.startsWith(\"/appredirectview\")) {\n if (params == null ? void 0 : params.srfindexname) {\n routePath.pathNodes[0].viewName = params.srfindexname;\n delete params.srfindexname;\n } else {\n routePath.pathNodes[0].viewName = \"index\";\n }\n }\n routePath.pathNodes.push({\n viewName: appView.codeName.toLowerCase(),\n context: getOwnRouteContext(context),\n params\n });\n if (depth === 2) {\n await calcResRoutePath(routePath, context, appView.appDataEntityId);\n if (excludeViewTypes.includes(appView.viewType)) {\n const deName = calcDeCodeNameById(appView.appDataEntityId);\n delete routePath.pathNodes[0].context[deName];\n }\n }\n return { path: routePath2string(routePath) };\n}\nasync function parseRouteViewData(route, depth) {\n var _a;\n const routePath = route2routePath(route);\n let viewCodeName = routePath.pathNodes[depth - 1].viewName;\n if (!viewCodeName) {\n throw new RuntimeError2(\"\\u7B2C\".concat(depth, \"\\u7EA7\\u8DEF\\u7531\\u4E0D\\u5B58\\u5728\\u89C6\\u56FE\\u6807\\u8BC6\"));\n }\n if (viewCodeName === \"index\") {\n viewCodeName = ibiz.hub.defaultAppIndexViewName;\n }\n const viewModel = await ibiz.hub.getAppView(viewCodeName);\n if (!viewModel) {\n throw new RuntimeError2(\"\\u627E\\u4E0D\\u5230\\u89C6\\u56FE\".concat(viewCodeName));\n }\n const context = {};\n if ((_a = ibiz.appData) == null ? void 0 : _a.context) {\n Object.assign(context, ibiz.appData.context);\n }\n if (routePath.appContext) {\n Object.assign(context, routePath.appContext);\n }\n if (depth !== 1) {\n for (let index = 0; index < depth; index++) {\n const pathNode = routePath.pathNodes[index];\n if (notNilEmpty(pathNode.context)) {\n Object.assign(context, pathNode.context);\n }\n }\n }\n const { params, srfnav } = routePath.pathNodes[depth - 1];\n return {\n viewModel,\n context,\n params,\n srfnav\n };\n}\nfunction route2routePath(route) {\n const depth = route.matched.length;\n const pathNodes = [];\n for (let index = 1; index <= depth; index++) {\n const viewName = route.path.split(\"/\")[index * 2];\n const paramsStr = route.params[\"params\".concat(index)];\n let params;\n let context;\n let srfnav;\n if (!paramsStr || paramsStr === ibiz.env.routePlaceholder) {\n params = void 0;\n } else {\n params = qs.parse(paramsStr, {\n strictNullHandling: true,\n delimiter: \";\"\n });\n }\n if (params) {\n if (index === 1) {\n context = params;\n params = void 0;\n } else {\n if (params.srfnavctx) {\n context = JSON.parse(decodeURIComponent(params.srfnavctx));\n delete params.srfnavctx;\n }\n if (params.srfnav) {\n srfnav = params.srfnav;\n delete params.srfnav;\n }\n }\n }\n pathNodes.push({ viewName, context, params, srfnav });\n }\n let appContext;\n if (route.params.appContext && route.params.appContext !== ibiz.env.routePlaceholder) {\n appContext = qs.parse(route.params.appContext, {\n strictNullHandling: true,\n delimiter: \";\"\n });\n }\n return { appContext, pathNodes };\n}\nfunction routePath2string(routePath) {\n let pathStr = \"\";\n if (routePath.appContext) {\n pathStr += \"/\".concat(qs.stringify(routePath.appContext, {\n delimiter: \";\",\n strictNullHandling: true\n }));\n } else {\n pathStr += \"/\".concat(ibiz.env.routePlaceholder);\n }\n routePath.pathNodes.forEach((pathNode, index) => {\n pathStr += \"/\".concat(pathNode.viewName, \"/\");\n let routeParams = {};\n if (index === 0) {\n if (notNilEmpty(pathNode.context)) {\n routeParams = pathNode.context;\n }\n } else {\n routeParams = notNilEmpty(pathNode.params) ? pathNode.params : {};\n if (notNilEmpty(pathNode.context)) {\n const objStr = JSON.stringify(pathNode.context);\n if (objStr !== \"{}\") {\n routeParams.srfnavctx = encodeURIComponent(objStr);\n }\n }\n if (pathNode.srfnav) {\n routeParams.srfnav = pathNode.srfnav;\n }\n }\n const paramsStr = qs.stringify(routeParams, {\n delimiter: \";\",\n strictNullHandling: true,\n skipNulls: true\n });\n if (notNilEmpty(paramsStr)) {\n pathStr += paramsStr;\n } else {\n pathStr += ibiz.env.routePlaceholder;\n }\n });\n return pathStr;\n}\nfunction getNestedRoutePath(route, depth, noSrfNav = true) {\n if (route.matched.length < depth) {\n return \"\";\n }\n if (route.name) {\n return route.path;\n }\n const routePath = route2routePath(route);\n if (routePath.pathNodes.length < depth) {\n return route.path;\n }\n if (routePath.pathNodes.length > depth) {\n routePath.pathNodes = routePath.pathNodes.slice(0, depth);\n }\n if (noSrfNav) {\n delete routePath.pathNodes[depth - 1].srfnav;\n }\n return routePath2string(routePath);\n}\nfunction onRouteChange(callback, depth) {\n const route = useRoute();\n if (!route) {\n throw new RuntimeError2(\"\\u65E0\\u6CD5\\u6B63\\u786E\\u83B7\\u53D6route,\\u53EF\\u80FD\\u662F\\u4F9D\\u8D56\\u95EE\\u9898\");\n }\n watch5(\n () => route == null ? void 0 : route.path,\n () => {\n const currentKey = getNestedRoutePath(route, depth);\n callback({ currentKey, fullPath: route.fullPath });\n },\n { immediate: true }\n );\n}\n\n// src/util/route/route-listener.ts\nimport { watch as watch6 } from \"vue\";\nvar RouteListener = class {\n constructor(route, wait) {\n /**\n * 回调集合\n *\n * @memberof RouteListener\n */\n this.callbacks = [];\n /**\n * 计时器集合\n *\n * @private\n * @type {any[]}\n * @memberof RouteListener\n */\n this.timers = [];\n /**\n * 等待路由响应时间\n *\n * @private\n * @type {number}\n * @memberof RouteListener\n */\n this.wait = 500;\n if (wait) {\n this.wait = wait;\n }\n watch6(\n () => route.path,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (this.callbacks.length) {\n for (let index = 0; index < this.callbacks.length; index++) {\n const fn = this.callbacks[index];\n fn();\n }\n }\n this.callbacks = [];\n if (this.timers.length) {\n for (let index = 0; index < this.timers.length; index++) {\n const timer = this.timers[index];\n clearTimeout(timer);\n }\n }\n this.timers = [];\n }\n }\n );\n }\n /**\n * 下一次路由变更后执行回调,只执行一次\n *\n * @param {ChangeCallback} callback\n * @memberof RouteListener\n */\n nextChange(callback) {\n if (callback) {\n this.timers.push(\n setTimeout(() => {\n callback();\n const index = this.callbacks.findIndex((item) => item === callback);\n this.callbacks.splice(index, 1);\n }, this.wait)\n );\n this.callbacks.push(callback);\n }\n }\n};\n\n// src/util/install.ts\nvar withInstall = (main, install) => {\n main.install = (app) => {\n install(app);\n };\n return main;\n};\n\n// src/util/control/prepare-control.ts\nfunction prepareControl(c) {\n const commonNs = useNamespace(\"control\");\n const { controlType, sysCss, codeName } = c.model;\n const typeClass = controlType.toLowerCase();\n const sysCssName = sysCss == null ? void 0 : sysCss.cssName;\n const ns = useNamespace(\"control-\".concat(typeClass));\n const controlClass = [\n commonNs.b(),\n commonNs.b(typeClass),\n commonNs.m(codeName)\n ];\n if (sysCssName) {\n controlClass.push(sysCssName);\n }\n return { controlClass, ns };\n}\n\n// src/util/render/render.ts\nimport { isNil as isNil3 } from \"ramda\";\nfunction renderString(value) {\n if (isNil3(value)) {\n return \"\";\n }\n if (typeof value === \"string\") {\n return value;\n }\n try {\n const str = value.toString();\n return str;\n } catch (error) {\n ibiz.log.error(value, \"\\u8F6C\\u6362\\u6210\\u5B57\\u7B26\\u4E32\\u5931\\u8D25\", error);\n }\n return \"\";\n}\n\n// src/use/route/route.ts\nfunction useRouterQuery() {\n const route = useRoute2();\n const { query } = route;\n return query;\n}\nfunction useRouteKey(originKey, route, routeKey) {\n if (!routeKey) {\n routeKey = ref2(\"\");\n }\n routeKey.value = originKey.value;\n const routeListener = new RouteListener(route);\n watch7(originKey, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n routeListener.nextChange(() => {\n routeKey.value = newVal;\n });\n }\n });\n return routeKey;\n}\n\n// src/use/view/use-view-controller/use-view-controller.ts\nimport { clearAll } from \"qx-util\";\nimport {\n getCurrentInstance as getCurrentInstance3,\n inject as inject2,\n onBeforeUnmount as onBeforeUnmount4,\n provide,\n reactive as reactive2,\n watch as watch8\n} from \"vue\";\nfunction watchAndUpdateContextParams(props, view) {\n watch8(\n () => ({ context: props.context, params: props.params }),\n (newVal) => {\n view.context.reset({}, newVal.context);\n clearAll(view.params);\n Object.assign(view.params, newVal.params);\n view.handleContextParams();\n ibiz.log.debug(\"\".concat(view.model.id, \"\\u7684\\u4E0A\\u4E0B\\u6587\\u6216\\u89C6\\u56FE\\u53C2\\u6570\\u53D8\\u66F4\\uFF1A\"), newVal);\n }\n );\n}\nfunction watchAndUpdateState2(props, view) {\n watch8(\n () => {\n return props.state ? { ...props.state } : {};\n },\n (newVal, oldVal) => {\n const changeProps = {};\n Object.keys(newVal).forEach((key) => {\n if (newVal[key] !== (oldVal || {})[key]) {\n changeProps[key] = newVal[key];\n }\n });\n ibiz.log.debug(\"\\u89C6\\u56FE [\".concat(view.model.name, \"] state \\u53D8\\u66F4\"), changeProps);\n Object.keys(changeProps).forEach((key) => {\n view.state[key] = changeProps[key];\n });\n },\n { immediate: true }\n );\n}\nfunction useViewController(fn) {\n const props = useProps();\n const ctx = inject2(\"ctx\", void 0);\n ctx == null ? void 0 : ctx.evt.emit(\"onForecast\", props.modelData.name);\n const provider = props.provider;\n let c;\n if (provider == null ? void 0 : provider.createController) {\n c = provider.createController(\n props.modelData,\n props.context,\n props.params,\n ctx\n );\n } else {\n c = fn(props.modelData, props.context, props.params, ctx);\n }\n watchAndUpdateContextParams(props, c);\n watchAndUpdateState2(props, c);\n provide(\"ctx\", c.ctx);\n c.state = reactive2(c.state);\n c.slotProps = reactive2(c.slotProps);\n if (props.modal) {\n c.modal = props.modal;\n }\n c.force = useForce();\n const vue = getCurrentInstance3().proxy;\n c.evt.onAll((eventName, event) => {\n vue.$emit(eventName.slice(2), event);\n });\n c.created();\n onBeforeUnmount4(() => c.destroyed());\n return c;\n}\n\n// src/props/common.ts\nvar RequiredProp = class {\n constructor(type, _default, validator) {\n this.required = true;\n if (_default) {\n this.default = _default;\n }\n if (validator) {\n this.validator = validator;\n }\n this.type = type;\n }\n};\n\n// src/props/editor/common.ts\nfunction getEditorProps() {\n return {\n value: String,\n controller: new RequiredProp(Object),\n data: new RequiredProp(Object),\n disabled: {\n type: Boolean\n },\n readonly: {\n type: Boolean,\n default: false\n },\n autoFocus: {\n type: Boolean,\n default: false\n }\n };\n}\nfunction getEditorEmits() {\n return {\n /** 值变更事件 */\n change: (_value, _name) => true,\n /** 失焦事件 */\n blur: () => true,\n /** 聚焦事件 */\n focus: () => true\n };\n}\nfunction getGridEditorEmits() {\n return {\n /** 值变更事件 */\n change: (_value, _name) => true,\n /** 是否正在操作事件 */\n rowSave: () => true\n };\n}\nfunction getGridEditorCommonProps() {\n return {\n hasError: {\n type: Boolean\n }\n };\n}\n\n// src/props/editor/text-box.ts\nfunction getInputProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridInputProps() {\n return { ...getInputProps(), ...getGridEditorCommonProps() };\n}\nfunction getInputNumberProps() {\n return { ...getEditorProps(), value: Number };\n}\nfunction getGridInputNumberProps() {\n return { ...getInputNumberProps(), ...getGridEditorCommonProps() };\n}\nfunction getInputIpProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridInputIpProps() {\n return { ...getInputIpProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/span.ts\nfunction getSpanProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSpanProps() {\n return { ...getSpanProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/dropdown-list.ts\nfunction getDropdownProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDropdownProps() {\n return { ...getDropdownProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/check-box-list.ts\nfunction getCheckboxListProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridCheckboxListProps() {\n return { ...getCheckboxListProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/check-box.ts\nfunction getCheckboxProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridCheckboxProps() {\n return { ...getCheckboxProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/data-picker.ts\nfunction getDataPickerProps() {\n return { ...getEditorProps(), value: [String, Array, Object, Number] };\n}\nfunction getGridDataPickerProps() {\n return { ...getDataPickerProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/date-picker.ts\nfunction getDatePickerProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDatePickerProps() {\n return { ...getDatePickerProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/date-range.ts\nfunction getDateRangeProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDateRangeProps() {\n return { ...getDateRangeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/list-box.ts\nfunction getListBoxProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridListBoxProps() {\n return { ...getListBoxProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/number-range.ts\nfunction getNumberRangeProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridNumberRangeProps() {\n return { ...getNumberRangeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/radio-button-list.ts\nfunction getRadioProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridRadioProps() {\n return { ...getRadioProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/rate.ts\nfunction getRateProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridRateProps() {\n return { ...getRateProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/raw.ts\nfunction getRawProps() {\n return { ...getEditorProps(), value: [String, Number, Array] };\n}\nfunction getGridRawProps() {\n return { ...getRawProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/slider.ts\nfunction getSliderProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSliderProps() {\n return { ...getSliderProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/stepper.ts\nfunction getStepperProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridStepperProps() {\n return { ...getStepperProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/switch.ts\nfunction getSwitchProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSwitchProps() {\n return { ...getSwitchProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/upload.ts\nfunction getUploadProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridUploadProps() {\n return { ...getUploadProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/autocomplete.ts\nfunction getAutoCompleteProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridAutoCompleteProps() {\n return { ...getAutoCompleteProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/code.ts\nfunction getCodeProps() {\n return {\n ...getEditorProps(),\n value: String,\n language: {\n type: String\n },\n theme: {\n type: String\n }\n };\n}\nfunction getGridCodeProps() {\n return { ...getCodeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/html.ts\nfunction getHtmlProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridHtmlProps() {\n return { ...getHtmlProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/markdown.ts\nfunction getMarkDownProps() {\n return {\n ...getEditorProps(),\n data: { type: Object, required: false },\n controller: { type: Object, required: false },\n disabled: {\n type: Boolean,\n required: false\n }\n };\n}\nfunction getGridMarkDownProps() {\n return { ...getMarkDownProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/array.ts\nfunction getArrayProps() {\n return { ...getEditorProps(), value: [Array, Array] };\n}\nfunction getGridArrayProps() {\n return { ...getArrayProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/cascader.ts\nfunction getCascaderProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridCascaderProps() {\n return { ...getCascaderProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/color-picker.ts\nfunction getColorPickerProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridColorPickerProps() {\n return { ...getColorPickerProps(), ...getGridEditorCommonProps() };\n}\nexport {\n EmptyVNode,\n PluginFactory,\n RequiredProp,\n RouteListener,\n calcResRoutePath,\n excludeViewTypes,\n generateRoutePath,\n getArrayProps,\n getAutoCompleteProps,\n getCascaderProps,\n getCheckboxListProps,\n getCheckboxProps,\n getCodeProps,\n getColorPickerProps,\n getDataPickerProps,\n getDatePickerProps,\n getDateRangeProps,\n getDropdownProps,\n getEditorEmits,\n getEditorProps,\n getGridArrayProps,\n getGridAutoCompleteProps,\n getGridCascaderProps,\n getGridCheckboxListProps,\n getGridCheckboxProps,\n getGridCodeProps,\n getGridColorPickerProps,\n getGridDataPickerProps,\n getGridDatePickerProps,\n getGridDateRangeProps,\n getGridDropdownProps,\n getGridEditorCommonProps,\n getGridEditorEmits,\n getGridHtmlProps,\n getGridInputIpProps,\n getGridInputNumberProps,\n getGridInputProps,\n getGridListBoxProps,\n getGridMarkDownProps,\n getGridNumberRangeProps,\n getGridRadioProps,\n getGridRateProps,\n getGridRawProps,\n getGridSliderProps,\n getGridSpanProps,\n getGridStepperProps,\n getGridSwitchProps,\n getGridUploadProps,\n getHtmlProps,\n getInputIpProps,\n getInputNumberProps,\n getInputProps,\n getListBoxProps,\n getMarkDownProps,\n getNestedRoutePath,\n getNumberRangeProps,\n getOrigin,\n getOwnRouteContext,\n getRadioProps,\n getRateProps,\n getRawProps,\n getSliderProps,\n getSpanProps,\n getStepperProps,\n getSwitchProps,\n getUploadProps,\n isEmptyVNode,\n onRouteChange,\n parseRouteViewData,\n prepareControl,\n renderString,\n route2routePath,\n routePath2string,\n useClickOutside,\n useControlController,\n useController,\n useCtx,\n useEventListener,\n useFocusAndBlur,\n useForce,\n useForceTogether,\n useMobCtx,\n useNamespace,\n useProps,\n usePropsWatch,\n useRouteKey,\n useRouterQuery,\n useViewController,\n withInstall\n};\n"],"names":["async","appView","route","context","params","routePath","route2routePath","depth","toRouteDepth","ibiz","env","isMob","pathNodes","viewName","splice","length","currentSrfNav","currentNode","srfnav","fullPath","startsWith","srfindexname","push","codeName","toLowerCase","getOwnRouteContext","calcResRoutePath","appDataEntityId","excludeViewTypes","includes","viewType","deName","calcDeCodeNameById","path","routePath2string","change","_value","_name","blur","focus","getArrayProps","getGridEditorCommonProps","getAutoCompleteProps","getCascaderProps","getCheckboxListProps","getCheckboxProps","getCodeProps","getColorPickerProps","getDataPickerProps","getDatePickerProps","getDateRangeProps","getDropdownProps","rowSave","getHtmlProps","getInputIpProps","getInputNumberProps","getInputProps","getListBoxProps","getMarkDownProps","getNumberRangeProps","getRadioProps","getRateProps","getRawProps","getSliderProps","getSpanProps","getStepperProps","getSwitchProps","getUploadProps","nodes","Array","isArray","EmptyVNode","callback","useRoute","RuntimeError2","watch5","currentKey","getNestedRoutePath","immediate","_a","viewCodeName","concat","hub","defaultAppIndexViewName","viewModel","getAppView","appData","Object","assign","appContext","index","pathNode","notNilEmpty","c","commonNs","useNamespace","controlType","sysCss","model","typeClass","sysCssName","cssName","ns","controlClass","b","m","value","isNil3","toString","error","log","fn","ctx","useCtx","props","useProps","evt","emit","modelData","name","provider","createController","control","excludeKeys","watch3","watchProps","keys","forEach","key","newVal","oldVal","changeProps","debug","state","watchAndUpdateState","reactive","force","useForce","vue","getCurrentInstance2","proxy","onAll","eventName","event","$emit","slice","created","onBeforeUnmount2","destroyed","controller","componentRef","ref","isFocus","outsideFuns","doBlur","stop","useEventListener","_evt","useClickOutside","capture","pause","orignForce","selfForce","inject","options","prototype","hasOwnProperty","call","watch2","getOrigin","originKey","routeKey","ref2","routeListener","RouteListener","watch7","nextChange","useRoute2","query","inject2","watchAndUpdateContextParams","watchAndUpdateState2","provide","reactive2","slotProps","modal","getCurrentInstance3","onBeforeUnmount4","cb","mod","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","require_path_browserify","exports","module","assertPath","path2","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","charCodeAt","lastSlashIndex","lastIndexOf","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","ext","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","parse","ret","delimiter","win32","import_path_browserify","isNodeMode","target","except","desc","get","enumerable","__copyProps","__esModule","__toESM","constructor","this","urlReg","cache","Map","devPackages","pluginCache","pluginCodes","predefinedPlugins","registerPredefinedPlugin","plugin","set","register","app","use","loadPredefinedPlugin","has","loadPluginRef","setPluginCode","window","vueInstances","inst","setDevPlugin","loadPlugin","runtimeObject","pluginRef","rtobjectName","rtobjectRepo","RuntimeModelError","rtObjectName","rtObjectRepo","configData","pluginPath","configUrl","test","pluginBaseUrl","net","axios","method","headers","url","status","Error","data","remotePlugin","RemotePluginItem","loadScript","repo","version","system","styles","config","scriptUrl","dev","parseUrl","styleUrls","map","styleUrl","default","pluginModule","import","System","addImportMap","imports","RuntimeError","script","origin","pathname","location","endsWith","substring","elRef","handler","NOOP","proceed","destroy","watch","isNil","result","onClickOutside","$el","onBeforeUnmount","getCurrentInstance","$props","val","isReactive","toRaw","$forceUpdate","isFunc","$nextTick","createCommentVNode","listener","cleanup","NOOP2","watch4","isNil2","listenJSEvent","onBeforeUnmount3","block","Namespace","namespace","ownContext","getOwnContext","ViewType","DE_GRID_VIEW","DE_GRID_EXP_VIEW","DE_LIST_VIEW","DE_LIST_EXP_VIEW","DE_DATA_VIEW","DE_DATAVIEW_EXP_VIEW","DE_CALENDAR_VIEW","DE_CALENDAR_EXP_VIEW","DE_CHART_VIEW","DE_CHART_EXP_VIEW","DE_KANBAN_VIEW","entity","getAppDataEntity","match","getMatchResPath","currentContext","resContext","matched","split","paramsStr","routePlaceholder","qs","strictNullHandling","srfnavctx","decodeURIComponent","pathStr","routeParams","objStr","encodeURIComponent","skipNulls","noSrfNav","wait","callbacks","timers","watch6","timer","clearTimeout","setTimeout","findIndex","item","main","install","view","watch8","reset","clearAll","handleContextParams","id","RequiredProp","type","_default","validator","required","getEditorProps","String","disabled","Boolean","readonly","autoFocus","hasError","Number","language","theme"],"mappings":"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"}
|
package/out/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
1
2
|
export * from './interface';
|
|
2
3
|
export * from './plugin';
|
|
3
4
|
export * from './use';
|
|
4
5
|
export * from './util';
|
|
5
6
|
export * from './props';
|
|
7
|
+
declare global {
|
|
8
|
+
interface Window {
|
|
9
|
+
vueInstances: Map<App, App>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
6
12
|
//# sourceMappingURL=index.d.ts.map
|
package/out/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAC7B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-factory.d.ts","sourceRoot":"","sources":["../../../src/plugin/plugin-factory/plugin-factory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,WAAW,EAEX,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAmB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,SAA0B;IAE1C;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAElD;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAa;IAEvE;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAa;IAEjE;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IAErC;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAElE;;;;;;OAMG;IACH,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAInD;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAMxB;;;;;;;OAOG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO3C;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAI5D;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxD;;;;;;;OAOG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IAwCnB;;;;;;;;OAQG;cACa,UAAU,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-factory.d.ts","sourceRoot":"","sources":["../../../src/plugin/plugin-factory/plugin-factory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,WAAW,EAEX,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAmB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,SAA0B;IAE1C;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAElD;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAa;IAEvE;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAa;IAEjE;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IAErC;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAElE;;;;;;OAMG;IACH,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAInD;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAMxB;;;;;;;OAOG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO3C;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAI5D;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxD;;;;;;;OAOG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IAwCnB;;;;;;;;OAQG;cACa,UAAU,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DzE;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAqB3C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RuntimeError, RuntimeModelError } from '@ibiz-template/core';
|
|
2
2
|
import { RemotePluginItem, } from '@ibiz-template/runtime';
|
|
3
|
-
import { join } from 'path-browserify';
|
|
3
|
+
import path, { join } from 'path-browserify';
|
|
4
4
|
/**
|
|
5
5
|
* 插件工具类
|
|
6
6
|
*
|
|
@@ -112,9 +112,9 @@ export class PluginFactory {
|
|
|
112
112
|
*/
|
|
113
113
|
setPluginCode(code) {
|
|
114
114
|
this.pluginCodes.push(code);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
window.vueInstances.forEach(inst => {
|
|
116
|
+
inst.use(code);
|
|
117
|
+
});
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
120
|
* 设置开发插件,用于本地调试
|
|
@@ -205,7 +205,7 @@ export class PluginFactory {
|
|
|
205
205
|
*/
|
|
206
206
|
async loadScript(remotePlugin) {
|
|
207
207
|
const pluginPath = remotePlugin.repo;
|
|
208
|
-
const { name, version, system, module } = remotePlugin.config;
|
|
208
|
+
const { name, version, system, module, styles } = remotePlugin.config;
|
|
209
209
|
let scriptUrl = '';
|
|
210
210
|
if (this.devPackages.has(name)) {
|
|
211
211
|
scriptUrl = join(`${name}@${version}`, module);
|
|
@@ -216,7 +216,7 @@ export class PluginFactory {
|
|
|
216
216
|
: `${ibiz.env.pluginBaseUrl}/${pluginPath}/${join(module)}`;
|
|
217
217
|
}
|
|
218
218
|
else {
|
|
219
|
-
scriptUrl =
|
|
219
|
+
scriptUrl = join(pluginPath, system);
|
|
220
220
|
}
|
|
221
221
|
if (scriptUrl) {
|
|
222
222
|
if (this.cache.has(scriptUrl)) {
|
|
@@ -224,6 +224,7 @@ export class PluginFactory {
|
|
|
224
224
|
}
|
|
225
225
|
let data = null;
|
|
226
226
|
const url = this.parseUrl(scriptUrl);
|
|
227
|
+
const styleUrls = (typeof styles === 'string' ? [styles] : styles).map(styleUrl => this.parseUrl(path.join(pluginPath, styleUrl)));
|
|
227
228
|
// 本地开发模式下的包引用加载
|
|
228
229
|
if (this.devPackages.has(name)) {
|
|
229
230
|
const fn = this.devPackages.get(name);
|
|
@@ -240,6 +241,10 @@ export class PluginFactory {
|
|
|
240
241
|
imports: {
|
|
241
242
|
[name]: url,
|
|
242
243
|
},
|
|
244
|
+
styles: {
|
|
245
|
+
[name]: styleUrls,
|
|
246
|
+
},
|
|
247
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
243
248
|
});
|
|
244
249
|
data = await System.import(name);
|
|
245
250
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/vue3-util",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "vue3 工具包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"author": "chitanda",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@ibiz-template/core": "^0.2.
|
|
34
|
-
"@ibiz-template/runtime": "^0.2.
|
|
33
|
+
"@ibiz-template/core": "^0.2.2",
|
|
34
|
+
"@ibiz-template/runtime": "^0.2.2",
|
|
35
35
|
"@ibiz/model-core": "^0.0.19",
|
|
36
36
|
"@types/path-browserify": "^1.0.0",
|
|
37
37
|
"@types/qs": "^6.9.8",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"vue": "^3.3.4",
|
|
55
55
|
"vue-router": "^4.2.4"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "34d8807f899eb9912f48db68af231d8f19249ba6"
|
|
58
58
|
}
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
RemotePluginItem,
|
|
7
7
|
} from '@ibiz-template/runtime';
|
|
8
8
|
import { IAppPFPluginRef, ISysPFPlugin } from '@ibiz/model-core';
|
|
9
|
-
import { join } from 'path-browserify';
|
|
9
|
+
import path, { join } from 'path-browserify';
|
|
10
10
|
import { App, Plugin } from 'vue';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -127,9 +127,9 @@ export class PluginFactory implements IPluginFactory {
|
|
|
127
127
|
*/
|
|
128
128
|
protected setPluginCode(code: Plugin): void {
|
|
129
129
|
this.pluginCodes.push(code);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
window.vueInstances.forEach(inst => {
|
|
131
|
+
inst.use(code);
|
|
132
|
+
});
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
/**
|
|
@@ -231,7 +231,7 @@ export class PluginFactory implements IPluginFactory {
|
|
|
231
231
|
*/
|
|
232
232
|
protected async loadScript(remotePlugin: RemotePluginItem): Promise<void> {
|
|
233
233
|
const pluginPath: string = remotePlugin.repo;
|
|
234
|
-
const { name, version, system, module } = remotePlugin.config;
|
|
234
|
+
const { name, version, system, module, styles } = remotePlugin.config;
|
|
235
235
|
let scriptUrl = '';
|
|
236
236
|
if (this.devPackages.has(name)) {
|
|
237
237
|
scriptUrl = join(`${name}@${version}`, module);
|
|
@@ -240,9 +240,7 @@ export class PluginFactory implements IPluginFactory {
|
|
|
240
240
|
? `${pluginPath}/${join(module)}`
|
|
241
241
|
: `${ibiz.env.pluginBaseUrl}/${pluginPath}/${join(module)}`;
|
|
242
242
|
} else {
|
|
243
|
-
scriptUrl =
|
|
244
|
-
system,
|
|
245
|
-
)}`;
|
|
243
|
+
scriptUrl = join(pluginPath, system);
|
|
246
244
|
}
|
|
247
245
|
if (scriptUrl) {
|
|
248
246
|
if (this.cache.has(scriptUrl)) {
|
|
@@ -250,6 +248,9 @@ export class PluginFactory implements IPluginFactory {
|
|
|
250
248
|
}
|
|
251
249
|
let data: IParams | null = null;
|
|
252
250
|
const url = this.parseUrl(scriptUrl);
|
|
251
|
+
const styleUrls = (typeof styles === 'string' ? [styles] : styles).map(
|
|
252
|
+
styleUrl => this.parseUrl(path.join(pluginPath, styleUrl)),
|
|
253
|
+
);
|
|
253
254
|
// 本地开发模式下的包引用加载
|
|
254
255
|
if (this.devPackages.has(name)) {
|
|
255
256
|
const fn = this.devPackages.get(name)!;
|
|
@@ -264,7 +265,11 @@ export class PluginFactory implements IPluginFactory {
|
|
|
264
265
|
imports: {
|
|
265
266
|
[name]: url,
|
|
266
267
|
},
|
|
267
|
-
|
|
268
|
+
styles: {
|
|
269
|
+
[name]: styleUrls,
|
|
270
|
+
},
|
|
271
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
272
|
+
} as any);
|
|
268
273
|
data = await System.import(name);
|
|
269
274
|
}
|
|
270
275
|
if (data) {
|