@wdslib/go-utils 0.2.93 → 0.2.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/types/tool/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"axios";import t,{uniq as r}from"lodash";import i from"crypto-js";function a(e,t,r,i){return new(r||(r=Promise))((function(a,o){function n(e){try{l(i.next(e))}catch(e){o(e)}}function s(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(n,s)}l((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.requests=[],console.log("RequestTracker")}static getInstance(){return o.instance||(o.instance=new o),o.instance}addRequest(e){if(this.isDuplicateRequest(e)){let t=this.findRequest(e);this.cancelRequest(t)}this.requests.push(e)}findRequest(e){let t;for(const r of this.requests)if(this.areRequestsEqual(r,e)){t=r;break}return t}removeRequest(e){const t=this.requests.indexOf(e);-1!==t&&this.requests.splice(t,1)}cancelRequest(e){e.cancelToken.cancel("Request canceled"),this.removeRequest(e)}isDuplicateRequest(e){return this.requests.some((t=>this.areRequestsEqual(t,e)))}areRequestsEqual(e,t){return e.url===t.url&&JSON.stringify(e.data)===JSON.stringify(t.data)&&JSON.stringify(e.params)===JSON.stringify(t.params)&&e.method===t.method}}const n=o.getInstance(),s=3e3,l=3e3,d=(t="",r)=>{let i,a=e.create({baseURL:t,timeout:s,headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}});return a.interceptors.request.use((function(t){let{url:r,params:a,headers:o,data:s,method:l}=t;const d=e.CancelToken.source();return i={url:r,params:a,headers:o,data:s,method:l,cancelToken:d},t.cancelToken=d.token,n.addRequest(i),sessionStorage.getItem("anov-go-token")&&"null"!=sessionStorage.getItem("anov-go-token")&&(t.headers["X-ANOV-ACCESS-TOKEN"]=sessionStorage.getItem("anov-go-token")),sessionStorage.getItem("unify-access-token")&&"null"!=sessionStorage.getItem("unify-access-token")&&(t.headers["X-UNIFY-ACCESS-TOKEN"]=sessionStorage.getItem("unify-access-token")),sessionStorage.getItem("dgcc_authorization")&&"null"!=sessionStorage.getItem("dgcc_authorization")&&(t.headers.dgcc_authorization=sessionStorage.getItem("dgcc_authorization")),"post"===t.method?(t.headers["Content-Type"]="application/json;",t):"get"===t.method?t:"put"===t.method?(t.headers["Content-Type"]="application/json; charset=UTF-8",t):"delete"===t.method?t:void 0}),(function(e){return Promise.reject(e)})),a.interceptors.response.use((function(e){return 200===e.status||e.data.code,r&&r(e),n.removeRequest(i),e.data}),(function(e){return r&&(n.removeRequest(i),r(null==e?void 0:e.response)),Promise.reject(e.response)})),a};function c(e,t=!1){return t?u(e)?e:JSON.stringify(e):u(e)?JSON.parse(e):e}const u=e=>{if("string"==typeof e)try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}return!1},h=(e,t)=>{try{const r=JSON.stringify(t);sessionStorage.setItem(e,r)}catch(t){console.error(`Error setting session data for key ${e}:`,t)}},p=e=>{const t=sessionStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(t){console.error(`Error parsing session data for key ${e}:`,t)}return null},m=e=>{for(const t of e)t.code&&(t.code=t.code.replace(/>/g,">").replace(/</g,"<"))},f=(e,t)=>{e instanceof Map?e.forEach((e=>{t([e])})):Array.isArray(e)&&e.forEach((e=>{t(e.children)}))},g=(e,t)=>{const r=e=>{var i,a,o;if(e)for(const n of e){const e=null===(o=null===(a=null===(i=null==n?void 0:n.tmpData)||void 0===i?void 0:i.source)||void 0===a?void 0:a.converse)||void 0===o?void 0:o.data;(null==e?void 0:e.length)&&m(e),t(n),n.children?r(n.children):n.dynamicChildren?f(n.dynamicChildren,r):n.stateChildren&&r(n.stateChildren)}};r(e)},v=(e,t,r,i)=>{const a=e.match(/({{[\w]*}})|((@)[\w]*)/gm);if(a){const e=a.map((e=>e.replace(/{{|}}|@/gm,"")));for(const a of e)if(a&&t&&!(t.findIndex((e=>e.mapField===a))<0))return r&&i&&y(i,a,r.cid),!0}return!1},y=(e,t,r)=>{if(!e)throw new Error("Share variable tree is not defined");if("string"!=typeof t)throw new Error("Variable name should be a string");if(!r)throw new Error("ID is required");Array.isArray(e[t])||(e[t]=[]),e[t].includes(r)||e[t].push(r)},b=(e,t,r)=>{var i;let a=!1;const o=null==t?void 0:t.converse;if(o&&o.use&&o.data.length)for(const t of o.data)if((null==t?void 0:t.dependVars)&&t.dependVars.includes(e))return!0;const n=null==t?void 0:t[null==t?void 0:t.type];return((null==n?void 0:n.inputSql)||(null==n?void 0:n.url)||(null==n?void 0:n.headers)||(null==n?void 0:n.params))&&(a=v(n.inputSql||n.url||(null===(i=n.headers)||void 0===i?void 0:i.value)||n.params,r)),a},w=(e,r,i=!1)=>{let a=null;const o=e=>{for(const n of e){if(n.cid===r){a=n,i&&t.remove(e,(e=>e.cid===r));break}if(n.children&&o(n.children),n.dynamicChildren&&Array.isArray(n.dynamicChildren))for(const[,e]of Array.from(n.dynamicChildren))o(e);n.stateChildren&&o(n.stateChildren)}};return o(e),a},D=(e,r,i)=>{let a=!1;const o=e=>{for(let n=0;n<e.length;n++){if(e[n].cid==r){a=e[n],i&&t.remove(e,(e=>e.cid==r));break}if(e[n].children)o(e[n].children);else if(e[n].dynamicChildren){if(e[n].dynamicChildren instanceof Map){let t=Array.from(e[n].dynamicChildren);for(let e=0;e<t.length;e++)if(t[e]instanceof Array){let r=t[e][1];o(r)}}else if(e[n].dynamicChildren instanceof Array){let t=e[n].dynamicChildren;for(let e=0;e<t.length;e++)if(t[e]instanceof Array){let r=t[e][1];o(r)}}}else e[n].stateChildren&&o(e[n].stateChildren)}};return o(e),a||!1};function N(e,t,r){const i={};r&&r.forEach((e=>{(null==e?void 0:e.name)&&(i[e.name]=e.value||e.originvalue)}));try{return new Function("data","vars",e)(t,i)}catch(e){return console.error(e),t}}function k(e,r){let i=t.cloneDeep(r);try{return new Function("data",e)(i)}catch(e){return console.error(e),i}}const S=e=>{let t=window.goFetchList;return t||(window.goFetchList={},t=window.goFetchList),t[e]?!t[e]&&void 0:(t[e]={id:e,time:(new Date).getTime()},!0)},A=e=>{let t=window.goFetchList;t&&t[e]&&delete t[e]},C="anov@2019:helloX",x="anov@2020:helloX";function O(e){let t=i.enc.Utf8.parse(C),r=i.enc.Utf8.parse(x);return i.AES.encrypt(e,t,{iv:r,mode:i.mode.CBC,padding:i.pad.Pkcs7}).toString()}function V(e,t){if(0===e.length)throw new Error("Array is empty.");if(!t)return e[Math.floor(Math.random()*e.length)];if(t.length!==e.length)throw new Error("Length of probabilities array must match length of array.");const r=t.reduce(((e,t)=>e+t),0),i=Math.random()*r;let a=0;for(let r=0;r<e.length;r++)if(a+=t[r],i<a)return e[r];return e[0]}const T=new Blob(["\nfunction proxyObj(originObj) {\n const exposeObj = new Proxy(originObj, {\n has: (target, key) => {\n if (['fetch', 'XMLHttpRequest', 'postMessage'].indexOf(key) >= 0) {\n throw new Error('Illegal operation for key'+key)\n } else {\n return target[key]\n }\n },\n })\n return exposeObj\n}\nfunction compileCode(src) {\n src = 'with (exposeObj) {'+src+'}'\n //console.log(src)\n return new Function('exposeObj', src)\n}\nfunction run(code) {\n let proxy = proxyObj({})\n let result = compileCode(code)(proxy)\n return result\n}\n\nonmessage = (e) => {\n try {\n let result = run(e.data.code)\n postMessage({\n code: 1,\n result,\n })\n } catch (err) {\n postMessage({\n code: -1,\n err,\n })\n }\n}\n"]),F=URL.createObjectURL(T);function E(e,t,r={},i="worker"){return a(this,void 0,void 0,(function*(){try{if("window"==i){let[i,a]=[["data"],[t]];"object"==typeof r&&Object.keys(r).forEach((e=>{i.push(e),a.push(r[e])}));const o=new Function(...i,e);return{success:!0,data:o(...a)}}{let[i,o,n]=[t,r,""];"object"==typeof i&&(i=JSON.stringify(t)),"object"==typeof r&&(o=JSON.stringify(r)),Object.keys(r).forEach((e=>n+=`${e},`));let s=`let data=eval(${i}); \n let app=${JSON.stringify({})};`;s+=n?`let {${n}} = eval(${o}); `:"",s+=`${e}`;let l=yield function(e,t=5e3){return a(this,void 0,void 0,(function*(){let r=new Worker(F);return new Promise(((i,a)=>{const o=()=>{clearTimeout(s),r.removeEventListener("message",n),r.terminate(),r=null},n=e=>{let{code:t,result:r,err:n}=e.data;o(),1===t?i(r):a(n)};r.postMessage({code:e}),r.addEventListener("message",n);let s=setTimeout((()=>{o(),a("timeout")}),t)}))}))}(s);return{success:!0,data:l}}}catch(e){return{success:!1,error:e,data:t}}}))}var R,I,j,P;!function(e){e.StaticFile="staticFile",e.DataSource="datasource"}(R||(R={})),function(e){e.json="application/json;charset=UTF-8",e.form="application/x-www-form-urlencoded; charset=UTF-8"}(I||(I={})),function(e){e.get="GET",e.post="POST",e.put="PUT",e.patch="PATCH",e.delete="DELETE"}(j||(j={}));class q{constructor(e){this.db=null,this.dbName=e.databaseName,this.tableName=e.tableName,this.keyPath=e.keyPath}static getInstance(e){return q.instance||(q.instance=new q(e)),q.instance}init(){return a(this,void 0,void 0,(function*(){return new Promise(((e,t)=>{const r=indexedDB.open(this.dbName,1);r.onerror=e=>{t(e.target.error)},r.onupgradeneeded=e=>{this.db=e.target.result,this.db.objectStoreNames.contains(this.tableName)||this.db.createObjectStore(this.tableName,{keyPath:this.keyPath})},r.onsuccess=t=>{this.db=t.target.result,e()}}))}))}addRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).add(e);i.onsuccess=()=>{t()},i.onerror=e=>{r(e.target.error)}}))}))}deleteRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);i.onsuccess=()=>{t()},i.onerror=e=>{r(e.target.error)}}))}))}updateRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(e);i.onsuccess=()=>{t()},i.onerror=e=>{r(e.target.error)}}))}))}getRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=e=>{r(e.target.error)}}))}))}getAllRecords(){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((e,t)=>{const r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAll();r.onsuccess=()=>{e(r.result)},r.onerror=e=>{t(e.target.error)}}))}))}}q.instance=null,function(e){e[e.FATAL=0]="FATAL",e[e.ERROR=1]="ERROR",e[e.WARN=2]="WARN",e[e.INFO=3]="INFO",e[e.DEBUG=4]="DEBUG",e[e.TRACE=5]="TRACE"}(P||(P={}));const M={databaseName:"GODB",tableName:"go-log",keyPath:"time"};class U{constructor(){this.logLevel=P.INFO,this.indexedDBInstance=q.getInstance(M);try{this.indexedDBInstance.init(),console.log("IndexedDB 初始化成功。")}catch(e){console.error("初始化 IndexedDB 时出错:",e)}}static getInstance(){return U.instance||(U.instance=new U),U.instance}setLogLevel(e){this.logLevel=e}getColor(e){switch(e){case P.FATAL:return"[31;1m";case P.ERROR:return"[31m";case P.WARN:return"[33m";case P.INFO:return"[32m";case P.DEBUG:return"[36m";case P.TRACE:return"[34m";default:return"[0m"}}log(e,t){if(t<=this.logLevel){const r=(new Date).toISOString(),i=`[${r}] [${P[t]}]`,a=this.getColor(t);if(null===window||void 0===window?void 0:window.goDev)console.log(`${a}${i} ${e}[0m`);else{let t=p("anov-go-userInfo"),o=p("anov-go-proid"),n=` [操作人:${null==t?void 0:t.userName} 项目ID:${o}] `;const s={time:r,value:`${e}`};try{this.indexedDBInstance.addRecord(s)}catch(e){console.error("添加记录时出错:",e)}console.log(`${a}${i} ${n} ${e}[0m`)}}}fatal(e){this.log(e,P.FATAL)}error(e){this.log(e,P.ERROR)}warn(e){this.log(e,P.WARN)}info(e){this.log(e,P.INFO)}debug(e){this.log(e,P.DEBUG)}trace(e){this.log(e,P.TRACE)}}const $=U.getInstance(),L=(e,t)=>"string"!=typeof e?Promise.reject(new Error("URL should be a string")):d(e,t),z=d();let H=d();function J(e,r="get",i={},o={}){return a(this,void 0,void 0,(function*(){try{const n={method:j[r],url:e,headers:o,timeout:l};["post","put"].includes(r.toLowerCase())?n.data=t.cloneDeep(i):n.params=t.cloneDeep(i);return/.json$/.test(e)?function(e){return a(this,void 0,void 0,(function*(){try{return(yield z({method:"get",url:e})).data}catch(e){throw console.error("JSON 数据请求:",e),e}}))}(e):function(e){return a(this,void 0,void 0,(function*(){try{return{code:2e4,data:(yield z(e)).data}}catch(e){throw console.error("请求数据发生错误-Error:",e),e}}))}(n)}catch(e){throw console.error("获取数据:Error:",e),e}}))}function G(e,t,r,i){return a(this,void 0,void 0,(function*(){try{const a=window.anUrl||"",o=a+(window.agentPath||"/ds/v1/api-proxy/v1/query"),n=c(r,!0);return yield z({url:o,method:"post",headers:{"Content-Type":"application/json;charset=UTF-8"},data:{body:"post"===e?n:void 0,headers:u(i)?JSON.parse(i):i,method:e,url:t}})}catch(e){throw console.error("代理请求数据:Error:",e),e}}))}function B(e,t,r,i,o){return a(this,void 0,void 0,(function*(){return o?G(t,e,r,i):J(e,t,r,i)}))}function W(e,t="",r){var i,a,o,n;const l=`${null!==(a=null===(i=null===window||void 0===window?void 0:window.BaseUrl)||void 0===i?void 0:i.replace("/management",""))&&void 0!==a?a:""}/ds/data-engine/v1/${e}/zb-query?${`token=${(null===(o=ae("YZH_EXCHANGE_TOKEN"))||void 0===o?void 0:o.YZH_EXCHANGE_TOKEN)||(null===(n=null===window||void 0===window?void 0:window.yzhAuth)||void 0===n?void 0:n.getToken())}&passid=${null===window||void 0===window?void 0:window.gdPassid}`}${(null===window||void 0===window?void 0:window.BASE_RELEASE)?"&preview=1":""}`;let d={};try{d=t?JSON.parse(t):{}}catch(e){d=t||{}}return z({method:"POST",url:l,data:{headers:r,param:d},timeout:s})}const X=(e,t)=>a(void 0,void 0,void 0,(function*(){const r=window.BaseUrl,{dateType:i="",endPeriod:a="",metricsName:o=e,startPeriod:n=""}=t;return H({method:"GET",url:`${r}ds/v1/metrics/v1/data-alarm?dateType=${i}&endPeriod=${a}&metricsName=${o}&startPeriod=${n}`,timeout:s})})),_=(e,t,r)=>a(void 0,void 0,void 0,(function*(){var i;const a=(null===(i=window.BaseUrl)||void 0===i?void 0:i.replace("/management",""))||"";t.newEncryption=!0;const o={staticFile:{method:"get",params:t,url:`${a}/ds/v1/file/v1/${e}/query`},datasource:{method:"post",url:`${a}/ds/v1/database/v1/${e}/query`,data:Object.assign({},t)}}[r];if(!o)throw new Error("Invalid data type provided");return z(Object.assign({timeout:s},o))})),Q=e=>new Promise(((t,r)=>{let i;i=e.originData&&Object.keys(e.originData).length?e.originData:e.data,void 0!==i?t({data:i}):r("Failed to retrieve cdata")})),Y=(e,t,r)=>{try{switch(t){case"api":{let t=se(e,r);return{requestType:t.requestType,url:t.url,params:t.params,headers:t.headers,agency:t.agency}}case"static":return{data:e};case"datasource":{const t=ne(e.inputSql,r);return{dsName:e.dsName,dsType:"1",sql:O(t),filter:e.sqlFilter}}case"staticFile":return{dsName:e.dsName,dsType:e.dsType,sql:""};case"indicator":return{zbId:e.zbId,params:ne(e.params,r),headers:ne(e.headers,r)};case"indicatorCQ":return{zbName:e.zbName,params:ne(e.params,r)};case"packData":return{};default:throw new Error("Invalid type")}}catch(t){console.log("准备请求数据发生错误",t,e)}},K=(e,t)=>a(void 0,void 0,void 0,(function*(){try{switch(t){case"api":return yield B(e.url,e.requestType,e.params,e.headers,e.agency);case"static":return yield Q(e.data);case"datasource":return yield _(e.dsName,{dsType:e.dsType,sql:e.sql,filter:e.filter},"datasource");case"staticFile":return yield _(e.dsName,{dsType:e.dsType,sql:e.sql},"staticFile");case"indicator":return yield W(e.zbId,e.params,e.headers);case"indicatorCQ":return yield X(e.zbName,e.params);case"packData":return{};default:throw new Error("Invalid type")}}catch(e){return console.warn(e,"执行请求并获取数据发生错误"),yield new Promise(((e,t)=>{e({error:!0})}))}})),Z=(e,t,r,i=[],o=!1)=>a(void 0,void 0,void 0,(function*(){const a=t||e.tmpData.source.dataType,n=e.tmpData.source["indicatorCQ"==a?"indicator":a];if("globalData"===a){const e=i.find((e=>e.key===n.id||e.key===n.key)),t=p(n.id);if(t&&!o)return t.data;if(e){let t=yield ee(e,r),i={key:n.id,data:t};return h(n.id,i),t}return}const s=Y(n,a,r),l=yield K(s,a);return(null==l?void 0:l.data)?l.data:l})),ee=(e,t)=>a(void 0,void 0,void 0,(function*(){let r=Object.assign({},{tmpData:{source:e.value}});const i=r.tmpData.source.type,a=r.tmpData.source[i],o=Y(a,i,t),n=yield K(o,i);return yield te(n.data,r,!0,t)})),te=(e,r,i=!0,o)=>a(void 0,void 0,void 0,(function*(){try{const{converse:n,mapFields:s}=r.tmpData.source;return n&&n.use&&i?yield new Promise(((r,i)=>{const s=function(e,r,i,o,n){return a(this,void 0,void 0,(function*(){let i,a=e,{use:n,data:s}=t.cloneDeep(r);if(n)for(let e=0;e<s.length;e++)if(s[e].use){let r=s[e].dependVars,n={};o&&n&&r&&r.length&&r.map((e=>{let r=t.cloneDeep(o).filter((t=>{let r=t.mapField==e;return r&&(n[e]=t.value),r}));r&&0!=r.length||(n[e]="")})),i=yield E(s[e].code,a,n,s[e].mode?s[e].mode:"worker"),a=i.data}return a}))}(e,n,0,o);r(s)})):yield new Promise(((t,r)=>{t(e)}))}catch(t){return console.error("执行过滤器发生错误:"+t),yield new Promise(((t,r)=>{t(e)}))}})),re=(e,t,r)=>{const{source:i}=e.tmpData,a=i.type;r?("static"===a&&i[a]&&(i[a].originData=r),"indicatorCQ"===a?i.indicator.data=t:i[a].data=t):"indicatorCQ"===a?i.indicator.data=t:i[a].data=t,e.source=t},ie=(e,t,r=[],i,o,n)=>a(void 0,void 0,void 0,(function*(){try{let a=e.tmpData.source.type,s=yield Z(e,a,r,i,n||!1);if(null==s||!s)return o&&o({error:!0}),Promise.resolve({error:!0});let l=yield te(s,e,t,r);return re(e,l),o&&o(l),(null==e?void 0:e.cid)&&A(e.cid),Promise.resolve(l)}catch(e){return o&&o(e),$.error("Error in updateComData"),console.error("Error in updateComData:",e),Promise.reject(e)}})),ae=e=>{const t={};if(e&&e.includes("?")){const r=e.split("?")[1].split("&");for(let e of r){const[r,i]=e.split("=").map(decodeURIComponent);t[r]=i}}return t},oe=e=>{try{return(null==e?void 0:e.value)&&"string"==typeof e.value?JSON.parse(e.value):"string"==typeof e?JSON.parse(e):e}catch(t){return e}},ne=(e,t)=>{if(!t)return oe(e);if("string"==typeof e){if(""===e.trim())return"";try{if("string"!=typeof JSON.parse(e))return ne(JSON.parse(e),t);{let r=e.replace(/@(\w+)|{{(\w+)}}/g,((e,r,i)=>{const a=r||i,o=t.find((e=>e.mapField===a));return o?o.value||o.originalValue||"":e}));return oe(r)}}catch(r){let i=e.replace(/@(\w+)|{{(\w+)}}/g,((e,r,i)=>{const a=r||i,o=t.find((e=>e.mapField===a));return o?o.value:e}));return oe(i)}}else{if(Array.isArray(e))return e.map((e=>ne(e,t)));if("object"==typeof e&&null!==e){const r={};for(let i in e)r[i]=ne(e[i],t);return oe(r)}}return oe(e)},se=(e,t)=>{const r=e.agency,i=e,{url:a=null,headers:o,params:n,requestType:s}=i,l=a?ne(a,t):void 0,d=o&&o.use?ne(o.value,t):{};return{url:l,requestType:s,params:n?ne(n,t):{},headers:d,agency:r}},le=(e,t,r,i,o)=>a(void 0,void 0,void 0,(function*(){if(e&&e.length)for(const a of e){b(t,a.value,r)&&(yield ie({tmpData:{source:{type:"globalData",globalData:{id:a.key}}}},!0,r,e,(e=>{console.log("数据更新成功-变量改变全局数据跟新")}),!0),g(i,(t=>{var i,n,s;if("globalData"===(null===(n=null===(i=null==t?void 0:t.tmpData)||void 0===i?void 0:i.source)||void 0===n?void 0:n.type)){(null===(s=null==t?void 0:t.tmpData)||void 0===s?void 0:s.source.globalData).id===a.key&&ie(t,!0,r,e,(e=>{o(t,e)}),!1)}})))}})),de=(e,t,r,i,o)=>a(void 0,void 0,void 0,(function*(){e&&(yield ie({tmpData:{source:{type:"globalData",globalData:{id:e.key}}}},!0,t,r,(e=>{console.log("数据更新成功-数据源编辑")}),!0),g(i,(i=>{var a,n,s;if("globalData"===(null===(n=null===(a=null==i?void 0:i.tmpData)||void 0===a?void 0:a.source)||void 0===n?void 0:n.type)){(null===(s=null==i?void 0:i.tmpData)||void 0===s?void 0:s.source.globalData).id===e.key&&ie(i,!0,t,r,(e=>{o(i,e)}),!1)}})))}));class ce{constructor(e,t){this.isUpdating=!1,this.des=e.des,this.field=e.field,this.id=e.id,this.key=e.key,this.mapping=e.mapping,this.mapField=e.mapField,this.type=e.type,this.originalValue=e.originalValue,this.model=(null==e?void 0:e.model)?null==e?void 0:e.model:1,this.converter=e.converter,this.converterCode=e.converterCode,this.fork=e.fork,this.delayUpdate=!!(null==e?void 0:e.delayUpdate),t&&(this.globalVariables=t),e.fork&&(this.model=5,this.forkValue=e.forkValue,this.originalValue=this.getForkedValue())}get value(){return this.fork&&(this.originalValue=this.getForkedValue()),this.converter&&this.converterCode?k(this.converterCode,this.originalValue):this.originalValue}togglePropertyState(e){let t=Object.prototype.hasOwnProperty.call(this,e);this[e]=!t||!e}getForkedValue(){if(this.forkValue&&Array.isArray(this.forkValue))return this.forkValue.map((e=>{const t=this.globalVariables.get(e);return t?t.value:null}));if(this.forkValue){const e=this.globalVariables.get(this.forkValue);return e?e.value:null}return null}updateValue(e,t){var i;const a=Object.assign({},this,e);this.des=a.des,this.field=a.field,this.mapping=a.mapping,this.type=a.type,this.originalValue=a.originalValue,this.converter=a.converter,this.converterCode=a.converterCode,this.fork=a.fork,this.delayUpdate=null==a?void 0:a.delayUpdate,this.model=null==a?void 0:a.model,e.id&&(this.id?"string"==typeof this.id?e.id instanceof Array?this.id=r([this.id,...e.id]):this.id=[this.id,e.id]:this.id instanceof Array&&(e.id instanceof Array?this.id=r([...this.id,...e.id]):this.id=r([...this.id,e.id])):this.id=e.id),e.fork&&(this.model=5,this.forkValue=null!==(i=e.forkValue)&&void 0!==i?i:this.forkValue,this.originalValue=this.getForkedValue()),t&&t(this)}updateWidthOriginalValue(e,t){var r;this.originalValue=e,this.fork&&(this.forkValue=null!==(r=this.forkValue)&&void 0!==r?r:this.forkValue,this.originalValue=this.getForkedValue()),t&&t(this)}renew(e){e&&e(this)}static create(e,t){return new ce(e,t)}}class ue{constructor(){this.variables=new Map,this.globalObservers=[],this.url=window.location.search,this.list=[]}clearVars(){this.list=[],this.variables.clear()}togglePropertyState(e,t,r){try{let i=this.getVariable(e);if(!i)throw new Error("没有找到相应的变量!");i.togglePropertyState(t),this.addToObjectArray(this.list,i),r&&r()}catch(e){console.error(e)}}static getInstance(){return ue.instance||(ue.instance=new ue),ue.instance}getFullUrl(){this.url=window.location.search}getAllUrlParams(){const e=new URLSearchParams(window.location.search),t={};for(const[r,i]of e.entries())t[r]=i;return t}delVariable(e,t){this.variables.delete(e),this.list=this.list.filter((t=>t.mapField!=e)),t&&t()}addUrlParamsToGlobalVars(){this.getFullUrl();let e=this.getAllUrlParams(),t=Object.keys(e),r=[];for(const i of t)r.push({mapField:i,originalValue:e[i],model:4});if(r.length)for(const e of r)this.addVariable(e)}addVariables(e){Array.isArray(e)?e.map(((e,t)=>{this.addVariable(e)})):this.addVariable(e),this.addUrlParamsToGlobalVars()}addVariable(e,t){if(!e||!(null==e?void 0:e.mapField))return console.error(e+"参数不合法!"),!1;if(this.isVariableNameExist(e.mapField)){let r=this.getVariable(e.mapField);return this.sameValue(r,e)?r:(this.editVariable(e,t),!1)}const r=ce.create(e,this.variables);return this.variables.set(r.mapField,r),this.addToObjectArray(this.list,r),t&&t(r),this.notifyGlobalObservers(r),r}toJSON(e){try{return!!e&&JSON.stringify(e)}catch(e){return!1}}sameValue(e,t){if(e.mapfield!==t.mapfield)return!1;for(const r in t)if(!(["mapfield","field","key","value","name","globalVariables"].includes(r)||r in e&&e[r]==t[r]))return!1;return!0}creatVarJson(e){const{des:t,field:r,id:i,key:a,mapping:o,mapField:n,type:s,value:l,originalValue:d,model:c,converter:u,converterCode:h,fork:p,forkValue:m,update:f,delayUpdate:g}=e,v={};return void 0!==t&&(v.des=t),void 0!==r&&(v.field=r),void 0!==i&&(v.id=i),void 0!==a&&(v.key=a),void 0!==o&&(v.mapping=o),void 0!==n&&(v.mapField=n),void 0!==s&&(v.type=s),void 0!==l&&(v.value=l),void 0!==d&&(v.originalValue=d),void 0!==c&&(v.model=c),void 0!==u&&(v.converter=u),void 0!==h&&(v.converterCode=h),void 0!==p&&(v.fork=p),void 0!==m&&(v.forkValue=m),void 0!==f&&(v.update=f),void 0!==g&&(v.delayUpdate=g),v}addToObjectArray(e,t){let r=!1;for(let i=0;i<e.length;i++)if(e[i].mapField==t.mapField){e[i]=this.creatVarJson(t),r=!0;break}r||e.push(t)}editVariable(e,t){const r=this.getVariable(e.mapField);if(r&&this.isVariableNameExist(e.mapField)){if(this.sameValue(r,e))return}const i=e=>{if(!e.isUpdating){e.isUpdating=!0,this.notifyGlobalObservers(e);this.isMapFieldInForkValues(e.mapField).forEach((e=>{let t=this.getVariable(e.mapField);t&&t.renew((e=>{this.addToObjectArray(this.list,e),this.notifyGlobalObservers(e)}))})),this.addToObjectArray(this.list,e),t&&t(e),e.isUpdating=!1}};r?r.updateValue(e,i):this.addVariable(e,i)}getForkList(e){let t=this.isMapFieldInForkValues(e);return t||[]}editVariableForValue(e,t,r){const i=this.getVariable(e),a=e=>{if(!e.isUpdating){e.isUpdating=!0,this.notifyGlobalObservers(e);this.isMapFieldInForkValues(e.mapField).forEach((e=>{let t=this.getVariable(e.mapField);t&&t.renew((e=>{this.addToObjectArray(this.list,e),this.notifyGlobalObservers(e)}))})),this.addToObjectArray(this.list,e),r&&r(e),e.isUpdating=!1}};i&&i.updateWidthOriginalValue(t,a)}isMapFieldInForkValues(e){return this.getAllVariables().filter((e=>e.fork&&e.forkValue)).filter((t=>t.forkValue==e||Array.from(t.forkValue).includes(e)))}isVariableNameExist(e){return this.variables.has(e)}checkExist(e,t){if("string"==typeof e&&this.isVariableNameExist(e)){let r=this.getVariable(e);return t==r.id&&!r.id.includes(t)&&[{key:e}]}if(Array.isArray(e)){const r=e.filter((e=>{let r=this.getVariable(e);return this.isVariableNameExist(e)&&t!=r.id&&!(r.id&&r.id.includes(t))})).map((e=>({key:e})));return!!r.length&&r}return!1}getVariable(e){return this.variables.get(e)}getVariableForId(e){var r;let i=[];for(const[,t]of this.variables)(t.id===e||(null===(r=t.id)||void 0===r?void 0:r.includes(e)))&&i.push(t);return t.uniq(i)}getAllVariables(e=!1){return this.addUrlParamsToGlobalVars(),e?(this.list=Array.from(this.variables.values()),this.list):[...this.list]}restoreVariables(e){e.forEach((e=>{this.addVariable(e)}))}registerGlobalObserver(e){this.globalObservers.push(e)}notifyGlobalObservers(e){this.globalObservers.forEach((t=>{t.update(e)}))}}ue.instance=null;const he=ue.getInstance(),pe=(e,t)=>Array.isArray(t)?t.some((t=>e&&(void 0!==e[t]||e.hasOwnProperty(t)))):"string"==typeof t&&(e&&(void 0!==e[t]||e.hasOwnProperty(t))),me=(e,t,r,i)=>{const a=((e,t,r,i)=>{var a;let o;if(pe(e,null==t?void 0:t.field)||pe(e,null==t?void 0:t.forkValue))o=e[null==t?void 0:t.field]||"";else if(pe(e.data,null==t?void 0:t.field)||pe(e.data,null==t?void 0:t.forkValue))o=e.data[null==t?void 0:t.field]||"";else{const e=w(r,i),n=(null===(a=null==e?void 0:e.tmpData)||void 0===a?void 0:a.actions)||[];for(const e of n){const r=e.vars.find((e=>(null==e?void 0:e.mapField)===(null==t?void 0:t.mapField)));if(r){o=r.value;break}}}return o})(e,t,r,i);return void 0!==a?a:t.value},fe=(e,t,r,i,a,o,n,s,l)=>{var d;switch(e.type){case"link":let c=ne(e.link,o);window.open(c,e.target);break;case"page":if(null===(d=null==e?void 0:e.params)||void 0===d?void 0:d.length)for(let t=0;t<e.params.length;t++){const r=e.params[t],i=o.find((e=>e.mapField==r.mapField));i&&(r.value=i.value)}l&&l(e);break;case"dynamic":((e,t,r,i,a)=>{const o=e.dynamic||[];for(const n of o){if(e.id!==t.cid)continue;const o=w(r,n.pid);o&&(o.activeDynamic=n.name,o.isShow=n.visible||!i||e.index===t.index-1,a({cid:o.cid,flag:n.visible}))}})(e,t,r,i,a);break;case"toggle":((e,t,r,i,a)=>{const o=e.children||[];for(const r of o){const o=r.visible&&(!i||e.index===t.index-1);a({cid:r.cid,flag:o})}})(e,t,0,i,a);break;case"update":((e,t,r,i,a)=>{const o=e.children||[];for(const e of o){const o=w(t,e.cid);o&&ie(o,!0,r,i,(e=>{a({cid:o.cid,data:e})}))}})(e,r,o,n,s)}},ge=(e,r,i,a,o,n,s,l,d,c)=>{const{cid:u,actions:h,index:p}=o,{eventName:m,mode:f}=h,g=2===f;((e,r,i,a,o,n)=>{let s=he.getVariableForId(r.cid);if(null==s?void 0:s.length)for(const l of s)if(l.type==e){let e=me(r,l,i,a);he.editVariableForValue(l.mapField,e,(()=>{let e=o[l.mapField]||[],r=he.getForkList(l.mapField);if(r)for(const i of r){let r=o[i.mapField];e=t.concat(e,r)}n&&n(l,t.uniq(e))}))}})(m,o,a,u,i,((e,t)=>{if(le(d,e.mapFile,he.getAllVariables(),a,((e,t)=>{s({cid:e.cid,data:t})})),null==t?void 0:t.length)for(const r of t){e.eventSourceId=r;const t=w(a,r);!(null==e?void 0:e.delayUpdate)&&t&&ie(t,!0,he.getAllVariables(),d,(e=>{s({cid:t.cid,data:e})}))}}));const v=((e,t,r,i,a)=>e.filter((e=>e.id===t&&e.eventType===r&&(!a||parseInt(e.index||"0")+1===parseInt(i||"0")))))(e,u,m,p,g);for(const e of v)fe(e,o,a,g,n,he.getAllVariables(),d,s,l)},ve=(e,t={})=>{let r={},i={type:"static",converse:{use:!1,data:[]},static:{data:e},api:{requestType:"get",url:"",headers:{use:!1,value:""},params:"",agency:!1,cookie:!0,autoUpdate:{open:!1,time:10},data:""}};return Object.assign(r,i,t),r},ye=(e,r)=>{let{option:i,actions:a,data:o,optionDes:n,actionsDes:s,source:l,theme:d}=((e,r)=>{let{option:i,actions:a,data:o,optionDes:n,actionsDes:s,source:l,theme:d}=t.cloneDeep(r[e]);return{option:i,actions:a,data:o,optionDes:n,actionsDes:s,source:l,theme:d}})(e,r);return{iconClass:null,isAssembly:null,source:o,cid:(Math.random().toString().substr(3,10)+Date.now()).toString(),isLock:!1,isShow:!0,tmpData:{option:i,source:ve(o,l),actions:a},baseData:we(),dynamic:null,filePath:"",origin:"anov-ui",name:"",componentType:"",viewComName:e,optionComName:"AnOptionPanel",dataComName:"AnSourcePanel",eventComName:"AnActionsPanel",assemblyDeveloper:"",devEmail:"",version:"",devDept:""}},be=(e,r,i)=>{let a=ye(e,r);return i?t.merge(a,i):a},we=e=>{let t={left:0,top:0,width:100,height:100,angle:0,penetrate:0,opacity:100,perspective:100,rotateX:0,rotateY:0,rotateZ:0,transformOriginX:"center",transformOriginY:"center",transformSwitch:!1};return e?Object.assign(t,e):t};class De{constructor(e,t,r){this.theme=null,this.plant=null,this.list=[],this.titleHeqadeHeight=70,this.clearance=3,this.checkComponentIntersection=(e,t,r=10)=>{const i=e.left,a=e.left+e.width,o=e.top,n=e.top+e.height,s=t.left,l=t.left+t.width,d=t.top,c=t.top+t.height,u=i<l&&a>s&&o<c&&n>d,h=Math.abs(e.left+e.width/2-(t.left+t.width/2)),p=Math.abs(e.top+e.height/2-(t.top+t.height/2));return u||h<r&&p<r},this.calculateCombinedComponent=e=>{if(0===e.length)return{left:0,top:0,width:0,height:0};let t=e[0].left,r=e[0].top,i=e[0].left+e[0].width,a=e[0].top+e[0].height;for(let o=1;o<e.length;o++){const n=e[o];t=Math.min(t,n.left),r=Math.min(r,n.top),i=Math.max(i,n.left+n.width),a=Math.max(a,n.top+n.height)}return{left:t,top:r,width:i-t,height:a-r}},this.getAnTextNormaltText=e=>{var t,r;try{return null===(r=null===(t=null==e?void 0:e.tmpData)||void 0===t?void 0:t.option)||void 0===r?void 0:r.text}catch(e){return console.error("配置优化(ConfigOptimizer):",e),""}},this.initProp(e),this.upgradePlant(),this.staticComponentData=t,this.upgradeHeaderComponent(),r&&Object.assign(this,r)}isStringOrObject(e){return"string"==typeof e?"string":"object"==typeof e&&null!==e&&"object"}initProp(e){try{let t,r=this.isStringOrObject(e);if(r&&"string"===r)t=JSON.parse(e);else{if(!r||"object"!==r)throw new Error(`initProp fn error :-- 传入参数${e}不合法!`);t=e}if(t){this.originData=t;const{theme:e,plant:r,list:i}=t;this.theme=e,this.plant=r,this.list=i,this.filterFileGroup()}}catch(e){console.error("配置优化(ConfigOptimizer):",e)}}upgradePlant(){this.plant&&(this.plant.option.bg={type:1,code:"70942ec525344c96aa32b81b2c9155f6",path:"/anov-prod/resources/page/png/bg22 科技星球背景.png",thumb:"/anov-prod/resources/page/thumbnail/1e48f8fb26ec4edfb1a0f499627e84fc.png"})}areComponentsIntersecting(e,t){let r=e.baseData,i=t.baseData;const a=Math.max(0,Math.min(r.left+r.width,i.left+i.width)-Math.max(r.left,i.left)),o=Math.max(0,Math.min(r.top+r.height,i.top+i.height)-Math.max(r.top,i.top));return a>0&&o>0}filterFileGroup(){this.list=t.cloneDeep(this.list).map((e=>{var t,r;if(1===(null===(t=null==e?void 0:e.children)||void 0===t?void 0:t.length)&&!(null===(r=null==e?void 0:e.children[0])||void 0===r?void 0:r.children)){const t=e.children[0],{left:r,top:i}=e.baseData;return t.baseData.left=r,t.baseData.top=i,t}return e}))}getText(e,t,r){const i=document.createElement("canvas").getContext("2d");if(!i)throw new Error("Failed to get 2D context from canvas.");i.font=`${r}px ${t}`;return i.measureText(e).width}calculateMaxWidths(e){const t=Math.min(...e.map((e=>e.width))),r=[];let i=[],a=e[0].width;for(const o of e){const e=o.width;Math.abs(e-a)<=t?i.push(e):(i.length>0&&r.push(i),i=[e]),a=e}i.length>0&&r.push(i);const o=[];for(const e of r){const t=Math.max(...e);o.push(t)}return o}findClosestValue(e,t){let r=t[0],i=Math.abs(e-r);for(const a of t){const t=Math.abs(e-a);t<i&&(i=t,r=a)}return r}adjustHeightAndTop(e,t){const r=t-e.height;return Object.assign(Object.assign({},e),{height:t,top:e.top-r/2})}findNearestComponent(e,r,i){let a=null,o=1/0;r.tmpData.option.textNormal.text;try{const n=t.cloneDeep(e).sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===r.cid||"AnTextNormal"===e.viewComName||i&&i.includes(e.cid)))),s=t.cloneDeep(r).baseData;s.top,s.height;for(const e of n){const t=e.baseData;t.top,t.height;if(s.left<t.left+t.width&&s.left+s.width>t.left){const r=t.top-s.top;r<o&&r<100&&(o=r,a=e)}}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return a}findNearestComponentForPoint(e,t,r){let i=null,a=1/0;t.tmpData.option.textNormal.text;try{const o=e.sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===t.cid||"AnTextNormal"===e.viewComName||r&&r.includes(e.cid)))),n=t.baseData;n.top,n.height;for(const e of o){const t=e.baseData;let r=this.getDistance(n.left,n.top+n.height,t.left,t.top);r<a&&r<n.width&&(a=r,i=e)}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return i}findNearestComponentForTitlePoint(e,t,r){let i=null,a=1/0;t.tmpData.option.textNormal.text;try{const o=e.sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===t.cid||"AnTextNormal"===e.viewComName||r&&r.includes(e.cid)))),n=t.baseData;n.top,n.height;for(const e of o){const t=e.baseData;let r=this.getDistance(n.left,n.top+n.height,t.left,t.top);r<a&&r<n.width&&t.top-n.top>100&&(a=r,i=e)}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return i}findNearestTitleForPoint(e,t,r){let i=null,a=1/0;t.tmpData.option.textNormal.text;try{const o=e.sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===t.cid||"AnTextNormal"===e.viewComName||r&&r.includes(e.cid)))),n=t.baseData;n.top,n.height;for(const e of o){const t=e.baseData;let r=t.top-n.top;r<a&&r<n.width&&t.top-n.top>100&&(a=r,i=e)}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return i}getDistance(e,t,r,i){return Math.sqrt(Math.pow(r-e,2)+Math.pow(i-t,2))}findNearestComponent2(e,r,i){let a=null,o=1/0,n=t.cloneDeep(e).sort(((e,t)=>e.baseData.top-t.baseData.top));try{const e=n.filter((e=>!(e.cid===r.cid||"AnTextNormal"===e.viewComName||i&&i.includes(e.cid)))),s=t.cloneDeep(r).baseData,l=s.top+s.height;for(const t of e){const e=t.baseData,r=e.top+e.height;if(s.left<e.left+e.width&&s.left+s.width>e.left){const e=r-l;e>=0&&e<o&&(o=e,a=t)}}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return a}verticalDistance(e,t){e.left,e.width;const r=e.top+e.height,i=(t.left,t.width,t.top);return Math.abs(r-i)}extractAmount(e){const t=e.match(/(\d{1,3}(?:,\d{3})*)(\D+)/);if(t){const e=t[1].replace(/,/g,"");return[parseInt(e,10),t[2].trim()]}return[!1,!1]}getAnTextNormal(){return this.list.filter((e=>"AnTextNormal"==e.viewComName))}getAnDeckTitle3(){return this.list.filter((e=>"AnDeckTitle3"==e.viewComName)).sort(((e,t)=>e.baseData.left-t.baseData.left))}judgeAnOdometer(){let e=this.getAnTextNormal().sort(((e,t)=>e.baseData.left-t.baseData.left)),t=[],r=new Set;for(const i of e){if(r.has(i.cid))continue;let a=[];for(const t of e){if(!r.has(t.cid)&&i.cid!=t.cid){this.checkComponentIntersection(i.baseData,t.baseData)&&(r.add(t.cid),r.add(i.cid),a.push(t))}}t.push([i,...a])}let i=[];for(const e of t)for(const t of e){let r=this.getAnTextNormaltText(t);this.extractAmount(r).every((e=>e))&&i.push(e)}return i}createAnOdometer(){var e,r;let i=this.judgeAnOdometer();for(const a of i){let i,o,n,s=this.calculateCombinedComponent(a.map((e=>e.baseData)));for(const e of a){let r=this.getAnTextNormaltText(e),a=this.extractAmount(r);a.every((e=>!e))&&(i=r),a.every((e=>e))&&(o=a[0],n=a[1]),t.remove(this.list,(t=>t.cid==e.cid))}let l=be("AnIndicatorNormal",this.staticComponentData,t.cloneDeep({baseData:s}));(null===(r=null===(e=null==l?void 0:l.tmpData)||void 0===e?void 0:e.source)||void 0===r?void 0:r.static)&&(l.tmpData.source.static.data={text:i,num:o,unit:n},l.tmpData.source.static.originData={text:i,num:o,unit:n}),this.list.push(l)}}upgradeHeaderComponent(){for(let e=0;e<this.list.length;e++){const t=this.list[e];"AnDeckHeader3"==t.viewComName&&(t.baseData.left=0,t.baseData.top=0)}}upgradeTitleComponent(){let e=this.getAnDeckTitle3().map((e=>e.baseData)),t=this.calculateMaxWidths(e);for(let e=0;e<this.list.length;e++){const r=this.list[e];if("AnDeckTitle3"==r.viewComName){let e=this.findClosestValue(r.baseData.width,t);r.baseData.width=e>300?e:300,r.baseData=this.adjustHeightAndTop(r.baseData,this.titleHeqadeHeight)}}this.removeErroneousComponents()}containsFractionStructure(e){return/\b\d+\/\d+\b/.test(e)}removeErroneousComponents(){let e=this.getAnDeckTitle3(),t=[];for(let r=0;r<e.length;r++){const i=e[r];let a=i.tmpData.option.textNormal.text;if(this.containsFractionStructure(a))for(let r=0;r<e.length;r++){const a=e[r];if(i.cid!=a.cid){this.areComponentsIntersecting(i,a)&&t.push(i.cid)}}}this.list=this.list.filter((e=>!t.includes(e.cid)))}upgradeGroupComponent(){try{let e=this.getAnDeckTitle3(),t=this.list.filter((e=>"AnDeckTitle3"!=e.viewComName&&"AnDeckHeader3"!=e.viewComName&&"AnTextNormal"!=e.viewComName)),r=[],i=[];for(let a=0;a<e.length;a++){const o=e[a];let n=this.findNearestComponentForPoint(t,o,r);if(n&&n.cid&&r.push(n.cid),n){o.baseData.left=n.baseData.left;let t=this.upgradeComponentHeight(o,e,i);t&&t>=30&&(n.baseData=Object.assign({},n.baseData,{top:o.baseData.top+o.baseData.height+this.clearance}))}}}catch(e){console.error("配置优化(ConfigOptimizer):",e)}}upgradeComponentHeight(e,r,i=[]){const a=e;let o=this.findNearestTitleForPoint(t.cloneDeep(r),a);return o?o.baseData.top-a.baseData.top-this.titleHeqadeHeight:1080-a.baseData.top-this.titleHeqadeHeight}getData(){return this.originData.list=this.list,this.originData.plant=this.plant,this.originData}}const Ne=new class{randomNum(e,t){return Math.floor(Math.random()*(t-e+1))+e}generateRandomIntArray(e,t,r,i){const a=[];for(let i=0;i<e;i++){const e=this.randomNum(t,r);a.push(e)}return i&&"asc"===i?a.sort(((e,t)=>e-t)):i&&"desc"===i?a.sort(((e,t)=>t-e)):a}randomString(e,t){const r="abcdefghijklmnopqrstuvwxyz",i=this.randomNum(e,t);let a="";for(let e=0;e<i;e++){const e=Math.floor(26*Math.random());a+=r.charAt(e)}return a}generateRandomNameArray(e,t,r){const i=[];for(let a=0;a<e;a++){const e=this.randomString(t,r);i.push(e)}return i}pick(e,t){const r=void 0!==t?e.filter((e=>e!==t)):e;return r[Math.floor(Math.random()*r.length)]}},ke=()=>{const e=[],t=Ne.pick([!0,!1]);let r=Ne.randomNum(3,20);const i=Ne.pick([null,null,null,{}]);let a=Ne.pick(["asc","desc",void 0,void 0,void 0]);for(let o=0;o<Ne.randomNum(1,9);o++)e.push({data:Ne.generateRandomIntArray(r,0,300,a),type:"line",smooth:t,symbolSize:Ne.randomNum(1,10),lineStyle:{width:Ne.randomNum(1,4)},areaStyle:i});return{xAxis:{type:"category",show:!1,boundaryGap:!1,data:Ne.generateRandomNameArray(r,3,6)},grid:{left:0,top:0,bottom:0,right:0},yAxis:{show:!1,type:"value"},series:e}},Se=(e,t)=>{let r={type:e,show:!1};return"category"===e&&(r.data=Ne.generateRandomNameArray(t,3,6)),r},Ae=()=>{const e=[],t=Ne.pick([!0,!1]);let r=Ne.randomNum(3,20);const i=Ne.pick([null,null,null,{}]);let a=Ne.pick(["asc","desc",void 0,void 0,void 0]),o=Ne.randomNum(1,9),n=Ne.pick([!0,!1]);for(let s=0;s<o;s++){let o={data:Ne.generateRandomIntArray(r,0,300,a),type:"bar",smooth:t,stack:n,areaStyle:i};e.push(o)}let s=Ne.pick(["value","category"]),l=Ne.pick(["value","category"],s);return{xAxis:Se(s,r),grid:{left:0,top:0,bottom:0,right:0},yAxis:Se(l,r),series:e}},Ce=()=>{const e=[];let t=Ne.randomNum(3,20);Ne.pick([null,null,null,{}]);let r=Ne.pick(["asc","desc",void 0,void 0,void 0]),i=Ne.pick([1,2]),a=[Ne.pick(["10%","20%","30%","40%","50%","60%","70%","80%"]),Ne.pick(["90%","100%"])];return e.push({data:Ne.generateRandomIntArray(t,3,20,r),type:"pie",radius:1==i?"100%":a,roseType:1==i?Ne.pick(["area",null,null]):null,padAngle:1==i?0:Ne.randomNum(1,5),startAngle:1==i?Ne.pick([0,180]):0,endAngle:360,label:{show:!1},itemStyle:{borderRadius:3}}),{grid:{left:0,top:0,bottom:0,right:0},series:e}},xe=()=>{const e=[];Ne.pick([!0,!1]),Ne.randomNum(3,20),Ne.pick([null,null,null,{}]),Ne.pick(["asc","desc",void 0,void 0,void 0]);for(let t=0;t<Ne.randomNum(1,20);t++){let t=Ne.randomNum(3,Ne.randomNum(3,20)),r=[];for(let e=0;e<t;e++){let e=[];for(let t=0;t<2;t++)e.push(Ne.randomNum(1,30));r.push(e)}e.push({type:"scatter",symbolSize:Ne.randomNum(3,30),data:r})}return{xAxis:{show:!1},grid:{left:0,top:0,bottom:0,right:0},yAxis:{show:!1,type:"value"},series:e}},Oe=()=>{const e=[],t=Ne.pick(["polygon","circle"]);let r=Ne.randomNum(1e4,99999),i=Ne.randomNum(3,10),a=[];for(let e=0;e<i;e++)a.push({name:Ne.randomString(4,8),max:r});for(let t=0;t<Ne.randomNum(2,10);t++)e.push({value:Ne.generateRandomIntArray(i,1e4,r),name:Ne.randomString(4,8)});return{radar:{shape:t,indicator:a,axisName:{show:!1},radius:"100%"},grid:{left:0,top:0,bottom:0,right:0},series:[{type:"radar",symbol:"none",lineStyle:{width:1},data:e}]}},Ve=()=>{const e=[];for(let t=0;t<Ne.randomNum(4,15);t++)e.push({value:Ne.randomNum(1,100),name:Ne.randomString(4,8)});return{grid:{left:0,top:0,bottom:0,right:0},series:[{type:"funnel",left:"0%",top:0,bottom:0,width:"100%",min:0,minSize:"0%",maxSize:"100%",label:{show:!1,position:"inside"},sort:Ne.pick(["descending","ascending"]),gap:2,lineStyle:{width:1},data:e}]}};let Te=Ne.randomNum(5,20);const Fe={width:Te};Ne.pick([!0,!1])&&(Fe.color=[[.3,"#67e0e3"],[.7,"#37a2da"],[1,"#fd666d"]]);class Ee{constructor(){this.names=["line","bar","pie","scatter","radar","funnel","gauge"]}static getInstance(){return Ee.instance||(Ee.instance=new Ee),Ee.instance}createLine(){switch(Ne.pick(this.names)){case"line":return{type:"line",typeNum:1,option:ke()};case"bar":return{type:"bar",typeNum:2,option:Ae()};case"pie":return{type:"pie",typeNum:3,option:Ce()};case"scatter":return{type:"scatter",typeNum:4,option:xe()};case"radar":return{type:"radar",typeNum:5,option:Oe()};case"funnel":return{type:"funnel",typeNum:6,option:Ve()};case"gauge":return{type:"gauge",typeNum:7,option:{grid:{left:0,top:0,bottom:0,right:0},series:[{type:"gauge",radius:"100%",detail:{formatter:"{value}"},progress:{show:Ne.pick([!0,!1]),width:Te},axisLine:{lineStyle:Fe},data:[{value:Ne.randomNum(1,100),name:"SCORE"}]}]}}}}}Ee.instance=null;const Re=Ee.getInstance();const Ie=new class{constructor(){this.directions=["row","row"],this.direction="column",this.splitNumbers=24,this.margin=[0,0]}baseLayout(e){const t=(null==e?void 0:e.maRrows)?null==e?void 0:e.maRrows:this.splitNumbers,r=(null==e?void 0:e.colNum)?null==e?void 0:e.colNum:this.splitNumbers,i=e.wrapWidth/r,a=e.wrapHeight/t;let o=V(this.directions);o&&(this.direction=o);let n=[];if("row"===this.direction){let e=V([3,4]);n=this.simulateRandomSegments(24,4,12,e)}else{let e=V([2,3]);n=this.simulateRandomSegments(24,4,6,e)}let s=[],l=[];if("row"===this.direction){for(let e=0;e<n.length;e++)if(0==e)s.push({x:0,y:0,w:n[e],h:24,i:e,wStep:i,hStep:a});else{let t=s[e-1].x;s.push({x:n[e-1]+t,y:0,w:n[e],h:24,i:e,wStep:i,hStep:a})}let e=V([2,3]),t=this.simulateRandomSegments(24,6,12,e);for(let e=0;e<s.length;e++){const r=s[e];for(let o=0;o<t.length;o++){const n=t[o];l.push({x:r.x,y:n,w:r.w,h:n,i:10*e+o,wStep:i,hStep:a})}}}else{for(let e=0;e<n.length;e++)if(0==e)s.push({x:0,y:0,w:24,h:n[e],i:e,wStep:i,hStep:a});else{let t=s[e-1].y;s.push({x:0,y:n[e-1]+t,w:24,h:n[e],i:e,wStep:i,hStep:a})}for(let e=0;e<s.length;e++){const t=s[e];let r=V([1,2,3,4]),o=this.simulateRandomSegments(24,5,12,r),n=[];for(let r=0;r<o.length;r++){const s=o[r];if(0==r)n.push({x:0,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a}),l.push({x:0,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a});else{let d=n[r-1].x;n.push({x:o[r-1]+d,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a}),l.push({x:o[r-1]+d,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a})}}}}return{layouts:l.map((t=>{let{option:r,typeNum:i}=Re.createLine(),a=t.x*t.wStep+t.w*t.wStep/2,o=t.y*t.hStep+t.h*t.hStep/2,n=t.w*t.wStep,s=t.h*t.hStep,l=e.wrapWidth,d=e.wrapHeight;return t.chartsOption=r,t.typeNum=i,t.txt=i+" "+a/l+" "+o/d+" "+n/l+" "+s/d,console.log(t.txt),t})),option:{colNum:r,margin:(null==e?void 0:e.margin)?null==e?void 0:e.margin:this.margin,isDraggable:!!(null==e?void 0:e.isDraggable)&&(null==e?void 0:e.isDraggable),isResizable:!!(null==e?void 0:e.isResizable)&&(null==e?void 0:e.isResizable),verticalCompact:!(null==e?void 0:e.verticalCompact)||(null==e?void 0:e.verticalCompact),useCssTransforms:!(null==e?void 0:e.useCssTransforms)||(null==e?void 0:e.useCssTransforms),rowHeight:e.wrapHeight/t,maRrows:t}}}simulateRandomSegments(e,t,r,i){const a=[];let o=e,n=i;for(;n>0;)if(1===n)a.push(o),n--;else{const e=Math.min(r,o-t*(n-1)),i=Math.floor(Math.random()*(e-t+1))+t;a.push(i),o-=i,n--}return a}simulateRandomSegments2(e,t,r,i){const a=[];let o=e,n=i;for(;n>0;)if(1==n){const t=e-a.reduce(((e,t)=>e+t),0);a.push(t),n--}else{let e=Math.floor(Math.random()*r),i=Math.max(t,e),s=o-t*n;const l=Math.min(i,s);a.push(l),o-=l,n--}return a}};export{De as ConfigOptimizer,ue as GlobalVariables,L as Http,$ as Log,G as agentData,A as delFetchStatus,Ie as displayGenerator,re as editItem,ge as emitEvent,ee as fetchDataByGlobal,Z as fetchDataByType,te as filterData,w as findItemDeep,D as findItemDeep2,J as getData,B as getDataForApi,_ as getDataForSource,Q as getDataForStatic,W as getDataForZb,X as getDataForZbCQ,p as getSessionData,c as getStandardData,v as getStringVars,me as getVarDefaultVal,he as globalVars,b as hasVar,u as isJSON,g as recursion,ne as replaceVariable,N as safeEval,k as safeEvalForCode,S as setFetchStatus,h as setSessionData,le as updataGlobalDataSourceForVar,ie as updateComData,de as updateGlobalDataSource};
|
|
1
|
+
import e from"axios";import t,{uniq as r}from"lodash";import i from"crypto-js";function a(e,t,r,i){return new(r||(r=Promise))((function(a,o){function n(e){try{l(i.next(e))}catch(e){o(e)}}function s(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(n,s)}l((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.requests=[],console.log("RequestTracker")}static getInstance(){return o.instance||(o.instance=new o),o.instance}addRequest(e){if(this.isDuplicateRequest(e)){let t=this.findRequest(e);this.cancelRequest(t)}this.requests.push(e)}findRequest(e){let t;for(const r of this.requests)if(this.areRequestsEqual(r,e)){t=r;break}return t}removeRequest(e){const t=this.requests.indexOf(e);-1!==t&&this.requests.splice(t,1)}cancelRequest(e){e.cancelToken.cancel("Request canceled"),this.removeRequest(e)}isDuplicateRequest(e){return this.requests.some((t=>this.areRequestsEqual(t,e)))}areRequestsEqual(e,t){return e.url===t.url&&JSON.stringify(e.data)===JSON.stringify(t.data)&&JSON.stringify(e.params)===JSON.stringify(t.params)&&e.method===t.method}}const n=o.getInstance(),s=3e3,l=3e3,d=(t="",r)=>{let i,a=e.create({baseURL:t,timeout:s,headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}});return a.interceptors.request.use((function(t){let{url:r,params:a,headers:o,data:s,method:l}=t;const d=e.CancelToken.source();return i={url:r,params:a,headers:o,data:s,method:l,cancelToken:d},t.cancelToken=d.token,n.addRequest(i),sessionStorage.getItem("anov-go-token")&&"null"!=sessionStorage.getItem("anov-go-token")&&(t.headers["X-ANOV-ACCESS-TOKEN"]=sessionStorage.getItem("anov-go-token")),sessionStorage.getItem("unify-access-token")&&"null"!=sessionStorage.getItem("unify-access-token")&&(t.headers["X-UNIFY-ACCESS-TOKEN"]=sessionStorage.getItem("unify-access-token")),sessionStorage.getItem("dgcc_authorization")&&"null"!=sessionStorage.getItem("dgcc_authorization")&&(t.headers.dgcc_authorization=sessionStorage.getItem("dgcc_authorization")),"post"===t.method?(t.headers["Content-Type"]="application/json;",t):"get"===t.method?t:"put"===t.method?(t.headers["Content-Type"]="application/json; charset=UTF-8",t):"delete"===t.method?t:void 0}),(function(e){return Promise.reject(e)})),a.interceptors.response.use((function(e){return 200===e.status||e.data.code,r&&r(e),n.removeRequest(i),e.data}),(function(e){return r&&(n.removeRequest(i),r(null==e?void 0:e.response)),Promise.reject(e.response)})),a};function c(e,t=!1){return t?u(e)?e:JSON.stringify(e):u(e)?JSON.parse(e):e}const u=e=>{if("string"==typeof e)try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}return!1},h=(e,t)=>{try{const r=JSON.stringify(t);sessionStorage.setItem(e,r)}catch(t){console.error(`Error setting session data for key ${e}:`,t)}},p=e=>{const t=sessionStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(t){console.error(`Error parsing session data for key ${e}:`,t)}return null},m=e=>{for(const t of e)t.code&&(t.code=t.code.replace(/>/g,">").replace(/</g,"<"))},f=(e,t)=>{e instanceof Map?e.forEach((e=>{t([e])})):Array.isArray(e)&&e.forEach((e=>{t(e.children)}))},g=(e,t)=>{const r=e=>{var i,a,o;if(e)for(const n of e){const e=null===(o=null===(a=null===(i=null==n?void 0:n.tmpData)||void 0===i?void 0:i.source)||void 0===a?void 0:a.converse)||void 0===o?void 0:o.data;(null==e?void 0:e.length)&&m(e),t(n),n.children?r(n.children):n.dynamicChildren?f(n.dynamicChildren,r):n.stateChildren&&r(n.stateChildren)}};r(e)},v=(e,t,r,i)=>{const a=e.match(/({{[\w]*}})|((@)[\w]*)/gm);if(a){const e=a.map((e=>e.replace(/{{|}}|@/gm,"")));for(const a of e)if(a&&t&&!(t.findIndex((e=>e.mapField===a))<0))return r&&i&&y(i,a,r.cid),!0}return!1},y=(e,t,r)=>{if(!e)throw new Error("Share variable tree is not defined");if("string"!=typeof t)throw new Error("Variable name should be a string");if(!r)throw new Error("ID is required");Array.isArray(e[t])||(e[t]=[]),e[t].includes(r)||e[t].push(r)},b=(e,t,r)=>{var i;let a=!1;const o=null==t?void 0:t.converse;if(o&&o.use&&o.data.length)for(const t of o.data)if((null==t?void 0:t.dependVars)&&t.dependVars.includes(e))return!0;const n=null==t?void 0:t[null==t?void 0:t.type];return((null==n?void 0:n.inputSql)||(null==n?void 0:n.url)||(null==n?void 0:n.headers)||(null==n?void 0:n.params))&&(a=v(n.inputSql||n.url||(null===(i=n.headers)||void 0===i?void 0:i.value)||n.params,r)),a},w=(e,r,i=!1)=>{let a=null;const o=e=>{for(const n of e){if(n.cid===r){a=n,i&&t.remove(e,(e=>e.cid===r));break}if(n.children&&o(n.children),n.dynamicChildren&&Array.isArray(n.dynamicChildren))for(const[,e]of Array.from(n.dynamicChildren))o(e);n.stateChildren&&o(n.stateChildren)}};return o(e),a},D=(e,r,i)=>{let a=!1;const o=e=>{for(let n=0;n<e.length;n++){if(e[n].cid==r){a=e[n],i&&t.remove(e,(e=>e.cid==r));break}if(e[n].children)o(e[n].children);else if(e[n].dynamicChildren){if(e[n].dynamicChildren instanceof Map){let t=Array.from(e[n].dynamicChildren);for(let e=0;e<t.length;e++)if(t[e]instanceof Array){let r=t[e][1];o(r)}}else if(e[n].dynamicChildren instanceof Array){let t=e[n].dynamicChildren;for(let e=0;e<t.length;e++)if(t[e]instanceof Array){let r=t[e][1];o(r)}}}else e[n].stateChildren&&o(e[n].stateChildren)}};return o(e),a||!1};function N(e,t,r){const i={};r&&r.forEach((e=>{(null==e?void 0:e.name)&&(i[e.name]=e.value||e.originvalue)}));try{return new Function("data","vars",e)(t,i)}catch(e){return console.error(e),t}}function k(e,r,i){let a=t.cloneDeep(r);const o={};i&&i.forEach((e=>{(null==e?void 0:e.name)&&(o[e.name]=e.value||e.originvalue)}));try{return new Function("data","vars",e)(a,o)}catch(e){return console.error(e),a}}const S=e=>{let t=window.goFetchList;return t||(window.goFetchList={},t=window.goFetchList),t[e]?!t[e]&&void 0:(t[e]={id:e,time:(new Date).getTime()},!0)},A=e=>{let t=window.goFetchList;t&&t[e]&&delete t[e]},C="anov@2019:helloX",x="anov@2020:helloX";function O(e){let t=i.enc.Utf8.parse(C),r=i.enc.Utf8.parse(x);return i.AES.encrypt(e,t,{iv:r,mode:i.mode.CBC,padding:i.pad.Pkcs7}).toString()}function V(e,t){if(0===e.length)throw new Error("Array is empty.");if(!t)return e[Math.floor(Math.random()*e.length)];if(t.length!==e.length)throw new Error("Length of probabilities array must match length of array.");const r=t.reduce(((e,t)=>e+t),0),i=Math.random()*r;let a=0;for(let r=0;r<e.length;r++)if(a+=t[r],i<a)return e[r];return e[0]}const T=new Blob(["\nfunction proxyObj(originObj) {\n const exposeObj = new Proxy(originObj, {\n has: (target, key) => {\n if (['fetch', 'XMLHttpRequest', 'postMessage'].indexOf(key) >= 0) {\n throw new Error('Illegal operation for key'+key)\n } else {\n return target[key]\n }\n },\n })\n return exposeObj\n}\nfunction compileCode(src) {\n src = 'with (exposeObj) {'+src+'}'\n //console.log(src)\n return new Function('exposeObj', src)\n}\nfunction run(code) {\n let proxy = proxyObj({})\n let result = compileCode(code)(proxy)\n return result\n}\n\nonmessage = (e) => {\n try {\n let result = run(e.data.code)\n postMessage({\n code: 1,\n result,\n })\n } catch (err) {\n postMessage({\n code: -1,\n err,\n })\n }\n}\n"]),F=URL.createObjectURL(T);function E(e,t,r={},i="worker"){return a(this,void 0,void 0,(function*(){try{if("window"==i){let[i,a]=[["data"],[t]];"object"==typeof r&&Object.keys(r).forEach((e=>{i.push(e),a.push(r[e])}));const o=new Function(...i,e);return{success:!0,data:o(...a)}}{let[i,o,n]=[t,r,""];"object"==typeof i&&(i=JSON.stringify(t)),"object"==typeof r&&(o=JSON.stringify(r)),Object.keys(r).forEach((e=>n+=`${e},`));let s=`let data=eval(${i}); \n let app=${JSON.stringify({})};`;s+=n?`let {${n}} = eval(${o}); `:"",s+=`${e}`;let l=yield function(e,t=5e3){return a(this,void 0,void 0,(function*(){let r=new Worker(F);return new Promise(((i,a)=>{const o=()=>{clearTimeout(s),r.removeEventListener("message",n),r.terminate(),r=null},n=e=>{let{code:t,result:r,err:n}=e.data;o(),1===t?i(r):a(n)};r.postMessage({code:e}),r.addEventListener("message",n);let s=setTimeout((()=>{o(),a("timeout")}),t)}))}))}(s);return{success:!0,data:l}}}catch(e){return{success:!1,error:e,data:t}}}))}var R,I,j,P;!function(e){e.StaticFile="staticFile",e.DataSource="datasource"}(R||(R={})),function(e){e.json="application/json;charset=UTF-8",e.form="application/x-www-form-urlencoded; charset=UTF-8"}(I||(I={})),function(e){e.get="GET",e.post="POST",e.put="PUT",e.patch="PATCH",e.delete="DELETE"}(j||(j={}));class q{constructor(e){this.db=null,this.dbName=e.databaseName,this.tableName=e.tableName,this.keyPath=e.keyPath}static getInstance(e){return q.instance||(q.instance=new q(e)),q.instance}init(){return a(this,void 0,void 0,(function*(){return new Promise(((e,t)=>{const r=indexedDB.open(this.dbName,1);r.onerror=e=>{t(e.target.error)},r.onupgradeneeded=e=>{this.db=e.target.result,this.db.objectStoreNames.contains(this.tableName)||this.db.createObjectStore(this.tableName,{keyPath:this.keyPath})},r.onsuccess=t=>{this.db=t.target.result,e()}}))}))}addRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).add(e);i.onsuccess=()=>{t()},i.onerror=e=>{r(e.target.error)}}))}))}deleteRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);i.onsuccess=()=>{t()},i.onerror=e=>{r(e.target.error)}}))}))}updateRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(e);i.onsuccess=()=>{t()},i.onerror=e=>{r(e.target.error)}}))}))}getRecord(e){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((t,r)=>{const i=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=e=>{r(e.target.error)}}))}))}getAllRecords(){return a(this,void 0,void 0,(function*(){if(!this.db)throw new Error("数据库未初始化。");return new Promise(((e,t)=>{const r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAll();r.onsuccess=()=>{e(r.result)},r.onerror=e=>{t(e.target.error)}}))}))}}q.instance=null,function(e){e[e.FATAL=0]="FATAL",e[e.ERROR=1]="ERROR",e[e.WARN=2]="WARN",e[e.INFO=3]="INFO",e[e.DEBUG=4]="DEBUG",e[e.TRACE=5]="TRACE"}(P||(P={}));const M={databaseName:"GODB",tableName:"go-log",keyPath:"time"};class U{constructor(){this.logLevel=P.INFO,this.indexedDBInstance=q.getInstance(M);try{this.indexedDBInstance.init(),console.log("IndexedDB 初始化成功。")}catch(e){console.error("初始化 IndexedDB 时出错:",e)}}static getInstance(){return U.instance||(U.instance=new U),U.instance}setLogLevel(e){this.logLevel=e}getColor(e){switch(e){case P.FATAL:return"[31;1m";case P.ERROR:return"[31m";case P.WARN:return"[33m";case P.INFO:return"[32m";case P.DEBUG:return"[36m";case P.TRACE:return"[34m";default:return"[0m"}}log(e,t){if(t<=this.logLevel){const r=(new Date).toISOString(),i=`[${r}] [${P[t]}]`,a=this.getColor(t);if(null===window||void 0===window?void 0:window.goDev)console.log(`${a}${i} ${e}[0m`);else{let t=p("anov-go-userInfo"),o=p("anov-go-proid"),n=` [操作人:${null==t?void 0:t.userName} 项目ID:${o}] `;const s={time:r,value:`${e}`};try{this.indexedDBInstance.addRecord(s)}catch(e){console.error("添加记录时出错:",e)}console.log(`${a}${i} ${n} ${e}[0m`)}}}fatal(e){this.log(e,P.FATAL)}error(e){this.log(e,P.ERROR)}warn(e){this.log(e,P.WARN)}info(e){this.log(e,P.INFO)}debug(e){this.log(e,P.DEBUG)}trace(e){this.log(e,P.TRACE)}}const $=U.getInstance(),L=(e,t)=>"string"!=typeof e?Promise.reject(new Error("URL should be a string")):d(e,t),z=d();let H=d();function J(e,r="get",i={},o={}){return a(this,void 0,void 0,(function*(){try{const n={method:j[r],url:e,headers:o,timeout:l};["post","put"].includes(r.toLowerCase())?n.data=t.cloneDeep(i):n.params=t.cloneDeep(i);return/.json$/.test(e)?function(e){return a(this,void 0,void 0,(function*(){try{return(yield z({method:"get",url:e})).data}catch(e){throw console.error("JSON 数据请求:",e),e}}))}(e):function(e){return a(this,void 0,void 0,(function*(){try{return{code:2e4,data:(yield z(e)).data}}catch(e){throw console.error("请求数据发生错误-Error:",e),e}}))}(n)}catch(e){throw console.error("获取数据:Error:",e),e}}))}function G(e,t,r,i){return a(this,void 0,void 0,(function*(){try{const a=window.anUrl||"",o=a+(window.agentPath||"/ds/v1/api-proxy/v1/query"),n=c(r,!0);return yield z({url:o,method:"post",headers:{"Content-Type":"application/json;charset=UTF-8"},data:{body:"post"===e?n:void 0,headers:u(i)?JSON.parse(i):i,method:e,url:t}})}catch(e){throw console.error("代理请求数据:Error:",e),e}}))}function B(e,t,r,i,o){return a(this,void 0,void 0,(function*(){return o?G(t,e,r,i):J(e,t,r,i)}))}function W(e,t="",r){var i,a,o,n;const l=`${null!==(a=null===(i=null===window||void 0===window?void 0:window.BaseUrl)||void 0===i?void 0:i.replace("/management",""))&&void 0!==a?a:""}/ds/data-engine/v1/${e}/zb-query?${`token=${(null===(o=ae("YZH_EXCHANGE_TOKEN"))||void 0===o?void 0:o.YZH_EXCHANGE_TOKEN)||(null===(n=null===window||void 0===window?void 0:window.yzhAuth)||void 0===n?void 0:n.getToken())}&passid=${null===window||void 0===window?void 0:window.gdPassid}`}${(null===window||void 0===window?void 0:window.BASE_RELEASE)?"&preview=1":""}`;let d={};try{d=t?JSON.parse(t):{}}catch(e){d=t||{}}return z({method:"POST",url:l,data:{headers:r,param:d},timeout:s})}const X=(e,t)=>a(void 0,void 0,void 0,(function*(){const r=window.BaseUrl,{dateType:i="",endPeriod:a="",metricsName:o=e,startPeriod:n=""}=t;return H({method:"GET",url:`${r}ds/v1/metrics/v1/data-alarm?dateType=${i}&endPeriod=${a}&metricsName=${o}&startPeriod=${n}`,timeout:s})})),_=(e,t,r)=>a(void 0,void 0,void 0,(function*(){var i;const a=(null===(i=window.BaseUrl)||void 0===i?void 0:i.replace("/management",""))||"";t.newEncryption=!0;const o={staticFile:{method:"get",params:t,url:`${a}/ds/v1/file/v1/${e}/query`},datasource:{method:"post",url:`${a}/ds/v1/database/v1/${e}/query`,data:Object.assign({},t)}}[r];if(!o)throw new Error("Invalid data type provided");return z(Object.assign({timeout:s},o))})),Q=e=>new Promise(((t,r)=>{let i;i=e.originData&&Object.keys(e.originData).length?e.originData:e.data,void 0!==i?t({data:i}):r("Failed to retrieve cdata")})),Y=(e,t,r)=>{try{switch(t){case"api":{let t=se(e,r);return{requestType:t.requestType,url:t.url,params:t.params,headers:t.headers,agency:t.agency}}case"static":return{data:e};case"datasource":{const t=ne(e.inputSql,r);return{dsName:e.dsName,dsType:"1",sql:O(t),filter:e.sqlFilter}}case"staticFile":return{dsName:e.dsName,dsType:e.dsType,sql:""};case"indicator":return{zbId:e.zbId,params:ne(e.params,r),headers:ne(e.headers,r)};case"indicatorCQ":return{zbName:e.zbName,params:ne(e.params,r)};case"packData":return{};default:throw new Error("Invalid type")}}catch(t){console.log("准备请求数据发生错误",t,e)}},K=(e,t)=>a(void 0,void 0,void 0,(function*(){try{switch(t){case"api":return yield B(e.url,e.requestType,e.params,e.headers,e.agency);case"static":return yield Q(e.data);case"datasource":return yield _(e.dsName,{dsType:e.dsType,sql:e.sql,filter:e.filter},"datasource");case"staticFile":return yield _(e.dsName,{dsType:e.dsType,sql:e.sql},"staticFile");case"indicator":return yield W(e.zbId,e.params,e.headers);case"indicatorCQ":return yield X(e.zbName,e.params);case"packData":return{};default:throw new Error("Invalid type")}}catch(e){return console.warn(e,"执行请求并获取数据发生错误"),yield new Promise(((e,t)=>{e({error:!0})}))}})),Z=(e,t,r,i=[],o=!1)=>a(void 0,void 0,void 0,(function*(){const a=t||e.tmpData.source.dataType,n=e.tmpData.source["indicatorCQ"==a?"indicator":a];if("globalData"===a){const e=i.find((e=>e.key===n.id||e.key===n.key)),t=p(n.id);if(t&&!o)return t.data;if(e){let t=yield ee(e,r),i={key:n.id,data:t};return h(n.id,i),t}return}const s=Y(n,a,r),l=yield K(s,a);return(null==l?void 0:l.data)?l.data:l})),ee=(e,t)=>a(void 0,void 0,void 0,(function*(){let r=Object.assign({},{tmpData:{source:e.value}});const i=r.tmpData.source.type,a=r.tmpData.source[i],o=Y(a,i,t),n=yield K(o,i);return yield te(n.data,r,!0,t)})),te=(e,r,i=!0,o)=>a(void 0,void 0,void 0,(function*(){try{const{converse:n,mapFields:s}=r.tmpData.source;return n&&n.use&&i?yield new Promise(((r,i)=>{const s=function(e,r,i,o,n){return a(this,void 0,void 0,(function*(){let i,a=e,{use:n,data:s}=t.cloneDeep(r);if(n)for(let e=0;e<s.length;e++)if(s[e].use){let r=s[e].dependVars,n={};o&&n&&r&&r.length&&r.map((e=>{let r=t.cloneDeep(o).filter((t=>{let r=t.mapField==e;return r&&(n[e]=t.value),r}));r&&0!=r.length||(n[e]="")})),i=yield E(s[e].code,a,n,s[e].mode?s[e].mode:"worker"),a=i.data}return a}))}(e,n,0,o);r(s)})):yield new Promise(((t,r)=>{t(e)}))}catch(t){return console.error("执行过滤器发生错误:"+t),yield new Promise(((t,r)=>{t(e)}))}})),re=(e,t,r)=>{const{source:i}=e.tmpData,a=i.type;r?("static"===a&&i[a]&&(i[a].originData=r),"indicatorCQ"===a?i.indicator.data=t:i[a].data=t):"indicatorCQ"===a?i.indicator.data=t:i[a].data=t,e.source=t},ie=(e,t,r=[],i,o,n)=>a(void 0,void 0,void 0,(function*(){try{let a=e.tmpData.source.type,s=yield Z(e,a,r,i,n||!1);if(null==s||!s)return o&&o({error:!0}),Promise.resolve({error:!0});let l=yield te(s,e,t,r);return re(e,l),o&&o(l),(null==e?void 0:e.cid)&&A(e.cid),Promise.resolve(l)}catch(e){return o&&o(e),$.error("Error in updateComData"),console.error("Error in updateComData:",e),Promise.reject(e)}})),ae=e=>{const t={};if(e&&e.includes("?")){const r=e.split("?")[1].split("&");for(let e of r){const[r,i]=e.split("=").map(decodeURIComponent);t[r]=i}}return t},oe=e=>{try{return(null==e?void 0:e.value)&&"string"==typeof e.value?JSON.parse(e.value):"string"==typeof e?JSON.parse(e):e}catch(t){return e}},ne=(e,t)=>{if(!t)return oe(e);if("string"==typeof e){if(""===e.trim())return"";try{if("string"!=typeof JSON.parse(e))return ne(JSON.parse(e),t);{let r=e.replace(/@(\w+)|{{(\w+)}}/g,((e,r,i)=>{const a=r||i,o=t.find((e=>e.mapField===a));return o?o.value||o.originalValue||"":e}));return oe(r)}}catch(r){let i=e.replace(/@(\w+)|{{(\w+)}}/g,((e,r,i)=>{const a=r||i,o=t.find((e=>e.mapField===a));return o?o.value:e}));return oe(i)}}else{if(Array.isArray(e))return e.map((e=>ne(e,t)));if("object"==typeof e&&null!==e){const r={};for(let i in e)r[i]=ne(e[i],t);return oe(r)}}return oe(e)},se=(e,t)=>{const r=e.agency,i=e,{url:a=null,headers:o,params:n,requestType:s}=i,l=a?ne(a,t):void 0,d=o&&o.use?ne(o.value,t):{};return{url:l,requestType:s,params:n?ne(n,t):{},headers:d,agency:r}},le=(e,t,r,i,o)=>a(void 0,void 0,void 0,(function*(){if(e&&e.length)for(const a of e){b(t,a.value,r)&&(yield ie({tmpData:{source:{type:"globalData",globalData:{id:a.key}}}},!0,r,e,(e=>{console.log("数据更新成功-变量改变全局数据跟新")}),!0),g(i,(t=>{var i,n,s;if("globalData"===(null===(n=null===(i=null==t?void 0:t.tmpData)||void 0===i?void 0:i.source)||void 0===n?void 0:n.type)){(null===(s=null==t?void 0:t.tmpData)||void 0===s?void 0:s.source.globalData).id===a.key&&ie(t,!0,r,e,(e=>{o(t,e)}),!1)}})))}})),de=(e,t,r,i,o)=>a(void 0,void 0,void 0,(function*(){e&&(yield ie({tmpData:{source:{type:"globalData",globalData:{id:e.key}}}},!0,t,r,(e=>{console.log("数据更新成功-数据源编辑")}),!0),g(i,(i=>{var a,n,s;if("globalData"===(null===(n=null===(a=null==i?void 0:i.tmpData)||void 0===a?void 0:a.source)||void 0===n?void 0:n.type)){(null===(s=null==i?void 0:i.tmpData)||void 0===s?void 0:s.source.globalData).id===e.key&&ie(i,!0,t,r,(e=>{o(i,e)}),!1)}})))}));class ce{constructor(e,t){this.isUpdating=!1,this.des=e.des,this.field=e.field,this.id=e.id,this.key=e.key,this.mapping=e.mapping,this.mapField=e.mapField,this.type=e.type,this.originalValue=e.originalValue,this.model=(null==e?void 0:e.model)?null==e?void 0:e.model:1,this.converter=e.converter,this.converterCode=e.converterCode,this.fork=e.fork,this.delayUpdate=!!(null==e?void 0:e.delayUpdate),t&&(this.globalVariables=t),e.fork&&(this.model=5,this.forkValue=e.forkValue,this.originalValue=this.getForkedValue())}get value(){if(this.fork&&(this.originalValue=this.getForkedValue()),this.converter&&this.converterCode){let e=[];return k(this.converterCode,this.originalValue,e)}return this.originalValue}togglePropertyState(e){let t=Object.prototype.hasOwnProperty.call(this,e);this[e]=!t||!e}getForkedValue(){if(this.forkValue&&Array.isArray(this.forkValue))return this.forkValue.map((e=>{const t=this.globalVariables.get(e);return t?t.value:null}));if(this.forkValue){const e=this.globalVariables.get(this.forkValue);return e?e.value:null}return null}updateValue(e,t){var i;const a=Object.assign({},this,e);this.des=a.des,this.field=a.field,this.mapping=a.mapping,this.type=a.type,this.originalValue=a.originalValue,this.converter=a.converter,this.converterCode=a.converterCode,this.fork=a.fork,this.delayUpdate=null==a?void 0:a.delayUpdate,this.model=null==a?void 0:a.model,e.id&&(this.id?"string"==typeof this.id?e.id instanceof Array?this.id=r([this.id,...e.id]):this.id=[this.id,e.id]:this.id instanceof Array&&(e.id instanceof Array?this.id=r([...this.id,...e.id]):this.id=r([...this.id,e.id])):this.id=e.id),e.fork&&(this.model=5,this.forkValue=null!==(i=e.forkValue)&&void 0!==i?i:this.forkValue,this.originalValue=this.getForkedValue()),t&&t(this)}updateWidthOriginalValue(e,t){var r;this.originalValue=e,this.fork&&(this.forkValue=null!==(r=this.forkValue)&&void 0!==r?r:this.forkValue,this.originalValue=this.getForkedValue()),t&&t(this)}renew(e){e&&e(this)}static create(e,t){return new ce(e,t)}}class ue{constructor(){this.variables=new Map,this.globalObservers=[],this.url=window.location.search,this.list=[]}clearVars(){this.list=[],this.variables.clear()}togglePropertyState(e,t,r){try{let i=this.getVariable(e);if(!i)throw new Error("没有找到相应的变量!");i.togglePropertyState(t),this.addToObjectArray(this.list,i),r&&r()}catch(e){console.error(e)}}static getInstance(){return ue.instance||(ue.instance=new ue),ue.instance}getFullUrl(){this.url=window.location.search}getAllUrlParams(){const e=new URLSearchParams(window.location.search),t={};for(const[r,i]of e.entries())t[r]=i;return t}delVariable(e,t){this.variables.delete(e),this.list=this.list.filter((t=>t.mapField!=e)),t&&t()}addUrlParamsToGlobalVars(){this.getFullUrl();let e=this.getAllUrlParams(),t=Object.keys(e),r=[];for(const i of t)r.push({mapField:i,originalValue:e[i],model:4});if(r.length)for(const e of r)this.addVariable(e)}addVariables(e){Array.isArray(e)?e.map(((e,t)=>{this.addVariable(e)})):this.addVariable(e),this.addUrlParamsToGlobalVars()}addVariable(e,t){if(!e||!(null==e?void 0:e.mapField))return console.error(e+"参数不合法!"),!1;if(this.isVariableNameExist(e.mapField)){let r=this.getVariable(e.mapField);return this.sameValue(r,e)?r:(this.editVariable(e,t),!1)}const r=ce.create(e,this.variables);return this.variables.set(r.mapField,r),this.addToObjectArray(this.list,r),t&&t(r),this.notifyGlobalObservers(r),r}toJSON(e){try{return!!e&&JSON.stringify(e)}catch(e){return!1}}sameValue(e,t){if(e.mapfield!==t.mapfield)return!1;for(const r in t)if(!(["mapfield","field","key","value","name","globalVariables"].includes(r)||r in e&&e[r]==t[r]))return!1;return!0}creatVarJson(e){const{des:t,field:r,id:i,key:a,mapping:o,mapField:n,type:s,value:l,originalValue:d,model:c,converter:u,converterCode:h,fork:p,forkValue:m,update:f,delayUpdate:g}=e,v={};return void 0!==t&&(v.des=t),void 0!==r&&(v.field=r),void 0!==i&&(v.id=i),void 0!==a&&(v.key=a),void 0!==o&&(v.mapping=o),void 0!==n&&(v.mapField=n),void 0!==s&&(v.type=s),void 0!==l&&(v.value=l),void 0!==d&&(v.originalValue=d),void 0!==c&&(v.model=c),void 0!==u&&(v.converter=u),void 0!==h&&(v.converterCode=h),void 0!==p&&(v.fork=p),void 0!==m&&(v.forkValue=m),void 0!==f&&(v.update=f),void 0!==g&&(v.delayUpdate=g),v}addToObjectArray(e,t){let r=!1;for(let i=0;i<e.length;i++)if(e[i].mapField==t.mapField){e[i]=this.creatVarJson(t),r=!0;break}r||e.push(t)}editVariable(e,t){const r=this.getVariable(e.mapField);if(r&&this.isVariableNameExist(e.mapField)){if(this.sameValue(r,e))return}const i=e=>{if(!e.isUpdating){e.isUpdating=!0,this.notifyGlobalObservers(e);this.isMapFieldInForkValues(e.mapField).forEach((e=>{let t=this.getVariable(e.mapField);t&&t.renew((e=>{this.addToObjectArray(this.list,e),this.notifyGlobalObservers(e)}))})),this.addToObjectArray(this.list,e),t&&t(e),e.isUpdating=!1}};r?r.updateValue(e,i):this.addVariable(e,i)}getForkList(e){let t=this.isMapFieldInForkValues(e);return t||[]}editVariableForValue(e,t,r){const i=this.getVariable(e),a=e=>{if(!e.isUpdating){e.isUpdating=!0,this.notifyGlobalObservers(e);this.isMapFieldInForkValues(e.mapField).forEach((e=>{let t=this.getVariable(e.mapField);t&&t.renew((e=>{this.addToObjectArray(this.list,e),this.notifyGlobalObservers(e)}))})),this.addToObjectArray(this.list,e),r&&r(e),e.isUpdating=!1}};i&&i.updateWidthOriginalValue(t,a)}isMapFieldInForkValues(e){return this.getAllVariables().filter((e=>e.fork&&e.forkValue)).filter((t=>t.forkValue==e||Array.from(t.forkValue).includes(e)))}isVariableNameExist(e){return this.variables.has(e)}checkExist(e,t){if("string"==typeof e&&this.isVariableNameExist(e)){let r=this.getVariable(e);return t==r.id&&!r.id.includes(t)&&[{key:e}]}if(Array.isArray(e)){const r=e.filter((e=>{let r=this.getVariable(e);return this.isVariableNameExist(e)&&t!=r.id&&!(r.id&&r.id.includes(t))})).map((e=>({key:e})));return!!r.length&&r}return!1}getVariable(e){return this.variables.get(e)}getVariableForId(e){var r;let i=[];for(const[,t]of this.variables)(t.id===e||(null===(r=t.id)||void 0===r?void 0:r.includes(e)))&&i.push(t);return t.uniq(i)}getAllVariables(e=!1){return this.addUrlParamsToGlobalVars(),e?(this.list=Array.from(this.variables.values()),this.list):[...this.list]}restoreVariables(e){e.forEach((e=>{this.addVariable(e)}))}registerGlobalObserver(e){this.globalObservers.push(e)}notifyGlobalObservers(e){this.globalObservers.forEach((t=>{t.update(e)}))}}ue.instance=null;const he=ue.getInstance(),pe=(e,t)=>Array.isArray(t)?t.some((t=>e&&(void 0!==e[t]||e.hasOwnProperty(t)))):"string"==typeof t&&(e&&(void 0!==e[t]||e.hasOwnProperty(t))),me=(e,t,r,i)=>{const a=((e,t,r,i)=>{var a;let o;if(pe(e,null==t?void 0:t.field)||pe(e,null==t?void 0:t.forkValue))o=e[null==t?void 0:t.field]||"";else if(pe(e.data,null==t?void 0:t.field)||pe(e.data,null==t?void 0:t.forkValue))o=e.data[null==t?void 0:t.field]||"";else{const e=w(r,i),n=(null===(a=null==e?void 0:e.tmpData)||void 0===a?void 0:a.actions)||[];for(const e of n){const r=e.vars.find((e=>(null==e?void 0:e.mapField)===(null==t?void 0:t.mapField)));if(r){o=r.value;break}}}return o})(e,t,r,i);return void 0!==a?a:t.value},fe=(e,t,r,i,a,o,n,s,l)=>{var d;switch(e.type){case"link":let c=ne(e.link,o);window.open(c,e.target);break;case"page":if(null===(d=null==e?void 0:e.params)||void 0===d?void 0:d.length)for(let t=0;t<e.params.length;t++){const r=e.params[t],i=o.find((e=>e.mapField==r.mapField));i&&(r.value=i.value)}l&&l(e);break;case"dynamic":((e,t,r,i,a)=>{const o=e.dynamic||[];for(const n of o){if(e.id!==t.cid)continue;const o=w(r,n.pid);o&&(o.activeDynamic=n.name,o.isShow=n.visible||!i||e.index===t.index-1,a({cid:o.cid,flag:n.visible}))}})(e,t,r,i,a);break;case"toggle":((e,t,r,i,a)=>{const o=e.children||[];for(const r of o){const o=r.visible&&(!i||e.index===t.index-1);a({cid:r.cid,flag:o})}})(e,t,0,i,a);break;case"update":((e,t,r,i,a)=>{const o=e.children||[];for(const e of o){const o=w(t,e.cid);o&&ie(o,!0,r,i,(e=>{a({cid:o.cid,data:e})}))}})(e,r,o,n,s)}},ge=(e,r,i,a,o,n,s,l,d,c)=>{const{cid:u,actions:h,index:p}=o,{eventName:m,mode:f}=h,g=2===f;((e,r,i,a,o,n)=>{let s=he.getVariableForId(r.cid);if(null==s?void 0:s.length)for(const l of s)if(l.type==e){let e=me(r,l,i,a);he.editVariableForValue(l.mapField,e,(()=>{let e=o[l.mapField]||[],r=he.getForkList(l.mapField);if(r)for(const i of r){let r=o[i.mapField];e=t.concat(e,r)}n&&n(l,t.uniq(e))}))}})(m,o,a,u,i,((e,t)=>{if(le(d,e.mapFile,he.getAllVariables(),a,((e,t)=>{s({cid:e.cid,data:t})})),null==t?void 0:t.length)for(const r of t){e.eventSourceId=r;const t=w(a,r);!(null==e?void 0:e.delayUpdate)&&t&&ie(t,!0,he.getAllVariables(),d,(e=>{s({cid:t.cid,data:e})}))}}));const v=((e,t,r,i,a)=>e.filter((e=>e.id===t&&e.eventType===r&&(!a||parseInt(e.index||"0")+1===parseInt(i||"0")))))(e,u,m,p,g);for(const e of v)fe(e,o,a,g,n,he.getAllVariables(),d,s,l)},ve=(e,t={})=>{let r={},i={type:"static",converse:{use:!1,data:[]},static:{data:e},api:{requestType:"get",url:"",headers:{use:!1,value:""},params:"",agency:!1,cookie:!0,autoUpdate:{open:!1,time:10},data:""}};return Object.assign(r,i,t),r},ye=(e,r)=>{let{option:i,actions:a,data:o,optionDes:n,actionsDes:s,source:l,theme:d}=((e,r)=>{let{option:i,actions:a,data:o,optionDes:n,actionsDes:s,source:l,theme:d}=t.cloneDeep(r[e]);return{option:i,actions:a,data:o,optionDes:n,actionsDes:s,source:l,theme:d}})(e,r);return{iconClass:null,isAssembly:null,source:o,cid:(Math.random().toString().substr(3,10)+Date.now()).toString(),isLock:!1,isShow:!0,tmpData:{option:i,source:ve(o,l),actions:a},baseData:we(),dynamic:null,filePath:"",origin:"anov-ui",name:"",componentType:"",viewComName:e,optionComName:"AnOptionPanel",dataComName:"AnSourcePanel",eventComName:"AnActionsPanel",assemblyDeveloper:"",devEmail:"",version:"",devDept:""}},be=(e,r,i)=>{let a=ye(e,r);return i?t.merge(a,i):a},we=e=>{let t={left:0,top:0,width:100,height:100,angle:0,penetrate:0,opacity:100,perspective:100,rotateX:0,rotateY:0,rotateZ:0,transformOriginX:"center",transformOriginY:"center",transformSwitch:!1};return e?Object.assign(t,e):t};class De{constructor(e,t,r){this.theme=null,this.plant=null,this.list=[],this.titleHeqadeHeight=70,this.clearance=3,this.checkComponentIntersection=(e,t,r=10)=>{const i=e.left,a=e.left+e.width,o=e.top,n=e.top+e.height,s=t.left,l=t.left+t.width,d=t.top,c=t.top+t.height,u=i<l&&a>s&&o<c&&n>d,h=Math.abs(e.left+e.width/2-(t.left+t.width/2)),p=Math.abs(e.top+e.height/2-(t.top+t.height/2));return u||h<r&&p<r},this.calculateCombinedComponent=e=>{if(0===e.length)return{left:0,top:0,width:0,height:0};let t=e[0].left,r=e[0].top,i=e[0].left+e[0].width,a=e[0].top+e[0].height;for(let o=1;o<e.length;o++){const n=e[o];t=Math.min(t,n.left),r=Math.min(r,n.top),i=Math.max(i,n.left+n.width),a=Math.max(a,n.top+n.height)}return{left:t,top:r,width:i-t,height:a-r}},this.getAnTextNormaltText=e=>{var t,r;try{return null===(r=null===(t=null==e?void 0:e.tmpData)||void 0===t?void 0:t.option)||void 0===r?void 0:r.text}catch(e){return console.error("配置优化(ConfigOptimizer):",e),""}},this.initProp(e),this.upgradePlant(),this.staticComponentData=t,this.upgradeHeaderComponent(),r&&Object.assign(this,r)}isStringOrObject(e){return"string"==typeof e?"string":"object"==typeof e&&null!==e&&"object"}initProp(e){try{let t,r=this.isStringOrObject(e);if(r&&"string"===r)t=JSON.parse(e);else{if(!r||"object"!==r)throw new Error(`initProp fn error :-- 传入参数${e}不合法!`);t=e}if(t){this.originData=t;const{theme:e,plant:r,list:i}=t;this.theme=e,this.plant=r,this.list=i,this.filterFileGroup()}}catch(e){console.error("配置优化(ConfigOptimizer):",e)}}upgradePlant(){this.plant&&(this.plant.option.bg={type:1,code:"70942ec525344c96aa32b81b2c9155f6",path:"/anov-prod/resources/page/png/bg22 科技星球背景.png",thumb:"/anov-prod/resources/page/thumbnail/1e48f8fb26ec4edfb1a0f499627e84fc.png"})}areComponentsIntersecting(e,t){let r=e.baseData,i=t.baseData;const a=Math.max(0,Math.min(r.left+r.width,i.left+i.width)-Math.max(r.left,i.left)),o=Math.max(0,Math.min(r.top+r.height,i.top+i.height)-Math.max(r.top,i.top));return a>0&&o>0}filterFileGroup(){this.list=t.cloneDeep(this.list).map((e=>{var t,r;if(1===(null===(t=null==e?void 0:e.children)||void 0===t?void 0:t.length)&&!(null===(r=null==e?void 0:e.children[0])||void 0===r?void 0:r.children)){const t=e.children[0],{left:r,top:i}=e.baseData;return t.baseData.left=r,t.baseData.top=i,t}return e}))}getText(e,t,r){const i=document.createElement("canvas").getContext("2d");if(!i)throw new Error("Failed to get 2D context from canvas.");i.font=`${r}px ${t}`;return i.measureText(e).width}calculateMaxWidths(e){const t=Math.min(...e.map((e=>e.width))),r=[];let i=[],a=e[0].width;for(const o of e){const e=o.width;Math.abs(e-a)<=t?i.push(e):(i.length>0&&r.push(i),i=[e]),a=e}i.length>0&&r.push(i);const o=[];for(const e of r){const t=Math.max(...e);o.push(t)}return o}findClosestValue(e,t){let r=t[0],i=Math.abs(e-r);for(const a of t){const t=Math.abs(e-a);t<i&&(i=t,r=a)}return r}adjustHeightAndTop(e,t){const r=t-e.height;return Object.assign(Object.assign({},e),{height:t,top:e.top-r/2})}findNearestComponent(e,r,i){let a=null,o=1/0;r.tmpData.option.textNormal.text;try{const n=t.cloneDeep(e).sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===r.cid||"AnTextNormal"===e.viewComName||i&&i.includes(e.cid)))),s=t.cloneDeep(r).baseData;s.top,s.height;for(const e of n){const t=e.baseData;t.top,t.height;if(s.left<t.left+t.width&&s.left+s.width>t.left){const r=t.top-s.top;r<o&&r<100&&(o=r,a=e)}}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return a}findNearestComponentForPoint(e,t,r){let i=null,a=1/0;t.tmpData.option.textNormal.text;try{const o=e.sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===t.cid||"AnTextNormal"===e.viewComName||r&&r.includes(e.cid)))),n=t.baseData;n.top,n.height;for(const e of o){const t=e.baseData;let r=this.getDistance(n.left,n.top+n.height,t.left,t.top);r<a&&r<n.width&&(a=r,i=e)}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return i}findNearestComponentForTitlePoint(e,t,r){let i=null,a=1/0;t.tmpData.option.textNormal.text;try{const o=e.sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===t.cid||"AnTextNormal"===e.viewComName||r&&r.includes(e.cid)))),n=t.baseData;n.top,n.height;for(const e of o){const t=e.baseData;let r=this.getDistance(n.left,n.top+n.height,t.left,t.top);r<a&&r<n.width&&t.top-n.top>100&&(a=r,i=e)}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return i}findNearestTitleForPoint(e,t,r){let i=null,a=1/0;t.tmpData.option.textNormal.text;try{const o=e.sort(((e,t)=>e.baseData.top-t.baseData.top)).sort(((e,t)=>e.baseData.left-t.baseData.left)).filter((e=>!(e.cid===t.cid||"AnTextNormal"===e.viewComName||r&&r.includes(e.cid)))),n=t.baseData;n.top,n.height;for(const e of o){const t=e.baseData;let r=t.top-n.top;r<a&&r<n.width&&t.top-n.top>100&&(a=r,i=e)}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return i}getDistance(e,t,r,i){return Math.sqrt(Math.pow(r-e,2)+Math.pow(i-t,2))}findNearestComponent2(e,r,i){let a=null,o=1/0,n=t.cloneDeep(e).sort(((e,t)=>e.baseData.top-t.baseData.top));try{const e=n.filter((e=>!(e.cid===r.cid||"AnTextNormal"===e.viewComName||i&&i.includes(e.cid)))),s=t.cloneDeep(r).baseData,l=s.top+s.height;for(const t of e){const e=t.baseData,r=e.top+e.height;if(s.left<e.left+e.width&&s.left+s.width>e.left){const e=r-l;e>=0&&e<o&&(o=e,a=t)}}}catch(e){console.error("配置优化(ConfigOptimizer)- findNearestComponent :",e)}return a}verticalDistance(e,t){e.left,e.width;const r=e.top+e.height,i=(t.left,t.width,t.top);return Math.abs(r-i)}extractAmount(e){const t=e.match(/(\d{1,3}(?:,\d{3})*)(\D+)/);if(t){const e=t[1].replace(/,/g,"");return[parseInt(e,10),t[2].trim()]}return[!1,!1]}getAnTextNormal(){return this.list.filter((e=>"AnTextNormal"==e.viewComName))}getAnDeckTitle3(){return this.list.filter((e=>"AnDeckTitle3"==e.viewComName)).sort(((e,t)=>e.baseData.left-t.baseData.left))}judgeAnOdometer(){let e=this.getAnTextNormal().sort(((e,t)=>e.baseData.left-t.baseData.left)),t=[],r=new Set;for(const i of e){if(r.has(i.cid))continue;let a=[];for(const t of e){if(!r.has(t.cid)&&i.cid!=t.cid){this.checkComponentIntersection(i.baseData,t.baseData)&&(r.add(t.cid),r.add(i.cid),a.push(t))}}t.push([i,...a])}let i=[];for(const e of t)for(const t of e){let r=this.getAnTextNormaltText(t);this.extractAmount(r).every((e=>e))&&i.push(e)}return i}createAnOdometer(){var e,r;let i=this.judgeAnOdometer();for(const a of i){let i,o,n,s=this.calculateCombinedComponent(a.map((e=>e.baseData)));for(const e of a){let r=this.getAnTextNormaltText(e),a=this.extractAmount(r);a.every((e=>!e))&&(i=r),a.every((e=>e))&&(o=a[0],n=a[1]),t.remove(this.list,(t=>t.cid==e.cid))}let l=be("AnIndicatorNormal",this.staticComponentData,t.cloneDeep({baseData:s}));(null===(r=null===(e=null==l?void 0:l.tmpData)||void 0===e?void 0:e.source)||void 0===r?void 0:r.static)&&(l.tmpData.source.static.data={text:i,num:o,unit:n},l.tmpData.source.static.originData={text:i,num:o,unit:n}),this.list.push(l)}}upgradeHeaderComponent(){for(let e=0;e<this.list.length;e++){const t=this.list[e];"AnDeckHeader3"==t.viewComName&&(t.baseData.left=0,t.baseData.top=0)}}upgradeTitleComponent(){let e=this.getAnDeckTitle3().map((e=>e.baseData)),t=this.calculateMaxWidths(e);for(let e=0;e<this.list.length;e++){const r=this.list[e];if("AnDeckTitle3"==r.viewComName){let e=this.findClosestValue(r.baseData.width,t);r.baseData.width=e>300?e:300,r.baseData=this.adjustHeightAndTop(r.baseData,this.titleHeqadeHeight)}}this.removeErroneousComponents()}containsFractionStructure(e){return/\b\d+\/\d+\b/.test(e)}removeErroneousComponents(){let e=this.getAnDeckTitle3(),t=[];for(let r=0;r<e.length;r++){const i=e[r];let a=i.tmpData.option.textNormal.text;if(this.containsFractionStructure(a))for(let r=0;r<e.length;r++){const a=e[r];if(i.cid!=a.cid){this.areComponentsIntersecting(i,a)&&t.push(i.cid)}}}this.list=this.list.filter((e=>!t.includes(e.cid)))}upgradeGroupComponent(){try{let e=this.getAnDeckTitle3(),t=this.list.filter((e=>"AnDeckTitle3"!=e.viewComName&&"AnDeckHeader3"!=e.viewComName&&"AnTextNormal"!=e.viewComName)),r=[],i=[];for(let a=0;a<e.length;a++){const o=e[a];let n=this.findNearestComponentForPoint(t,o,r);if(n&&n.cid&&r.push(n.cid),n){o.baseData.left=n.baseData.left;let t=this.upgradeComponentHeight(o,e,i);t&&t>=30&&(n.baseData=Object.assign({},n.baseData,{top:o.baseData.top+o.baseData.height+this.clearance}))}}}catch(e){console.error("配置优化(ConfigOptimizer):",e)}}upgradeComponentHeight(e,r,i=[]){const a=e;let o=this.findNearestTitleForPoint(t.cloneDeep(r),a);return o?o.baseData.top-a.baseData.top-this.titleHeqadeHeight:1080-a.baseData.top-this.titleHeqadeHeight}getData(){return this.originData.list=this.list,this.originData.plant=this.plant,this.originData}}const Ne=new class{randomNum(e,t){return Math.floor(Math.random()*(t-e+1))+e}generateRandomIntArray(e,t,r,i){const a=[];for(let i=0;i<e;i++){const e=this.randomNum(t,r);a.push(e)}return i&&"asc"===i?a.sort(((e,t)=>e-t)):i&&"desc"===i?a.sort(((e,t)=>t-e)):a}randomString(e,t){const r="abcdefghijklmnopqrstuvwxyz",i=this.randomNum(e,t);let a="";for(let e=0;e<i;e++){const e=Math.floor(26*Math.random());a+=r.charAt(e)}return a}generateRandomNameArray(e,t,r){const i=[];for(let a=0;a<e;a++){const e=this.randomString(t,r);i.push(e)}return i}pick(e,t){const r=void 0!==t?e.filter((e=>e!==t)):e;return r[Math.floor(Math.random()*r.length)]}},ke=()=>{const e=[],t=Ne.pick([!0,!1]);let r=Ne.randomNum(3,20);const i=Ne.pick([null,null,null,{}]);let a=Ne.pick(["asc","desc",void 0,void 0,void 0]);for(let o=0;o<Ne.randomNum(1,9);o++)e.push({data:Ne.generateRandomIntArray(r,0,300,a),type:"line",smooth:t,symbolSize:Ne.randomNum(1,10),lineStyle:{width:Ne.randomNum(1,4)},areaStyle:i});return{xAxis:{type:"category",show:!1,boundaryGap:!1,data:Ne.generateRandomNameArray(r,3,6)},grid:{left:0,top:0,bottom:0,right:0},yAxis:{show:!1,type:"value"},series:e}},Se=(e,t)=>{let r={type:e,show:!1};return"category"===e&&(r.data=Ne.generateRandomNameArray(t,3,6)),r},Ae=()=>{const e=[],t=Ne.pick([!0,!1]);let r=Ne.randomNum(3,20);const i=Ne.pick([null,null,null,{}]);let a=Ne.pick(["asc","desc",void 0,void 0,void 0]),o=Ne.randomNum(1,9),n=Ne.pick([!0,!1]);for(let s=0;s<o;s++){let o={data:Ne.generateRandomIntArray(r,0,300,a),type:"bar",smooth:t,stack:n,areaStyle:i};e.push(o)}let s=Ne.pick(["value","category"]),l=Ne.pick(["value","category"],s);return{xAxis:Se(s,r),grid:{left:0,top:0,bottom:0,right:0},yAxis:Se(l,r),series:e}},Ce=()=>{const e=[];let t=Ne.randomNum(3,20);Ne.pick([null,null,null,{}]);let r=Ne.pick(["asc","desc",void 0,void 0,void 0]),i=Ne.pick([1,2]),a=[Ne.pick(["10%","20%","30%","40%","50%","60%","70%","80%"]),Ne.pick(["90%","100%"])];return e.push({data:Ne.generateRandomIntArray(t,3,20,r),type:"pie",radius:1==i?"100%":a,roseType:1==i?Ne.pick(["area",null,null]):null,padAngle:1==i?0:Ne.randomNum(1,5),startAngle:1==i?Ne.pick([0,180]):0,endAngle:360,label:{show:!1},itemStyle:{borderRadius:3}}),{grid:{left:0,top:0,bottom:0,right:0},series:e}},xe=()=>{const e=[];Ne.pick([!0,!1]),Ne.randomNum(3,20),Ne.pick([null,null,null,{}]),Ne.pick(["asc","desc",void 0,void 0,void 0]);for(let t=0;t<Ne.randomNum(1,20);t++){let t=Ne.randomNum(3,Ne.randomNum(3,20)),r=[];for(let e=0;e<t;e++){let e=[];for(let t=0;t<2;t++)e.push(Ne.randomNum(1,30));r.push(e)}e.push({type:"scatter",symbolSize:Ne.randomNum(3,30),data:r})}return{xAxis:{show:!1},grid:{left:0,top:0,bottom:0,right:0},yAxis:{show:!1,type:"value"},series:e}},Oe=()=>{const e=[],t=Ne.pick(["polygon","circle"]);let r=Ne.randomNum(1e4,99999),i=Ne.randomNum(3,10),a=[];for(let e=0;e<i;e++)a.push({name:Ne.randomString(4,8),max:r});for(let t=0;t<Ne.randomNum(2,10);t++)e.push({value:Ne.generateRandomIntArray(i,1e4,r),name:Ne.randomString(4,8)});return{radar:{shape:t,indicator:a,axisName:{show:!1},radius:"100%"},grid:{left:0,top:0,bottom:0,right:0},series:[{type:"radar",symbol:"none",lineStyle:{width:1},data:e}]}},Ve=()=>{const e=[];for(let t=0;t<Ne.randomNum(4,15);t++)e.push({value:Ne.randomNum(1,100),name:Ne.randomString(4,8)});return{grid:{left:0,top:0,bottom:0,right:0},series:[{type:"funnel",left:"0%",top:0,bottom:0,width:"100%",min:0,minSize:"0%",maxSize:"100%",label:{show:!1,position:"inside"},sort:Ne.pick(["descending","ascending"]),gap:2,lineStyle:{width:1},data:e}]}};let Te=Ne.randomNum(5,20);const Fe={width:Te};Ne.pick([!0,!1])&&(Fe.color=[[.3,"#67e0e3"],[.7,"#37a2da"],[1,"#fd666d"]]);class Ee{constructor(){this.names=["line","bar","pie","scatter","radar","funnel","gauge"]}static getInstance(){return Ee.instance||(Ee.instance=new Ee),Ee.instance}createLine(){switch(Ne.pick(this.names)){case"line":return{type:"line",typeNum:1,option:ke()};case"bar":return{type:"bar",typeNum:2,option:Ae()};case"pie":return{type:"pie",typeNum:3,option:Ce()};case"scatter":return{type:"scatter",typeNum:4,option:xe()};case"radar":return{type:"radar",typeNum:5,option:Oe()};case"funnel":return{type:"funnel",typeNum:6,option:Ve()};case"gauge":return{type:"gauge",typeNum:7,option:{grid:{left:0,top:0,bottom:0,right:0},series:[{type:"gauge",radius:"100%",detail:{formatter:"{value}"},progress:{show:Ne.pick([!0,!1]),width:Te},axisLine:{lineStyle:Fe},data:[{value:Ne.randomNum(1,100),name:"SCORE"}]}]}}}}}Ee.instance=null;const Re=Ee.getInstance();const Ie=new class{constructor(){this.directions=["row","row"],this.direction="column",this.splitNumbers=24,this.margin=[0,0]}baseLayout(e){const t=(null==e?void 0:e.maRrows)?null==e?void 0:e.maRrows:this.splitNumbers,r=(null==e?void 0:e.colNum)?null==e?void 0:e.colNum:this.splitNumbers,i=e.wrapWidth/r,a=e.wrapHeight/t;let o=V(this.directions);o&&(this.direction=o);let n=[];if("row"===this.direction){let e=V([3,4]);n=this.simulateRandomSegments(24,4,12,e)}else{let e=V([2,3]);n=this.simulateRandomSegments(24,4,6,e)}let s=[],l=[];if("row"===this.direction){for(let e=0;e<n.length;e++)if(0==e)s.push({x:0,y:0,w:n[e],h:24,i:e,wStep:i,hStep:a});else{let t=s[e-1].x;s.push({x:n[e-1]+t,y:0,w:n[e],h:24,i:e,wStep:i,hStep:a})}let e=V([2,3]),t=this.simulateRandomSegments(24,6,12,e);for(let e=0;e<s.length;e++){const r=s[e];for(let o=0;o<t.length;o++){const n=t[o];l.push({x:r.x,y:n,w:r.w,h:n,i:10*e+o,wStep:i,hStep:a})}}}else{for(let e=0;e<n.length;e++)if(0==e)s.push({x:0,y:0,w:24,h:n[e],i:e,wStep:i,hStep:a});else{let t=s[e-1].y;s.push({x:0,y:n[e-1]+t,w:24,h:n[e],i:e,wStep:i,hStep:a})}for(let e=0;e<s.length;e++){const t=s[e];let r=V([1,2,3,4]),o=this.simulateRandomSegments(24,5,12,r),n=[];for(let r=0;r<o.length;r++){const s=o[r];if(0==r)n.push({x:0,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a}),l.push({x:0,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a});else{let d=n[r-1].x;n.push({x:o[r-1]+d,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a}),l.push({x:o[r-1]+d,y:t.y,w:s,h:t.h,i:10*e+r,wStep:i,hStep:a})}}}}return{layouts:l.map((t=>{let{option:r,typeNum:i}=Re.createLine(),a=t.x*t.wStep+t.w*t.wStep/2,o=t.y*t.hStep+t.h*t.hStep/2,n=t.w*t.wStep,s=t.h*t.hStep;if(3==i||5==i||7==i){let e=Math.min(n,s);n=e,s=e}let l=e.wrapWidth,d=e.wrapHeight;return t.chartsOption=r,t.typeNum=i,t.txt=i+" "+a/l+" "+o/d+" "+n/l+" "+s/d,console.log(t.txt),t})),option:{colNum:r,margin:(null==e?void 0:e.margin)?null==e?void 0:e.margin:this.margin,isDraggable:!!(null==e?void 0:e.isDraggable)&&(null==e?void 0:e.isDraggable),isResizable:!!(null==e?void 0:e.isResizable)&&(null==e?void 0:e.isResizable),verticalCompact:!(null==e?void 0:e.verticalCompact)||(null==e?void 0:e.verticalCompact),useCssTransforms:!(null==e?void 0:e.useCssTransforms)||(null==e?void 0:e.useCssTransforms),rowHeight:e.wrapHeight/t,maRrows:t}}}simulateRandomSegments(e,t,r,i){const a=[];let o=e,n=i;for(;n>0;)if(1===n)a.push(o),n--;else{const e=Math.min(r,o-t*(n-1)),i=Math.floor(Math.random()*(e-t+1))+t;a.push(i),o-=i,n--}return a}simulateRandomSegments2(e,t,r,i){const a=[];let o=e,n=i;for(;n>0;)if(1==n){const t=e-a.reduce(((e,t)=>e+t),0);a.push(t),n--}else{let e=Math.floor(Math.random()*r),i=Math.max(t,e),s=o-t*n;const l=Math.min(i,s);a.push(l),o-=l,n--}return a}};export{De as ConfigOptimizer,ue as GlobalVariables,L as Http,$ as Log,G as agentData,A as delFetchStatus,Ie as displayGenerator,re as editItem,ge as emitEvent,ee as fetchDataByGlobal,Z as fetchDataByType,te as filterData,w as findItemDeep,D as findItemDeep2,J as getData,B as getDataForApi,_ as getDataForSource,Q as getDataForStatic,W as getDataForZb,X as getDataForZbCQ,p as getSessionData,c as getStandardData,v as getStringVars,me as getVarDefaultVal,he as globalVars,b as hasVar,u as isJSON,g as recursion,ne as replaceVariable,N as safeEval,k as safeEvalForCode,S as setFetchStatus,h as setSessionData,le as updataGlobalDataSourceForVar,ie as updateComData,de as updateGlobalDataSource};
|
|
@@ -72,7 +72,7 @@ export declare function safeEval(code: string, params: any, globalVars?: any): a
|
|
|
72
72
|
* @param {any} globalVars - 执行代码时的变量
|
|
73
73
|
* @returns {any} - 执行结果或默认参数值
|
|
74
74
|
*/
|
|
75
|
-
export declare function safeEvalForCode(code: string, _params: any): any;
|
|
75
|
+
export declare function safeEvalForCode(code: string, _params: any, globalVars?: any): any;
|
|
76
76
|
/**
|
|
77
77
|
* 设置请求状态
|
|
78
78
|
*
|