@ibiz-template/vue3-util 0.2.2 → 0.2.4

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 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(path) {
32
- if (typeof path !== "string") {
33
- throw new TypeError("Path must be a string. Received " + JSON.stringify(path));
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(path, allowAboveRoot) {
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 <= path.length; ++i) {
43
- if (i < path.length)
44
- code = path.charCodeAt(i);
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 += "/" + path.slice(lastSlash + 1, i);
84
+ res += "/" + path2.slice(lastSlash + 1, i);
85
85
  else
86
- res = path.slice(lastSlash + 1, i);
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 path;
117
+ var path2;
118
118
  if (i >= 0)
119
- path = arguments[i];
119
+ path2 = arguments[i];
120
120
  else {
121
121
  if (cwd === void 0)
122
122
  cwd = process.cwd();
123
- path = cwd;
123
+ path2 = cwd;
124
124
  }
125
- assertPath(path);
126
- if (path.length === 0) {
125
+ assertPath(path2);
126
+ if (path2.length === 0) {
127
127
  continue;
128
128
  }
129
- resolvedPath = path + "/" + resolvedPath;
130
- resolvedAbsolute = path.charCodeAt(0) === 47;
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(path) {
145
- assertPath(path);
146
- if (path.length === 0)
144
+ normalize: function normalize(path2) {
145
+ assertPath(path2);
146
+ if (path2.length === 0)
147
147
  return ".";
148
- var isAbsolute = path.charCodeAt(0) === 47;
149
- var trailingSeparator = path.charCodeAt(path.length - 1) === 47;
150
- path = normalizeStringPosix(path, !isAbsolute);
151
- if (path.length === 0 && !isAbsolute)
152
- path = ".";
153
- if (path.length > 0 && trailingSeparator)
154
- path += "/";
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 "/" + path;
157
- return path;
156
+ return "/" + path2;
157
+ return path2;
158
158
  },
159
- isAbsolute: function isAbsolute(path) {
160
- assertPath(path);
161
- return path.length > 0 && path.charCodeAt(0) === 47;
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(path) {
250
- return path;
249
+ _makeLong: function _makeLong(path2) {
250
+ return path2;
251
251
  },
252
- dirname: function dirname(path) {
253
- assertPath(path);
254
- if (path.length === 0)
252
+ dirname: function dirname(path2) {
253
+ assertPath(path2);
254
+ if (path2.length === 0)
255
255
  return ".";
256
- var code = path.charCodeAt(0);
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 = path.length - 1; i >= 1; --i) {
261
- code = path.charCodeAt(i);
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 path.slice(0, end);
275
+ return path2.slice(0, end);
276
276
  },
277
- basename: function basename(path, ext) {
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(path);
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 <= path.length) {
286
- if (ext.length === path.length && ext === path)
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 = path.length - 1; i >= 0; --i) {
291
- var code = path.charCodeAt(i);
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 = path.length;
318
- return path.slice(start, end);
317
+ end = path2.length;
318
+ return path2.slice(start, end);
319
319
  } else {
320
- for (i = path.length - 1; i >= 0; --i) {
321
- if (path.charCodeAt(i) === 47) {
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 path.slice(start, end);
333
+ return path2.slice(start, end);
334
334
  }
335
335
  },
336
- extname: function extname(path) {
337
- assertPath(path);
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 = path.length - 1; i >= 0; --i) {
344
- var code = path.charCodeAt(i);
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 path.slice(startDot, end);
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(path) {
379
- assertPath(path);
378
+ parse: function parse(path2) {
379
+ assertPath(path2);
380
380
  var ret = { root: "", dir: "", base: "", ext: "", name: "" };
381
- if (path.length === 0)
381
+ if (path2.length === 0)
382
382
  return ret;
383
- var code = path.charCodeAt(0);
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 = path.length - 1;
396
+ var i = path2.length - 1;
397
397
  var preDotState = 0;
398
398
  for (; i >= start; --i) {
399
- code = path.charCodeAt(i);
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 = path.slice(1, end);
425
+ ret.base = ret.name = path2.slice(1, end);
426
426
  else
427
- ret.base = ret.name = path.slice(startPart, end);
427
+ ret.base = ret.name = path2.slice(startPart, end);
428
428
  }
429
429
  } else {
430
430
  if (startPart === 0 && isAbsolute) {
431
- ret.name = path.slice(1, startDot);
432
- ret.base = path.slice(1, end);
431
+ ret.name = path2.slice(1, startDot);
432
+ ret.base = path2.slice(1, end);
433
433
  } else {
434
- ret.name = path.slice(startPart, startDot);
435
- ret.base = path.slice(startPart, end);
434
+ ret.name = path2.slice(startPart, startDot);
435
+ ret.base = path2.slice(startPart, end);
436
436
  }
437
- ret.ext = path.slice(startDot, end);
437
+ ret.ext = path2.slice(startDot, end);
438
438
  }
439
439
  if (startPart > 0)
440
- ret.dir = path.slice(0, startPart - 1);
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 = "".concat(pluginPath).concat(pluginPath.endsWith("/") ? "" : "/").concat((0, import_path_browserify.join)(
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
  }
@@ -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":"kvBA8iCAA,eAAiCC,EAASC,EAAOC,EAASC,GACxD,MAAMC,EAAYC,EAAgBJ,GAClC,IAAIK,EAAQ,EACRJ,EAAQK,cACVD,EAAQJ,EAAQK,oBACTL,EAAQK,cACNC,KAAKC,IAAIC,QAClBN,EAAUO,UAAU,GAAK,CACvBC,SAAU,SAId,GADAR,EAAUO,UAAUE,OAAOP,EAAQ,EAAGF,EAAUO,UAAUG,OAASR,EAAQ,GACvEJ,EAAQa,cAAe,CACzB,MAAMC,EAAcZ,EAAUO,UAAUP,EAAUO,UAAUG,OAAS,GACrEE,EAAYb,OAASa,EAAYb,QAAU,CAAA,EAC3Ca,EAAYC,OAASf,EAAQa,qBACtBb,EAAQa,aAChB,CACGd,EAAMiB,SAASC,WAAW,uBACd,MAAVhB,OAAiB,EAASA,EAAOiB,eACnChB,EAAUO,UAAU,GAAGC,SAAWT,EAAOiB,oBAClCjB,EAAOiB,cAEdhB,EAAUO,UAAU,GAAGC,SAAW,SAQtC,GALAR,EAAUO,UAAUU,KAAK,CACvBT,SAAUZ,EAAQsB,SAASC,cAC3BrB,QAASsB,EAAmBtB,GAC5BC,WAEY,IAAVG,UACImB,EAAiBrB,EAAWF,EAASF,EAAQ0B,iBAC/CC,EAAiBC,SAAS5B,EAAQ6B,WAAW,CAC/C,MAAMC,EAASC,EAAmB/B,EAAQ0B,wBACnCtB,EAAUO,UAAU,GAAGT,QAAQ4B,EACvC,CAEH,MAAO,CAAEE,KAAMC,EAAiB7B,GAClC,sPAmZA,WACE,MAAO,CAEL8B,OAAQ,CAACC,EAAQC,KAAU,EAE3BC,KAAM,KAAM,EAEZC,MAAO,KAAM,EAEjB,sCA0NA,WACE,MAAO,IAAKC,QAAoBC,KAClC,2BAnDA,WACE,MAAO,IAAKC,QAA2BD,KACzC,uBAuDA,WACE,MAAO,IAAKE,QAAuBF,KACrC,2BA3KA,WACE,MAAO,IAAKG,QAA2BH,KACzC,uBAMA,WACE,MAAO,IAAKI,QAAuBJ,KACrC,mBAuHA,WACE,MAAO,IAAKK,QAAmBL,KACjC,0BA8CA,WACE,MAAO,IAAKM,QAA0BN,KACxC,yBAnKA,WACE,MAAO,IAAKO,QAAyBP,KACvC,yBAMA,WACE,MAAO,IAAKQ,QAAyBR,KACvC,wBAMA,WACE,MAAO,IAAKS,QAAwBT,KACtC,uBA1CA,WACE,MAAO,IAAKU,QAAuBV,KACrC,iDAlDA,WACE,MAAO,CAELN,OAAQ,CAACC,EAAQC,KAAU,EAE3Be,QAAS,KAAM,EAEnB,mBA0LA,WACE,MAAO,IAAKC,QAAmBZ,KACjC,sBAnKA,WACE,MAAO,IAAKa,QAAsBb,KACpC,0BARA,WACE,MAAO,IAAKc,QAA0Bd,KACxC,oBARA,WACE,MAAO,IAAKe,QAAoBf,KAClC,sBA0EA,WACE,MAAO,IAAKgB,QAAsBhB,KACpC,uBA+GA,WACE,MAAO,IAAKiB,QAAuBjB,KACrC,0BA3GA,WACE,MAAO,IAAKkB,QAA0BlB,KACxC,oBAMA,WACE,MAAO,IAAKmB,QAAoBnB,KAClC,mBAMA,WACE,MAAO,IAAKoB,QAAmBpB,KACjC,kBAMA,WACE,MAAO,IAAKqB,QAAkBrB,KAChC,qBAMA,WACE,MAAO,IAAKsB,QAAqBtB,KACnC,mBAlGA,WACE,MAAO,IAAKuB,QAAmBvB,KACjC,sBAsGA,WACE,MAAO,IAAKwB,QAAsBxB,KACpC,qBAMA,WACE,MAAO,IAAKyB,QAAqBzB,KACnC,qBAMA,WACE,MAAO,IAAK0B,QAAqB1B,KACnC,uVAl0BA,SAAsB2B,GACpB,IAAKC,MAAMC,QAAQF,GACjB,OAAOA,IAAUG,EAEnB,OAAwB,IAAjBH,EAAMrD,QAAgBqD,EAAM,KAAOG,CAC5C,gBA4YA,SAAuBC,EAAUjE,GAC/B,MAAML,EAAQuE,IACd,IAAKvE,EACH,MAAM,IAAIwE,EAAc,uBAE1BC,GACE,IAAe,MAATzE,OAAgB,EAASA,EAAM+B,OACrC,KACE,MAAM2C,EAAaC,EAAmB3E,EAAOK,GAC7CiE,EAAS,CAAEI,aAAYzD,SAAUjB,EAAMiB,UAAW,GAEpD,CAAE2D,WAAW,GAEjB,qBA1JA9E,eAAkCE,EAAOK,GACvC,IAAIwE,EACJ,MAAM1E,EAAYC,EAAgBJ,GAClC,IAAI8E,EAAe3E,EAAUO,UAAUL,EAAQ,GAAGM,SAClD,IAAKmE,EACH,MAAM,IAAIN,EAAc,IAASO,OAAO1E,EAAO,eAE5B,UAAjByE,IACFA,EAAevE,KAAKyE,IAAIC,yBAE1B,MAAMC,QAAkB3E,KAAKyE,IAAIG,WAAWL,GAC5C,IAAKI,EACH,MAAM,IAAIV,EAAc,QAAiCO,OAAOD,IAElE,MAAM7E,EAAU,CAAA,GACW,OAAtB4E,EAAKtE,KAAK6E,cAAmB,EAASP,EAAG5E,UAC5CoF,OAAOC,OAAOrF,EAASM,KAAK6E,QAAQnF,SAElCE,EAAUoF,YACZF,OAAOC,OAAOrF,EAASE,EAAUoF,YAEnC,GAAc,IAAVlF,EACF,IAAK,IAAImF,EAAQ,EAAGA,EAAQnF,EAAOmF,IAAS,CAC1C,MAAMC,EAAWtF,EAAUO,UAAU8E,GACjCE,EAAYD,EAASxF,UACvBoF,OAAOC,OAAOrF,EAASwF,EAASxF,QAEnC,CAEH,MAAMC,OAAEA,EAAMc,OAAEA,GAAWb,EAAUO,UAAUL,EAAQ,GACvD,MAAO,CACL6E,YACAjF,UACAC,SACAc,SAEJ,iBAwMA,SAAwB2E,GACtB,MAAMC,EAAWC,EAAa,YACxBC,YAAEA,EAAWC,OAAEA,EAAM1E,SAAEA,GAAasE,EAAEK,MACtCC,EAAYH,EAAYxE,cACxB4E,EAAuB,MAAVH,OAAiB,EAASA,EAAOI,QAC9CC,EAAKP,EAAa,WAAWd,OAAOkB,IACpCI,EAAe,CACnBT,EAASU,IACTV,EAASU,EAAEL,GACXL,EAASW,EAAElF,IAET6E,GACFG,EAAajF,KAAK8E,GAEpB,MAAO,CAAEG,eAAcD,KACzB,eAIA,SAAsBI,GACpB,GAAIC,EAAOD,GACT,MAAO,GAET,GAAqB,iBAAVA,EACT,OAAOA,EAET,IAEE,OADYA,EAAME,UAEnB,CAAC,MAAOC,GACPpG,KAAKqG,IAAID,MAAMH,EAAO,WAAoDG,EAC3E,CACD,MAAO,EACT,8EAneA,SAA8BE,GAC5B,MAAMC,EAAMC,IACNC,EAAQC,IACdH,EAAII,IAAIC,KAAK,aAAcH,EAAMI,UAAUC,MAC3C,MAAMC,EAAWN,EAAMM,SACvB,IAAI3B,EAEFA,GADc,MAAZ2B,OAAmB,EAASA,EAASC,kBACnCD,EAASC,iBACXP,EAAMI,UACNJ,EAAM/G,QACN+G,EAAM9G,OACN4G,GAGED,EAAGG,EAAMI,UAAWJ,EAAM/G,QAAS+G,EAAM9G,OAAQ4G,IA3CzD,SAA6BE,EAAOQ,GAClC,MAAMC,EAAc,CAAC,UAAW,SAAU,aAC1CC,GACE,KACE,MAAMC,EAAa,CAAA,EAMnB,OALAtC,OAAOuC,KAAKZ,GAAOa,SAASC,IACrBL,EAAY9F,SAASmG,KACxBH,EAAWG,GAAOd,EAAMc,GACzB,IAEIH,CAAU,IAEnB,CAACI,EAAQC,KACP,MAAMC,EAAc,CAAA,EACpB5C,OAAOuC,KAAKG,GAAQF,SAASC,IACvBC,EAAOD,MAAUE,GAAU,CAAA,GAAIF,KACjCG,EAAYH,GAAOC,EAAOD,GAC3B,IAEHvH,KAAKqG,IAAIsB,MAAM,OAAiBnD,OAAOyC,EAAQxB,MAAMqB,KAAM,cAAyBY,GACpF5C,OAAOuC,KAAKK,GAAaJ,SAASC,SACP,IAArBG,EAAYH,KACdN,EAAQW,MAAML,GAAOG,EAAYH,GAClC,GACD,GAEJ,CAAElD,WAAW,GAEjB,EAiBEwD,CAAoBpB,EAAOrB,GAC3BA,EAAEwC,MAAQE,EAAS1C,EAAEwC,OACrBxC,EAAE2C,MAAQC,IACV,MAAMC,EAAMC,IAAsBC,MAOlC,OANA/C,EAAEuB,IAAIyB,OAAM,CAACC,EAAWC,KACtBL,EAAIM,MAAMF,EAAUG,MAAM,GAAIF,EAAM,IAEtCL,EAAIM,MAAM,mBAAoBnD,GAC9BA,EAAEqD,UACFC,GAAiB,IAAMtD,EAAEuD,cAClBvD,CACT,gBA7EA,SAAuBwD,GACrBA,EAAWb,MAAQC,GACrB,8CAkHA,SAAyBlG,EAAOD,GAC9B,MAAMgH,EAAeC,IACfC,EAAUD,GAAI,GACpB,IAAIE,EACJ,MAAMC,EAAS,KACRF,EAAQ9C,OACXjG,KAAKqG,IAAIsB,MAAM,cAEjB9F,IACAmH,EAAYE,OACZH,EAAQ9C,OAAQ,CAAK,EA2BvB,OAfAkD,EACEN,EACA,SACCO,IACML,EAAQ9C,QACX+C,EAAcK,EAAgBR,GAAc,KAC1CI,GAAQ,IAEVF,EAAQ9C,OAAQ,EAChBnE,IACD,GAEH,CAAEwH,SAAS,IAGN,CAAET,eAAcE,UAASE,SAAQM,MAzB1B,KACRP,GACFA,EAAYO,OACb,EAsB4CL,KApBlC,KACPF,GACFA,EAAYE,MACb,EAkBL,8BAlKA,SAA0BjB,EAAKW,GAC7B,MAAMY,EAAaZ,EAAWb,MACxB0B,EAAYzB,IAClBY,EAAWb,MAAShE,IAClByF,EAAWzF,GACX0F,GAAW,CAEf,YAiBA,WACE,OAAOC,EAAO,MAChB,0CAlDA,SAAuBnC,EAAKxD,EAAU4F,GACpC,MAAMlD,EAAQC,IACV5B,OAAO8E,UAAUC,eAAeC,KAAKrD,EAAOc,KAC9CwC,GACE,IAAMtD,EAAMc,KACZ,CAACC,EAAQC,KACP1D,EAASiG,EAAUxC,GAASwC,EAAUvC,GAAQ,GAEhDkC,GAEF5F,EAASiG,EAAUvD,EAAMc,SAAO,GAEpC,cAijBA,SAAqB0C,EAAWxK,EAAOyK,GAChCA,IACHA,EAAWC,EAAK,KAElBD,EAASjE,MAAQgE,EAAUhE,MAC3B,MAAMmE,EAAgB,IAAIC,EAAc5K,GAQxC,OAPA6K,EAAOL,GAAW,CAACzC,EAAQC,KACrBD,IAAWC,GACb2C,EAAcG,YAAW,KACvBL,EAASjE,MAAQuB,CAAM,GAE1B,IAEI0C,CACT,iBAnBA,WACE,MAAMzK,EAAQ+K,KACRC,MAAEA,GAAUhL,EAClB,OAAOgL,CACT,oBA2DA,SAA2BnE,GACzB,MAAMG,EAAQC,IACRH,EAAMmE,EAAQ,WAAO,GACpB,MAAPnE,GAAuBA,EAAII,IAAIC,KAAK,aAAcH,EAAMI,UAAUC,MAClE,MAAMC,EAAWN,EAAMM,SACvB,IAAI3B,EAEFA,GADc,MAAZ2B,OAAmB,EAASA,EAASC,kBACnCD,EAASC,iBACXP,EAAMI,UACNJ,EAAM/G,QACN+G,EAAM9G,OACN4G,GAGED,EAAGG,EAAMI,UAAWJ,EAAM/G,QAAS+G,EAAM9G,OAAQ4G,GAEvDoE,EAA4BlE,EAAOrB,GACnCwF,GAAqBnE,EAAOrB,GAC5ByF,EAAQ,MAAOzF,EAAEmB,KACjBnB,EAAEwC,MAAQkD,EAAU1F,EAAEwC,OACtBxC,EAAE2F,UAAYD,EAAU1F,EAAE2F,WACtBtE,EAAMuE,QACR5F,EAAE4F,MAAQvE,EAAMuE,OAElB5F,EAAE2C,MAAQC,IACV,MAAMC,EAAMgD,IAAsB9C,MAMlC,OALA/C,EAAEuB,IAAIyB,OAAM,CAACC,EAAWC,KACtBL,EAAIM,MAAMF,EAAUG,MAAM,GAAIF,EAAM,IAEtClD,EAAEqD,UACFyC,GAAiB,IAAM9F,EAAEuD,cAClBvD,CACT,IAr8CA,IAMkB+F,EAAIC,EANlBC,EAAWvG,OAAOwG,OAClBC,EAAYzG,OAAO0G,eACnBC,EAAmB3G,OAAO4G,yBAC1BC,EAAoB7G,OAAO8G,oBAC3BC,EAAe/G,OAAOgH,eACtBC,EAAejH,OAAO8E,UAAUC,eAsBhCmC,GArBcb,EAqBuB,CACvC,uFAAuFc,EAASC,GAE9F,SAASC,EAAWC,GAClB,GAAqB,iBAAVA,EACT,MAAM,IAAIC,UAAU,mCAAqCC,KAAKC,UAAUH,GAE3E,CACD,SAASI,EAAqBJ,EAAOK,GAMnC,IALA,IAIIC,EAJAC,EAAM,GACNC,EAAoB,EACpBC,GAAa,EACbC,EAAO,EAEFC,EAAI,EAAGA,GAAKX,EAAM9L,SAAUyM,EAAG,CACtC,GAAIA,EAAIX,EAAM9L,OACZoM,EAAON,EAAMY,WAAWD,OACrB,IAAa,KAATL,EACP,MAEAA,EAAO,EAAE,CACX,GAAa,KAATA,EAAa,CACf,GAAIG,IAAcE,EAAI,GAAc,IAATD,QACpB,GAAID,IAAcE,EAAI,GAAc,IAATD,EAAY,CAC5C,GAAIH,EAAIrM,OAAS,GAA2B,IAAtBsM,GAA8D,KAAnCD,EAAIK,WAAWL,EAAIrM,OAAS,IAAgD,KAAnCqM,EAAIK,WAAWL,EAAIrM,OAAS,GACpH,GAAIqM,EAAIrM,OAAS,EAAG,CAClB,IAAI2M,EAAiBN,EAAIO,YAAY,KACrC,GAAID,IAAmBN,EAAIrM,OAAS,EAAG,EACb,IAApB2M,GACFN,EAAM,GACNC,EAAoB,GAGpBA,GADAD,EAAMA,EAAInE,MAAM,EAAGyE,IACK3M,OAAS,EAAIqM,EAAIO,YAAY,KAEvDL,EAAYE,EACZD,EAAO,EACP,QACD,CACjB,MAAqB,GAAmB,IAAfH,EAAIrM,QAA+B,IAAfqM,EAAIrM,OAAc,CAC/CqM,EAAM,GACNC,EAAoB,EACpBC,EAAYE,EACZD,EAAO,EACP,QACD,CAECL,IACEE,EAAIrM,OAAS,EACfqM,GAAO,MAEPA,EAAM,KACRC,EAAoB,EAElC,MACgBD,EAAIrM,OAAS,EACfqM,GAAO,IAAMP,EAAM5D,MAAMqE,EAAY,EAAGE,GAExCJ,EAAMP,EAAM5D,MAAMqE,EAAY,EAAGE,GACnCH,EAAoBG,EAAIF,EAAY,EAEtCA,EAAYE,EACZD,EAAO,CACR,MAAmB,KAATJ,IAAyB,IAAVI,IACtBA,EAEFA,GAAQ,CAEX,CACD,OAAOH,CACR,CAYD,IAAIQ,EAAQ,CAEVC,QAAS,WAIP,IAHA,IAEIC,EAFAC,EAAe,GACfC,GAAmB,EAEdR,EAAIS,UAAUlN,OAAS,EAAGyM,IAAM,IAAMQ,EAAkBR,IAAK,CACpE,IAAIX,EACAW,GAAK,EACPX,EAAQoB,UAAUT,SAEN,IAARM,IACFA,EAAMI,QAAQJ,OAChBjB,EAAQiB,GAEVlB,EAAWC,GACU,IAAjBA,EAAM9L,SAGVgN,EAAelB,EAAQ,IAAMkB,EAC7BC,EAA2C,KAAxBnB,EAAMY,WAAW,GACrC,CAED,OADAM,EAAed,EAAqBc,GAAeC,GAC/CA,EACED,EAAahN,OAAS,EACjB,IAAMgN,EAEN,IACAA,EAAahN,OAAS,EACxBgN,EAEA,GAEV,EACDI,UAAW,SAAmBtB,GAE5B,GADAD,EAAWC,GACU,IAAjBA,EAAM9L,OACR,MAAO,IACT,IAAIqN,EAAqC,KAAxBvB,EAAMY,WAAW,GAC9BY,EAA2D,KAAvCxB,EAAMY,WAAWZ,EAAM9L,OAAS,GAMxD,OAJqB,KADrB8L,EAAQI,EAAqBJ,GAAQuB,IAC3BrN,QAAiBqN,IACzBvB,EAAQ,KACNA,EAAM9L,OAAS,GAAKsN,IACtBxB,GAAS,KACPuB,EACK,IAAMvB,EACRA,CACR,EACDuB,WAAY,SAAoBvB,GAE9B,OADAD,EAAWC,GACJA,EAAM9L,OAAS,GAA6B,KAAxB8L,EAAMY,WAAW,EAC7C,EACDa,KAAM,WACJ,GAAyB,IAArBL,UAAUlN,OACZ,MAAO,IAET,IADA,IAAIwN,EACKf,EAAI,EAAGA,EAAIS,UAAUlN,SAAUyM,EAAG,CACzC,IAAIgB,EAAMP,UAAUT,GACpBZ,EAAW4B,GACPA,EAAIzN,OAAS,SACA,IAAXwN,EACFA,EAASC,EAETD,GAAU,IAAMC,EAErB,CACD,YAAe,IAAXD,EACK,IACFX,EAAMO,UAAUI,EACxB,EACDE,SAAU,SAAkBC,EAAMC,GAGhC,GAFA/B,EAAW8B,GACX9B,EAAW+B,GACPD,IAASC,EACX,MAAO,GAGT,IAFAD,EAAOd,EAAMC,QAAQa,OACrBC,EAAKf,EAAMC,QAAQc,IAEjB,MAAO,GAET,IADA,IAAIC,EAAY,EACTA,EAAYF,EAAK3N,QACa,KAA/B2N,EAAKjB,WAAWmB,KADYA,GAOlC,IAHA,IAAIC,EAAUH,EAAK3N,OACf+N,EAAUD,EAAUD,EACpBG,EAAU,EACPA,EAAUJ,EAAG5N,QACa,KAA3B4N,EAAGlB,WAAWsB,KADUA,GAS9B,IALA,IACIC,EADQL,EAAG5N,OACKgO,EAChBhO,EAAS+N,EAAUE,EAAQF,EAAUE,EACrCC,GAAiB,EACjBzB,EAAI,EACDA,GAAKzM,IAAUyM,EAAG,CACvB,GAAIA,IAAMzM,EAAQ,CAChB,GAAIiO,EAAQjO,EAAQ,CAClB,GAAmC,KAA/B4N,EAAGlB,WAAWsB,EAAUvB,GAC1B,OAAOmB,EAAG1F,MAAM8F,EAAUvB,EAAI,GACzB,GAAU,IAANA,EACT,OAAOmB,EAAG1F,MAAM8F,EAAUvB,EAE1C,MAAuBsB,EAAU/N,IACoB,KAAnC2N,EAAKjB,WAAWmB,EAAYpB,GAC9ByB,EAAgBzB,EACD,IAANA,IACTyB,EAAgB,IAGpB,KACD,CACD,IAAIC,EAAWR,EAAKjB,WAAWmB,EAAYpB,GAE3C,GAAI0B,IADSP,EAAGlB,WAAWsB,EAAUvB,GAEnC,MACoB,KAAb0B,IACPD,EAAgBzB,EACnB,CACD,IAAI2B,EAAM,GACV,IAAK3B,EAAIoB,EAAYK,EAAgB,EAAGzB,GAAKqB,IAAWrB,EAClDA,IAAMqB,GAAkC,KAAvBH,EAAKjB,WAAWD,KAChB,IAAf2B,EAAIpO,OACNoO,GAAO,KAEPA,GAAO,OAGb,OAAIA,EAAIpO,OAAS,EACRoO,EAAMR,EAAG1F,MAAM8F,EAAUE,IAEhCF,GAAWE,EACoB,KAA3BN,EAAGlB,WAAWsB,MACdA,EACGJ,EAAG1F,MAAM8F,GAEnB,EACDK,UAAW,SAAmBvC,GAC5B,OAAOA,CACR,EACDwC,QAAS,SAAiBxC,GAExB,GADAD,EAAWC,GACU,IAAjBA,EAAM9L,OACR,MAAO,IAKT,IAJA,IAAIoM,EAAON,EAAMY,WAAW,GACxB6B,EAAmB,KAATnC,EACVoC,GAAO,EACPC,GAAe,EACVhC,EAAIX,EAAM9L,OAAS,EAAGyM,GAAK,IAAKA,EAEvC,GAAa,MADbL,EAAON,EAAMY,WAAWD,KAEtB,IAAKgC,EAAc,CACjBD,EAAM/B,EACN,KACD,OAEDgC,GAAe,EAGnB,OAAa,IAATD,EACKD,EAAU,IAAM,IACrBA,GAAmB,IAARC,EACN,KACF1C,EAAM5D,MAAM,EAAGsG,EACvB,EACDE,SAAU,SAAkB5C,EAAO6C,GACjC,QAAY,IAARA,GAAiC,iBAARA,EAC3B,MAAM,IAAI5C,UAAU,mCACtBF,EAAWC,GACX,IAGIW,EAHAmC,EAAQ,EACRJ,GAAO,EACPC,GAAe,EAEnB,QAAY,IAARE,GAAkBA,EAAI3O,OAAS,GAAK2O,EAAI3O,QAAU8L,EAAM9L,OAAQ,CAClE,GAAI2O,EAAI3O,SAAW8L,EAAM9L,QAAU2O,IAAQ7C,EACzC,MAAO,GACT,IAAI+C,EAASF,EAAI3O,OAAS,EACtB8O,GAAoB,EACxB,IAAKrC,EAAIX,EAAM9L,OAAS,EAAGyM,GAAK,IAAKA,EAAG,CACtC,IAAIL,EAAON,EAAMY,WAAWD,GAC5B,GAAa,KAATL,GACF,IAAKqC,EAAc,CACjBG,EAAQnC,EAAI,EACZ,KACD,OAEyB,IAAtBqC,IACFL,GAAe,EACfK,EAAmBrC,EAAI,GAErBoC,GAAU,IACRzC,IAASuC,EAAIjC,WAAWmC,IACR,KAAZA,IACJL,EAAM/B,IAGRoC,GAAU,EACVL,EAAMM,GAIb,CAKD,OAJIF,IAAUJ,EACZA,EAAMM,GACU,IAATN,IACPA,EAAM1C,EAAM9L,QACP8L,EAAM5D,MAAM0G,EAAOJ,EACpC,CACU,IAAK/B,EAAIX,EAAM9L,OAAS,EAAGyM,GAAK,IAAKA,EACnC,GAA4B,KAAxBX,EAAMY,WAAWD,IACnB,IAAKgC,EAAc,CACjBG,EAAQnC,EAAI,EACZ,KACD,OACiB,IAAT+B,IACTC,GAAe,EACfD,EAAM/B,EAAI,GAGd,OAAa,IAAT+B,EACK,GACF1C,EAAM5D,MAAM0G,EAAOJ,EAE7B,EACDO,QAAS,SAAiBjD,GACxBD,EAAWC,GAMX,IALA,IAAIkD,GAAY,EACZC,EAAY,EACZT,GAAO,EACPC,GAAe,EACfS,EAAc,EACTzC,EAAIX,EAAM9L,OAAS,EAAGyM,GAAK,IAAKA,EAAG,CAC1C,IAAIL,EAAON,EAAMY,WAAWD,GAC5B,GAAa,KAATL,GAOS,IAAToC,IACFC,GAAe,EACfD,EAAM/B,EAAI,GAEC,KAATL,GACgB,IAAd4C,EACFA,EAAWvC,EACY,IAAhByC,IACPA,EAAc,IACO,IAAdF,IACTE,GAAe,QAhBf,IAAKT,EAAc,CACjBQ,EAAYxC,EAAI,EAChB,KACD,CAeJ,CACD,OAAkB,IAAduC,IAA4B,IAATR,GACP,IAAhBU,GACgB,IAAhBA,GAAqBF,IAAaR,EAAM,GAAKQ,IAAaC,EAAY,EAC7D,GAEFnD,EAAM5D,MAAM8G,EAAUR,EAC9B,EACDW,OAAQ,SAAgBC,GACtB,GAAmB,OAAfA,GAA6C,iBAAfA,EAChC,MAAM,IAAIrD,UAAU,0EAA4EqD,GAElG,OArRJ,SAAiBC,EAAKD,GACpB,IAAIE,EAAMF,EAAWE,KAAOF,EAAWG,KACnCC,EAAOJ,EAAWI,OAASJ,EAAW5I,MAAQ,KAAO4I,EAAWT,KAAO,IAC3E,OAAKW,EAGDA,IAAQF,EAAWG,KACdD,EAAME,EAERF,EAAMD,EAAMG,EALVA,CAMV,CA2QUC,CAAQ,IAAKL,EACrB,EACDM,MAAO,SAAe5D,GACpBD,EAAWC,GACX,IAAI6D,EAAM,CAAEJ,KAAM,GAAID,IAAK,GAAIE,KAAM,GAAIb,IAAK,GAAInI,KAAM,IACxD,GAAqB,IAAjBsF,EAAM9L,OACR,OAAO2P,EACT,IAEIf,EAFAxC,EAAON,EAAMY,WAAW,GACxBW,EAAsB,KAATjB,EAEbiB,GACFsC,EAAIJ,KAAO,IACXX,EAAQ,GAERA,EAAQ,EAQV,IANA,IAAII,GAAY,EACZC,EAAY,EACZT,GAAO,EACPC,GAAe,EACfhC,EAAIX,EAAM9L,OAAS,EACnBkP,EAAc,EACXzC,GAAKmC,IAASnC,EAEnB,GAAa,MADbL,EAAON,EAAMY,WAAWD,KAQX,IAAT+B,IACFC,GAAe,EACfD,EAAM/B,EAAI,GAEC,KAATL,GACgB,IAAd4C,EACFA,EAAWvC,EACY,IAAhByC,IACPA,EAAc,IACO,IAAdF,IACTE,GAAe,QAhBf,IAAKT,EAAc,CACjBQ,EAAYxC,EAAI,EAChB,KACD,CAuCL,OAvBkB,IAAduC,IAA4B,IAATR,GACP,IAAhBU,GACgB,IAAhBA,GAAqBF,IAAaR,EAAM,GAAKQ,IAAaC,EAAY,GACvD,IAATT,IAEAmB,EAAIH,KAAOG,EAAInJ,KADC,IAAdyI,GAAmB5B,EACCvB,EAAM5D,MAAM,EAAGsG,GAEf1C,EAAM5D,MAAM+G,EAAWT,KAG/B,IAAdS,GAAmB5B,GACrBsC,EAAInJ,KAAOsF,EAAM5D,MAAM,EAAG8G,GAC1BW,EAAIH,KAAO1D,EAAM5D,MAAM,EAAGsG,KAE1BmB,EAAInJ,KAAOsF,EAAM5D,MAAM+G,EAAWD,GAClCW,EAAIH,KAAO1D,EAAM5D,MAAM+G,EAAWT,IAEpCmB,EAAIhB,IAAM7C,EAAM5D,MAAM8G,EAAUR,IAE9BS,EAAY,EACdU,EAAIL,IAAMxD,EAAM5D,MAAM,EAAG+G,EAAY,GAC9B5B,IACPsC,EAAIL,IAAM,KACLK,CACR,EACDN,IAAK,IACLO,UAAW,IACXC,MAAO,KACPhD,MAAO,MAETA,EAAMA,MAAQA,EACdjB,EAAOD,QAAUkB,CAClB,GA7b2B,WAC5B,OAAO/B,IAAO,EAAID,EAAGQ,EAAkBR,GAAI,MAAMC,EAAM,CAAEa,QAAS,CAAA,IAAMA,QAASb,GAAMA,EAAIa,OAC7F,GA+bImE,EAtbU,EAAChF,EAAKiF,EAAYC,KAAYA,EAAgB,MAAPlF,EAAcC,EAASQ,EAAaT,IAAQ,CAAE,EARjF,EAAC8C,EAAID,EAAMsC,EAAQC,KACnC,GAAIvC,GAAwB,iBAATA,GAAqC,mBAATA,EAC7C,IAAK,IAAI1G,KAAOoE,EAAkBsC,GAC3BlC,EAAajC,KAAKoE,EAAI3G,IAAQA,IAAQgJ,GACzChF,EAAU2C,EAAI3G,EAAK,CAAEkJ,IAAK,IAAMxC,EAAK1G,GAAMmJ,aAAcF,EAAO/E,EAAiBwC,EAAM1G,KAASiJ,EAAKE,aAE3G,OAAOxC,CAAE,EAE0FyC,EAKnGN,GAAejF,GAAQA,EAAIwF,WAA8EN,EAAjE/E,EAAU+E,EAAQ,UAAW,CAAErK,MAAOmF,EAAKsF,YAAY,IAC/FtF,IAgb2ByF,CAAQ7E,IAA2B,qBAK5C,MAClB,WAAA8E,GAQEC,KAAKC,OAAS,uBASdD,KAAKE,MAAwB,IAAIC,IAQjCH,KAAKI,YAA8B,IAAID,IASvCH,KAAKK,YAA8B,IAAIF,IASvCH,KAAKM,YAAc,GASnBN,KAAKO,kBAAoC,IAAIJ,GAC9C,CAQD,wBAAAK,CAAyBC,GACvBT,KAAKO,kBAAkBG,IAAID,EAAO1K,KAAM0K,EACzC,CAQD,QAAAE,CAASC,GACPZ,KAAKM,YAAY/J,SAASkK,IACxBG,EAAIC,IAAIJ,EAAO,GAElB,CASD,0BAAMK,CAAqB/K,GACzB,GAAIiK,KAAKO,kBAAkBQ,IAAIhL,GAAO,CACpC,MAAM0K,EAAST,KAAKO,kBAAkBb,IAAI3J,GACtC0K,SACIT,KAAKgB,cAAcP,EAAO1K,KAAM0K,EAAOhQ,KAEhD,CACF,CASD,aAAAwQ,CAActF,GACZqE,KAAKM,YAAYxQ,KAAK6L,GACtBuF,OAAOC,aAAa5K,SAAS6K,IAC3BA,EAAKP,IAAIlF,EAAK,GAEjB,CASD,YAAA0F,CAAatL,EAAMR,GACjByK,KAAKI,YAAYM,IAAI3K,EAAMR,EAC5B,CASD,gBAAM+L,CAAWb,GACf,IAA6B,IAAzBA,EAAOc,cAAwB,CACjC,MAAMC,EAAYf,EAClB,GAAIe,EACF,UACQxB,KAAKgB,cACTQ,EAAUC,aACVD,EAAUE,aAEb,CAAC,MAAOrM,GACP,MAAM,IAAIsM,EAAkBH,EAAW,SACxC,CAEJ,CACD,OAAO,CACR,CASD,mBAAMR,CAAcY,EAAcC,GAChC,GAAI7B,KAAKK,YAAYU,IAAIa,GACvB,OAAO,EAET,IAAIE,EAAa,KACjB,MAAMvM,EAAKyK,KAAKI,YAAYV,IAAIkC,GAChC,GAAIrM,EACFuM,QAAmBvM,QACd,CACL,MAAMwM,EAAaF,EACbG,EAAYhC,KAAKC,OAAOgC,KAAKF,GAAc,GAAGtO,OAAOsO,EAAY,iBAAmB,GAAGtO,OAAOxE,KAAKC,IAAIgT,cAAe,KAAKzO,QAAO,EAAI4L,EAAuBvC,MAAMiF,EAAY,iBAC/KnG,QAAY3M,KAAKkT,IAAIC,MAAM,CAC/BC,OAAQ,MACRC,QAAS,CAAE,8BAA+B,KAC1CC,IAAKP,IAEP,GAAmB,MAAfpG,EAAI4G,OACN,MAAM,IAAIC,MAAM,UAElBX,EAAalG,EAAI8G,IAClB,CACD,MAAMC,EAAe,IAAIC,EACvBhB,EACAC,EACAC,GAEF,GAAIa,EACF,IAGE,aAFM3C,KAAK6C,WAAWF,GACtB3C,KAAKK,YAAYK,IAAIkB,EAAce,IAC5B,CACR,CAAC,MAAOtN,GACPpG,KAAKqG,IAAID,MAAMA,EAChB,CAEH,OAAO,CACR,CAUD,gBAAMwN,CAAWF,GACf,MAAMZ,EAAaY,EAAaG,MAC1B/M,KAAEA,EAAIgN,QAAEA,EAAOC,OAAEA,EAAM7H,OAAEA,EAAM8H,OAAEA,GAAWN,EAAaO,OAC/D,IAAIC,EAAY,GAQhB,GANEA,EADEnD,KAAKI,YAAYW,IAAIhL,IACX,EAAIsJ,EAAuBvC,MAAM,GAAGrJ,OAAOsC,EAAM,KAAKtC,OAAOsP,GAAU5H,GAC1ElM,KAAKC,IAAIkU,IACNpD,KAAKC,OAAOgC,KAAKF,GAAc,GAAGtO,OAAOsO,EAAY,KAAKtO,QAAO,EAAI4L,EAAuBvC,MAAM3B,IAAW,GAAG1H,OAAOxE,KAAKC,IAAIgT,cAAe,KAAKzO,OAAOsO,EAAY,KAAKtO,QAAO,EAAI4L,EAAuBvC,MAAM3B,KAEpN,EAAIkE,EAAuBvC,MAAMiF,EAAYiB,GAEvDG,EAAW,CACb,GAAInD,KAAKE,MAAMa,IAAIoC,GACjB,OAEF,IAAIT,EAAO,KACX,MAAMH,EAAMvC,KAAKqD,SAASF,GACpBG,GAA+B,iBAAXL,EAAsB,CAACA,GAAUA,GAAQM,KAChEC,GAAaxD,KAAKqD,SAAShE,EAAuBoE,QAAQ3G,KAAKiF,EAAYyB,MAE9E,GAAIxD,KAAKI,YAAYW,IAAIhL,GAAO,CAC9B,MAAMR,EAAKyK,KAAKI,YAAYV,IAAI3J,GAC1B2N,QAAqBnO,IAC3ByK,KAAKiB,cAAcyC,EAAaD,SAChCzD,KAAKE,MAAMQ,IAAIyC,GAAW,EAClC,MAAiBlU,KAAKC,IAAIkU,IAClBV,QAAavH,EAAOwI,OAClBR,IAIFS,OAAOC,aAAa,CAClBC,QAAS,CACP/N,CAACA,GAAOwM,GAEVU,OAAQ,CACNlN,CAACA,GAAOuN,KAIZZ,QAAakB,OAAOD,OAAO5N,IAE7B,IAAI2M,EAUF,MAAM,IAAIqB,EACR,6BAVF,IAAIrB,EAAKe,QAGP,MAAM,IAAIM,EACR,kCAHF/D,KAAKiB,cAAcyB,EAAKe,SAM1BzD,KAAKE,MAAMQ,IAAIyC,GAAW,EAM7B,CACF,CAUD,QAAAE,CAASW,GACP,GAAIhE,KAAKC,OAAOgC,KAAK+B,GACnB,OAAOA,EAET,IAAIzB,EAAM,GAGNA,EAFAvC,KAAKC,OAAOgC,KAAKhT,KAAKC,IAAIgT,eACxB8B,EAAOpU,WAAW,KACdX,KAAKC,IAAIgT,cAAgB8B,EAEzB,GAAGvQ,OAAOxE,KAAKC,IAAIgT,cAAe,KAAKzO,OAAOuQ,GAGhD,GAAGvQ,QAAO,EAAI4L,EAAuBvC,MAAM7N,KAAKC,IAAIgT,cAAe8B,IAE3E,MAAMC,OAAEA,EAAMC,SAAEA,GAAahD,OAAOiD,SAKpC,OAJID,EAASE,SAAS,MAAQ7B,EAAI3S,WAAW,OAC3C2S,EAAMA,EAAI8B,UAAU,IAEtB9B,EAAM,GAAG9O,OAAOwQ,GAAQxQ,OAAOyQ,GAAUzQ,OAAO8O,GACzCA,CACR,IAUH,SAASjK,EAAgBgM,EAAOC,EAAS3L,EAAU,CAAA,GACjD,IAAIT,EAAOqM,EACPhM,EAAQgM,EACRC,EAAUD,EACd,MAAME,EAAU,KACdvM,IACAA,EAAOqM,EACPhM,EAAQgM,EACRC,EAAUD,CAAI,EA2BhB,OAzBAG,EACEL,GACA,CAAC7N,EAAQC,KACP,GAAID,IAAWC,EACb,GAAIkO,EAAMnO,GACRiO,QACK,CACL,MAAMG,EAASC,GACF,MAAVrO,OAAiB,EAASA,EAAOsO,MAAQtO,EAC1C8N,EACA3L,GAEFT,EAAO0M,EAAO1M,KACdK,EAAQqM,EAAOrM,MACfiM,EAAUI,EAAOJ,OAClB,CACF,GAEH,CAAEnR,WAAW,IAEf0R,GAAgB,KACV7M,IAASqM,GACXE,GACD,IAEI,CACLvM,KAAM,IAAMA,IACZK,MAAO,IAAMA,IACbiM,QAAS,IAAMA,IAEnB,CAcA,SAAS9O,IAEP,OADYsP,IAAqB7N,MACtB8N,MACb,CACA,SAASjM,EAAUkM,GACjB,OAAOC,EAAWD,GAAOE,EAAMF,GAAOA,CACxC,CAcA,SAASlO,IACP,MAAMC,EAAM+N,IAAqB7N,MACjC,OAAQpE,IACNkE,EAAIoO,eACAtS,GAAYuS,EAAOvS,IACrBkE,EAAIsO,WAAU,KACZxS,GAAU,GAEb,CAEL,CAYG,IAACD,EAAUmI,EAAA,aAAGuK,EAAmB,eAUpC,SAAShQ,IACP,OAAOkD,EAAO,MAChB,CAoEA,SAASP,EAAiBkM,EAAOhN,EAAWoO,EAAU9M,EAAU,CAAA,GAC9D,IAAI+M,EAAUC,EAyBd,OAxBAC,EACEvB,GACA,CAAC7N,EAAQC,KACHD,IAAWC,IACToP,EAAOrP,IACTkP,IACAA,EAAUC,GAEVD,EAAUI,GACG,MAAVtP,OAAiB,EAASA,EAAOsO,MAAQtO,EAC1Ca,EACAoO,EACA9M,GAGL,GAEH,CAAEtF,WAAW,IAEf0S,GAAiB,KACXL,IAAYC,GACdD,GACD,IAEI,KACLA,GAAS,CAEb,CA8CA,SAASpR,EAAa0R,GACpB,OAAO,IAAIC,EAAUD,EAAOhX,KAAKC,IAAIiX,UACvC,CAiBA,SAASlW,EAAmBtB,GAC1B,MAAMyX,EAAazX,EAAQ0X,gBACrBlQ,EAAc,CAAC,eAAgB,YAMrC,OALApC,OAAOuC,KAAK8P,GAAY7P,SAASC,IAC3BL,EAAY9F,SAASmG,WAChB4P,EAAW5P,EACnB,IAEI4P,CACT,CACG,IAAChW,EAAmB8K,EAAA,mBAAA,CACrBoL,EAASC,aACTD,EAASE,iBACTF,EAASG,aACTH,EAASI,iBACTJ,EAASK,aACTL,EAASM,qBACTN,EAASO,iBACTP,EAASQ,qBACTR,EAASS,cACTT,EAASU,kBACTV,EAASW,iBAEXzY,eAAe0B,EAAiBrB,EAAWF,EAASwB,GAClD,GAAKA,EAEE,CACL,MAAM+W,QAAejY,KAAKyE,IAAIyT,iBAAiBhX,GAC/C,IAAIiX,EAAQC,EAAgB1Y,EAASuY,GAIrC,GAHKE,IACHA,EAAQ,CAAE3W,KAAM,GAAI6F,KAAM,CAAC4Q,EAAOnX,SAASC,iBAEzCoX,EAAO,CACT,MAAME,EAAiBzY,EAAUO,UAAU,GAAGT,QACxC4Y,EAAa,CAAA,EACnBH,EAAM9Q,KAAKC,SAASC,IACd7H,GAAWoF,OAAO8E,UAAUC,eAAeC,KAAKpK,EAAS6H,KAC3D+Q,EAAW/Q,GAAO7H,EAAQ6H,GACtB8Q,UACKA,EAAe9Q,GAEzB,IAEH3H,EAAUO,UAAU,GAAGT,QAAU4Y,CAClC,CACF,MApBC1Y,EAAUO,UAAU,GAAGT,aAAU,CAqBrC,CA8EA,SAASG,EAAgBJ,GACvB,MAAMK,EAAQL,EAAM8Y,QAAQjY,OACtBH,EAAY,GAClB,IAAK,IAAI8E,EAAQ,EAAGA,GAASnF,EAAOmF,IAAS,CAC3C,MAAM7E,EAAWX,EAAM+B,KAAKgX,MAAM,KAAa,EAARvT,GACjCwT,EAAYhZ,EAAME,OAAO,SAAS6E,OAAOS,IAC/C,IAAItF,EACAD,EACAe,EAIFd,EAHG8Y,GAAaA,IAAczY,KAAKC,IAAIyY,iBAG9BC,EAAG3I,MAAMyI,EAAW,CAC3BG,oBAAoB,EACpB1I,UAAW,WAJJ,EAOPvQ,IACY,IAAVsF,GACFvF,EAAUC,EACVA,OAAS,IAELA,EAAOkZ,YACTnZ,EAAU4M,KAAK0D,MAAM8I,mBAAmBnZ,EAAOkZ,mBACxClZ,EAAOkZ,WAEZlZ,EAAOc,SACTA,EAASd,EAAOc,cACTd,EAAOc,UAIpBN,EAAUU,KAAK,CAAET,WAAUV,UAASC,SAAQc,UAC7C,CACD,IAAIuE,EAOJ,OANIvF,EAAME,OAAOqF,YAAcvF,EAAME,OAAOqF,aAAehF,KAAKC,IAAIyY,mBAClE1T,EAAa2T,EAAG3I,MAAMvQ,EAAME,OAAOqF,WAAY,CAC7C4T,oBAAoB,EACpB1I,UAAW,OAGR,CAAElL,aAAY7E,YACvB,CACA,SAASsB,EAAiB7B,GACxB,IAAImZ,EAAU,GAuCd,OAtCInZ,EAAUoF,WACZ+T,GAAW,IAAIvU,OAAOmU,EAAGpM,UAAU3M,EAAUoF,WAAY,CACvDkL,UAAW,IACX0I,oBAAoB,KAGtBG,GAAW,IAAIvU,OAAOxE,KAAKC,IAAIyY,kBAEjC9Y,EAAUO,UAAUmH,SAAQ,CAACpC,EAAUD,KACrC8T,GAAW,IAAIvU,OAAOU,EAAS9E,SAAU,KACzC,IAAI4Y,EAAc,CAAA,EAClB,GAAc,IAAV/T,EACEE,EAAYD,EAASxF,WACvBsZ,EAAc9T,EAASxF,aAEpB,CAEL,GADAsZ,EAAc7T,EAAYD,EAASvF,QAAUuF,EAASvF,OAAS,GAC3DwF,EAAYD,EAASxF,SAAU,CACjC,MAAMuZ,EAAS3M,KAAKC,UAAUrH,EAASxF,SACxB,OAAXuZ,IACFD,EAAYH,UAAYK,mBAAmBD,GAE9C,CACG/T,EAASzE,SACXuY,EAAYvY,OAASyE,EAASzE,OAEjC,CACD,MAAMgY,EAAYE,EAAGpM,UAAUyM,EAAa,CAC1C9I,UAAW,IACX0I,oBAAoB,EACpBO,WAAW,IAEThU,EAAYsT,GACdM,GAAWN,EAEXM,GAAW/Y,KAAKC,IAAIyY,gBACrB,IAEIK,CACT,CACA,SAAS3U,EAAmB3E,EAAOK,EAAOsZ,GAAW,GACnD,GAAI3Z,EAAM8Y,QAAQjY,OAASR,EACzB,MAAO,GAET,GAAIL,EAAMqH,KACR,OAAOrH,EAAM+B,KAEf,MAAM5B,EAAYC,EAAgBJ,GAClC,OAAIG,EAAUO,UAAUG,OAASR,EACxBL,EAAM+B,MAEX5B,EAAUO,UAAUG,OAASR,IAC/BF,EAAUO,UAAYP,EAAUO,UAAUqI,MAAM,EAAG1I,IAEjDsZ,UACKxZ,EAAUO,UAAUL,EAAQ,GAAGW,OAEjCgB,EAAiB7B,GAC1B,CAkBI,IAAAyK,oBAAgB,MAClB,WAAAyG,CAAYrR,EAAO4Z,GAMjBtI,KAAKuI,UAAY,GAQjBvI,KAAKwI,OAAS,GAQdxI,KAAKsI,KAAO,IACRA,IACFtI,KAAKsI,KAAOA,GAEdG,GACE,IAAM/Z,EAAM+B,OACZ,CAACgG,EAAQC,KACP,GAAID,IAAWC,EAAQ,CACrB,GAAIsJ,KAAKuI,UAAUhZ,OACjB,IAAK,IAAI2E,EAAQ,EAAGA,EAAQ8L,KAAKuI,UAAUhZ,OAAQ2E,IAAS,EAE1DqB,EADWyK,KAAKuI,UAAUrU,KAE3B,CAGH,GADA8L,KAAKuI,UAAY,GACbvI,KAAKwI,OAAOjZ,OACd,IAAK,IAAI2E,EAAQ,EAAGA,EAAQ8L,KAAKwI,OAAOjZ,OAAQ2E,IAAS,CACvD,MAAMwU,EAAQ1I,KAAKwI,OAAOtU,GAC1ByU,aAAaD,EACd,CAEH1I,KAAKwI,OAAS,EACf,IAGN,CAOD,UAAAhP,CAAWxG,GACLA,IACFgN,KAAKwI,OAAO1Y,KACV8Y,YAAW,KACT5V,IACA,MAAMkB,EAAQ8L,KAAKuI,UAAUM,WAAWC,GAASA,IAAS9V,IAC1DgN,KAAKuI,UAAUjZ,OAAO4E,EAAO,EAAE,GAC9B8L,KAAKsI,OAEVtI,KAAKuI,UAAUzY,KAAKkD,GAEvB,IAIekI,EAAA,eAAA,CAAC6N,EAAMC,KACvBD,EAAKC,QAAWpI,IACdoI,EAAQpI,EAAI,EAEPmI,KAuET,SAASnP,EAA4BlE,EAAOuT,GAC1CC,GACE,KAAO,CAAEva,QAAS+G,EAAM/G,QAASC,OAAQ8G,EAAM9G,WAC9C6H,IACCwS,EAAKta,QAAQwa,MAAM,CAAE,EAAE1S,EAAO9H,SAC9Bya,EAASH,EAAKra,QACdmF,OAAOC,OAAOiV,EAAKra,OAAQ6H,EAAO7H,QAClCqa,EAAKI,sBACLpa,KAAKqG,IAAIsB,MAAM,GAAGnD,OAAOwV,EAAKvU,MAAM4U,GAAI,gBAA6E7S,EAAO,GAGlI,CACA,SAASoD,GAAqBnE,EAAOuT,GACnCC,GACE,IACSxT,EAAMmB,MAAQ,IAAKnB,EAAMmB,OAAU,KAE5C,CAACJ,EAAQC,KACP,MAAMC,EAAc,CAAA,EACpB5C,OAAOuC,KAAKG,GAAQF,SAASC,IACvBC,EAAOD,MAAUE,GAAU,CAAA,GAAIF,KACjCG,EAAYH,GAAOC,EAAOD,GAC3B,IAEHvH,KAAKqG,IAAIsB,MAAM,OAAiBnD,OAAOwV,EAAKvU,MAAMqB,KAAM,cAAyBY,GACjF5C,OAAOuC,KAAKK,GAAaJ,SAASC,IAChCyS,EAAKpS,MAAML,GAAOG,EAAYH,EAAI,GAClC,GAEJ,CAAElD,WAAW,GAEjB,CAoCI,IAAAiW,oBAAe,MACjB,WAAAxJ,CAAYyJ,EAAMC,EAAUC,GAC1B1J,KAAK2J,UAAW,EACZF,IACFzJ,KAAKyD,QAAUgG,GAEbC,IACF1J,KAAK0J,UAAYA,GAEnB1J,KAAKwJ,KAAOA,CACb,IAIH,SAASI,KACP,MAAO,CACL1U,MAAO2U,OACPhS,WAAY,IAAI0R,GAAaxV,QAC7B2O,KAAM,IAAI6G,GAAaxV,QACvB+V,SAAU,CACRN,KAAMO,SAERC,SAAU,CACRR,KAAMO,QACNtG,SAAS,GAEXwG,UAAW,CACTT,KAAMO,QACNtG,SAAS,GAGf,CAmBA,SAASxS,KACP,MAAO,CACLiZ,SAAU,CACRV,KAAMO,SAGZ,CAGA,SAAS/X,KACP,MAAO,IAAK4X,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAIA,SAASpY,KACP,MAAO,IAAK6X,KAAkB1U,MAAOiV,OACvC,CAIA,SAASrY,KACP,MAAO,IAAK8X,KAAkB1U,MAAO2U,OACvC,CAMA,SAASrX,KACP,MAAO,IAAKoX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAASxY,KACP,MAAO,IAAKiY,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS/Y,KACP,MAAO,IAAKwY,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS9Y,KACP,MAAO,IAAKuY,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS3Y,KACP,MAAO,IAAKoY,KAAkB1U,MAAO,CAAC2U,OAAQhX,MAAOkB,OAAQoW,QAC/D,CAMA,SAAS1Y,KACP,MAAO,IAAKmY,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAASzY,KACP,MAAO,IAAKkY,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAASlY,KACP,MAAO,IAAK2X,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAShY,KACP,MAAO,IAAKyX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS/X,KACP,MAAO,IAAKwX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS9X,KACP,MAAO,IAAKuX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS7X,KACP,MAAO,IAAKsX,KAAkB1U,MAAO,CAAC2U,OAAQM,OAAQtX,OACxD,CAMA,SAASN,KACP,MAAO,IAAKqX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS1X,KACP,MAAO,IAAKmX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAASzX,KACP,MAAO,IAAKkX,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAASxX,KACP,MAAO,IAAKiX,KAAkB1U,MAAO2U,OACvC,CAMA,SAAS3Y,KACP,MAAO,IAAK0Y,KAAkB1U,MAAO,CAAC2U,OAAQM,QAChD,CAMA,SAAS7Y,KACP,MAAO,IACFsY,KACH1U,MAAO2U,OACPO,SAAU,CACRZ,KAAMK,QAERQ,MAAO,CACLb,KAAMK,QAGZ,CAMA,SAAShY,KACP,MAAO,IAAK+X,KAAkB1U,MAAO2U,OACvC,CAMA,SAAS3X,KACP,MAAO,IACF0X,KACHlH,KAAM,CAAE8G,KAAMzV,OAAQ4V,UAAU,GAChC9R,WAAY,CAAE2R,KAAMzV,OAAQ4V,UAAU,GACtCG,SAAU,CACRN,KAAMO,QACNJ,UAAU,GAGhB,CAMA,SAAS3Y,KACP,MAAO,IAAK4Y,KAAkB1U,MAAO,CAACrC,MAAOA,OAC/C,CAMA,SAAS1B,KACP,MAAO,IAAKyY,KAAkB1U,MAAO2U,OACvC,CAMA,SAAStY,KACP,MAAO,IAAKqY,KAAkB1U,MAAO2U,OACvC"}
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
@@ -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;IAuDzE;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAqB3C"}
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
- // window.vueInstances.forEach(inst => {
116
- // inst.use(code);
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 = `${pluginPath}${pluginPath.endsWith('/') ? '' : '/'}${join(system)}`;
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.2",
3
+ "version": "0.2.4",
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.2",
34
- "@ibiz-template/runtime": "^0.2.2",
33
+ "@ibiz-template/core": "^0.2.4",
34
+ "@ibiz-template/runtime": "^0.2.4",
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": "f1e3a6cd35a5fde6fd915fed6b7461ccbcb483f5"
57
+ "gitHead": "6aac74058a5bb708860cb9d40afe5640e53662e4"
58
58
  }
package/src/index.ts CHANGED
@@ -1,5 +1,13 @@
1
+ import { App } from 'vue';
2
+
1
3
  export * from './interface';
2
4
  export * from './plugin';
3
5
  export * from './use';
4
6
  export * from './util';
5
7
  export * from './props';
8
+
9
+ declare global {
10
+ interface Window {
11
+ vueInstances: Map<App, App>;
12
+ }
13
+ }
@@ -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
- // window.vueInstances.forEach(inst => {
131
- // inst.use(code);
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 = `${pluginPath}${pluginPath.endsWith('/') ? '' : '/'}${join(
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) {