@ibiz-template/vue3-util 0.1.32 → 0.1.34
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 +19 -0
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/util/index.d.ts +1 -0
- package/out/util/index.d.ts.map +1 -1
- package/out/util/index.js +1 -0
- package/out/util/render/render.d.ts +13 -0
- package/out/util/render/render.d.ts.map +1 -0
- package/out/util/render/render.js +28 -0
- package/package.json +6 -6
- package/src/util/index.ts +1 -0
- package/src/util/render/render.ts +28 -0
package/dist/index.esm.js
CHANGED
|
@@ -1353,6 +1353,24 @@ function prepareControl(c) {
|
|
|
1353
1353
|
return { controlClass, ns };
|
|
1354
1354
|
}
|
|
1355
1355
|
|
|
1356
|
+
// src/util/render/render.ts
|
|
1357
|
+
import { isNil as isNil3 } from "ramda";
|
|
1358
|
+
function renderString(value) {
|
|
1359
|
+
if (isNil3(value)) {
|
|
1360
|
+
return "";
|
|
1361
|
+
}
|
|
1362
|
+
if (typeof value === "string") {
|
|
1363
|
+
return value;
|
|
1364
|
+
}
|
|
1365
|
+
try {
|
|
1366
|
+
const str = value.toString();
|
|
1367
|
+
return str;
|
|
1368
|
+
} catch (error) {
|
|
1369
|
+
ibiz.log.error(value, "\u8F6C\u6362\u6210\u5B57\u7B26\u4E32\u5931\u8D25", error);
|
|
1370
|
+
}
|
|
1371
|
+
return "";
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1356
1374
|
// src/use/route/route.ts
|
|
1357
1375
|
function useRouterQuery() {
|
|
1358
1376
|
const route = useRoute2();
|
|
@@ -1801,6 +1819,7 @@ export {
|
|
|
1801
1819
|
onRouteChange,
|
|
1802
1820
|
parseRouteViewData,
|
|
1803
1821
|
prepareControl,
|
|
1822
|
+
renderString,
|
|
1804
1823
|
route2routePath,
|
|
1805
1824
|
routePath2string,
|
|
1806
1825
|
useClickOutside,
|
package/dist/index.system.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["@ibiz-template/core","@ibiz-template/runtime","ramda","vue","qx-util","vue-router","qs"],(function(e,t){"use strict";var n,r,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){n=e.RuntimeModelError,r=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,n,r){const o=J(t);let i=2;n.toRouteDepth?(i=n.toRouteDepth,delete n.toRouteDepth):ibiz.env.isMob&&(o.pathNodes[0]={viewName:"home"});if(o.pathNodes.splice(i-1,o.pathNodes.length-i+1),n.currentSrfNav){const e=o.pathNodes[o.pathNodes.length-1];e.params=e.params||{},e.srfnav=n.currentSrfNav,delete n.currentSrfNav}t.fullPath.startsWith("/appredirectview")&&((null==r?void 0:r.srfindexname)?(o.pathNodes[0].viewName=r.srfindexname,delete r.srfindexname):o.pathNodes[0].viewName="index");if(o.pathNodes.push({viewName:e.codeName.toLowerCase(),context:H(n),params:r}),2===i&&(await X(o,n,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:ke,getCheckboxListProps:ue,getCheckboxProps:le,getCodeProps:Ne,getColorPickerProps:Se,getDataPickerProps:pe,getDatePickerProps:de,getDateRangeProps:fe,getDropdownProps:ce,getEditorEmits:function(){return{change:(e,t)=>!0,blur:()=>!0,focus:()=>!0}},getEditorProps:ne,getGridArrayProps:function(){return{...Re(),...re()}},getGridAutoCompleteProps:function(){return{...xe(),...re()}},getGridCascaderProps:function(){return{...ke(),...re()}},getGridCheckboxListProps:function(){return{...ue(),...re()}},getGridCheckboxProps:function(){return{...le(),...re()}},getGridCodeProps:function(){return{...Ne(),...re()}},getGridColorPickerProps:function(){return{...Se(),...re()}},getGridDataPickerProps:function(){return{...pe(),...re()}},getGridDatePickerProps:function(){return{...de(),...re()}},getGridDateRangeProps:function(){return{...fe(),...re()}},getGridDropdownProps:function(){return{...ce(),...re()}},getGridEditorCommonProps:re,getGridEditorEmits:function(){return{change:(e,t)=>!0,rowSave:()=>!0}},getGridHtmlProps:function(){return{...Ee(),...re()}},getGridInputIpProps:function(){return{...ae(),...re()}},getGridInputNumberProps:function(){return{...ie(),...re()}},getGridInputProps:function(){return{...oe(),...re()}},getGridListBoxProps:function(){return{...he(),...re()}},getGridMarkDownProps:function(){return{...Ae(),...re()}},getGridNumberRangeProps:function(){return{...ge(),...re()}},getGridRadioProps:function(){return{...me(),...re()}},getGridRateProps:function(){return{...ve(),...re()}},getGridRawProps:function(){return{...be(),...re()}},getGridSliderProps:function(){return{...Pe(),...re()}},getGridSpanProps:function(){return{...se(),...re()}},getGridStepperProps:function(){return{...ye(),...re()}},getGridSwitchProps:function(){return{...we(),...re()}},getGridUploadProps:function(){return{...Ce(),...re()}},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 n=A();if(!n)throw new r("无法正确获取route,可能是依赖问题");h((()=>null==n?void 0:n.path),(()=>{const r=Q(n,t);e({currentKey:r,fullPath:n.fullPath})}),{immediate:!0})},parseRouteViewData:async function(e,t){var n;const o=J(e);let i=o.pathNodes[t-1].viewName;if(!i)throw new r("第".concat(t,"级路由不存在视图标识"));"index"===i&&(i=ibiz.hub.defaultAppIndexViewName);const a=await ibiz.hub.getAppView(i);if(!a)throw new r("找不到视图".concat(i));const s={};(null==(n=ibiz.appData)?void 0:n.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:n,sysCss:r,codeName:o}=e.model,i=n.toLowerCase(),a=null==r?void 0:r.cssName,s=q("control-".concat(i)),c=[t.b(),t.b(i),t.m(o)];a&&c.push(a);return{controlClass:c,ns:s}},route2routePath:J,routePath2string:K,useClickOutside:B,useControlController:function(e){const t=M(),n=T();t.evt.emit("onForecast",n.modelData.name);const r=n.provider;let o;o=(null==r?void 0:r.createController)?r.createController(n.modelData,n.context,n.params,t):e(n.modelData,n.context,n.params,t);(function(e,t){const n=["context","params","modelData"];h((()=>{const t={};return Object.keys(e).forEach((r=>{n.includes(r)||(t[r]=e[r])})),t}),((e,n)=>{const r={};Object.keys(e).forEach((t=>{e[t]!==(n||{})[t]&&(r[t]=e[t])})),ibiz.log.debug("部件 [".concat(t.model.name,"] state 变更"),r),Object.keys(r).forEach((e=>{void 0!==r[e]&&(t.state[e]=r[e])}))}),{immediate:!0})})(n,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 n=w(),r=w(!1);let o;const i=()=>{r.value||ibiz.log.debug("没有聚焦,不触发失焦"),t(),o.stop(),r.value=!1};return F(n,"click",(t=>{r.value||(o=B(n,(()=>{i()})),r.value=!0,e())}),{capture:!0}),{componentRef:n,isFocus:r,doBlur:i,pause:()=>{o&&o.pause()},stop:()=>{o&&o.stop()}}},useForce:L,useForceTogether:function(e,t){const n=t.force,r=L();t.force=e=>{n(e),r()}},useMobCtx:function(){return P("ctx")},useNamespace:q,useProps:T,usePropsWatch:function(e,t,n){const r=T();Object.prototype.hasOwnProperty.call(r,e)&&(h((()=>r[e]),((e,n)=>{t(W(e),W(n))}),n),t(W(r[e]),void 0))},useRouteKey:function(e,t,n){n||(n=w(""));n.value=e.value;const r=new Y(t);return h(e,((e,t)=>{e!==t&&r.nextChange((()=>{n.value=e}))})),n},useRouterQuery:function(){const e=A(),{query:t}=e;return t},useViewController:function(e){const t=T(),n=P("ctx",void 0);null==n||n.evt.emit("onForecast",t.modelData.name);const r=t.provider;let o;o=(null==r?void 0:r.createController)?r.createController(t.modelData,t.context,t.params,n):e(t.modelData,t.context,t.params,n);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 k,S,D=Object.create,O=Object.defineProperty,j=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyNames,_=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty,z=(k={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(e,t){function n(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var n,r="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)n=e.charCodeAt(s);else{if(47===n)break;n=47}if(47===n){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(r.length<2||2!==o||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",o=0):o=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),i=s,a=0;continue}}else if(2===r.length||1===r.length){r="",o=0,i=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",o=2)}else r.length>0?r+="/"+e.slice(i+1,s):r=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}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),n(a),0!==a.length&&(t=a+"/"+t,o=47===a.charCodeAt(0))}return t=r(t,!o),o?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(n(e),0===e.length)return".";var t=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=r(e,!t)).length||t||(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return n(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 r=arguments[t];n(r),r.length>0&&(void 0===e?e=r:e+="/"+r)}return void 0===e?".":o.normalize(e)},relative:function(e,t){if(n(e),n(t),e===t)return"";if((e=o.resolve(e))===(t=o.resolve(t)))return"";for(var r=1;r<e.length&&47===e.charCodeAt(r);++r);for(var i=e.length,a=i-r,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(r+p)?l=p:0===p&&(l=0));break}var d=e.charCodeAt(r+p);if(d!==t.charCodeAt(s+p))break;47===d&&(l=p)}var f="";for(p=r+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(n(e),0===e.length)return".";for(var t=e.charCodeAt(0),r=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?r?"/":".":r&&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');n(e);var r,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(r=e.length-1;r>=0;--r){var u=e.charCodeAt(r);if(47===u){if(!a){o=r+1;break}}else-1===c&&(a=!1,c=r+1),s>=0&&(u===t.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=c))}return o===i?i=c:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){n(e);for(var t=-1,r=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){r=s+1;break}}return-1===t||-1===o||0===a||1===a&&t===o-1&&t===r+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 n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+e+r:r}("/",e)},parse:function(e){n(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var r,o=e.charCodeAt(0),i=47===o;i?(t.root="/",r=1):r=0;for(var a=-1,s=0,c=-1,u=!0,l=e.length-1,p=0;l>=r;--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 S||(0,k[I(k)[0]])((S={exports:{}}).exports,S),S.exports}),V=((e,t,n)=>(n=null!=e?D(_(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of I(t))G.call(e,o)||o===n||O(e,o,{get:()=>t[o],enumerable:!(r=j(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:O(n,"default",{value:e,enumerable:!0}),e)))(z(),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 n(t,"配置加载失败")}}return!1}async loadPluginRef(e,t){if(this.pluginCache.has(e))return!0;let n=null;const r=this.devPackages.get(e);if(r)n=await r();else{const e=t,r=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:r});if(200!==o.status)throw new Error("配置加载失败");n=o.data}const o=new u(e,t,n);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 n=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(n)?"".concat(n,"/").concat((0,V.join)(s)):"".concat(ibiz.env.pluginBaseUrl,"/").concat(n,"/").concat((0,V.join)(s)):"".concat(n).concat(n.endsWith("/")?"":"/").concat((0,V.join)(a)),c){if(this.cache.has(c))return;let e=null;const n=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]:n}}),e=await System.import(o));if(!e)throw new r("远程插件加载失败, 未找到文件或文件内容格式不正确");if(!e.default)throw new r("远程插件加载失败, 远程插件未找到[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:n,pathname:r}=window.location;return r.endsWith("/")&&t.startsWith("/")&&(t=t.substring(1)),t="".concat(n).concat(r).concat(t),t}});function B(e,t,n={}){let r=i,a=i,s=i;const c=()=>{r(),r=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,n);r=i.stop,a=i.pause,s=i.proceed}}),{immediate:!0}),g((()=>{r!==i&&c()})),{stop:()=>r(),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,n,r={}){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,n,r))}),{immediate:!0}),g((()=>{o!==i&&o()})),()=>{o()}}function q(e){return new s(e,ibiz.env.namespace)}function H(e){const t=e.getOwnContext(),n=["srfsessionid","srfappid"];return Object.keys(t).forEach((e=>{n.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,n){if(n){const r=await ibiz.hub.getAppDataEntity(n);let o=l(t,r);if(o||(o={path:"",keys:[r.codeName.toLowerCase()]}),o){const n=e.pathNodes[1].context,r={};o.keys.forEach((e=>{t&&Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e],n&&delete n[e])})),e.pathNodes[0].context=r}}else e.pathNodes[0].context=void 0}function J(e){const t=e.matched.length,n=[];for(let r=1;r<=t;r++){const t=e.path.split("/")[2*r],o=e.params["params".concat(r)];let i,a,s;i=o&&o!==ibiz.env.routePlaceholder?R.parse(o,{strictNullHandling:!0,delimiter:";"}):void 0,i&&(1===r?(a=i,i=void 0):(i.srfnavctx&&(a=JSON.parse(decodeURIComponent(i.srfnavctx)),delete i.srfnavctx),i.srfnav&&(s=i.srfnav,delete i.srfnav))),n.push({viewName:t,context:a,params:i,srfnav:s})}let r;return e.params.appContext&&e.params.appContext!==ibiz.env.routePlaceholder&&(r=R.parse(e.params.appContext,{strictNullHandling:!0,delimiter:";"})),{appContext:r,pathNodes:n}}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,n)=>{t+="/".concat(e.viewName,"/");let r={};if(0===n)N(e.context)&&(r=e.context);else{if(r=N(e.params)?e.params:{},N(e.context)){const t=JSON.stringify(e.context);"{}"!==t&&(r.srfnavctx=encodeURIComponent(t))}e.srfnav&&(r.srfnav=e.srfnav)}const o=R.stringify(r,{delimiter:";",strictNullHandling:!0,skipNulls:!0});N(o)?t+=o:t+=ibiz.env.routePlaceholder})),t}function Q(e,t,n=!0){if(e.matched.length<t)return"";if(e.name)return e.path;const r=J(e);return r.pathNodes.length<t?e.path:(r.pathNodes.length>t&&(r.pathNodes=r.pathNodes.slice(0,t)),n&&delete r.pathNodes[t-1].srfnav,K(r))}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,n)=>{const r={};Object.keys(e).forEach((t=>{e[t]!==(n||{})[t]&&(r[t]=e[t])})),ibiz.log.debug("视图 [".concat(t.model.name,"] state 变更"),r),Object.keys(r).forEach((e=>{t.state[e]=r[e]}))}),{immediate:!0})}var te=e("RequiredProp",class{constructor(e,t,n){this.required=!0,t&&(this.default=t),n&&(this.validator=n),this.type=e}});function ne(){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 re(){return{hasError:{type:Boolean}}}function oe(){return{...ne(),value:[String,Number]}}function ie(){return{...ne(),value:Number}}function ae(){return{...ne(),value:String}}function se(){return{...ne(),value:[String,Number]}}function ce(){return{...ne(),value:[String,Number]}}function ue(){return{...ne(),value:[String,Number]}}function le(){return{...ne(),value:[String,Number]}}function pe(){return{...ne(),value:[String,Array,Object,Number]}}function de(){return{...ne(),value:[String,Number]}}function fe(){return{...ne(),value:[String,Number]}}function he(){return{...ne(),value:[String,Number]}}function ge(){return{...ne(),value:[String,Number]}}function me(){return{...ne(),value:[String,Number]}}function ve(){return{...ne(),value:[String,Number]}}function be(){return{...ne(),value:[String,Number,Array]}}function Pe(){return{...ne(),value:[String,Number]}}function ye(){return{...ne(),value:[String,Number]}}function we(){return{...ne(),value:[String,Number]}}function Ce(){return{...ne(),value:String}}function xe(){return{...ne(),value:[String,Number]}}function Ne(){return{...ne(),value:String,language:{type:String},theme:{type:String}}}function Ee(){return{...ne(),value:String}}function Ae(){return{...ne(),data:{type:Object,required:!1},controller:{type:Object,required:!1},disabled:{type:Boolean,required:!1}}}function Re(){return{...ne(),value:[Array,Array]}}function ke(){return{...ne(),value:String}}function Se(){return{...ne(),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===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}}}}}));
|
|
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/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 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","fn","ctx","useCtx","props","useProps","evt","emit","modelData","name","provider","createController","control","excludeKeys","watch3","watchProps","keys","forEach","key","newVal","oldVal","changeProps","log","debug","state","watchAndUpdateState","reactive","force","useForce","vue","getCurrentInstance2","proxy","onAll","eventName","event","$emit","slice","created","onBeforeUnmount2","destroyed","controller","componentRef","ref","isFocus","outsideFuns","doBlur","value","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","error","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":"kvBAsiCAA,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,sPAiYA,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,uVAhzBA,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,8EAjdA,SAA8BI,GAC5B,MAAMC,EAAMC,IACNC,EAAQC,IACdH,EAAII,IAAIC,KAAK,aAAcH,EAAMI,UAAUC,MAC3C,MAAMC,EAAWN,EAAMM,SACvB,IAAItB,EAEFA,GADc,MAAZsB,OAAmB,EAASA,EAASC,kBACnCD,EAASC,iBACXP,EAAMI,UACNJ,EAAM1G,QACN0G,EAAMzG,OACNuG,GAGED,EAAGG,EAAMI,UAAWJ,EAAM1G,QAAS0G,EAAMzG,OAAQuG,IA3CzD,SAA6BE,EAAOQ,GAClC,MAAMC,EAAc,CAAC,UAAW,SAAU,aAC1CC,GACE,KACE,MAAMC,EAAa,CAAA,EAMnB,OALAjC,OAAOkC,KAAKZ,GAAOa,SAASC,IACrBL,EAAYzF,SAAS8F,KACxBH,EAAWG,GAAOd,EAAMc,GACzB,IAEIH,CAAU,IAEnB,CAACI,EAAQC,KACP,MAAMC,EAAc,CAAA,EACpBvC,OAAOkC,KAAKG,GAAQF,SAASC,IACvBC,EAAOD,MAAUE,GAAU,CAAA,GAAIF,KACjCG,EAAYH,GAAOC,EAAOD,GAC3B,IAEHlH,KAAKsH,IAAIC,MAAM,OAAiB/C,OAAOoC,EAAQnB,MAAMgB,KAAM,cAAyBY,GACpFvC,OAAOkC,KAAKK,GAAaJ,SAASC,SACP,IAArBG,EAAYH,KACdN,EAAQY,MAAMN,GAAOG,EAAYH,GAClC,GACD,GAEJ,CAAE7C,WAAW,GAEjB,EAiBEoD,CAAoBrB,EAAOhB,GAC3BA,EAAEoC,MAAQE,EAAStC,EAAEoC,OACrBpC,EAAEuC,MAAQC,IACV,MAAMC,EAAMC,IAAsBC,MAOlC,OANA3C,EAAEkB,IAAI0B,OAAM,CAACC,EAAWC,KACtBL,EAAIM,MAAMF,EAAUG,MAAM,GAAIF,EAAM,IAEtCL,EAAIM,MAAM,mBAAoB/C,GAC9BA,EAAEiD,UACFC,GAAiB,IAAMlD,EAAEmD,cAClBnD,CACT,gBA7EA,SAAuBoD,GACrBA,EAAWb,MAAQC,GACrB,8CAkHA,SAAyB9F,EAAOD,GAC9B,MAAM4G,EAAeC,IACfC,EAAUD,GAAI,GACpB,IAAIE,EACJ,MAAMC,EAAS,KACRF,EAAQG,OACX9I,KAAKsH,IAAIC,MAAM,cAEjB1F,IACA+G,EAAYG,OACZJ,EAAQG,OAAQ,CAAK,EA2BvB,OAfAE,EACEP,EACA,SACCQ,IACMN,EAAQG,QACXF,EAAcM,EAAgBT,GAAc,KAC1CI,GAAQ,IAEVF,EAAQG,OAAQ,EAChBhH,IACD,GAEH,CAAEqH,SAAS,IAGN,CAAEV,eAAcE,UAASE,SAAQO,MAzB1B,KACRR,GACFA,EAAYQ,OACb,EAsB4CL,KApBlC,KACPH,GACFA,EAAYG,MACb,EAkBL,8BAlKA,SAA0BlB,EAAKW,GAC7B,MAAMa,EAAab,EAAWb,MACxB2B,EAAY1B,IAClBY,EAAWb,MAAS5D,IAClBsF,EAAWtF,GACXuF,GAAW,CAEf,YAiBA,WACE,OAAOC,EAAO,MAChB,0CAlDA,SAAuBrC,EAAKnD,EAAUyF,GACpC,MAAMpD,EAAQC,IACVvB,OAAO2E,UAAUC,eAAeC,KAAKvD,EAAOc,KAC9C0C,GACE,IAAMxD,EAAMc,KACZ,CAACC,EAAQC,KACPrD,EAAS8F,EAAU1C,GAAS0C,EAAUzC,GAAQ,GAEhDoC,GAEFzF,EAAS8F,EAAUzD,EAAMc,SAAO,GAEpC,cA+hBA,SAAqB4C,EAAWrK,EAAOsK,GAChCA,IACHA,EAAWC,EAAK,KAElBD,EAASjB,MAAQgB,EAAUhB,MAC3B,MAAMmB,EAAgB,IAAIC,EAAczK,GAQxC,OAPA0K,EAAOL,GAAW,CAAC3C,EAAQC,KACrBD,IAAWC,GACb6C,EAAcG,YAAW,KACvBL,EAASjB,MAAQ3B,CAAM,GAE1B,IAEI4C,CACT,iBAnBA,WACE,MAAMtK,EAAQ4K,KACRC,MAAEA,GAAU7K,EAClB,OAAO6K,CACT,oBA2DA,SAA2BrE,GACzB,MAAMG,EAAQC,IACRH,EAAMqE,EAAQ,WAAO,GACpB,MAAPrE,GAAuBA,EAAII,IAAIC,KAAK,aAAcH,EAAMI,UAAUC,MAClE,MAAMC,EAAWN,EAAMM,SACvB,IAAItB,EAEFA,GADc,MAAZsB,OAAmB,EAASA,EAASC,kBACnCD,EAASC,iBACXP,EAAMI,UACNJ,EAAM1G,QACN0G,EAAMzG,OACNuG,GAGED,EAAGG,EAAMI,UAAWJ,EAAM1G,QAAS0G,EAAMzG,OAAQuG,GAEvDsE,EAA4BpE,EAAOhB,GACnCqF,GAAqBrE,EAAOhB,GAC5BsF,EAAQ,MAAOtF,EAAEc,KACjBd,EAAEoC,MAAQmD,EAAUvF,EAAEoC,OACtBpC,EAAEwF,UAAYD,EAAUvF,EAAEwF,WACtBxE,EAAMyE,QACRzF,EAAEyF,MAAQzE,EAAMyE,OAElBzF,EAAEuC,MAAQC,IACV,MAAMC,EAAMiD,IAAsB/C,MAMlC,OALA3C,EAAEkB,IAAI0B,OAAM,CAACC,EAAWC,KACtBL,EAAIM,MAAMF,EAAUG,MAAM,GAAIF,EAAM,IAEtC9C,EAAEiD,UACF0C,GAAiB,IAAM3F,EAAEmD,cAClBnD,CACT,IA36CA,IAMkB4F,EAAIC,EANlBC,EAAWpG,OAAOqG,OAClBC,EAAYtG,OAAOuG,eACnBC,EAAmBxG,OAAOyG,yBAC1BC,EAAoB1G,OAAO2G,oBAC3BC,EAAe5G,OAAO6G,eACtBC,EAAe9G,OAAO2E,UAAUC,eAsBhCmC,GArBcb,EAqBuB,CACvC,uFAAuFc,EAASC,GAE9F,SAASC,EAAWxK,GAClB,GAAoB,iBAATA,EACT,MAAM,IAAIyK,UAAU,mCAAqCC,KAAKC,UAAU3K,GAE3E,CACD,SAAS4K,EAAqB5K,EAAM6K,GAMlC,IALA,IAIIC,EAJAC,EAAM,GACNC,EAAoB,EACpBC,GAAa,EACbC,EAAO,EAEFC,EAAI,EAAGA,GAAKnL,EAAKlB,SAAUqM,EAAG,CACrC,GAAIA,EAAInL,EAAKlB,OACXgM,EAAO9K,EAAKoL,WAAWD,OACpB,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,EAAIjM,OAAS,GAA2B,IAAtBkM,GAA8D,KAAnCD,EAAIK,WAAWL,EAAIjM,OAAS,IAAgD,KAAnCiM,EAAIK,WAAWL,EAAIjM,OAAS,GACpH,GAAIiM,EAAIjM,OAAS,EAAG,CAClB,IAAIuM,EAAiBN,EAAIO,YAAY,KACrC,GAAID,IAAmBN,EAAIjM,OAAS,EAAG,EACb,IAApBuM,GACFN,EAAM,GACNC,EAAoB,GAGpBA,GADAD,EAAMA,EAAInE,MAAM,EAAGyE,IACKvM,OAAS,EAAIiM,EAAIO,YAAY,KAEvDL,EAAYE,EACZD,EAAO,EACP,QACD,CACjB,MAAqB,GAAmB,IAAfH,EAAIjM,QAA+B,IAAfiM,EAAIjM,OAAc,CAC/CiM,EAAM,GACNC,EAAoB,EACpBC,EAAYE,EACZD,EAAO,EACP,QACD,CAECL,IACEE,EAAIjM,OAAS,EACfiM,GAAO,MAEPA,EAAM,KACRC,EAAoB,EAElC,MACgBD,EAAIjM,OAAS,EACfiM,GAAO,IAAM/K,EAAK4G,MAAMqE,EAAY,EAAGE,GAEvCJ,EAAM/K,EAAK4G,MAAMqE,EAAY,EAAGE,GAClCH,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,UAAU9M,OAAS,EAAGqM,IAAM,IAAMQ,EAAkBR,IAAK,CACpE,IAAInL,EACAmL,GAAK,EACPnL,EAAO4L,UAAUT,SAEL,IAARM,IACFA,EAAMI,QAAQJ,OAChBzL,EAAOyL,GAETjB,EAAWxK,GACS,IAAhBA,EAAKlB,SAGT4M,EAAe1L,EAAO,IAAM0L,EAC5BC,EAA0C,KAAvB3L,EAAKoL,WAAW,GACpC,CAED,OADAM,EAAed,EAAqBc,GAAeC,GAC/CA,EACED,EAAa5M,OAAS,EACjB,IAAM4M,EAEN,IACAA,EAAa5M,OAAS,EACxB4M,EAEA,GAEV,EACDI,UAAW,SAAmB9L,GAE5B,GADAwK,EAAWxK,GACS,IAAhBA,EAAKlB,OACP,MAAO,IACT,IAAIiN,EAAoC,KAAvB/L,EAAKoL,WAAW,GAC7BY,EAAyD,KAArChM,EAAKoL,WAAWpL,EAAKlB,OAAS,GAMtD,OAJoB,KADpBkB,EAAO4K,EAAqB5K,GAAO+L,IAC1BjN,QAAiBiN,IACxB/L,EAAO,KACLA,EAAKlB,OAAS,GAAKkN,IACrBhM,GAAQ,KACN+L,EACK,IAAM/L,EACRA,CACR,EACD+L,WAAY,SAAoB/L,GAE9B,OADAwK,EAAWxK,GACJA,EAAKlB,OAAS,GAA4B,KAAvBkB,EAAKoL,WAAW,EAC3C,EACDa,KAAM,WACJ,GAAyB,IAArBL,UAAU9M,OACZ,MAAO,IAET,IADA,IAAIoN,EACKf,EAAI,EAAGA,EAAIS,UAAU9M,SAAUqM,EAAG,CACzC,IAAIgB,EAAMP,UAAUT,GACpBX,EAAW2B,GACPA,EAAIrN,OAAS,SACA,IAAXoN,EACFA,EAASC,EAETD,GAAU,IAAMC,EAErB,CACD,YAAe,IAAXD,EACK,IACFX,EAAMO,UAAUI,EACxB,EACDE,SAAU,SAAkBC,EAAMC,GAGhC,GAFA9B,EAAW6B,GACX7B,EAAW8B,GACPD,IAASC,EACX,MAAO,GAGT,IAFAD,EAAOd,EAAMC,QAAQa,OACrBC,EAAKf,EAAMC,QAAQc,IAEjB,MAAO,GAET,IADA,IAAIC,EAAY,EACTA,EAAYF,EAAKvN,QACa,KAA/BuN,EAAKjB,WAAWmB,KADYA,GAOlC,IAHA,IAAIC,EAAUH,EAAKvN,OACf2N,EAAUD,EAAUD,EACpBG,EAAU,EACPA,EAAUJ,EAAGxN,QACa,KAA3BwN,EAAGlB,WAAWsB,KADUA,GAS9B,IALA,IACIC,EADQL,EAAGxN,OACK4N,EAChB5N,EAAS2N,EAAUE,EAAQF,EAAUE,EACrCC,GAAiB,EACjBzB,EAAI,EACDA,GAAKrM,IAAUqM,EAAG,CACvB,GAAIA,IAAMrM,EAAQ,CAChB,GAAI6N,EAAQ7N,EAAQ,CAClB,GAAmC,KAA/BwN,EAAGlB,WAAWsB,EAAUvB,GAC1B,OAAOmB,EAAG1F,MAAM8F,EAAUvB,EAAI,GACzB,GAAU,IAANA,EACT,OAAOmB,EAAG1F,MAAM8F,EAAUvB,EAE1C,MAAuBsB,EAAU3N,IACoB,KAAnCuN,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,EAAIhO,OACNgO,GAAO,KAEPA,GAAO,OAGb,OAAIA,EAAIhO,OAAS,EACRgO,EAAMR,EAAG1F,MAAM8F,EAAUE,IAEhCF,GAAWE,EACoB,KAA3BN,EAAGlB,WAAWsB,MACdA,EACGJ,EAAG1F,MAAM8F,GAEnB,EACDK,UAAW,SAAmB/M,GAC5B,OAAOA,CACR,EACDgN,QAAS,SAAiBhN,GAExB,GADAwK,EAAWxK,GACS,IAAhBA,EAAKlB,OACP,MAAO,IAKT,IAJA,IAAIgM,EAAO9K,EAAKoL,WAAW,GACvB6B,EAAmB,KAATnC,EACVoC,GAAO,EACPC,GAAe,EACVhC,EAAInL,EAAKlB,OAAS,EAAGqM,GAAK,IAAKA,EAEtC,GAAa,MADbL,EAAO9K,EAAKoL,WAAWD,KAErB,IAAKgC,EAAc,CACjBD,EAAM/B,EACN,KACD,OAEDgC,GAAe,EAGnB,OAAa,IAATD,EACKD,EAAU,IAAM,IACrBA,GAAmB,IAARC,EACN,KACFlN,EAAK4G,MAAM,EAAGsG,EACtB,EACDE,SAAU,SAAkBpN,EAAMqN,GAChC,QAAY,IAARA,GAAiC,iBAARA,EAC3B,MAAM,IAAI5C,UAAU,mCACtBD,EAAWxK,GACX,IAGImL,EAHAmC,EAAQ,EACRJ,GAAO,EACPC,GAAe,EAEnB,QAAY,IAARE,GAAkBA,EAAIvO,OAAS,GAAKuO,EAAIvO,QAAUkB,EAAKlB,OAAQ,CACjE,GAAIuO,EAAIvO,SAAWkB,EAAKlB,QAAUuO,IAAQrN,EACxC,MAAO,GACT,IAAIuN,EAASF,EAAIvO,OAAS,EACtB0O,GAAoB,EACxB,IAAKrC,EAAInL,EAAKlB,OAAS,EAAGqM,GAAK,IAAKA,EAAG,CACrC,IAAIL,EAAO9K,EAAKoL,WAAWD,GAC3B,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,EAAMlN,EAAKlB,QACNkB,EAAK4G,MAAM0G,EAAOJ,EACnC,CACU,IAAK/B,EAAInL,EAAKlB,OAAS,EAAGqM,GAAK,IAAKA,EAClC,GAA2B,KAAvBnL,EAAKoL,WAAWD,IAClB,IAAKgC,EAAc,CACjBG,EAAQnC,EAAI,EACZ,KACD,OACiB,IAAT+B,IACTC,GAAe,EACfD,EAAM/B,EAAI,GAGd,OAAa,IAAT+B,EACK,GACFlN,EAAK4G,MAAM0G,EAAOJ,EAE5B,EACDO,QAAS,SAAiBzN,GACxBwK,EAAWxK,GAMX,IALA,IAAI0N,GAAY,EACZC,EAAY,EACZT,GAAO,EACPC,GAAe,EACfS,EAAc,EACTzC,EAAInL,EAAKlB,OAAS,EAAGqM,GAAK,IAAKA,EAAG,CACzC,IAAIL,EAAO9K,EAAKoL,WAAWD,GAC3B,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,GAEF3N,EAAK4G,MAAM8G,EAAUR,EAC7B,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,EAAW7I,MAAQ,KAAO6I,EAAWT,KAAO,IAC3E,OAAKW,EAGDA,IAAQF,EAAWG,KACdD,EAAME,EAERF,EAAMD,EAAMG,EALVA,CAMV,CA2QUC,CAAQ,IAAKL,EACrB,EACDM,MAAO,SAAepO,GACpBwK,EAAWxK,GACX,IAAIqO,EAAM,CAAEJ,KAAM,GAAID,IAAK,GAAIE,KAAM,GAAIb,IAAK,GAAIpI,KAAM,IACxD,GAAoB,IAAhBjF,EAAKlB,OACP,OAAOuP,EACT,IAEIf,EAFAxC,EAAO9K,EAAKoL,WAAW,GACvBW,EAAsB,KAATjB,EAEbiB,GACFsC,EAAIJ,KAAO,IACXX,EAAQ,GAERA,EAAQ,EAQV,IANA,IAAII,GAAY,EACZC,EAAY,EACZT,GAAO,EACPC,GAAe,EACfhC,EAAInL,EAAKlB,OAAS,EAClB8O,EAAc,EACXzC,GAAKmC,IAASnC,EAEnB,GAAa,MADbL,EAAO9K,EAAKoL,WAAWD,KAQV,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,EAAIpJ,KADC,IAAd0I,GAAmB5B,EACC/L,EAAK4G,MAAM,EAAGsG,GAEdlN,EAAK4G,MAAM+G,EAAWT,KAG9B,IAAdS,GAAmB5B,GACrBsC,EAAIpJ,KAAOjF,EAAK4G,MAAM,EAAG8G,GACzBW,EAAIH,KAAOlO,EAAK4G,MAAM,EAAGsG,KAEzBmB,EAAIpJ,KAAOjF,EAAK4G,MAAM+G,EAAWD,GACjCW,EAAIH,KAAOlO,EAAK4G,MAAM+G,EAAWT,IAEnCmB,EAAIhB,IAAMrN,EAAK4G,MAAM8G,EAAUR,IAE7BS,EAAY,EACdU,EAAIL,IAAMhO,EAAK4G,MAAM,EAAG+G,EAAY,GAC7B5B,IACPsC,EAAIL,IAAM,KACLK,CACR,EACDN,IAAK,IACLO,UAAW,IACXC,MAAO,KACPhD,MAAO,MAETA,EAAMA,MAAQA,EACdhB,EAAOD,QAAUiB,CAClB,GA7b2B,WAC5B,OAAO9B,IAAO,EAAID,EAAGQ,EAAkBR,GAAI,MAAMC,EAAM,CAAEa,QAAS,CAAA,IAAMA,QAASb,GAAMA,EAAIa,OAC7F,GA+bIkE,EAtbU,EAAC/E,EAAKgF,EAAYC,KAAYA,EAAgB,MAAPjF,EAAcC,EAASQ,EAAaT,IAAQ,CAAE,EARjF,EAAC6C,EAAID,EAAMsC,EAAQC,KACnC,GAAIvC,GAAwB,iBAATA,GAAqC,mBAATA,EAC7C,IAAK,IAAI3G,KAAOsE,EAAkBqC,GAC3BjC,EAAajC,KAAKmE,EAAI5G,IAAQA,IAAQiJ,GACzC/E,EAAU0C,EAAI5G,EAAK,CAAEmJ,IAAK,IAAMxC,EAAK3G,GAAMoJ,aAAcF,EAAO9E,EAAiBuC,EAAM3G,KAASkJ,EAAKE,aAE3G,OAAOxC,CAAE,EAE0FyC,EAKnGN,GAAehF,GAAQA,EAAIuF,WAA8EN,EAAjE9E,EAAU8E,EAAQ,UAAW,CAAEpH,MAAOmC,EAAKqF,YAAY,IAC/FrF,IAgb2BwF,CAAQ5E,IAA2B,qBAK5C,MAClB,WAAA6E,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,EAAO3K,KAAM2K,EACzC,CAQD,QAAAE,CAASC,GACPZ,KAAKM,YAAYhK,SAASmK,IACxBG,EAAIC,IAAIJ,EAAO,GAElB,CASD,0BAAMK,CAAqBhL,GACzB,GAAIkK,KAAKO,kBAAkBQ,IAAIjL,GAAO,CACpC,MAAM2K,EAAST,KAAKO,kBAAkBb,IAAI5J,GACtC2K,SACIT,KAAKgB,cAAcP,EAAO3K,KAAM2K,EAAO5P,KAEhD,CACF,CASD,aAAAoQ,CAActF,GACZqE,KAAKM,YAAYpQ,KAAKyL,EACvB,CASD,YAAAuF,CAAapL,EAAMR,GACjB0K,KAAKI,YAAYM,IAAI5K,EAAMR,EAC5B,CASD,gBAAM6L,CAAWV,GACf,IAA6B,IAAzBA,EAAOW,cAAwB,CACjC,MAAMC,EAAYZ,EAClB,GAAIY,EACF,UACQrB,KAAKgB,cACTK,EAAUC,aACVD,EAAUE,aAEb,CAAC,MAAOC,GACP,MAAM,IAAIC,EAAkBJ,EAAW,SACxC,CAEJ,CACD,OAAO,CACR,CASD,mBAAML,CAAcU,EAAcC,GAChC,GAAI3B,KAAKK,YAAYU,IAAIW,GACvB,OAAO,EAET,IAAIE,EAAa,KACjB,MAAMtM,EAAK0K,KAAKI,YAAYV,IAAIgC,GAChC,GAAIpM,EACFsM,QAAmBtM,QACd,CACL,MAAMuM,EAAaF,EACbG,EAAY9B,KAAKC,OAAO8B,KAAKF,GAAc,GAAGhO,OAAOgO,EAAY,iBAAmB,GAAGhO,OAAOxE,KAAKC,IAAI0S,cAAe,KAAKnO,QAAO,EAAIwL,EAAuBvC,MAAM+E,EAAY,iBAC/KjG,QAAYvM,KAAK4S,IAAIC,MAAM,CAC/BC,OAAQ,MACRC,QAAS,CAAE,8BAA+B,KAC1CC,IAAKP,IAEP,GAAmB,MAAflG,EAAI0G,OACN,MAAM,IAAIC,MAAM,UAElBX,EAAahG,EAAI4G,IAClB,CACD,MAAMC,EAAe,IAAIC,EACvBhB,EACAC,EACAC,GAEF,GAAIa,EACF,IAGE,aAFMzC,KAAK2C,WAAWF,GACtBzC,KAAKK,YAAYK,IAAIgB,EAAce,IAC5B,CACR,CAAC,MAAOjB,GACPnS,KAAKsH,IAAI6K,MAAMA,EAChB,CAEH,OAAO,CACR,CAUD,gBAAMmB,CAAWF,GACf,MAAMZ,EAAaY,EAAaG,MAC1B9M,KAAEA,EAAI+M,QAAEA,EAAOC,OAAEA,EAAQ1H,OAAAA,GAAWqH,EAAaM,OACvD,IAAIC,EAAY,GAUhB,GAREA,EADEhD,KAAKI,YAAYW,IAAIjL,IACX,EAAIuJ,EAAuBvC,MAAM,GAAGjJ,OAAOiC,EAAM,KAAKjC,OAAOgP,GAAUzH,GAC1E/L,KAAKC,IAAI2T,IACNjD,KAAKC,OAAO8B,KAAKF,GAAc,GAAGhO,OAAOgO,EAAY,KAAKhO,QAAO,EAAIwL,EAAuBvC,MAAM1B,IAAW,GAAGvH,OAAOxE,KAAKC,IAAI0S,cAAe,KAAKnO,OAAOgO,EAAY,KAAKhO,QAAO,EAAIwL,EAAuBvC,MAAM1B,IAEpN,GAAGvH,OAAOgO,GAAYhO,OAAOgO,EAAWqB,SAAS,KAAO,GAAK,KAAKrP,QAAO,EAAIwL,EAAuBvC,MAC9GgG,IAGAE,EAAW,CACb,GAAIhD,KAAKE,MAAMa,IAAIiC,GACjB,OAEF,IAAIR,EAAO,KACX,MAAMH,EAAMrC,KAAKmD,SAASH,GAC1B,GAAIhD,KAAKI,YAAYW,IAAIjL,GAAO,CAC9B,MAAMR,EAAK0K,KAAKI,YAAYV,IAAI5J,GAC1BsN,QAAqB9N,IAC3B0K,KAAKiB,cAAcmC,EAAaC,SAChCrD,KAAKE,MAAMQ,IAAIsC,GAAW,EAClC,MAAiB3T,KAAKC,IAAI2T,IAClBT,QAAapH,EAAOkI,OAClBN,IAIFO,OAAOC,aAAa,CAClBC,QAAS,CACP3N,CAACA,GAAOuM,KAGZG,QAAae,OAAOD,OAAOxN,IAE7B,IAAI0M,EAUF,MAAM,IAAIkB,EACR,6BAVF,IAAIlB,EAAKa,QAGP,MAAM,IAAIK,EACR,kCAHF1D,KAAKiB,cAAcuB,EAAKa,SAM1BrD,KAAKE,MAAMQ,IAAIsC,GAAW,EAM7B,CACF,CAUD,QAAAG,CAASQ,GACP,GAAI3D,KAAKC,OAAO8B,KAAK4B,GACnB,OAAOA,EAET,IAAItB,EAAM,GAGNA,EAFArC,KAAKC,OAAO8B,KAAK1S,KAAKC,IAAI0S,eACxB2B,EAAO3T,WAAW,KACdX,KAAKC,IAAI0S,cAAgB2B,EAEzB,GAAG9P,OAAOxE,KAAKC,IAAI0S,cAAe,KAAKnO,OAAO8P,GAGhD,GAAG9P,QAAO,EAAIwL,EAAuBvC,MAAMzN,KAAKC,IAAI0S,cAAe2B,IAE3E,MAAMC,OAAEA,EAAMC,SAAEA,GAAaC,OAAOC,SAKpC,OAJIF,EAASX,SAAS,MAAQb,EAAIrS,WAAW,OAC3CqS,EAAMA,EAAI2B,UAAU,IAEtB3B,EAAM,GAAGxO,OAAO+P,GAAQ/P,OAAOgQ,GAAUhQ,OAAOwO,GACzCA,CACR,IAUH,SAAS9J,EAAgB0L,EAAOC,EAASrL,EAAU,CAAA,GACjD,IAAIT,EAAO+L,EACP1L,EAAQ0L,EACRC,EAAUD,EACd,MAAME,EAAU,KACdjM,IACAA,EAAO+L,EACP1L,EAAQ0L,EACRC,EAAUD,CAAI,EA2BhB,OAzBAG,EACEL,GACA,CAACzN,EAAQC,KACP,GAAID,IAAWC,EACb,GAAI8N,EAAM/N,GACR6N,QACK,CACL,MAAMG,EAASC,GACF,MAAVjO,OAAiB,EAASA,EAAOkO,MAAQlO,EAC1C0N,EACArL,GAEFT,EAAOoM,EAAOpM,KACdK,EAAQ+L,EAAO/L,MACf2L,EAAUI,EAAOJ,OAClB,CACF,GAEH,CAAE1Q,WAAW,IAEfiR,GAAgB,KACVvM,IAAS+L,GACXE,GACD,IAEI,CACLjM,KAAM,IAAMA,IACZK,MAAO,IAAMA,IACb2L,QAAS,IAAMA,IAEnB,CAcA,SAAS1O,IAEP,OADYkP,IAAqBxN,MACtByN,MACb,CACA,SAAS3L,EAAU4L,GACjB,OAAOC,EAAWD,GAAOE,EAAMF,GAAOA,CACxC,CAcA,SAAS7N,IACP,MAAMC,EAAM0N,IAAqBxN,MACjC,OAAQhE,IACN8D,EAAI+N,eACA7R,GAAY8R,EAAO9R,IACrB8D,EAAIiO,WAAU,KACZ/R,GAAU,GAEb,CAEL,CAYG,IAACD,EAAUgI,EAAA,aAAGiK,EAAmB,eAUpC,SAAS5P,IACP,OAAOoD,EAAO,MAChB,CAoEA,SAASP,EAAiB4L,EAAO3M,EAAW+N,EAAUxM,EAAU,CAAA,GAC9D,IAAIyM,EAAUC,EAyBd,OAxBAC,EACEvB,GACA,CAACzN,EAAQC,KACHD,IAAWC,IACTgP,EAAOjP,IACT8O,IACAA,EAAUC,GAEVD,EAAUI,GACG,MAAVlP,OAAiB,EAASA,EAAOkO,MAAQlO,EAC1Cc,EACA+N,EACAxM,GAGL,GAEH,CAAEnF,WAAW,IAEfiS,GAAiB,KACXL,IAAYC,GACdD,GACD,IAEI,KACLA,GAAS,CAEb,CA8CA,SAAS3Q,EAAaiR,GACpB,OAAO,IAAIC,EAAUD,EAAOvW,KAAKC,IAAIwW,UACvC,CAiBA,SAASzV,EAAmBtB,GAC1B,MAAMgX,EAAahX,EAAQiX,gBACrB9P,EAAc,CAAC,eAAgB,YAMrC,OALA/B,OAAOkC,KAAK0P,GAAYzP,SAASC,IAC3BL,EAAYzF,SAAS8F,WAChBwP,EAAWxP,EACnB,IAEIwP,CACT,CACG,IAACvV,EAAmB2K,EAAA,mBAAA,CACrB8K,EAASC,aACTD,EAASE,iBACTF,EAASG,aACTH,EAASI,iBACTJ,EAASK,aACTL,EAASM,qBACTN,EAASO,iBACTP,EAASQ,qBACTR,EAASS,cACTT,EAASU,kBACTV,EAASW,iBAEXhY,eAAe0B,EAAiBrB,EAAWF,EAASwB,GAClD,GAAKA,EAEE,CACL,MAAMsW,QAAexX,KAAKyE,IAAIgT,iBAAiBvW,GAC/C,IAAIwW,EAAQC,EAAgBjY,EAAS8X,GAIrC,GAHKE,IACHA,EAAQ,CAAElW,KAAM,GAAIwF,KAAM,CAACwQ,EAAO1W,SAASC,iBAEzC2W,EAAO,CACT,MAAME,EAAiBhY,EAAUO,UAAU,GAAGT,QACxCmY,EAAa,CAAA,EACnBH,EAAM1Q,KAAKC,SAASC,IACdxH,GAAWoF,OAAO2E,UAAUC,eAAeC,KAAKjK,EAASwH,KAC3D2Q,EAAW3Q,GAAOxH,EAAQwH,GACtB0Q,UACKA,EAAe1Q,GAEzB,IAEHtH,EAAUO,UAAU,GAAGT,QAAUmY,CAClC,CACF,MApBCjY,EAAUO,UAAU,GAAGT,aAAU,CAqBrC,CA8EA,SAASG,EAAgBJ,GACvB,MAAMK,EAAQL,EAAMqY,QAAQxX,OACtBH,EAAY,GAClB,IAAK,IAAI8E,EAAQ,EAAGA,GAASnF,EAAOmF,IAAS,CAC3C,MAAM7E,EAAWX,EAAM+B,KAAKuW,MAAM,KAAa,EAAR9S,GACjC+S,EAAYvY,EAAME,OAAO,SAAS6E,OAAOS,IAC/C,IAAItF,EACAD,EACAe,EAIFd,EAHGqY,GAAaA,IAAchY,KAAKC,IAAIgY,iBAG9BC,EAAGtI,MAAMoI,EAAW,CAC3BG,oBAAoB,EACpBrI,UAAW,WAJJ,EAOPnQ,IACY,IAAVsF,GACFvF,EAAUC,EACVA,OAAS,IAELA,EAAOyY,YACT1Y,EAAUwM,KAAK0D,MAAMyI,mBAAmB1Y,EAAOyY,mBACxCzY,EAAOyY,WAEZzY,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,IAAIgY,mBAClEjT,EAAakT,EAAGtI,MAAMnQ,EAAME,OAAOqF,WAAY,CAC7CmT,oBAAoB,EACpBrI,UAAW,OAGR,CAAE9K,aAAY7E,YACvB,CACA,SAASsB,EAAiB7B,GACxB,IAAI0Y,EAAU,GAuCd,OAtCI1Y,EAAUoF,WACZsT,GAAW,IAAI9T,OAAO0T,EAAG/L,UAAUvM,EAAUoF,WAAY,CACvD8K,UAAW,IACXqI,oBAAoB,KAGtBG,GAAW,IAAI9T,OAAOxE,KAAKC,IAAIgY,kBAEjCrY,EAAUO,UAAU8G,SAAQ,CAAC/B,EAAUD,KACrCqT,GAAW,IAAI9T,OAAOU,EAAS9E,SAAU,KACzC,IAAImY,EAAc,CAAA,EAClB,GAAc,IAAVtT,EACEE,EAAYD,EAASxF,WACvB6Y,EAAcrT,EAASxF,aAEpB,CAEL,GADA6Y,EAAcpT,EAAYD,EAASvF,QAAUuF,EAASvF,OAAS,GAC3DwF,EAAYD,EAASxF,SAAU,CACjC,MAAM8Y,EAAStM,KAAKC,UAAUjH,EAASxF,SACxB,OAAX8Y,IACFD,EAAYH,UAAYK,mBAAmBD,GAE9C,CACGtT,EAASzE,SACX8X,EAAY9X,OAASyE,EAASzE,OAEjC,CACD,MAAMuX,EAAYE,EAAG/L,UAAUoM,EAAa,CAC1CzI,UAAW,IACXqI,oBAAoB,EACpBO,WAAW,IAETvT,EAAY6S,GACdM,GAAWN,EAEXM,GAAWtY,KAAKC,IAAIgY,gBACrB,IAEIK,CACT,CACA,SAASlU,EAAmB3E,EAAOK,EAAO6Y,GAAW,GACnD,GAAIlZ,EAAMqY,QAAQxX,OAASR,EACzB,MAAO,GAET,GAAIL,EAAMgH,KACR,OAAOhH,EAAM+B,KAEf,MAAM5B,EAAYC,EAAgBJ,GAClC,OAAIG,EAAUO,UAAUG,OAASR,EACxBL,EAAM+B,MAEX5B,EAAUO,UAAUG,OAASR,IAC/BF,EAAUO,UAAYP,EAAUO,UAAUiI,MAAM,EAAGtI,IAEjD6Y,UACK/Y,EAAUO,UAAUL,EAAQ,GAAGW,OAEjCgB,EAAiB7B,GAC1B,CAkBI,IAAAsK,oBAAgB,MAClB,WAAAwG,CAAYjR,EAAOmZ,GAMjBjI,KAAKkI,UAAY,GAQjBlI,KAAKmI,OAAS,GAQdnI,KAAKiI,KAAO,IACRA,IACFjI,KAAKiI,KAAOA,GAEdG,GACE,IAAMtZ,EAAM+B,OACZ,CAAC2F,EAAQC,KACP,GAAID,IAAWC,EAAQ,CACrB,GAAIuJ,KAAKkI,UAAUvY,OACjB,IAAK,IAAI2E,EAAQ,EAAGA,EAAQ0L,KAAKkI,UAAUvY,OAAQ2E,IAAS,EAE1DgB,EADW0K,KAAKkI,UAAU5T,KAE3B,CAGH,GADA0L,KAAKkI,UAAY,GACblI,KAAKmI,OAAOxY,OACd,IAAK,IAAI2E,EAAQ,EAAGA,EAAQ0L,KAAKmI,OAAOxY,OAAQ2E,IAAS,CACvD,MAAM+T,EAAQrI,KAAKmI,OAAO7T,GAC1BgU,aAAaD,EACd,CAEHrI,KAAKmI,OAAS,EACf,IAGN,CAOD,UAAA1O,CAAWrG,GACLA,IACF4M,KAAKmI,OAAOjY,KACVqY,YAAW,KACTnV,IACA,MAAMkB,EAAQ0L,KAAKkI,UAAUM,WAAWC,GAASA,IAASrV,IAC1D4M,KAAKkI,UAAUxY,OAAO4E,EAAO,EAAE,GAC9B0L,KAAKiI,OAEVjI,KAAKkI,UAAUhY,KAAKkD,GAEvB,IAIe+H,EAAA,eAAA,CAACuN,EAAMC,KACvBD,EAAKC,QAAW/H,IACd+H,EAAQ/H,EAAI,EAEP8H,KAqDT,SAAS7O,EAA4BpE,EAAOmT,GAC1CC,GACE,KAAO,CAAE9Z,QAAS0G,EAAM1G,QAASC,OAAQyG,EAAMzG,WAC9CwH,IACCoS,EAAK7Z,QAAQ+Z,MAAM,CAAE,EAAEtS,EAAOzH,SAC9Bga,EAASH,EAAK5Z,QACdmF,OAAOC,OAAOwU,EAAK5Z,OAAQwH,EAAOxH,QAClC4Z,EAAKI,sBACL3Z,KAAKsH,IAAIC,MAAM,GAAG/C,OAAO+U,EAAK9T,MAAMmU,GAAI,gBAA6EzS,EAAO,GAGlI,CACA,SAASsD,GAAqBrE,EAAOmT,GACnCC,GACE,IACSpT,EAAMoB,MAAQ,IAAKpB,EAAMoB,OAAU,KAE5C,CAACL,EAAQC,KACP,MAAMC,EAAc,CAAA,EACpBvC,OAAOkC,KAAKG,GAAQF,SAASC,IACvBC,EAAOD,MAAUE,GAAU,CAAA,GAAIF,KACjCG,EAAYH,GAAOC,EAAOD,GAC3B,IAEHlH,KAAKsH,IAAIC,MAAM,OAAiB/C,OAAO+U,EAAK9T,MAAMgB,KAAM,cAAyBY,GACjFvC,OAAOkC,KAAKK,GAAaJ,SAASC,IAChCqS,EAAK/R,MAAMN,GAAOG,EAAYH,EAAI,GAClC,GAEJ,CAAE7C,WAAW,GAEjB,CAoCI,IAAAwV,oBAAe,MACjB,WAAAnJ,CAAYoJ,EAAMC,EAAUC,GAC1BrJ,KAAKsJ,UAAW,EACZF,IACFpJ,KAAKqD,QAAU+F,GAEbC,IACFrJ,KAAKqJ,UAAYA,GAEnBrJ,KAAKmJ,KAAOA,CACb,IAIH,SAASI,KACP,MAAO,CACLpR,MAAOqR,OACP3R,WAAY,IAAIqR,GAAa/U,QAC7BqO,KAAM,IAAI0G,GAAa/U,QACvBsV,SAAU,CACRN,KAAMO,SAERC,SAAU,CACRR,KAAMO,QACNrG,SAAS,GAEXuG,UAAW,CACTT,KAAMO,QACNrG,SAAS,GAGf,CAmBA,SAAShS,KACP,MAAO,CACLwY,SAAU,CACRV,KAAMO,SAGZ,CAGA,SAAStX,KACP,MAAO,IAAKmX,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAIA,SAAS3X,KACP,MAAO,IAAKoX,KAAkBpR,MAAO2R,OACvC,CAIA,SAAS5X,KACP,MAAO,IAAKqX,KAAkBpR,MAAOqR,OACvC,CAMA,SAAS5W,KACP,MAAO,IAAK2W,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAAS/X,KACP,MAAO,IAAKwX,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAAStY,KACP,MAAO,IAAK+X,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASrY,KACP,MAAO,IAAK8X,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASlY,KACP,MAAO,IAAK2X,KAAkBpR,MAAO,CAACqR,OAAQvW,MAAOkB,OAAQ2V,QAC/D,CAMA,SAASjY,KACP,MAAO,IAAK0X,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAAShY,KACP,MAAO,IAAKyX,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASzX,KACP,MAAO,IAAKkX,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASvX,KACP,MAAO,IAAKgX,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAAStX,KACP,MAAO,IAAK+W,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASrX,KACP,MAAO,IAAK8W,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASpX,KACP,MAAO,IAAK6W,KAAkBpR,MAAO,CAACqR,OAAQM,OAAQ7W,OACxD,CAMA,SAASN,KACP,MAAO,IAAK4W,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASjX,KACP,MAAO,IAAK0W,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAAShX,KACP,MAAO,IAAKyW,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAAS/W,KACP,MAAO,IAAKwW,KAAkBpR,MAAOqR,OACvC,CAMA,SAASlY,KACP,MAAO,IAAKiY,KAAkBpR,MAAO,CAACqR,OAAQM,QAChD,CAMA,SAASpY,KACP,MAAO,IACF6X,KACHpR,MAAOqR,OACPO,SAAU,CACRZ,KAAMK,QAERQ,MAAO,CACLb,KAAMK,QAGZ,CAMA,SAASvX,KACP,MAAO,IAAKsX,KAAkBpR,MAAOqR,OACvC,CAMA,SAASlX,KACP,MAAO,IACFiX,KACH/G,KAAM,CAAE2G,KAAMhV,OAAQmV,UAAU,GAChCzR,WAAY,CAAEsR,KAAMhV,OAAQmV,UAAU,GACtCG,SAAU,CACRN,KAAMO,QACNJ,UAAU,GAGhB,CAMA,SAASlY,KACP,MAAO,IAAKmY,KAAkBpR,MAAO,CAAClF,MAAOA,OAC/C,CAMA,SAAS1B,KACP,MAAO,IAAKgY,KAAkBpR,MAAOqR,OACvC,CAMA,SAAS7X,KACP,MAAO,IAAK4X,KAAkBpR,MAAOqR,OACvC"}
|
|
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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"}
|
package/out/util/index.d.ts
CHANGED
package/out/util/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC"}
|
package/out/util/index.js
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 把未知格式的值绘制成字符串
|
|
3
|
+
* - 空值输出空字符串
|
|
4
|
+
* - 对象,数组输出成JSON字符串
|
|
5
|
+
* - 其他类型转成字符串输出
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-10-09 02:29:13
|
|
8
|
+
* @export
|
|
9
|
+
* @param {unknown} value
|
|
10
|
+
* @return {*} {string}
|
|
11
|
+
*/
|
|
12
|
+
export declare function renderString(value: unknown): string;
|
|
13
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/util/render/render.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcnD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isNil } from 'ramda';
|
|
2
|
+
/**
|
|
3
|
+
* 把未知格式的值绘制成字符串
|
|
4
|
+
* - 空值输出空字符串
|
|
5
|
+
* - 对象,数组输出成JSON字符串
|
|
6
|
+
* - 其他类型转成字符串输出
|
|
7
|
+
* @author lxm
|
|
8
|
+
* @date 2023-10-09 02:29:13
|
|
9
|
+
* @export
|
|
10
|
+
* @param {unknown} value
|
|
11
|
+
* @return {*} {string}
|
|
12
|
+
*/
|
|
13
|
+
export function renderString(value) {
|
|
14
|
+
if (isNil(value)) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === 'string') {
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const str = value.toString();
|
|
22
|
+
return str;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
ibiz.log.error(value, '转换成字符串失败', error);
|
|
26
|
+
}
|
|
27
|
+
return '';
|
|
28
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/vue3-util",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
4
4
|
"description": "vue3 工具包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"author": "chitanda",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@ibiz-template/core": "^0.1.
|
|
34
|
-
"@ibiz-template/runtime": "^0.1.
|
|
35
|
-
"@ibiz/model-core": "^0.0.
|
|
33
|
+
"@ibiz-template/core": "^0.1.34",
|
|
34
|
+
"@ibiz-template/runtime": "^0.1.34",
|
|
35
|
+
"@ibiz/model-core": "^0.0.19",
|
|
36
36
|
"@types/path-browserify": "^1.0.0",
|
|
37
37
|
"@types/qs": "^6.9.8",
|
|
38
38
|
"@types/systemjs": "^6.13.3",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@ibiz-template/core": "^0.1.0",
|
|
48
48
|
"@ibiz-template/runtime": "^0.1.0",
|
|
49
|
-
"@ibiz/model-core": "^0.0.
|
|
49
|
+
"@ibiz/model-core": "^0.0.19",
|
|
50
50
|
"path-browserify": "^1.0.1",
|
|
51
51
|
"qs": "^6.11.1",
|
|
52
52
|
"qx-util": "^0.4.8",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"vue": "^3.3.4",
|
|
55
55
|
"vue-router": "^4.2.4"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "6b6ab37103623fbc1994241b511829a2013a72c0"
|
|
58
58
|
}
|
package/src/util/index.ts
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isNil } from 'ramda';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 把未知格式的值绘制成字符串
|
|
5
|
+
* - 空值输出空字符串
|
|
6
|
+
* - 对象,数组输出成JSON字符串
|
|
7
|
+
* - 其他类型转成字符串输出
|
|
8
|
+
* @author lxm
|
|
9
|
+
* @date 2023-10-09 02:29:13
|
|
10
|
+
* @export
|
|
11
|
+
* @param {unknown} value
|
|
12
|
+
* @return {*} {string}
|
|
13
|
+
*/
|
|
14
|
+
export function renderString(value: unknown): string {
|
|
15
|
+
if (isNil(value)) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'string') {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const str = (value as IData).toString();
|
|
23
|
+
return str;
|
|
24
|
+
} catch (error) {
|
|
25
|
+
ibiz.log.error(value, '转换成字符串失败', error);
|
|
26
|
+
}
|
|
27
|
+
return '';
|
|
28
|
+
}
|