@ibiz-template/core 0.0.4-beta.4 → 0.1.0

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.
Files changed (95) hide show
  1. package/dist/index.esm.js +429 -97
  2. package/dist/index.system.min.js +2 -1
  3. package/dist/index.system.min.js.map +1 -0
  4. package/out/constant/core/core.d.ts +2 -2
  5. package/out/constant/core/core.js +3 -4
  6. package/out/constant/util/util.d.ts.map +1 -1
  7. package/out/context/index.d.ts +17 -7
  8. package/out/context/index.d.ts.map +1 -1
  9. package/out/context/index.js +82 -40
  10. package/out/environment/environment.d.ts.map +1 -1
  11. package/out/environment/environment.js +5 -0
  12. package/out/error/model-error/model-error.d.ts +2 -2
  13. package/out/error/model-error/model-error.d.ts.map +1 -1
  14. package/out/error/model-error/model-error.js +0 -1
  15. package/out/error/runtime-model-error/runtime-model-error.d.ts +2 -2
  16. package/out/error/runtime-model-error/runtime-model-error.d.ts.map +1 -1
  17. package/out/error/runtime-model-error/runtime-model-error.js +0 -1
  18. package/out/ibizsys.d.ts +6 -4
  19. package/out/ibizsys.d.ts.map +1 -1
  20. package/out/ibizsys.js +6 -4
  21. package/out/index.d.ts +0 -1
  22. package/out/index.d.ts.map +1 -1
  23. package/out/index.js +0 -1
  24. package/out/install.d.ts.map +1 -1
  25. package/out/install.js +0 -2
  26. package/out/interface/i-environment/i-environment.d.ts +39 -0
  27. package/out/interface/i-environment/i-environment.d.ts.map +1 -1
  28. package/out/types.d.ts +11 -22
  29. package/out/types.d.ts.map +1 -1
  30. package/out/utils/download-file/download-file.d.ts.map +1 -1
  31. package/out/utils/index.d.ts +1 -1
  32. package/out/utils/index.d.ts.map +1 -1
  33. package/out/utils/index.js +1 -1
  34. package/out/utils/interceptor/core-interceptor.d.ts.map +1 -1
  35. package/out/utils/interceptor/core-interceptor.js +6 -2
  36. package/out/utils/interceptor/interceptor.d.ts +2 -2
  37. package/out/utils/interceptor/interceptor.d.ts.map +1 -1
  38. package/out/utils/logger/logger.d.ts +2 -2
  39. package/out/utils/logger/logger.d.ts.map +1 -1
  40. package/out/utils/logger/logger.js +5 -1
  41. package/out/utils/namespace/namespace.d.ts.map +1 -1
  42. package/out/utils/net/net.d.ts +12 -2
  43. package/out/utils/net/net.d.ts.map +1 -1
  44. package/out/utils/net/net.js +31 -5
  45. package/out/utils/recursive/find-recursive-child.d.ts +43 -0
  46. package/out/utils/recursive/find-recursive-child.d.ts.map +1 -0
  47. package/out/utils/recursive/find-recursive-child.js +90 -0
  48. package/out/utils/string-util/string-util.js +1 -2
  49. package/out/utils/style/remote-style.d.ts.map +1 -1
  50. package/out/utils/style/remote-style.js +1 -2
  51. package/out/utils/sync/count-latch.d.ts.map +1 -1
  52. package/out/utils/types/types.d.ts +10 -0
  53. package/out/utils/types/types.d.ts.map +1 -1
  54. package/out/utils/upload/select-file.d.ts.map +1 -1
  55. package/out/utils/upload/select-file.js +1 -1
  56. package/out/utils/upload/upload-file.d.ts.map +1 -1
  57. package/out/utils/upload/upload-file.js +2 -1
  58. package/out/utils/url-helper/url-helper.d.ts.map +1 -1
  59. package/out/utils/url-helper/url-helper.js +2 -1
  60. package/out/utils/util/util.d.ts +58 -0
  61. package/out/utils/util/util.d.ts.map +1 -1
  62. package/out/utils/util/util.js +123 -0
  63. package/package.json +9 -6
  64. package/src/constant/core/core.ts +2 -2
  65. package/src/constant/util/util.ts +1 -1
  66. package/src/context/index.ts +91 -47
  67. package/src/environment/environment.ts +5 -0
  68. package/src/error/model-error/model-error.ts +4 -2
  69. package/src/error/runtime-model-error/runtime-model-error.ts +4 -2
  70. package/src/ibizsys.ts +7 -4
  71. package/src/index.ts +0 -1
  72. package/src/install.ts +0 -2
  73. package/src/interface/i-environment/i-environment.ts +44 -0
  74. package/src/types.ts +12 -23
  75. package/src/utils/click-outside/click-outside.ts +6 -6
  76. package/src/utils/download-file/download-file.ts +2 -2
  77. package/src/utils/event/event.ts +1 -1
  78. package/src/utils/index.ts +1 -1
  79. package/src/utils/interceptor/core-interceptor.ts +7 -2
  80. package/src/utils/interceptor/interceptor.ts +3 -3
  81. package/src/utils/logger/logger.ts +8 -1
  82. package/src/utils/namespace/namespace.ts +4 -1
  83. package/src/utils/net/net.ts +35 -11
  84. package/src/utils/recursive/find-recursive-child.ts +133 -0
  85. package/src/utils/style/remote-style.ts +1 -3
  86. package/src/utils/sync/count-latch.ts +5 -5
  87. package/src/utils/types/types.ts +13 -0
  88. package/src/utils/upload/select-file.ts +2 -2
  89. package/src/utils/upload/upload-file.ts +6 -5
  90. package/src/utils/url-helper/url-helper.ts +6 -5
  91. package/src/utils/util/util.ts +144 -2
  92. package/out/factory-center.d.ts +0 -11
  93. package/out/factory-center.d.ts.map +0 -1
  94. package/out/factory-center.js +0 -10
  95. package/src/factory-center.ts +0 -9
@@ -1 +1,2 @@
1
- System.register(["ramda","lodash-es","qx-util","axios","qs"],(function(e){"use strict";var t,n,s,r,o,i,a,c,l,u;return{setters:[function(e){t=e.clone},function(e){n=e.debounce,s=e.merge,r=e.uniqueId,e.round,e.cloneDeep,o=e.isFunction},function(e){i=e.getCookie,a=e.notNilEmpty},function(e){c=e.AxiosHeaders,l=e.default},function(e){u=e.stringify}],execute:function(){e({awaitTimeout:async function(e,t,n){if(await new Promise((t=>{setTimeout((()=>{t(!0)}),e)})),t)return t(...n||[])},calcMimeByFileName:Z,colorBlend:function(e,t,n=.5,s="hex"){e=e.trim(),t=t.trim();const r=X(e),o=X(t),i=[W((1-n)*r[0]+n*o[0]),W((1-n)*r[1]+n*o[1]),W((1-n)*r[2]+n*o[2]),(1-n)*r[3]+n*o[3]];if("hex"===s){const e=[i[0].toString(16),i[1].toString(16),i[2].toString(16),0===i[3]?"00":W(255*i[3]).toString(16)];return`#${e[0]}${e[1]}${e[2]}${e[3]}`}return`rgb(${i[0]} ${i[1]} ${i[2]} / ${i[3]})`},debounce:function(e,t,n){let s;return function(...r){if(s&&clearTimeout(s),n){const n=!s;s=setTimeout((()=>{s=null}),t),n&&e.apply(this,r)}else s=setTimeout((()=>{e.apply(this,r)}),t)}},debounceAndAsyncMerge:function(e,t,s){let r,o=[];const i=n((async(...t)=>{r=void 0;try{const n=await e(...t);return o.forEach((e=>{e.resolve(n)})),o=[],n}catch(e){o.forEach((t=>{t.reject(e)})),o=[]}}),s);return async(...e)=>{let n=e;return r&&(n=t(r,n)),r=n,i(...n),new Promise(((e,t)=>{o.push({resolve:e,reject:t})}))}},debounceAndMerge:function(e,t,s){let r;const o=n(((...t)=>(r=void 0,e(...t))),s);return(...e)=>{let n=e;return r&&(n=t(r,n)),r=n,o(...n)}},downloadFileFromBlob:function(e,t){const n=Z(t),s=new Blob([e],{type:n}),r=URL.createObjectURL(s),o=document.createElement("a");o.href=r,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(r)},eventPath:B,fileListToArr:K,getToken:I,install:function(){if(window.ibiz)throw new Error("ibiz 已经存在, 无需重复安装");window.ibiz=new J,window.___fc=new Y},isEventInside:H,isImage:function(e){const t=e.split(".").pop();if(!t)return!1;return[".jpeg","jpg","gif","png","bmp","svg"].includes(t)},isOverlap:function(e,t){return Array.from(new Set([...e,...t])).length!==e.length+t.length},listenJSEvent:D,onClickOutside:function(e,t,n={}){const{window:s=V,ignore:r=[],capture:o=!0}=n;if(!e)throw new S("target元素不存在");if(!s)throw new S("找不到window");let i=!0;const a=t=>![e,...r].some((e=>H(t,e)));let c=!1;let l;const u=e=>{c||(s.clearTimeout(l),i&&a(e)&&t(e))},d=[D(s,"click",u,{passive:!0,capture:o}),D(s,"pointerdown",(e=>{c||(i=a(e))}),{passive:!0}),D(s,"pointerup",(e=>{if(!c&&0===e.button){const t=B(e);e.composedPath=()=>t,l=s.setTimeout((()=>u(e)),50)}}),{passive:!0})].filter(Boolean);return{stop:()=>d.forEach((e=>e())),pause:()=>{c=!0},proceed:()=>{c=!1}}},selectFile:G,setRemoteStyle:async function(e){try{const t=await ibiz.net.get(e),n=document.createElement("style");n.setAttribute("title","app-style-css"),n.innerText=t.data,document.head.appendChild(n)}catch(t){M.debug("加载远程样式表失败",e)}},throttle:function(e,t){let n=null;return function(...s){n||(n=setTimeout((()=>{e.apply(this,s),n=null}),t))}},toDisposable:R,uploadFile:function(e){const t=s({multiple:!0,accept:"",separate:!0,beforeUpload:(e,t)=>!0,finish:e=>{},success:(e,t)=>{},error:(e,t)=>{},progress:e=>{}},e),n=async e=>{const n=e.map((e=>({status:"uploading",name:e.name,uid:r(),percentage:0})));if(!t.beforeUpload(e,n))return n.forEach((e=>{e.status="cancel"})),ibiz.log.debug("取消上传",n),n;try{const s=await(async(e,n)=>{if(t.request&&o(t.request))return t.request(e);const s=new FormData;throw e.forEach((e=>{s.append("file",e)})),new Error("多应用模式等待重新实现请求")})(e);n.forEach((e=>{e.status="finished"})),t.success(n,s),n.forEach((e=>{e.response=s}))}catch(s){n.forEach((e=>{e.status="fail"})),t.error(n,s),n.forEach((e=>{e.error=s})),ibiz.log.error(s),ibiz.log.error(`${e.map((e=>e.name)).join(",")}上传失败`)}return n};G({accept:t.accept,multiple:t.multiple,onSelected:e=>{(async e=>{const s=t.separate?e.map((e=>[e])):[e],r=await Promise.allSettled(s.map((async e=>n(e)))),o=[];r.forEach((e=>{"fulfilled"===e.status&&o.push(...e.value)})),t.finish(o)})(e)}})}});var d,h,p=Object.create,f=Object.defineProperty,m=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty,v=(d={"../../node_modules/.pnpm/loglevel@1.8.1/node_modules/loglevel/lib/loglevel.js"(e,t){var n,s;n=e,s=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),s=["trace","debug","info","warn","error"];function r(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function i(s){return"debug"===s&&(s="log"),typeof console!==t&&("trace"===s&&n?o:void 0!==console[s]?r(console,s):void 0!==console.log?r(console,"log"):e)}function a(t,n){for(var r=0;r<s.length;r++){var o=s[r];this[o]=r<t?e:this.methodFactory(o,t,n)}this.log=this.debug}function c(e,n,s){return function(){typeof console!==t&&(a.call(this,n,s),this[e].apply(this,arguments))}}function l(e,t,n){return i(e)||c.apply(this,arguments)}function u(e,n,r){var o,i=this;n=null==n?"WARN":n;var c="loglevel";function u(){var e;if(typeof window!==t&&c){try{e=window.localStorage[c]}catch(e){}if(typeof e===t)try{var n=window.document.cookie,s=n.indexOf(encodeURIComponent(c)+"=");-1!==s&&(e=/^([^;]+)/.exec(n.slice(s))[1])}catch(e){}return void 0===i.levels[e]&&(e=void 0),e}}"string"==typeof e?c+=":"+e:"symbol"==typeof e&&(c=void 0),i.name=e,i.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},i.methodFactory=r||l,i.getLevel=function(){return o},i.setLevel=function(n,r){if("string"==typeof n&&void 0!==i.levels[n.toUpperCase()]&&(n=i.levels[n.toUpperCase()]),!("number"==typeof n&&n>=0&&n<=i.levels.SILENT))throw"log.setLevel() called with invalid level: "+n;if(o=n,!1!==r&&function(e){var n=(s[e]||"silent").toUpperCase();if(typeof window!==t&&c){try{return void(window.localStorage[c]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(c)+"="+n+";"}catch(e){}}}(n),a.call(i,n,e),typeof console===t&&n<i.levels.SILENT)return"No console available for logging"},i.setDefaultLevel=function(e){n=e,u()||i.setLevel(e,!1)},i.resetLevel=function(){i.setLevel(n,!1),function(){if(typeof window!==t&&c){try{return void window.localStorage.removeItem(c)}catch(e){}try{window.document.cookie=encodeURIComponent(c)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}()},i.enableAll=function(e){i.setLevel(i.levels.TRACE,e)},i.disableAll=function(e){i.setLevel(i.levels.SILENT,e)};var d=u();null==d&&(d=n),i.setLevel(d,!1)}var d=new u,h={};d.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=h[e];return t||(t=h[e]=new u(e,d.getLevel(),d.methodFactory)),t};var p=typeof window!==t?window.log:void 0;return d.noConflict=function(){return typeof window!==t&&window.log===d&&(window.log=p),d},d.getLoggers=function(){return h},d.default=d,d},"function"==typeof define&&define.amd?define(s):"object"==typeof t&&t.exports?t.exports=s():n.log=s()}},function(){return h||(0,d[g(d)[0]])((h={exports:{}}).exports,h),h.exports}),b=class{constructor(e){this.element=e,this.next=b.Undefined,this.prev=b.Undefined}},E=b;E.Undefined=new b(void 0);var _=e("LinkedList",class{constructor(){this._first=E.Undefined,this._last=E.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===E.Undefined}clear(){let e=this._first;for(;e!==E.Undefined;){const{next:t}=e;e.prev=E.Undefined,e.next=E.Undefined,e=t}this._first=E.Undefined,this._last=E.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const n=new E(e);if(this._first===E.Undefined)this._first=n,this._last=n;else if(t){const e=this._last;this._last=n,n.prev=e,e.next=n}else{const e=this._first;this._first=n,n.next=e,e.prev=n}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(n))}}shift(){if(this._first===E.Undefined)return;const e=this._first.element;return this._remove(this._first),e}pop(){if(this._last===E.Undefined)return;const e=this._last.element;return this._remove(this._last),e}_remove(e){if(e.prev!==E.Undefined&&e.next!==E.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===E.Undefined&&e.next===E.Undefined?(this._first=E.Undefined,this._last=E.Undefined):e.next===E.Undefined?(this._last=this._last.prev,this._last.next=E.Undefined):e.prev===E.Undefined&&(this._first=this._first.next,this._first.prev=E.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==E.Undefined;)yield e.element,e=e.next}});function x(e){const t=this;let n,s=!1;return function(){return s||(s=!0,n=e.apply(t,arguments)),n}}function R(e){return{dispose:x((()=>{e()}))}}var U=e("CommandsRegistry",class{constructor(){this.commands=new Map}registerCommand(e,t,n){if(!e)throw new Error("invalid command");if("string"==typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t,opts:n})}const{id:s}=e;let r=this.commands.get(s);r||(r=new _,this.commands.set(s,r));const o=r.unshift(e);return R((()=>{o();const e=this.commands.get(s);(null==e?void 0:e.isEmpty())&&this.commands.delete(s)}))}hasCommand(e){return this.commands.has(e)}getCommand(e){const t=this.commands.get(e);if(t&&!t.isEmpty())return t[Symbol.iterator]().next().value}getCommands(){const e=new Map,t=this.commands.keys();for(const n of t){const t=this.getCommand(n);t&&e.set(n,t)}return e}getCommandOpt(e){const t=this.getCommand(e);return null==t?void 0:t.opts}}),C=e("CommandController",class{constructor(){this.commandRegister=new U}register(e,t,n){return this.commandRegister.registerCommand(e,t,n)}async execute(e,...t){const n=this.commandRegister.getCommand(e);if(n)return n.handler(...t);throw new Error(`未注册指令: ${e},请先注册指令`)}hasCommand(e,t){const n=!!this.commandRegister.hasCommand(e);if(!0===t&&!0===n)throw new Error(`未注册指令: ${e},请先注册指令`);return n}getCommandOpts(e){return this.commandRegister.getCommandOpt(e)}}),$=(e("commands",new C),e("CoreConst",class{}));$.DEFAULT_MODEL_SERVICE_TAG="default",$.TOKEN="access_token",$.TOKEN_EXPIRES="access_token_expires";var k=e("NOOP",(()=>{})),O=(e("HttpStatusMessageConst",{200:"服务器成功返回请求的数据。",201:"新建或修改数据成功。",202:"一个请求已经进入后台排队(异步任务)。",204:"删除数据成功。",400:"发出的请求有错误,服务器没有进行新建或修改数据的操作。",401:"用户没有权限(令牌、用户名、密码错误)。",403:"用户得到授权,但是访问是被禁止的。",404:"发出的请求针对的是不存在的记录,服务器没有进行操作。",406:"请求的格式不可得。",410:"请求的资源被永久删除,且不会再得到的。",422:"当创建一个对象时,发生一个验证错误。",500:"服务器发生错误,请检查服务器。",502:"网关错误。",503:"服务不可用,服务器暂时过载或维护。",504:"网关超时。"}),e("LoginMode",(e=>(e.DEFAULT="DEFAULT",e.CUSTOM="CUSTOM",e.CAS="CAS",e))(O||{}))),P=e("MenuPermissionMode",(e=>(e.MIXIN="MIXIN",e.RESOURCE="RESOURCE",e.RT="RT",e))(P||{})),T=e("IBizContext",class{constructor(e={},t){if(Object.defineProperty(this,"_associationContext",{enumerable:!1,value:[]}),t){const e=this;Object.defineProperty(this,"_parent",{enumerable:!1,writable:!0,value:t}),Object.defineProperty(this,"_context",{enumerable:!1,writable:!0,value:{}});const n={};Object.keys(t).forEach((s=>{n[s]={enumerable:!0,set(t){e._context[s]=null==t?null:t},get:()=>void 0!==e._context[s]?e._context[s]:t[s]}})),Object.defineProperties(this,n)}Object.assign(this,e)}getOwnContext(){const e={};return Object.keys(this).forEach((t=>{this._parent&&Object.prototype.hasOwnProperty.call(this._parent,t)&&!Object.prototype.hasOwnProperty.call(this._context,t)||(e[t]=this[t])})),e}destroy(){this._parent=void 0,this._context={},this._associationContext.forEach((e=>{e.destroy()}))}clone(){const e=new T(t(this.getOwnContext()),this._parent);return this._associationContext.push(e),e}static create(e,t){return new T(e,t)}}),L=e("Environment",{dev:!1,hub:!0,logLevel:"ERROR",baseUrl:"/api",appId:"",pluginBaseUrl:"./plugins",remoteModelUrl:"/remotemodel",assetsUrl:"./assets",dcSystem:"",downloadFileUrl:"/ibizutil/download",uploadFileUrl:"/ibizutil/upload",casLoginUrl:"",loginMode:"DEFAULT",menuPermissionMode:"MIXIN",enablePermission:!0,routePlaceholder:"-",enableWfAllHistory:!1}),j=e("HttpError",class extends Error{constructor(e){super("HttpError"),this.name="HttpError";const t=e.response;this.response=e.response,t?(t.data?this.message=t.data.message:this.message=t.statusText,this.message||(this.message="网络异常,请稍后重试!"),this.status=t.status):(this.message=e.message,this.status=500)}}),S=(e("ModelError",class extends Error{constructor(e,t){super(`「${e.id}」模型${t?`: ${t}`:""}`),this.model=e,this.name="未支持的模型"}}),e("RuntimeError",class extends Error{constructor(e){super(e),this.message=e,this.name="Runtime Error"}}));e("RuntimeModelError",class extends Error{constructor(e,t){super(`「${e.id}」模型${t?`: ${t}`:""}`),this.model=e,this.name="模型配置缺失"}});function I(){return i($.TOKEN)}var A=e("Interceptor",class{async onBeforeRequest(e){return e}onRequestError(e){return Promise.reject(e)}async onResponseSuccess(e){return e}onResponseError(e){return Promise.reject(e)}use(e){this.requestTag=e.interceptors.request.use(this.onBeforeRequest,this.onRequestError),this.responseTag=e.interceptors.response.use(this.onResponseSuccess,this.onResponseError)}eject(e){this.requestTag&&e.interceptors.request.eject(this.requestTag),this.responseTag&&e.interceptors.response.eject(this.responseTag)}}),z=e("CoreInterceptor",class extends A{async onBeforeRequest(e){await super.onBeforeRequest(e);const{headers:t}=e;t.set("Authorization",`Bearer ${I()}`);const{orgData:n}=ibiz;return n&&(n.systemid&&t.set("srfsystemid",n.systemid),n.orgid&&t.set("srforgid",n.orgid)),e}}),M=e("Logger",((e,t,n)=>(n=null!=e?p(w(e)):{},((e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of g(t))y.call(e,r)||r===n||f(e,r,{get:()=>t[r],enumerable:!(s=m(t,r))||s.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(v(),1));function N(e,t,n,s,r){let o=`${e}-${t}`;return n&&(o+=`-${n}`),s&&(o+=`__${s}`),r&&(o+=`--${r}`),o}e("Namespace",class{constructor(e,t){this.block=e,this.namespace=t||"ibiz"}b(e=""){return N(this.namespace,this.block,e,"","")}e(e){return e?N(this.namespace,this.block,"",e,""):""}m(e){return e?N(this.namespace,this.block,"","",e):""}be(e,t){return e&&t?N(this.namespace,this.block,e,t,""):""}em(e,t){return e&&t?N(this.namespace,this.block,"",e,t):""}bm(e,t){return e&&t?N(this.namespace,this.block,e,"",t):""}bem(e,t,n){return e&&t&&n?N(this.namespace,this.block,e,t,n):""}is(e,t){return e&&t?`is-${e}`:""}cssVar(e){const t={};for(const n in e)e[n]&&(t[this.cssVarName(n)]=e[n]);return t}cssVarBlock(e){const t={};for(const n in e)e[n]&&(t[this.cssVarBlockName(n)]=e[n]);return t}cssVarName(e){return`--${this.namespace}-${e}`}cssVarBlockName(e){return`--${this.namespace}-${this.block}-${e}`}}),e("HttpResponse",class{constructor(e,t,n){this.local=!0,this.ok=!1,this.headers={},this.config={headers:new c},this.data=e,this.status=t||200,this.statusText=n||"",this.status>=200&&this.status<300&&(this.ok=!0)}});var q=e("Net",class{constructor(e){this.urlReg=/^http[s]?:\/\/[^\s]*/,this.interceptors=new Map,this.instance=l.create(e),this.addInterceptor("Default",new z)}addInterceptor(e,t){t.use(this.instance),this.interceptors.set(e,t)}removeInterceptor(e){const t=this.interceptors.get(e);t&&(t.eject(this.instance),this.interceptors.delete(e))}get presetConfig(){return{baseURL:this.instance.defaults.baseURL||`${ibiz.env.baseUrl}/${ibiz.env.appId}`,headers:{"Content-Type":"application/json;charset=UTF-8",Accept:"application/json"}}}mergeConfig(...e){const t=this.presetConfig;if(0===e.length)return t;const{url:n}=e[0];return n&&this.urlReg.test(n)&&delete t.baseURL,s(t,...e)}async post(e,t,n={},s={}){e=this.handleAppPresetParam(e,n);try{const n=await this.request(e,{method:"post",data:t,headers:s});return this.doResponseResult(n)}catch(e){throw new j(e)}}async get(e,t={},n={},r={}){e=this.attachUrlParam(e,t);try{const t=await this.request(e,s({method:"get",headers:n},r));return this.doResponseResult(t)}catch(e){throw new j(e)}}async delete(e,t,n={}){e=this.handleAppPresetParam(e,t);try{const t=await this.request(e,{method:"delete",headers:n});return this.doResponseResult(t)}catch(e){throw new j(e)}}async put(e,t,n={},s={}){e=this.handleAppPresetParam(e,n);try{const n=await this.request(e,{method:"put",data:t,headers:s});return this.doResponseResult(n)}catch(e){throw new j(e)}}async getModel(e,t={}){try{const n=await this.instance.get(e,{headers:t});return this.doResponseResult(n)}catch(e){throw new j(e)}}async request(e,t={}){try{const n=await this.instance.request(this.mergeConfig({url:e},t));return this.doResponseResult(n)}catch(e){throw new j(e)}}axios(e){return l(e)}doResponseResult(e){const t=e;return t.status>=200&&t.status<=299&&(t.ok=!0),t}handleAppPresetParam(e,t){if(t){return Object.keys(t).forEach((e=>{e.startsWith("srf")&&a(t[e])&&t[e]})),this.attachUrlParam(e,t)}return e}attachUrlParam(e,t){const n=u(t);return a(n)&&(e=e.endsWith("?")||-1!==e.indexOf("?")&&e.endsWith("&")?`${e}${n}`:-1===e.indexOf("?")||e.endsWith("&")?`${e}?${n}`:`${e}&${n}`),e}}),F=e("StringUtil",class{static fill(e,t,n){if(a(e)){if(a(t)){const n=e.match(this.contextReg);null==n||n.forEach((n=>{const s=n.slice(10,n.length-1);e=e.replace(`\${context.${s}}`,t[s]||"")}))}if(a(n)){const t=e.match(this.dataReg);null==t||t.forEach((t=>{const s=t.slice(7,t.length-1);e=e.replace(`\${data.${s}}`,n[s]||"")}))}}return e}});F.contextReg=/\$\{context.[a-zA-Z_$][a-zA-Z0-9_$]{1,}\}/g,F.dataReg=/\$\{data.[a-zA-Z_$][a-zA-Z0-9_$]{1,}\}/g;e("UrlHelper",class{static get routeBase(){return`${this.appBase}/#`}static get appBase(){const{origin:e,pathname:t}=window.location;return`${e}${t}`.replace(/\/$/,"")}static get routePath(){return window.location.hash.replace("#","")}static get fullPath(){return window.location.href}});function B(e){const t=e.composedPath&&e.composedPath()||e.path;if(null!=t)return t;return[e.target].concat(function e(t,n=[]){const s=t.parentNode;return s?e(s,n.concat([s])):n}(e.target))}function D(e,t,n,s={}){e.addEventListener(t,n,s);let r=()=>{e.removeEventListener(t,n,s),r=k};return()=>{r()}}function H(e,t){return t&&(e.target===t||B(e).includes(t))}var V="undefined"!=typeof window?window:void 0;var W=Math.round;function X(e){const t=e.length,n=[];if("rgb"===e.slice(0,3).toLowerCase()){const t=e.match(/([\d|.%]{1,3})/g);n[0]=parseInt(t[0],10),n[1]=parseInt(t[1],10),n[2]=parseInt(t[2],10),n[3]=t[3]?-1!==t[3].indexOf("%")?parseInt(t[3],10)/100:parseFloat(t[3]):1}else{let s;s=t<6?parseInt(String(e[1])+e[1]+e[2]+e[2]+e[3]+e[3]+(t>4?String(e[4])+e[4]:""),16):parseInt(e.slice(1),16),n[0]=s>>16&255,n[1]=s>>8&255,n[2]=255&s,n[3]=9===t||5===t?W((s>>24&255)/255*1e4)/1e4:1}return n}function Z(e){let t="";switch(e.split(".").pop()){case".wps":t="application/kswps";break;case".doc":t="application/msword";break;case".docx":t="application/vnd.openxmlformats-officedocument.wordprocessingml.document";break;case".txt":t="text/plain";break;case".zip":t="application/zip";break;case".png":t="image/png";break;case".gif":t="image/gif";break;case".jpeg":case".jpg":t="image/jpeg";break;case".rtf":t="application/rtf";break;case".avi":t="video/x-msvideo";break;case".gz":t="application/x-gzip";break;case".tar":t="application/x-tar";break;case".xlsx":t="application/vnd.ms-excel";break;default:t=""}return t}function K(e){const t=[];for(let n=0;n<e.length;n++)t.push(e[n]);return t}function G(e){const t=s({multiple:!0,accept:""},e),n=document.createElement("input");n.setAttribute("type","file"),n.setAttribute("multiple",`${t.multiple}`),n.setAttribute("accept",t.accept),n.onchange=e=>{const n=e.target,s=n.files?K(n.files):[];0!==s.length&&(t.onSelected(s),n.value="")},document.body.appendChild(n),n.click(),document.body.removeChild(n)}e("CountLatch",class{constructor(){this.promise=null,this.resolve=null,this.count=0}startPromise(){this.promise=new Promise((e=>{this.resolve=e}))}endPromise(){this.resolve&&(this.resolve(),this.resolve=null,this.promise=null)}lock(){this.count+=1,this.promise||this.startPromise()}unlock(){if(this.count<1)throw new S("lock和unlock次数不匹配!");this.count-=1,0===this.count&&this.endPromise()}async await(){this.promise&&await this.promise}});var J=e("IBizSys",class{constructor(){this.env=L,this.log=M,this.net=new q,this.commands=new C}}),Y=e("FactoryCenter",class{})}}}));
1
+ System.register(["ramda","lodash-es","qx-util","axios","qs"],(function(e){"use strict";var t,n,s,o,r,i,a,c,l,u,h,p,d;return{setters:[function(e){t=e.clone,n=e.isNotNil,s=e.isNil,o=e.mergeDeepRight},function(e){r=e.debounce,i=e.merge,a=e.uniqueId,e.round,e.cloneDeep,c=e.isFunction},function(e){l=e.getCookie,u=e.notNilEmpty},function(e){h=e.AxiosHeaders,p=e.default},function(e){d=e.stringify}],execute:function(){e({awaitTimeout:async function(e,t,n){if(await new Promise((t=>{setTimeout((()=>{t(!0)}),e)})),t)return t(...n||[])},calcMimeByFileName:K,colorBlend:function(e,t,n=.5,s="hex"){e=e.trim(),t=t.trim();const o=J(e),r=J(t),i=[Z((1-n)*o[0]+n*r[0]),Z((1-n)*o[1]+n*r[1]),Z((1-n)*o[2]+n*r[2]),(1-n)*o[3]+n*r[3]];if("hex"===s){const e=[i[0].toString(16),i[1].toString(16),i[2].toString(16),0===i[3]?"00":Z(255*i[3]).toString(16)];return"#".concat(e[0]).concat(e[1]).concat(e[2]).concat(e[3])}return"rgb(".concat(i[0]," ").concat(i[1]," ").concat(i[2]," / ").concat(i[3],")")},compareArr:function(e,t,n){const s=new Set([...e,...t]),o=[],r=[],i=[];if(n){const a=e.map((e=>e[n])),c=t.map((e=>e[n]));s.forEach((e=>{a.includes(e[n])?c.includes(e[n])?i.push(e):o.push(e):r.push(e)}))}else s.forEach((n=>{e.includes(n)?t.includes(n)?i.push(n):o.push(n):r.push(n)}));return{more:o,less:r,same:i}},debounce:function(e,t,n){let s;return function(...o){if(s&&clearTimeout(s),n){const n=!s;s=setTimeout((()=>{s=null}),t),n&&e.apply(this,o)}else s=setTimeout((()=>{e.apply(this,o)}),t)}},debounceAndAsyncMerge:function(e,t,n){let s,o=[];const i=r((async(...t)=>{s=void 0;try{const n=await e(...t);return o.forEach((e=>{e.resolve(n)})),o=[],n}catch(e){o.forEach((t=>{t.reject(e)})),o=[]}}),n);return async(...e)=>{let n=e;return s&&(n=t(s,n)),s=n,i(...n),new Promise(((e,t)=>{o.push({resolve:e,reject:t})}))}},debounceAndMerge:function(e,t,n){let s;const o=r(((...t)=>(s=void 0,e(...t))),n);return(...e)=>{let n=e;return s&&(n=t(s,n)),s=n,o(...n)}},downloadFileFromBlob:function(e,t){const n=K(t),s=new Blob([e],{type:n}),o=URL.createObjectURL(s),r=document.createElement("a");r.href=o,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(o)},eventPath:$,fileListToArr:G,findRecursiveChild:function(e,t,n){const{compareField:s,compareCallback:r}=o(ne,n||{}),i=r||(e=>e[s]===t);let a;return te(e,(e=>{if(i(e,t,s))return a=e,!0}),n),a},getToken:z,install:function(){if(window.ibiz)throw new Error("ibiz 已经存在, 无需重复安装");window.ibiz=new ie},isElementSame:function(e,t,n){if(e.length!==t.length)return!1;const s=n?[...e.map((e=>e[n])),...t.map((e=>e[n]))]:[...e,...t];return Array.from(new Set(s)).length===e.length},isEventInside:V,isImage:function(e){const t=e.split(".").pop();if(!t)return!1;return[".jpeg","jpg","gif","png","bmp","svg"].includes(t)},isOverlap:function(e,t){return Array.from(new Set([...e,...t])).length!==e.length+t.length},listenJSEvent:H,mergeDefaultInLeft:function(e,t){Object.keys(t).forEach((o=>{n(t[o])&&s(e[o])&&(e[o]=t[o])}))},mergeInLeft:function(e,t){Object.keys(t).forEach((s=>{n(t[s])&&(e[s]=t[s])}))},onClickOutside:function(e,t,n={}){const{window:s=X,ignore:o=[],capture:r=!0}=n;if(!e)throw new N("target元素不存在");if(!s)throw new N("找不到window");let i=!0;const a=t=>![e,...o].some((e=>V(t,e)));let c=!1;let l;const u=e=>{c||(s.clearTimeout(l),i&&a(e)&&t(e))},h=[H(s,"click",u,{passive:!0,capture:r}),H(s,"pointerdown",(e=>{c||(i=a(e))}),{passive:!0}),H(s,"pointerup",(e=>{if(!c&&0===e.button){const t=$(e);e.composedPath=()=>t,l=s.setTimeout((()=>u(e)),50)}}),{passive:!0})].filter(Boolean);return{stop:()=>h.forEach((e=>e())),pause:()=>{c=!0},proceed:()=>{c=!1}}},recursiveIterate:te,selectFile:Y,setRemoteStyle:async function(e){try{const t=await ibiz.net.get(e),n=document.createElement("style");n.setAttribute("title","app-style-css"),n.innerText=t.data,document.head.appendChild(n)}catch(t){ibiz.log.debug("加载远程样式表失败",e)}},throttle:function(e,t){let n=null;return function(...s){n||(n=setTimeout((()=>{e.apply(this,s),n=null}),t))}},toDisposable:k,toNumberOrNil:function(e){if(s(e))return;const t=Number(e);if(Number.isNaN(t))return;return t},uploadFile:function(e){const t=i({multiple:!0,accept:"",separate:!0,beforeUpload:(e,t)=>!0,finish:e=>{},success:(e,t)=>{},error:(e,t)=>{},progress:e=>{}},e),n=async e=>{const n=e.map((e=>({status:"uploading",name:e.name,uid:a(),percentage:0})));if(!t.beforeUpload(e,n))return n.forEach((e=>{e.status="cancel"})),ibiz.log.debug("取消上传",n),n;try{const s=await(async(e,n)=>{if(t.request&&c(t.request))return t.request(e);const s=new FormData;throw e.forEach((e=>{s.append("file",e)})),new N("多应用模式等待重新实现请求")})(e);n.forEach((e=>{e.status="finished"})),t.success(n,s),n.forEach((e=>{e.response=s}))}catch(s){n.forEach((e=>{e.status="fail"})),t.error(n,s),n.forEach((e=>{e.error=s})),ibiz.log.error(s),ibiz.log.error("".concat(e.map((e=>e.name)).join(","),"上传失败"))}return n};Y({accept:t.accept,multiple:t.multiple,onSelected:e=>{(async e=>{const s=t.separate?e.map((e=>[e])):[e],o=await Promise.allSettled(s.map((async e=>n(e)))),r=[];o.forEach((e=>{"fulfilled"===e.status&&r.push(...e.value)})),t.finish(r)})(e)}})}});var f=Object.create,m=Object.defineProperty,g=Object.getOwnPropertyDescriptor,w=Object.getOwnPropertyNames,v=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty,b=(e,t)=>function(){return t||(0,e[w(e)[0]])((t={exports:{}}).exports,t),t.exports},x=(e,t,n)=>(n=null!=e?f(v(e)):{},((e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of w(t))y.call(e,o)||o===n||m(e,o,{get:()=>t[o],enumerable:!(s=g(t,o))||s.enumerable});return e})(!t&&e&&e.__esModule?n:m(n,"default",{value:e,enumerable:!0}),e)),E=b({"../../node_modules/.pnpm/loglevel@1.8.1/node_modules/loglevel/lib/loglevel.js"(e,t){var n,s;n=e,s=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),s=["trace","debug","info","warn","error"];function o(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function r(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function i(t,n){for(var o=0;o<s.length;o++){var r=s[o];this[r]=o<t?e:this.methodFactory(r,t,n)}this.log=this.debug}function a(e,n,s){return function(){typeof console!==t&&(i.call(this,n,s),this[e].apply(this,arguments))}}function c(s,i,c){return function(s){return"debug"===s&&(s="log"),typeof console!==t&&("trace"===s&&n?r:void 0!==console[s]?o(console,s):void 0!==console.log?o(console,"log"):e)}(s)||a.apply(this,arguments)}function l(e,n,o){var r,a=this;n=null==n?"WARN":n;var l="loglevel";function u(){var e;if(typeof window!==t&&l){try{e=window.localStorage[l]}catch(e){}if(typeof e===t)try{var n=window.document.cookie,s=n.indexOf(encodeURIComponent(l)+"=");-1!==s&&(e=/^([^;]+)/.exec(n.slice(s))[1])}catch(e){}return void 0===a.levels[e]&&(e=void 0),e}}"string"==typeof e?l+=":"+e:"symbol"==typeof e&&(l=void 0),a.name=e,a.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},a.methodFactory=o||c,a.getLevel=function(){return r},a.setLevel=function(n,o){if("string"==typeof n&&void 0!==a.levels[n.toUpperCase()]&&(n=a.levels[n.toUpperCase()]),!("number"==typeof n&&n>=0&&n<=a.levels.SILENT))throw"log.setLevel() called with invalid level: "+n;if(r=n,!1!==o&&function(e){var n=(s[e]||"silent").toUpperCase();if(typeof window!==t&&l){try{return void(window.localStorage[l]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(l)+"="+n+";"}catch(e){}}}(n),i.call(a,n,e),typeof console===t&&n<a.levels.SILENT)return"No console available for logging"},a.setDefaultLevel=function(e){n=e,u()||a.setLevel(e,!1)},a.resetLevel=function(){a.setLevel(n,!1),function(){if(typeof window!==t&&l){try{return void window.localStorage.removeItem(l)}catch(e){}try{window.document.cookie=encodeURIComponent(l)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}()},a.enableAll=function(e){a.setLevel(a.levels.TRACE,e)},a.disableAll=function(e){a.setLevel(a.levels.SILENT,e)};var h=u();null==h&&(h=n),a.setLevel(h,!1)}var u=new l,h={};u.getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=h[e];return t||(t=h[e]=new l(e,u.getLevel(),u.methodFactory)),t};var p=typeof window!==t?window.log:void 0;return u.noConflict=function(){return typeof window!==t&&window.log===u&&(window.log=p),u},u.getLoggers=function(){return h},u.default=u,u},"function"==typeof define&&define.amd?define(s):"object"==typeof t&&t.exports?t.exports=s():n.log=s()}}),R=b({"../../node_modules/.pnpm/loglevel-plugin-prefix@0.8.4/node_modules/loglevel-plugin-prefix/lib/loglevel-plugin-prefix.js"(e,t){var n,s;n=e,s=function(e){var t,n,s={template:"[%t] %l:",levelFormatter:function(e){return e.toUpperCase()},nameFormatter:function(e){return e||"root"},timestampFormatter:function(e){return e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")},format:void 0},o={},r={reg:function(e){if(!e||!e.getLogger)throw new TypeError("Argument is not a root logger");t=e},apply:function(e,n){if(!e||!e.setLevel)throw new TypeError("Argument is not a logger");var r=e.methodFactory,i=e.name||"",a=o[i]||o[""]||s;return o[i]||(e.methodFactory=function(e,t,n){var s=r(e,t,n),a=o[n]||o[""],c=-1!==a.template.indexOf("%t"),l=-1!==a.template.indexOf("%l"),u=-1!==a.template.indexOf("%n");return function(){for(var t="",r=arguments.length,h=Array(r),p=0;p<r;p++)h[p]=arguments[p];if(i||!o[n]){var d=a.timestampFormatter(new Date),f=a.levelFormatter(e),m=a.nameFormatter(n);a.format?t+=a.format(f,m,d):(t+=a.template,c&&(t=t.replace(/%t/,d)),l&&(t=t.replace(/%l/,f)),u&&(t=t.replace(/%n/,m))),h.length&&"string"==typeof h[0]?h[0]=t+" "+h[0]:h.unshift(t)}s.apply(void 0,h)}}),(n=n||{}).template&&(n.format=void 0),o[i]=function(e){for(var t,n=1,s=arguments.length;n<s;n++)for(t in arguments[n])Object.prototype.hasOwnProperty.call(arguments[n],t)&&(e[t]=arguments[n][t]);return e}({},a,n),e.setLevel(e.getLevel()),t||e.warn("It is necessary to call the function reg() of loglevel-plugin-prefix before calling apply. From the next release, it will throw an error. See more: https://github.com/kutuluk/loglevel-plugin-prefix/blob/master/README.md"),e}};return e&&(n=e.prefix,r.noConflict=function(){return e.prefix===r&&(e.prefix=n),r}),r},"function"==typeof define&&define.amd?define(s):"object"==typeof t&&t.exports?t.exports=s():n.prefix=s(n)}}),_=class e{constructor(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}};_.Undefined=new _(void 0);var U=_,C=e("LinkedList",class{constructor(){this._first=U.Undefined,this._last=U.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===U.Undefined}clear(){let e=this._first;for(;e!==U.Undefined;){const{next:t}=e;e.prev=U.Undefined,e.next=U.Undefined,e=t}this._first=U.Undefined,this._last=U.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const n=new U(e);if(this._first===U.Undefined)this._first=n,this._last=n;else if(t){const e=this._last;this._last=n,n.prev=e,e.next=n}else{const e=this._first;this._first=n,n.next=e,e.prev=n}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(n))}}shift(){if(this._first===U.Undefined)return;const e=this._first.element;return this._remove(this._first),e}pop(){if(this._last===U.Undefined)return;const e=this._last.element;return this._remove(this._last),e}_remove(e){if(e.prev!==U.Undefined&&e.next!==U.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===U.Undefined&&e.next===U.Undefined?(this._first=U.Undefined,this._last=U.Undefined):e.next===U.Undefined?(this._last=this._last.prev,this._last.next=U.Undefined):e.prev===U.Undefined&&(this._first=this._first.next,this._first.prev=U.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==U.Undefined;)yield e.element,e=e.next}});function O(e){const t=this;let n,s=!1;return function(){return s||(s=!0,n=e.apply(t,arguments)),n}}function k(e){return{dispose:O((()=>{e()}))}}var P=e("CommandsRegistry",class{constructor(){this.commands=new Map}registerCommand(e,t,n){if(!e)throw new Error("invalid command");if("string"==typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t,opts:n})}const{id:s}=e;let o=this.commands.get(s);o||(o=new C,this.commands.set(s,o));const r=o.unshift(e);return k((()=>{r();const e=this.commands.get(s);(null==e?void 0:e.isEmpty())&&this.commands.delete(s)}))}hasCommand(e){return this.commands.has(e)}getCommand(e){const t=this.commands.get(e);if(t&&!t.isEmpty())return t[Symbol.iterator]().next().value}getCommands(){const e=new Map,t=this.commands.keys();for(const n of t){const t=this.getCommand(n);t&&e.set(n,t)}return e}getCommandOpt(e){const t=this.getCommand(e);return null==t?void 0:t.opts}}),T=e("CommandController",class{constructor(){this.commandRegister=new P}register(e,t,n){return this.commandRegister.registerCommand(e,t,n)}async execute(e,...t){const n=this.commandRegister.getCommand(e);if(n)return n.handler(...t);throw new Error("未注册指令: ".concat(e,",请先注册指令"))}hasCommand(e,t){const n=!!this.commandRegister.hasCommand(e);if(!0===t&&!0===n)throw new Error("未注册指令: ".concat(e,",请先注册指令"));return n}getCommandOpts(e){return this.commandRegister.getCommandOpt(e)}}),L=(e("commands",new T),e("CoreConst",class{}));L.DEFAULT_MODEL_SERVICE_TAG="default",L.TOKEN="ibzuaa-token",L.TOKEN_EXPIRES="ibzuaa-token_expires";var S=e("NOOP",(()=>{})),j=(e("HttpStatusMessageConst",{200:"服务器成功返回请求的数据。",201:"新建或修改数据成功。",202:"一个请求已经进入后台排队(异步任务)。",204:"删除数据成功。",400:"发出的请求有错误,服务器没有进行新建或修改数据的操作。",401:"用户没有权限(令牌、用户名、密码错误)。",403:"用户得到授权,但是访问是被禁止的。",404:"发出的请求针对的是不存在的记录,服务器没有进行操作。",406:"请求的格式不可得。",410:"请求的资源被永久删除,且不会再得到的。",422:"当创建一个对象时,发生一个验证错误。",500:"服务器发生错误,请检查服务器。",502:"网关错误。",503:"服务不可用,服务器暂时过载或维护。",504:"网关超时。"}),e("LoginMode",(e=>(e.DEFAULT="DEFAULT",e.CUSTOM="CUSTOM",e.CAS="CAS",e))(j||{}))),A=e("MenuPermissionMode",(e=>(e.MIXIN="MIXIN",e.RESOURCE="RESOURCE",e.RT="RT",e))(A||{})),I=(e("IBizContext",class e{constructor(e={},t){Object.defineProperty(this,"_associationContext",{enumerable:!1,value:[]}),t&&this.initWithParent(t),Object.assign(this,e)}initWithParent(e){const t=this;Object.defineProperty(this,"_parent",{enumerable:!1,writable:!0,value:e}),Object.defineProperty(this,"_context",{enumerable:!1,writable:!0,value:{}});const n={};Object.keys(e).forEach((e=>{Object.prototype.hasOwnProperty.call(this,e)||(n[e]={enumerable:!0,set(n){t._context[e]=null==n?null:n},get:()=>void 0!==t._context[e]?t._context[e]:t._parent[e]})})),Object.defineProperties(this,n)}getOwnContext(){const e={};return Object.keys(this).forEach((t=>{this._parent&&Object.prototype.hasOwnProperty.call(this._parent,t)&&!Object.prototype.hasOwnProperty.call(this._context,t)||(e[t]=this[t])})),e}destroy(){this._parent=void 0,this._context={},this._associationContext.forEach((e=>{e.destroy()}))}clone(){const n=new e(t(this.getOwnContext()),this._parent);return this._associationContext.push(n),n}reset(e={},t){this._associationContext.forEach((e=>{e.destroy()})),this._parent&&(this._parent={},this._context={}),Object.keys(this).forEach((e=>{try{delete this[e]}catch(e){}})),t&&this.initWithParent(t),Object.assign(this,e)}static create(t,n){return new e(t,n)}}),e("Environment",{dev:!1,hub:!0,logLevel:"ERROR",baseUrl:"/api",appId:"",pluginBaseUrl:"./plugins",isLocalModel:!1,remoteModelUrl:"/remotemodel",assetsUrl:"./assets",dcSystem:"",downloadFileUrl:"/ibizutil/download",uploadFileUrl:"/ibizutil/upload",casLoginUrl:"",loginMode:"DEFAULT",menuPermissionMode:"MIXIN",enablePermission:!0,routePlaceholder:"-",enableWfAllHistory:!1,isMob:!1,isSaaSMode:!0,AppTitle:"应用",favicon:"./favicon.ico"})),F=e("HttpError",class extends Error{constructor(e){super("HttpError"),this.name="HttpError";const t=e.response;this.response=e.response,t?(t.data?this.message=t.data.message:this.message=t.statusText,this.message||(this.message="网络异常,请稍后重试!"),this.status=t.status):(this.message=e.message,this.status=500)}}),N=(e("ModelError",class extends Error{constructor(e,t){super("「".concat(e.id,"」模型").concat(t?": ".concat(t):"")),this.model=e,this.name="未支持的模型"}}),e("RuntimeError",class extends Error{constructor(e){super(e),this.message=e,this.name="Runtime Error"}}));e("RuntimeModelError",class extends Error{constructor(e,t){super("「".concat(e.id,"」模型").concat(t?": ".concat(t):"")),this.model=e,this.name="模型配置缺失"}});function z(){return l(L.TOKEN)}var q=e("Interceptor",class{async onBeforeRequest(e){return e}onRequestError(e){return Promise.reject(e)}async onResponseSuccess(e){return e}onResponseError(e){return Promise.reject(e)}use(e){this.requestTag=e.interceptors.request.use(this.onBeforeRequest,this.onRequestError),this.responseTag=e.interceptors.response.use(this.onResponseSuccess,this.onResponseError)}eject(e){this.requestTag&&e.interceptors.request.eject(this.requestTag),this.responseTag&&e.interceptors.response.eject(this.responseTag)}}),M=e("CoreInterceptor",class extends q{async onBeforeRequest(e){e=await super.onBeforeRequest(e);const{headers:t}=e;t.set("Authorization","Bearer ".concat(z()));let n=ibiz.env.dcSystem;const{orgData:s}=ibiz;return s&&(s.systemid&&(n=s.systemid),s.orgid&&t.set("srforgid",s.orgid)),t.set("srfsystemid",n),e}});function B(e,t,n,s,o){let r="".concat(e,"-").concat(t);return n&&(r+="-".concat(n)),s&&(r+="__".concat(s)),o&&(r+="--".concat(o)),r}e("Namespace",class{constructor(e,t){this.block=e,this.namespace=t||"ibiz"}b(e=""){return B(this.namespace,this.block,e,"","")}e(e){return e?B(this.namespace,this.block,"",e,""):""}m(e){return e?B(this.namespace,this.block,"","",e):""}be(e,t){return e&&t?B(this.namespace,this.block,e,t,""):""}em(e,t){return e&&t?B(this.namespace,this.block,"",e,t):""}bm(e,t){return e&&t?B(this.namespace,this.block,e,"",t):""}bem(e,t,n){return e&&t&&n?B(this.namespace,this.block,e,t,n):""}is(e,t){return e&&t?"".concat("is-").concat(e):""}cssVar(e){const t={};for(const n in e)e[n]&&(t[this.cssVarName(n)]=e[n]);return t}cssVarBlock(e){const t={};for(const n in e)e[n]&&(t[this.cssVarBlockName(n)]=e[n]);return t}cssVarName(e){return"--".concat(this.namespace,"-").concat(e)}cssVarBlockName(e){return"--".concat(this.namespace,"-").concat(this.block,"-").concat(e)}}),e("HttpResponse",class{constructor(e,t,n){this.local=!0,this.ok=!1,this.headers={},this.config={headers:new h},this.data=e,this.status=t||200,this.statusText=n||"",this.status>=200&&this.status<300&&(this.ok=!0)}});var D=e("Net",class{constructor(e){this.urlReg=/^http[s]?:\/\/[^\s]*/,this.waitRequest=new Map,this.interceptors=new Map,this.instance=p.create(e),this.addInterceptor("Default",new M)}addInterceptor(e,t){t.use(this.instance),this.interceptors.set(e,t)}removeInterceptor(e){const t=this.interceptors.get(e);t&&(t.eject(this.instance),this.interceptors.delete(e))}get presetConfig(){return{baseURL:this.instance.defaults.baseURL||"".concat(ibiz.env.baseUrl,"/").concat(ibiz.env.appId),headers:{"Content-Type":"application/json;charset=UTF-8",Accept:"application/json"}}}mergeConfig(...e){const t=this.presetConfig;if(0===e.length)return t;const{url:n}=e[0];return n&&this.urlReg.test(n)&&delete t.baseURL,i(t,...e)}async post(e,t,n={},s={}){e=this.handleAppPresetParam(e,n);try{const n=await this.request(e,{method:"post",data:t,headers:s});return this.doResponseResult(n)}catch(e){throw new F(e)}}async get(e,t={},n={},s={}){e=this.attachUrlParam(e,t);try{const t=await this.request(e,i({method:"get",headers:n},s));return this.doResponseResult(t)}catch(e){throw new F(e)}}async delete(e,t,n={}){e=this.handleAppPresetParam(e,t);try{const t=await this.request(e,{method:"delete",headers:n});return this.doResponseResult(t)}catch(e){throw new F(e)}}async put(e,t,n={},s={}){e=this.handleAppPresetParam(e,n);try{const n=await this.request(e,{method:"put",data:t,headers:s});return this.doResponseResult(n)}catch(e){throw new F(e)}}async getModel(e,t={}){try{const n=await this.instance.get(e,{headers:t});return this.doResponseResult(n)}catch(e){throw new F(e)}}async request(e,t={}){const n=this.mergeConfig({url:e},t),s=JSON.stringify(n);try{let e=null;this.waitRequest.has(s)?e=this.waitRequest.get(s):(e=this.instance.request(n),this.waitRequest.set(s,e));const t=await e;return this.waitRequest.has(s)&&this.waitRequest.delete(s),this.doResponseResult(t)}catch(e){throw this.waitRequest.has(s)&&this.waitRequest.delete(s),new F(e)}}axios(e){return p(e)}doResponseResult(e){const t=e;return t.status>=200&&t.status<=299&&(t.ok=!0),t}handleAppPresetParam(e,t){if(t){return Object.keys(t).forEach((e=>{e.startsWith("srf")&&u(t[e])&&t[e]})),this.attachUrlParam(e,t)}return e}attachUrlParam(e,t){const n=d(t);return u(n)&&(e=e.endsWith("?")||-1!==e.indexOf("?")&&e.endsWith("&")?"".concat(e).concat(n):-1===e.indexOf("?")||e.endsWith("&")?"".concat(e,"?").concat(n):"".concat(e,"&").concat(n)),e}}),W=e("StringUtil",class{static fill(e,t,n){if(u(e)){if(u(t)){const n=e.match(this.contextReg);null==n||n.forEach((n=>{const s=n.slice(10,n.length-1);e=e.replace("${context.".concat(s,"}"),t[s]||"")}))}if(u(n)){const t=e.match(this.dataReg);null==t||t.forEach((t=>{const s=t.slice(7,t.length-1);e=e.replace("${data.".concat(s,"}"),n[s]||"")}))}}return e}});W.contextReg=/\$\{context.[a-zA-Z_$][a-zA-Z0-9_$]{1,}\}/g,W.dataReg=/\$\{data.[a-zA-Z_$][a-zA-Z0-9_$]{1,}\}/g;e("UrlHelper",class{static get routeBase(){const e=window.location.href.lastIndexOf("#/");return window.location.href.slice(0,e+1)}static get appBase(){const{origin:e,pathname:t}=window.location;return"".concat(e).concat(t).replace(/\/$/,"")}static get routePath(){return window.location.hash.replace("#","")}static get fullPath(){return window.location.href}});function $(e){const t=e.composedPath&&e.composedPath()||e.path;if(null!=t)return t;return[e.target].concat(function e(t,n=[]){const s=t.parentNode;return s?e(s,n.concat([s])):n}(e.target))}function H(e,t,n,s={}){e.addEventListener(t,n,s);let o=()=>{e.removeEventListener(t,n,s),o=S};return()=>{o()}}function V(e,t){return t&&(e.target===t||$(e).includes(t))}var X="undefined"!=typeof window?window:void 0;var Z=Math.round;function J(e){const t=e.length,n=[];if("rgb"===e.slice(0,3).toLowerCase()){const t=e.match(/([\d|.%]{1,3})/g);n[0]=parseInt(t[0],10),n[1]=parseInt(t[1],10),n[2]=parseInt(t[2],10),n[3]=t[3]?-1!==t[3].indexOf("%")?parseInt(t[3],10)/100:parseFloat(t[3]):1}else{let s;s=t<6?parseInt(String(e[1])+e[1]+e[2]+e[2]+e[3]+e[3]+(t>4?String(e[4])+e[4]:""),16):parseInt(e.slice(1),16),n[0]=s>>16&255,n[1]=s>>8&255,n[2]=255&s,n[3]=9===t||5===t?Z((s>>24&255)/255*1e4)/1e4:1}return n}function K(e){let t="";switch(e.split(".").pop()){case".wps":t="application/kswps";break;case".doc":t="application/msword";break;case".docx":t="application/vnd.openxmlformats-officedocument.wordprocessingml.document";break;case".txt":t="text/plain";break;case".zip":t="application/zip";break;case".png":t="image/png";break;case".gif":t="image/gif";break;case".jpeg":case".jpg":t="image/jpeg";break;case".rtf":t="application/rtf";break;case".avi":t="video/x-msvideo";break;case".gz":t="application/x-gzip";break;case".tar":t="application/x-tar";break;case".xlsx":t="application/vnd.ms-excel";break;default:t=""}return t}function G(e){const t=[];for(let n=0;n<e.length;n++)t.push(e[n]);return t}function Y(e){const t=i({multiple:!0,accept:""},e),n=document.createElement("input");n.setAttribute("type","file"),n.setAttribute("multiple","".concat(t.multiple)),n.setAttribute("accept",t.accept),n.onchange=e=>{const n=e.target,s=n.files?G(n.files):[];0!==s.length&&(t.onSelected(s),n.value="")},document.body.appendChild(n),n.click(),document.body.removeChild(n)}e("CountLatch",class{constructor(){this.promise=null,this.resolve=null,this.count=0}startPromise(){this.promise=new Promise((e=>{this.resolve=e}))}endPromise(){this.resolve&&(this.resolve(),this.resolve=null,this.promise=null)}lock(){this.count+=1,this.promise||this.startPromise()}unlock(){if(this.count<1)throw new N("lock和unlock次数不匹配!");this.count-=1,0===this.count&&this.endPromise()}async await(){this.promise&&await this.promise}});var Q={childrenFields:["children"]},ee=new Error("中断操作");function te(e,t,n){try{!function(e,t,n){const{childrenFields:s}=o(Q,n||{}),r=function(e,t){var n;for(const s of t)if(null==(n=e[s])?void 0:n.length)return e[s]}(e,s);if(null==r?void 0:r.length)for(const e of r){if(t(e))throw ee;te(e,t,n)}}(e,t,n)}catch(e){if(e!==ee)throw e}}var ne={...Q,compareField:"name"};var se=x(E(),1),oe=x(R(),1),re=se.noConflict();oe.reg(re),oe.apply(re);var ie=e("IBizSys",class{constructor(){this.env=I,this.log=re,this.net=new D,this.commands=new T}})}}}));
2
+ //# sourceMappingURL=index.system.min.js.map
@@ -0,0 +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/loglevel@1.8.1/node_modules/loglevel/lib/loglevel.js\nvar require_loglevel = __commonJS({\n \"../../node_modules/.pnpm/loglevel@1.8.1/node_modules/loglevel/lib/loglevel.js\"(exports, module) {\n \"use strict\";\n (function(root, definition) {\n \"use strict\";\n if (typeof define === \"function\" && define.amd) {\n define(definition);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n })(exports, function() {\n \"use strict\";\n var noop = function() {\n };\n var undefinedType = \"undefined\";\n var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\\/|MSIE /.test(window.navigator.userAgent);\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === \"function\") {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace)\n console.trace();\n }\n function realMethod(methodName) {\n if (methodName === \"debug\") {\n methodName = \"log\";\n }\n if (typeof console === undefinedType) {\n return false;\n } else if (methodName === \"trace\" && isIE) {\n return traceForIE;\n } else if (console[methodName] !== void 0) {\n return bindMethod(console, methodName);\n } else if (console.log !== void 0) {\n return bindMethod(console, \"log\");\n } else {\n return noop;\n }\n }\n function replaceLoggingMethods(level, loggerName) {\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = i < level ? noop : this.methodFactory(methodName, level, loggerName);\n }\n this.log = this.debug;\n }\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function() {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n function defaultMethodFactory(methodName, level, loggerName) {\n return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n function Logger2(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = void 0;\n }\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || \"silent\").toUpperCase();\n if (typeof window === undefinedType || !storageKey)\n return;\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {\n }\n try {\n window.document.cookie = encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {\n }\n }\n function getPersistedLevel() {\n var storedLevel;\n if (typeof window === undefinedType || !storageKey)\n return;\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {\n }\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\"\n );\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {\n }\n }\n if (self.levels[storedLevel] === void 0) {\n storedLevel = void 0;\n }\n return storedLevel;\n }\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey)\n return;\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {\n }\n try {\n window.document.cookie = encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {\n }\n }\n self.name = name;\n self.levels = {\n \"TRACE\": 0,\n \"DEBUG\": 1,\n \"INFO\": 2,\n \"WARN\": 3,\n \"ERROR\": 4,\n \"SILENT\": 5\n };\n self.methodFactory = factory || defaultMethodFactory;\n self.getLevel = function() {\n return currentLevel;\n };\n self.setLevel = function(level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== void 0) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) {\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n self.setDefaultLevel = function(level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n self.resetLevel = function() {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n var defaultLogger = new Logger2();\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"symbol\" && typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n var logger2 = _loggersByName[name];\n if (!logger2) {\n logger2 = _loggersByName[name] = new Logger2(\n name,\n defaultLogger.getLevel(),\n defaultLogger.methodFactory\n );\n }\n return logger2;\n };\n var _log = typeof window !== undefinedType ? window.log : void 0;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType && window.log === defaultLogger) {\n window.log = _log;\n }\n return defaultLogger;\n };\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n defaultLogger[\"default\"] = defaultLogger;\n return defaultLogger;\n });\n }\n});\n\n// ../../node_modules/.pnpm/loglevel-plugin-prefix@0.8.4/node_modules/loglevel-plugin-prefix/lib/loglevel-plugin-prefix.js\nvar require_loglevel_plugin_prefix = __commonJS({\n \"../../node_modules/.pnpm/loglevel-plugin-prefix@0.8.4/node_modules/loglevel-plugin-prefix/lib/loglevel-plugin-prefix.js\"(exports, module) {\n \"use strict\";\n (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.prefix = factory(root);\n }\n })(exports, function(root) {\n \"use strict\";\n var merge4 = function(target) {\n var i = 1;\n var length = arguments.length;\n var key;\n for (; i < length; i++) {\n for (key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n target[key] = arguments[i][key];\n }\n }\n }\n return target;\n };\n var defaults = {\n template: \"[%t] %l:\",\n levelFormatter: function(level) {\n return level.toUpperCase();\n },\n nameFormatter: function(name) {\n return name || \"root\";\n },\n timestampFormatter: function(date) {\n return date.toTimeString().replace(/.*(\\d{2}:\\d{2}:\\d{2}).*/, \"$1\");\n },\n format: void 0\n };\n var loglevel;\n var configs = {};\n var reg2 = function(rootLogger) {\n if (!rootLogger || !rootLogger.getLogger) {\n throw new TypeError(\"Argument is not a root logger\");\n }\n loglevel = rootLogger;\n };\n var apply2 = function(logger2, config) {\n if (!logger2 || !logger2.setLevel) {\n throw new TypeError(\"Argument is not a logger\");\n }\n var originalFactory = logger2.methodFactory;\n var name = logger2.name || \"\";\n var parent = configs[name] || configs[\"\"] || defaults;\n function methodFactory(methodName, logLevel, loggerName) {\n var originalMethod = originalFactory(methodName, logLevel, loggerName);\n var options = configs[loggerName] || configs[\"\"];\n var hasTimestamp = options.template.indexOf(\"%t\") !== -1;\n var hasLevel = options.template.indexOf(\"%l\") !== -1;\n var hasName = options.template.indexOf(\"%n\") !== -1;\n return function() {\n var content = \"\";\n var length = arguments.length;\n var args = Array(length);\n var key = 0;\n for (; key < length; key++) {\n args[key] = arguments[key];\n }\n if (name || !configs[loggerName]) {\n var timestamp = options.timestampFormatter(/* @__PURE__ */ new Date());\n var level = options.levelFormatter(methodName);\n var lname = options.nameFormatter(loggerName);\n if (options.format) {\n content += options.format(level, lname, timestamp);\n } else {\n content += options.template;\n if (hasTimestamp) {\n content = content.replace(/%t/, timestamp);\n }\n if (hasLevel)\n content = content.replace(/%l/, level);\n if (hasName)\n content = content.replace(/%n/, lname);\n }\n if (args.length && typeof args[0] === \"string\") {\n args[0] = content + \" \" + args[0];\n } else {\n args.unshift(content);\n }\n }\n originalMethod.apply(void 0, args);\n };\n }\n if (!configs[name]) {\n logger2.methodFactory = methodFactory;\n }\n config = config || {};\n if (config.template)\n config.format = void 0;\n configs[name] = merge4({}, parent, config);\n logger2.setLevel(logger2.getLevel());\n if (!loglevel) {\n logger2.warn(\n \"It is necessary to call the function reg() of loglevel-plugin-prefix before calling apply. From the next release, it will throw an error. See more: https://github.com/kutuluk/loglevel-plugin-prefix/blob/master/README.md\"\n );\n }\n return logger2;\n };\n var api = {\n reg: reg2,\n apply: apply2\n };\n var save;\n if (root) {\n save = root.prefix;\n api.noConflict = function() {\n if (root.prefix === api) {\n root.prefix = save;\n }\n return api;\n };\n }\n return api;\n });\n }\n});\n\n// src/command/utils/linked-list.ts\nvar _Node = class _Node {\n constructor(element) {\n this.element = element;\n this.next = _Node.Undefined;\n this.prev = _Node.Undefined;\n }\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n_Node.Undefined = new _Node(void 0);\nvar Node = _Node;\nvar LinkedList = class {\n constructor() {\n this._first = Node.Undefined;\n this._last = Node.Undefined;\n this._size = 0;\n }\n get size() {\n return this._size;\n }\n isEmpty() {\n return this._first === Node.Undefined;\n }\n clear() {\n let node = this._first;\n while (node !== Node.Undefined) {\n const { next } = node;\n node.prev = Node.Undefined;\n node.next = Node.Undefined;\n node = next;\n }\n this._first = Node.Undefined;\n this._last = Node.Undefined;\n this._size = 0;\n }\n unshift(element) {\n return this._insert(element, false);\n }\n push(element) {\n return this._insert(element, true);\n }\n _insert(element, atTheEnd) {\n const newNode = new Node(element);\n if (this._first === Node.Undefined) {\n this._first = newNode;\n this._last = newNode;\n } else if (atTheEnd) {\n const oldLast = this._last;\n this._last = newNode;\n newNode.prev = oldLast;\n oldLast.next = newNode;\n } else {\n const oldFirst = this._first;\n this._first = newNode;\n newNode.next = oldFirst;\n oldFirst.prev = newNode;\n }\n this._size += 1;\n let didRemove = false;\n return () => {\n if (!didRemove) {\n didRemove = true;\n this._remove(newNode);\n }\n };\n }\n shift() {\n if (this._first === Node.Undefined) {\n return void 0;\n }\n const res = this._first.element;\n this._remove(this._first);\n return res;\n }\n pop() {\n if (this._last === Node.Undefined) {\n return void 0;\n }\n const res = this._last.element;\n this._remove(this._last);\n return res;\n }\n _remove(node) {\n if (node.prev !== Node.Undefined && node.next !== Node.Undefined) {\n const anchor = node.prev;\n anchor.next = node.next;\n node.next.prev = anchor;\n } else if (node.prev === Node.Undefined && node.next === Node.Undefined) {\n this._first = Node.Undefined;\n this._last = Node.Undefined;\n } else if (node.next === Node.Undefined) {\n this._last = this._last.prev;\n this._last.next = Node.Undefined;\n } else if (node.prev === Node.Undefined) {\n this._first = this._first.next;\n this._first.prev = Node.Undefined;\n }\n this._size -= 1;\n }\n *[Symbol.iterator]() {\n let node = this._first;\n while (node !== Node.Undefined) {\n yield node.element;\n node = node.next;\n }\n }\n};\n\n// src/command/utils/util.ts\nfunction once(fn) {\n const _this = this;\n let didCall = false;\n let result;\n return function() {\n if (didCall) {\n return result;\n }\n didCall = true;\n result = fn.apply(_this, arguments);\n return result;\n };\n}\nfunction toDisposable(fn) {\n const self = {\n dispose: once(() => {\n fn();\n })\n };\n return self;\n}\nfunction debounce(func, wait, immediate) {\n let timer;\n return function(...args) {\n if (timer) {\n clearTimeout(timer);\n }\n if (immediate) {\n const callNow = !timer;\n timer = setTimeout(() => {\n timer = null;\n }, wait);\n if (callNow) {\n func.apply(this, args);\n }\n } else {\n timer = setTimeout(() => {\n func.apply(this, args);\n }, wait);\n }\n };\n}\nfunction throttle(fn, wait) {\n let timer = null;\n return function(...args) {\n if (!timer) {\n timer = setTimeout(() => {\n fn.apply(this, args);\n timer = null;\n }, wait);\n }\n };\n}\n\n// src/command/command-register.ts\nvar CommandsRegistry = class {\n constructor() {\n /**\n * 已经注册的所有指令\n *\n * @author chitanda\n * @date 2022-07-21 15:07:47\n * @private\n */\n this.commands = /* @__PURE__ */ new Map();\n }\n /**\n * 注册指令\n *\n * @author chitanda\n * @date 2022-06-27 13:06:31\n * @param {(string | ICommand)} idOrCommand\n * @param {ICommandHandler} [handler]\n * @return {*} {IDisposable}\n */\n registerCommand(idOrCommand, handler, opts) {\n if (!idOrCommand) {\n throw new Error(\"invalid command\");\n }\n if (typeof idOrCommand === \"string\") {\n if (!handler) {\n throw new Error(\"invalid command\");\n }\n return this.registerCommand({ id: idOrCommand, handler, opts });\n }\n const { id } = idOrCommand;\n let commands2 = this.commands.get(id);\n if (!commands2) {\n commands2 = new LinkedList();\n this.commands.set(id, commands2);\n }\n const removeFn = commands2.unshift(idOrCommand);\n const ret = toDisposable(() => {\n removeFn();\n const command = this.commands.get(id);\n if (command == null ? void 0 : command.isEmpty()) {\n this.commands.delete(id);\n }\n });\n return ret;\n }\n /**\n * 指令是否已经注册\n *\n * @author chitanda\n * @date 2022-07-21 15:07:58\n * @param {string} id\n * @return {*} {boolean}\n */\n hasCommand(id) {\n return this.commands.has(id);\n }\n /**\n * 查找指令\n *\n * @author chitanda\n * @date 2022-07-21 16:07:12\n * @param {string} id\n * @return {*} {(ICommand | undefined)}\n */\n getCommand(id) {\n const list = this.commands.get(id);\n if (!list || list.isEmpty()) {\n return void 0;\n }\n return list[Symbol.iterator]().next().value;\n }\n /**\n * 获取所有指令\n *\n * @author chitanda\n * @date 2022-07-21 16:07:20\n * @return {*} {ICommandsMap}\n */\n getCommands() {\n const result = /* @__PURE__ */ new Map();\n const keys = this.commands.keys();\n for (const key of keys) {\n const command = this.getCommand(key);\n if (command) {\n result.set(key, command);\n }\n }\n return result;\n }\n /**\n * 获取指令配置参数\n *\n * @author chitanda\n * @date 2022-07-21 16:07:27\n * @param {string} id\n * @return {*} {(ICommandOption | undefined)}\n */\n getCommandOpt(id) {\n const cmd = this.getCommand(id);\n return cmd == null ? void 0 : cmd.opts;\n }\n};\n\n// src/command/command.ts\nvar CommandController = class {\n constructor() {\n this.commandRegister = new CommandsRegistry();\n }\n /**\n * 注册指令\n *\n * @author chitanda\n * @date 2022-06-28 19:06:45\n * @param {string} id\n * @param {ICommandHandler} handler\n * @param {ICommandOption} [opts]\n * @return {*} {IDisposable}\n */\n register(id, handler, opts) {\n return this.commandRegister.registerCommand(id, handler, opts);\n }\n /**\n * 执行指令\n *\n * @author chitanda\n * @date 2022-06-28 19:06:38\n * @template T\n * @param {string} id\n * @param {...unknown[]} args\n * @return {*} {Promise<T>}\n */\n async execute(id, ...args) {\n const command = this.commandRegister.getCommand(id);\n if (command) {\n return command.handler(...args);\n }\n throw new Error(\"\\u672A\\u6CE8\\u518C\\u6307\\u4EE4: \".concat(id, \"\\uFF0C\\u8BF7\\u5148\\u6CE8\\u518C\\u6307\\u4EE4\"));\n }\n /**\n * 判断指令是否存在,可直接抛出异常\n *\n * @author chitanda\n * @date 2022-06-28 19:06:11\n * @param {string} id\n * @param {boolean} [err]\n * @return {*} {boolean}\n */\n hasCommand(id, err) {\n const bol = !!this.commandRegister.hasCommand(id);\n if (err === true && bol === true) {\n throw new Error(\"\\u672A\\u6CE8\\u518C\\u6307\\u4EE4: \".concat(id, \"\\uFF0C\\u8BF7\\u5148\\u6CE8\\u518C\\u6307\\u4EE4\"));\n }\n return bol;\n }\n /**\n * 获取指令配置参数\n *\n * @author chitanda\n * @date 2022-07-21 17:07:11\n * @param {string} id\n * @return {*} {(ICommandOption | undefined)}\n */\n getCommandOpts(id) {\n return this.commandRegister.getCommandOpt(id);\n }\n};\n\n// src/command/index.ts\nvar commands = new CommandController();\n\n// src/constant/core/core.ts\nvar CoreConst = class {\n};\n/**\n * 默认模型服务标识\n */\nCoreConst.DEFAULT_MODEL_SERVICE_TAG = \"default\";\n/**\n * 访问令牌标识\n *\n * @author chitanda\n * @date 2022-07-20 15:07:28\n * @static\n */\nCoreConst.TOKEN = \"ibzuaa-token\";\n/**\n * 访问令牌标识过期时间\n *\n * @author lxm\n * @date 2023-02-13 07:11:33\n * @static\n * @memberof CoreConst\n */\nCoreConst.TOKEN_EXPIRES = \"ibzuaa-token_expires\";\n\n// src/constant/util/util.ts\nvar NOOP = () => {\n};\n\n// src/constant/http-status-message/http-status-message.ts\nvar HttpStatusMessageConst = {\n 200: \"\\u670D\\u52A1\\u5668\\u6210\\u529F\\u8FD4\\u56DE\\u8BF7\\u6C42\\u7684\\u6570\\u636E\\u3002\",\n 201: \"\\u65B0\\u5EFA\\u6216\\u4FEE\\u6539\\u6570\\u636E\\u6210\\u529F\\u3002\",\n 202: \"\\u4E00\\u4E2A\\u8BF7\\u6C42\\u5DF2\\u7ECF\\u8FDB\\u5165\\u540E\\u53F0\\u6392\\u961F\\uFF08\\u5F02\\u6B65\\u4EFB\\u52A1\\uFF09\\u3002\",\n 204: \"\\u5220\\u9664\\u6570\\u636E\\u6210\\u529F\\u3002\",\n 400: \"\\u53D1\\u51FA\\u7684\\u8BF7\\u6C42\\u6709\\u9519\\u8BEF\\uFF0C\\u670D\\u52A1\\u5668\\u6CA1\\u6709\\u8FDB\\u884C\\u65B0\\u5EFA\\u6216\\u4FEE\\u6539\\u6570\\u636E\\u7684\\u64CD\\u4F5C\\u3002\",\n 401: \"\\u7528\\u6237\\u6CA1\\u6709\\u6743\\u9650\\uFF08\\u4EE4\\u724C\\u3001\\u7528\\u6237\\u540D\\u3001\\u5BC6\\u7801\\u9519\\u8BEF\\uFF09\\u3002\",\n 403: \"\\u7528\\u6237\\u5F97\\u5230\\u6388\\u6743\\uFF0C\\u4F46\\u662F\\u8BBF\\u95EE\\u662F\\u88AB\\u7981\\u6B62\\u7684\\u3002\",\n 404: \"\\u53D1\\u51FA\\u7684\\u8BF7\\u6C42\\u9488\\u5BF9\\u7684\\u662F\\u4E0D\\u5B58\\u5728\\u7684\\u8BB0\\u5F55\\uFF0C\\u670D\\u52A1\\u5668\\u6CA1\\u6709\\u8FDB\\u884C\\u64CD\\u4F5C\\u3002\",\n 406: \"\\u8BF7\\u6C42\\u7684\\u683C\\u5F0F\\u4E0D\\u53EF\\u5F97\\u3002\",\n 410: \"\\u8BF7\\u6C42\\u7684\\u8D44\\u6E90\\u88AB\\u6C38\\u4E45\\u5220\\u9664\\uFF0C\\u4E14\\u4E0D\\u4F1A\\u518D\\u5F97\\u5230\\u7684\\u3002\",\n 422: \"\\u5F53\\u521B\\u5EFA\\u4E00\\u4E2A\\u5BF9\\u8C61\\u65F6\\uFF0C\\u53D1\\u751F\\u4E00\\u4E2A\\u9A8C\\u8BC1\\u9519\\u8BEF\\u3002\",\n 500: \"\\u670D\\u52A1\\u5668\\u53D1\\u751F\\u9519\\u8BEF\\uFF0C\\u8BF7\\u68C0\\u67E5\\u670D\\u52A1\\u5668\\u3002\",\n 502: \"\\u7F51\\u5173\\u9519\\u8BEF\\u3002\",\n 503: \"\\u670D\\u52A1\\u4E0D\\u53EF\\u7528\\uFF0C\\u670D\\u52A1\\u5668\\u6682\\u65F6\\u8FC7\\u8F7D\\u6216\\u7EF4\\u62A4\\u3002\",\n 504: \"\\u7F51\\u5173\\u8D85\\u65F6\\u3002\"\n};\n\n// src/constant/login-mode/login-mode.ts\nvar LoginMode = /* @__PURE__ */ ((LoginMode2) => {\n LoginMode2[\"DEFAULT\"] = \"DEFAULT\";\n LoginMode2[\"CUSTOM\"] = \"CUSTOM\";\n LoginMode2[\"CAS\"] = \"CAS\";\n return LoginMode2;\n})(LoginMode || {});\n\n// src/constant/menu-permission-mode/menu-permission-mode.ts\nvar MenuPermissionMode = /* @__PURE__ */ ((MenuPermissionMode2) => {\n MenuPermissionMode2[\"MIXIN\"] = \"MIXIN\";\n MenuPermissionMode2[\"RESOURCE\"] = \"RESOURCE\";\n MenuPermissionMode2[\"RT\"] = \"RT\";\n return MenuPermissionMode2;\n})(MenuPermissionMode || {});\n\n// src/context/index.ts\nimport { clone } from \"ramda\";\nvar IBizContext = class _IBizContext {\n /**\n * Creates an instance of IBizContext.\n *\n * @author chitanda\n * @date 2022-07-14 10:07:15\n * @param {IData} [context={}] 自身的上下文\n * @param {IContext} [parent]\n */\n // eslint-disable-next-line default-param-last\n constructor(context = {}, parent) {\n Object.defineProperty(this, \"_associationContext\", {\n enumerable: false,\n value: []\n });\n if (parent) {\n this.initWithParent(parent);\n }\n Object.assign(this, context);\n }\n initWithParent(parent) {\n const self = this;\n Object.defineProperty(this, \"_parent\", {\n enumerable: false,\n writable: true,\n value: parent\n });\n Object.defineProperty(this, \"_context\", {\n enumerable: false,\n writable: true,\n value: {}\n });\n const properties = {};\n const keys = Object.keys(parent);\n keys.forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(this, key)) {\n return;\n }\n properties[key] = {\n enumerable: true,\n set(val) {\n if (val == null) {\n self._context[key] = null;\n } else {\n self._context[key] = val;\n }\n },\n get() {\n if (self._context[key] !== void 0) {\n return self._context[key];\n }\n return self._parent[key];\n }\n };\n });\n Object.defineProperties(this, properties);\n }\n /**\n * 返回自身的上下文,独有的和与父有差异的。\n *\n * @author lxm\n * @date 2022-12-08 17:12:26\n * @returns {*} {IData}\n */\n getOwnContext() {\n const result = {};\n Object.keys(this).forEach((key) => {\n if (!this._parent || !Object.prototype.hasOwnProperty.call(this._parent, key) || Object.prototype.hasOwnProperty.call(this._context, key)) {\n result[key] = this[key];\n }\n });\n return result;\n }\n /**\n * 销毁当前上下文对象\n *\n * @author chitanda\n * @date 2023-03-13 15:03:04\n */\n destroy() {\n this._parent = void 0;\n this._context = {};\n this._associationContext.forEach((item) => {\n item.destroy();\n });\n }\n /**\n * 在非视图中,需要断开视图上下文联系时。只能使用 clone 创建新的局部上下文\n *\n * @author chitanda\n * @date 2023-03-13 16:03:13\n * @return {*} {IBizContext}\n */\n clone() {\n const newContext = new _IBizContext(\n clone(this.getOwnContext()),\n this._parent\n );\n this._associationContext.push(newContext);\n return newContext;\n }\n /**\n * 在不改变对象引用的情况下,重置上下文\n * 等效于重新实例化,但是引用不变\n * @author lxm\n * @date 2023-05-24 10:30:40\n * @param {IData} [context={}]\n * @param {IContext} [parent]\n */\n // eslint-disable-next-line default-param-last\n reset(context = {}, parent) {\n this._associationContext.forEach((item) => {\n item.destroy();\n });\n if (this._parent) {\n this._parent = {};\n this._context = {};\n }\n Object.keys(this).forEach((key) => {\n try {\n delete this[key];\n } catch (error) {\n }\n });\n if (parent) {\n this.initWithParent(parent);\n }\n Object.assign(this, context);\n }\n /**\n * 上下文只有在视图初始化时,调用 create 方法\n *\n * @author chitanda\n * @date 2023-03-13 16:03:32\n * @static\n * @param {IData} [context]\n * @param {IContext} [parent]\n * @return {*} {IContext}\n */\n static create(context, parent) {\n return new _IBizContext(context, parent);\n }\n};\n\n// src/environment/environment.ts\nvar Environment = {\n dev: false,\n hub: true,\n logLevel: \"ERROR\",\n baseUrl: \"/api\",\n appId: \"\",\n pluginBaseUrl: \"./plugins\",\n isLocalModel: false,\n remoteModelUrl: \"/remotemodel\",\n assetsUrl: \"./assets\",\n dcSystem: \"\",\n downloadFileUrl: \"/ibizutil/download\",\n uploadFileUrl: \"/ibizutil/upload\",\n casLoginUrl: \"\",\n loginMode: \"DEFAULT\" /* DEFAULT */,\n menuPermissionMode: \"MIXIN\" /* MIXIN */,\n enablePermission: true,\n routePlaceholder: \"-\",\n enableWfAllHistory: false,\n isMob: false,\n isSaaSMode: true,\n AppTitle: \"\\u5E94\\u7528\",\n favicon: \"./favicon.ico\"\n};\n\n// src/error/http-error/http-error.ts\nvar HttpError = class extends Error {\n constructor(err) {\n super(\"HttpError\");\n this.name = \"HttpError\";\n const res = err.response;\n this.response = err.response;\n if (res) {\n if (res.data) {\n this.message = res.data.message;\n } else {\n this.message = res.statusText;\n }\n if (!this.message) {\n this.message = \"\\u7F51\\u7EDC\\u5F02\\u5E38\\uFF0C\\u8BF7\\u7A0D\\u540E\\u91CD\\u8BD5!\";\n }\n this.status = res.status;\n } else {\n this.message = err.message;\n this.status = 500;\n }\n }\n};\n\n// src/error/model-error/model-error.ts\nvar ModelError = class extends Error {\n /**\n * Creates an instance of ModelError.\n *\n * @author chitanda\n * @date 2022-08-30 16:08:38\n * @param {IModelObject} model 模板未支持的模型\n * @param {string} [msg]\n */\n constructor(model, msg) {\n super(\"\\u300C\".concat(model.id, \"\\u300D\\u6A21\\u578B\").concat(msg ? \"\\uFF1A \".concat(msg) : \"\"));\n this.model = model;\n this.name = \"\\u672A\\u652F\\u6301\\u7684\\u6A21\\u578B\";\n }\n};\n\n// src/error/runtime-error/runtime-error.ts\nvar RuntimeError = class extends Error {\n constructor(message) {\n super(message);\n this.message = message;\n this.name = \"Runtime Error\";\n }\n};\n\n// src/error/runtime-model-error/runtime-model-error.ts\nvar RuntimeModelError = class extends Error {\n /**\n * Creates an instance of DefectModelError.\n *\n * @author chitanda\n * @date 2022-08-30 16:08:58\n * @param {IModelObject} model 丢失配置的模型\n * @param {string} [msg] 缺失配置描述\n */\n constructor(model, msg) {\n super(\"\\u300C\".concat(model.id, \"\\u300D\\u6A21\\u578B\").concat(msg ? \"\\uFF1A \".concat(msg) : \"\"));\n this.model = model;\n this.name = \"\\u6A21\\u578B\\u914D\\u7F6E\\u7F3A\\u5931\";\n }\n};\n\n// src/utils/util/util.ts\nimport { debounce as debounce2 } from \"lodash-es\";\nimport { getCookie } from \"qx-util\";\nimport { isNotNil, isNil } from \"ramda\";\nfunction getToken() {\n return getCookie(CoreConst.TOKEN);\n}\nfunction isOverlap(arr1, arr2) {\n const newArr = Array.from(/* @__PURE__ */ new Set([...arr1, ...arr2]));\n return newArr.length !== arr1.length + arr2.length;\n}\nfunction isElementSame(arr1, arr2, field) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n const allElements = field ? [...arr1.map((item) => item[field]), ...arr2.map((item) => item[field])] : [...arr1, ...arr2];\n const newArr = Array.from(new Set(allElements));\n return newArr.length === arr1.length;\n}\nfunction debounceAndMerge(func, mergeFunc, wait) {\n let oldParams;\n const debounceFunc = debounce2((...params) => {\n oldParams = void 0;\n return func(...params);\n }, wait);\n return (...args) => {\n let newParams = args;\n if (oldParams) {\n newParams = mergeFunc(oldParams, newParams);\n }\n oldParams = newParams;\n return debounceFunc(...newParams);\n };\n}\nfunction debounceAndAsyncMerge(func, mergeFunc, wait) {\n let oldParams;\n let promises = [];\n const debounceFunc = debounce2(async (...params) => {\n oldParams = void 0;\n try {\n const result = await func(...params);\n promises.forEach((promise) => {\n promise.resolve(result);\n });\n promises = [];\n return result;\n } catch (error) {\n promises.forEach((promise) => {\n promise.reject(error);\n });\n promises = [];\n }\n }, wait);\n const fun = async (...args) => {\n let newParams = args;\n if (oldParams) {\n newParams = mergeFunc(oldParams, newParams);\n }\n oldParams = newParams;\n debounceFunc(...newParams);\n return new Promise((resolve, reject) => {\n promises.push({ resolve, reject });\n });\n };\n return fun;\n}\nfunction mergeInLeft(l, r2) {\n Object.keys(r2).forEach((key) => {\n if (isNotNil(r2[key])) {\n l[key] = r2[key];\n }\n });\n}\nfunction mergeDefaultInLeft(l, r2) {\n Object.keys(r2).forEach((key) => {\n if (isNotNil(r2[key]) && isNil(l[key])) {\n l[key] = r2[key];\n }\n });\n}\nfunction compareArr(arr1, arr2, keyField) {\n const all = /* @__PURE__ */ new Set([...arr1, ...arr2]);\n const more = [];\n const less = [];\n const same = [];\n if (keyField) {\n const arr1Keys = arr1.map((item) => item[keyField]);\n const arr2Keys = arr2.map((item) => item[keyField]);\n all.forEach((item) => {\n if (!arr1Keys.includes(item[keyField])) {\n less.push(item);\n return;\n }\n if (!arr2Keys.includes(item[keyField])) {\n more.push(item);\n return;\n }\n same.push(item);\n });\n } else {\n all.forEach((item) => {\n if (!arr1.includes(item)) {\n less.push(item);\n return;\n }\n if (!arr2.includes(item)) {\n more.push(item);\n return;\n }\n same.push(item);\n });\n }\n return {\n more,\n less,\n same\n };\n}\nfunction toNumberOrNil(value) {\n if (isNil(value)) {\n return void 0;\n }\n const num = Number(value);\n if (Number.isNaN(num)) {\n return void 0;\n }\n return num;\n}\n\n// src/utils/interceptor/interceptor.ts\nvar Interceptor = class {\n /**\n * 请求之前处理\n *\n * @author lxm\n * @date 2022-10-27 17:10:41\n * @protected\n * @param {InternalAxiosRequestConfig} config\n * @returns {*} {Promise<InternalAxiosRequestConfig>}\n */\n async onBeforeRequest(config) {\n return config;\n }\n /**\n * 请求失败之后处理\n *\n * @author lxm\n * @date 2022-10-27 17:10:40\n * @protected\n * @param {*} error\n */\n onRequestError(error) {\n return Promise.reject(error);\n }\n /**\n * 响应成功之后处理\n *\n * @author lxm\n * @date 2022-10-27 17:10:38\n * @protected\n * @param {AxiosResponse} config\n * @returns {*} {Promise<AxiosRequestConfig>}\n */\n async onResponseSuccess(config) {\n return config;\n }\n /**\n * 响应失败之后处理\n *\n * @author lxm\n * @date 2022-10-27 17:10:37\n * @protected\n * @param {*} _error\n */\n onResponseError(error) {\n return Promise.reject(error);\n }\n /**\n * 使用拦截器\n *\n * @author lxm\n * @date 2022-10-27 17:10:28\n * @param {AxiosInstance} instance\n */\n use(instance) {\n this.requestTag = instance.interceptors.request.use(\n this.onBeforeRequest,\n this.onRequestError\n );\n this.responseTag = instance.interceptors.response.use(\n this.onResponseSuccess,\n this.onResponseError\n );\n }\n /**\n * 移出拦截器\n *\n * @author lxm\n * @date 2022-10-27 17:10:27\n * @param {AxiosInstance} instance\n */\n eject(instance) {\n if (this.requestTag) {\n instance.interceptors.request.eject(this.requestTag);\n }\n if (this.responseTag) {\n instance.interceptors.response.eject(this.responseTag);\n }\n }\n};\n\n// src/utils/interceptor/core-interceptor.ts\nvar CoreInterceptor = class extends Interceptor {\n async onBeforeRequest(config) {\n config = await super.onBeforeRequest(config);\n const { headers } = config;\n headers.set(\"Authorization\", \"Bearer \".concat(getToken()));\n let systemId = ibiz.env.dcSystem;\n const { orgData } = ibiz;\n if (orgData) {\n if (orgData.systemid) {\n systemId = orgData.systemid;\n }\n if (orgData.orgid) {\n headers.set(\"srforgid\", orgData.orgid);\n }\n }\n headers.set(\"srfsystemid\", systemId);\n return config;\n }\n};\n\n// src/utils/namespace/namespace.ts\nvar defaultNamespace = \"ibiz\";\nvar statePrefix = \"is-\";\nfunction _bem(namespace, block, blockSuffix, element, modifier) {\n let cls = \"\".concat(namespace, \"-\").concat(block);\n if (blockSuffix) {\n cls += \"-\".concat(blockSuffix);\n }\n if (element) {\n cls += \"__\".concat(element);\n }\n if (modifier) {\n cls += \"--\".concat(modifier);\n }\n return cls;\n}\nvar Namespace = class {\n /**\n * Creates an instance of Namespace.\n *\n * @author chitanda\n * @date 2022-09-06 12:09:12\n * @param {string} block 当前命名空间的根模块,例如组件的名称\n * @param {string} [namespace] 指定命名空间,未指定使用默认值 ibiz\n */\n constructor(block, namespace) {\n this.block = block;\n this.namespace = namespace || defaultNamespace;\n }\n /**\n * namespace-block\n * namespace-block-blockSuffix\n *\n * @author chitanda\n * @date 2022-09-06 12:09:08\n * @param {string} [blockSuffix='']\n * @return {*} {string}\n */\n b(blockSuffix = \"\") {\n return _bem(this.namespace, this.block, blockSuffix, \"\", \"\");\n }\n /**\n * namespace-block__element\n *\n * @author chitanda\n * @date 2022-09-06 12:09:48\n * @param {string} [element]\n * @return {*} {string}\n */\n e(element) {\n return element ? _bem(this.namespace, this.block, \"\", element, \"\") : \"\";\n }\n /**\n * namespace-block--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:37\n * @param {string} [modifier]\n * @return {*} {string}\n */\n m(modifier) {\n return modifier ? _bem(this.namespace, this.block, \"\", \"\", modifier) : \"\";\n }\n /**\n * namespace-block-blockSuffix__element\n *\n * @author chitanda\n * @date 2022-09-06 12:09:52\n * @param {string} [blockSuffix]\n * @param {string} [element]\n * @return {*} {string}\n */\n be(blockSuffix, element) {\n return blockSuffix && element ? _bem(this.namespace, this.block, blockSuffix, element, \"\") : \"\";\n }\n /**\n * namespace-block__element--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:19\n * @param {string} [element]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n em(element, modifier) {\n return element && modifier ? _bem(this.namespace, this.block, \"\", element, modifier) : \"\";\n }\n /**\n * namespace-block-blockSuffix--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:59\n * @param {string} [blockSuffix]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n bm(blockSuffix, modifier) {\n return blockSuffix && modifier ? _bem(this.namespace, this.block, blockSuffix, \"\", modifier) : \"\";\n }\n /**\n * namespace-block-blockSuffix__element--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:37\n * @param {string} [blockSuffix]\n * @param {string} [element]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n bem(blockSuffix, element, modifier) {\n return blockSuffix && element && modifier ? _bem(this.namespace, this.block, blockSuffix, element, modifier) : \"\";\n }\n /**\n * 返回状态 class\n *\n * is('loading', false) => '';\n * is('loading', true) => 'is-loading';\n *\n * @author chitanda\n * @date 2022-09-06 12:09:57\n * @param {string} name\n * @param {boolean} [state]\n * @return {*} {string}\n */\n is(name, state) {\n return name && state ? \"\".concat(statePrefix).concat(name) : \"\";\n }\n /**\n * 生成使用到的 css 变量 style 对象\n *\n * @author chitanda\n * @date 2022-09-06 15:09:41\n * @param {Record<string, string>} object\n * @return {*} {Record<string, string>}\n */\n cssVar(object) {\n const styles = {};\n for (const key in object) {\n if (object[key]) {\n styles[this.cssVarName(key)] = object[key];\n }\n }\n return styles;\n }\n /**\n * 生成使用到的 css block 变量 style 对象\n *\n * @author chitanda\n * @date 2022-09-06 15:09:03\n * @param {Record<string, string>} object\n * @return {*} {Record<string, string>}\n */\n cssVarBlock(object) {\n const styles = {};\n for (const key in object) {\n if (object[key]) {\n styles[this.cssVarBlockName(key)] = object[key];\n }\n }\n return styles;\n }\n /**\n * 生成 css var 变量名称\n *\n * @author chitanda\n * @date 2022-09-06 15:09:21\n * @param {string} name\n * @return {*} {string}\n */\n cssVarName(name) {\n return \"--\".concat(this.namespace, \"-\").concat(name);\n }\n /**\n * 生成块 css var 变量名称\n *\n * @author chitanda\n * @date 2022-09-06 15:09:35\n * @param {string} name\n * @return {*} {string}\n */\n cssVarBlockName(name) {\n return \"--\".concat(this.namespace, \"-\").concat(this.block, \"-\").concat(name);\n }\n};\n\n// src/utils/net/http-response.ts\nimport {\n AxiosHeaders\n} from \"axios\";\nvar HttpResponse = class {\n /**\n * Creates an instance of HttpResponse.\n *\n * @author chitanda\n * @date 2022-08-18 15:08:11\n * @param {unknown} [data] 返回的数据\n * @param {number} [status] 状态码 (默认为 200)\n * @param {string} [statusText] 状态描述 (默认为空字符)\n */\n constructor(data, status, statusText) {\n /**\n * 本地仿造响应\n *\n * @author chitanda\n * @date 2022-08-18 15:08:06\n */\n this.local = true;\n this.ok = false;\n this.headers = {};\n this.config = {\n headers: new AxiosHeaders()\n };\n this.data = data;\n this.status = status || 200;\n this.statusText = statusText || \"\";\n if (this.status >= 200 && this.status < 300) {\n this.ok = true;\n }\n }\n};\n\n// src/utils/net/net.ts\nimport axios from \"axios\";\nimport { merge } from \"lodash-es\";\nimport { stringify } from \"qs\";\nimport { notNilEmpty } from \"qx-util\";\nvar Net = class {\n /**\n * Creates an instance of Net.\n * @author lxm\n * @date 2022-10-27 16:10:05\n * @param {CreateAxiosDefaults} [config] 创建实例用的默认配置\n */\n constructor(config) {\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 * key: 由请求的 config 生成的字符串,用于唯一标识请求\n * value: 当前正在请求的 Promise\n *\n * @author chitanda\n * @date 2023-06-07 14:06:19\n * @protected\n */\n this.waitRequest = /* @__PURE__ */ new Map();\n /**\n * 注册的拦截器\n *\n * @author lxm\n * @date 2022-10-27 17:10:18\n * @type {Map<string, Interceptor>}\n */\n this.interceptors = /* @__PURE__ */ new Map();\n this.instance = axios.create(config);\n this.addInterceptor(\"Default\", new CoreInterceptor());\n }\n /**\n * 添加拦截器\n *\n * @author lxm\n * @date 2022-10-27 17:10:42\n * @param {string} name 唯一标识\n * @param {Interceptor} interceptor 拦截器\n */\n addInterceptor(name, interceptor) {\n interceptor.use(this.instance);\n this.interceptors.set(name, interceptor);\n }\n /**\n * 删除拦截器\n *\n * @author lxm\n * @date 2022-10-27 17:10:27\n * @param {string} name 唯一标识\n */\n removeInterceptor(name) {\n const interceptor = this.interceptors.get(name);\n if (interceptor) {\n interceptor.eject(this.instance);\n this.interceptors.delete(name);\n }\n }\n /**\n * 预置config,绑定动态的配置\n *\n * @author lxm\n * @date 2022-10-27 16:10:48\n * @readonly\n * @protected\n * @type {AxiosRequestConfig}\n */\n get presetConfig() {\n return {\n // 请求前缀路径\n baseURL: this.instance.defaults.baseURL || \"\".concat(ibiz.env.baseUrl, \"/\").concat(ibiz.env.appId),\n headers: {\n \"Content-Type\": \"application/json;charset=UTF-8\",\n Accept: \"application/json\"\n }\n };\n }\n /**\n * 从左到右递归合并配置参数(内置第一个合并的预置参数)\n *\n * @author lxm\n * @date 2022-10-27 16:10:09\n * @protected\n * @param {...AxiosRequestConfig[]} configs\n * @returns {*}\n */\n mergeConfig(...configs) {\n const config = this.presetConfig;\n if (configs.length === 0) {\n return config;\n }\n const { url } = configs[0];\n if (url && this.urlReg.test(url)) {\n delete config.baseURL;\n }\n return merge(config, ...configs);\n }\n /**\n * Post 请求\n *\n * @author chitanda\n * @date 2022-10-19 11:10:30\n * @param {string} url\n * @param {IData} data\n * @param {IParams} [params={}]\n * @param {RawAxiosRequestHeaders} [headers={}]\n * @return {*} {Promise<IHttpResponse>}\n */\n async post(url, data, params = {}, headers = {}) {\n url = this.handleAppPresetParam(url, params);\n try {\n const response = await this.request(url, {\n method: \"post\",\n data,\n headers\n });\n return this.doResponseResult(response);\n } catch (error) {\n throw new HttpError(error);\n }\n }\n /**\n * Get 请求\n *\n * @author chitanda\n * @date 2022-10-19 11:10:24\n * @param {string} url\n * @param {IParams} [params={}]\n * @param {RawAxiosRequestHeaders} [headers={}]\n * @param {IParams} [option={}]\n * @return {*} {Promise<IHttpResponse>}\n */\n async get(url, params = {}, headers = {}, option = {}) {\n url = this.attachUrlParam(url, params);\n try {\n const response = await this.request(\n url,\n merge({ method: \"get\", headers }, option)\n );\n return this.doResponseResult(response);\n } catch (error) {\n throw new HttpError(error);\n }\n }\n /**\n * Delete 请求\n *\n * @author chitanda\n * @date 2022-10-19 11:10:17\n * @param {string} url\n * @param {IParams} [params]\n * @param {RawAxiosRequestHeaders} [headers={}]\n * @return {*} {Promise<IHttpResponse>}\n */\n async delete(url, params, headers = {}) {\n url = this.handleAppPresetParam(url, params);\n try {\n const response = await this.request(url, { method: \"delete\", headers });\n return this.doResponseResult(response);\n } catch (error) {\n throw new HttpError(error);\n }\n }\n /**\n * Put 请求\n *\n * @author chitanda\n * @date 2022-10-19 11:10:11\n * @param {string} url\n * @param {IData} data\n * @param {IParams} [params={}]\n * @param {RawAxiosRequestHeaders} [headers={}]\n * @return {*} {Promise<IHttpResponse>}\n */\n async put(url, data, params = {}, headers = {}) {\n url = this.handleAppPresetParam(url, params);\n try {\n const response = await this.request(url, {\n method: \"put\",\n data,\n headers\n });\n return this.doResponseResult(response);\n } catch (error) {\n throw new HttpError(error);\n }\n }\n /**\n * 获取模型数据\n *\n * @author chitanda\n * @date 2022-07-14 15:07:15\n * @param {string} url\n * @param {RawAxiosRequestHeaders} [headers={}]\n * @return {*} {Promise<IHttpResponse>}\n */\n async getModel(url, headers = {}) {\n try {\n const response = await this.instance.get(url, {\n headers\n });\n return this.doResponseResult(response);\n } catch (error) {\n throw new HttpError(error);\n }\n }\n /**\n * 基础请求方法,会合并预置配置\n *\n * @author lxm\n * @date 2022-10-27 14:10:06\n * @param {string} url\n * @param {AxiosRequestConfig} [config={}]\n * @returns {*} {Promise<IHttpResponse>}\n */\n async request(url, config = {}) {\n const cfg = this.mergeConfig({ url }, config);\n const key = JSON.stringify(cfg);\n try {\n let requestPromise = null;\n if (!this.waitRequest.has(key)) {\n requestPromise = this.instance.request(cfg);\n this.waitRequest.set(key, requestPromise);\n } else {\n requestPromise = this.waitRequest.get(key);\n }\n const response = await requestPromise;\n if (this.waitRequest.has(key)) {\n this.waitRequest.delete(key);\n }\n return this.doResponseResult(response);\n } catch (error) {\n if (this.waitRequest.has(key)) {\n this.waitRequest.delete(key);\n }\n throw new HttpError(error);\n }\n }\n /**\n * 创建标准 axios 请求\n *\n * @author chitanda\n * @date 2023-01-30 15:01:27\n * @param {AxiosRequestConfig<IData>} config\n * @return {*}\n */\n axios(config) {\n return axios(config);\n }\n /**\n * 统一处理请求返回\n *\n * @author chitanda\n * @date 2022-07-14 16:07:23\n * @private\n * @param {AxiosResponse} response\n * @return {*} {IHttpResponse}\n */\n doResponseResult(response) {\n const res = response;\n if (res.status >= 200 && res.status <= 299) {\n res.ok = true;\n }\n return res;\n }\n /**\n * 处理平台预定义参数\n *\n * @author chitanda\n * @date 2022-07-14 15:07:12\n * @private\n * @param {string} url\n * @param {IParams} [params]\n * @return {*} {string}\n */\n handleAppPresetParam(url, params) {\n if (params) {\n const keys = Object.keys(params);\n const tempParam = {};\n keys.forEach((item) => {\n if (item.startsWith(\"srf\") && notNilEmpty(params[item])) {\n tempParam[item] = params[item];\n }\n });\n return this.attachUrlParam(url, params);\n }\n return url;\n }\n /**\n * url 附加请求参数\n *\n * @author chitanda\n * @date 2022-07-14 15:07:34\n * @private\n * @param {string} url\n * @param {IParams} params\n * @return {*} {string}\n */\n attachUrlParam(url, params) {\n const strParams = stringify(params);\n if (notNilEmpty(strParams)) {\n if (url.endsWith(\"?\")) {\n url = \"\".concat(url).concat(strParams);\n } else if (url.indexOf(\"?\") !== -1 && url.endsWith(\"&\")) {\n url = \"\".concat(url).concat(strParams);\n } else if (url.indexOf(\"?\") !== -1 && !url.endsWith(\"&\")) {\n url = \"\".concat(url, \"&\").concat(strParams);\n } else {\n url = \"\".concat(url, \"?\").concat(strParams);\n }\n }\n return url;\n }\n};\n\n// src/utils/string-util/string-util.ts\nimport { notNilEmpty as notNilEmpty2 } from \"qx-util\";\nvar StringUtil = class {\n /**\n * 填充字符串中的数据\n *\n * @author chitanda\n * @date 2021-04-23 20:04:17\n * @static\n * @param {string} str\n * @param {*} [context]\n * @param {*} [data]\n * @return {*} {string}\n */\n static fill(str, context, data) {\n if (notNilEmpty2(str)) {\n if (notNilEmpty2(context)) {\n const strArr = str.match(this.contextReg);\n strArr == null ? void 0 : strArr.forEach((_key) => {\n const key = _key.slice(10, _key.length - 1);\n str = str.replace(\"${context.\".concat(key, \"}\"), context[key] || \"\");\n });\n }\n if (notNilEmpty2(data)) {\n const strArr = str.match(this.dataReg);\n strArr == null ? void 0 : strArr.forEach((_key) => {\n const key = _key.slice(7, _key.length - 1);\n str = str.replace(\"${data.\".concat(key, \"}\"), data[key] || \"\");\n });\n }\n }\n return str;\n }\n};\n/**\n * 上下文替换正则\n *\n * @author chitanda\n * @date 2021-04-23 20:04:01\n * @static\n */\nStringUtil.contextReg = /\\$\\{context.[a-zA-Z_$][a-zA-Z0-9_$]{1,}\\}/g;\n/**\n * 数据替换正则\n *\n * @author chitanda\n * @date 2021-04-23 20:04:09\n * @static\n */\nStringUtil.dataReg = /\\$\\{data.[a-zA-Z_$][a-zA-Z0-9_$]{1,}\\}/g;\n\n// src/utils/url-helper/url-helper.ts\nvar UrlHelper = class {\n /**\n * 路由路径前面的基础路径\n * 如:http://172.16.103.120:30061/portalwebapp/#/index/appportalview?params=123\n * 返回:http://172.16.103.120:30061/portalwebapp/#\n *\n * @author lxm\n * @date 2022-10-11 20:10:29\n * @returns {*}\n */\n static get routeBase() {\n const hashIndex = window.location.href.lastIndexOf(\"#/\");\n return window.location.href.slice(0, hashIndex + 1);\n }\n /**\n * 应用的的基础路径\n * 如:http://172.16.103.120:30061/portalwebapp/#/index/appportalview?params=123\n * 返回:http://172.16.103.120:30061/portalwebapp\n *\n * @author lxm\n * @date 2022-10-11 20:10:29\n * @returns {*}\n */\n static get appBase() {\n const { origin, pathname } = window.location;\n return \"\".concat(origin).concat(pathname).replace(/\\/$/, \"\");\n }\n /**\n * #开始到末尾,即路由地址\n * 如:http://172.16.103.120:30061/portalwebapp/#/index/appportalview?params=123\n * 返回:/index/appportalview?params=123\n *\n * @author lxm\n * @date 2022-10-11 16:10:40\n * @returns {*}\n */\n static get routePath() {\n return window.location.hash.replace(\"#\", \"\");\n }\n /**\n * 当前地址的全路径,包含域名和参数\n * 如:http://172.16.103.120:30061/portalwebapp/#/index/appportalview?params=123\n *\n * @author lxm\n * @date 2022-10-11 21:10:39\n * @readonly\n * @static\n */\n static get fullPath() {\n return window.location.href;\n }\n};\n\n// src/utils/event/event.ts\nfunction eventPath(event) {\n const path = event.composedPath && event.composedPath() || event.path;\n if (path != null)\n return path;\n function getParents(node, memo = []) {\n const parentNode = node.parentNode;\n return parentNode ? getParents(parentNode, memo.concat([parentNode])) : memo;\n }\n return [event.target].concat(getParents(event.target));\n}\nfunction listenJSEvent(target, eventName, listener, options = {}) {\n target.addEventListener(eventName, listener, options);\n let cleanup = () => {\n target.removeEventListener(eventName, listener, options);\n cleanup = NOOP;\n };\n return () => {\n cleanup();\n };\n}\nfunction isEventInside(event, el) {\n return el && (event.target === el || eventPath(event).includes(el));\n}\n\n// src/utils/click-outside/click-outside.ts\nvar defaultWindow = typeof window !== \"undefined\" ? window : void 0;\nfunction onClickOutside(target, handler, options = {}) {\n const { window: window2 = defaultWindow, ignore = [], capture = true } = options;\n if (!target)\n throw new RuntimeError(\"target\\u5143\\u7D20\\u4E0D\\u5B58\\u5728\");\n if (!window2)\n throw new RuntimeError(\"\\u627E\\u4E0D\\u5230window\");\n let shouldListen = true;\n const isOutside = (event) => {\n return ![target, ...ignore].some((el) => {\n return isEventInside(event, el);\n });\n };\n let isPaused = false;\n const pause = () => {\n isPaused = true;\n };\n const proceed = () => {\n isPaused = false;\n };\n let fallback;\n const listener = (event) => {\n if (isPaused)\n return;\n window2.clearTimeout(fallback);\n if (!(shouldListen && isOutside(event)))\n return;\n handler(event);\n };\n const cleanups = [\n listenJSEvent(window2, \"click\", listener, { passive: true, capture }),\n listenJSEvent(\n window2,\n \"pointerdown\",\n (e) => {\n if (isPaused)\n return;\n shouldListen = isOutside(e);\n },\n { passive: true }\n ),\n listenJSEvent(\n window2,\n \"pointerup\",\n (e) => {\n if (isPaused)\n return;\n if (e.button === 0) {\n const path = eventPath(e);\n e.composedPath = () => path;\n fallback = window2.setTimeout(() => listener(e), 50);\n }\n },\n { passive: true }\n )\n ].filter(Boolean);\n const stop = () => cleanups.forEach((fn) => fn());\n return { stop, pause, proceed };\n}\n\n// src/utils/color/color.ts\nvar r = Math.round;\nfunction toRGBA(color) {\n const l = color.length;\n const rgba = [];\n if (color.slice(0, 3).toLowerCase() === \"rgb\") {\n const d = color.match(/([\\d|.%]{1,3})/g);\n rgba[0] = parseInt(d[0], 10);\n rgba[1] = parseInt(d[1], 10);\n rgba[2] = parseInt(d[2], 10);\n rgba[3] = d[3] ? d[3].indexOf(\"%\") !== -1 ? parseInt(d[3], 10) / 100 : parseFloat(d[3]) : 1;\n } else {\n let d;\n if (l < 6)\n d = parseInt(\n String(color[1]) + color[1] + color[2] + color[2] + color[3] + color[3] + (l > 4 ? String(color[4]) + color[4] : \"\"),\n 16\n );\n else\n d = parseInt(color.slice(1), 16);\n rgba[0] = d >> 16 & 255;\n rgba[1] = d >> 8 & 255;\n rgba[2] = d & 255;\n rgba[3] = l === 9 || l === 5 ? r((d >> 24 & 255) / 255 * 1e4) / 1e4 : 1;\n }\n return rgba;\n}\nfunction colorBlend(color1, color2, p = 0.5, format = \"hex\") {\n color1 = color1.trim();\n color2 = color2.trim();\n const c1 = toRGBA(color1);\n const c2 = toRGBA(color2);\n const result = [\n r((1 - p) * c1[0] + p * c2[0]),\n r((1 - p) * c1[1] + p * c2[1]),\n r((1 - p) * c1[2] + p * c2[2]),\n (1 - p) * c1[3] + p * c2[3]\n ];\n if (format === \"hex\") {\n const hex = [\n result[0].toString(16),\n result[1].toString(16),\n result[2].toString(16),\n result[3] === 0 ? \"00\" : r(result[3] * 255).toString(16)\n ];\n return \"#\".concat(hex[0]).concat(hex[1]).concat(hex[2]).concat(hex[3]);\n }\n return \"rgb(\".concat(result[0], \" \").concat(result[1], \" \").concat(result[2], \" / \").concat(result[3], \")\");\n}\n\n// src/utils/download-file/download-file.ts\nfunction calcMimeByFileName(fileName) {\n const ext = fileName.split(\".\").pop();\n let mime = \"\";\n switch (ext) {\n case \".wps\":\n mime = \"application/kswps\";\n break;\n case \".doc\":\n mime = \"application/msword\";\n break;\n case \".docx\":\n mime = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n break;\n case \".txt\":\n mime = \"text/plain\";\n break;\n case \".zip\":\n mime = \"application/zip\";\n break;\n case \".png\":\n mime = \"image/png\";\n break;\n case \".gif\":\n mime = \"image/gif\";\n break;\n case \".jpeg\":\n mime = \"image/jpeg\";\n break;\n case \".jpg\":\n mime = \"image/jpeg\";\n break;\n case \".rtf\":\n mime = \"application/rtf\";\n break;\n case \".avi\":\n mime = \"video/x-msvideo\";\n break;\n case \".gz\":\n mime = \"application/x-gzip\";\n break;\n case \".tar\":\n mime = \"application/x-tar\";\n break;\n case \".xlsx\":\n mime = \"application/vnd.ms-excel\";\n break;\n default:\n mime = \"\";\n }\n return mime;\n}\nfunction isImage(fileName) {\n const ext = fileName.split(\".\").pop();\n if (!ext) {\n return false;\n }\n const imageTypes = [\".jpeg\", \"jpg\", \"gif\", \"png\", \"bmp\", \"svg\"];\n return imageTypes.includes(ext);\n}\nfunction downloadFileFromBlob(file, fileName) {\n const filetype = calcMimeByFileName(fileName);\n const blob = new Blob([file], { type: filetype });\n const href = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = href;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(href);\n}\n\n// src/utils/upload/select-file.ts\nimport { merge as merge2 } from \"lodash-es\";\nfunction fileListToArr(fileList) {\n const files = [];\n for (let i = 0; i < fileList.length; i++) {\n files.push(fileList[i]);\n }\n return files;\n}\nfunction selectFile(_opts) {\n const opts = merge2(\n {\n multiple: true,\n accept: \"\"\n },\n _opts\n );\n const input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"file\");\n input.setAttribute(\"multiple\", \"\".concat(opts.multiple));\n input.setAttribute(\"accept\", opts.accept);\n input.onchange = (e) => {\n const inputEl = e.target;\n const files = inputEl.files ? fileListToArr(inputEl.files) : [];\n if (files.length === 0) {\n return;\n }\n opts.onSelected(files);\n inputEl.value = \"\";\n };\n document.body.appendChild(input);\n input.click();\n document.body.removeChild(input);\n}\n\n// src/utils/upload/upload-file.ts\nimport { cloneDeep, isFunction, merge as merge3, round, uniqueId } from \"lodash-es\";\nfunction uploadFile(_opts) {\n const opts = merge3(\n {\n multiple: true,\n accept: \"\",\n separate: true,\n beforeUpload: (_fileData, _files) => true,\n finish: (_resultFiles) => {\n },\n success: (_resultFiles, _res) => {\n },\n error: (_resultFiles, _error) => {\n },\n progress: (_files) => {\n }\n },\n _opts\n );\n const onUploadProgress = (event, files) => {\n files.forEach((file) => {\n file.percentage = round(event.progress * 100);\n });\n opts.progress(cloneDeep(files));\n };\n const uploadRequest = async (files, _onProgress) => {\n if (opts.request && isFunction(opts.request)) {\n return opts.request(files);\n }\n const data = new FormData();\n files.forEach((file) => {\n data.append(\"file\", file);\n });\n throw new RuntimeError(\"\\u591A\\u5E94\\u7528\\u6A21\\u5F0F\\u7B49\\u5F85\\u91CD\\u65B0\\u5B9E\\u73B0\\u8BF7\\u6C42\");\n };\n const executeSingleUpload = async (files) => {\n const resultFiles = files.map((file) => {\n return {\n status: \"uploading\",\n name: file.name,\n uid: uniqueId(),\n percentage: 0\n };\n });\n const pass = opts.beforeUpload(files, resultFiles);\n if (!pass) {\n resultFiles.forEach((file) => {\n file.status = \"cancel\";\n });\n ibiz.log.debug(\"\\u53D6\\u6D88\\u4E0A\\u4F20\", resultFiles);\n return resultFiles;\n }\n try {\n const res = await uploadRequest(files, (event) => {\n onUploadProgress(event, resultFiles);\n });\n resultFiles.forEach((file) => {\n file.status = \"finished\";\n });\n opts.success(resultFiles, res);\n resultFiles.forEach((file) => {\n file.response = res;\n });\n } catch (error) {\n resultFiles.forEach((file) => {\n file.status = \"fail\";\n });\n opts.error(resultFiles, error);\n resultFiles.forEach((file) => {\n file.error = error;\n });\n ibiz.log.error(error);\n ibiz.log.error(\"\".concat(files.map((file) => file.name).join(\",\"), \"\\u4E0A\\u4F20\\u5931\\u8D25\"));\n }\n return resultFiles;\n };\n const uploadFiles = async (files) => {\n const uploadSequence = opts.separate ? files.map((file) => [file]) : [files];\n const res = await Promise.allSettled(\n uploadSequence.map(async (sequence) => {\n return executeSingleUpload(sequence);\n })\n );\n const resultFiles = [];\n res.forEach((result) => {\n if (result.status === \"fulfilled\") {\n resultFiles.push(...result.value);\n }\n });\n opts.finish(resultFiles);\n };\n const select = () => {\n selectFile({\n accept: opts.accept,\n multiple: opts.multiple,\n onSelected: (files) => {\n uploadFiles(files);\n }\n });\n };\n select();\n}\n\n// src/utils/sync/await-timeout.ts\nasync function awaitTimeout(wait, fun, params) {\n await new Promise((resolve) => {\n setTimeout(() => {\n resolve(true);\n }, wait);\n });\n if (fun) {\n return fun(...params || []);\n }\n}\n\n// src/utils/sync/count-latch.ts\nvar CountLatch = class {\n constructor() {\n this.promise = null;\n this.resolve = null;\n /**\n * 计数,当前等待的异步逻辑个数\n *\n * @author lxm\n * @date 2022-11-24 19:11:59\n * @type {number}\n */\n this.count = 0;\n }\n /**\n * 开启promise\n *\n * @author lxm\n * @date 2022-11-24 19:11:32\n * @private\n */\n startPromise() {\n this.promise = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n /**\n * 结束promise\n *\n * @author lxm\n * @date 2022-11-24 19:11:44\n * @private\n */\n endPromise() {\n if (this.resolve) {\n this.resolve();\n this.resolve = null;\n this.promise = null;\n }\n }\n /**\n * 上锁,计数加一\n * 第一次计数,开启异步\n *\n * @author lxm\n * @date 2022-11-24 19:11:27\n */\n lock() {\n this.count += 1;\n if (!this.promise) {\n this.startPromise();\n }\n }\n /**\n * 解锁,计数减一\n * 归零时结束异步\n *\n * @author lxm\n * @date 2022-11-24 19:11:47\n */\n unlock() {\n if (this.count < 1) {\n throw new RuntimeError(\"lock\\u548Cunlock\\u6B21\\u6570\\u4E0D\\u5339\\u914D\\uFF01\");\n }\n this.count -= 1;\n if (this.count === 0) {\n this.endPromise();\n }\n }\n /**\n * 等待,计数归零异步结束\n *\n * @author lxm\n * @date 2022-11-24 19:11:20\n */\n async await() {\n if (this.promise) {\n await this.promise;\n }\n }\n};\n\n// src/utils/style/remote-style.ts\nasync function setRemoteStyle(url) {\n try {\n const res = await ibiz.net.get(url);\n const styleDom = document.createElement(\"style\");\n styleDom.setAttribute(\"title\", \"app-style-css\");\n styleDom.innerText = res.data;\n document.head.appendChild(styleDom);\n } catch (error) {\n ibiz.log.debug(\"\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u6837\\u5F0F\\u8868\\u5931\\u8D25\", url);\n }\n}\n\n// src/utils/recursive/find-recursive-child.ts\nimport { mergeDeepRight } from \"ramda\";\nvar IterateOpts = {\n /** 子集合属性数组 */\n childrenFields: [\"children\"]\n};\nvar BreakError = new Error(\"\\u4E2D\\u65AD\\u64CD\\u4F5C\");\nfunction getChildField(parent, fields) {\n var _a;\n for (const field of fields) {\n if ((_a = parent[field]) == null ? void 0 : _a.length) {\n return parent[field];\n }\n }\n}\nfunction _recursiveIterate(parent, callback, opts) {\n const { childrenFields } = mergeDeepRight(IterateOpts, opts || {});\n const children = getChildField(parent, childrenFields);\n if (children == null ? void 0 : children.length) {\n for (const child of children) {\n const isBreak = callback(child);\n if (isBreak) {\n throw BreakError;\n }\n recursiveIterate(child, callback, opts);\n }\n }\n}\nfunction recursiveIterate(parent, callback, opts) {\n try {\n _recursiveIterate(parent, callback, opts);\n } catch (error) {\n if (error !== BreakError) {\n throw error;\n }\n }\n}\nvar CompareOpts = {\n ...IterateOpts,\n /** 比较的属性 */\n compareField: \"name\"\n};\nfunction findRecursiveChild(parent, key, opts) {\n const { compareField, compareCallback } = mergeDeepRight(\n CompareOpts,\n opts || {}\n );\n const _compareCallback = compareCallback || ((child) => {\n return child[compareField] === key;\n });\n let find;\n recursiveIterate(\n parent,\n (item) => {\n if (_compareCallback(item, key, compareField)) {\n find = item;\n return true;\n }\n },\n opts\n );\n return find;\n}\n\n// src/utils/logger/logger.ts\nvar Logger = __toESM(require_loglevel(), 1);\nvar prefix = __toESM(require_loglevel_plugin_prefix(), 1);\nvar logger = Logger.noConflict();\nprefix.reg(logger);\nprefix.apply(logger);\n\n// src/ibizsys.ts\nvar IBizSys = class {\n constructor() {\n /**\n * 环境变量\n *\n * @author chitanda\n * @date 2022-07-19 18:07:04\n */\n this.env = Environment;\n /**\n * 日志输出工具类\n *\n * @author chitanda\n * @date 2023-07-10 18:07:05\n * @type {Logger}\n */\n this.log = logger;\n /**\n * 网络请求工具类(发送默认请求)\n *\n * @author chitanda\n * @date 2022-07-19 17:07:56\n * @type {Net}\n */\n this.net = new Net();\n /**\n * 指令集\n *\n * @author chitanda\n * @date 2022-07-20 10:07:33\n * @type {AuthService}\n */\n this.commands = new CommandController();\n }\n};\n\n// src/install.ts\nfunction install() {\n if (window.ibiz) {\n throw new Error(\"ibiz \\u5DF2\\u7ECF\\u5B58\\u5728, \\u65E0\\u9700\\u91CD\\u590D\\u5B89\\u88C5\");\n }\n window.ibiz = new IBizSys();\n}\nexport {\n CommandController,\n CommandsRegistry,\n CoreConst,\n CoreInterceptor,\n CountLatch,\n Environment,\n HttpError,\n HttpResponse,\n HttpStatusMessageConst,\n IBizContext,\n IBizSys,\n Interceptor,\n LinkedList,\n LoginMode,\n MenuPermissionMode,\n ModelError,\n NOOP,\n Namespace,\n Net,\n RuntimeError,\n RuntimeModelError,\n StringUtil,\n UrlHelper,\n awaitTimeout,\n calcMimeByFileName,\n colorBlend,\n commands,\n compareArr,\n debounce,\n debounceAndAsyncMerge,\n debounceAndMerge,\n downloadFileFromBlob,\n eventPath,\n fileListToArr,\n findRecursiveChild,\n getToken,\n install,\n isElementSame,\n isEventInside,\n isImage,\n isOverlap,\n listenJSEvent,\n mergeDefaultInLeft,\n mergeInLeft,\n onClickOutside,\n recursiveIterate,\n selectFile,\n setRemoteStyle,\n throttle,\n toDisposable,\n toNumberOrNil,\n uploadFile\n};\n"],"names":["async","wait","fun","params","Promise","resolve","setTimeout","color1","color2","p","format","trim","c1","toRGBA","c2","result","r","hex","toString","concat","arr1","arr2","keyField","all","Set","more","less","same","arr1Keys","map","item","arr2Keys","forEach","includes","push","func","immediate","timer","args","clearTimeout","callNow","apply","this","mergeFunc","oldParams","promises","debounceFunc","debounce2","promise","error","reject","newParams","file","fileName","filetype","calcMimeByFileName","blob","Blob","type","href","URL","createObjectURL","a","document","createElement","download","body","appendChild","click","removeChild","revokeObjectURL","parent","key","opts","compareField","compareCallback","mergeDeepRight","CompareOpts","_compareCallback","child","find","recursiveIterate","window","ibiz","Error","IBizSys","field","length","allElements","Array","from","ext","split","pop","l","r2","Object","keys","isNotNil","isNil","target","handler","options","window2","defaultWindow","ignore","capture","RuntimeError","shouldListen","isOutside","event","some","el","isEventInside","isPaused","fallback","listener","cleanups","listenJSEvent","passive","e","button","path","eventPath","composedPath","filter","Boolean","stop","fn","pause","proceed","url","res","net","get","styleDom","setAttribute","innerText","data","head","log","debug","value","num","Number","isNaN","_opts","merge3","multiple","accept","separate","beforeUpload","_fileData","_files","finish","_resultFiles","success","_res","_error","progress","executeSingleUpload","files","resultFiles","status","name","uid","uniqueId","percentage","_onProgress","request","isFunction","FormData","append","uploadRequest","response","join","selectFile","onSelected","uploadSequence","allSettled","sequence","uploadFiles","__create","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__commonJS","cb","mod","exports","__toESM","isNodeMode","to","except","desc","call","enumerable","__copyProps","__esModule","require_loglevel","module","root","definition","noop","undefinedType","isIE","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","arguments","traceForIE","console","trace","replaceLoggingMethods","level","loggerName","i","methodFactory","enableLoggingWhenConsoleArrives","defaultMethodFactory","realMethod","Logger2","defaultLevel","factory","currentLevel","self","storageKey","getPersistedLevel","storedLevel","localStorage","cookie","location","indexOf","encodeURIComponent","exec","slice","levels","TRACE","DEBUG","INFO","WARN","ERROR","SILENT","getLevel","setLevel","persist","toUpperCase","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","resetLevel","removeItem","clearPersistedLevel","enableAll","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger2","_log","noConflict","getLoggers","define","amd","require_loglevel_plugin_prefix","loglevel","save","defaults","template","levelFormatter","nameFormatter","timestampFormatter","date","toTimeString","replace","configs","api","reg","rootLogger","config","originalFactory","logLevel","originalMethod","hasTimestamp","hasLevel","hasName","content","timestamp","Date","lname","unshift","merge4","warn","prefix","_Node","constructor","element","next","Undefined","prev","Node","LinkedList","_first","_last","_size","size","isEmpty","clear","node","_insert","atTheEnd","newNode","oldLast","oldFirst","didRemove","_remove","shift","anchor","Symbol","iterator","once","_this","didCall","toDisposable","dispose","CommandsRegistry","commands","Map","registerCommand","idOrCommand","id","commands2","set","removeFn","command","delete","hasCommand","has","getCommand","list","getCommands","getCommandOpt","cmd","CommandController","commandRegister","register","err","bol","getCommandOpts","CoreConst","DEFAULT_MODEL_SERVICE_TAG","TOKEN","TOKEN_EXPIRES","NOOP","LoginMode","LoginMode2","MenuPermissionMode","MenuPermissionMode2","Environment","_IBizContext","context","initWithParent","assign","writable","properties","val","_context","_parent","defineProperties","getOwnContext","destroy","_associationContext","clone","newContext","reset","static","dev","hub","baseUrl","appId","pluginBaseUrl","isLocalModel","remoteModelUrl","assetsUrl","dcSystem","downloadFileUrl","uploadFileUrl","casLoginUrl","loginMode","menuPermissionMode","enablePermission","routePlaceholder","enableWfAllHistory","isMob","isSaaSMode","AppTitle","favicon","HttpError","super","message","statusText","model","msg","getToken","getCookie","Interceptor","onRequestError","onResponseError","use","instance","requestTag","interceptors","onBeforeRequest","responseTag","onResponseSuccess","eject","CoreInterceptor","headers","systemId","env","orgData","systemid","orgid","_bem","namespace","block","blockSuffix","modifier","cls","b","m","be","em","bm","bem","is","state","cssVar","object","styles","cssVarName","cssVarBlock","cssVarBlockName","local","ok","AxiosHeaders","Net","urlReg","waitRequest","axios","addInterceptor","interceptor","removeInterceptor","presetConfig","baseURL","Accept","mergeConfig","merge","handleAppPresetParam","doResponseResult","option","attachUrlParam","cfg","JSON","stringify","requestPromise","startsWith","notNilEmpty","strParams","endsWith","StringUtil","str","notNilEmpty2","strArr","match","contextReg","_key","dataReg","routeBase","hashIndex","lastIndexOf","appBase","origin","pathname","routePath","hash","fullPath","getParents","memo","parentNode","eventName","addEventListener","cleanup","removeEventListener","Math","round","color","rgba","toLowerCase","d","parseInt","parseFloat","String","mime","fileListToArr","fileList","merge2","input","onchange","inputEl","count","startPromise","endPromise","lock","unlock","IterateOpts","childrenFields","BreakError","callback","children","fields","_a","getChildField","_recursiveIterate","Logger","logger"],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare class CoreConst {
18
18
  * @date 2022-07-20 15:07:28
19
19
  * @static
20
20
  */
21
- static readonly TOKEN = "access_token";
21
+ static readonly TOKEN = "ibzuaa-token";
22
22
  /**
23
23
  * 访问令牌标识过期时间
24
24
  *
@@ -27,6 +27,6 @@ export declare class CoreConst {
27
27
  * @static
28
28
  * @memberof CoreConst
29
29
  */
30
- static readonly TOKEN_EXPIRES = "access_token_expires";
30
+ static readonly TOKEN_EXPIRES = "ibzuaa-token_expires";
31
31
  }
32
32
  //# sourceMappingURL=core.d.ts.map
@@ -6,7 +6,7 @@
6
6
  * @export
7
7
  * @enum {number}
8
8
  */
9
- class CoreConst {
9
+ export class CoreConst {
10
10
  }
11
11
  /**
12
12
  * 默认模型服务标识
@@ -19,7 +19,7 @@ CoreConst.DEFAULT_MODEL_SERVICE_TAG = 'default';
19
19
  * @date 2022-07-20 15:07:28
20
20
  * @static
21
21
  */
22
- CoreConst.TOKEN = 'access_token';
22
+ CoreConst.TOKEN = 'ibzuaa-token';
23
23
  /**
24
24
  * 访问令牌标识过期时间
25
25
  *
@@ -28,5 +28,4 @@ CoreConst.TOKEN = 'access_token';
28
28
  * @static
29
29
  * @memberof CoreConst
30
30
  */
31
- CoreConst.TOKEN_EXPIRES = 'access_token_expires';
32
- export { CoreConst };
31
+ CoreConst.TOKEN_EXPIRES = 'ibzuaa-token_expires';
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/constant/util/util.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,eAAO,MAAM,IAAI,YAAW,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/constant/util/util.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,eAAO,MAAM,IAAI,QAAO,IAAU,CAAC"}
@@ -23,9 +23,9 @@ export declare class IBizContext implements IContext {
23
23
  * @author lxm
24
24
  * @date 2022-12-08 18:12:16
25
25
  * @protected
26
- * @type {IDatum}
26
+ * @type {IData}
27
27
  */
28
- protected _context: IDatum;
28
+ protected _context: IData;
29
29
  /**
30
30
  * 父的上下文源对象
31
31
  *
@@ -39,18 +39,19 @@ export declare class IBizContext implements IContext {
39
39
  *
40
40
  * @author chitanda
41
41
  * @date 2022-07-14 10:07:15
42
- * @param {IDatum} [context={}] 自身的上下文
42
+ * @param {IData} [context={}] 自身的上下文
43
43
  * @param {IContext} [parent]
44
44
  */
45
45
  private constructor();
46
+ private initWithParent;
46
47
  /**
47
48
  * 返回自身的上下文,独有的和与父有差异的。
48
49
  *
49
50
  * @author lxm
50
51
  * @date 2022-12-08 17:12:26
51
- * @returns {*} {IDatum}
52
+ * @returns {*} {IData}
52
53
  */
53
- getOwnContext(): IDatum;
54
+ getOwnContext(): IData;
54
55
  /**
55
56
  * 销毁当前上下文对象
56
57
  *
@@ -66,16 +67,25 @@ export declare class IBizContext implements IContext {
66
67
  * @return {*} {IBizContext}
67
68
  */
68
69
  clone(): IBizContext;
70
+ /**
71
+ * 在不改变对象引用的情况下,重置上下文
72
+ * 等效于重新实例化,但是引用不变
73
+ * @author lxm
74
+ * @date 2023-05-24 10:30:40
75
+ * @param {IData} [context={}]
76
+ * @param {IContext} [parent]
77
+ */
78
+ reset(context?: IData, parent?: IContext): void;
69
79
  /**
70
80
  * 上下文只有在视图初始化时,调用 create 方法
71
81
  *
72
82
  * @author chitanda
73
83
  * @date 2023-03-13 16:03:32
74
84
  * @static
75
- * @param {IDatum} [context]
85
+ * @param {IData} [context]
76
86
  * @param {IContext} [parent]
77
87
  * @return {*} {IContext}
78
88
  */
79
- static create(context?: IDatum, parent?: IContext): IBizContext;
89
+ static create(context?: IData, parent?: IContext): IBizContext;
80
90
  }
81
91
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAE1C,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAE5B;;;;;;;OAOG;IACH,UAAkB,mBAAmB,EAAE,WAAW,EAAE,CAAC;IAErD;;;;;;;OAOG;IACH,UAAkB,QAAQ,EAAE,MAAM,CAAC;IAEnC;;;;;;OAMG;IACK,OAAO,CAAC,EAAE,QAAQ,CAAC;IAE3B;;;;;;;OAOG;IAEH,OAAO;IAkDP;;;;;;OAMG;IACH,aAAa,IAAI,MAAM;IAgBvB;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAQf;;;;;;OAMG;IACH,KAAK,IAAI,WAAW;IASpB;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW;CAGhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAE1C,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAE5B;;;;;;;OAOG;IACH,UAAkB,mBAAmB,EAAE,WAAW,EAAE,CAAC;IAErD;;;;;;;OAOG;IACH,UAAkB,QAAQ,EAAE,KAAK,CAAC;IAElC;;;;;;OAMG;IACK,OAAO,CAAC,EAAE,QAAQ,CAAC;IAE3B;;;;;;;OAOG;IAEH,OAAO;IAcP,OAAO,CAAC,cAAc;IA6CtB;;;;;;OAMG;IACH,aAAa,IAAI,KAAK;IAgBtB;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAQf;;;;;;OAMG;IACH,KAAK,IAAI,WAAW;IASpB;;;;;;;OAOG;IAEH,KAAK,CAAC,OAAO,GAAE,KAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,IAAI;IA0BnD;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW;CAG/D"}