@ibiz-template/vue3-util 0.2.4 → 0.2.6
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 +12 -2
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/use/control/use-control-controller/use-control-controller.d.ts.map +1 -1
- package/out/use/control/use-control-controller/use-control-controller.js +18 -2
- package/package.json +4 -4
- package/src/use/control/use-control-controller/use-control-controller.ts +25 -2
package/dist/index.esm.js
CHANGED
|
@@ -865,6 +865,15 @@ function useMobCtx() {
|
|
|
865
865
|
}
|
|
866
866
|
|
|
867
867
|
// src/use/control/use-control-controller/use-control-controller.ts
|
|
868
|
+
function watchAndUpdateContextParams(props, control) {
|
|
869
|
+
watch3(
|
|
870
|
+
() => ({ context: props.context, params: props.params }),
|
|
871
|
+
(newVal) => {
|
|
872
|
+
control.updateContextParams({ ...newVal });
|
|
873
|
+
ibiz.log.debug("".concat(control.model.id, "\u7684\u4E0A\u4E0B\u6587\u6216\u89C6\u56FE\u53C2\u6570\u53D8\u66F4\uFF1A"), newVal);
|
|
874
|
+
}
|
|
875
|
+
);
|
|
876
|
+
}
|
|
868
877
|
function watchAndUpdateState(props, control) {
|
|
869
878
|
const excludeKeys = ["context", "params", "modelData"];
|
|
870
879
|
watch3(
|
|
@@ -910,6 +919,7 @@ function useControlController(fn) {
|
|
|
910
919
|
} else {
|
|
911
920
|
c = fn(props.modelData, props.context, props.params, ctx);
|
|
912
921
|
}
|
|
922
|
+
watchAndUpdateContextParams(props, c);
|
|
913
923
|
watchAndUpdateState(props, c);
|
|
914
924
|
c.state = reactive(c.state);
|
|
915
925
|
c.force = useForce();
|
|
@@ -1411,7 +1421,7 @@ import {
|
|
|
1411
1421
|
reactive as reactive2,
|
|
1412
1422
|
watch as watch8
|
|
1413
1423
|
} from "vue";
|
|
1414
|
-
function
|
|
1424
|
+
function watchAndUpdateContextParams2(props, view) {
|
|
1415
1425
|
watch8(
|
|
1416
1426
|
() => ({ context: props.context, params: props.params }),
|
|
1417
1427
|
(newVal) => {
|
|
@@ -1459,7 +1469,7 @@ function useViewController(fn) {
|
|
|
1459
1469
|
} else {
|
|
1460
1470
|
c = fn(props.modelData, props.context, props.params, ctx);
|
|
1461
1471
|
}
|
|
1462
|
-
|
|
1472
|
+
watchAndUpdateContextParams2(props, c);
|
|
1463
1473
|
watchAndUpdateState2(props, c);
|
|
1464
1474
|
provide("ctx", c.ctx);
|
|
1465
1475
|
c.state = reactive2(c.state);
|
package/dist/index.system.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["@ibiz-template/core","@ibiz-template/runtime","ramda","vue","qx-util","vue-router","qs"],(function(e,t){"use strict";var r,n,o,i,a,s,c,u,l,p,d,f,h,g,m,v,b,P,y,w,C,x,N,E,A,R;return{setters:[function(e){r=e.RuntimeModelError,n=e.RuntimeError,o=e.onClickOutside,i=e.NOOP,a=e.listenJSEvent,s=e.Namespace},function(e){c=e.ViewType,u=e.RemotePluginItem,l=e.getMatchResPath,p=e.calcDeCodeNameById},function(e){d=e.isNil},function(e){f=e.createCommentVNode,h=e.watch,g=e.onBeforeUnmount,m=e.getCurrentInstance,v=e.isReactive,b=e.toRaw,P=e.inject,y=e.reactive,w=e.ref,C=e.provide},function(e){x=e.isFunc,N=e.notNilEmpty,E=e.clearAll},function(e){A=e.useRoute},function(e){R=e.default}],execute:function(){e({calcResRoutePath:X,generateRoutePath:async function(e,t,r,n){const o=J(t);let i=2;r.toRouteDepth?(i=r.toRouteDepth,delete r.toRouteDepth):ibiz.env.isMob&&(o.pathNodes[0]={viewName:"home"});if(o.pathNodes.splice(i-1,o.pathNodes.length-i+1),r.currentSrfNav){const e=o.pathNodes[o.pathNodes.length-1];e.params=e.params||{},e.srfnav=r.currentSrfNav,delete r.currentSrfNav}t.fullPath.startsWith("/appredirectview")&&((null==n?void 0:n.srfindexname)?(o.pathNodes[0].viewName=n.srfindexname,delete n.srfindexname):o.pathNodes[0].viewName="index");if(o.pathNodes.push({viewName:e.codeName.toLowerCase(),context:H(r),params:n}),2===i&&(await X(o,r,e.appDataEntityId),$.includes(e.viewType))){const t=p(e.appDataEntityId);delete o.pathNodes[0].context[t]}return{path:K(o)}},getArrayProps:Re,getAutoCompleteProps:xe,getCascaderProps:Se,getCheckboxListProps:ue,getCheckboxProps:le,getCodeProps:Ne,getColorPickerProps:ke,getDataPickerProps:pe,getDatePickerProps:de,getDateRangeProps:fe,getDropdownProps:ce,getEditorEmits:function(){return{change:(e,t)=>!0,blur:()=>!0,focus:()=>!0}},getEditorProps:re,getGridArrayProps:function(){return{...Re(),...ne()}},getGridAutoCompleteProps:function(){return{...xe(),...ne()}},getGridCascaderProps:function(){return{...Se(),...ne()}},getGridCheckboxListProps:function(){return{...ue(),...ne()}},getGridCheckboxProps:function(){return{...le(),...ne()}},getGridCodeProps:function(){return{...Ne(),...ne()}},getGridColorPickerProps:function(){return{...ke(),...ne()}},getGridDataPickerProps:function(){return{...pe(),...ne()}},getGridDatePickerProps:function(){return{...de(),...ne()}},getGridDateRangeProps:function(){return{...fe(),...ne()}},getGridDropdownProps:function(){return{...ce(),...ne()}},getGridEditorCommonProps:ne,getGridEditorEmits:function(){return{change:(e,t)=>!0,rowSave:()=>!0}},getGridHtmlProps:function(){return{...Ee(),...ne()}},getGridInputIpProps:function(){return{...ae(),...ne()}},getGridInputNumberProps:function(){return{...ie(),...ne()}},getGridInputProps:function(){return{...oe(),...ne()}},getGridListBoxProps:function(){return{...he(),...ne()}},getGridMarkDownProps:function(){return{...Ae(),...ne()}},getGridNumberRangeProps:function(){return{...ge(),...ne()}},getGridRadioProps:function(){return{...me(),...ne()}},getGridRateProps:function(){return{...ve(),...ne()}},getGridRawProps:function(){return{...be(),...ne()}},getGridSliderProps:function(){return{...Pe(),...ne()}},getGridSpanProps:function(){return{...se(),...ne()}},getGridStepperProps:function(){return{...ye(),...ne()}},getGridSwitchProps:function(){return{...we(),...ne()}},getGridUploadProps:function(){return{...Ce(),...ne()}},getHtmlProps:Ee,getInputIpProps:ae,getInputNumberProps:ie,getInputProps:oe,getListBoxProps:he,getMarkDownProps:Ae,getNestedRoutePath:Q,getNumberRangeProps:ge,getOrigin:W,getOwnRouteContext:H,getRadioProps:me,getRateProps:ve,getRawProps:be,getSliderProps:Pe,getSpanProps:se,getStepperProps:ye,getSwitchProps:we,getUploadProps:Ce,isEmptyVNode:function(e){if(!Array.isArray(e))return e===L;return 1===e.length&&e[0]===L},onRouteChange:function(e,t){const r=A();if(!r)throw new n("无法正确获取route,可能是依赖问题");h((()=>null==r?void 0:r.path),(()=>{const n=Q(r,t);e({currentKey:n,fullPath:r.fullPath})}),{immediate:!0})},parseRouteViewData:async function(e,t){var r;const o=J(e);let i=o.pathNodes[t-1].viewName;if(!i)throw new n("第".concat(t,"级路由不存在视图标识"));"index"===i&&(i=ibiz.hub.defaultAppIndexViewName);const a=await ibiz.hub.getAppView(i);if(!a)throw new n("找不到视图".concat(i));const s={};(null==(r=ibiz.appData)?void 0:r.context)&&Object.assign(s,ibiz.appData.context);o.appContext&&Object.assign(s,o.appContext);if(1!==t)for(let e=0;e<t;e++){const t=o.pathNodes[e];N(t.context)&&Object.assign(s,t.context)}const{params:c,srfnav:u}=o.pathNodes[t-1];return{viewModel:a,context:s,params:c,srfnav:u}},prepareControl:function(e){const t=q("control"),{controlType:r,sysCss:n,codeName:o}=e.model,i=r.toLowerCase(),a=null==n?void 0:n.cssName,s=q("control-".concat(i)),c=[t.b(),t.b(i),t.m(o)];a&&c.push(a);return{controlClass:c,ns:s}},renderString:function(e){if(d(e))return"";if("string"==typeof e)return e;try{return e.toString()}catch(t){ibiz.log.error(e,"转换成字符串失败",t)}return""},route2routePath:J,routePath2string:K,useClickOutside:B,useControlController:function(e){const t=M(),r=T();t.evt.emit("onForecast",r.modelData.name);const n=r.provider;let o;o=(null==n?void 0:n.createController)?n.createController(r.modelData,r.context,r.params,t):e(r.modelData,r.context,r.params,t);(function(e,t){const r=["context","params","modelData"];h((()=>{const t={};return Object.keys(e).forEach((n=>{r.includes(n)||(t[n]=e[n])})),t}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("部件 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{void 0!==n[e]&&(t.state[e]=n[e])}))}),{immediate:!0})})(r,o),o.state=y(o.state),o.force=U();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),i.$emit("controllerAppear",o),o.created(),g((()=>o.destroyed())),o},useController:function(e){e.force=U()},useCtx:M,useEventListener:F,useFocusAndBlur:function(e,t){const r=w(),n=w(!1);let o;const i=()=>{n.value||ibiz.log.debug("没有聚焦,不触发失焦"),t(),o.stop(),n.value=!1};return F(r,"click",(t=>{n.value||(o=B(r,(()=>{i()})),n.value=!0,e())}),{capture:!0}),{componentRef:r,isFocus:n,doBlur:i,pause:()=>{o&&o.pause()},stop:()=>{o&&o.stop()}}},useForce:U,useForceTogether:function(e,t){const r=t.force,n=U();t.force=e=>{r(e),n()}},useMobCtx:function(){return P("ctx")},useNamespace:q,useProps:T,usePropsWatch:function(e,t,r){const n=T();Object.prototype.hasOwnProperty.call(n,e)&&(h((()=>n[e]),((e,r)=>{t(W(e),W(r))}),r),t(W(n[e]),void 0))},useRouteKey:function(e,t,r){r||(r=w(""));r.value=e.value;const n=new Y(t);return h(e,((e,t)=>{e!==t&&n.nextChange((()=>{r.value=e}))})),r},useRouterQuery:function(){const e=A(),{query:t}=e;return t},useViewController:function(e){const t=T(),r=P("ctx",void 0);null==r||r.evt.emit("onForecast",t.modelData.name);const n=t.provider;let o;o=(null==n?void 0:n.createController)?n.createController(t.modelData,t.context,t.params,r):e(t.modelData,t.context,t.params,r);Z(t,o),ee(t,o),C("ctx",o.ctx),o.state=y(o.state),o.slotProps=y(o.slotProps),t.modal&&(o.modal=t.modal);o.force=U();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),o.created(),g((()=>o.destroyed())),o}});var S,k,D=Object.create,O=Object.defineProperty,j=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyNames,_=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty,G=(S={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(e,t){function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var r,n="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)r=e.charCodeAt(s);else{if(47===r)break;r=47}if(47===r){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",o=0):o=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),i=s,a=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=s,a=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===r&&-1!==a?++a:a=-1}return n}var o={resolve:function(){for(var e,t="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),r(a),0!==a.length&&(t=a+"/"+t,o=47===a.charCodeAt(0))}return t=n(t,!o),o?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(r(e),0===e.length)return".";var t=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!t)).length||t||(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return r(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=arguments[t];r(n),n.length>0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":o.normalize(e)},relative:function(e,t){if(r(e),r(t),e===t)return"";if((e=o.resolve(e))===(t=o.resolve(t)))return"";for(var n=1;n<e.length&&47===e.charCodeAt(n);++n);for(var i=e.length,a=i-n,s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var c=t.length-s,u=a<c?a:c,l=-1,p=0;p<=u;++p){if(p===u){if(c>u){if(47===t.charCodeAt(s+p))return t.slice(s+p+1);if(0===p)return t.slice(s+p)}else a>u&&(47===e.charCodeAt(n+p)?l=p:0===p&&(l=0));break}var d=e.charCodeAt(n+p);if(d!==t.charCodeAt(s+p))break;47===d&&(l=p)}var f="";for(p=n+l+1;p<=i;++p)p!==i&&47!==e.charCodeAt(p)||(0===f.length?f+="..":f+="/..");return f.length>0?f+t.slice(s+l):(s+=l,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(r(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?n?"/":".":n&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');r(e);var n,o=0,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,c=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!a){o=n+1;break}}else-1===c&&(a=!1,c=n+1),s>=0&&(u===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=c))}return o===i?i=c:-1===i&&(i=e.length),e.slice(o,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){o=n+1;break}}else-1===i&&(a=!1,i=n+1);return-1===i?"":e.slice(o,i)},extname:function(e){r(e);for(var t=-1,n=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(47!==c)-1===o&&(i=!1,o=s+1),46===c?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){n=s+1;break}}return-1===t||-1===o||0===a||1===a&&t===o-1&&t===n+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){r(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,o=e.charCodeAt(0),i=47===o;i?(t.root="/",n=1):n=0;for(var a=-1,s=0,c=-1,u=!0,l=e.length-1,p=0;l>=n;--l)if(47!==(o=e.charCodeAt(l)))-1===c&&(u=!1,c=l+1),46===o?-1===a?a=l:1!==p&&(p=1):-1!==a&&(p=-1);else if(!u){s=l+1;break}return-1===a||-1===c||0===p||1===p&&a===c-1&&a===s+1?-1!==c&&(t.base=t.name=0===s&&i?e.slice(1,c):e.slice(s,c)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,c)):(t.name=e.slice(s,a),t.base=e.slice(s,c)),t.ext=e.slice(a,c)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,t.exports=o}},function(){return k||(0,S[I(S)[0]])((k={exports:{}}).exports,k),k.exports}),V=((e,t,r)=>(r=null!=e?D(_(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of I(t))z.call(e,o)||o===r||O(e,o,{get:()=>t[o],enumerable:!(n=j(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:O(r,"default",{value:e,enumerable:!0}),e)))(G(),1);e("PluginFactory",class{constructor(){this.urlReg=/^http[s]?:\/\/[^\s]*/,this.cache=new Map,this.devPackages=new Map,this.pluginCache=new Map,this.pluginCodes=[],this.predefinedPlugins=new Map}registerPredefinedPlugin(e){this.predefinedPlugins.set(e.name,e)}register(e){this.pluginCodes.forEach((t=>{e.use(t)}))}async loadPredefinedPlugin(e){if(this.predefinedPlugins.has(e)){const t=this.predefinedPlugins.get(e);t&&await this.loadPluginRef(t.name,t.path)}}setPluginCode(e){this.pluginCodes.push(e),window.vueInstances.forEach((t=>{t.use(e)}))}setDevPlugin(e,t){this.devPackages.set(e,t)}async loadPlugin(e){if(!0===e.runtimeObject){const t=e;if(t)try{await this.loadPluginRef(t.rtobjectName,t.rtobjectRepo)}catch(e){throw new r(t,"配置加载失败")}}return!1}async loadPluginRef(e,t){if(this.pluginCache.has(e))return!0;let r=null;const n=this.devPackages.get(e);if(n)r=await n();else{const e=t,n=this.urlReg.test(e)?"".concat(e,"/package.json"):"".concat(ibiz.env.pluginBaseUrl,"/").concat((0,V.join)(e,"package.json")),o=await ibiz.net.axios({method:"get",headers:{"Access-Control-Allow-Origin":"*"},url:n});if(200!==o.status)throw new Error("配置加载失败");r=o.data}const o=new u(e,t,r);if(o)try{return await this.loadScript(o),this.pluginCache.set(e,o),!0}catch(e){ibiz.log.error(e)}return!1}async loadScript(e){const r=e.repo,{name:o,version:i,system:a,module:s,styles:c}=e.config;let u="";if(u=this.devPackages.has(o)?(0,V.join)("".concat(o,"@").concat(i),s):ibiz.env.dev?this.urlReg.test(r)?"".concat(r,"/").concat((0,V.join)(s)):"".concat(ibiz.env.pluginBaseUrl,"/").concat(r,"/").concat((0,V.join)(s)):(0,V.join)(r,a),u){if(this.cache.has(u))return;let e=null;const i=this.parseUrl(u),a=("string"==typeof c?[c]:c).map((e=>this.parseUrl(V.default.join(r,e))));if(this.devPackages.has(o)){const e=this.devPackages.get(o),t=await e();this.setPluginCode(t.default),this.cache.set(u,!0)}else ibiz.env.dev?e=await t.import(u):(System.addImportMap({imports:{[o]:i},styles:{[o]:a}}),e=await System.import(o));if(!e)throw new n("远程插件加载失败, 未找到文件或文件内容格式不正确");if(!e.default)throw new n("远程插件加载失败, 远程插件未找到[default]默认导出");this.setPluginCode(e.default),this.cache.set(u,!0)}}parseUrl(e){if(this.urlReg.test(e))return e;let t="";t=this.urlReg.test(ibiz.env.pluginBaseUrl)?e.startsWith("/")?ibiz.env.pluginBaseUrl+e:"".concat(ibiz.env.pluginBaseUrl,"/").concat(e):"".concat((0,V.join)(ibiz.env.pluginBaseUrl,e));const{origin:r,pathname:n}=window.location;return n.endsWith("/")&&t.startsWith("/")&&(t=t.substring(1)),t="".concat(r).concat(n).concat(t),t}});function B(e,t,r={}){let n=i,a=i,s=i;const c=()=>{n(),n=i,a=i,s=i};return h(e,((e,i)=>{if(e!==i)if(d(e))c();else{const i=o((null==e?void 0:e.$el)||e,t,r);n=i.stop,a=i.pause,s=i.proceed}}),{immediate:!0}),g((()=>{n!==i&&c()})),{stop:()=>n(),pause:()=>a(),proceed:()=>s()}}function T(){return m().proxy.$props}function W(e){return v(e)?b(e):e}function U(){const e=m().proxy;return t=>{e.$forceUpdate(),t&&x(t)&&e.$nextTick((()=>{t()}))}}var L=e("EmptyVNode",f("EmptyVNode"));function M(){return P("ctx")}function F(e,t,r,n={}){let o=i;return h(e,((e,s)=>{e!==s&&(d(e)?(o(),o=i):o=a((null==e?void 0:e.$el)||e,t,r,n))}),{immediate:!0}),g((()=>{o!==i&&o()})),()=>{o()}}function q(e){return new s(e,ibiz.env.namespace)}function H(e){const t=e.getOwnContext(),r=["srfsessionid","srfappid"];return Object.keys(t).forEach((e=>{r.includes(e)&&delete t[e]})),t}var $=e("excludeViewTypes",[c.DE_GRID_VIEW,c.DE_GRID_EXP_VIEW,c.DE_LIST_VIEW,c.DE_LIST_EXP_VIEW,c.DE_DATA_VIEW,c.DE_DATAVIEW_EXP_VIEW,c.DE_CALENDAR_VIEW,c.DE_CALENDAR_EXP_VIEW,c.DE_CHART_VIEW,c.DE_CHART_EXP_VIEW,c.DE_KANBAN_VIEW]);async function X(e,t,r){if(r){const n=await ibiz.hub.getAppDataEntity(r);let o=l(t,n);if(o||(o={path:"",keys:[n.codeName.toLowerCase()]}),o){const r=e.pathNodes[1].context,n={};o.keys.forEach((e=>{t&&Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e],r&&delete r[e])})),e.pathNodes[0].context=n}}else e.pathNodes[0].context=void 0}function J(e){const t=e.matched.length,r=[];for(let n=1;n<=t;n++){const t=e.path.split("/")[2*n],o=e.params["params".concat(n)];let i,a,s;i=o&&o!==ibiz.env.routePlaceholder?R.parse(o,{strictNullHandling:!0,delimiter:";"}):void 0,i&&(1===n?(a=i,i=void 0):(i.srfnavctx&&(a=JSON.parse(decodeURIComponent(i.srfnavctx)),delete i.srfnavctx),i.srfnav&&(s=i.srfnav,delete i.srfnav))),r.push({viewName:t,context:a,params:i,srfnav:s})}let n;return e.params.appContext&&e.params.appContext!==ibiz.env.routePlaceholder&&(n=R.parse(e.params.appContext,{strictNullHandling:!0,delimiter:";"})),{appContext:n,pathNodes:r}}function K(e){let t="";return e.appContext?t+="/".concat(R.stringify(e.appContext,{delimiter:";",strictNullHandling:!0})):t+="/".concat(ibiz.env.routePlaceholder),e.pathNodes.forEach(((e,r)=>{t+="/".concat(e.viewName,"/");let n={};if(0===r)N(e.context)&&(n=e.context);else{if(n=N(e.params)?e.params:{},N(e.context)){const t=JSON.stringify(e.context);"{}"!==t&&(n.srfnavctx=encodeURIComponent(t))}e.srfnav&&(n.srfnav=e.srfnav)}const o=R.stringify(n,{delimiter:";",strictNullHandling:!0,skipNulls:!0});N(o)?t+=o:t+=ibiz.env.routePlaceholder})),t}function Q(e,t,r=!0){if(e.matched.length<t)return"";if(e.name)return e.path;const n=J(e);return n.pathNodes.length<t?e.path:(n.pathNodes.length>t&&(n.pathNodes=n.pathNodes.slice(0,t)),r&&delete n.pathNodes[t-1].srfnav,K(n))}var Y=e("RouteListener",class{constructor(e,t){this.callbacks=[],this.timers=[],this.wait=500,t&&(this.wait=t),h((()=>e.path),((e,t)=>{if(e!==t){if(this.callbacks.length)for(let e=0;e<this.callbacks.length;e++){(0,this.callbacks[e])()}if(this.callbacks=[],this.timers.length)for(let e=0;e<this.timers.length;e++){const t=this.timers[e];clearTimeout(t)}this.timers=[]}}))}nextChange(e){e&&(this.timers.push(setTimeout((()=>{e();const t=this.callbacks.findIndex((t=>t===e));this.callbacks.splice(t,1)}),this.wait)),this.callbacks.push(e))}});e("withInstall",((e,t)=>(e.install=e=>{t(e)},e)));function Z(e,t){h((()=>({context:e.context,params:e.params})),(e=>{t.context.reset({},e.context),E(t.params),Object.assign(t.params,e.params),t.handleContextParams(),ibiz.log.debug("".concat(t.model.id,"的上下文或视图参数变更:"),e)}))}function ee(e,t){h((()=>e.state?{...e.state}:{}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("视图 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{t.state[e]=n[e]}))}),{immediate:!0})}var te=e("RequiredProp",class{constructor(e,t,r){this.required=!0,t&&(this.default=t),r&&(this.validator=r),this.type=e}});function re(){return{value:String,controller:new te(Object),data:new te(Object),disabled:{type:Boolean},readonly:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1}}}function ne(){return{hasError:{type:Boolean}}}function oe(){return{...re(),value:[String,Number]}}function ie(){return{...re(),value:Number}}function ae(){return{...re(),value:String}}function se(){return{...re(),value:[String,Number]}}function ce(){return{...re(),value:[String,Number]}}function ue(){return{...re(),value:[String,Number]}}function le(){return{...re(),value:[String,Number]}}function pe(){return{...re(),value:[String,Array,Object,Number]}}function de(){return{...re(),value:[String,Number]}}function fe(){return{...re(),value:[String,Number]}}function he(){return{...re(),value:[String,Number]}}function ge(){return{...re(),value:[String,Number]}}function me(){return{...re(),value:[String,Number]}}function ve(){return{...re(),value:[String,Number]}}function be(){return{...re(),value:[String,Number,Array]}}function Pe(){return{...re(),value:[String,Number]}}function ye(){return{...re(),value:[String,Number]}}function we(){return{...re(),value:[String,Number]}}function Ce(){return{...re(),value:String}}function xe(){return{...re(),value:[String,Number]}}function Ne(){return{...re(),value:String,language:{type:String},theme:{type:String}}}function Ee(){return{...re(),value:String}}function Ae(){return{...re(),data:{type:Object,required:!1},controller:{type:Object,required:!1},disabled:{type:Boolean,required:!1}}}function Re(){return{...re(),value:[Array,Array]}}function Se(){return{...re(),value:String}}function ke(){return{...re(),value:String}}}}}));
|
|
1
|
+
System.register(["@ibiz-template/core","@ibiz-template/runtime","ramda","vue","qx-util","vue-router","qs"],(function(e,t){"use strict";var r,n,o,i,a,s,c,u,l,p,d,f,h,g,m,v,b,P,y,w,C,x,N,E,A,R;return{setters:[function(e){r=e.RuntimeModelError,n=e.RuntimeError,o=e.onClickOutside,i=e.NOOP,a=e.listenJSEvent,s=e.Namespace},function(e){c=e.ViewType,u=e.RemotePluginItem,l=e.getMatchResPath,p=e.calcDeCodeNameById},function(e){d=e.isNil},function(e){f=e.createCommentVNode,h=e.watch,g=e.onBeforeUnmount,m=e.getCurrentInstance,v=e.isReactive,b=e.toRaw,P=e.inject,y=e.reactive,w=e.ref,C=e.provide},function(e){x=e.isFunc,N=e.notNilEmpty,E=e.clearAll},function(e){A=e.useRoute},function(e){R=e.default}],execute:function(){e({calcResRoutePath:X,generateRoutePath:async function(e,t,r,n){const o=J(t);let i=2;r.toRouteDepth?(i=r.toRouteDepth,delete r.toRouteDepth):ibiz.env.isMob&&(o.pathNodes[0]={viewName:"home"});if(o.pathNodes.splice(i-1,o.pathNodes.length-i+1),r.currentSrfNav){const e=o.pathNodes[o.pathNodes.length-1];e.params=e.params||{},e.srfnav=r.currentSrfNav,delete r.currentSrfNav}t.fullPath.startsWith("/appredirectview")&&((null==n?void 0:n.srfindexname)?(o.pathNodes[0].viewName=n.srfindexname,delete n.srfindexname):o.pathNodes[0].viewName="index");if(o.pathNodes.push({viewName:e.codeName.toLowerCase(),context:H(r),params:n}),2===i&&(await X(o,r,e.appDataEntityId),$.includes(e.viewType))){const t=p(e.appDataEntityId);delete o.pathNodes[0].context[t]}return{path:K(o)}},getArrayProps:Re,getAutoCompleteProps:xe,getCascaderProps:Se,getCheckboxListProps:ue,getCheckboxProps:le,getCodeProps:Ne,getColorPickerProps:ke,getDataPickerProps:pe,getDatePickerProps:de,getDateRangeProps:fe,getDropdownProps:ce,getEditorEmits:function(){return{change:(e,t)=>!0,blur:()=>!0,focus:()=>!0}},getEditorProps:re,getGridArrayProps:function(){return{...Re(),...ne()}},getGridAutoCompleteProps:function(){return{...xe(),...ne()}},getGridCascaderProps:function(){return{...Se(),...ne()}},getGridCheckboxListProps:function(){return{...ue(),...ne()}},getGridCheckboxProps:function(){return{...le(),...ne()}},getGridCodeProps:function(){return{...Ne(),...ne()}},getGridColorPickerProps:function(){return{...ke(),...ne()}},getGridDataPickerProps:function(){return{...pe(),...ne()}},getGridDatePickerProps:function(){return{...de(),...ne()}},getGridDateRangeProps:function(){return{...fe(),...ne()}},getGridDropdownProps:function(){return{...ce(),...ne()}},getGridEditorCommonProps:ne,getGridEditorEmits:function(){return{change:(e,t)=>!0,rowSave:()=>!0}},getGridHtmlProps:function(){return{...Ee(),...ne()}},getGridInputIpProps:function(){return{...ae(),...ne()}},getGridInputNumberProps:function(){return{...ie(),...ne()}},getGridInputProps:function(){return{...oe(),...ne()}},getGridListBoxProps:function(){return{...he(),...ne()}},getGridMarkDownProps:function(){return{...Ae(),...ne()}},getGridNumberRangeProps:function(){return{...ge(),...ne()}},getGridRadioProps:function(){return{...me(),...ne()}},getGridRateProps:function(){return{...ve(),...ne()}},getGridRawProps:function(){return{...be(),...ne()}},getGridSliderProps:function(){return{...Pe(),...ne()}},getGridSpanProps:function(){return{...se(),...ne()}},getGridStepperProps:function(){return{...ye(),...ne()}},getGridSwitchProps:function(){return{...we(),...ne()}},getGridUploadProps:function(){return{...Ce(),...ne()}},getHtmlProps:Ee,getInputIpProps:ae,getInputNumberProps:ie,getInputProps:oe,getListBoxProps:he,getMarkDownProps:Ae,getNestedRoutePath:Q,getNumberRangeProps:ge,getOrigin:W,getOwnRouteContext:H,getRadioProps:me,getRateProps:ve,getRawProps:be,getSliderProps:Pe,getSpanProps:se,getStepperProps:ye,getSwitchProps:we,getUploadProps:Ce,isEmptyVNode:function(e){if(!Array.isArray(e))return e===L;return 1===e.length&&e[0]===L},onRouteChange:function(e,t){const r=A();if(!r)throw new n("无法正确获取route,可能是依赖问题");h((()=>null==r?void 0:r.path),(()=>{const n=Q(r,t);e({currentKey:n,fullPath:r.fullPath})}),{immediate:!0})},parseRouteViewData:async function(e,t){var r;const o=J(e);let i=o.pathNodes[t-1].viewName;if(!i)throw new n("第".concat(t,"级路由不存在视图标识"));"index"===i&&(i=ibiz.hub.defaultAppIndexViewName);const a=await ibiz.hub.getAppView(i);if(!a)throw new n("找不到视图".concat(i));const s={};(null==(r=ibiz.appData)?void 0:r.context)&&Object.assign(s,ibiz.appData.context);o.appContext&&Object.assign(s,o.appContext);if(1!==t)for(let e=0;e<t;e++){const t=o.pathNodes[e];N(t.context)&&Object.assign(s,t.context)}const{params:c,srfnav:u}=o.pathNodes[t-1];return{viewModel:a,context:s,params:c,srfnav:u}},prepareControl:function(e){const t=q("control"),{controlType:r,sysCss:n,codeName:o}=e.model,i=r.toLowerCase(),a=null==n?void 0:n.cssName,s=q("control-".concat(i)),c=[t.b(),t.b(i),t.m(o)];a&&c.push(a);return{controlClass:c,ns:s}},renderString:function(e){if(d(e))return"";if("string"==typeof e)return e;try{return e.toString()}catch(t){ibiz.log.error(e,"转换成字符串失败",t)}return""},route2routePath:J,routePath2string:K,useClickOutside:B,useControlController:function(e){const t=M(),r=T();t.evt.emit("onForecast",r.modelData.name);const n=r.provider;let o;o=(null==n?void 0:n.createController)?n.createController(r.modelData,r.context,r.params,t):e(r.modelData,r.context,r.params,t);(function(e,t){h((()=>({context:e.context,params:e.params})),(e=>{t.updateContextParams({...e}),ibiz.log.debug("".concat(t.model.id,"的上下文或视图参数变更:"),e)}))})(r,o),function(e,t){const r=["context","params","modelData"];h((()=>{const t={};return Object.keys(e).forEach((n=>{r.includes(n)||(t[n]=e[n])})),t}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("部件 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{void 0!==n[e]&&(t.state[e]=n[e])}))}),{immediate:!0})}(r,o),o.state=y(o.state),o.force=U();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),i.$emit("controllerAppear",o),o.created(),g((()=>o.destroyed())),o},useController:function(e){e.force=U()},useCtx:M,useEventListener:F,useFocusAndBlur:function(e,t){const r=w(),n=w(!1);let o;const i=()=>{n.value||ibiz.log.debug("没有聚焦,不触发失焦"),t(),o.stop(),n.value=!1};return F(r,"click",(t=>{n.value||(o=B(r,(()=>{i()})),n.value=!0,e())}),{capture:!0}),{componentRef:r,isFocus:n,doBlur:i,pause:()=>{o&&o.pause()},stop:()=>{o&&o.stop()}}},useForce:U,useForceTogether:function(e,t){const r=t.force,n=U();t.force=e=>{r(e),n()}},useMobCtx:function(){return P("ctx")},useNamespace:q,useProps:T,usePropsWatch:function(e,t,r){const n=T();Object.prototype.hasOwnProperty.call(n,e)&&(h((()=>n[e]),((e,r)=>{t(W(e),W(r))}),r),t(W(n[e]),void 0))},useRouteKey:function(e,t,r){r||(r=w(""));r.value=e.value;const n=new Y(t);return h(e,((e,t)=>{e!==t&&n.nextChange((()=>{r.value=e}))})),r},useRouterQuery:function(){const e=A(),{query:t}=e;return t},useViewController:function(e){const t=T(),r=P("ctx",void 0);null==r||r.evt.emit("onForecast",t.modelData.name);const n=t.provider;let o;o=(null==n?void 0:n.createController)?n.createController(t.modelData,t.context,t.params,r):e(t.modelData,t.context,t.params,r);Z(t,o),ee(t,o),C("ctx",o.ctx),o.state=y(o.state),o.slotProps=y(o.slotProps),t.modal&&(o.modal=t.modal);o.force=U();const i=m().proxy;return o.evt.onAll(((e,t)=>{i.$emit(e.slice(2),t)})),o.created(),g((()=>o.destroyed())),o}});var S,k,D=Object.create,O=Object.defineProperty,j=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyNames,_=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty,G=(S={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(e,t){function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var r,n="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)r=e.charCodeAt(s);else{if(47===r)break;r=47}if(47===r){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",o=0):o=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),i=s,a=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=s,a=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===r&&-1!==a?++a:a=-1}return n}var o={resolve:function(){for(var e,t="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),r(a),0!==a.length&&(t=a+"/"+t,o=47===a.charCodeAt(0))}return t=n(t,!o),o?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(r(e),0===e.length)return".";var t=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!t)).length||t||(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return r(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=arguments[t];r(n),n.length>0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":o.normalize(e)},relative:function(e,t){if(r(e),r(t),e===t)return"";if((e=o.resolve(e))===(t=o.resolve(t)))return"";for(var n=1;n<e.length&&47===e.charCodeAt(n);++n);for(var i=e.length,a=i-n,s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var c=t.length-s,u=a<c?a:c,l=-1,p=0;p<=u;++p){if(p===u){if(c>u){if(47===t.charCodeAt(s+p))return t.slice(s+p+1);if(0===p)return t.slice(s+p)}else a>u&&(47===e.charCodeAt(n+p)?l=p:0===p&&(l=0));break}var d=e.charCodeAt(n+p);if(d!==t.charCodeAt(s+p))break;47===d&&(l=p)}var f="";for(p=n+l+1;p<=i;++p)p!==i&&47!==e.charCodeAt(p)||(0===f.length?f+="..":f+="/..");return f.length>0?f+t.slice(s+l):(s+=l,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(r(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?n?"/":".":n&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');r(e);var n,o=0,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,c=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!a){o=n+1;break}}else-1===c&&(a=!1,c=n+1),s>=0&&(u===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=c))}return o===i?i=c:-1===i&&(i=e.length),e.slice(o,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){o=n+1;break}}else-1===i&&(a=!1,i=n+1);return-1===i?"":e.slice(o,i)},extname:function(e){r(e);for(var t=-1,n=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(47!==c)-1===o&&(i=!1,o=s+1),46===c?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){n=s+1;break}}return-1===t||-1===o||0===a||1===a&&t===o-1&&t===n+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){r(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,o=e.charCodeAt(0),i=47===o;i?(t.root="/",n=1):n=0;for(var a=-1,s=0,c=-1,u=!0,l=e.length-1,p=0;l>=n;--l)if(47!==(o=e.charCodeAt(l)))-1===c&&(u=!1,c=l+1),46===o?-1===a?a=l:1!==p&&(p=1):-1!==a&&(p=-1);else if(!u){s=l+1;break}return-1===a||-1===c||0===p||1===p&&a===c-1&&a===s+1?-1!==c&&(t.base=t.name=0===s&&i?e.slice(1,c):e.slice(s,c)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,c)):(t.name=e.slice(s,a),t.base=e.slice(s,c)),t.ext=e.slice(a,c)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,t.exports=o}},function(){return k||(0,S[I(S)[0]])((k={exports:{}}).exports,k),k.exports}),V=((e,t,r)=>(r=null!=e?D(_(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of I(t))z.call(e,o)||o===r||O(e,o,{get:()=>t[o],enumerable:!(n=j(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:O(r,"default",{value:e,enumerable:!0}),e)))(G(),1);e("PluginFactory",class{constructor(){this.urlReg=/^http[s]?:\/\/[^\s]*/,this.cache=new Map,this.devPackages=new Map,this.pluginCache=new Map,this.pluginCodes=[],this.predefinedPlugins=new Map}registerPredefinedPlugin(e){this.predefinedPlugins.set(e.name,e)}register(e){this.pluginCodes.forEach((t=>{e.use(t)}))}async loadPredefinedPlugin(e){if(this.predefinedPlugins.has(e)){const t=this.predefinedPlugins.get(e);t&&await this.loadPluginRef(t.name,t.path)}}setPluginCode(e){this.pluginCodes.push(e),window.vueInstances.forEach((t=>{t.use(e)}))}setDevPlugin(e,t){this.devPackages.set(e,t)}async loadPlugin(e){if(!0===e.runtimeObject){const t=e;if(t)try{await this.loadPluginRef(t.rtobjectName,t.rtobjectRepo)}catch(e){throw new r(t,"配置加载失败")}}return!1}async loadPluginRef(e,t){if(this.pluginCache.has(e))return!0;let r=null;const n=this.devPackages.get(e);if(n)r=await n();else{const e=t,n=this.urlReg.test(e)?"".concat(e,"/package.json"):"".concat(ibiz.env.pluginBaseUrl,"/").concat((0,V.join)(e,"package.json")),o=await ibiz.net.axios({method:"get",headers:{"Access-Control-Allow-Origin":"*"},url:n});if(200!==o.status)throw new Error("配置加载失败");r=o.data}const o=new u(e,t,r);if(o)try{return await this.loadScript(o),this.pluginCache.set(e,o),!0}catch(e){ibiz.log.error(e)}return!1}async loadScript(e){const r=e.repo,{name:o,version:i,system:a,module:s,styles:c}=e.config;let u="";if(u=this.devPackages.has(o)?(0,V.join)("".concat(o,"@").concat(i),s):ibiz.env.dev?this.urlReg.test(r)?"".concat(r,"/").concat((0,V.join)(s)):"".concat(ibiz.env.pluginBaseUrl,"/").concat(r,"/").concat((0,V.join)(s)):(0,V.join)(r,a),u){if(this.cache.has(u))return;let e=null;const i=this.parseUrl(u),a=("string"==typeof c?[c]:c).map((e=>this.parseUrl(V.default.join(r,e))));if(this.devPackages.has(o)){const e=this.devPackages.get(o),t=await e();this.setPluginCode(t.default),this.cache.set(u,!0)}else ibiz.env.dev?e=await t.import(u):(System.addImportMap({imports:{[o]:i},styles:{[o]:a}}),e=await System.import(o));if(!e)throw new n("远程插件加载失败, 未找到文件或文件内容格式不正确");if(!e.default)throw new n("远程插件加载失败, 远程插件未找到[default]默认导出");this.setPluginCode(e.default),this.cache.set(u,!0)}}parseUrl(e){if(this.urlReg.test(e))return e;let t="";t=this.urlReg.test(ibiz.env.pluginBaseUrl)?e.startsWith("/")?ibiz.env.pluginBaseUrl+e:"".concat(ibiz.env.pluginBaseUrl,"/").concat(e):"".concat((0,V.join)(ibiz.env.pluginBaseUrl,e));const{origin:r,pathname:n}=window.location;return n.endsWith("/")&&t.startsWith("/")&&(t=t.substring(1)),t="".concat(r).concat(n).concat(t),t}});function B(e,t,r={}){let n=i,a=i,s=i;const c=()=>{n(),n=i,a=i,s=i};return h(e,((e,i)=>{if(e!==i)if(d(e))c();else{const i=o((null==e?void 0:e.$el)||e,t,r);n=i.stop,a=i.pause,s=i.proceed}}),{immediate:!0}),g((()=>{n!==i&&c()})),{stop:()=>n(),pause:()=>a(),proceed:()=>s()}}function T(){return m().proxy.$props}function W(e){return v(e)?b(e):e}function U(){const e=m().proxy;return t=>{e.$forceUpdate(),t&&x(t)&&e.$nextTick((()=>{t()}))}}var L=e("EmptyVNode",f("EmptyVNode"));function M(){return P("ctx")}function F(e,t,r,n={}){let o=i;return h(e,((e,s)=>{e!==s&&(d(e)?(o(),o=i):o=a((null==e?void 0:e.$el)||e,t,r,n))}),{immediate:!0}),g((()=>{o!==i&&o()})),()=>{o()}}function q(e){return new s(e,ibiz.env.namespace)}function H(e){const t=e.getOwnContext(),r=["srfsessionid","srfappid"];return Object.keys(t).forEach((e=>{r.includes(e)&&delete t[e]})),t}var $=e("excludeViewTypes",[c.DE_GRID_VIEW,c.DE_GRID_EXP_VIEW,c.DE_LIST_VIEW,c.DE_LIST_EXP_VIEW,c.DE_DATA_VIEW,c.DE_DATAVIEW_EXP_VIEW,c.DE_CALENDAR_VIEW,c.DE_CALENDAR_EXP_VIEW,c.DE_CHART_VIEW,c.DE_CHART_EXP_VIEW,c.DE_KANBAN_VIEW]);async function X(e,t,r){if(r){const n=await ibiz.hub.getAppDataEntity(r);let o=l(t,n);if(o||(o={path:"",keys:[n.codeName.toLowerCase()]}),o){const r=e.pathNodes[1].context,n={};o.keys.forEach((e=>{t&&Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e],r&&delete r[e])})),e.pathNodes[0].context=n}}else e.pathNodes[0].context=void 0}function J(e){const t=e.matched.length,r=[];for(let n=1;n<=t;n++){const t=e.path.split("/")[2*n],o=e.params["params".concat(n)];let i,a,s;i=o&&o!==ibiz.env.routePlaceholder?R.parse(o,{strictNullHandling:!0,delimiter:";"}):void 0,i&&(1===n?(a=i,i=void 0):(i.srfnavctx&&(a=JSON.parse(decodeURIComponent(i.srfnavctx)),delete i.srfnavctx),i.srfnav&&(s=i.srfnav,delete i.srfnav))),r.push({viewName:t,context:a,params:i,srfnav:s})}let n;return e.params.appContext&&e.params.appContext!==ibiz.env.routePlaceholder&&(n=R.parse(e.params.appContext,{strictNullHandling:!0,delimiter:";"})),{appContext:n,pathNodes:r}}function K(e){let t="";return e.appContext?t+="/".concat(R.stringify(e.appContext,{delimiter:";",strictNullHandling:!0})):t+="/".concat(ibiz.env.routePlaceholder),e.pathNodes.forEach(((e,r)=>{t+="/".concat(e.viewName,"/");let n={};if(0===r)N(e.context)&&(n=e.context);else{if(n=N(e.params)?e.params:{},N(e.context)){const t=JSON.stringify(e.context);"{}"!==t&&(n.srfnavctx=encodeURIComponent(t))}e.srfnav&&(n.srfnav=e.srfnav)}const o=R.stringify(n,{delimiter:";",strictNullHandling:!0,skipNulls:!0});N(o)?t+=o:t+=ibiz.env.routePlaceholder})),t}function Q(e,t,r=!0){if(e.matched.length<t)return"";if(e.name)return e.path;const n=J(e);return n.pathNodes.length<t?e.path:(n.pathNodes.length>t&&(n.pathNodes=n.pathNodes.slice(0,t)),r&&delete n.pathNodes[t-1].srfnav,K(n))}var Y=e("RouteListener",class{constructor(e,t){this.callbacks=[],this.timers=[],this.wait=500,t&&(this.wait=t),h((()=>e.path),((e,t)=>{if(e!==t){if(this.callbacks.length)for(let e=0;e<this.callbacks.length;e++){(0,this.callbacks[e])()}if(this.callbacks=[],this.timers.length)for(let e=0;e<this.timers.length;e++){const t=this.timers[e];clearTimeout(t)}this.timers=[]}}))}nextChange(e){e&&(this.timers.push(setTimeout((()=>{e();const t=this.callbacks.findIndex((t=>t===e));this.callbacks.splice(t,1)}),this.wait)),this.callbacks.push(e))}});e("withInstall",((e,t)=>(e.install=e=>{t(e)},e)));function Z(e,t){h((()=>({context:e.context,params:e.params})),(e=>{t.context.reset({},e.context),E(t.params),Object.assign(t.params,e.params),t.handleContextParams(),ibiz.log.debug("".concat(t.model.id,"的上下文或视图参数变更:"),e)}))}function ee(e,t){h((()=>e.state?{...e.state}:{}),((e,r)=>{const n={};Object.keys(e).forEach((t=>{e[t]!==(r||{})[t]&&(n[t]=e[t])})),ibiz.log.debug("视图 [".concat(t.model.name,"] state 变更"),n),Object.keys(n).forEach((e=>{t.state[e]=n[e]}))}),{immediate:!0})}var te=e("RequiredProp",class{constructor(e,t,r){this.required=!0,t&&(this.default=t),r&&(this.validator=r),this.type=e}});function re(){return{value:String,controller:new te(Object),data:new te(Object),disabled:{type:Boolean},readonly:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1}}}function ne(){return{hasError:{type:Boolean}}}function oe(){return{...re(),value:[String,Number]}}function ie(){return{...re(),value:Number}}function ae(){return{...re(),value:String}}function se(){return{...re(),value:[String,Number]}}function ce(){return{...re(),value:[String,Number]}}function ue(){return{...re(),value:[String,Number]}}function le(){return{...re(),value:[String,Number]}}function pe(){return{...re(),value:[String,Array,Object,Number]}}function de(){return{...re(),value:[String,Number]}}function fe(){return{...re(),value:[String,Number]}}function he(){return{...re(),value:[String,Number]}}function ge(){return{...re(),value:[String,Number]}}function me(){return{...re(),value:[String,Number]}}function ve(){return{...re(),value:[String,Number]}}function be(){return{...re(),value:[String,Number,Array]}}function Pe(){return{...re(),value:[String,Number]}}function ye(){return{...re(),value:[String,Number]}}function we(){return{...re(),value:[String,Number]}}function Ce(){return{...re(),value:String}}function xe(){return{...re(),value:[String,Number]}}function Ne(){return{...re(),value:String,language:{type:String},theme:{type:String}}}function Ee(){return{...re(),value:String}}function Ae(){return{...re(),data:{type:Object,required:!1},controller:{type:Object,required:!1},disabled:{type:Boolean,required:!1}}}function Re(){return{...re(),value:[Array,Array]}}function Se(){return{...re(),value:String}}function ke(){return{...re(),value:String}}}}}));
|
|
2
2
|
//# sourceMappingURL=index.system.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.system.min.js","sources":["index.esm.js"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\nvar require_path_browserify = __commonJS({\n \"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\"(exports, module) {\n \"use strict\";\n function assertPath(path2) {\n if (typeof path2 !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path2));\n }\n }\n function normalizeStringPosix(path2, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path2.length; ++i) {\n if (i < path2.length)\n code = path2.charCodeAt(i);\n else if (code === 47)\n break;\n else\n code = 47;\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += \"/..\";\n else\n res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += \"/\" + path2.slice(lastSlash + 1, i);\n else\n res = path2.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n }\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n }\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path2;\n if (i >= 0)\n path2 = arguments[i];\n else {\n if (cwd === void 0)\n cwd = process.cwd();\n path2 = cwd;\n }\n assertPath(path2);\n if (path2.length === 0) {\n continue;\n }\n resolvedPath = path2 + \"/\" + resolvedPath;\n resolvedAbsolute = path2.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return \"/\" + resolvedPath;\n else\n return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var isAbsolute = path2.charCodeAt(0) === 47;\n var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;\n path2 = normalizeStringPosix(path2, !isAbsolute);\n if (path2.length === 0 && !isAbsolute)\n path2 = \".\";\n if (path2.length > 0 && trailingSeparator)\n path2 += \"/\";\n if (isAbsolute)\n return \"/\" + path2;\n return path2;\n },\n isAbsolute: function isAbsolute(path2) {\n assertPath(path2);\n return path2.length > 0 && path2.charCodeAt(0) === 47;\n },\n join: function join2() {\n if (arguments.length === 0)\n return \".\";\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === void 0)\n joined = arg;\n else\n joined += \"/\" + arg;\n }\n }\n if (joined === void 0)\n return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to)\n return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to)\n return \"\";\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47) {\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47) {\n lastCommonSep = i;\n } else if (i === 0) {\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47)\n lastCommonSep = i;\n }\n var out = \"\";\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47) {\n if (out.length === 0)\n out += \"..\";\n else\n out += \"/..\";\n }\n }\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47)\n ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path2) {\n return path2;\n },\n dirname: function dirname(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var code = path2.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path2.length - 1; i >= 1; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1)\n return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1)\n return \"//\";\n return path2.slice(0, end);\n },\n basename: function basename(path2, ext) {\n if (ext !== void 0 && typeof ext !== \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n assertPath(path2);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {\n if (ext.length === path2.length && ext === path2)\n return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n end = i;\n }\n } else {\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path2.length;\n return path2.slice(start, end);\n } else {\n for (i = path2.length - 1; i >= 0; --i) {\n if (path2.charCodeAt(i) === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1)\n return \"\";\n return path2.slice(start, end);\n }\n },\n extname: function extname(path2) {\n assertPath(path2);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var preDotState = 0;\n for (var i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path2.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format(\"/\", pathObject);\n },\n parse: function parse(path2) {\n assertPath(path2);\n var ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (path2.length === 0)\n return ret;\n var code = path2.charCodeAt(0);\n var isAbsolute = code === 47;\n var start;\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path2.length - 1;\n var preDotState = 0;\n for (; i >= start; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute)\n ret.base = ret.name = path2.slice(1, end);\n else\n ret.base = ret.name = path2.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path2.slice(1, startDot);\n ret.base = path2.slice(1, end);\n } else {\n ret.name = path2.slice(startPart, startDot);\n ret.base = path2.slice(startPart, end);\n }\n ret.ext = path2.slice(startDot, end);\n }\n if (startPart > 0)\n ret.dir = path2.slice(0, startPart - 1);\n else if (isAbsolute)\n ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n module.exports = posix;\n }\n});\n\n// src/plugin/plugin-factory/plugin-factory.ts\nvar import_path_browserify = __toESM(require_path_browserify(), 1);\nimport { RuntimeError, RuntimeModelError } from \"@ibiz-template/core\";\nimport {\n RemotePluginItem\n} from \"@ibiz-template/runtime\";\nvar PluginFactory = class {\n constructor() {\n /**\n * 是否为 http || https 开头\n *\n * @author chitanda\n * @date 2022-11-07 14:11:28\n * @protected\n */\n this.urlReg = /^http[s]?:\\/\\/[^\\s]*/;\n /**\n * 是否已经加载过文件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:17\n * @protected\n * @type {Map<string, boolean>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 本地开发测试包,只在本地开发生效\n *\n * @author chitanda\n * @date 2022-11-02 21:11:41\n * @protected\n */\n this.devPackages = /* @__PURE__ */ new Map();\n /**\n * 插件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:28\n * @protected\n * @type {Map<string, RemotePluginItem>}\n */\n this.pluginCache = /* @__PURE__ */ new Map();\n /**\n * 所有的插件\n *\n * @author chitanda\n * @date 2023-02-02 16:02:55\n * @protected\n * @type {Plugin[]}\n */\n this.pluginCodes = [];\n /**\n * 预定义插件集合\n *\n * @author chitanda\n * @date 2023-03-09 17:03:46\n * @protected\n * @type {Map<string, IPluginItem>}\n */\n this.predefinedPlugins = /* @__PURE__ */ new Map();\n }\n /**\n * 注册视图默认插件\n *\n * @author chitanda\n * @date 2023-02-06 21:02:10\n * @param {IPluginItem} plugin\n */\n registerPredefinedPlugin(plugin) {\n this.predefinedPlugins.set(plugin.name, plugin);\n }\n /**\n * 给入应用实例,将已经加载的过插件注入。主要用于多实例的情况\n *\n * @author chitanda\n * @date 2023-02-02 16:02:51\n * @param {App} app\n */\n register(app) {\n this.pluginCodes.forEach((plugin) => {\n app.use(plugin);\n });\n }\n /**\n * 加载预置插件\n *\n * @author chitanda\n * @date 2023-03-09 18:03:48\n * @param {string} name\n * @return {*} {Promise<void>}\n */\n async loadPredefinedPlugin(name) {\n if (this.predefinedPlugins.has(name)) {\n const plugin = this.predefinedPlugins.get(name);\n if (plugin) {\n await this.loadPluginRef(plugin.name, plugin.path);\n }\n }\n }\n /**\n * 插件刚加载完成回来,设置到目前所有的 vue 实例当中\n *\n * @author chitanda\n * @date 2023-02-02 17:02:38\n * @protected\n * @param {Plugin} code\n */\n setPluginCode(code) {\n this.pluginCodes.push(code);\n window.vueInstances.forEach((inst) => {\n inst.use(code);\n });\n }\n /**\n * 设置开发插件,用于本地调试\n *\n * @author chitanda\n * @date 2022-11-02 21:11:56\n * @param {string} name\n * @param {() => Promise<unknown>} fn\n */\n setDevPlugin(name, fn) {\n this.devPackages.set(name, fn);\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-10-31 14:10:13\n * @param {ISysPFPlugin} plugin\n * @return {*} {Promise<boolean>}\n */\n async loadPlugin(plugin) {\n if (plugin.runtimeObject === true) {\n const pluginRef = plugin;\n if (pluginRef) {\n try {\n await this.loadPluginRef(\n pluginRef.rtobjectName,\n pluginRef.rtobjectRepo\n );\n } catch (error) {\n throw new RuntimeModelError(pluginRef, \"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n }\n }\n return false;\n }\n /**\n * 加载应用插件\n *\n * @author chitanda\n * @date 2022-10-31 16:10:57\n * @param {IPSAppPFPluginRef} pluginRef\n * @return {*} {Promise<boolean>}\n */\n async loadPluginRef(rtObjectName, rtObjectRepo) {\n if (this.pluginCache.has(rtObjectName)) {\n return true;\n }\n let configData = null;\n const fn = this.devPackages.get(rtObjectName);\n if (fn) {\n configData = await fn();\n } else {\n const pluginPath = rtObjectRepo;\n const configUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/package.json\") : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat((0, import_path_browserify.join)(pluginPath, \"package.json\"));\n const res = await ibiz.net.axios({\n method: \"get\",\n headers: { \"Access-Control-Allow-Origin\": \"*\" },\n url: configUrl\n });\n if (res.status !== 200) {\n throw new Error(\"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n configData = res.data;\n }\n const remotePlugin = new RemotePluginItem(\n rtObjectName,\n rtObjectRepo,\n configData\n );\n if (remotePlugin) {\n try {\n await this.loadScript(remotePlugin);\n this.pluginCache.set(rtObjectName, remotePlugin);\n return true;\n } catch (error) {\n ibiz.log.error(error);\n }\n }\n return false;\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-11-02 14:11:31\n * @protected\n * @param {RemotePluginItem} remotePlugin\n * @return {*} {Promise<void>}\n */\n async loadScript(remotePlugin) {\n const pluginPath = remotePlugin.repo;\n const { name, version, system, module, styles } = remotePlugin.config;\n let scriptUrl = \"\";\n if (this.devPackages.has(name)) {\n scriptUrl = (0, import_path_browserify.join)(\"\".concat(name, \"@\").concat(version), module);\n } else if (ibiz.env.dev) {\n scriptUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module)) : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module));\n } else {\n scriptUrl = (0, import_path_browserify.join)(pluginPath, system);\n }\n if (scriptUrl) {\n if (this.cache.has(scriptUrl)) {\n return;\n }\n let data = null;\n const url = this.parseUrl(scriptUrl);\n const styleUrls = (typeof styles === \"string\" ? [styles] : styles).map(\n (styleUrl) => this.parseUrl(import_path_browserify.default.join(pluginPath, styleUrl))\n );\n if (this.devPackages.has(name)) {\n const fn = this.devPackages.get(name);\n const pluginModule = await fn();\n this.setPluginCode(pluginModule.default);\n this.cache.set(scriptUrl, true);\n } else if (ibiz.env.dev) {\n data = await import(\n scriptUrl\n /* @vite-ignore */\n );\n } else {\n System.addImportMap({\n imports: {\n [name]: url\n },\n styles: {\n [name]: styleUrls\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n });\n data = await System.import(name);\n }\n if (data) {\n if (data.default) {\n this.setPluginCode(data.default);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u8FDC\\u7A0B\\u63D2\\u4EF6\\u672A\\u627E\\u5230[default]\\u9ED8\\u8BA4\\u5BFC\\u51FA\"\n );\n }\n this.cache.set(scriptUrl, true);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u672A\\u627E\\u5230\\u6587\\u4EF6\\u6216\\u6587\\u4EF6\\u5185\\u5BB9\\u683C\\u5F0F\\u4E0D\\u6B63\\u786E\"\n );\n }\n }\n }\n /**\n * 编译请求文件地址\n *\n * @author chitanda\n * @date 2022-10-31 14:10:19\n * @protected\n * @param {string} script\n * @return {*} {string}\n */\n parseUrl(script) {\n if (this.urlReg.test(script)) {\n return script;\n }\n let url = \"\";\n if (this.urlReg.test(ibiz.env.pluginBaseUrl)) {\n if (script.startsWith(\"/\")) {\n url = ibiz.env.pluginBaseUrl + script;\n } else {\n url = \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(script);\n }\n } else {\n url = \"\".concat((0, import_path_browserify.join)(ibiz.env.pluginBaseUrl, script));\n }\n const { origin, pathname } = window.location;\n if (pathname.endsWith(\"/\") && url.startsWith(\"/\")) {\n url = url.substring(1);\n }\n url = \"\".concat(origin).concat(pathname).concat(url);\n return url;\n }\n};\n\n// src/use/click-outside/click-outside.ts\nimport {\n NOOP,\n onClickOutside\n} from \"@ibiz-template/core\";\nimport { isNil } from \"ramda\";\nimport { onBeforeUnmount, watch } from \"vue\";\nfunction useClickOutside(elRef, handler, options = {}) {\n let stop = NOOP;\n let pause = NOOP;\n let proceed = NOOP;\n const destroy = () => {\n stop();\n stop = NOOP;\n pause = NOOP;\n proceed = NOOP;\n };\n watch(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil(newVal)) {\n destroy();\n } else {\n const result = onClickOutside(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n handler,\n options\n );\n stop = result.stop;\n pause = result.pause;\n proceed = result.proceed;\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount(() => {\n if (stop !== NOOP) {\n destroy();\n }\n });\n return {\n stop: () => stop(),\n pause: () => pause(),\n proceed: () => proceed()\n };\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nimport { getCurrentInstance as getCurrentInstance2, onBeforeUnmount as onBeforeUnmount2, reactive, watch as watch3 } from \"vue\";\n\n// src/use/vue/vue.ts\nimport { isFunc } from \"qx-util\";\nimport {\n createCommentVNode,\n getCurrentInstance,\n isReactive,\n toRaw,\n watch as watch2\n} from \"vue\";\nfunction useProps() {\n const vue = getCurrentInstance().proxy;\n return vue.$props;\n}\nfunction getOrigin(val) {\n return isReactive(val) ? toRaw(val) : val;\n}\nfunction usePropsWatch(key, callback, options) {\n const props = useProps();\n if (Object.prototype.hasOwnProperty.call(props, key)) {\n watch2(\n () => props[key],\n (newVal, oldVal) => {\n callback(getOrigin(newVal), getOrigin(oldVal));\n },\n options\n );\n callback(getOrigin(props[key]), void 0);\n }\n}\nfunction useForce() {\n const vue = getCurrentInstance().proxy;\n return (callback) => {\n vue.$forceUpdate();\n if (callback && isFunc(callback)) {\n vue.$nextTick(() => {\n callback();\n });\n }\n };\n}\nfunction useForceTogether(vue, controller) {\n const orignForce = controller.force;\n const selfForce = useForce();\n controller.force = (callback) => {\n orignForce(callback);\n selfForce();\n };\n}\nfunction useController(controller) {\n controller.force = useForce();\n}\nvar EmptyVNode = createCommentVNode(\"EmptyVNode\");\nfunction isEmptyVNode(nodes) {\n if (!Array.isArray(nodes)) {\n return nodes === EmptyVNode;\n }\n return nodes.length === 1 && nodes[0] === EmptyVNode;\n}\n\n// src/use/util/index.ts\nimport { inject } from \"vue\";\nfunction useCtx() {\n return inject(\"ctx\");\n}\nfunction useMobCtx() {\n return inject(\"ctx\");\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nfunction watchAndUpdateState(props, control) {\n const excludeKeys = [\"context\", \"params\", \"modelData\"];\n watch3(\n () => {\n const watchProps = {};\n Object.keys(props).forEach((key) => {\n if (!excludeKeys.includes(key)) {\n watchProps[key] = props[key];\n }\n });\n return watchProps;\n },\n (newVal, oldVal) => {\n const changeProps = {};\n Object.keys(newVal).forEach((key) => {\n if (newVal[key] !== (oldVal || {})[key]) {\n changeProps[key] = newVal[key];\n }\n });\n ibiz.log.debug(\"\\u90E8\\u4EF6 [\".concat(control.model.name, \"] state \\u53D8\\u66F4\"), changeProps);\n Object.keys(changeProps).forEach((key) => {\n if (changeProps[key] !== void 0) {\n control.state[key] = changeProps[key];\n }\n });\n },\n { immediate: true }\n );\n}\nfunction useControlController(fn) {\n const ctx = useCtx();\n const props = useProps();\n ctx.evt.emit(\"onForecast\", props.modelData.name);\n const provider = props.provider;\n let c;\n if (provider == null ? void 0 : provider.createController) {\n c = provider.createController(\n props.modelData,\n props.context,\n props.params,\n ctx\n );\n } else {\n c = fn(props.modelData, props.context, props.params, ctx);\n }\n watchAndUpdateState(props, c);\n c.state = reactive(c.state);\n c.force = useForce();\n const vue = getCurrentInstance2().proxy;\n c.evt.onAll((eventName, event) => {\n vue.$emit(eventName.slice(2), event);\n });\n vue.$emit(\"controllerAppear\", c);\n c.created();\n onBeforeUnmount2(() => c.destroyed());\n return c;\n}\n\n// src/use/event/event.ts\nimport { listenJSEvent, NOOP as NOOP2 } from \"@ibiz-template/core\";\nimport { isNil as isNil2 } from \"ramda\";\nimport { onBeforeUnmount as onBeforeUnmount3, watch as watch4 } from \"vue\";\nfunction useEventListener(elRef, eventName, listener, options = {}) {\n let cleanup = NOOP2;\n watch4(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil2(newVal)) {\n cleanup();\n cleanup = NOOP2;\n } else {\n cleanup = listenJSEvent(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n eventName,\n listener,\n options\n );\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount3(() => {\n if (cleanup !== NOOP2) {\n cleanup();\n }\n });\n return () => {\n cleanup();\n };\n}\n\n// src/use/focus-blur/focus-blur.ts\nimport { ref } from \"vue\";\nfunction useFocusAndBlur(focus, blur) {\n const componentRef = ref();\n const isFocus = ref(false);\n let outsideFuns;\n const doBlur = () => {\n if (!isFocus.value) {\n ibiz.log.debug(\"\\u6CA1\\u6709\\u805A\\u7126\\uFF0C\\u4E0D\\u89E6\\u53D1\\u5931\\u7126\");\n }\n blur();\n outsideFuns.stop();\n isFocus.value = false;\n };\n const pause = () => {\n if (outsideFuns) {\n outsideFuns.pause();\n }\n };\n const stop = () => {\n if (outsideFuns) {\n outsideFuns.stop();\n }\n };\n useEventListener(\n componentRef,\n \"click\",\n (_evt) => {\n if (!isFocus.value) {\n outsideFuns = useClickOutside(componentRef, () => {\n doBlur();\n });\n isFocus.value = true;\n focus();\n }\n },\n { capture: true }\n // 捕获防止内部ui拦截点击事件\n );\n return { componentRef, isFocus, doBlur, pause, stop };\n}\n\n// src/use/namespace/namespace.ts\nimport { Namespace } from \"@ibiz-template/core\";\nfunction useNamespace(block) {\n return new Namespace(block, ibiz.env.namespace);\n}\n\n// src/use/route/route.ts\nimport { useRoute as useRoute2 } from \"vue-router\";\nimport { ref as ref2, watch as watch7 } from \"vue\";\n\n// src/util/route/route.ts\nimport { notNilEmpty } from \"qx-util\";\nimport { RuntimeError as RuntimeError2 } from \"@ibiz-template/core\";\nimport qs from \"qs\";\nimport { useRoute } from \"vue-router\";\nimport { watch as watch5 } from \"vue\";\nimport {\n calcDeCodeNameById,\n getMatchResPath,\n ViewType\n} from \"@ibiz-template/runtime\";\nfunction getOwnRouteContext(context) {\n const ownContext = context.getOwnContext();\n const excludeKeys = [\"srfsessionid\", \"srfappid\"];\n Object.keys(ownContext).forEach((key) => {\n if (excludeKeys.includes(key)) {\n delete ownContext[key];\n }\n });\n return ownContext;\n}\nvar excludeViewTypes = [\n ViewType.DE_GRID_VIEW,\n ViewType.DE_GRID_EXP_VIEW,\n ViewType.DE_LIST_VIEW,\n ViewType.DE_LIST_EXP_VIEW,\n ViewType.DE_DATA_VIEW,\n ViewType.DE_DATAVIEW_EXP_VIEW,\n ViewType.DE_CALENDAR_VIEW,\n ViewType.DE_CALENDAR_EXP_VIEW,\n ViewType.DE_CHART_VIEW,\n ViewType.DE_CHART_EXP_VIEW,\n ViewType.DE_KANBAN_VIEW\n];\nasync function calcResRoutePath(routePath, context, appDataEntityId) {\n if (!appDataEntityId) {\n routePath.pathNodes[0].context = void 0;\n } else {\n const entity = await ibiz.hub.getAppDataEntity(appDataEntityId);\n let match = getMatchResPath(context, entity);\n if (!match) {\n match = { path: \"\", keys: [entity.codeName.toLowerCase()] };\n }\n if (match) {\n const currentContext = routePath.pathNodes[1].context;\n const resContext = {};\n match.keys.forEach((key) => {\n if (context && Object.prototype.hasOwnProperty.call(context, key)) {\n resContext[key] = context[key];\n if (currentContext) {\n delete currentContext[key];\n }\n }\n });\n routePath.pathNodes[0].context = resContext;\n }\n }\n}\nasync function generateRoutePath(appView, route, context, params) {\n const routePath = route2routePath(route);\n let depth = 2;\n if (context.toRouteDepth) {\n depth = context.toRouteDepth;\n delete context.toRouteDepth;\n } else if (ibiz.env.isMob) {\n routePath.pathNodes[0] = {\n viewName: \"home\"\n };\n }\n routePath.pathNodes.splice(depth - 1, routePath.pathNodes.length - depth + 1);\n if (context.currentSrfNav) {\n const currentNode = routePath.pathNodes[routePath.pathNodes.length - 1];\n currentNode.params = currentNode.params || {};\n currentNode.srfnav = context.currentSrfNav;\n delete context.currentSrfNav;\n }\n if (route.fullPath.startsWith(\"/appredirectview\")) {\n if (params == null ? void 0 : params.srfindexname) {\n routePath.pathNodes[0].viewName = params.srfindexname;\n delete params.srfindexname;\n } else {\n routePath.pathNodes[0].viewName = \"index\";\n }\n }\n routePath.pathNodes.push({\n viewName: appView.codeName.toLowerCase(),\n context: getOwnRouteContext(context),\n params\n });\n if (depth === 2) {\n await calcResRoutePath(routePath, context, appView.appDataEntityId);\n if (excludeViewTypes.includes(appView.viewType)) {\n const deName = calcDeCodeNameById(appView.appDataEntityId);\n delete routePath.pathNodes[0].context[deName];\n }\n }\n return { path: routePath2string(routePath) };\n}\nasync function parseRouteViewData(route, depth) {\n var _a;\n const routePath = route2routePath(route);\n let viewCodeName = routePath.pathNodes[depth - 1].viewName;\n if (!viewCodeName) {\n throw new RuntimeError2(\"\\u7B2C\".concat(depth, \"\\u7EA7\\u8DEF\\u7531\\u4E0D\\u5B58\\u5728\\u89C6\\u56FE\\u6807\\u8BC6\"));\n }\n if (viewCodeName === \"index\") {\n viewCodeName = ibiz.hub.defaultAppIndexViewName;\n }\n const viewModel = await ibiz.hub.getAppView(viewCodeName);\n if (!viewModel) {\n throw new RuntimeError2(\"\\u627E\\u4E0D\\u5230\\u89C6\\u56FE\".concat(viewCodeName));\n }\n const context = {};\n if ((_a = ibiz.appData) == null ? void 0 : _a.context) {\n Object.assign(context, ibiz.appData.context);\n }\n if (routePath.appContext) {\n Object.assign(context, routePath.appContext);\n }\n if (depth !== 1) {\n for (let index = 0; index < depth; index++) {\n const pathNode = routePath.pathNodes[index];\n if (notNilEmpty(pathNode.context)) {\n Object.assign(context, pathNode.context);\n }\n }\n }\n const { params, srfnav } = routePath.pathNodes[depth - 1];\n return {\n viewModel,\n context,\n params,\n srfnav\n };\n}\nfunction route2routePath(route) {\n const depth = route.matched.length;\n const pathNodes = [];\n for (let index = 1; index <= depth; index++) {\n const viewName = route.path.split(\"/\")[index * 2];\n const paramsStr = route.params[\"params\".concat(index)];\n let params;\n let context;\n let srfnav;\n if (!paramsStr || paramsStr === ibiz.env.routePlaceholder) {\n params = void 0;\n } else {\n params = qs.parse(paramsStr, {\n strictNullHandling: true,\n delimiter: \";\"\n });\n }\n if (params) {\n if (index === 1) {\n context = params;\n params = void 0;\n } else {\n if (params.srfnavctx) {\n context = JSON.parse(decodeURIComponent(params.srfnavctx));\n delete params.srfnavctx;\n }\n if (params.srfnav) {\n srfnav = params.srfnav;\n delete params.srfnav;\n }\n }\n }\n pathNodes.push({ viewName, context, params, srfnav });\n }\n let appContext;\n if (route.params.appContext && route.params.appContext !== ibiz.env.routePlaceholder) {\n appContext = qs.parse(route.params.appContext, {\n strictNullHandling: true,\n delimiter: \";\"\n });\n }\n return { appContext, pathNodes };\n}\nfunction routePath2string(routePath) {\n let pathStr = \"\";\n if (routePath.appContext) {\n pathStr += \"/\".concat(qs.stringify(routePath.appContext, {\n delimiter: \";\",\n strictNullHandling: true\n }));\n } else {\n pathStr += \"/\".concat(ibiz.env.routePlaceholder);\n }\n routePath.pathNodes.forEach((pathNode, index) => {\n pathStr += \"/\".concat(pathNode.viewName, \"/\");\n let routeParams = {};\n if (index === 0) {\n if (notNilEmpty(pathNode.context)) {\n routeParams = pathNode.context;\n }\n } else {\n routeParams = notNilEmpty(pathNode.params) ? pathNode.params : {};\n if (notNilEmpty(pathNode.context)) {\n const objStr = JSON.stringify(pathNode.context);\n if (objStr !== \"{}\") {\n routeParams.srfnavctx = encodeURIComponent(objStr);\n }\n }\n if (pathNode.srfnav) {\n routeParams.srfnav = pathNode.srfnav;\n }\n }\n const paramsStr = qs.stringify(routeParams, {\n delimiter: \";\",\n strictNullHandling: true,\n skipNulls: true\n });\n if (notNilEmpty(paramsStr)) {\n pathStr += paramsStr;\n } else {\n pathStr += ibiz.env.routePlaceholder;\n }\n });\n return pathStr;\n}\nfunction getNestedRoutePath(route, depth, noSrfNav = true) {\n if (route.matched.length < depth) {\n return \"\";\n }\n if (route.name) {\n return route.path;\n }\n const routePath = route2routePath(route);\n if (routePath.pathNodes.length < depth) {\n return route.path;\n }\n if (routePath.pathNodes.length > depth) {\n routePath.pathNodes = routePath.pathNodes.slice(0, depth);\n }\n if (noSrfNav) {\n delete routePath.pathNodes[depth - 1].srfnav;\n }\n return routePath2string(routePath);\n}\nfunction onRouteChange(callback, depth) {\n const route = useRoute();\n if (!route) {\n throw new RuntimeError2(\"\\u65E0\\u6CD5\\u6B63\\u786E\\u83B7\\u53D6route,\\u53EF\\u80FD\\u662F\\u4F9D\\u8D56\\u95EE\\u9898\");\n }\n watch5(\n () => route == null ? void 0 : route.path,\n () => {\n const currentKey = getNestedRoutePath(route, depth);\n callback({ currentKey, fullPath: route.fullPath });\n },\n { immediate: true }\n );\n}\n\n// src/util/route/route-listener.ts\nimport { watch as watch6 } from \"vue\";\nvar RouteListener = class {\n constructor(route, wait) {\n /**\n * 回调集合\n *\n * @memberof RouteListener\n */\n this.callbacks = [];\n /**\n * 计时器集合\n *\n * @private\n * @type {any[]}\n * @memberof RouteListener\n */\n this.timers = [];\n /**\n * 等待路由响应时间\n *\n * @private\n * @type {number}\n * @memberof RouteListener\n */\n this.wait = 500;\n if (wait) {\n this.wait = wait;\n }\n watch6(\n () => route.path,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (this.callbacks.length) {\n for (let index = 0; index < this.callbacks.length; index++) {\n const fn = this.callbacks[index];\n fn();\n }\n }\n this.callbacks = [];\n if (this.timers.length) {\n for (let index = 0; index < this.timers.length; index++) {\n const timer = this.timers[index];\n clearTimeout(timer);\n }\n }\n this.timers = [];\n }\n }\n );\n }\n /**\n * 下一次路由变更后执行回调,只执行一次\n *\n * @param {ChangeCallback} callback\n * @memberof RouteListener\n */\n nextChange(callback) {\n if (callback) {\n this.timers.push(\n setTimeout(() => {\n callback();\n const index = this.callbacks.findIndex((item) => item === callback);\n this.callbacks.splice(index, 1);\n }, this.wait)\n );\n this.callbacks.push(callback);\n }\n }\n};\n\n// src/util/install.ts\nvar withInstall = (main, install) => {\n main.install = (app) => {\n install(app);\n };\n return main;\n};\n\n// src/util/control/prepare-control.ts\nfunction prepareControl(c) {\n const commonNs = useNamespace(\"control\");\n const { controlType, sysCss, codeName } = c.model;\n const typeClass = controlType.toLowerCase();\n const sysCssName = sysCss == null ? void 0 : sysCss.cssName;\n const ns = useNamespace(\"control-\".concat(typeClass));\n const controlClass = [\n commonNs.b(),\n commonNs.b(typeClass),\n commonNs.m(codeName)\n ];\n if (sysCssName) {\n controlClass.push(sysCssName);\n }\n return { controlClass, ns };\n}\n\n// src/util/render/render.ts\nimport { isNil as isNil3 } from \"ramda\";\nfunction renderString(value) {\n if (isNil3(value)) {\n return \"\";\n }\n if (typeof value === \"string\") {\n return value;\n }\n try {\n const str = value.toString();\n return str;\n } catch (error) {\n ibiz.log.error(value, \"\\u8F6C\\u6362\\u6210\\u5B57\\u7B26\\u4E32\\u5931\\u8D25\", error);\n }\n return \"\";\n}\n\n// src/use/route/route.ts\nfunction useRouterQuery() {\n const route = useRoute2();\n const { query } = route;\n return query;\n}\nfunction useRouteKey(originKey, route, routeKey) {\n if (!routeKey) {\n routeKey = ref2(\"\");\n }\n routeKey.value = originKey.value;\n const routeListener = new RouteListener(route);\n watch7(originKey, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n routeListener.nextChange(() => {\n routeKey.value = newVal;\n });\n }\n });\n return routeKey;\n}\n\n// src/use/view/use-view-controller/use-view-controller.ts\nimport { clearAll } from \"qx-util\";\nimport {\n getCurrentInstance as getCurrentInstance3,\n inject as inject2,\n onBeforeUnmount as onBeforeUnmount4,\n provide,\n reactive as reactive2,\n watch as watch8\n} from \"vue\";\nfunction watchAndUpdateContextParams(props, view) {\n watch8(\n () => ({ context: props.context, params: props.params }),\n (newVal) => {\n view.context.reset({}, newVal.context);\n clearAll(view.params);\n Object.assign(view.params, newVal.params);\n view.handleContextParams();\n ibiz.log.debug(\"\".concat(view.model.id, \"\\u7684\\u4E0A\\u4E0B\\u6587\\u6216\\u89C6\\u56FE\\u53C2\\u6570\\u53D8\\u66F4\\uFF1A\"), newVal);\n }\n );\n}\nfunction watchAndUpdateState2(props, view) {\n watch8(\n () => {\n return props.state ? { ...props.state } : {};\n },\n (newVal, oldVal) => {\n const changeProps = {};\n Object.keys(newVal).forEach((key) => {\n if (newVal[key] !== (oldVal || {})[key]) {\n changeProps[key] = newVal[key];\n }\n });\n ibiz.log.debug(\"\\u89C6\\u56FE [\".concat(view.model.name, \"] state \\u53D8\\u66F4\"), changeProps);\n Object.keys(changeProps).forEach((key) => {\n view.state[key] = changeProps[key];\n });\n },\n { immediate: true }\n );\n}\nfunction useViewController(fn) {\n const props = useProps();\n const ctx = inject2(\"ctx\", void 0);\n ctx == null ? void 0 : ctx.evt.emit(\"onForecast\", props.modelData.name);\n const provider = props.provider;\n let c;\n if (provider == null ? void 0 : provider.createController) {\n c = provider.createController(\n props.modelData,\n props.context,\n props.params,\n ctx\n );\n } else {\n c = fn(props.modelData, props.context, props.params, ctx);\n }\n watchAndUpdateContextParams(props, c);\n watchAndUpdateState2(props, c);\n provide(\"ctx\", c.ctx);\n c.state = reactive2(c.state);\n c.slotProps = reactive2(c.slotProps);\n if (props.modal) {\n c.modal = props.modal;\n }\n c.force = useForce();\n const vue = getCurrentInstance3().proxy;\n c.evt.onAll((eventName, event) => {\n vue.$emit(eventName.slice(2), event);\n });\n c.created();\n onBeforeUnmount4(() => c.destroyed());\n return c;\n}\n\n// src/props/common.ts\nvar RequiredProp = class {\n constructor(type, _default, validator) {\n this.required = true;\n if (_default) {\n this.default = _default;\n }\n if (validator) {\n this.validator = validator;\n }\n this.type = type;\n }\n};\n\n// src/props/editor/common.ts\nfunction getEditorProps() {\n return {\n value: String,\n controller: new RequiredProp(Object),\n data: new RequiredProp(Object),\n disabled: {\n type: Boolean\n },\n readonly: {\n type: Boolean,\n default: false\n },\n autoFocus: {\n type: Boolean,\n default: false\n }\n };\n}\nfunction getEditorEmits() {\n return {\n /** 值变更事件 */\n change: (_value, _name) => true,\n /** 失焦事件 */\n blur: () => true,\n /** 聚焦事件 */\n focus: () => true\n };\n}\nfunction getGridEditorEmits() {\n return {\n /** 值变更事件 */\n change: (_value, _name) => true,\n /** 是否正在操作事件 */\n rowSave: () => true\n };\n}\nfunction getGridEditorCommonProps() {\n return {\n hasError: {\n type: Boolean\n }\n };\n}\n\n// src/props/editor/text-box.ts\nfunction getInputProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridInputProps() {\n return { ...getInputProps(), ...getGridEditorCommonProps() };\n}\nfunction getInputNumberProps() {\n return { ...getEditorProps(), value: Number };\n}\nfunction getGridInputNumberProps() {\n return { ...getInputNumberProps(), ...getGridEditorCommonProps() };\n}\nfunction getInputIpProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridInputIpProps() {\n return { ...getInputIpProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/span.ts\nfunction getSpanProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSpanProps() {\n return { ...getSpanProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/dropdown-list.ts\nfunction getDropdownProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDropdownProps() {\n return { ...getDropdownProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/check-box-list.ts\nfunction getCheckboxListProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridCheckboxListProps() {\n return { ...getCheckboxListProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/check-box.ts\nfunction getCheckboxProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridCheckboxProps() {\n return { ...getCheckboxProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/data-picker.ts\nfunction getDataPickerProps() {\n return { ...getEditorProps(), value: [String, Array, Object, Number] };\n}\nfunction getGridDataPickerProps() {\n return { ...getDataPickerProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/date-picker.ts\nfunction getDatePickerProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDatePickerProps() {\n return { ...getDatePickerProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/date-range.ts\nfunction getDateRangeProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridDateRangeProps() {\n return { ...getDateRangeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/list-box.ts\nfunction getListBoxProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridListBoxProps() {\n return { ...getListBoxProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/number-range.ts\nfunction getNumberRangeProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridNumberRangeProps() {\n return { ...getNumberRangeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/radio-button-list.ts\nfunction getRadioProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridRadioProps() {\n return { ...getRadioProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/rate.ts\nfunction getRateProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridRateProps() {\n return { ...getRateProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/raw.ts\nfunction getRawProps() {\n return { ...getEditorProps(), value: [String, Number, Array] };\n}\nfunction getGridRawProps() {\n return { ...getRawProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/slider.ts\nfunction getSliderProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSliderProps() {\n return { ...getSliderProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/stepper.ts\nfunction getStepperProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridStepperProps() {\n return { ...getStepperProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/switch.ts\nfunction getSwitchProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridSwitchProps() {\n return { ...getSwitchProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/upload.ts\nfunction getUploadProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridUploadProps() {\n return { ...getUploadProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/autocomplete.ts\nfunction getAutoCompleteProps() {\n return { ...getEditorProps(), value: [String, Number] };\n}\nfunction getGridAutoCompleteProps() {\n return { ...getAutoCompleteProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/code.ts\nfunction getCodeProps() {\n return {\n ...getEditorProps(),\n value: String,\n language: {\n type: String\n },\n theme: {\n type: String\n }\n };\n}\nfunction getGridCodeProps() {\n return { ...getCodeProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/html.ts\nfunction getHtmlProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridHtmlProps() {\n return { ...getHtmlProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/markdown.ts\nfunction getMarkDownProps() {\n return {\n ...getEditorProps(),\n data: { type: Object, required: false },\n controller: { type: Object, required: false },\n disabled: {\n type: Boolean,\n required: false\n }\n };\n}\nfunction getGridMarkDownProps() {\n return { ...getMarkDownProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/array.ts\nfunction getArrayProps() {\n return { ...getEditorProps(), value: [Array, Array] };\n}\nfunction getGridArrayProps() {\n return { ...getArrayProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/cascader.ts\nfunction getCascaderProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridCascaderProps() {\n return { ...getCascaderProps(), ...getGridEditorCommonProps() };\n}\n\n// src/props/editor/color-picker.ts\nfunction getColorPickerProps() {\n return { ...getEditorProps(), value: String };\n}\nfunction getGridColorPickerProps() {\n return { ...getColorPickerProps(), ...getGridEditorCommonProps() };\n}\nexport {\n EmptyVNode,\n PluginFactory,\n RequiredProp,\n RouteListener,\n calcResRoutePath,\n excludeViewTypes,\n generateRoutePath,\n getArrayProps,\n getAutoCompleteProps,\n getCascaderProps,\n getCheckboxListProps,\n getCheckboxProps,\n getCodeProps,\n getColorPickerProps,\n getDataPickerProps,\n getDatePickerProps,\n getDateRangeProps,\n getDropdownProps,\n getEditorEmits,\n getEditorProps,\n getGridArrayProps,\n getGridAutoCompleteProps,\n getGridCascaderProps,\n getGridCheckboxListProps,\n getGridCheckboxProps,\n getGridCodeProps,\n getGridColorPickerProps,\n getGridDataPickerProps,\n getGridDatePickerProps,\n getGridDateRangeProps,\n getGridDropdownProps,\n getGridEditorCommonProps,\n getGridEditorEmits,\n getGridHtmlProps,\n getGridInputIpProps,\n getGridInputNumberProps,\n getGridInputProps,\n getGridListBoxProps,\n getGridMarkDownProps,\n getGridNumberRangeProps,\n getGridRadioProps,\n getGridRateProps,\n getGridRawProps,\n getGridSliderProps,\n getGridSpanProps,\n getGridStepperProps,\n getGridSwitchProps,\n getGridUploadProps,\n getHtmlProps,\n getInputIpProps,\n getInputNumberProps,\n getInputProps,\n getListBoxProps,\n getMarkDownProps,\n getNestedRoutePath,\n getNumberRangeProps,\n getOrigin,\n getOwnRouteContext,\n getRadioProps,\n getRateProps,\n getRawProps,\n getSliderProps,\n getSpanProps,\n getStepperProps,\n getSwitchProps,\n getUploadProps,\n isEmptyVNode,\n onRouteChange,\n parseRouteViewData,\n prepareControl,\n renderString,\n route2routePath,\n routePath2string,\n useClickOutside,\n useControlController,\n useController,\n useCtx,\n useEventListener,\n useFocusAndBlur,\n useForce,\n useForceTogether,\n useMobCtx,\n useNamespace,\n useProps,\n usePropsWatch,\n useRouteKey,\n useRouterQuery,\n useViewController,\n withInstall\n};\n"],"names":["async","appView","route","context","params","routePath","route2routePath","depth","toRouteDepth","ibiz","env","isMob","pathNodes","viewName","splice","length","currentSrfNav","currentNode","srfnav","fullPath","startsWith","srfindexname","push","codeName","toLowerCase","getOwnRouteContext","calcResRoutePath","appDataEntityId","excludeViewTypes","includes","viewType","deName","calcDeCodeNameById","path","routePath2string","change","_value","_name","blur","focus","getArrayProps","getGridEditorCommonProps","getAutoCompleteProps","getCascaderProps","getCheckboxListProps","getCheckboxProps","getCodeProps","getColorPickerProps","getDataPickerProps","getDatePickerProps","getDateRangeProps","getDropdownProps","rowSave","getHtmlProps","getInputIpProps","getInputNumberProps","getInputProps","getListBoxProps","getMarkDownProps","getNumberRangeProps","getRadioProps","getRateProps","getRawProps","getSliderProps","getSpanProps","getStepperProps","getSwitchProps","getUploadProps","nodes","Array","isArray","EmptyVNode","callback","useRoute","RuntimeError2","watch5","currentKey","getNestedRoutePath","immediate","_a","viewCodeName","concat","hub","defaultAppIndexViewName","viewModel","getAppView","appData","Object","assign","appContext","index","pathNode","notNilEmpty","c","commonNs","useNamespace","controlType","sysCss","model","typeClass","sysCssName","cssName","ns","controlClass","b","m","value","isNil3","toString","error","log","fn","ctx","useCtx","props","useProps","evt","emit","modelData","name","provider","createController","control","excludeKeys","watch3","watchProps","keys","forEach","key","newVal","oldVal","changeProps","debug","state","watchAndUpdateState","reactive","force","useForce","vue","getCurrentInstance2","proxy","onAll","eventName","event","$emit","slice","created","onBeforeUnmount2","destroyed","controller","componentRef","ref","isFocus","outsideFuns","doBlur","stop","useEventListener","_evt","useClickOutside","capture","pause","orignForce","selfForce","inject","options","prototype","hasOwnProperty","call","watch2","getOrigin","originKey","routeKey","ref2","routeListener","RouteListener","watch7","nextChange","useRoute2","query","inject2","watchAndUpdateContextParams","watchAndUpdateState2","provide","reactive2","slotProps","modal","getCurrentInstance3","onBeforeUnmount4","cb","mod","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","require_path_browserify","exports","module","assertPath","path2","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","charCodeAt","lastSlashIndex","lastIndexOf","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","ext","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","parse","ret","delimiter","win32","import_path_browserify","isNodeMode","target","except","desc","get","enumerable","__copyProps","__esModule","__toESM","constructor","this","urlReg","cache","Map","devPackages","pluginCache","pluginCodes","predefinedPlugins","registerPredefinedPlugin","plugin","set","register","app","use","loadPredefinedPlugin","has","loadPluginRef","setPluginCode","window","vueInstances","inst","setDevPlugin","loadPlugin","runtimeObject","pluginRef","rtobjectName","rtobjectRepo","RuntimeModelError","rtObjectName","rtObjectRepo","configData","pluginPath","configUrl","test","pluginBaseUrl","net","axios","method","headers","url","status","Error","data","remotePlugin","RemotePluginItem","loadScript","repo","version","system","styles","config","scriptUrl","dev","parseUrl","styleUrls","map","styleUrl","default","pluginModule","import","System","addImportMap","imports","RuntimeError","script","origin","pathname","location","endsWith","substring","elRef","handler","NOOP","proceed","destroy","watch","isNil","result","onClickOutside","$el","onBeforeUnmount","getCurrentInstance","$props","val","isReactive","toRaw","$forceUpdate","isFunc","$nextTick","createCommentVNode","listener","cleanup","NOOP2","watch4","isNil2","listenJSEvent","onBeforeUnmount3","block","Namespace","namespace","ownContext","getOwnContext","ViewType","DE_GRID_VIEW","DE_GRID_EXP_VIEW","DE_LIST_VIEW","DE_LIST_EXP_VIEW","DE_DATA_VIEW","DE_DATAVIEW_EXP_VIEW","DE_CALENDAR_VIEW","DE_CALENDAR_EXP_VIEW","DE_CHART_VIEW","DE_CHART_EXP_VIEW","DE_KANBAN_VIEW","entity","getAppDataEntity","match","getMatchResPath","currentContext","resContext","matched","split","paramsStr","routePlaceholder","qs","strictNullHandling","srfnavctx","decodeURIComponent","pathStr","routeParams","objStr","encodeURIComponent","skipNulls","noSrfNav","wait","callbacks","timers","watch6","timer","clearTimeout","setTimeout","findIndex","item","main","install","view","watch8","reset","clearAll","handleContextParams","id","RequiredProp","type","_default","validator","required","getEditorProps","String","disabled","Boolean","readonly","autoFocus","hasError","Number","language","theme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.system.min.js","sources":["index.esm.js"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\nvar require_path_browserify = __commonJS({\n \"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js\"(exports, module) {\n \"use strict\";\n function assertPath(path2) {\n if (typeof path2 !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path2));\n }\n }\n function normalizeStringPosix(path2, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path2.length; ++i) {\n if (i < path2.length)\n code = path2.charCodeAt(i);\n else if (code === 47)\n break;\n else\n code = 47;\n if (code === 47) {\n if (lastSlash === i - 1 || dots === 1) {\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += \"/..\";\n else\n res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += \"/\" + path2.slice(lastSlash + 1, i);\n else\n res = path2.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n }\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n }\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path2;\n if (i >= 0)\n path2 = arguments[i];\n else {\n if (cwd === void 0)\n cwd = process.cwd();\n path2 = cwd;\n }\n assertPath(path2);\n if (path2.length === 0) {\n continue;\n }\n resolvedPath = path2 + \"/\" + resolvedPath;\n resolvedAbsolute = path2.charCodeAt(0) === 47;\n }\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return \"/\" + resolvedPath;\n else\n return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var isAbsolute = path2.charCodeAt(0) === 47;\n var trailingSeparator = path2.charCodeAt(path2.length - 1) === 47;\n path2 = normalizeStringPosix(path2, !isAbsolute);\n if (path2.length === 0 && !isAbsolute)\n path2 = \".\";\n if (path2.length > 0 && trailingSeparator)\n path2 += \"/\";\n if (isAbsolute)\n return \"/\" + path2;\n return path2;\n },\n isAbsolute: function isAbsolute(path2) {\n assertPath(path2);\n return path2.length > 0 && path2.charCodeAt(0) === 47;\n },\n join: function join2() {\n if (arguments.length === 0)\n return \".\";\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === void 0)\n joined = arg;\n else\n joined += \"/\" + arg;\n }\n }\n if (joined === void 0)\n return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to)\n return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to)\n return \"\";\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47) {\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47) {\n lastCommonSep = i;\n } else if (i === 0) {\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47)\n lastCommonSep = i;\n }\n var out = \"\";\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47) {\n if (out.length === 0)\n out += \"..\";\n else\n out += \"/..\";\n }\n }\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47)\n ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path2) {\n return path2;\n },\n dirname: function dirname(path2) {\n assertPath(path2);\n if (path2.length === 0)\n return \".\";\n var code = path2.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path2.length - 1; i >= 1; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1)\n return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1)\n return \"//\";\n return path2.slice(0, end);\n },\n basename: function basename(path2, ext) {\n if (ext !== void 0 && typeof ext !== \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n assertPath(path2);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n if (ext !== void 0 && ext.length > 0 && ext.length <= path2.length) {\n if (ext.length === path2.length && ext === path2)\n return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n end = i;\n }\n } else {\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path2.length;\n return path2.slice(start, end);\n } else {\n for (i = path2.length - 1; i >= 0; --i) {\n if (path2.charCodeAt(i) === 47) {\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1)\n return \"\";\n return path2.slice(start, end);\n }\n },\n extname: function extname(path2) {\n assertPath(path2);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var preDotState = 0;\n for (var i = path2.length - 1; i >= 0; --i) {\n var code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path2.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format(\"/\", pathObject);\n },\n parse: function parse(path2) {\n assertPath(path2);\n var ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (path2.length === 0)\n return ret;\n var code = path2.charCodeAt(0);\n var isAbsolute = code === 47;\n var start;\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path2.length - 1;\n var preDotState = 0;\n for (; i >= start; --i) {\n code = path2.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46) {\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute)\n ret.base = ret.name = path2.slice(1, end);\n else\n ret.base = ret.name = path2.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path2.slice(1, startDot);\n ret.base = path2.slice(1, end);\n } else {\n ret.name = path2.slice(startPart, startDot);\n ret.base = path2.slice(startPart, end);\n }\n ret.ext = path2.slice(startDot, end);\n }\n if (startPart > 0)\n ret.dir = path2.slice(0, startPart - 1);\n else if (isAbsolute)\n ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n module.exports = posix;\n }\n});\n\n// src/plugin/plugin-factory/plugin-factory.ts\nvar import_path_browserify = __toESM(require_path_browserify(), 1);\nimport { RuntimeError, RuntimeModelError } from \"@ibiz-template/core\";\nimport {\n RemotePluginItem\n} from \"@ibiz-template/runtime\";\nvar PluginFactory = class {\n constructor() {\n /**\n * 是否为 http || https 开头\n *\n * @author chitanda\n * @date 2022-11-07 14:11:28\n * @protected\n */\n this.urlReg = /^http[s]?:\\/\\/[^\\s]*/;\n /**\n * 是否已经加载过文件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:17\n * @protected\n * @type {Map<string, boolean>}\n */\n this.cache = /* @__PURE__ */ new Map();\n /**\n * 本地开发测试包,只在本地开发生效\n *\n * @author chitanda\n * @date 2022-11-02 21:11:41\n * @protected\n */\n this.devPackages = /* @__PURE__ */ new Map();\n /**\n * 插件缓存\n *\n * @author chitanda\n * @date 2022-10-31 14:10:28\n * @protected\n * @type {Map<string, RemotePluginItem>}\n */\n this.pluginCache = /* @__PURE__ */ new Map();\n /**\n * 所有的插件\n *\n * @author chitanda\n * @date 2023-02-02 16:02:55\n * @protected\n * @type {Plugin[]}\n */\n this.pluginCodes = [];\n /**\n * 预定义插件集合\n *\n * @author chitanda\n * @date 2023-03-09 17:03:46\n * @protected\n * @type {Map<string, IPluginItem>}\n */\n this.predefinedPlugins = /* @__PURE__ */ new Map();\n }\n /**\n * 注册视图默认插件\n *\n * @author chitanda\n * @date 2023-02-06 21:02:10\n * @param {IPluginItem} plugin\n */\n registerPredefinedPlugin(plugin) {\n this.predefinedPlugins.set(plugin.name, plugin);\n }\n /**\n * 给入应用实例,将已经加载的过插件注入。主要用于多实例的情况\n *\n * @author chitanda\n * @date 2023-02-02 16:02:51\n * @param {App} app\n */\n register(app) {\n this.pluginCodes.forEach((plugin) => {\n app.use(plugin);\n });\n }\n /**\n * 加载预置插件\n *\n * @author chitanda\n * @date 2023-03-09 18:03:48\n * @param {string} name\n * @return {*} {Promise<void>}\n */\n async loadPredefinedPlugin(name) {\n if (this.predefinedPlugins.has(name)) {\n const plugin = this.predefinedPlugins.get(name);\n if (plugin) {\n await this.loadPluginRef(plugin.name, plugin.path);\n }\n }\n }\n /**\n * 插件刚加载完成回来,设置到目前所有的 vue 实例当中\n *\n * @author chitanda\n * @date 2023-02-02 17:02:38\n * @protected\n * @param {Plugin} code\n */\n setPluginCode(code) {\n this.pluginCodes.push(code);\n window.vueInstances.forEach((inst) => {\n inst.use(code);\n });\n }\n /**\n * 设置开发插件,用于本地调试\n *\n * @author chitanda\n * @date 2022-11-02 21:11:56\n * @param {string} name\n * @param {() => Promise<unknown>} fn\n */\n setDevPlugin(name, fn) {\n this.devPackages.set(name, fn);\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-10-31 14:10:13\n * @param {ISysPFPlugin} plugin\n * @return {*} {Promise<boolean>}\n */\n async loadPlugin(plugin) {\n if (plugin.runtimeObject === true) {\n const pluginRef = plugin;\n if (pluginRef) {\n try {\n await this.loadPluginRef(\n pluginRef.rtobjectName,\n pluginRef.rtobjectRepo\n );\n } catch (error) {\n throw new RuntimeModelError(pluginRef, \"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n }\n }\n return false;\n }\n /**\n * 加载应用插件\n *\n * @author chitanda\n * @date 2022-10-31 16:10:57\n * @param {IPSAppPFPluginRef} pluginRef\n * @return {*} {Promise<boolean>}\n */\n async loadPluginRef(rtObjectName, rtObjectRepo) {\n if (this.pluginCache.has(rtObjectName)) {\n return true;\n }\n let configData = null;\n const fn = this.devPackages.get(rtObjectName);\n if (fn) {\n configData = await fn();\n } else {\n const pluginPath = rtObjectRepo;\n const configUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/package.json\") : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat((0, import_path_browserify.join)(pluginPath, \"package.json\"));\n const res = await ibiz.net.axios({\n method: \"get\",\n headers: { \"Access-Control-Allow-Origin\": \"*\" },\n url: configUrl\n });\n if (res.status !== 200) {\n throw new Error(\"\\u914D\\u7F6E\\u52A0\\u8F7D\\u5931\\u8D25\");\n }\n configData = res.data;\n }\n const remotePlugin = new RemotePluginItem(\n rtObjectName,\n rtObjectRepo,\n configData\n );\n if (remotePlugin) {\n try {\n await this.loadScript(remotePlugin);\n this.pluginCache.set(rtObjectName, remotePlugin);\n return true;\n } catch (error) {\n ibiz.log.error(error);\n }\n }\n return false;\n }\n /**\n * 加载插件\n *\n * @author chitanda\n * @date 2022-11-02 14:11:31\n * @protected\n * @param {RemotePluginItem} remotePlugin\n * @return {*} {Promise<void>}\n */\n async loadScript(remotePlugin) {\n const pluginPath = remotePlugin.repo;\n const { name, version, system, module, styles } = remotePlugin.config;\n let scriptUrl = \"\";\n if (this.devPackages.has(name)) {\n scriptUrl = (0, import_path_browserify.join)(\"\".concat(name, \"@\").concat(version), module);\n } else if (ibiz.env.dev) {\n scriptUrl = this.urlReg.test(pluginPath) ? \"\".concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module)) : \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(pluginPath, \"/\").concat((0, import_path_browserify.join)(module));\n } else {\n scriptUrl = (0, import_path_browserify.join)(pluginPath, system);\n }\n if (scriptUrl) {\n if (this.cache.has(scriptUrl)) {\n return;\n }\n let data = null;\n const url = this.parseUrl(scriptUrl);\n const styleUrls = (typeof styles === \"string\" ? [styles] : styles).map(\n (styleUrl) => this.parseUrl(import_path_browserify.default.join(pluginPath, styleUrl))\n );\n if (this.devPackages.has(name)) {\n const fn = this.devPackages.get(name);\n const pluginModule = await fn();\n this.setPluginCode(pluginModule.default);\n this.cache.set(scriptUrl, true);\n } else if (ibiz.env.dev) {\n data = await import(\n scriptUrl\n /* @vite-ignore */\n );\n } else {\n System.addImportMap({\n imports: {\n [name]: url\n },\n styles: {\n [name]: styleUrls\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n });\n data = await System.import(name);\n }\n if (data) {\n if (data.default) {\n this.setPluginCode(data.default);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u8FDC\\u7A0B\\u63D2\\u4EF6\\u672A\\u627E\\u5230[default]\\u9ED8\\u8BA4\\u5BFC\\u51FA\"\n );\n }\n this.cache.set(scriptUrl, true);\n } else {\n throw new RuntimeError(\n \"\\u8FDC\\u7A0B\\u63D2\\u4EF6\\u52A0\\u8F7D\\u5931\\u8D25, \\u672A\\u627E\\u5230\\u6587\\u4EF6\\u6216\\u6587\\u4EF6\\u5185\\u5BB9\\u683C\\u5F0F\\u4E0D\\u6B63\\u786E\"\n );\n }\n }\n }\n /**\n * 编译请求文件地址\n *\n * @author chitanda\n * @date 2022-10-31 14:10:19\n * @protected\n * @param {string} script\n * @return {*} {string}\n */\n parseUrl(script) {\n if (this.urlReg.test(script)) {\n return script;\n }\n let url = \"\";\n if (this.urlReg.test(ibiz.env.pluginBaseUrl)) {\n if (script.startsWith(\"/\")) {\n url = ibiz.env.pluginBaseUrl + script;\n } else {\n url = \"\".concat(ibiz.env.pluginBaseUrl, \"/\").concat(script);\n }\n } else {\n url = \"\".concat((0, import_path_browserify.join)(ibiz.env.pluginBaseUrl, script));\n }\n const { origin, pathname } = window.location;\n if (pathname.endsWith(\"/\") && url.startsWith(\"/\")) {\n url = url.substring(1);\n }\n url = \"\".concat(origin).concat(pathname).concat(url);\n return url;\n }\n};\n\n// src/use/click-outside/click-outside.ts\nimport {\n NOOP,\n onClickOutside\n} from \"@ibiz-template/core\";\nimport { isNil } from \"ramda\";\nimport { onBeforeUnmount, watch } from \"vue\";\nfunction useClickOutside(elRef, handler, options = {}) {\n let stop = NOOP;\n let pause = NOOP;\n let proceed = NOOP;\n const destroy = () => {\n stop();\n stop = NOOP;\n pause = NOOP;\n proceed = NOOP;\n };\n watch(\n elRef,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (isNil(newVal)) {\n destroy();\n } else {\n const result = onClickOutside(\n (newVal == null ? void 0 : newVal.$el) || newVal,\n handler,\n options\n );\n stop = result.stop;\n pause = result.pause;\n proceed = result.proceed;\n }\n }\n },\n { immediate: true }\n );\n onBeforeUnmount(() => {\n if (stop !== NOOP) {\n destroy();\n }\n });\n return {\n stop: () => stop(),\n pause: () => pause(),\n proceed: () => proceed()\n };\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nimport { getCurrentInstance as getCurrentInstance2, onBeforeUnmount as onBeforeUnmount2, reactive, watch as watch3 } from \"vue\";\n\n// src/use/vue/vue.ts\nimport { isFunc } from \"qx-util\";\nimport {\n createCommentVNode,\n getCurrentInstance,\n isReactive,\n toRaw,\n watch as watch2\n} from \"vue\";\nfunction useProps() {\n const vue = getCurrentInstance().proxy;\n return vue.$props;\n}\nfunction getOrigin(val) {\n return isReactive(val) ? toRaw(val) : val;\n}\nfunction usePropsWatch(key, callback, options) {\n const props = useProps();\n if (Object.prototype.hasOwnProperty.call(props, key)) {\n watch2(\n () => props[key],\n (newVal, oldVal) => {\n callback(getOrigin(newVal), getOrigin(oldVal));\n },\n options\n );\n callback(getOrigin(props[key]), void 0);\n }\n}\nfunction useForce() {\n const vue = getCurrentInstance().proxy;\n return (callback) => {\n vue.$forceUpdate();\n if (callback && isFunc(callback)) {\n vue.$nextTick(() => {\n callback();\n });\n }\n };\n}\nfunction useForceTogether(vue, controller) {\n const orignForce = controller.force;\n const selfForce = useForce();\n controller.force = (callback) => {\n orignForce(callback);\n selfForce();\n };\n}\nfunction useController(controller) {\n controller.force = useForce();\n}\nvar EmptyVNode = createCommentVNode(\"EmptyVNode\");\nfunction isEmptyVNode(nodes) {\n if (!Array.isArray(nodes)) {\n return nodes === EmptyVNode;\n }\n return nodes.length === 1 && nodes[0] === EmptyVNode;\n}\n\n// src/use/util/index.ts\nimport { inject } from \"vue\";\nfunction useCtx() {\n return inject(\"ctx\");\n}\nfunction useMobCtx() {\n return inject(\"ctx\");\n}\n\n// src/use/control/use-control-controller/use-control-controller.ts\nfunction watchAndUpdateContextParams(props, control) {\n watch3(\n () => ({ context: props.context, params: props.params }),\n (newVal) => {\n control.updateContextParams({ ...newVal });\n ibiz.log.debug(\"\".concat(control.model.id, \"\\u7684\\u4E0A\\u4E0B\\u6587\\u6216\\u89C6\\u56FE\\u53C2\\u6570\\u53D8\\u66F4\\uFF1A\"), newVal);\n }\n );\n}\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 watchAndUpdateContextParams(props, c);\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 watchAndUpdateContextParams2(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 watchAndUpdateContextParams2(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","watch3","newVal","updateContextParams","debug","id","watchAndUpdateContextParams","excludeKeys","watchProps","keys","forEach","key","oldVal","changeProps","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","watchAndUpdateContextParams2","watchAndUpdateState2","provide","reactive2","slotProps","modal","getCurrentInstance3","onBeforeUnmount4","cb","mod","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","require_path_browserify","exports","module","assertPath","path2","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","charCodeAt","lastSlashIndex","lastIndexOf","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","ext","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","parse","ret","delimiter","win32","import_path_browserify","isNodeMode","target","except","desc","get","enumerable","__copyProps","__esModule","__toESM","constructor","this","urlReg","cache","Map","devPackages","pluginCache","pluginCodes","predefinedPlugins","registerPredefinedPlugin","plugin","set","register","app","use","loadPredefinedPlugin","has","loadPluginRef","setPluginCode","window","vueInstances","inst","setDevPlugin","loadPlugin","runtimeObject","pluginRef","rtobjectName","rtobjectRepo","RuntimeModelError","rtObjectName","rtObjectRepo","configData","pluginPath","configUrl","test","pluginBaseUrl","net","axios","method","headers","url","status","Error","data","remotePlugin","RemotePluginItem","loadScript","repo","version","system","styles","config","scriptUrl","dev","parseUrl","styleUrls","map","styleUrl","default","pluginModule","import","System","addImportMap","imports","RuntimeError","script","origin","pathname","location","endsWith","substring","elRef","handler","NOOP","proceed","destroy","watch","isNil","result","onClickOutside","$el","onBeforeUnmount","getCurrentInstance","$props","val","isReactive","toRaw","$forceUpdate","isFunc","$nextTick","createCommentVNode","listener","cleanup","NOOP2","watch4","isNil2","listenJSEvent","onBeforeUnmount3","block","Namespace","namespace","ownContext","getOwnContext","ViewType","DE_GRID_VIEW","DE_GRID_EXP_VIEW","DE_LIST_VIEW","DE_LIST_EXP_VIEW","DE_DATA_VIEW","DE_DATAVIEW_EXP_VIEW","DE_CALENDAR_VIEW","DE_CALENDAR_EXP_VIEW","DE_CHART_VIEW","DE_CHART_EXP_VIEW","DE_KANBAN_VIEW","entity","getAppDataEntity","match","getMatchResPath","currentContext","resContext","matched","split","paramsStr","routePlaceholder","qs","strictNullHandling","srfnavctx","decodeURIComponent","pathStr","routeParams","objStr","encodeURIComponent","skipNulls","noSrfNav","wait","callbacks","timers","watch6","timer","clearTimeout","setTimeout","findIndex","item","main","install","view","watch8","reset","clearAll","handleContextParams","RequiredProp","type","_default","validator","required","getEditorProps","String","disabled","Boolean","readonly","autoFocus","hasError","Number","language","theme"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-control-controller.d.ts","sourceRoot":"","sources":["../../../../src/use/control/use-control-controller/use-control-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-control-controller.d.ts","sourceRoot":"","sources":["../../../../src/use/control/use-control-controller/use-control-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAiEhC;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,kBAAkB,EAC/D,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAClE,CAAC,CA4CH"}
|
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
import { getCurrentInstance, onBeforeUnmount, reactive, watch } from 'vue';
|
|
2
2
|
import { useForce, useProps } from '../../vue/vue';
|
|
3
3
|
import { useCtx } from '../../util';
|
|
4
|
+
/**
|
|
5
|
+
* 监听并更新上下文和视图参数(引用不变)
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-05-25 01:48:14
|
|
8
|
+
* @param {IData} props
|
|
9
|
+
* @param {IViewController} view
|
|
10
|
+
*/
|
|
11
|
+
function watchAndUpdateContextParams(props, control) {
|
|
12
|
+
watch(() => ({ context: props.context, params: props.params }), newVal => {
|
|
13
|
+
// 不改变引用的情况下,重置控制器里的上下文和视图参数。
|
|
14
|
+
// 重新计算上下文和视图参数
|
|
15
|
+
control.updateContextParams(Object.assign({}, newVal));
|
|
16
|
+
ibiz.log.debug(`${control.model.id}的上下文或视图参数变更:`, newVal);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
4
19
|
/**
|
|
5
20
|
* 监听部件的props并更新部件state状态
|
|
6
21
|
* 排除部分keys,如context,params
|
|
7
22
|
* @author lxm
|
|
8
|
-
* @date 2023-
|
|
23
|
+
* @date 2023-10-27 01:46:23
|
|
9
24
|
* @param {IData} props
|
|
10
|
-
* @param {
|
|
25
|
+
* @param {IControlController} control
|
|
11
26
|
*/
|
|
12
27
|
function watchAndUpdateState(props, control) {
|
|
13
28
|
const excludeKeys = ['context', 'params', 'modelData'];
|
|
@@ -61,6 +76,7 @@ export function useControlController(fn) {
|
|
|
61
76
|
else {
|
|
62
77
|
c = fn(props.modelData, props.context, props.params, ctx);
|
|
63
78
|
}
|
|
79
|
+
watchAndUpdateContextParams(props, c);
|
|
64
80
|
watchAndUpdateState(props, c);
|
|
65
81
|
c.state = reactive(c.state);
|
|
66
82
|
// 挂载强制更新方法
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/vue3-util",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "vue3 工具包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"author": "chitanda",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@ibiz-template/core": "^0.2.
|
|
34
|
-
"@ibiz-template/runtime": "^0.2.
|
|
33
|
+
"@ibiz-template/core": "^0.2.6",
|
|
34
|
+
"@ibiz-template/runtime": "^0.2.6",
|
|
35
35
|
"@ibiz/model-core": "^0.0.19",
|
|
36
36
|
"@types/path-browserify": "^1.0.0",
|
|
37
37
|
"@types/qs": "^6.9.8",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"vue": "^3.3.4",
|
|
55
55
|
"vue-router": "^4.2.4"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "9e2ff8788567c10c7f048f95797e1a533b0027e8"
|
|
58
58
|
}
|
|
@@ -8,13 +8,35 @@ import { getCurrentInstance, onBeforeUnmount, reactive, watch } from 'vue';
|
|
|
8
8
|
import { useForce, useProps } from '../../vue/vue';
|
|
9
9
|
import { useCtx } from '../../util';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* 监听并更新上下文和视图参数(引用不变)
|
|
13
|
+
* @author lxm
|
|
14
|
+
* @date 2023-05-25 01:48:14
|
|
15
|
+
* @param {IData} props
|
|
16
|
+
* @param {IViewController} view
|
|
17
|
+
*/
|
|
18
|
+
function watchAndUpdateContextParams(
|
|
19
|
+
props: IData,
|
|
20
|
+
control: IControlController,
|
|
21
|
+
): void {
|
|
22
|
+
watch(
|
|
23
|
+
() => ({ context: props.context, params: props.params }),
|
|
24
|
+
newVal => {
|
|
25
|
+
// 不改变引用的情况下,重置控制器里的上下文和视图参数。
|
|
26
|
+
// 重新计算上下文和视图参数
|
|
27
|
+
control.updateContextParams({ ...newVal });
|
|
28
|
+
ibiz.log.debug(`${control.model.id}的上下文或视图参数变更:`, newVal);
|
|
29
|
+
},
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
11
33
|
/**
|
|
12
34
|
* 监听部件的props并更新部件state状态
|
|
13
35
|
* 排除部分keys,如context,params
|
|
14
36
|
* @author lxm
|
|
15
|
-
* @date 2023-
|
|
37
|
+
* @date 2023-10-27 01:46:23
|
|
16
38
|
* @param {IData} props
|
|
17
|
-
* @param {
|
|
39
|
+
* @param {IControlController} control
|
|
18
40
|
*/
|
|
19
41
|
function watchAndUpdateState(props: IData, control: IControlController): void {
|
|
20
42
|
const excludeKeys = ['context', 'params', 'modelData'];
|
|
@@ -81,6 +103,7 @@ export function useControlController<T extends IControlController>(
|
|
|
81
103
|
c = fn(props.modelData, props.context, props.params, ctx);
|
|
82
104
|
}
|
|
83
105
|
|
|
106
|
+
watchAndUpdateContextParams(props, c);
|
|
84
107
|
watchAndUpdateState(props, c);
|
|
85
108
|
|
|
86
109
|
c.state = reactive(c.state);
|