ace-component-lib 0.0.75 → 0.0.76

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.
@@ -1,4 +1,4 @@
1
- (function(te,U){typeof exports=="object"&&typeof module<"u"?module.exports=U(require("pinia"),require("@wangeditor/editor"),require("vue"),require("element-plus"),require("vue-draggable-plus"),require("dayjs"),require("echarts/core"),require("@wangeditor/editor-for-vue"),require("jsoneditor")):typeof define=="function"&&define.amd?define(["pinia","@wangeditor/editor","vue","element-plus","vue-draggable-plus","dayjs","echarts/core","@wangeditor/editor-for-vue","jsoneditor"],U):(te=typeof globalThis<"u"?globalThis:te||self,te["ace-component-lib"]=U(te.pinia,te.editor,te.Vue,te.elementPlus,te.vueDraggablePlus,te.dayjs,te.core,te.editorForVue,te.JsonEditor))})(this,function(pinia,editor,vue,elementPlus,vueDraggablePlus,dayjs,core,editorForVue,JsonEditor){"use strict";const version="0.0.75",aceLib="";let e$3=class{constructor(U){this.standards={strict:"strict",loose:"loose",html5:"html5"},this.previewBody=null,this.close=null,this.previewBodyUtilPrintBtn=null,this.selectArray=[],this.counter=0,this.settings={standard:this.standards.html5},Object.assign(this.settings,U),this.init()}init(){this.counter++,this.settings.id=`printArea_${this.counter}`;let U="";this.settings.url&&!this.settings.asyncUrl&&(U=this.settings.url);let G=this;if(this.settings.asyncUrl)return void G.settings.asyncUrl(function(ne){let re=G.getPrintWindow(ne);G.settings.preview?G.previewIfrmaeLoad():G.print(re)},G.settings.vue);let ee=this.getPrintWindow(U);this.settings.url||this.write(ee.doc),this.settings.preview?this.previewIfrmaeLoad():this.print(ee)}addEvent(U,G,ee){U.addEventListener?U.addEventListener(G,ee,!1):U.attachEvent?U.attachEvent("on"+G,ee):U["on"+G]=ee}previewIfrmaeLoad(){let U=document.getElementById("vue-pirnt-nb-previewBox");if(U){let G=this,ee=U.querySelector("iframe");this.settings.previewBeforeOpenCallback(),this.addEvent(ee,"load",function(){G.previewBoxShow(),G.removeCanvasImg(),G.settings.previewOpenCallback()}),this.addEvent(U.querySelector(".previewBodyUtilPrintBtn"),"click",function(){G.settings.beforeOpenCallback(),G.settings.openCallback(),ee.contentWindow.print(),G.settings.closeCallback()})}}removeCanvasImg(){let U=this;try{if(U.elsdom){let G=U.elsdom.querySelectorAll(".canvasImg");for(let ee=0;ee<G.length;ee++)G[ee].remove()}}catch(G){console.log(G)}}print(U){var G=this;let ee=document.getElementById(this.settings.id)||U.f,ne=document.getElementById(this.settings.id).contentWindow||U.f.contentWindow;G.settings.beforeOpenCallback(),G.addEvent(ee,"load",function(){ne.focus(),G.settings.openCallback(),ne.print(),ee.remove(),G.settings.closeCallback(),G.removeCanvasImg()})}write(U){U.open(),U.write(`${this.docType()}<html>${this.getHead()}${this.getBody()}</html>`),U.close()}docType(){return this.settings.standard===this.standards.html5?"<!DOCTYPE html>":`<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01${this.settings.standard===this.standards.loose?" Transitional":""}//EN" "http://www.w3.org/TR/html4/${this.settings.standard===this.standards.loose?"loose":"strict"}.dtd">`}getHead(){let U="",G="",ee="";this.settings.extraHead&&this.settings.extraHead.replace(/([^,]+)/g,re=>{U+=re}),[].forEach.call(document.querySelectorAll("link"),function(re){re.href.indexOf(".css")>=0&&(G+=`<link type="text/css" rel="stylesheet" href="${re.href}" >`)});let ne=document.styleSheets;if(ne&&ne.length>0)for(let re=0;re<ne.length;re++)try{if(ne[re].cssRules||ne[re].rules){let oe=ne[re].cssRules||ne[re].rules;for(let ie=0;ie<oe.length;ie++)ee+=oe[ie].cssText}}catch(oe){console.log(ne[re].href+oe)}return this.settings.extraCss&&this.settings.extraCss.replace(/([^,\s]+)/g,re=>{G+=`<link type="text/css" rel="stylesheet" href="${re}">`}),`<head><title>${this.settings.popTitle}</title>${U}${G}<style type="text/css">${ee}</style></head>`}getBody(){let U=this.settings.ids;return U=U.replace(new RegExp("#","g"),""),this.elsdom=this.beforeHanler(document.getElementById(U)),"<body>"+this.getFormData(this.elsdom).outerHTML+"</body>"}beforeHanler(U){let G=U.querySelectorAll("canvas");for(let ee=0;ee<G.length;ee++)if(!G[ee].style.display){let ne=G[ee].parentNode,re=G[ee].toDataURL("image/png"),oe=new Image;oe.className="canvasImg",oe.style.display="none",oe.src=re,ne.appendChild(oe)}return U}getFormData(U){let G=U.cloneNode(!0),ee=G.querySelectorAll("input,select,textarea"),ne=G.querySelectorAll(".canvasImg,canvas"),re=-1;for(let oe=0;oe<ne.length;oe++){let ie=ne[oe].parentNode,le=ne[oe];le.tagName.toLowerCase()==="canvas"?ie.removeChild(le):le.style.display="block"}for(let oe=0;oe<ee.length;oe++){let ie=ee[oe],le=ie.getAttribute("type"),ae=ee[oe];if(le||(le=ie.tagName==="SELECT"?"select":ie.tagName==="TEXTAREA"?"textarea":""),ie.tagName==="INPUT")le==="radio"||le==="checkbox"?ie.checked&&ae.setAttribute("checked",ie.checked):(ae.value=ie.value,ae.setAttribute("value",ie.value));else if(le==="select"){re++;for(let se=0;se<U.querySelectorAll("select").length;se++){let ue=U.querySelectorAll("select")[se];if(!ue.getAttribute("newbs")&&ue.setAttribute("newbs",se),ue.getAttribute("newbs")==re){let ce=U.querySelectorAll("select")[re].selectedIndex;ie.options[ce].setAttribute("selected",!0)}}}else ae.innerHTML=ie.value,ae.setAttribute("html",ie.value)}return G}getPrintWindow(U){var G=this.Iframe(U);return{f:G,win:G.contentWindow||G,doc:G.doc}}previewBoxShow(){let U=document.getElementById("vue-pirnt-nb-previewBox");U&&(document.querySelector("html").setAttribute("style","overflow: hidden"),U.style.display="block")}previewBoxHide(){let U=document.getElementById("vue-pirnt-nb-previewBox");U&&(document.querySelector("html").setAttribute("style","overflow: visible;"),U.querySelector("iframe")&&U.querySelector("iframe").remove(),U.style.display="none")}previewBox(){let U=document.getElementById("vue-pirnt-nb-previewBox"),G="previewBody";if(U)return U.querySelector("iframe")&&U.querySelector("iframe").remove(),{close:U.querySelector(".previewClose"),previewBody:U.querySelector(".previewBody")};let ee=document.createElement("div");ee.setAttribute("id","vue-pirnt-nb-previewBox"),ee.setAttribute("style","position: fixed;top: 0px;left: 0px;width: 100%;height: 100%;background: white;display:none"),ee.style.zIndex=this.settings.zIndex;let ne=document.createElement("div");ne.setAttribute("class","previewHeader"),ne.setAttribute("style","padding: 5px 20px;"),ne.innerHTML=this.settings.previewTitle,ee.appendChild(ne),this.close=document.createElement("div");let re=this.close;re.setAttribute("class","previewClose"),re.setAttribute("style","position: absolute;top: 5px;right: 20px;width: 25px;height: 20px;cursor: pointer;");let oe=document.createElement("div"),ie=document.createElement("div");oe.setAttribute("class","closeBefore"),oe.setAttribute("style","position: absolute;width: 3px;height: 100%;background: #040404;transform: rotate(45deg); top: 0px;left: 50%;"),ie.setAttribute("class","closeAfter"),ie.setAttribute("style","position: absolute;width: 3px;height: 100%;background: #040404;transform: rotate(-45deg); top: 0px;left: 50%;"),re.appendChild(oe),re.appendChild(ie),ne.appendChild(re),this.previewBody=document.createElement("div");let le=this.previewBody;le.setAttribute("class",G),le.setAttribute("style","display: flex;flex-direction: column; height: 100%;"),ee.appendChild(le);let ae=document.createElement("div");ae.setAttribute("class","previewBodyUtil"),ae.setAttribute("style","height: 32px;background: #474747;position: relative;"),le.appendChild(ae),this.previewBodyUtilPrintBtn=document.createElement("div");let se=this.previewBodyUtilPrintBtn;return se.setAttribute("class","previewBodyUtilPrintBtn"),se.innerHTML=this.settings.previewPrintBtnLabel,se.setAttribute("style","position: absolute;padding: 2px 10px;margin-top: 3px;left: 24px;font-size: 14px;color: white;cursor: pointer;background-color: rgba(0,0,0,.12);background-image: linear-gradient(hsla(0,0%,100%,.05),hsla(0,0%,100%,0));background-clip: padding-box;border: 1px solid rgba(0,0,0,.35);border-color: rgba(0,0,0,.32) rgba(0,0,0,.38) rgba(0,0,0,.42);box-shadow: inset 0 1px 0 hsla(0,0%,100%,.05), inset 0 0 1px hsla(0,0%,100%,.15), 0 1px 0 hsla(0,0%,100%,.05);"),ae.appendChild(se),document.body.appendChild(ee),{close:this.close,previewBody:this.previewBody}}iframeBox(U,G){let ee=document.createElement("iframe");return ee.style.border="0px",ee.style.position="absolute",ee.style.width="0px",ee.style.height="0px",ee.style.right="0px",ee.style.top="0px",ee.setAttribute("id",U),ee.setAttribute("src",G),ee}Iframe(U){let G=this.settings.id;U=U||new Date().getTime();let ee=this,ne=this.iframeBox(G,U);try{if(this.settings.preview){ne.setAttribute("style","border: 0px;flex: 1;");let re=this.previewBox(),oe=re.previewBody,ie=re.close;oe.appendChild(ne),this.addEvent(ie,"click",function(){ee.previewBoxHide()})}else document.body.appendChild(ne);ne.doc=null,ne.doc=ne.contentDocument?ne.contentDocument:ne.contentWindow?ne.contentWindow.document:ne.document}catch(re){throw new Error(re+". iframes may not be supported in this browser.")}if(ne.doc==null)throw new Error("Cannot find document.");return ne}};var t$2={directiveName:"print",mounted(te,U,G){let ee=U.instance,ne="";var re,oe,ie;oe="click",ie=()=>{if(typeof U.value=="string")ne=U.value;else{if(typeof U.value!="object"||!U.value.id)return void window.print();{ne=U.value.id;let ae=ne.replace(new RegExp("#","g"),"");document.getElementById(ae)||(console.log("id in Error"),ne="")}}le()},(re=te).addEventListener?re.addEventListener(oe,ie,!1):re.attachEvent?re.attachEvent("on"+oe,ie):re["on"+oe]=ie;const le=()=>{new e$3({ids:ne,vue:ee,url:U.value.url,standard:"",extraHead:U.value.extraHead,extraCss:U.value.extraCss,zIndex:U.value.zIndex||20002,previewTitle:U.value.previewTitle||"打印预览",previewPrintBtnLabel:U.value.previewPrintBtnLabel||"打印",popTitle:U.value.popTitle,preview:U.value.preview||!1,asyncUrl:U.value.asyncUrl,previewBeforeOpenCallback(){U.value.previewBeforeOpenCallback&&U.value.previewBeforeOpenCallback(ee)},previewOpenCallback(){U.value.previewOpenCallback&&U.value.previewOpenCallback(ee)},openCallback(){U.value.openCallback&&U.value.openCallback(ee)},closeCallback(){U.value.closeCallback&&U.value.closeCallback(ee)},beforeOpenCallback(){U.value.beforeOpenCallback&&U.value.beforeOpenCallback(ee)}})}},install:function(te){te.directive("print",t$2)}},FieldRenderType=(te=>(te.String="string",te.Integer="interget",te))(FieldRenderType||{}),DynamicTableType=(te=>(te.Default="default",te.DataForm="dataForm",te))(DynamicTableType||{}),ItableType=(te=>(te.Link="link",te))(ItableType||{}),FieldType=(te=>(te.Text="text",te.Select="select",te.Date="date",te.DateTime="datetime",te.CheckBox="checkbox",te.Switch="switch",te.Radio="radio",te.Textarea="textarea",te.Number="number",te.NumberRange="numberRange",te.Cascader="cascader",te.Daterange="daterange",te.Monthrange="monthrange",te.File="file",te.TreeSelect="treeSelect",te.Year="year",te.Month="month",te.Hr="hr",te.Slot="slot",te.Editor="editor",te.Password="password",te.Json="json",te.Markdown="markdown",te.Rate="rate",te.TimeRange="timerange",te.Time="time",te.DateTimeRange="datetimerange",te))(FieldType||{});let nanoid=(te=21)=>crypto.getRandomValues(new Uint8Array(te)).reduce((U,G)=>(G&=63,G<36?U+=G.toString(36):G<62?U+=(G-26).toString(36).toUpperCase():G>62?U+="-":U+="_",U),"");const screenDesignMainStore=pinia.defineStore({id:"design",state:()=>({theme:localStorage.getItem("design-theme")||"",stageWidth:1920,stageHeight:1080,scale:.2,targetsWidget:[],sketchRuleLine:{h:[],v:[]},widgetConfg:{config:{backgroundColor:"transparent",backgroundImage:""},list:[]},widgetHoverIds:[],pasteWidget:[],createLoading:!1,showRightPannel:!1,tempChartData:{},chartData:{},countMap:{}}),getters:{getScale(){return this.scale},getStage(){return{stageWidth:this.stageWidth,stageHeight:this.stageHeight}},getSketchRuleLine(){return this.sketchRuleLine},getTargetWidget(){return this.targetsWidget},getWidgetConfig(){return this.widgetConfg.config},getWidgetList(){return this.widgetConfg.list},getWidgetHoverIds(){return this.widgetHoverIds},getPasteWidget(){return this.pasteWidget},getCreateLoading(){return this.createLoading},getRightPannel(){return this.showRightPannel},getTheme(){return this.theme},getChartData(){return this.chartData},getCountMap(){return this.countMap}},actions:{setSacle(te){this.scale=te/100},setSketchRuleLine(te,U){this.sketchRuleLine.h=te,this.sketchRuleLine.v=U},clearSketchRuleLine(){this.sketchRuleLine={h:[],v:[]}},setTargetWidget(te){this.targetsWidget=te},setWidgetList(te){this.widgetConfg.list=te},setWidgetHoverIds(te){this.widgetHoverIds=te},delWidgetItem(te){this.setWidgetList(this.getWidgetList.filter(U=>!te.includes(U.id))),this.setTargetWidget(this.getTargetWidget.filter(U=>!te.includes(U.id)))},copyWidgetItem(te){this.pasteWidget=[],te.forEach(U=>{const G=this.getWidgetList.find(ee=>ee.id==U);G&&this.pasteWidget.push(G)})},pasteWidgetItem(){this.pasteWidget.forEach(G=>{const ee=JSON.parse(JSON.stringify(G));let ne=ee.x,re=ee.y;ee.x+40>this.stageWidth-ee.w?ne=this.stageWidth-ee.w-40:ne+=40,ee.y+40>this.stageHeight-ee.h?re=this.stageHeight-ee.h-40:re+=40,this.widgetConfg.list.unshift({...ee,id:nanoid(),x:ne,y:re,z:this.widgetConfg.list.length+1,locked:!1})})},sortWidgetList(){this.widgetConfg.list.sort((te,U)=>U.z-te.z)},setCreateLoading(te){this.createLoading=te,te&&(this.targetsWidget=[],this.clearSketchRuleLine())},setRightPannel(te){this.showRightPannel=te},setStageWidth(te){this.stageWidth=te,this.widgetConfg.config.stageWidth=te},setStageHeight(te){this.stageHeight=te,this.widgetConfg.config.stageHeight=te},setTheme(){this.theme=this.theme=="dark"?"":"dark",document.getElementsByTagName("html")[0].className=this.theme,localStorage.setItem("design-theme",this.theme)},setChartData(te){this.chartData=te},setCountMap(te,U){this.countMap[te]=U}}});/*!
1
+ (function(te,U){typeof exports=="object"&&typeof module<"u"?module.exports=U(require("pinia"),require("@wangeditor/editor"),require("vue"),require("element-plus"),require("vue-draggable-plus"),require("dayjs"),require("echarts/core"),require("@wangeditor/editor-for-vue"),require("jsoneditor")):typeof define=="function"&&define.amd?define(["pinia","@wangeditor/editor","vue","element-plus","vue-draggable-plus","dayjs","echarts/core","@wangeditor/editor-for-vue","jsoneditor"],U):(te=typeof globalThis<"u"?globalThis:te||self,te["ace-component-lib"]=U(te.pinia,te.editor,te.Vue,te.elementPlus,te.vueDraggablePlus,te.dayjs,te.core,te.editorForVue,te.JsonEditor))})(this,function(pinia,editor,vue,elementPlus,vueDraggablePlus,dayjs,core,editorForVue,JsonEditor){"use strict";const version="0.0.76",aceLib="";let e$3=class{constructor(U){this.standards={strict:"strict",loose:"loose",html5:"html5"},this.previewBody=null,this.close=null,this.previewBodyUtilPrintBtn=null,this.selectArray=[],this.counter=0,this.settings={standard:this.standards.html5},Object.assign(this.settings,U),this.init()}init(){this.counter++,this.settings.id=`printArea_${this.counter}`;let U="";this.settings.url&&!this.settings.asyncUrl&&(U=this.settings.url);let G=this;if(this.settings.asyncUrl)return void G.settings.asyncUrl(function(ne){let re=G.getPrintWindow(ne);G.settings.preview?G.previewIfrmaeLoad():G.print(re)},G.settings.vue);let ee=this.getPrintWindow(U);this.settings.url||this.write(ee.doc),this.settings.preview?this.previewIfrmaeLoad():this.print(ee)}addEvent(U,G,ee){U.addEventListener?U.addEventListener(G,ee,!1):U.attachEvent?U.attachEvent("on"+G,ee):U["on"+G]=ee}previewIfrmaeLoad(){let U=document.getElementById("vue-pirnt-nb-previewBox");if(U){let G=this,ee=U.querySelector("iframe");this.settings.previewBeforeOpenCallback(),this.addEvent(ee,"load",function(){G.previewBoxShow(),G.removeCanvasImg(),G.settings.previewOpenCallback()}),this.addEvent(U.querySelector(".previewBodyUtilPrintBtn"),"click",function(){G.settings.beforeOpenCallback(),G.settings.openCallback(),ee.contentWindow.print(),G.settings.closeCallback()})}}removeCanvasImg(){let U=this;try{if(U.elsdom){let G=U.elsdom.querySelectorAll(".canvasImg");for(let ee=0;ee<G.length;ee++)G[ee].remove()}}catch(G){console.log(G)}}print(U){var G=this;let ee=document.getElementById(this.settings.id)||U.f,ne=document.getElementById(this.settings.id).contentWindow||U.f.contentWindow;G.settings.beforeOpenCallback(),G.addEvent(ee,"load",function(){ne.focus(),G.settings.openCallback(),ne.print(),ee.remove(),G.settings.closeCallback(),G.removeCanvasImg()})}write(U){U.open(),U.write(`${this.docType()}<html>${this.getHead()}${this.getBody()}</html>`),U.close()}docType(){return this.settings.standard===this.standards.html5?"<!DOCTYPE html>":`<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01${this.settings.standard===this.standards.loose?" Transitional":""}//EN" "http://www.w3.org/TR/html4/${this.settings.standard===this.standards.loose?"loose":"strict"}.dtd">`}getHead(){let U="",G="",ee="";this.settings.extraHead&&this.settings.extraHead.replace(/([^,]+)/g,re=>{U+=re}),[].forEach.call(document.querySelectorAll("link"),function(re){re.href.indexOf(".css")>=0&&(G+=`<link type="text/css" rel="stylesheet" href="${re.href}" >`)});let ne=document.styleSheets;if(ne&&ne.length>0)for(let re=0;re<ne.length;re++)try{if(ne[re].cssRules||ne[re].rules){let oe=ne[re].cssRules||ne[re].rules;for(let ie=0;ie<oe.length;ie++)ee+=oe[ie].cssText}}catch(oe){console.log(ne[re].href+oe)}return this.settings.extraCss&&this.settings.extraCss.replace(/([^,\s]+)/g,re=>{G+=`<link type="text/css" rel="stylesheet" href="${re}">`}),`<head><title>${this.settings.popTitle}</title>${U}${G}<style type="text/css">${ee}</style></head>`}getBody(){let U=this.settings.ids;return U=U.replace(new RegExp("#","g"),""),this.elsdom=this.beforeHanler(document.getElementById(U)),"<body>"+this.getFormData(this.elsdom).outerHTML+"</body>"}beforeHanler(U){let G=U.querySelectorAll("canvas");for(let ee=0;ee<G.length;ee++)if(!G[ee].style.display){let ne=G[ee].parentNode,re=G[ee].toDataURL("image/png"),oe=new Image;oe.className="canvasImg",oe.style.display="none",oe.src=re,ne.appendChild(oe)}return U}getFormData(U){let G=U.cloneNode(!0),ee=G.querySelectorAll("input,select,textarea"),ne=G.querySelectorAll(".canvasImg,canvas"),re=-1;for(let oe=0;oe<ne.length;oe++){let ie=ne[oe].parentNode,le=ne[oe];le.tagName.toLowerCase()==="canvas"?ie.removeChild(le):le.style.display="block"}for(let oe=0;oe<ee.length;oe++){let ie=ee[oe],le=ie.getAttribute("type"),ae=ee[oe];if(le||(le=ie.tagName==="SELECT"?"select":ie.tagName==="TEXTAREA"?"textarea":""),ie.tagName==="INPUT")le==="radio"||le==="checkbox"?ie.checked&&ae.setAttribute("checked",ie.checked):(ae.value=ie.value,ae.setAttribute("value",ie.value));else if(le==="select"){re++;for(let se=0;se<U.querySelectorAll("select").length;se++){let ue=U.querySelectorAll("select")[se];if(!ue.getAttribute("newbs")&&ue.setAttribute("newbs",se),ue.getAttribute("newbs")==re){let ce=U.querySelectorAll("select")[re].selectedIndex;ie.options[ce].setAttribute("selected",!0)}}}else ae.innerHTML=ie.value,ae.setAttribute("html",ie.value)}return G}getPrintWindow(U){var G=this.Iframe(U);return{f:G,win:G.contentWindow||G,doc:G.doc}}previewBoxShow(){let U=document.getElementById("vue-pirnt-nb-previewBox");U&&(document.querySelector("html").setAttribute("style","overflow: hidden"),U.style.display="block")}previewBoxHide(){let U=document.getElementById("vue-pirnt-nb-previewBox");U&&(document.querySelector("html").setAttribute("style","overflow: visible;"),U.querySelector("iframe")&&U.querySelector("iframe").remove(),U.style.display="none")}previewBox(){let U=document.getElementById("vue-pirnt-nb-previewBox"),G="previewBody";if(U)return U.querySelector("iframe")&&U.querySelector("iframe").remove(),{close:U.querySelector(".previewClose"),previewBody:U.querySelector(".previewBody")};let ee=document.createElement("div");ee.setAttribute("id","vue-pirnt-nb-previewBox"),ee.setAttribute("style","position: fixed;top: 0px;left: 0px;width: 100%;height: 100%;background: white;display:none"),ee.style.zIndex=this.settings.zIndex;let ne=document.createElement("div");ne.setAttribute("class","previewHeader"),ne.setAttribute("style","padding: 5px 20px;"),ne.innerHTML=this.settings.previewTitle,ee.appendChild(ne),this.close=document.createElement("div");let re=this.close;re.setAttribute("class","previewClose"),re.setAttribute("style","position: absolute;top: 5px;right: 20px;width: 25px;height: 20px;cursor: pointer;");let oe=document.createElement("div"),ie=document.createElement("div");oe.setAttribute("class","closeBefore"),oe.setAttribute("style","position: absolute;width: 3px;height: 100%;background: #040404;transform: rotate(45deg); top: 0px;left: 50%;"),ie.setAttribute("class","closeAfter"),ie.setAttribute("style","position: absolute;width: 3px;height: 100%;background: #040404;transform: rotate(-45deg); top: 0px;left: 50%;"),re.appendChild(oe),re.appendChild(ie),ne.appendChild(re),this.previewBody=document.createElement("div");let le=this.previewBody;le.setAttribute("class",G),le.setAttribute("style","display: flex;flex-direction: column; height: 100%;"),ee.appendChild(le);let ae=document.createElement("div");ae.setAttribute("class","previewBodyUtil"),ae.setAttribute("style","height: 32px;background: #474747;position: relative;"),le.appendChild(ae),this.previewBodyUtilPrintBtn=document.createElement("div");let se=this.previewBodyUtilPrintBtn;return se.setAttribute("class","previewBodyUtilPrintBtn"),se.innerHTML=this.settings.previewPrintBtnLabel,se.setAttribute("style","position: absolute;padding: 2px 10px;margin-top: 3px;left: 24px;font-size: 14px;color: white;cursor: pointer;background-color: rgba(0,0,0,.12);background-image: linear-gradient(hsla(0,0%,100%,.05),hsla(0,0%,100%,0));background-clip: padding-box;border: 1px solid rgba(0,0,0,.35);border-color: rgba(0,0,0,.32) rgba(0,0,0,.38) rgba(0,0,0,.42);box-shadow: inset 0 1px 0 hsla(0,0%,100%,.05), inset 0 0 1px hsla(0,0%,100%,.15), 0 1px 0 hsla(0,0%,100%,.05);"),ae.appendChild(se),document.body.appendChild(ee),{close:this.close,previewBody:this.previewBody}}iframeBox(U,G){let ee=document.createElement("iframe");return ee.style.border="0px",ee.style.position="absolute",ee.style.width="0px",ee.style.height="0px",ee.style.right="0px",ee.style.top="0px",ee.setAttribute("id",U),ee.setAttribute("src",G),ee}Iframe(U){let G=this.settings.id;U=U||new Date().getTime();let ee=this,ne=this.iframeBox(G,U);try{if(this.settings.preview){ne.setAttribute("style","border: 0px;flex: 1;");let re=this.previewBox(),oe=re.previewBody,ie=re.close;oe.appendChild(ne),this.addEvent(ie,"click",function(){ee.previewBoxHide()})}else document.body.appendChild(ne);ne.doc=null,ne.doc=ne.contentDocument?ne.contentDocument:ne.contentWindow?ne.contentWindow.document:ne.document}catch(re){throw new Error(re+". iframes may not be supported in this browser.")}if(ne.doc==null)throw new Error("Cannot find document.");return ne}};var t$2={directiveName:"print",mounted(te,U,G){let ee=U.instance,ne="";var re,oe,ie;oe="click",ie=()=>{if(typeof U.value=="string")ne=U.value;else{if(typeof U.value!="object"||!U.value.id)return void window.print();{ne=U.value.id;let ae=ne.replace(new RegExp("#","g"),"");document.getElementById(ae)||(console.log("id in Error"),ne="")}}le()},(re=te).addEventListener?re.addEventListener(oe,ie,!1):re.attachEvent?re.attachEvent("on"+oe,ie):re["on"+oe]=ie;const le=()=>{new e$3({ids:ne,vue:ee,url:U.value.url,standard:"",extraHead:U.value.extraHead,extraCss:U.value.extraCss,zIndex:U.value.zIndex||20002,previewTitle:U.value.previewTitle||"打印预览",previewPrintBtnLabel:U.value.previewPrintBtnLabel||"打印",popTitle:U.value.popTitle,preview:U.value.preview||!1,asyncUrl:U.value.asyncUrl,previewBeforeOpenCallback(){U.value.previewBeforeOpenCallback&&U.value.previewBeforeOpenCallback(ee)},previewOpenCallback(){U.value.previewOpenCallback&&U.value.previewOpenCallback(ee)},openCallback(){U.value.openCallback&&U.value.openCallback(ee)},closeCallback(){U.value.closeCallback&&U.value.closeCallback(ee)},beforeOpenCallback(){U.value.beforeOpenCallback&&U.value.beforeOpenCallback(ee)}})}},install:function(te){te.directive("print",t$2)}},FieldRenderType=(te=>(te.String="string",te.Integer="interget",te))(FieldRenderType||{}),DynamicTableType=(te=>(te.Default="default",te.DataForm="dataForm",te))(DynamicTableType||{}),ItableType=(te=>(te.Link="link",te))(ItableType||{}),FieldType=(te=>(te.Text="text",te.Select="select",te.Date="date",te.DateTime="datetime",te.CheckBox="checkbox",te.Switch="switch",te.Radio="radio",te.Textarea="textarea",te.Number="number",te.NumberRange="numberRange",te.Cascader="cascader",te.Daterange="daterange",te.Monthrange="monthrange",te.File="file",te.TreeSelect="treeSelect",te.Year="year",te.Month="month",te.Hr="hr",te.Slot="slot",te.Editor="editor",te.Password="password",te.Json="json",te.Markdown="markdown",te.Rate="rate",te.TimeRange="timerange",te.Time="time",te.DateTimeRange="datetimerange",te))(FieldType||{});let nanoid=(te=21)=>crypto.getRandomValues(new Uint8Array(te)).reduce((U,G)=>(G&=63,G<36?U+=G.toString(36):G<62?U+=(G-26).toString(36).toUpperCase():G>62?U+="-":U+="_",U),"");const screenDesignMainStore=pinia.defineStore({id:"design",state:()=>({theme:localStorage.getItem("design-theme")||"",stageWidth:1920,stageHeight:1080,scale:.2,targetsWidget:[],sketchRuleLine:{h:[],v:[]},widgetConfg:{config:{backgroundColor:"transparent",backgroundImage:""},list:[]},widgetHoverIds:[],pasteWidget:[],createLoading:!1,showRightPannel:!1,tempChartData:{},chartData:{},countMap:{}}),getters:{getScale(){return this.scale},getStage(){return{stageWidth:this.stageWidth,stageHeight:this.stageHeight}},getSketchRuleLine(){return this.sketchRuleLine},getTargetWidget(){return this.targetsWidget},getWidgetConfig(){return this.widgetConfg.config},getWidgetList(){return this.widgetConfg.list},getWidgetHoverIds(){return this.widgetHoverIds},getPasteWidget(){return this.pasteWidget},getCreateLoading(){return this.createLoading},getRightPannel(){return this.showRightPannel},getTheme(){return this.theme},getChartData(){return this.chartData},getCountMap(){return this.countMap}},actions:{setSacle(te){this.scale=te/100},setSketchRuleLine(te,U){this.sketchRuleLine.h=te,this.sketchRuleLine.v=U},clearSketchRuleLine(){this.sketchRuleLine={h:[],v:[]}},setTargetWidget(te){this.targetsWidget=te},setWidgetList(te){this.widgetConfg.list=te},setWidgetHoverIds(te){this.widgetHoverIds=te},delWidgetItem(te){this.setWidgetList(this.getWidgetList.filter(U=>!te.includes(U.id))),this.setTargetWidget(this.getTargetWidget.filter(U=>!te.includes(U.id)))},copyWidgetItem(te){this.pasteWidget=[],te.forEach(U=>{const G=this.getWidgetList.find(ee=>ee.id==U);G&&this.pasteWidget.push(G)})},pasteWidgetItem(){this.pasteWidget.forEach(G=>{const ee=JSON.parse(JSON.stringify(G));let ne=ee.x,re=ee.y;ee.x+40>this.stageWidth-ee.w?ne=this.stageWidth-ee.w-40:ne+=40,ee.y+40>this.stageHeight-ee.h?re=this.stageHeight-ee.h-40:re+=40,this.widgetConfg.list.unshift({...ee,id:nanoid(),x:ne,y:re,z:this.widgetConfg.list.length+1,locked:!1})})},sortWidgetList(){this.widgetConfg.list.sort((te,U)=>U.z-te.z)},setCreateLoading(te){this.createLoading=te,te&&(this.targetsWidget=[],this.clearSketchRuleLine())},setRightPannel(te){this.showRightPannel=te},setStageWidth(te){this.stageWidth=te,this.widgetConfg.config.stageWidth=te},setStageHeight(te){this.stageHeight=te,this.widgetConfg.config.stageHeight=te},setTheme(){this.theme=this.theme=="dark"?"":"dark",document.getElementsByTagName("html")[0].className=this.theme,localStorage.setItem("design-theme",this.theme)},setChartData(te){this.chartData=te},setCountMap(te,U){this.countMap[te]=U}}});/*!
2
2
  * Compressor.js v1.2.1
3
3
  * https://fengyuanchen.github.io/compressorjs
4
4
  *
@@ -900,7 +900,7 @@ ${ue} div ,${ue} span,${ue} a,${ue} * {
900
900
  }`),de=vue.ref({});G({},oe);const fe=vue.ref(0),ve=async()=>{var Ne;const Ve=await U.$baseHttp.post("/api/ace-data-center/file-extract-cache/count",{modelId:(Ne=re==null?void 0:re.model)==null?void 0:Ne.id,extractStatus:"00"});fe.value=Ve.data};ve();const he=vue.ref({}),pe=()=>{var Ve;if(((Ve=re.model)==null?void 0:Ve.publishStatus)!=2){U.$message.warning("模型未发布无法抽取");return}U.$baseConfirm({content:"是否立即执行",callConfirm:async()=>{var Pe,we;me.value=[],_e.value=[],ue.value=null;const{params:Ne}=ee(oe),Se=await U.$baseHttp.post("/api/ace-data-center/file-extract/extract",{title:re.model.modelName,modelId:re.model.id,fileUrl:vue.unref(he).link,fileName:vue.unref(he).originalName,extractType:Ne.extractType,hasPicture:Ne.hasPicture,projectId:U.$baseGetCurrentProjectId(),pluginScript:vue.unref(ce)},{headers:{loading:!0}});if(Se&&(ue.value=Se.data,(Pe=Se.data)!=null&&Pe.isExtractSuccess?U.$message.success("抽取成功"):U.$message.warning("抽取失败"),!Se.data.isValidateSuccess)){me.value=((we=Se.data)==null?void 0:we.errorValidateData)??[];const ke=await ne(re.model.id);ke.data&&ke.data.unshift({label:"异常情况",prop:"异常情况",mapLabel:"异常情况"}),_e.value=(ke.data??[]).map(Te=>({...Te,prop:Te.mapLabel}));return}}})},ge=async()=>{var Ve;if(((Ve=re.model)==null?void 0:Ve.publishStatus)!=2){U.$message.warning("模型未发布无法抽取");return}U.$baseConfirm({content:"是否立即执行批量抽取",callConfirm:async()=>{const{params:Ne}=ee(oe);await U.$baseHttp.post("/api/ace-data-center/file-extract/batch-extract",{title:re.model.modelName,modelId:re.model.id,extractType:Ne.extractType,hasPicture:Ne.hasPicture,projectId:U.$baseGetCurrentProjectId(),pluginScript:vue.unref(ce)},{headers:{loading:!0}})&&(U.$message.success("操作完成"),ve())}})},me=vue.ref([]),_e=vue.ref([]),ye=async Ve=>{const Ne=new FormData;Ne.append("file",Ve.file);const Se=await U.$baseHttp.post("/api/ace-api/blade-resource/oss/endpoint/put-file",Ne,{headers:{"Content-Type":"multipart/form-data",loading:!0}});Se&&(he.value=Se.data,U.$message.success("上传成功"))},be=async Ve=>{const Ne=new FormData;Ne.append("file",Ve.file);const Se=await U.$baseHttp.post("/api/ace-api/blade-resource/oss/endpoint/put-file",Ne,{headers:{"Content-Type":"multipart/form-data",loading:!0}});!Se||!await U.$baseHttp.post("/api/ace-data-center/file-extract-cache/submit",{modelId:re.model.id,fileUrl:Se.data.link,fileName:Se.data.originalName,extractStatus:"00",projectId:U.$baseGetCurrentProjectId()},{headers:{loading:!0}})||(U.$message.success("操作完成"),ve())},xe=async()=>{var Ne,Se;let Ve;Ve=await U.$baseHttp.get("/api/ace-data-center/file-extract/getDebugData",{params:{fileUrl:(Ne=vue.unref(he))==null?void 0:Ne.link,modelId:(Se=re.model)==null?void 0:Se.id}}),Ve&&(Ve=await U.$baseHttp.post("/api/ace-data-center/plugin-script/pluginScriptDebug",{paramData:JSON.stringify(Ve.data[0]),pluginScript:vue.unref(ce)}),Ve&&(de.value=JSON.parse(Ve.data||"{}"),U.$message.success("插件执行完成")))},Ce=async()=>{const Ve=await U.$baseHttp.get(`/api/ace-data-center/file-extract-template/detailByParams?modelId=${re.model.id}`);if(Ve){if(!Ve.data){U.$message.warning("暂无数据");return}U.$globalUtils.exportFile(Ve.data.modelTemplateFileUrl,Ve.data.modelTemplateFileName)}},$e=()=>{vue.unref(ae).init({businessId:re.model.id})},Ee=async()=>{vue.unref(se).init()};return(Ve,Ne)=>{var Te,De;const Se=vue.resolveComponent("aceHeader"),Pe=vue.resolveComponent("AppCodemirror"),we=vue.resolveComponent("AppForm"),ke=vue.resolveComponent("AppTable");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$n,[vue.createElementVNode("div",_hoisted_2$i,[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"success",onClick:Ee},{default:vue.withCtx(()=>[_hoisted_3$h,vue.createTextVNode(" 模板上传 ")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"warning",class:"ml-3",onClick:Ce},{default:vue.withCtx(()=>[_hoisted_4$f,vue.createTextVNode(" 模板下载 ")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",class:"ml-3",onClick:$e},{default:vue.withCtx(()=>[_hoisted_5$d,vue.createTextVNode(" 导入历史 ")]),_:1})]),vue.unref(ue)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$b,[vue.createVNode(vue.unref(elementPlus.ElAlert),{title:"温馨提醒",type:vue.unref(ue).isExtractSuccess?"success":"warning","show-icon":"",closable:!1},{default:vue.withCtx(()=>[vue.unref(ue).isTitleCheckSuccess===!1?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[_hoisted_7$a,vue.createTextVNode(" 请检查Excel文件数据! ")],64)):vue.unref(ue).isValidateSuccess?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createTextVNode(" 本批数据共有"+vue.toDisplayString(vue.unref(ue).dataTotalNum)+"条,全部通过校验。 ",1)],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createTextVNode(" 本批数据共有"+vue.toDisplayString(vue.unref(ue).dataTotalNum)+"条, 已校验"+vue.toDisplayString(vue.unref(ue).validateSuccessNum+vue.unref(ue).validateFailNum)+"条, "+vue.toDisplayString(vue.unref(ue).validateFailNum)+"条 ",1),_hoisted_8$8,vue.createTextVNode(" 当前异常率约为"+vue.toDisplayString(Number(vue.unref(ue).validateFailNum/(vue.unref(ue).validateSuccessNum+vue.unref(ue).validateFailNum)*100).toFixed(2))+"% ",1)],64))]),_:1},8,["type"])])):vue.createCommentVNode("",!0),vue.createVNode(we,{form:vue.unref(oe)},{debug:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElPopover),{width:1e3,trigger:"hover"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary"},{default:vue.withCtx(()=>[_hoisted_12$4,vue.createTextVNode(" 插件编写 ")]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_9$8,[vue.createElementVNode("div",_hoisted_10$7,[vue.createVNode(Se,{title:"插件编写",class:"mb-2"},{default:vue.withCtx(()=>{var Ie;return[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:xe,disabled:(((Ie=vue.unref(he))==null?void 0:Ie.link)??"")==""},{default:vue.withCtx(()=>[vue.createTextVNode(" 执行插件 ")]),_:1},8,["disabled"])]}),_:1}),vue.createVNode(Pe,{modelValue:vue.unref(ce),"onUpdate:modelValue":Ne[0]||(Ne[0]=Ie=>vue.isRef(ce)?ce.value=Ie:null)},null,8,["modelValue"])]),vue.createElementVNode("div",_hoisted_11$5,[vue.createVNode(Se,{title:"插件执行结果",class:"mb-2"}),vue.createVNode(vue.unref(JsonEditorVue),{style:{height:"300px"},modelValue:vue.unref(de),"onUpdate:modelValue":Ne[1]||(Ne[1]=Ie=>vue.isRef(de)?de.value=Ie:null)},null,8,["modelValue"])])])]),_:1})]),fileUrl:vue.withCtx(({element:Ie})=>[vue.createVNode(vue.unref(elementPlus.ElUpload),{style:{width:"300px"},drag:"","on-remove":()=>Ie.value="","on-success":()=>Ie.value="1",ref_key:"uploadRef",ref:ie,"http-request":ye,accept:"'.xls', '.xlsx'",multiple:!1},{default:vue.withCtx(()=>[_hoisted_13$2,_hoisted_14$2]),_:2},1032,["on-remove","on-success"]),vue.createElementVNode("div",_hoisted_15$1,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",disabled:Ie.value=="",onClick:pe},{default:vue.withCtx(()=>[_hoisted_16$1,vue.createTextVNode(" 立即抽取 ")]),_:2},1032,["disabled"])])]),batchFileUrl:vue.withCtx(({element:Ie})=>[vue.createVNode(vue.unref(elementPlus.ElUpload),{style:{width:"300px"},drag:"","http-request":be,accept:"'.xls', '.xlsx'",multiple:"","show-file-list":!1},{default:vue.withCtx(()=>[_hoisted_17$1,_hoisted_18$1]),_:1}),vue.createElementVNode("div",_hoisted_19$1,[vue.createElementVNode("span",_hoisted_20$1,"批量待抽取数:"+vue.toDisplayString(vue.unref(fe))+"个",1),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:Ne[2]||(Ne[2]=Me=>vue.unref(le).init())},{default:vue.withCtx(()=>[vue.createTextVNode("查看详情")]),_:1})]),vue.createElementVNode("div",_hoisted_21$1,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",disabled:vue.unref(fe)<=0,onClick:ge},{default:vue.withCtx(()=>[_hoisted_22$1,vue.createTextVNode(" 批量抽取 ")]),_:1},8,["disabled"])])]),_:1},8,["form"]),vue.unref(_e).length>0?(vue.openBlock(),vue.createBlock(ke,{key:1,class:"mt-4",list:vue.unref(me),tableData:vue.unref(_e),loading:!1},null,8,["list","tableData"])):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$u,{ref_key:"modelFileCacheListRef",ref:le,modelId:(Te=re==null?void 0:re.model)==null?void 0:Te.id,onSuccess:Ne[3]||(Ne[3]=Ie=>ve())},null,8,["modelId"]),vue.createVNode(_sfc_main$t,{ref_key:"modelExtractLogRef",ref:ae},null,512),vue.createVNode(_sfc_main$s,{ref_key:"modelExecelEditRef",ref:se,modelId:(De=re==null?void 0:re.model)==null?void 0:De.id},null,8,["modelId"])])}}}),_sfc_main$p=vue.defineComponent({__name:"taskDesign",setup(te,{expose:U}){const{proxy:G}=vue.getCurrentInstance(),{setFormValue:ee,getFormValue:ne}=G.$globalHooks.useForm(),re=vue.reactive([{name:"执行周期",type:FieldType.Radio,fieldName:"fd",value:"",required:!0,options:[{label:"每天",value:"DAY"},{label:"每周",value:"WEEK"},{label:"每月",value:"MONTH"}],changeFunc:le=>{const ae=re.find(se=>se.fieldName==="xxlJobId");le.isChange&&(ae.value=null,ae.options=[]),(le.value??"")!=""&&(ae.options=G.$globalUtils.taskOptions.filter(se=>se.type==le.value))}},{name:"执行时间",type:FieldType.Select,fieldName:"xxlJobId",value:"",required:!0,fieldType:FieldRenderType.String},{name:"是否开启",type:FieldType.Radio,fieldName:"status",value:"",required:!0,dict:"taskStatus"}]);return U({init:(le={})=>{var ae;!le.fd&&le.xxlJobId&&(le.fd=((ae=G.$globalUtils.taskOptions.find(se=>se.value==le.xxlJobId))==null?void 0:ae.type)??""),ee(le,re)},getForm:()=>ne(re),formData:re}),(le,ae)=>{const se=vue.resolveComponent("AppForm");return vue.openBlock(),vue.createBlock(se,{form:vue.unref(re)},null,8,["form"])}}}),taskDesign_vue_vue_type_style_index_0_scoped_16c11e9a_lang="",taskDesign=_export_sfc$2(_sfc_main$p,[["__scopeId","data-v-16c11e9a"]]),_hoisted_1$m={class:"flex"},_hoisted_2$h={class:"flex-1 overflow-hidden"},_hoisted_3$g=vue.createElementVNode("i",{class:"ml-2 cursor-pointer ri-lightbulb-line text-color-warning"},null,-1),_hoisted_4$e={class:"mt-2"},_hoisted_5$c={class:"flex-1 ml-5"},_hoisted_6$a={class:"mt-2"},_hoisted_7$9={class:"flex mt-3"},_hoisted_8$7={class:"flex-1 overflow-hidden"},_hoisted_9$7={class:"mt-2"},_hoisted_10$6={class:"flex-1 ml-5"},_hoisted_11$4={class:"mt-2"},_hoisted_12$3={class:"mt-2"},_sfc_main$o=vue.defineComponent({__name:"main",props:{modelAttributeList:{default:()=>[]}},setup(te,{expose:U}){const{proxy:G}=vue.getCurrentInstance(),{setFormValue:ee,getFormValue:ne}=G.$globalHooks.useForm(),re=[{sql:"select * from "}],oe=vue.ref(""),ie=vue.ref({}),le=vue.ref(),ae=vue.ref({}),se=vue.ref(!1),ue=vue.ref(!1),ce=vue.ref(null),de=vue.computed(()=>fe.find(me=>me.fieldName=="extractType")),fe=vue.reactive([{name:"方案名称",type:FieldType.Text,fieldName:"extractName",value:"",required:!0},{name:"数据流类型",type:FieldType.Radio,fieldName:"streamType",value:"",required:!0,options:[{label:"标准流",value:"STANDARD"},{label:"自定义流",value:"CUSTOM"}]},{name:"数据流类型",type:FieldType.Radio,fieldName:"extractType",value:"",required:!0,options:[{label:"全量抽取",value:"1"},{label:"增量抽取",value:"2"},{label:"协同抽取",value:"3"}],changeFunc:me=>{fe.find(_e=>_e.fieldName=="incrementalField").hide=me.value!=2}},{name:"增量字段",type:FieldType.Slot,fieldName:"incrementalField",value:"",required:!0,tip:"该字段必须为本模型字段,并且是SQL结果集中存在的字段"},{name:"taskDefinedId",type:FieldType.Text,fieldName:"taskDefinedId",hide:!0},{name:"id",type:FieldType.Text,fieldName:"id",hide:!0}]),ve=vue.ref(null),he=me=>{vue.nextTick(()=>{ee(me??{},fe),me!=null&&me.taskDefined&&(ue.value=!0),oe.value=(me==null?void 0:me.extractSql)??"",le.value=(me==null?void 0:me.extractPluginScript)??`function plugin(item){
901
901
  var data=JSON.parse(item);
902
902
  return JSON.stringify(data)
903
- }`,vue.unref(ce).init((me==null?void 0:me.taskDefined)??{}),ve.value=(me==null?void 0:me.taskDefined)??null})},pe=()=>{if(!vue.unref(oe)){G.$message.warning("请输入SQL");return}const{params:me,error:_e}=ne(fe);if(!(_e.length>0)){if(vue.unref(ue)){const{params:ye,error:be}=vue.unref(ce).getForm();if(be.length>0)return;me.taskDefined={...vue.unref(ve)??{},...ye}}return{...me,extractPluginScript:vue.unref(le),extractSql:vue.unref(oe)}}},ge=async me=>{se.value=!0;const _e={dataSourceId:0,extractSql:vue.unref(oe),projectId:G.$baseGetCurrentProjectId()};me==="javascript"&&(_e.extractPluginScript=vue.unref(le)||"",_e.streamType=fe.find(be=>be.fieldName=="streamType").value);const ye=await G.$baseHttp.post("/api/ace-data-center/db-extract/dbExtractDebug",_e);se.value=!1,ye&&(me==="sql"?ie.value=ye.data:ae.value=ye.data,G.$message.success("执行成功"))};return U({extractSql:oe,init:he,getValue:pe}),(me,_e)=>{const ye=vue.resolveComponent("aceHeader"),be=vue.resolveComponent("AppCodemirror"),xe=vue.resolveComponent("AppForm");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$m,[vue.createElementVNode("div",_hoisted_2$h,[vue.createVNode(ye,{title:"SQL数据抽取"},{left:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElPopover),{width:"600",placement:"bottom",trigger:"hover"},{reference:vue.withCtx(()=>[_hoisted_3$g]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTable),{data:re},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"sql",label:"SQL示例"},{default:vue.withCtx(({row:Ce})=>[vue.createVNode(vue.unref(elementPlus.ElTooltip),{content:Ce.sql,placement:"top"},{default:vue.withCtx(()=>[vue.createElementVNode("span",null,vue.toDisplayString(String(Ce.sql).substring(1,30))+"...",1)]),_:2},1032,["content"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{label:"操作",width:"120"},{default:vue.withCtx(({row:Ce})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:$e=>oe.value=Ce.sql},{default:vue.withCtx(()=>[vue.createTextVNode("复制到编辑框")]),_:2},1032,["onClick"])]),_:1})]),_:1})]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(se),type:"warning",onClick:_e[0]||(_e[0]=Ce=>ge("sql"))},{default:vue.withCtx(()=>[vue.createTextVNode("执行SQL")]),_:1},8,["disabled"])]),_:1}),vue.createElementVNode("div",_hoisted_4$e,[vue.createVNode(be,{extensions:"sql",modelValue:vue.unref(oe),"onUpdate:modelValue":_e[1]||(_e[1]=Ce=>vue.isRef(oe)?oe.value=Ce:null),style:{height:"250px"}},null,8,["modelValue"])])]),vue.createElementVNode("div",_hoisted_5$c,[vue.createVNode(ye,{title:"执行结果"}),vue.createElementVNode("div",_hoisted_6$a,[vue.createVNode(vue.unref(JsonEditorVue),{style:{height:"250px"},modelValue:vue.unref(ie),"onUpdate:modelValue":_e[2]||(_e[2]=Ce=>vue.isRef(ie)?ie.value=Ce:null)},null,8,["modelValue"])])])]),vue.createElementVNode("div",_hoisted_7$9,[vue.createElementVNode("div",_hoisted_8$7,[vue.createVNode(ye,{title:"插件编写"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(se),type:"warning",onClick:_e[3]||(_e[3]=Ce=>ge("javascript"))},{default:vue.withCtx(()=>[vue.createTextVNode(" 执行插件 ")]),_:1},8,["disabled"])]),_:1}),vue.createElementVNode("div",_hoisted_9$7,[vue.createVNode(be,{modelValue:vue.unref(le),"onUpdate:modelValue":_e[4]||(_e[4]=Ce=>vue.isRef(le)?le.value=Ce:null),style:{height:"250px"}},null,8,["modelValue"])])]),vue.createElementVNode("div",_hoisted_10$6,[vue.createVNode(ye,{title:"插件执行结果"}),vue.createElementVNode("div",_hoisted_11$4,[vue.createVNode(vue.unref(JsonEditorVue),{style:{height:"250px"},modelValue:vue.unref(ae),"onUpdate:modelValue":_e[5]||(_e[5]=Ce=>vue.isRef(ae)?ae.value=Ce:null)},null,8,["modelValue"])])])]),vue.createVNode(ye,{title:"抽取方案",class:"mt-4"}),vue.createVNode(xe,{form:vue.unref(fe)},{incrementalField:vue.withCtx(({element:Ce})=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:Ce.value,"onUpdate:modelValue":$e=>Ce.value=$e,placeholder:"请选择"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(me.modelAttributeList,$e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:$e.id,label:`${$e.attributeCode}(${$e.attributeComment||$e.attributeCode})`,value:$e.attributeCode},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:1},8,["form"]),vue.withDirectives(vue.createElementVNode("div",_hoisted_12$3,[vue.createVNode(ye,{title:"作业配置",class:"mb-2"},{left:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{class:"ml-2",modelValue:vue.unref(ue),"onUpdate:modelValue":_e[6]||(_e[6]=Ce=>vue.isRef(ue)?ue.value=Ce:null)},{default:vue.withCtx(()=>[vue.createTextVNode("作业配置")]),_:1},8,["modelValue"])]),_:1}),vue.withDirectives(vue.createElementVNode("div",null,[vue.createVNode(taskDesign,{ref_key:"taskDesignRef",ref:ce},null,512)],512),[[vue.vShow,vue.unref(ue)]])],512),[[vue.vShow,["1","2"].includes(vue.unref(de).value)]])],64)}}}),_withScopeId$8=te=>(vue.pushScopeId("data-v-5e352c92"),te=te(),vue.popScopeId(),te),_hoisted_1$l={class:"flex items-center mt-2"},_hoisted_2$g={class:"flex-1"},_hoisted_3$f={class:"mt-2 text-gray-400"},_hoisted_4$d=_withScopeId$8(()=>vue.createElementVNode("label",null,"模型名称:",-1)),_hoisted_5$b=_withScopeId$8(()=>vue.createElementVNode("label",null,"模型代码:",-1)),_hoisted_6$9=_withScopeId$8(()=>vue.createElementVNode("label",null,"模型描述:",-1)),_sfc_main$n=vue.defineComponent({__name:"model-db-extract-design",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),{allModel:oe,allModelAttribute:ie,getDetail:le}=fetch$1(re).model,ae=vue.ref(!1),se=vue.ref(null),ue=vue.ref([]),ce=vue.ref(""),de=vue.ref({}),fe=(ye,be="")=>{de.value={},ue.value=[],ae.value=!0,[{label:"ODS源",value:"odsy"},{label:"DWD源",value:"dwdy"},{label:"DWD目标",value:"dwdmb"}].forEach(xe=>{ue.value.push({...xe,attributeList:xe.value=="dwdmb"?[]:{},options:[],selectValue:[],currentVal:"",checkAttributeList:[]})}),ce.value=vue.unref(ue)[0].value,oe({modelLayer:"ODS"}).then(xe=>{vue.unref(ue).find(Ce=>Ce.value=="odsy").options=xe.data}),oe({modelLayer:"DWD"}).then(xe=>{vue.unref(ue).find(Ce=>Ce.value=="dwdy").options=xe.data}),ie({modelId:ee.modelId}).then(xe=>{vue.unref(ue).find(Ce=>Ce.value=="dwdmb").attributeList=xe.data}),le(ee.modelId).then(xe=>{de.value=xe.data}),vue.nextTick(()=>{be?re.$baseHttp.get(`/api/ace-data-center/db-extract/detailAndTask?dbExtractId=${be}`).then(xe=>{vue.unref(se).init(ye=="COPY"?{...xe.data,id:null,extractType:null,incrementalField:null,status:null,taskDefined:null,taskDefinedId:null,createUser:null,createDept:null,createTime:null,updateUser:null,updateTime:null}:xe.data)}):vue.unref(se).init()})},ve=(ye,be="")=>be?ye.options.find(xe=>xe.id==be):ye.options.find(xe=>xe.id==ye.currentVal),he=ye=>{var be;if(ye.selectValue.length){const xe=ye.selectValue.at(-1);ye.currentVal=(be=ve(ye,xe))==null?void 0:be.id,pe(ye);return}ye.currentVal=""},pe=ye=>{ye.attributeList[ye.currentVal]||ie({modelId:ye.currentVal}).then(be=>{ye.attributeList[ye.currentVal]=be.data})},ge=ye=>{ce.value=ye},me=ye=>{var be;vue.unref(se).extractSql+=`select ${ye.checkAttributeList.map(xe=>xe.attributeCode).toString()} from ${(be=ve(ye))==null?void 0:be.modelCode}`},_e=async()=>{const ye={execExtract:0,dataSourceId:0,modelId:ee.modelId,projectId:re.$baseGetCurrentProjectId()},be=vue.unref(se).getValue();!be||!await re.$baseHttp.post("/api/ace-data-center/db-extract/submitDbExtract",{...ye,...be},{headers:{loading:!0}})||(re.$message.success("操作成功"),ae.value=!1,ne("success"))};return U({init:fe}),(ye,be)=>{const xe=vue.resolveComponent("aceHeader"),Ce=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(Ce,{modelValue:vue.unref(ae),"onUpdate:modelValue":be[1]||(be[1]=$e=>vue.isRef(ae)?ae.value=$e:null),title:"数据抽取",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:_e},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:be[0]||(be[0]=$e=>ae.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden",style:{"margin-top":"0"}},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"flex flex-col pr-4 mr-5",style:{width:"320px",overflow:"hidden"}},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),$e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{onClick:Ee=>ge($e.value),type:vue.unref(ce)==$e.value?"primary":"",key:$e.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString($e.label),1)]),_:2},1032,["onClick","type"]))),128))]),_:1}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),$e=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:$e.value},[$e.value==vue.unref(ce)&&["odsy","dwdy"].includes($e.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(xe,{class:"mt-2",title:"模型选择"}),vue.createElementVNode("div",_hoisted_1$l,[vue.createElementVNode("div",_hoisted_2$g,[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:$e.selectValue,"onUpdate:modelValue":Ee=>$e.selectValue=Ee,onChange:()=>he($e),multiple:"","collapse-tags":"",clearable:"",placeholder:"请选择一个模型",class:"w-full"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList($e.options,Ee=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Ee.id,label:Ee.modelName,value:Ee.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),$e.selectValue.length?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{key:0,placement:"right",width:"300",trigger:"hover"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElBadge),{value:$e.selectValue.length,class:"ml-4"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),null,{default:vue.withCtx(()=>[vue.createTextVNode("模型")]),_:1})]),_:2},1032,["value"])]),default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList($e.selectValue,Ee=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:Ee,type:$e.currentVal==Ee?"warning":"primary",onClick:Ve=>{$e.currentVal=Ee,pe($e)},style:{margin:"0 7px 7px 0",cursor:"pointer"}},{default:vue.withCtx(()=>{var Ve;return[vue.createTextVNode(vue.toDisplayString((Ve=ve($e,Ee))==null?void 0:Ve.modelName),1)]}),_:2},1032,["type","onClick"]))),128))]),_:2},1024)):vue.createCommentVNode("",!0)]),$e.currentVal?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTooltip),{key:0,effect:"dark",content:`${ve($e).modelName}[${ve($e).modelCode}]`,placement:"bottom"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3$f,vue.toDisplayString(`${ve($e).modelName}[${ve($e).modelCode}]`),1)]),_:2},1032,["content"])):vue.createCommentVNode("",!0),vue.createVNode(xe,{class:"mt-2 mb-2",title:"字段属性"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:$e.checkAttributeList.length==0,type:"primary",onClick:Ee=>me($e)},{default:vue.withCtx(()=>[vue.createTextVNode(" 复制select语句到编辑框 ")]),_:2},1032,["disabled","onClick"])]),_:2},1024),vue.createVNode(vue.unref(elementPlus.ElTable),{data:$e.attributeList[$e.currentVal],height:"100%",onSelectionChange:Ee=>$e.checkAttributeList=Ee},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{type:"selection",width:"55"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeCode",label:"字段名称"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeComment",label:"字段描述"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"dataType",label:"数据类型"})]),_:2},1032,["data","onSelectionChange"])],64)):vue.createCommentVNode("",!0),$e.value==vue.unref(ce)&&["dwdmb"].includes($e.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(xe,{class:"mt-2",title:"DWD模型信息"}),vue.createElementVNode("section",null,[vue.createElementVNode("div",null,[_hoisted_4$d,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(de).modelName),1)]),vue.createElementVNode("div",null,[_hoisted_5$b,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(de).modelCode),1)]),vue.createElementVNode("div",null,[_hoisted_6$9,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(de).modelDesc),1)])]),vue.createVNode(vue.unref(elementPlus.ElTable),{data:$e.attributeList,height:"100%"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"mapCode",label:"映射字段"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeComment",label:"名称"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{label:"来源"},{default:vue.withCtx(({row:Ee,$index:Ve})=>[vue.createTextVNode(vue.toDisplayString(Ee.sourceModelName)+"."+vue.toDisplayString(Ee.sourceColumnName),1)]),_:1})]),_:2},1032,["data"])],64)):vue.createCommentVNode("",!0)],64))),128))]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$o,{ref_key:"designMainRef",ref:se,modelAttributeList:vue.unref(ue).at(-1).attributeList},null,8,["modelAttributeList"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}}}),modelDbExtractDesign_vue_vue_type_style_index_0_scoped_5e352c92_lang="",modelDbExtractDesign=_export_sfc$2(_sfc_main$n,[["__scopeId","data-v-5e352c92"]]),_sfc_main$m=vue.defineComponent({__name:"taskLog",setup(te,{expose:U}){const G=vue.ref(!1),ee=vue.ref(!1),ne=vue.ref(null),re=vue.ref(""),oe=vue.reactive([]),ie=vue.reactive([]),le=vue.reactive([{label:"调度参数",prop:"args"},{label:"调度结果",prop:"code"},{label:"调度日志",prop:"msg",slot:!0},{label:"调度开始时间",prop:"execBeginTime"},{label:"调度结束时间",prop:"execEndTime"}]),ae=vue.reactive([]),se=ve=>{ve.data.forEach(he=>{})},ue=(ve,he,pe)=>{},ce=async ve=>{},de=async ve=>{G.value=!0,vue.nextTick(()=>{vue.unref(ne).getData({url:`/api/ace-api/blade-system/task-log/list?taskId=${ve}&descs=create_time`})})},fe=ve=>{ee.value=!0,re.value=ve.msg};return U({init:de}),(ve,he)=>{const pe=vue.resolveComponent("el-link"),ge=vue.resolveComponent("appList"),me=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(me,{modelValue:vue.unref(G),"onUpdate:modelValue":he[1]||(he[1]=_e=>vue.isRef(G)?G.value=_e:null),title:"调度日志",size:1e3},{default:vue.withCtx(()=>[vue.createVNode(ge,{ref_key:"appRef",ref:ne,tableData:vue.unref(le),searchForm:vue.unref(oe),searchBtns:vue.unref(ie),formData:vue.unref(ae),onFormSuccess:ue,onSuccess:se,onBtnClick:ce},{msg:vue.withCtx(({row:_e})=>[vue.createVNode(pe,{type:"primary",onClick:ye=>fe(_e)},{default:vue.withCtx(()=>[vue.createTextVNode("查看调度日志")]),_:2},1032,["onClick"])]),_:1},8,["tableData","searchForm","searchBtns","formData"]),vue.createVNode(me,{modelValue:vue.unref(ee),"onUpdate:modelValue":he[0]||(he[0]=_e=>vue.isRef(ee)?ee.value=_e:null),title:"调度日志",size:"100%"},{default:vue.withCtx(()=>[vue.createElementVNode("pre",null,vue.toDisplayString(vue.unref(re)),1)]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}}),_sfc_main$l=vue.defineComponent({__name:"model-db-extract",props:{model:{default:{}}},setup(te){const U=te,{proxy:G}=vue.getCurrentInstance(),ee=vue.ref(null),ne=vue.ref(null),re=vue.ref(null),oe=vue.ref(null),ie=`/api/ace-data-center/db-extract/list?modelId=${U.model.id}&projectId=${G.$baseGetCurrentProjectId()}`,le=vue.reactive([{name:"新增",key:"ADD",type:"primary",icon:"ri-add-line"}]),ae=vue.reactive([{label:"抽取方案名称",prop:"extractName"},{label:"抽取类型",prop:"extractType",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=extractType",label:"dictValue",value:"dictKey"}},{label:"操作",prop:"htmlButton",fixed:"right"}]),se=ce=>{ce.data.forEach(de=>{de.htmlButton=[],de.htmlButton.push({name:"编辑",key:"EDIT",type:"primary",icon:"ri-edit-line"}),de.htmlButton.push({name:"复制",key:"COPY",type:"primary",icon:"ri-file-copy-line"}),de.htmlButton.push({name:"抽取记录",key:"LOG",type:"primary",icon:"ri-file-line"}),de.taskDefinedId&&de.htmlButton.push({name:"作业调度日志",key:"TASK-LOG",type:"primary",icon:"ri-file-line"}),[1,2].includes(de.extractType)&&de.htmlButton.push({name:"抽取",key:"PUSH",type:"primary",icon:"ri-pushpin-line"}),de.htmlButton.push({name:"删除",key:"DEL",type:"danger",icon:"ri-delete-bin-6-line"})})},ue=ce=>{const{type:de,row:fe}=ce;switch(de){case"ADD":case"COPY":case"EDIT":vue.unref(oe).init(de,(fe==null?void 0:fe.id)??"");break;case"LOG":vue.unref(ee).init({businessId:fe.id,businessType:"db_extract",table:[{label:"日期",prop:"createTime"},{label:"数据总数",prop:"totalNum"},{label:"成功数",prop:"successNum"},{label:"失败数",prop:"failNum"},{label:"协同参数",prop:"collaborateValue"},{label:"操作",prop:"action",slot:!0,fixed:"right"}]});break;case"TASK-LOG":vue.unref(ne).init(fe.taskDefinedId??"");break;case"PUSH":G.$baseConfirm({content:"是否抽取?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/extract/${fe.id}`,{},{headers:{loading:!0}})&&G.$message.success("操作成功")}});break;case"DEL":G.$baseConfirm({content:"是否删除?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/removeById/${fe.id}`,{},{headers:{loading:!0}})&&(G.$message.success("操作成功"),vue.unref(re).getData())}});break}};return(ce,de)=>{const fe=vue.resolveComponent("appList");return vue.openBlock(),vue.createBlock(fe,{ref_key:"appRef",ref:re,url:ie,tableData:vue.unref(ae),searchBtns:vue.unref(le),onSuccess:se,onBtnClick:ue},{default:vue.withCtx(()=>{var ve;return[vue.createVNode(_sfc_main$t,{ref_key:"modelExtractLogRef",ref:ee},null,512),vue.createVNode(modelDbExtractDesign,{ref_key:"modelDbExtractDesignRef",ref:oe,modelId:(ve=U==null?void 0:U.model)==null?void 0:ve.id,onSuccess:de[0]||(de[0]=he=>vue.unref(re).getData())},null,8,["modelId"]),vue.createVNode(_sfc_main$m,{ref_key:"taskLogRef",ref:ne},null,512)]}),_:1},8,["tableData","searchBtns"])}}}),_hoisted_1$k={class:"flex max-h-80"},_hoisted_2$f={key:0,class:"p-2 mr-3 border border-gray-200 border-solid w-80"},_hoisted_3$e=vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1),_hoisted_4$c={key:0,class:"overflow-x-hidden overflow-y-auto max-h-60"},_hoisted_5$a={key:1},_hoisted_6$8={class:"flex-1 overflow-hidden border border-gray-200 border-solid"},_hoisted_7$8={class:"flex justify-between p-2"},_hoisted_8$6=vue.createElementVNode("i",{class:"mr-1 ri-add-line"},null,-1),_hoisted_9$6=vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1),_hoisted_10$5={class:"flex-1 h-full p-2 overflow-y-auto"},_sfc_main$k=vue.defineComponent({__name:"model-search-setting",props:{menu:{default:()=>[]},businessType:{default:"indicators"},businessId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),{getDetail:oe}=fetch$1(re).model,{dynamicSearchForm:ie,dynamicSearchFormat:le,dynamicSearchParams:ae}=re.$aceDynamicSearch(),se=vue.computed(()=>{let he="select * from yourTable temp where ";const pe=[];return ie.value.forEach(ge=>{ge.type=="stringSingle"?pe.push(`temp.xxx like concat('%',#{query.${ge.key}},'%')`):ge.type=="numberSingle"||ge.type=="select"?pe.push(`temp.xxx = #{query.${ge.key}}`):ge.type=="numberRange"?(pe.push(`temp.xxx>= #{query.${ge.key}1}`),pe.push(`temp.xxx<= #{query.${ge.key}2}`)):ge.type=="yySingle"?pe.push(`toYear(temp.xxx)= #{query.${ge.key}}`):ge.type=="yyRange"?(pe.push(`toYear(temp.xxx)>= #{query.${ge.key}1}`),pe.push(`toYear(temp.xxx)<#{query.${ge.key}2}`)):ge.type=="yymmSingle"?pe.push(`formatDateTime(temp.xxx,'%Y-%m') = #{query.${ge.key}}`):ge.type=="yymmRange"?pe.push(`formatDateTime(temp.xxx,'%Y-%m') BETWEEN #{query.${ge.key}1} and #{query.${ge.key}2}`):ge.type=="yymmddSingle"?pe.push(`formatDateTime(temp.xxx,'%Y-%m-%d') = #{query.${ge.key}}`):ge.type=="yymmddRange"&&pe.push(`formatDateTime(temp.xxx,'%Y-%m-%d') BETWEEN #{query.${ge.key}1} and #{query.${ge.key}2}`)}),he+=pe.join(" and ")}),ue=vue.ref(ee.menu.length?ee.menu[0].value:""),ce=vue.ref(!1),de=vue.ref(!1);vue.watch(ce,async he=>{var me;if(!he)return;if(!ee.businessId){de.value=!1,ie.value=[];return}let pe;switch(de.value=!0,ie.value=[],ee.businessType){case"model":pe=await re.$baseHttp.post(`/api/ace-data-center/model/getFormJsonConfig/${ee.businessId}`);break;case"dataform":pe=await re.$baseHttp.get(`/api/ace-data-center/dataform/detail?id=${ee.businessId}`);break;case"rule":pe=await re.$baseHttp.get(`/api/ace-data-center/rule/detail?id=${ee.businessId}`);break;case"indicators":pe=await re.$baseHttp.get(`/api/ace-data-center/indicators/detail?id=${ee.businessId}`);break}const ge=JSON.parse(((me=pe==null?void 0:pe.data)==null?void 0:me.formConfJson)??"[]");["model"].includes(ee.businessType)?oe(ee.businessId).then(_e=>{ie.value=_e.data.listModelAttribute.map(ye=>({name:ye.attributeComment,key:ye.attributeCode,dataType:ye.dataType,hide:ye.hide,checked:!1,type:"",value:"",minValue:"",maxValue:"",defaultRule:"",dictId:"",options:""})),ge.forEach(ye=>{const be=vue.unref(ie).find(xe=>xe.key==ye.key);be&&(Object.keys(be).forEach(xe=>{be[xe]=ye[xe]}),be.checked=!0),["varchar","text"].includes(ye.dataType)&&!be&&(ye.type="stringSingle")}),de.value=!1}):(ie.value=ge,de.value=!1)});const fe=async()=>{let he=!1,pe=JSON.parse(JSON.stringify(vue.unref(ie)));if(["model"].includes(ee.businessType)&&(pe=pe.filter(ye=>ye.checked)),pe.forEach(ye=>{delete ye.options,(ye.key==""||ye.name==""||ye.type=="")&&(he=!0)}),he){re.$message.warning("存在字段未填写请核对");return}const ge=ae(vue.unref(ie));if(!ee.businessId){ne("success",ge),ce.value=!1;return}let me="";switch(ee.businessType){case"model":me="/api/ace-data-center/model/updateFormConfJson";break;case"dataform":me="/api/ace-data-center/dataform/submit";break;case"rule":me="/api/ace-data-center/rule/submit";break;case"indicators":me="/api/ace-data-center/indicators/updateFormConfJson";break}await re.$baseHttp.post(me,{id:ee.businessId,formConfJson:JSON.stringify(pe),paramsRemark:JSON.stringify(ge),projectId:re.$baseGetCurrentProjectId()},{headers:{loading:!0}})&&(re.$message.success("操作成功"),ne("success",ge),ce.value=!1)},ve=()=>{const he=vue.unref(ie).length;ie.value.push({key:"temp"+he,name:"字段"+he,type:"stringSingle",value:""})};return U({visible:ce,dynamicSearchForm:ie}),(he,pe)=>{const ge=vue.resolveComponent("aceDynamicSearchEdit"),me=vue.resolveComponent("AppCodemirror");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{placement:"bottom",visible:vue.unref(ce),"onUpdate:visible":pe[2]||(pe[2]=_e=>vue.isRef(ce)?ce.value=_e:null),trigger:"click","popper-style":{zIndex:9999999},width:he.menu.length?"1400px":"800px"},{reference:vue.withCtx(()=>[vue.renderSlot(he.$slots,"reference")]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$k,[he.menu.length?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$f,[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(he.menu,_e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:vue.unref(ue)==_e.value?"primary":"",key:_e.value,onClick:ye=>ue.value=_e.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(_e.label),1)]),_:2},1032,["type","onClick"]))),128))]),_:1}),_hoisted_3$e,(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(he.menu,_e=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:_e.value},[_e.value==vue.unref(ue)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.renderSlot(he.$slots,_e.value),_e.value=="tool"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$c,[vue.createVNode(ge,{form:vue.unref(ie).filter(ye=>ye.checked||ye.checked==null),isEdit:!1},null,8,["form"])])):vue.createCommentVNode("",!0),_e.value=="json"?(vue.openBlock(),vue.createElementBlock("pre",_hoisted_5$a,vue.toDisplayString(vue.unref(ae)(vue.unref(ie))),1)):vue.createCommentVNode("",!0),_e.value=="sql"?(vue.openBlock(),vue.createBlock(me,{key:2,extensions:"sql",disabled:"",modelValue:vue.unref(se),"onUpdate:modelValue":pe[0]||(pe[0]=ye=>vue.isRef(se)?se.value=ye:null),style:{height:"250px"}},null,8,["modelValue"])):vue.createCommentVNode("",!0)],64)):vue.createCommentVNode("",!0)],64))),128))])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_6$8,[vue.createElementVNode("div",_hoisted_7$8,[vue.createElementVNode("div",null,[["model"].includes(ee.businessType)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElLink),{key:0,type:"primary",onClick:ve},{default:vue.withCtx(()=>[_hoisted_8$6,vue.createTextVNode(" 新增参数 ")]),_:1}))]),vue.createElementVNode("div",null,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",onClick:fe},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",class:"ml-3",size:"small",onClick:pe[1]||(pe[1]=_e=>ce.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode(" 关闭 ")]),_:1})])]),_hoisted_9$6,vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(de),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_10$5,[vue.createVNode(ge,{form:vue.unref(ie),businessType:ee.businessType},null,8,["form","businessType"])])]),_:1},8,["loading"])])])]),_:3},8,["visible","width"])}}}),_withScopeId$7=te=>(vue.pushScopeId("data-v-13eb82bd"),te=te(),vue.popScopeId(),te),_hoisted_1$j={class:"flex justify-end"},_hoisted_2$e=_withScopeId$7(()=>vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1)),_hoisted_3$d={class:"overflow-y-auto max-h-96"},_hoisted_4$b=_withScopeId$7(()=>vue.createElementVNode("thead",null,[vue.createElementVNode("tr",null,[vue.createElementVNode("td",null,"字段名称"),vue.createElementVNode("td",null,"字段描述"),vue.createElementVNode("td",null,"数据类型"),vue.createElementVNode("td",{style:{width:"150px"}},"标题栏名称"),vue.createElementVNode("td",{style:{width:"150px"}},"列的宽度"),vue.createElementVNode("td",{style:{width:"60px"}},"固定"),vue.createElementVNode("td",{style:{width:"60px"}},"列显示"),vue.createElementVNode("td",{style:{width:"150px"}},"类型"),vue.createElementVNode("td",{style:{width:"150px"}},"额外参数"),vue.createElementVNode("td",{style:{width:"30px"}})])],-1)),_hoisted_5$9={class:"sort-target"},_hoisted_6$7=_withScopeId$7(()=>vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-move ri-mouse-line sortable-handle text-color-warning"})],-1)),_hoisted_7$7=_withScopeId$7(()=>vue.createElementVNode("i",{class:"mr-1 ri-file-cloud-line"},null,-1)),_sfc_main$j=vue.defineComponent({__name:"dynamicTableCol",props:{model:{default:{}},title:{default:"标题栏配置"}},emits:["success"],setup(te,{emit:U}){const{proxy:G}=vue.getCurrentInstance(),{getDetail:ee}=fetch$1(G).model,ne=te,re=vue.ref([]),oe=vue.ref([]),ie=vue.ref(!1),le=vue.ref(!1),ae=[{label:"文本",value:"txt"},{label:"字典",value:"dict"},{label:"地图",value:"map"},{label:"图片",value:"img"}],se=U,ue=async()=>{le.value=!0,re.value=[];const de=await ee(ne.model.id);le.value=!1,G.$baseHttp.get(`/api/ace-data-center/custom-dic/options?projectId=${G.$baseGetCurrentProjectId()}`).then(he=>{oe.value=he.data});const fe=de.data.listModelAttribute,ve=JSON.parse(de.data.columnOption||"[]");fe.forEach(he=>{const pe=ve.find(ge=>ge.prop==he.attributeCode);pe?he.columnOption=pe:he.columnOption={prop:he.attributeCode,label:he.attributeComment,labelWidth:"",fixed:!1,isShow:!["id","project_id","create_time","create_user","create_dept","_project_id","tag","_create_time","_create_user","_create_dept","_tag","_data_from"].includes(he.attributeCode),sort:"",type:"txt",ext:{}}}),fe.sort((he,pe)=>he.columnOption.sort-pe.columnOption.sort),re.value=fe},ce=async()=>{const de=[],fe=[];if(vue.unref(re).forEach((he,pe)=>{const ge=he.columnOption;ge.sort=pe+1,ge.type=="dict"?ge.ext.dictId||fe.push(`${he.attributeComment}字典值为空`):ge.ext={},de.push(ge)}),fe.length>0){G.$message.error(fe[0]);return}await G.$baseHttp.post("/api/ace-data-center/model/saveColumnOption",{id:ne.model.id,columnOption:JSON.stringify(de)})&&(G.$message.success("操作成功"),ie.value=!1,se("success"))};return(de,fe)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{placement:"bottom",visible:vue.unref(ie),"onUpdate:visible":fe[3]||(fe[3]=ve=>vue.isRef(ie)?ie.value=ve:null),trigger:"click",width:"1200px"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"warning",class:"ml-3",onClick:fe[2]||(fe[2]=ve=>ue())},{default:vue.withCtx(()=>[_hoisted_7$7,vue.createTextVNode(" "+vue.toDisplayString(de.title),1)]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$j,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",onClick:ce},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",class:"ml-3",size:"small",onClick:fe[0]||(fe[0]=ve=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("关闭")]),_:1})]),_hoisted_2$e,vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(le),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3$d,[vue.createVNode(vue.unref(vueDraggablePlus.VueDraggable),{modelValue:vue.unref(re),"onUpdate:modelValue":fe[1]||(fe[1]=ve=>vue.isRef(re)?re.value=ve:null),target:".sort-target",animation:150,handle:".sortable-handle"},{default:vue.withCtx(()=>[vue.createElementVNode("table",null,[_hoisted_4$b,vue.createElementVNode("tbody",_hoisted_5$9,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(re),ve=>(vue.openBlock(),vue.createElementBlock("tr",{key:ve.id},[vue.createElementVNode("td",null,vue.toDisplayString(ve.attributeCode),1),vue.createElementVNode("td",null,vue.toDisplayString(ve.attributeComment),1),vue.createElementVNode("td",null,vue.toDisplayString(ve.dataType),1),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:ve.columnOption.label,"onUpdate:modelValue":he=>ve.columnOption.label=he,placeholder:"名称"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:ve.columnOption.labelWidth,"onUpdate:modelValue":he=>ve.columnOption.labelWidth=he,placeholder:"列的宽度"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:ve.columnOption.fixed,"onUpdate:modelValue":he=>ve.columnOption.fixed=he},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:ve.columnOption.isShow,"onUpdate:modelValue":he=>ve.columnOption.isShow=he},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,size:"small",class:"w-full",modelValue:ve.columnOption.type,"onUpdate:modelValue":he=>ve.columnOption.type=he,placeholder:"请选择"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ae,he=>vue.createVNode(vue.unref(elementPlus.ElOption),{key:he.value,label:he.label,value:he.value},null,8,["label","value"])),64))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[["dict"].includes(ve.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,teleported:!1,size:"small",modelValue:ve.columnOption.ext.dictId,"onUpdate:modelValue":he=>ve.columnOption.ext.dictId=he,placeholder:"字典值"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(oe),he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:he.label,value:he.code,key:he.code},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),_hoisted_6$7]))),128))])])]),_:1},8,["modelValue"])])]),_:1},8,["loading"])]),_:1},8,["visible"]))}}),dynamicTableCol_vue_vue_type_style_index_0_scoped_13eb82bd_lang="",dynamicTableCol=_export_sfc$2(_sfc_main$j,[["__scopeId","data-v-13eb82bd"]]),_hoisted_1$i={class:"relative pt-2.5"},_sfc_main$i=vue.defineComponent({__name:"insert",props:{model:{default:{}},permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=G,ne=vue.ref(!1),re=vue.ref(null),oe=se=>{re.value=se,ne.value=!0},ie=()=>ee("success"),le=vue.inject("masterData"),ae=se=>{const ue=vue.unref(re).joinFieldMapping.split(":")[0],ce=vue.unref(re).joinFieldMapping.split(":")[1];se.dataMap[ce]=vue.unref(le)[ue]};return U({init:oe}),(se,ue)=>{const ce=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ce,{modelValue:vue.unref(ne),"onUpdate:modelValue":ue[0]||(ue[0]=de=>vue.isRef(ne)?ne.value=de:null),title:"从表数据编辑",size:"1200px"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$i,[vue.createVNode(_sfc_main$G,{model:vue.unref(re),permission:se.permission,onSuccess:ie,paramsCallback:ae},null,8,["model","permission"])])]),_:1},8,["modelValue"])}}}),insert_vue_vue_type_style_index_0_scoped_9480ca97_lang="",Insert=_export_sfc$2(_sfc_main$i,[["__scopeId","data-v-9480ca97"]]),_withScopeId$6=te=>(vue.pushScopeId("data-v-0f244db2"),te=te(),vue.popScopeId(),te),_hoisted_1$h={class:"mt-2.5 mb-2.5"},_hoisted_2$d={class:"flex items-center justify-between"},_hoisted_3$c={key:0,class:"relative"},_hoisted_4$a={key:0},_hoisted_5$8=_withScopeId$6(()=>vue.createElementVNode("i",{class:"ri-add-line"},null,-1)),_sfc_main$h=vue.defineComponent({__name:"slave",props:{model:{default:{}},permission:{default:()=>[]}},setup(te){const U=te,G=vue.inject("masterData"),ee=()=>{oe.value=!1,setTimeout(()=>oe.value=!0,10)},ne=vue.ref(null),re=vue.ref(""),oe=vue.ref(!0);vue.nextTick(()=>{re.value=U.model.slaveModels[0].id});const ie=vue.computed(()=>U.model.slaveModels.find(le=>le.id==vue.unref(re)));return vue.watch(re,le=>{}),(le,ae)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$h,[vue.createElementVNode("div",_hoisted_2$d,[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(le.model.slaveModels,(se,ue)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:se.id==vue.unref(re)?"primary":"",onClick:ce=>re.value=se.id},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(se.modelName),1)]),_:2},1032,["type","onClick"]))),256))]),_:1})]),vue.unref(ie)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$c,[vue.unref(oe)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$a,[vue.createVNode(_sfc_main$f,{model:vue.unref(ie),permission:le.permission,masterData:vue.unref(G)},{btns:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(ie).publishStatus=="1",type:"primary",class:"flex items-center mr-2",onClick:ae[0]||(ae[0]=se=>vue.unref(ne).init(vue.unref(ie)))},{default:vue.withCtx(()=>[_hoisted_5$8,vue.createTextVNode(" 新增数据 ")]),_:1},8,["disabled"])]),_:1},8,["model","permission","masterData"])])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0)]),vue.createVNode(Insert,{ref_key:"insertRef",ref:ne,masterId:"",model:le.model,permission:le.permission,onSuccess:ee},null,8,["model","permission"])],64))}}),slave_vue_vue_type_style_index_0_scoped_0f244db2_lang="",ModelSlave=_export_sfc$2(_sfc_main$h,[["__scopeId","data-v-0f244db2"]]),_hoisted_1$g={class:"p-4"},_sfc_main$g=vue.defineComponent({__name:"view",props:{model:{default:{}},permission:{default:()=>[]}},setup(te,{expose:U}){const G=te,{loading:ee,colValue:ne,formData:re,init:oe}=useInsertForm(G.model.id),ie=vue.ref(!1),le=vue.ref({});return vue.provide("masterData",le),U({init:se=>{ie.value=!0,le.value=se,oe(se,"update")}}),(se,ue)=>{const ce=vue.resolveComponent("aceHeader"),de=vue.resolveComponent("AppForm"),fe=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(fe,{modelValue:vue.unref(ie),"onUpdate:modelValue":ue[0]||(ue[0]=ve=>vue.isRef(ie)?ie.value=ve:null),title:"主从详情数据",size:"90%"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElSkeleton),{animated:"",loading:vue.unref(ee)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(re),ve=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:ve.key},[ve.key?(vue.openBlock(),vue.createBlock(ce,{key:0,title:ve.key},null,8,["title"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_1$g,[vue.createVNode(de,{form:ve.list,col:vue.unref(ne),disabled:""},null,8,["form","col"])])],64))),128)),vue.createVNode(ModelSlave,{model:se.model,permission:se.permission},null,8,["model","permission"])]),_:1},8,["loading"])]),_:1},8,["modelValue"])}}}),_hoisted_1$f={class:"absolute right-0 flex items-center -top-10"},_hoisted_2$c=vue.createElementVNode("i",{class:"mr-1 ri-file-upload-line"},null,-1),_hoisted_3$b=vue.createElementVNode("i",{class:"mr-1 ri-file-history-line"},null,-1),_sfc_main$f=vue.defineComponent({__name:"model-data",props:{model:{default:{}},masterData:{default:null},permission:{default:()=>[]}},setup(te){const U=te,{proxy:G}=vue.getCurrentInstance(),ee=vue.ref(null),ne=vue.ref([]),re=ae=>{ne.value=ae},oe=ae=>{const{data:se}=ae;se.forEach(ue=>{var de;(((de=U.model)==null?void 0:de.slaveModels)??[]).some(fe=>fe.parentModelId)&&ue.htmlButton.unshift({name:"详情",key:"viewBTN",type:"primary",icon:"ri-file-2-line"})})},ie=ae=>{const{type:se,row:ue}=ae;if(se=="viewBTN"){const ce={};U.model.listModelAttribute.forEach(de=>{ce[de.mapCode]=ue[de.attributeCode]}),vue.unref(ee).init(ce,"update")}},le=ae=>{const{joinFieldMapping:se}=U.model;if(U.model.joinFieldMapping&&U.masterData){const ue=se.split(":")[0],ce=se.split(":")[1];ae.params[ce]=U.masterData[ue]}return ae};return(ae,se)=>{var de,fe,ve;const ue=vue.resolveComponent("AppTable"),ce=vue.resolveComponent("aceDynamicList");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$f,[vue.renderSlot(ae.$slots,"btns"),vue.createVNode(_sfc_main$k,{ref:"modelSearchSettingRef",menu:[],businessType:"model",businessId:(de=ae.model)==null?void 0:de.id,onSuccess:se[0]||(se[0]=he=>vue.unref(G).$refs.aceDynamicListRef.init())},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"success"},{default:vue.withCtx(()=>[_hoisted_2$c,vue.createTextVNode(" 查询配置 ")]),_:1})]),attr:vue.withCtx(()=>[vue.createVNode(ue,{maxHeight:"250px",tableData:[{label:"标识符",prop:"prop"},{label:"字段名",prop:"label"}],list:vue.unref(ne)},null,8,["list"])]),_:1},8,["businessId"]),vue.createVNode(dynamicTableCol,{model:ae.model,onSuccess:se[1]||(se[1]=he=>vue.unref(G).$refs.aceDynamicListRef.init())},null,8,["model"]),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",class:"ml-3",onClick:se[2]||(se[2]=he=>vue.unref(G).$refs.aceDynamicListRef.handleExport())},{default:vue.withCtx(()=>[_hoisted_3$b,vue.createTextVNode(" 导出EXCEL ")]),_:1}),vue.createVNode(_sfc_main$g,{ref_key:"modelSlaveViewRef",ref:ee,model:ae.model,permission:ae.permission},null,8,["model","permission"])]),vue.createVNode(ce,{id:(fe=ae.model)==null?void 0:fe.id,title:(ve=ae.model)==null?void 0:ve.modelName,showPageIndex:!0,isDownLoad:!1,onTableHeader:re,formatParamsFunc:le,isDelete:ae.permission.includes("DATA_DEL")&&ae.model.modelLayer!="ODSVIEW"&&!ae.model.shadowModelId,isEdit:ae.model.openForm==2&&ae.permission.includes("DATA_EDIT"),ref:"aceDynamicListRef",onBtnClick:ie,onSuccessList:oe},null,8,["id","title","isDelete","isEdit"])],64)}}}),_hoisted_1$e={class:"flex flex-col h-full"},_hoisted_2$b={class:"flex flex-col w-full tab-container"},_hoisted_3$a={key:0},_hoisted_4$9={key:1},_hoisted_5$7={key:2},_sfc_main$e=vue.defineComponent({__name:"model-view",props:{type:{default:"ODS"},permission:{default:()=>[]}},setup(te,{expose:U}){const G=te,{proxy:ee}=vue.getCurrentInstance(),{getDetail:ne}=fetch$1(ee).model,re=vue.ref({}),oe=vue.ref(!1),ie=vue.ref(""),le=vue.ref([]),ae=vue.ref([{label:"字段名称",prop:"attributeCode",fixed:!0},{label:"字段描述",prop:"attributeComment"},{label:"映射字段",prop:"mapCode"},{label:"数据类型",prop:"dataType"},{label:"数据长度",prop:"dataLength"},{label:"数据标度",prop:"dataScale"},{label:"选择主键",prop:"primaryKey",props:{url:"/api/ace-api/blade-system/dict/dictionary?code=yes_no",label:"dictValue",value:"dictKey"}},{label:"唯一键",prop:"uniqueKey",slot:!0},{label:"查询字段",prop:"searchKey",slot:!0},{label:"协同字段",prop:"teamworkKey",slot:!0},{label:"字段来源",prop:"sourceModelName"},{label:"数据来源",prop:"sourceColumnName"}]),se=async he=>{oe.value=!0,ie.value="",le.value=[];const pe=await ne(he==null?void 0:he.id,!1);pe&&(re.value=pe.data,oe.value=!1,le.value.push({label:"模型数据",value:"data"}),G.type=="ODS"&&G.permission.includes("EXCEL_EXTRACT")&&!pe.data.parentModelId&&le.value.push({label:"Excel抽取",value:"fileExtract"}),G.type=="DWD"&&le.value.push({label:"抽取数据",value:"dbExtract"}),le.value.push({label:"模型信息",value:"info"}),vue.unref(re).openForm==2&&vue.unref(re).publishStatus==2&&!pe.data.parentModelId&&le.value.push({label:"录入数据",value:"insertForm"}),ie.value=vue.unref(le)[0].value)},ue=async he=>{await ee.$baseHttp.post("/api/ace-data-center/model-attribute/submit",{...he,projectId:ee.$baseGetCurrentProjectId()})&&ee.$message.success("操作成功")},ce=async he=>{await ee.$baseHttp.post("/api/ace-data-center/model-attribute/submit",{id:he.id,searchKey:he.searchKey,projectId:ee.$baseGetCurrentProjectId()})&&(ee.$message.success("操作成功"),he.searchKey=="1"&&he.indexKey=="2"&&(he.indexKey=1,de(he)))},de=async he=>{await ee.$baseHttp.post("/api/ace-data-center/model-attribute/changeIndexKey",he)&&ee.$message.success("操作成功")},fe=async he=>{he.teamworkKey=="2"&&vue.unref(re).listModelAttribute.filter(ge=>ge.id!=he.id).forEach(ge=>{ge.teamworkKey=1}),await ee.$baseHttp.post("/api/ace-data-center/model-attribute/changeTeamworkKey",he)&&ee.$message.success("操作成功")},ve=async he=>(he.loading=!0,new Promise(async pe=>{const ge=await ee.$baseHttp.post("/api/ace-data-center/model-attribute/changeRequiredStatus",{modelAttributeId:he.id,status:he.required==2?1:2});return he.loading=!1,pe(!!ge)}));return U({init:se}),(he,pe)=>{const ge=vue.resolveComponent("AppTable");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(oe),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$e,[vue.createVNode(vue.unref(elementPlus.ElTabs),{modelValue:vue.unref(ie),"onUpdate:modelValue":pe[0]||(pe[0]=me=>vue.isRef(ie)?ie.value=me:null),type:"card"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(le),me=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTabPane),{label:me.label,name:me.value,key:me.value},null,8,["label","name"]))),128))]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_2$b,[vue.unref(ie)=="dbExtract"?(vue.openBlock(),vue.createBlock(_sfc_main$l,{key:0,model:vue.unref(re)},null,8,["model"])):vue.createCommentVNode("",!0),vue.unref(ie)=="fileExtract"?(vue.openBlock(),vue.createBlock(_sfc_main$q,{key:1,model:vue.unref(re)},null,8,["model"])):vue.createCommentVNode("",!0),vue.unref(ie)=="info"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createVNode(vue.unref(elementPlus.ElDescriptions),{column:2,border:!0,style:{width:"100%"}},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型名称"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelName),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型代码"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelCode),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型层级"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTag),{type:"danger"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelLayer),1)]),_:1})]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型类型"},{default:vue.withCtx(()=>[vue.unref(re).modelType==1?(vue.openBlock(),vue.createElementBlock("span",_hoisted_3$a,"维度模型")):vue.createCommentVNode("",!0),vue.unref(re).modelType==2?(vue.openBlock(),vue.createElementBlock("span",_hoisted_4$9,"事实模型")):vue.createCommentVNode("",!0),vue.unref(re).modelType==3?(vue.openBlock(),vue.createElementBlock("span",_hoisted_5$7,"其他模型")):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型描述"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelDesc),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"数据仓库"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelStore),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"发布状态"},{default:vue.withCtx(()=>[vue.unref(re).publishStatus==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未发布")]),_:1})):vue.createCommentVNode("",!0),vue.unref(re).publishStatus==2?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:1,type:"success"},{default:vue.withCtx(()=>[vue.createTextVNode("已发布")]),_:1})):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"表单录入数据"},{default:vue.withCtx(()=>[vue.unref(re).openForm==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未开启")]),_:1})):vue.createCommentVNode("",!0),vue.unref(re).openForm==2?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:1,type:"success"},{default:vue.withCtx(()=>[vue.createTextVNode("已开启")]),_:1})):vue.createCommentVNode("",!0)]),_:1})]),_:1}),vue.createVNode(ge,{class:"mt-2.5",tableData:vue.unref(ae),list:vue.unref(re).listModelAttribute,ref:"appTable"},{uniqueKey:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{"true-value":"2","false-value":"1",modelValue:me.uniqueKey,"onUpdate:modelValue":_e=>me.uniqueKey=_e,onChange:_e=>ue(me)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),required:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:me.required,"onUpdate:modelValue":_e=>me.required=_e,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":2,"inactive-value":1,loading:me.loading,"before-change":()=>ve(me)},null,8,["modelValue","onUpdate:modelValue","loading","before-change"])]),searchKey:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:me.searchKey,"onUpdate:modelValue":_e=>me.searchKey=_e,"true-value":"2","false-value":"1",onChange:_e=>ce(me)},null,8,["modelValue","onUpdate:modelValue","onChange"]),me.searchKey==="2"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElCheckbox),{key:0,modelValue:me.indexKey,"onUpdate:modelValue":_e=>me.indexKey=_e,"true-value":"2","false-value":"1",onChange:_e=>de(me)},{default:vue.withCtx(()=>[vue.createTextVNode(" 创建索引 ")]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])):vue.createCommentVNode("",!0)]),teamworkKey:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{disabled:!["date","time","datetime"].includes(me.dataType),modelValue:me.teamworkKey,"onUpdate:modelValue":_e=>me.teamworkKey=_e,"true-value":"2","false-value":"1",onChange:_e=>fe(me)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"])]),_:1},8,["tableData","list"])],64)):vue.createCommentVNode("",!0),vue.unref(ie)=="data"?(vue.openBlock(),vue.createBlock(_sfc_main$f,{key:3,model:vue.unref(re),permission:he.permission},null,8,["model","permission"])):vue.createCommentVNode("",!0),vue.unref(ie)=="insertForm"?(vue.openBlock(),vue.createBlock(_sfc_main$G,{key:4,model:vue.unref(re),permission:he.permission},null,8,["model","permission"])):vue.createCommentVNode("",!0)])])]),_:1},8,["loading"])}}}),modelView_vue_vue_type_style_index_0_scoped_d55b8fbb_lang="",aceModelView=_export_sfc$2(_sfc_main$e,[["__scopeId","data-v-d55b8fbb"]]),_withScopeId$5=te=>(vue.pushScopeId("data-v-9af70b95"),te=te(),vue.popScopeId(),te),_hoisted_1$d={class:"overflow-y-auto"},_hoisted_2$a={class:"fadeIn animated"},_hoisted_3$9=_withScopeId$5(()=>vue.createElementVNode("th",null,null,-1)),_hoisted_4$8={class:"h-80"},_hoisted_5$6=["title"],_hoisted_6$6={class:"name"},_hoisted_7$6={class:"total"},_hoisted_8$5={class:"h-80"},_hoisted_9$5=["title"],_hoisted_10$4={class:"name"},_hoisted_11$3={class:"total"},_hoisted_12$2=_withScopeId$5(()=>vue.createElementVNode("br",null,null,-1)),_sfc_main$d=vue.defineComponent({__name:"matrix",setup(te,{expose:U}){const{proxy:G}=vue.getCurrentInstance(),{allModel:ee,allModelAttribute:ne,allModelMatrix:re,queryRows:oe}=fetch$1(G).model,ie=vue.ref([]),le=vue.ref([]),ae=vue.ref({}),se=vue.ref([]),ue=vue.ref([]),ce=vue.ref(!0),de=vue.reactive([{label:"字段",prop:"attributeCode"},{label:"名称",prop:"attributeComment"},{label:"类型",prop:"dataType",func:ve=>commonDataType[ve.dataType]}]);Promise.all([ee({modelLayer:"DWD",publishStatus:2}),re({modelLayer:"DWD"}),oe({modelLayer:"DWD"})]).then(ve=>{ce.value=!1,ie.value=ve[0].data,le.value=ve[1].data,ae.value=ve[2].data;const he=[];vue.unref(ie).forEach(pe=>{(pe==null?void 0:pe.modelType)==="1"?(pe.rows=vue.unref(ae)[pe.modelCode],se.value.push(pe)):(pe==null?void 0:pe.modelType)==="2"&&he.push(pe)}),he.forEach(pe=>{pe.checked=[],vue.unref(se).forEach(ge=>{pe[ge.modelCode]=vue.unref(le).some(me=>me.targetModelId===ge.id&&me.modelId===pe.id)}),pe.rows=vue.unref(ae)[pe.modelCode],ue.value.push(pe)})});const fe=ve=>{ve.attr||(ve.loading=!0,ne({modelId:ve.id}).then(he=>{ve.loading=!1,ve.attr=he.data.filter(pe=>!["project_id","create_time","create_user","create_dept","tag"].includes(pe.attributeCode))}))};return U({wdModel:ue}),(ve,he)=>{const pe=vue.resolveComponent("AppTable");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$d,[vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(ce),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_2$a,[vue.createElementVNode("thead",null,[vue.createElementVNode("tr",null,[_hoisted_3$9,(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(se),(ge,me)=>(vue.openBlock(),vue.createElementBlock("th",{key:me},[vue.createVNode(vue.unref(elementPlus.ElPopover),{trigger:"hover",onShow:_e=>fe(ge),width:500},{reference:vue.withCtx(()=>[vue.createElementVNode("div",{title:ge.modelName,class:"flex items-center justify-center"},[vue.createElementVNode("span",_hoisted_6$6,[vue.createElementVNode("label",null,vue.toDisplayString(ge.modelName),1)]),vue.createElementVNode("span",_hoisted_7$6,vue.toDisplayString(ge.rows),1)],8,_hoisted_5$6)]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_4$8,[vue.createVNode(pe,{tableData:vue.unref(de),list:ge.attr,loading:ge.loading},null,8,["tableData","list","loading"])])]),_:2},1032,["onShow"])]))),128))])]),vue.createElementVNode("tbody",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),(ge,me)=>(vue.openBlock(),vue.createElementBlock("tr",{key:me},[vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElPopover),{trigger:"hover",onShow:_e=>fe(ge),placement:"right",width:500},{reference:vue.withCtx(()=>[vue.createElementVNode("div",{title:ge.modelName,class:"flex items-center justify-start"},[vue.createElementVNode("span",_hoisted_10$4,[vue.createElementVNode("label",null,vue.toDisplayString(ge.modelName),1)]),vue.createElementVNode("span",_hoisted_11$3,vue.toDisplayString(ge.rows),1)],8,_hoisted_9$5)]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$5,[vue.createVNode(pe,{tableData:vue.unref(de),list:ge.attr,loading:ge.loading},null,8,["tableData","list","loading"])])]),_:2},1032,["onShow"])]),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(se),_e=>(vue.openBlock(),vue.createElementBlock("td",{key:_e.id},[vue.createVNode(vue.unref(elementPlus.ElCheckboxGroup),{modelValue:ge.checked,"onUpdate:modelValue":ye=>ge.checked=ye},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{value:_e.id,checked:ge[_e.modelCode]},{default:vue.withCtx(()=>[_hoisted_12$2]),_:2},1032,["value","checked"])]),_:2},1032,["modelValue","onUpdate:modelValue"])]))),128))]))),128))])])]),_:1},8,["loading"])])}}}),matrix_vue_vue_type_style_index_0_scoped_9af70b95_lang="",Matrix=_export_sfc$2(_sfc_main$d,[["__scopeId","data-v-9af70b95"]]),_hoisted_1$c={class:"flex justify-end flex-1"},_hoisted_2$9=vue.createElementVNode("div",{class:"text-color-primary mr-2.5 flex items-center"},[vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"}),vue.createTextVNode(" 新建模型 ")],-1),_hoisted_3$8=vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"},null,-1),_hoisted_4$7={key:0},_hoisted_5$5=vue.createElementVNode("span",{class:"ml-2 mr-2 text-gray-300"},"|",-1),_hoisted_6$5=["onClick"],_hoisted_7$5={key:0,class:"flex items-center justify-center h-full"},_sfc_main$c=vue.defineComponent({__name:"index",props:{isCustom:{type:Boolean,default:!1},element:{default:null}},setup(te){const U=te,G=vue.inject("local"),{proxy:ee}=vue.getCurrentInstance(),{getDetail:ne,settingPublishStatus:re}=fetch$1(ee).model,oe=vue.ref([{label:"源数据",value:"ODS",rule:"VIEW_ODS",disabled:!0},{label:"源视图",value:"ODSVIEW",rule:"VIEW_ODSVIEW",disabled:!0},{label:"重构数据",value:"DWD",rule:"VIEW_DWD",disabled:!0},{label:"总线矩阵",value:"MATRIX",rule:"SAVE_MODEL_MATRIX",disabled:!0}]),ie=vue.ref([]),le=vue.ref([]),ae=vue.ref(""),se=vue.ref(U.element??{}),ue=vue.ref([]);U.isCustom&&vue.nextTick(()=>{ee.$refs.modelViewRef.init(vue.unref(se))}),fetch$1(ee).getCurrFunc("MODEL").then(he=>{vue.unref(oe).forEach(pe=>{pe.disabled=!he.data.includes(pe.rule),!vue.unref(ae)&&!pe.disabled&&(ae.value=pe.value)}),ue.value=he.data,U.isCustom||(le.value=[{label:"数据源导入模型",value:"conn",icon:"ri-add-circle-line",show:()=>he.data.includes("DB_IMPORT_MODEL")&&vue.unref(ae)!="ODSVIEW"},{label:"SQL新建模型",value:"sql",icon:"ri-add-circle-line",show:()=>["ODS","DWD"].includes(vue.unref(ae))&&he.data.includes("SQL_CREATE")},{label:"手动新建模型",value:"normal",icon:"ri-add-circle-line",show:()=>["ODS","DWD"].includes(vue.unref(ae))&&he.data.includes("DO_CREATE")},{label:"Excel生成模型",value:"excel",icon:"ri-add-circle-line",show:()=>["ODS"].includes(vue.unref(ae))&&he.data.includes("EXCEL_CREATE")},{label:"ODS抽取模型",value:"extract",icon:"ri-add-circle-line",show:()=>["DWD"].includes(vue.unref(ae))&&he.data.includes("ODS_CREATE")}],ie.value=[{label:"保存",type:"warning",value:"SAVE_MODEL_MATRIX",icon:"ri-save-line",show:()=>["MATRIX"].includes(vue.unref(ae))&&he.data.includes("SAVE_MODEL_MATRIX")},{label:"复制",value:"COPY",icon:"ri-file-copy-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.id)&&((ge=vue.unref(se))==null?void 0:ge.shadowFlag)!=2&&he.data.includes("PUBLISH")}},{label:"发布",value:"PUBLISH",icon:"ri-book-open-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.publishStatus)==1&&he.data.includes("PUBLISH")}},{label:"删除数据仓",value:"REMOVE_PUBLISH",type:"danger",icon:"ri-delete-bin-2-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.publishStatus)==2&&he.data.includes("REMOVE_PUBLISH")}},{label:"编辑",value:"EDIT",icon:"ri-file-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.id)&&he.data.includes("EDIT")}},{label:"删除",value:"DEL",type:"danger",icon:"ri-delete-bin-2-line",show:()=>{var pe,ge;return["ODS","DWD","ODSVIEW"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.id)&&he.data.includes("DEL")}}])});const ce=he=>{ae.value=he,vue.nextTick(()=>{var pe;ee.$refs.menuRef.$refs.treeRef.setCurrentKey((pe=vue.unref(se))==null?void 0:pe.id)})},de=he=>{se.value=he,vue.nextTick(()=>{ee.$refs.modelViewRef.init(vue.unref(se))})},fe=async(he,pe)=>{var ge,me;switch(he){case"conn":case"sql":case"normal":case"excel":case"extract":ee.$refs[`${he}Ref`].init();break;case"DEL":ee.$baseConfirm({content:"是否确认删除?",callConfirm:async()=>{var ye;await ee.$baseHttp.post(`/ace-data-center/model/remove?ids=${(ye=vue.unref(se))==null?void 0:ye.id}`,{},{headers:{loading:!0}})&&(ee.$message.success("操作成功"),se.value={},ve())}});break;case"EDIT":{const _e=await ne((ge=vue.unref(se))==null?void 0:ge.id,!0);if(!_e)return;if(_e.data.publishStatus==1){ee.$refs.normalRef.init(_e.data);return}ee.$message.warning("模型已发布,无法编辑")}break;case"COPY":{const _e=await ne((me=vue.unref(se))==null?void 0:me.id,!0);if(!_e)return;delete _e.data.id,_e.data.listModelAttribute.forEach(ye=>{ye.id=null,ye.createUser=null,ye.createDept=null,ye.createTime=null,ye.updateUser=null,ye.updateTime=null,ye.modelId=null,ye.nanoid=nanoid()}),_e.data.slaveModels&&_e.data.slaveModels.forEach(ye=>{delete ye.id,ye.listModelAttribute.forEach(be=>{delete be.id,be.createUser=null,be.createDept=null,be.createTime=null,be.updateUser=null,be.updateTime=null,be.modelId=null,be.nanoid=nanoid()})}),ee.$refs.normalRef.init(_e.data)}break;case"PUBLISH":case"REMOVE_PUBLISH":{const _e=he==="PUBLISH"?"模型发布后,模型信息无法再进行变更操作,是否立即执行?":"确定删除数仓表,删除后模型数据将清空,是否执行?",ye=he==="PUBLISH"?"2":"1";ee.$baseConfirm({content:_e,callConfirm:async()=>{var xe;await re((xe=vue.unref(se))==null?void 0:xe.id,ye)&&(vue.unref(se).publishStatus=ye,ee.$message.success("操作成功"),ve())}})}break;case"editTag":ee.$refs.tagEditRef.init(pe);break;case"SAVE_MODEL_MATRIX":{if(!await ee.$baseHttp.post("/api/ace-data-center/model-matrix/save",{modelLayer:"DWD",projectId:ee.$baseGetCurrentProjectId(),list:ee.$refs.MatrixRef.wdModel.map(ye=>({modelId:ye.id,listTargetModelId:ye.checked}))},{headers:{loading:!0}}))return;ee.$message.success("操作成功")}break}},ve=()=>{var he;ee.$refs.menuRef.init(),(he=vue.unref(se))!=null&&he.id&&ee.$refs.modelViewRef.init(vue.unref(se))};return(he,pe)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElContainer),{class:"overflow-hidden app-basic-container"},{default:vue.withCtx(()=>[he.isCustom?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElHeader),{key:0,style:{height:"auto",padding:"0"},class:"flex items-center mb-3 fadeIn animated"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(oe),ge=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:vue.unref(ae)==ge.value?"primary":"",key:ge.value,disabled:ge.disabled,onClick:me=>ce(ge.value)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ge.label),1)]),_:2},1032,["type","disabled","onClick"]))),128))]),_:1}),vue.createElementVNode("div",_hoisted_1$c,[vue.unref(le).length?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdown),{key:0,onCommand:fe},{dropdown:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElDropdownMenu),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(le),ge=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdownItem),{disabled:!ge.show(),command:ge.value},{default:vue.withCtx(()=>[_hoisted_3$8,vue.createTextVNode(" "+vue.toDisplayString(ge.label),1)]),_:2},1032,["disabled","command"]))),256))]),_:1})]),default:vue.withCtx(()=>[_hoisted_2$9]),_:1})):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ie),ge=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[ge.show()?(vue.openBlock(),vue.createElementBlock("span",_hoisted_4$7,[vue.createVNode(vue.unref(elementPlus.ElLink),{type:ge.type||"primary",onClick:me=>fe(ge.value)},{default:vue.withCtx(()=>[vue.createElementVNode("i",{class:vue.normalizeClass([ge.icon,"mr-1"])},null,2),vue.createTextVNode(" "+vue.toDisplayString(ge.label),1)]),_:2},1032,["type","onClick"]),_hoisted_5$5])):vue.createCommentVNode("",!0)],64))),256))])]),_:1})),vue.withDirectives(vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElConfigProvider),{locale:vue.unref(G)},{default:vue.withCtx(()=>[he.isCustom?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElAside),{key:0,class:"pr-5 mr-5"},{default:vue.withCtx(()=>{var ge;return[vue.createVNode(_sfc_main$C,{ref:"menuRef",type:vue.unref(ae),onNodeClick:de,id:(ge=vue.unref(se))==null?void 0:ge.id},{default:vue.withCtx(({element:me})=>[me.modelCode&&vue.unref(ue).includes("EDIT")?(vue.openBlock(),vue.createElementBlock("i",{key:0,class:"ml-2 ri-edit-box-line",onClick:vue.withModifiers(_e=>fe("editTag",me),["stop"])},null,8,_hoisted_6$5)):vue.createCommentVNode("",!0)]),_:1},8,["type","id"])]}),_:1})),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>{var ge;return[(ge=vue.unref(se))!=null&&ge.id?(vue.openBlock(),vue.createBlock(aceModelView,{key:1,ref:"modelViewRef",type:vue.unref(ae),permission:vue.unref(ue)},null,8,["type","permission"])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_7$5,[vue.createVNode(vue.unref(elementPlus.ElEmpty),{description:"请在左侧选择模型"})]))]}),_:1})]),_:1},8,["locale"])]),_:1},512),[[vue.vShow,["ODS","DWD","ODSVIEW"].includes(vue.unref(ae))]]),["MATRIX"].includes(vue.unref(ae))?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElContainer),{key:1,class:"overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(Matrix,{ref:"MatrixRef"},null,512)]),_:1})]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$A,{ref:"connRef",onSuccess:pe[0]||(pe[0]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$z,{ref:"sqlRef",onSuccess:pe[1]||(pe[1]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$y,{ref:"normalRef",onSuccess:pe[2]||(pe[2]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$x,{ref:"excelRef",onSuccess:pe[3]||(pe[3]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$w,{ref:"extractRef",onSuccess:pe[4]||(pe[4]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$v,{ref:"tagEditRef",permission:vue.unref(ue),onSuccess:pe[5]||(pe[5]=ge=>ve())},null,8,["permission"])]),_:1}))}});typeof window=="object"&&window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),typeof window<"u"&&function(te){te.forEach(U=>{Object.prototype.hasOwnProperty.call(U,"append")||Object.defineProperty(U,"append",{configurable:!0,enumerable:!0,writable:!0,value(...G){const ee=document.createDocumentFragment();G.forEach(ne=>{const re=ne instanceof Node;ee.appendChild(re?ne:document.createTextNode(String(ne)))}),this.appendChild(ee)}})})}([Element.prototype,Document.prototype,DocumentFragment.prototype]);class Disposable{get disposed(){return this._disposed===!0}dispose(){this._disposed=!0}}(function(te){function U(){return(G,ee,ne)=>{const re=ne.value,oe=G.__proto__;ne.value=function(...ie){this.disposed||(re.call(this,...ie),oe.dispose.call(this))}}}te.dispose=U})(Disposable||(Disposable={}));class DisposableSet{constructor(){this.isDisposed=!1,this.items=new Set}get disposed(){return this.isDisposed}dispose(){this.isDisposed||(this.isDisposed=!0,this.items.forEach(U=>{U.dispose()}),this.items.clear())}contains(U){return this.items.has(U)}add(U){this.items.add(U)}remove(U){this.items.delete(U)}clear(){this.items.clear()}}(function(te){function U(G){const ee=new te;return G.forEach(ne=>{ee.add(ne)}),ee}te.from=U})(DisposableSet||(DisposableSet={}));function apply(te,U,G){if(G)switch(G.length){case 0:return te.call(U);case 1:return te.call(U,G[0]);case 2:return te.call(U,G[0],G[1]);case 3:return te.call(U,G[0],G[1],G[2]);case 4:return te.call(U,G[0],G[1],G[2],G[3]);case 5:return te.call(U,G[0],G[1],G[2],G[3],G[4]);case 6:return te.call(U,G[0],G[1],G[2],G[3],G[4],G[5]);default:return te.apply(U,G)}return te.call(U)}function call$1(te,U,...G){return apply(te,U,G)}function isAsyncLike(te){return typeof te=="object"&&te.then&&typeof te.then=="function"}function isAsync(te){return te!=null&&(te instanceof Promise||isAsyncLike(te))}function toAsyncBoolean(...te){const U=[];if(te.forEach(ee=>{Array.isArray(ee)?U.push(...ee):U.push(ee)}),U.some(ee=>isAsync(ee))){const ee=U.map(ne=>isAsync(ne)?ne:Promise.resolve(ne!==!1));return Promise.all(ee).then(ne=>ne.reduce((re,oe)=>oe!==!1&&re,!0))}return U.every(ee=>ee!==!1)}function toDeferredBoolean(...te){const U=toAsyncBoolean(te);return typeof U=="boolean"?Promise.resolve(U):U}function call(te,U){const G=[];for(let ee=0;ee<te.length;ee+=2){const ne=te[ee],re=te[ee+1],oe=Array.isArray(U)?U:[U],ie=apply(ne,re,oe);G.push(ie)}return toAsyncBoolean(G)}class Events{constructor(){this.listeners={}}on(U,G,ee){return G==null?this:(this.listeners[U]||(this.listeners[U]=[]),this.listeners[U].push(G,ee),this)}once(U,G,ee){const ne=(...re)=>(this.off(U,ne),call([G,ee],re));return this.on(U,ne,this)}off(U,G,ee){if(!(U||G||ee))return this.listeners={},this;const ne=this.listeners;return(U?[U]:Object.keys(ne)).forEach(oe=>{const ie=ne[oe];if(ie){if(!(G||ee)){delete ne[oe];return}for(let le=ie.length-2;le>=0;le-=2)G&&ie[le]!==G||ee&&ie[le+1]!==ee||ie.splice(le,2)}}),this}trigger(U,...G){let ee=!0;if(U!=="*"){const re=this.listeners[U];re!=null&&(ee=call([...re],G))}const ne=this.listeners["*"];return ne!=null?toAsyncBoolean([ee,call([...ne],[U,...G])]):ee}emit(U,...G){return this.trigger(U,...G)}}function applyMixins(te,...U){U.forEach(G=>{Object.getOwnPropertyNames(G.prototype).forEach(ee=>{ee!=="constructor"&&Object.defineProperty(te.prototype,ee,Object.getOwnPropertyDescriptor(G.prototype,ee))})})}const extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(te,U){te.__proto__=U}||function(te,U){for(const G in U)Object.prototype.hasOwnProperty.call(U,G)&&(te[G]=U[G])};function inherit(te,U){extendStatics(te,U);function G(){this.constructor=te}te.prototype=U===null?Object.create(U):(G.prototype=U.prototype,new G)}class A{}const isNativeClass=/^\s*class\s+/.test(`${A}`)||/^\s*class\s*\{/.test(`${class{}}`);function createClass(te,U){let G;return isNativeClass?G=class extends U{}:(G=function(){return U.apply(this,arguments)},inherit(G,U)),Object.defineProperty(G,"name",{value:te}),G}function isMaliciousProp(te){return te==="__proto__"}function getByPath(te,U,G="/"){let ee;const ne=Array.isArray(U)?U:U.split(G);if(ne.length)for(ee=te;ne.length;){const re=ne.shift();if(Object(ee)===ee&&re&&re in ee)ee=ee[re];else return}return ee}function setByPath(te,U,G,ee="/"){const ne=Array.isArray(U)?U:U.split(ee),re=ne.pop();if(re&&!isMaliciousProp(re)){let oe=te;ne.forEach(ie=>{isMaliciousProp(ie)||(oe[ie]==null&&(oe[ie]={}),oe=oe[ie])}),oe[re]=G}return te}function unsetByPath(te,U,G="/"){const ee=Array.isArray(U)?U.slice():U.split(G),ne=ee.pop();if(ne)if(ee.length>0){const re=getByPath(te,ee);re&&delete re[ne]}else delete te[ne];return te}var __decorate$u=globalThis&&globalThis.__decorate||function(te,U,G,ee){var ne=arguments.length,re=ne<3?U:ee===null?ee=Object.getOwnPropertyDescriptor(U,G):ee,oe;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")re=Reflect.decorate(te,U,G,ee);else for(var ie=te.length-1;ie>=0;ie--)(oe=te[ie])&&(re=(ne<3?oe(re):ne>3?oe(U,G,re):oe(U,G))||re);return ne>3&&re&&Object.defineProperty(U,G,re),re};class Basecoat extends Events{dispose(){this.off()}}__decorate$u([Disposable.dispose()],Basecoat.prototype,"dispose",null),function(te){te.dispose=Disposable.dispose}(Basecoat||(Basecoat={})),applyMixins(Basecoat,Disposable);const cacheStringFunction=te=>{const U=Object.create(null);return G=>U[G]||(U[G]=te(G))},kebabCase=cacheStringFunction(te=>te.replace(/\B([A-Z])/g,"-$1").toLowerCase()),pascalCase=cacheStringFunction(te=>startCase$1(camelCase$1(te)).replace(/ /g,""));function hashcode(te){let U=2166136261,G=!1,ee=te;for(let ne=0,re=ee.length;ne<re;ne+=1){let oe=ee.charCodeAt(ne);oe>127&&!G&&(ee=unescape(encodeURIComponent(ee)),oe=ee.charCodeAt(ne),G=!0),U^=oe,U+=(U<<1)+(U<<4)+(U<<7)+(U<<8)+(U<<24)}return U>>>0}function uuid(){let te="";const U="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";for(let G=0,ee=U.length;G<ee;G+=1){const ne=U[G],re=Math.random()*16|0,oe=ne==="x"?re:ne==="y"?re&3|8:ne;te+=oe.toString(16)}return te}function getSpellingSuggestion(te,U,G){const ee=Math.min(2,Math.floor(te.length*.34));let ne=Math.floor(te.length*.4)+1,re,oe=!1;const ie=te.toLowerCase();for(const le of U){const ae=G(le);if(ae!==void 0&&Math.abs(ae.length-ie.length)<=ee){const se=ae.toLowerCase();if(se===ie){if(ae===te)continue;return le}if(oe||ae.length<3)continue;const ue=levenshteinWithMax(ie,se,ne-1);if(ue===void 0)continue;ue<3?(oe=!0,re=le):(ne=ue,re=le)}}return re}function levenshteinWithMax(te,U,G){let ee=new Array(U.length+1),ne=new Array(U.length+1);const re=G+1;for(let ie=0;ie<=U.length;ie+=1)ee[ie]=ie;for(let ie=1;ie<=te.length;ie+=1){const le=te.charCodeAt(ie-1),ae=ie>G?ie-G:1,se=U.length>G+ie?G+ie:U.length;ne[0]=ie;let ue=ie;for(let de=1;de<ae;de+=1)ne[de]=re;for(let de=ae;de<=se;de+=1){const fe=le===U.charCodeAt(de-1)?ee[de-1]:Math.min(ee[de]+1,ne[de-1]+1,ee[de-1]+2);ne[de]=fe,ue=Math.min(ue,fe)}for(let de=se+1;de<=U.length;de+=1)ne[de]=re;if(ue>G)return;const ce=ee;ee=ne,ne=ce}const oe=ee[U.length];return oe>G?void 0:oe}function isPercentage(te){return typeof te=="string"&&te.slice(-1)==="%"}function normalizePercentage(te,U){if(te==null)return 0;let G;if(typeof te=="string"){if(G=parseFloat(te),isPercentage(te)&&(G/=100,Number.isFinite(G)))return G*U}else G=te;return Number.isFinite(G)?G>0&&G<1?G*U:G:0}function normalizeSides(te){if(typeof te=="object"){let G=0,ee=0,ne=0,re=0;return te.vertical!=null&&Number.isFinite(te.vertical)&&(ee=re=te.vertical),te.horizontal!=null&&Number.isFinite(te.horizontal)&&(ne=G=te.horizontal),te.left!=null&&Number.isFinite(te.left)&&(G=te.left),te.top!=null&&Number.isFinite(te.top)&&(ee=te.top),te.right!=null&&Number.isFinite(te.right)&&(ne=te.right),te.bottom!=null&&Number.isFinite(te.bottom)&&(re=te.bottom),{top:ee,right:ne,bottom:re,left:G}}let U=0;return te!=null&&Number.isFinite(te)&&(U=te),{top:U,right:U,bottom:U,left:U}}let _IS_MAC=!1,_IS_IOS=!1,_IS_WINDOWS=!1,_IS_IE=!1,_IS_IE11=!1,_IS_EDGE=!1,_IS_NETSCAPE=!1,_IS_CHROME_APP=!1,_IS_CHROME=!1,_IS_OPERA=!1,_IS_FIREFOX=!1,_IS_SAFARI=!1,_SUPPORT_TOUCH=!1,_SUPPORT_POINTER=!1,_SUPPORT_PASSIVE=!1,_NO_FOREIGNOBJECT=!1;if(typeof navigator=="object"){const te=navigator.userAgent;_IS_MAC=te.indexOf("Macintosh")>=0,_IS_IOS=!!te.match(/(iPad|iPhone|iPod)/g),_IS_WINDOWS=te.indexOf("Windows")>=0,_IS_IE=te.indexOf("MSIE")>=0,_IS_IE11=!!te.match(/Trident\/7\./),_IS_EDGE=!!te.match(/Edge\//),_IS_NETSCAPE=te.indexOf("Mozilla/")>=0&&te.indexOf("MSIE")<0&&te.indexOf("Edge/")<0,_IS_CHROME=te.indexOf("Chrome/")>=0&&te.indexOf("Edge/")<0,_IS_OPERA=te.indexOf("Opera/")>=0||te.indexOf("OPR/")>=0,_IS_FIREFOX=te.indexOf("Firefox/")>=0,_IS_SAFARI=te.indexOf("AppleWebKit/")>=0&&te.indexOf("Chrome/")<0&&te.indexOf("Edge/")<0,typeof document=="object"&&(_NO_FOREIGNOBJECT=!document.createElementNS||`${document.createElementNS("http://www.w3.org/2000/svg","foreignObject")}`!="[object SVGForeignObjectElement]"||te.indexOf("Opera/")>=0)}if(typeof window=="object"&&(_IS_CHROME_APP=window.chrome!=null&&window.chrome.app!=null&&window.chrome.app.runtime!=null,_SUPPORT_POINTER=window.PointerEvent!=null&&!_IS_MAC),typeof document=="object"){_SUPPORT_TOUCH="ontouchstart"in document.documentElement;try{const te=Object.defineProperty({},"passive",{get(){_SUPPORT_PASSIVE=!0}}),U=document.createElement("div");U.addEventListener&&U.addEventListener("click",()=>{},te)}catch{}}var Platform;(function(te){te.IS_MAC=_IS_MAC,te.IS_IOS=_IS_IOS,te.IS_WINDOWS=_IS_WINDOWS,te.IS_IE=_IS_IE,te.IS_IE11=_IS_IE11,te.IS_EDGE=_IS_EDGE,te.IS_NETSCAPE=_IS_NETSCAPE,te.IS_CHROME_APP=_IS_CHROME_APP,te.IS_CHROME=_IS_CHROME,te.IS_OPERA=_IS_OPERA,te.IS_FIREFOX=_IS_FIREFOX,te.IS_SAFARI=_IS_SAFARI,te.SUPPORT_TOUCH=_SUPPORT_TOUCH,te.SUPPORT_POINTER=_SUPPORT_POINTER,te.SUPPORT_PASSIVE=_SUPPORT_PASSIVE,te.NO_FOREIGNOBJECT=_NO_FOREIGNOBJECT,te.SUPPORT_FOREIGNOBJECT=!te.NO_FOREIGNOBJECT})(Platform||(Platform={})),function(te){function U(){const re=window.module;return re!=null&&re.hot!=null&&re.hot.status!=null?re.hot.status():"unkonwn"}te.getHMRStatus=U;function G(){return U()==="apply"}te.isApplyingHMR=G;const ee={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};function ne(re){const oe=document.createElement(ee[re]||"div"),ie=`on${re}`;let le=ie in oe;return le||(oe.setAttribute(ie,"return;"),le=typeof oe[ie]=="function"),le}te.isEventSupported=ne}(Platform||(Platform={}));const rclass=/[\t\r\n\f]/g,rnotwhite=/\S+/g,fillSpaces=te=>` ${te} `;function getClass(te){return te&&te.getAttribute&&te.getAttribute("class")||""}function hasClass(te,U){if(te==null||U==null)return!1;const G=fillSpaces(getClass(te)),ee=fillSpaces(U);return te.nodeType===1?G.replace(rclass," ").includes(ee):!1}function addClass(te,U){if(!(te==null||U==null)){if(typeof U=="function")return addClass(te,U(getClass(te)));if(typeof U=="string"&&te.nodeType===1){const G=U.match(rnotwhite)||[],ee=fillSpaces(getClass(te)).replace(rclass," ");let ne=G.reduce((re,oe)=>re.indexOf(fillSpaces(oe))<0?`${re}${oe} `:re,ee);ne=ne.trim(),ee!==ne&&te.setAttribute("class",ne)}}}function removeClass(te,U){if(te!=null){if(typeof U=="function")return removeClass(te,U(getClass(te)));if((!U||typeof U=="string")&&te.nodeType===1){const G=(U||"").match(rnotwhite)||[],ee=fillSpaces(getClass(te)).replace(rclass," ");let ne=G.reduce((re,oe)=>{const ie=fillSpaces(oe);return re.indexOf(ie)>-1?re.replace(ie," "):re},ee);ne=U?ne.trim():"",ee!==ne&&te.setAttribute("class",ne)}}}function toggleClass(te,U,G){if(!(te==null||U==null)){if(G!=null&&typeof U=="string"){G?addClass(te,U):removeClass(te,U);return}if(typeof U=="function")return toggleClass(te,U(getClass(te),G),G);typeof U=="string"&&(U.match(rnotwhite)||[]).forEach(ne=>{hasClass(te,ne)?removeClass(te,ne):addClass(te,ne)})}}let idCounter=0;function uniqueId(){return idCounter+=1,`v${idCounter}`}function ensureId(te){return(te.id==null||te.id==="")&&(te.id=uniqueId()),te.id}function isSVGGraphicsElement(te){return te==null?!1:typeof te.getScreenCTM=="function"&&te instanceof SVGElement}const ns={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xml:"http://www.w3.org/XML/1998/namespace",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml"},svgVersion="1.1";function createElement(te,U=document){return U.createElement(te)}function createElementNS(te,U=ns.xhtml,G=document){return G.createElementNS(U,te)}function createSvgElement(te,U=document){return createElementNS(te,ns.svg,U)}function createSvgDocument(te){if(te){const G=`<svg xmlns="${ns.svg}" xmlns:xlink="${ns.xlink}" version="${svgVersion}">${te}</svg>`,{documentElement:ee}=parseXML(G,{async:!1});return ee}const U=document.createElementNS(ns.svg,"svg");return U.setAttributeNS(ns.xmlns,"xmlns:xlink",ns.xlink),U.setAttribute("version",svgVersion),U}function parseXML(te,U={}){let G;try{const ee=new DOMParser;if(U.async!=null){const ne=ee;ne.async=U.async}G=ee.parseFromString(te,U.mimeType||"text/xml")}catch{G=void 0}if(!G||G.getElementsByTagName("parsererror").length)throw new Error(`Invalid XML: ${te}`);return G}function tagName(te,U=!0){const G=te.nodeName;return U?G.toLowerCase():G.toUpperCase()}function index$1(te){let U=0,G=te.previousSibling;for(;G;)G.nodeType===1&&(U+=1),G=G.previousSibling;return U}function find(te,U){return te.querySelectorAll(U)}function findOne(te,U){return te.querySelector(U)}function findParentByClass(te,U,G){const ee=te.ownerSVGElement;let ne=te.parentNode;for(;ne&&ne!==G&&ne!==ee;){if(hasClass(ne,U))return ne;ne=ne.parentNode}return null}function contains(te,U){const G=U&&U.parentNode;return te===G||!!(G&&G.nodeType===1&&te.compareDocumentPosition(G)&16)}function remove(te){te&&(Array.isArray(te)?te:[te]).forEach(G=>{G.parentNode&&G.parentNode.removeChild(G)})}function empty(te){for(;te.firstChild;)te.removeChild(te.firstChild)}function append(te,U){(Array.isArray(U)?U:[U]).forEach(ee=>{ee!=null&&te.appendChild(ee)})}function prepend(te,U){const G=te.firstChild;return G?before(G,U):append(te,U)}function before(te,U){const G=te.parentNode;G&&(Array.isArray(U)?U:[U]).forEach(ne=>{ne!=null&&G.insertBefore(ne,te)})}function after(te,U){const G=te.parentNode;G&&(Array.isArray(U)?U:[U]).forEach(ne=>{ne!=null&&G.insertBefore(ne,te.nextSibling)})}function appendTo(te,U){U!=null&&U.appendChild(te)}function isHTMLElement(te){try{return te instanceof HTMLElement}catch{return typeof te=="object"&&te.nodeType===1&&typeof te.style=="object"&&typeof te.ownerDocument=="object"}}function children(te,U){const G=[];let ee=te.firstChild;for(;ee;ee=ee.nextSibling)ee.nodeType===1&&(!U||hasClass(ee,U))&&G.push(ee);return G}const CASE_SENSITIVE_ATTR=["viewBox","attributeName","attributeType","repeatCount","textLength","lengthAdjust","gradientUnits"];function getAttribute(te,U){return te.getAttribute(U)}function removeAttribute(te,U){const G=qualifyAttr(U);G.ns?te.hasAttributeNS(G.ns,G.local)&&te.removeAttributeNS(G.ns,G.local):te.hasAttribute(U)&&te.removeAttribute(U)}function setAttribute(te,U,G){if(G==null)return removeAttribute(te,U);const ee=qualifyAttr(U);ee.ns&&typeof G=="string"?te.setAttributeNS(ee.ns,U,G):U==="id"?te.id=`${G}`:te.setAttribute(U,`${G}`)}function setAttributes(te,U){Object.keys(U).forEach(G=>{setAttribute(te,G,U[G])})}function attr(te,U,G){if(U==null){const ee=te.attributes,ne={};for(let re=0;re<ee.length;re+=1)ne[ee[re].name]=ee[re].value;return ne}if(typeof U=="string"&&G===void 0)return te.getAttribute(U);typeof U=="object"?setAttributes(te,U):setAttribute(te,U,G)}function qualifyAttr(te){if(te.indexOf(":")!==-1){const U=te.split(":");return{ns:ns[U[0]],local:U[1]}}return{ns:null,local:te}}function kebablizeAttrs(te){const U={};return Object.keys(te).forEach(G=>{const ee=CASE_SENSITIVE_ATTR.includes(G)?G:kebabCase(G);U[ee]=te[G]}),U}function styleToObject(te){const U={};return te.split(";").forEach(ee=>{const ne=ee.trim();if(ne){const re=ne.split("=");re.length&&(U[re[0].trim()]=re[1]?re[1].trim():"")}}),U}function mergeAttrs(te,U){return Object.keys(U).forEach(G=>{if(G==="class")te[G]=te[G]?`${te[G]} ${U[G]}`:U[G];else if(G==="style"){const ee=typeof te[G]=="object",ne=typeof U[G]=="object";let re,oe;ee&&ne?(re=te[G],oe=U[G]):ee?(re=te[G],oe=styleToObject(U[G])):ne?(re=styleToObject(te[G]),oe=U[G]):(re=styleToObject(te[G]),oe=styleToObject(U[G])),te[G]=mergeAttrs(re,oe)}else te[G]=U[G]}),te}function annotate(te,U,G={}){const ee=G.offset||0,ne=[],re=[];let oe,ie,le=null;for(let ae=0;ae<te.length;ae+=1){oe=re[ae]=te[ae];for(let se=0,ue=U.length;se<ue;se+=1){const ce=U[se],de=ce.start+ee,fe=ce.end+ee;ae>=de&&ae<fe&&(typeof oe=="string"?oe=re[ae]={t:te[ae],attrs:ce.attrs}:oe.attrs=mergeAttrs(mergeAttrs({},oe.attrs),ce.attrs),G.includeAnnotationIndices&&(oe.annotations==null&&(oe.annotations=[]),oe.annotations.push(se)))}ie=re[ae-1],ie?isObject(oe)&&isObject(ie)?(le=le,JSON.stringify(oe.attrs)===JSON.stringify(ie.attrs)?le.t+=oe.t:(ne.push(le),le=oe)):isObject(oe)||isObject(ie)?(le=le,ne.push(le),le=oe):le=(le||"")+oe:le=oe}return le!=null&&ne.push(le),ne}function sanitize(te){return te.replace(/ /g," ")}var DataUri;(function(te){function U(ae){const se="data:";return ae.substr(0,se.length)===se}te.isDataUrl=U;function G(ae,se){if(!ae||U(ae)){setTimeout(()=>se(null,ae));return}const ue=()=>{se(new Error(`Failed to load image: ${ae}`))},ce=window.FileReader?fe=>{if(fe.status===200){const ve=new FileReader;ve.onload=he=>{const pe=he.target.result;se(null,pe)},ve.onerror=ue,ve.readAsDataURL(fe.response)}else ue()}:fe=>{const ve=he=>{const ge=[];for(let me=0;me<he.length;me+=32768)ge.push(String.fromCharCode.apply(null,he.subarray(me,me+32768)));return ge.join("")};if(fe.status===200){let he=ae.split(".").pop()||"png";he==="svg"&&(he="svg+xml");const pe=`data:image/${he};base64,`,ge=new Uint8Array(fe.response),me=pe+btoa(ve(ge));se(null,me)}else ue()},de=new XMLHttpRequest;de.responseType=window.FileReader?"blob":"arraybuffer",de.open("GET",ae,!0),de.addEventListener("error",ue),de.addEventListener("load",()=>ce(de)),de.send()}te.imageToDataUri=G;function ee(ae){let se=ae.replace(/\s/g,"");se=decodeURIComponent(se);const ue=se.indexOf(","),ce=se.slice(0,ue),de=ce.split(":")[1].split(";")[0],fe=se.slice(ue+1);let ve;ce.indexOf("base64")>=0?ve=atob(fe):ve=unescape(encodeURIComponent(fe));const he=new Uint8Array(ve.length);for(let pe=0;pe<ve.length;pe+=1)he[pe]=ve.charCodeAt(pe);return new Blob([he],{type:de})}te.dataUriToBlob=ee;function ne(ae,se){const ue=window.navigator.msSaveBlob;if(ue)ue(ae,se);else{const ce=window.URL.createObjectURL(ae),de=document.createElement("a");de.href=ce,de.download=se,document.body.appendChild(de),de.click(),document.body.removeChild(de),window.URL.revokeObjectURL(ce)}}te.downloadBlob=ne;function re(ae,se){const ue=ee(ae);ne(ue,se)}te.downloadDataUri=re;function oe(ae){const se=ae.match(/<svg[^>]*viewBox\s*=\s*(["']?)(.+?)\1[^>]*>/i);return se&&se[2]?se[2].replace(/\s+/," ").split(" "):null}function ie(ae){const se=parseFloat(ae);return Number.isNaN(se)?null:se}function le(ae,se={}){let ue=null;const ce=me=>(ue==null&&(ue=oe(ae)),ue!=null?ie(ue[me]):null),de=me=>{const _e=ae.match(me);return _e&&_e[2]?ie(_e[2]):null};let fe=se.width;if(fe==null&&(fe=de(/<svg[^>]*width\s*=\s*(["']?)(.+?)\1[^>]*>/i)),fe==null&&(fe=ce(2)),fe==null)throw new Error("Can not parse width from svg string");let ve=se.height;if(ve==null&&(ve=de(/<svg[^>]*height\s*=\s*(["']?)(.+?)\1[^>]*>/i)),ve==null&&(ve=ce(3)),ve==null)throw new Error("Can not parse height from svg string");return`data:image/svg+xml,${encodeURIComponent(ae).replace(/'/g,"%27").replace(/"/g,"%22")}`}te.svgToDataUrl=le})(DataUri||(DataUri={}));let millimeterSize;const supportedUnits={px(te){return te},mm(te){return millimeterSize*te},cm(te){return millimeterSize*te*10},in(te){return millimeterSize*te*25.4},pt(te){return millimeterSize*(25.4*te/72)},pc(te){return millimeterSize*(25.4*te/6)}};var Unit;(function(te){function U(ee,ne,re){const oe=document.createElement("div"),ie=oe.style;ie.display="inline-block",ie.position="absolute",ie.left="-15000px",ie.top="-15000px",ie.width=ee+(re||"px"),ie.height=ne+(re||"px"),document.body.appendChild(oe);const le=oe.getBoundingClientRect(),ae={width:le.width||0,height:le.height||0};return document.body.removeChild(oe),ae}te.measure=U;function G(ee,ne){millimeterSize==null&&(millimeterSize=U("1","1","mm").width);const re=ne?supportedUnits[ne]:null;return re?re(ee):ee}te.toPx=G})(Unit||(Unit={}));const hyphenPattern=/-(.)/g;function camelize(te){return te.replace(hyphenPattern,(U,G)=>G.toUpperCase())}const memoized={},prefixes=["webkit","ms","moz","o"],testStyle=typeof document<"u"?document.createElement("div").style:{};function getWithPrefix(te){for(let U=0;U<prefixes.length;U+=1){const G=prefixes[U]+te;if(G in testStyle)return G}return null}function getVendorPrefixedName(te){const U=camelize(te);if(memoized[U]==null){const G=U.charAt(0).toUpperCase()+U.slice(1);memoized[U]=U in testStyle?U:getWithPrefix(G)}return memoized[U]}function getComputedStyle$1(te,U){const G=te.ownerDocument&&te.ownerDocument.defaultView&&te.ownerDocument.defaultView.opener?te.ownerDocument.defaultView.getComputedStyle(te,null):window.getComputedStyle(te,null);return G&&U?G.getPropertyValue(U)||G[U]:G}const numericProps={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function isCSSVariable(te){return/^--/.test(te)}function computeStyle(te,U,G){const ee=window.getComputedStyle(te,null);return G?ee.getPropertyValue(U)||void 0:ee[U]||te.style[U]}function getSuffixedValue(te,U){return!numericProps[te]&&typeof U=="number"?`${U}px`:U}function css(te,U,G){if(typeof U=="string"){const ee=isCSSVariable(U);if(ee||(U=getVendorPrefixedName(U)),G===void 0)return computeStyle(te,U,ee);ee||(G=getSuffixedValue(U,G));const ne=te.style;ee?ne.setProperty(U,G):ne[U]=G;return}for(const ee in U)css(te,ee,U[ee])}const dataset=new WeakMap;function getData(te,U){const G=camelCase$1(U),ee=dataset.get(te);if(ee)return ee[G]}function setData(te,U,G){const ee=camelCase$1(U),ne=dataset.get(te);ne?ne[ee]=G:dataset.set(te,{[ee]:G})}function data(te,U,G){if(!U){const ee={};return Object.keys(dataset).forEach(ne=>{ee[ne]=getData(te,ne)}),ee}if(typeof U=="string"){if(G===void 0)return getData(te,U);setData(te,U,G);return}for(const ee in U)data(te,ee,U[ee])}const propMap={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};function prop(te,U,G){if(U){if(typeof U=="string"){if(U=propMap[U]||U,arguments.length<3)return te[U];te[U]=G;return}for(const ee in U)prop(te,ee,U[ee])}}class Vector{get[Symbol.toStringTag](){return Vector.toStringTag}get type(){return this.node.nodeName}get id(){return this.node.id}set id(U){this.node.id=U}constructor(U,G,ee){if(!U)throw new TypeError("Invalid element to create vector");let ne;if(Vector.isVector(U))ne=U.node;else if(typeof U=="string")if(U.toLowerCase()==="svg")ne=createSvgDocument();else if(U[0]==="<"){const re=createSvgDocument(U);ne=document.importNode(re.firstChild,!0)}else ne=document.createElementNS(ns.svg,U);else ne=U;this.node=ne,G&&this.setAttributes(G),ee&&this.append(ee)}transform(U,G){return U==null?transform(this.node):(transform(this.node,U,G),this)}translate(U,G=0,ee={}){return U==null?translate(this.node):(translate(this.node,U,G,ee),this)}rotate(U,G,ee,ne={}){return U==null?rotate$1(this.node):(rotate$1(this.node,U,G,ee,ne),this)}scale(U,G){return U==null?scale(this.node):(scale(this.node,U,G),this)}getTransformToElement(U){const G=Vector.toNode(U);return getTransformToElement(this.node,G)}removeAttribute(U){return removeAttribute(this.node,U),this}getAttribute(U){return getAttribute(this.node,U)}setAttribute(U,G){return setAttribute(this.node,U,G),this}setAttributes(U){return setAttributes(this.node,U),this}attr(U,G){return U==null?attr(this.node):typeof U=="string"&&G===void 0?attr(this.node,U):(typeof U=="object"?attr(this.node,U):attr(this.node,U,G),this)}svg(){return this.node instanceof SVGSVGElement?this:Vector.create(this.node.ownerSVGElement)}defs(){const U=this.svg()||this,G=U.node.getElementsByTagName("defs")[0];return G?Vector.create(G):Vector.create("defs").appendTo(U)}text(U,G={}){return text$1(this.node,U,G),this}tagName(){return tagName(this.node)}clone(){return Vector.create(this.node.cloneNode(!0))}remove(){return remove(this.node),this}empty(){return empty(this.node),this}append(U){return append(this.node,Vector.toNodes(U)),this}appendTo(U){return appendTo(this.node,Vector.isVector(U)?U.node:U),this}prepend(U){return prepend(this.node,Vector.toNodes(U)),this}before(U){return before(this.node,Vector.toNodes(U)),this}replace(U){return this.node.parentNode&&this.node.parentNode.replaceChild(Vector.toNode(U),this.node),Vector.create(U)}first(){return this.node.firstChild?Vector.create(this.node.firstChild):null}last(){return this.node.lastChild?Vector.create(this.node.lastChild):null}get(U){const G=this.node.childNodes[U];return G?Vector.create(G):null}indexOf(U){return Array.prototype.slice.call(this.node.childNodes).indexOf(Vector.toNode(U))}find(U){const G=[],ee=find(this.node,U);if(ee)for(let ne=0,re=ee.length;ne<re;ne+=1)G.push(Vector.create(ee[ne]));return G}findOne(U){const G=findOne(this.node,U);return G?Vector.create(G):null}findParentByClass(U,G){const ee=findParentByClass(this.node,U,G);return ee?Vector.create(ee):null}matches(U){const G=this.node;this.node.matches;const ee=G.matches||G.matchesSelector||G.msMatchesSelector||G.mozMatchesSelector||G.webkitMatchesSelector||G.oMatchesSelector||null;return ee&&ee.call(G,U)}contains(U){return contains(this.node,Vector.isVector(U)?U.node:U)}wrap(U){const G=Vector.create(U),ee=this.node.parentNode;return ee!=null&&ee.insertBefore(G.node,this.node),G.append(this)}parent(U){let G=this;if(G.node.parentNode==null)return null;if(G=Vector.create(G.node.parentNode),U==null)return G;do if(typeof U=="string"?G.matches(U):G instanceof U)return G;while(G=Vector.create(G.node.parentNode));return G}children(){const U=this.node.childNodes,G=[];for(let ee=0;ee<U.length;ee+=1)U[ee].nodeType===1&&G.push(Vector.create(U[ee]));return G}eachChild(U,G){const ee=this.children();for(let ne=0,re=ee.length;ne<re;ne+=1)U.call(ee[ne],ee[ne],ne,ee),G&&ee[ne].eachChild(U,G);return this}index(){return index$1(this.node)}hasClass(U){return hasClass(this.node,U)}addClass(U){return addClass(this.node,U),this}removeClass(U){return removeClass(this.node,U),this}toggleClass(U,G){return toggleClass(this.node,U,G),this}toLocalPoint(U,G){return toLocalPoint(this.node,U,G)}sample(U=1){return this.node instanceof SVGPathElement?sample(this.node,U):[]}toPath(){return Vector.create(toPath(this.node))}toPathData(){return toPathData(this.node)}}(function(te){te.toStringTag=`X6.${te.name}`;function U(oe){if(oe==null)return!1;if(oe instanceof te)return!0;const ie=oe[Symbol.toStringTag],le=oe;return(ie==null||ie===te.toStringTag)&&le.node instanceof SVGElement&&typeof le.sample=="function"&&typeof le.toPath=="function"}te.isVector=U;function G(oe,ie,le){return new te(oe,ie,le)}te.create=G;function ee(oe){if(oe[0]==="<"){const ie=createSvgDocument(oe),le=[];for(let ae=0,se=ie.childNodes.length;ae<se;ae+=1){const ue=ie.childNodes[ae];le.push(G(document.importNode(ue,!0)))}return le}return[G(oe)]}te.createVectors=ee;function ne(oe){return U(oe)?oe.node:oe}te.toNode=ne;function re(oe){return Array.isArray(oe)?oe.map(ie=>ne(ie)):[ne(oe)]}te.toNodes=re})(Vector||(Vector={}));function createTextPathNode(te,U){const G=Vector.create(U),ee=Vector.create("textPath"),ne=te.d;if(ne&&te["xlink:href"]===void 0){const re=Vector.create("path").attr("d",ne).appendTo(G.defs());ee.attr("xlink:href",`#${re.id}`)}return typeof te=="object"&&ee.attr(te),ee.node}function annotateTextLine(te,U,G){const ee=G.eol,ne=G.baseSize,re=G.lineHeight;let oe=0,ie;const le={},ae=U.length-1;for(let se=0;se<=ae;se+=1){let ue=U[se],ce=null;if(typeof ue=="object"){const de=ue.attrs,fe=Vector.create("tspan",de);ie=fe.node;let ve=ue.t;ee&&se===ae&&(ve+=ee),ie.textContent=ve;const he=de.class;he&&fe.addClass(he),G.includeAnnotationIndices&&fe.attr("annotations",ue.annotations.join(",")),ce=parseFloat(de["font-size"]),ce===void 0&&(ce=ne),ce&&ce>oe&&(oe=ce)}else ee&&se===ae&&(ue+=ee),ie=document.createTextNode(ue||" "),ne&&ne>oe&&(oe=ne);te.appendChild(ie)}return oe&&(le.maxFontSize=oe),re?le.lineHeight=re:oe&&(le.lineHeight=oe*1.2),le}const emRegex=/em$/;function emToPx(te,U){const G=parseFloat(te);return emRegex.test(te)?G*U:G}function calculateDY(te,U,G,ee){if(!Array.isArray(U))return 0;const ne=U.length;if(!ne)return 0;let re=U[0];const oe=emToPx(re.maxFontSize,G)||G;let ie=0;const le=emToPx(ee,G);for(let ue=1;ue<ne;ue+=1){re=U[ue];const ce=emToPx(re.lineHeight,G)||le;ie+=ce}const ae=emToPx(re.maxFontSize,G)||G;let se;switch(te){case"middle":se=oe/2-.15*ae-ie/2;break;case"bottom":se=-(.25*ae)-ie;break;case"top":default:se=.8*oe;break}return se}function text$1(te,U,G={}){U=sanitize(U);const ee=G.eol;let ne=G.textPath;const re=G.textVerticalAnchor,oe=re==="middle"||re==="bottom"||re==="top";let ie=G.x;ie===void 0&&(ie=te.getAttribute("x")||0);const le=G.includeAnnotationIndices;let ae=G.annotations;ae&&!Array.isArray(ae)&&(ae=[ae]);const se=G.lineHeight,ue=se==="auto",ce=ue?"1.5em":se||"1em";let de=!0;const fe=te.childNodes;if(fe.length===1){const $e=fe[0];$e&&$e.tagName.toUpperCase()==="TITLE"&&(de=!1)}de&&empty(te),attr(te,{"xml:space":"preserve",display:U||G.displayEmpty?null:"none"});const ve=attr(te,"font-size");let he=parseFloat(ve);he||(he=16,(oe||ae)&&!ve&&attr(te,"font-size",`${he}`));let pe;ne?(typeof ne=="string"&&(ne={d:ne}),pe=createTextPathNode(ne,te)):pe=document.createDocumentFragment();let ge,me=0,_e;const ye=U.split(`
903
+ }`,vue.unref(ce).init((me==null?void 0:me.taskDefined)??{}),ve.value=(me==null?void 0:me.taskDefined)??null})},pe=()=>{if(!vue.unref(oe)){G.$message.warning("请输入SQL");return}const{params:me,error:_e}=ne(fe);if(!(_e.length>0)){if(vue.unref(ue)){const{params:ye,error:be}=vue.unref(ce).getForm();if(be.length>0)return;me.taskDefined={...vue.unref(ve)??{},...ye}}return{...me,extractPluginScript:vue.unref(le),extractSql:vue.unref(oe)}}},ge=async me=>{se.value=!0;const _e={dataSourceId:0,extractSql:vue.unref(oe),projectId:G.$baseGetCurrentProjectId()};me==="javascript"&&(_e.extractPluginScript=vue.unref(le)||"",_e.streamType=fe.find(be=>be.fieldName=="streamType").value);const ye=await G.$baseHttp.post("/api/ace-data-center/db-extract/dbExtractDebug",_e);se.value=!1,ye&&(me==="sql"?ie.value=ye.data:ae.value=ye.data,G.$message.success("执行成功"))};return U({extractSql:oe,init:he,getValue:pe}),(me,_e)=>{const ye=vue.resolveComponent("aceHeader"),be=vue.resolveComponent("AppCodemirror"),xe=vue.resolveComponent("AppForm");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$m,[vue.createElementVNode("div",_hoisted_2$h,[vue.createVNode(ye,{title:"SQL数据抽取"},{left:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElPopover),{width:"600",placement:"bottom",trigger:"hover"},{reference:vue.withCtx(()=>[_hoisted_3$g]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTable),{data:re},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"sql",label:"SQL示例"},{default:vue.withCtx(({row:Ce})=>[vue.createVNode(vue.unref(elementPlus.ElTooltip),{content:Ce.sql,placement:"top"},{default:vue.withCtx(()=>[vue.createElementVNode("span",null,vue.toDisplayString(String(Ce.sql).substring(1,30))+"...",1)]),_:2},1032,["content"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{label:"操作",width:"120"},{default:vue.withCtx(({row:Ce})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:$e=>oe.value=Ce.sql},{default:vue.withCtx(()=>[vue.createTextVNode("复制到编辑框")]),_:2},1032,["onClick"])]),_:1})]),_:1})]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(se),type:"warning",onClick:_e[0]||(_e[0]=Ce=>ge("sql"))},{default:vue.withCtx(()=>[vue.createTextVNode("执行SQL")]),_:1},8,["disabled"])]),_:1}),vue.createElementVNode("div",_hoisted_4$e,[vue.createVNode(be,{extensions:"sql",modelValue:vue.unref(oe),"onUpdate:modelValue":_e[1]||(_e[1]=Ce=>vue.isRef(oe)?oe.value=Ce:null),style:{height:"250px"}},null,8,["modelValue"])])]),vue.createElementVNode("div",_hoisted_5$c,[vue.createVNode(ye,{title:"执行结果"}),vue.createElementVNode("div",_hoisted_6$a,[vue.createVNode(vue.unref(JsonEditorVue),{style:{height:"250px"},modelValue:vue.unref(ie),"onUpdate:modelValue":_e[2]||(_e[2]=Ce=>vue.isRef(ie)?ie.value=Ce:null)},null,8,["modelValue"])])])]),vue.createElementVNode("div",_hoisted_7$9,[vue.createElementVNode("div",_hoisted_8$7,[vue.createVNode(ye,{title:"插件编写"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(se),type:"warning",onClick:_e[3]||(_e[3]=Ce=>ge("javascript"))},{default:vue.withCtx(()=>[vue.createTextVNode(" 执行插件 ")]),_:1},8,["disabled"])]),_:1}),vue.createElementVNode("div",_hoisted_9$7,[vue.createVNode(be,{modelValue:vue.unref(le),"onUpdate:modelValue":_e[4]||(_e[4]=Ce=>vue.isRef(le)?le.value=Ce:null),style:{height:"250px"}},null,8,["modelValue"])])]),vue.createElementVNode("div",_hoisted_10$6,[vue.createVNode(ye,{title:"插件执行结果"}),vue.createElementVNode("div",_hoisted_11$4,[vue.createVNode(vue.unref(JsonEditorVue),{style:{height:"250px"},modelValue:vue.unref(ae),"onUpdate:modelValue":_e[5]||(_e[5]=Ce=>vue.isRef(ae)?ae.value=Ce:null)},null,8,["modelValue"])])])]),vue.createVNode(ye,{title:"抽取方案",class:"mt-4"}),vue.createVNode(xe,{form:vue.unref(fe)},{incrementalField:vue.withCtx(({element:Ce})=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:Ce.value,"onUpdate:modelValue":$e=>Ce.value=$e,placeholder:"请选择"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(me.modelAttributeList,$e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:$e.id,label:`${$e.attributeCode}(${$e.attributeComment||$e.attributeCode})`,value:$e.attributeCode},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:1},8,["form"]),vue.withDirectives(vue.createElementVNode("div",_hoisted_12$3,[vue.createVNode(ye,{title:"作业配置",class:"mb-2"},{left:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{class:"ml-2",modelValue:vue.unref(ue),"onUpdate:modelValue":_e[6]||(_e[6]=Ce=>vue.isRef(ue)?ue.value=Ce:null)},{default:vue.withCtx(()=>[vue.createTextVNode("作业配置")]),_:1},8,["modelValue"])]),_:1}),vue.withDirectives(vue.createElementVNode("div",null,[vue.createVNode(taskDesign,{ref_key:"taskDesignRef",ref:ce},null,512)],512),[[vue.vShow,vue.unref(ue)]])],512),[[vue.vShow,["1","2"].includes(vue.unref(de).value)]])],64)}}}),_withScopeId$8=te=>(vue.pushScopeId("data-v-5e352c92"),te=te(),vue.popScopeId(),te),_hoisted_1$l={class:"flex items-center mt-2"},_hoisted_2$g={class:"flex-1"},_hoisted_3$f={class:"mt-2 text-gray-400"},_hoisted_4$d=_withScopeId$8(()=>vue.createElementVNode("label",null,"模型名称:",-1)),_hoisted_5$b=_withScopeId$8(()=>vue.createElementVNode("label",null,"模型代码:",-1)),_hoisted_6$9=_withScopeId$8(()=>vue.createElementVNode("label",null,"模型描述:",-1)),_sfc_main$n=vue.defineComponent({__name:"model-db-extract-design",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),{allModel:oe,allModelAttribute:ie,getDetail:le}=fetch$1(re).model,ae=vue.ref(!1),se=vue.ref(null),ue=vue.ref([]),ce=vue.ref(""),de=vue.ref({}),fe=(ye,be="")=>{de.value={},ue.value=[],ae.value=!0,[{label:"ODS源",value:"odsy"},{label:"DWD源",value:"dwdy"},{label:"DWD目标",value:"dwdmb"}].forEach(xe=>{ue.value.push({...xe,attributeList:xe.value=="dwdmb"?[]:{},options:[],selectValue:[],currentVal:"",checkAttributeList:[]})}),ce.value=vue.unref(ue)[0].value,oe({modelLayer:"ODS"}).then(xe=>{vue.unref(ue).find(Ce=>Ce.value=="odsy").options=xe.data}),oe({modelLayer:"DWD"}).then(xe=>{vue.unref(ue).find(Ce=>Ce.value=="dwdy").options=xe.data}),ie({modelId:ee.modelId}).then(xe=>{vue.unref(ue).find(Ce=>Ce.value=="dwdmb").attributeList=xe.data}),le(ee.modelId).then(xe=>{de.value=xe.data}),vue.nextTick(()=>{be?re.$baseHttp.get(`/api/ace-data-center/db-extract/detailAndTask?dbExtractId=${be}`).then(xe=>{vue.unref(se).init(ye=="COPY"?{...xe.data,id:null,extractType:null,incrementalField:null,status:null,taskDefined:null,taskDefinedId:null,createUser:null,createDept:null,createTime:null,updateUser:null,updateTime:null}:xe.data)}):vue.unref(se).init()})},ve=(ye,be="")=>be?ye.options.find(xe=>xe.id==be):ye.options.find(xe=>xe.id==ye.currentVal),he=ye=>{var be;if(ye.selectValue.length){const xe=ye.selectValue.at(-1);ye.currentVal=(be=ve(ye,xe))==null?void 0:be.id,pe(ye);return}ye.currentVal=""},pe=ye=>{ye.attributeList[ye.currentVal]||ie({modelId:ye.currentVal}).then(be=>{ye.attributeList[ye.currentVal]=be.data})},ge=ye=>{ce.value=ye},me=ye=>{var be;vue.unref(se).extractSql+=`select ${ye.checkAttributeList.map(xe=>xe.attributeCode).toString()} from ${(be=ve(ye))==null?void 0:be.modelCode}`},_e=async()=>{const ye={execExtract:0,dataSourceId:0,modelId:ee.modelId,projectId:re.$baseGetCurrentProjectId()},be=vue.unref(se).getValue();!be||!await re.$baseHttp.post("/api/ace-data-center/db-extract/submitDbExtract",{...ye,...be},{headers:{loading:!0}})||(re.$message.success("操作成功"),ae.value=!1,ne("success"))};return U({init:fe}),(ye,be)=>{const xe=vue.resolveComponent("aceHeader"),Ce=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(Ce,{modelValue:vue.unref(ae),"onUpdate:modelValue":be[1]||(be[1]=$e=>vue.isRef(ae)?ae.value=$e:null),title:"数据抽取",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:_e},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:be[0]||(be[0]=$e=>ae.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden",style:{"margin-top":"0"}},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"flex flex-col pr-4 mr-5",style:{width:"320px",overflow:"hidden"}},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),$e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{onClick:Ee=>ge($e.value),type:vue.unref(ce)==$e.value?"primary":"",key:$e.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString($e.label),1)]),_:2},1032,["onClick","type"]))),128))]),_:1}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),$e=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:$e.value},[$e.value==vue.unref(ce)&&["odsy","dwdy"].includes($e.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(xe,{class:"mt-2",title:"模型选择"}),vue.createElementVNode("div",_hoisted_1$l,[vue.createElementVNode("div",_hoisted_2$g,[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:$e.selectValue,"onUpdate:modelValue":Ee=>$e.selectValue=Ee,onChange:()=>he($e),multiple:"","collapse-tags":"",clearable:"",placeholder:"请选择一个模型",class:"w-full"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList($e.options,Ee=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Ee.id,label:Ee.modelName,value:Ee.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),$e.selectValue.length?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{key:0,placement:"right",width:"300",trigger:"hover"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElBadge),{value:$e.selectValue.length,class:"ml-4"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),null,{default:vue.withCtx(()=>[vue.createTextVNode("模型")]),_:1})]),_:2},1032,["value"])]),default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList($e.selectValue,Ee=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:Ee,type:$e.currentVal==Ee?"warning":"primary",onClick:Ve=>{$e.currentVal=Ee,pe($e)},style:{margin:"0 7px 7px 0",cursor:"pointer"}},{default:vue.withCtx(()=>{var Ve;return[vue.createTextVNode(vue.toDisplayString((Ve=ve($e,Ee))==null?void 0:Ve.modelName),1)]}),_:2},1032,["type","onClick"]))),128))]),_:2},1024)):vue.createCommentVNode("",!0)]),$e.currentVal?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTooltip),{key:0,effect:"dark",content:`${ve($e).modelName}[${ve($e).modelCode}]`,placement:"bottom"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3$f,vue.toDisplayString(`${ve($e).modelName}[${ve($e).modelCode}]`),1)]),_:2},1032,["content"])):vue.createCommentVNode("",!0),vue.createVNode(xe,{class:"mt-2 mb-2",title:"字段属性"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:$e.checkAttributeList.length==0,type:"primary",onClick:Ee=>me($e)},{default:vue.withCtx(()=>[vue.createTextVNode(" 复制select语句到编辑框 ")]),_:2},1032,["disabled","onClick"])]),_:2},1024),vue.createVNode(vue.unref(elementPlus.ElTable),{data:$e.attributeList[$e.currentVal],height:"100%",onSelectionChange:Ee=>$e.checkAttributeList=Ee},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{type:"selection",width:"55"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeCode",label:"字段名称"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeComment",label:"字段描述"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"dataType",label:"数据类型"})]),_:2},1032,["data","onSelectionChange"])],64)):vue.createCommentVNode("",!0),$e.value==vue.unref(ce)&&["dwdmb"].includes($e.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(xe,{class:"mt-2",title:"DWD模型信息"}),vue.createElementVNode("section",null,[vue.createElementVNode("div",null,[_hoisted_4$d,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(de).modelName),1)]),vue.createElementVNode("div",null,[_hoisted_5$b,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(de).modelCode),1)]),vue.createElementVNode("div",null,[_hoisted_6$9,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(de).modelDesc),1)])]),vue.createVNode(vue.unref(elementPlus.ElTable),{data:$e.attributeList,height:"100%"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"mapCode",label:"映射字段"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeComment",label:"名称"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{label:"来源"},{default:vue.withCtx(({row:Ee,$index:Ve})=>[vue.createTextVNode(vue.toDisplayString(Ee.sourceModelName)+"."+vue.toDisplayString(Ee.sourceColumnName),1)]),_:1})]),_:2},1032,["data"])],64)):vue.createCommentVNode("",!0)],64))),128))]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$o,{ref_key:"designMainRef",ref:se,modelAttributeList:vue.unref(ue).at(-1).attributeList},null,8,["modelAttributeList"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}}}),modelDbExtractDesign_vue_vue_type_style_index_0_scoped_5e352c92_lang="",modelDbExtractDesign=_export_sfc$2(_sfc_main$n,[["__scopeId","data-v-5e352c92"]]),_sfc_main$m=vue.defineComponent({__name:"taskLog",setup(te,{expose:U}){const G=vue.ref(!1),ee=vue.ref(!1),ne=vue.ref(null),re=vue.ref(""),oe=vue.reactive([]),ie=vue.reactive([]),le=vue.reactive([{label:"调度参数",prop:"args"},{label:"调度结果",prop:"code"},{label:"调度日志",prop:"msg",slot:!0},{label:"调度开始时间",prop:"execBeginTime"},{label:"调度结束时间",prop:"execEndTime"}]),ae=vue.reactive([]),se=ve=>{ve.data.forEach(he=>{})},ue=(ve,he,pe)=>{},ce=async ve=>{},de=async ve=>{G.value=!0,vue.nextTick(()=>{vue.unref(ne).getData({url:`/api/ace-api/blade-system/task-log/list?taskId=${ve}&descs=create_time`})})},fe=ve=>{ee.value=!0,re.value=ve.msg};return U({init:de}),(ve,he)=>{const pe=vue.resolveComponent("el-link"),ge=vue.resolveComponent("appList"),me=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(me,{modelValue:vue.unref(G),"onUpdate:modelValue":he[1]||(he[1]=_e=>vue.isRef(G)?G.value=_e:null),title:"调度日志",size:1e3},{default:vue.withCtx(()=>[vue.createVNode(ge,{ref_key:"appRef",ref:ne,tableData:vue.unref(le),searchForm:vue.unref(oe),searchBtns:vue.unref(ie),formData:vue.unref(ae),onFormSuccess:ue,onSuccess:se,onBtnClick:ce},{msg:vue.withCtx(({row:_e})=>[vue.createVNode(pe,{type:"primary",onClick:ye=>fe(_e)},{default:vue.withCtx(()=>[vue.createTextVNode("查看调度日志")]),_:2},1032,["onClick"])]),_:1},8,["tableData","searchForm","searchBtns","formData"]),vue.createVNode(me,{modelValue:vue.unref(ee),"onUpdate:modelValue":he[0]||(he[0]=_e=>vue.isRef(ee)?ee.value=_e:null),title:"调度日志",size:"100%"},{default:vue.withCtx(()=>[vue.createElementVNode("pre",null,vue.toDisplayString(vue.unref(re)),1)]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}}),_sfc_main$l=vue.defineComponent({__name:"model-db-extract",props:{model:{default:{}}},setup(te){const U=te,{proxy:G}=vue.getCurrentInstance(),ee=vue.ref(null),ne=vue.ref(null),re=vue.ref(null),oe=vue.ref(null),ie=`/api/ace-data-center/db-extract/list?modelId=${U.model.id}&projectId=${G.$baseGetCurrentProjectId()}`,le=vue.reactive([{name:"新增",key:"ADD",type:"primary",icon:"ri-add-line"}]),ae=vue.reactive([{label:"抽取方案名称",prop:"extractName"},{label:"抽取类型",prop:"extractType",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=extractType",label:"dictValue",value:"dictKey"}},{label:"操作",prop:"htmlButton",fixed:"right"}]),se=ce=>{ce.data.forEach(de=>{de.htmlButton=[],de.htmlButton.push({name:"编辑",key:"EDIT",type:"primary",icon:"ri-edit-line"}),de.htmlButton.push({name:"复制",key:"COPY",type:"primary",icon:"ri-file-copy-line"}),de.htmlButton.push({name:"抽取记录",key:"LOG",type:"primary",icon:"ri-file-line"}),de.taskDefinedId&&de.htmlButton.push({name:"作业调度日志",key:"TASK-LOG",type:"primary",icon:"ri-file-line"}),[1,2].includes(de.extractType)&&de.htmlButton.push({name:"抽取",key:"PUSH",type:"primary",icon:"ri-pushpin-line"}),de.htmlButton.push({name:"删除",key:"DEL",type:"danger",icon:"ri-delete-bin-6-line"})})},ue=ce=>{const{type:de,row:fe}=ce;switch(de){case"ADD":case"COPY":case"EDIT":vue.unref(oe).init(de,(fe==null?void 0:fe.id)??"");break;case"LOG":vue.unref(ee).init({businessId:fe.id,businessType:"db_extract",table:[{label:"日期",prop:"createTime"},{label:"数据总数",prop:"totalNum"},{label:"成功数",prop:"successNum"},{label:"失败数",prop:"failNum"},{label:"协同参数",prop:"collaborateValue"},{label:"操作",prop:"action",slot:!0,fixed:"right"}]});break;case"TASK-LOG":vue.unref(ne).init(fe.taskDefinedId??"");break;case"PUSH":G.$baseConfirm({content:"是否抽取?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/extract/${fe.id}`,{},{headers:{loading:!0}})&&G.$message.success("操作成功")}});break;case"DEL":G.$baseConfirm({content:"是否删除?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/removeById/${fe.id}`,{},{headers:{loading:!0}})&&(G.$message.success("操作成功"),vue.unref(re).getData())}});break}};return(ce,de)=>{const fe=vue.resolveComponent("appList");return vue.openBlock(),vue.createBlock(fe,{ref_key:"appRef",ref:re,url:ie,tableData:vue.unref(ae),searchBtns:vue.unref(le),onSuccess:se,onBtnClick:ue},{default:vue.withCtx(()=>{var ve;return[vue.createVNode(_sfc_main$t,{ref_key:"modelExtractLogRef",ref:ee},null,512),vue.createVNode(modelDbExtractDesign,{ref_key:"modelDbExtractDesignRef",ref:oe,modelId:(ve=U==null?void 0:U.model)==null?void 0:ve.id,onSuccess:de[0]||(de[0]=he=>vue.unref(re).getData())},null,8,["modelId"]),vue.createVNode(_sfc_main$m,{ref_key:"taskLogRef",ref:ne},null,512)]}),_:1},8,["tableData","searchBtns"])}}}),_hoisted_1$k={class:"flex max-h-80"},_hoisted_2$f={key:0,class:"p-2 mr-3 border border-gray-200 border-solid w-80"},_hoisted_3$e=vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1),_hoisted_4$c={key:0,class:"overflow-x-hidden overflow-y-auto max-h-60"},_hoisted_5$a={key:1},_hoisted_6$8={class:"flex flex-col flex-1 overflow-hidden border border-gray-200 border-solid"},_hoisted_7$8={class:"flex justify-between p-2"},_hoisted_8$6=vue.createElementVNode("i",{class:"mr-1 ri-add-line"},null,-1),_hoisted_9$6=vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1),_hoisted_10$5={class:"flex-1 h-full p-2 overflow-y-auto"},_sfc_main$k=vue.defineComponent({__name:"model-search-setting",props:{menu:{default:()=>[]},businessType:{default:"indicators"},businessId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),{getDetail:oe}=fetch$1(re).model,{dynamicSearchForm:ie,dynamicSearchFormat:le,dynamicSearchParams:ae}=re.$aceDynamicSearch(),se=vue.computed(()=>{let he="select * from yourTable temp where ";const pe=[];return ie.value.forEach(ge=>{ge.type=="stringSingle"?pe.push(`temp.xxx like concat('%',#{query.${ge.key}},'%')`):ge.type=="numberSingle"||ge.type=="select"?pe.push(`temp.xxx = #{query.${ge.key}}`):ge.type=="numberRange"?(pe.push(`temp.xxx>= #{query.${ge.key}1}`),pe.push(`temp.xxx<= #{query.${ge.key}2}`)):ge.type=="yySingle"?pe.push(`toYear(temp.xxx)= #{query.${ge.key}}`):ge.type=="yyRange"?(pe.push(`toYear(temp.xxx)>= #{query.${ge.key}1}`),pe.push(`toYear(temp.xxx)<#{query.${ge.key}2}`)):ge.type=="yymmSingle"?pe.push(`formatDateTime(temp.xxx,'%Y-%m') = #{query.${ge.key}}`):ge.type=="yymmRange"?pe.push(`formatDateTime(temp.xxx,'%Y-%m') BETWEEN #{query.${ge.key}1} and #{query.${ge.key}2}`):ge.type=="yymmddSingle"?pe.push(`formatDateTime(temp.xxx,'%Y-%m-%d') = #{query.${ge.key}}`):ge.type=="yymmddRange"&&pe.push(`formatDateTime(temp.xxx,'%Y-%m-%d') BETWEEN #{query.${ge.key}1} and #{query.${ge.key}2}`)}),he+=pe.join(" and ")}),ue=vue.ref(ee.menu.length?ee.menu[0].value:""),ce=vue.ref(!1),de=vue.ref(!1);vue.watch(ce,async he=>{var me;if(!he)return;if(!ee.businessId){de.value=!1,ie.value=[];return}let pe;switch(de.value=!0,ie.value=[],ee.businessType){case"model":pe=await re.$baseHttp.post(`/api/ace-data-center/model/getFormJsonConfig/${ee.businessId}`);break;case"dataform":pe=await re.$baseHttp.get(`/api/ace-data-center/dataform/detail?id=${ee.businessId}`);break;case"rule":pe=await re.$baseHttp.get(`/api/ace-data-center/rule/detail?id=${ee.businessId}`);break;case"indicators":pe=await re.$baseHttp.get(`/api/ace-data-center/indicators/detail?id=${ee.businessId}`);break}const ge=JSON.parse(((me=pe==null?void 0:pe.data)==null?void 0:me.formConfJson)??"[]");["model"].includes(ee.businessType)?oe(ee.businessId).then(_e=>{ie.value=_e.data.listModelAttribute.map(ye=>({name:ye.attributeComment,key:ye.attributeCode,dataType:ye.dataType,hide:ye.hide,checked:!1,type:"",value:"",minValue:"",maxValue:"",defaultRule:"",dictId:"",options:""})),ge.forEach(ye=>{const be=vue.unref(ie).find(xe=>xe.key==ye.key);be&&(Object.keys(be).forEach(xe=>{be[xe]=ye[xe]}),be.checked=!0),["varchar","text"].includes(ye.dataType)&&!be&&(ye.type="stringSingle")}),de.value=!1}):(ie.value=ge,de.value=!1)});const fe=async()=>{let he=!1,pe=JSON.parse(JSON.stringify(vue.unref(ie)));if(["model"].includes(ee.businessType)&&(pe=pe.filter(ye=>ye.checked)),pe.forEach(ye=>{delete ye.options,(ye.key==""||ye.name==""||ye.type=="")&&(he=!0)}),he){re.$message.warning("存在字段未填写请核对");return}const ge=ae(vue.unref(ie));if(!ee.businessId){ne("success",ge),ce.value=!1;return}let me="";switch(ee.businessType){case"model":me="/api/ace-data-center/model/updateFormConfJson";break;case"dataform":me="/api/ace-data-center/dataform/submit";break;case"rule":me="/api/ace-data-center/rule/submit";break;case"indicators":me="/api/ace-data-center/indicators/updateFormConfJson";break}await re.$baseHttp.post(me,{id:ee.businessId,formConfJson:JSON.stringify(pe),paramsRemark:JSON.stringify(ge),projectId:re.$baseGetCurrentProjectId()},{headers:{loading:!0}})&&(re.$message.success("操作成功"),ne("success",ge),ce.value=!1)},ve=()=>{const he=vue.unref(ie).length;ie.value.push({key:"temp"+he,name:"字段"+he,type:"stringSingle",value:""})};return U({visible:ce,dynamicSearchForm:ie}),(he,pe)=>{const ge=vue.resolveComponent("aceDynamicSearchEdit"),me=vue.resolveComponent("AppCodemirror");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{placement:"bottom",visible:vue.unref(ce),"onUpdate:visible":pe[2]||(pe[2]=_e=>vue.isRef(ce)?ce.value=_e:null),trigger:"click","popper-style":{zIndex:9999999},width:he.menu.length?"1400px":"800px"},{reference:vue.withCtx(()=>[vue.renderSlot(he.$slots,"reference")]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$k,[he.menu.length?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$f,[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(he.menu,_e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:vue.unref(ue)==_e.value?"primary":"",key:_e.value,onClick:ye=>ue.value=_e.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(_e.label),1)]),_:2},1032,["type","onClick"]))),128))]),_:1}),_hoisted_3$e,(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(he.menu,_e=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:_e.value},[_e.value==vue.unref(ue)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.renderSlot(he.$slots,_e.value),_e.value=="tool"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$c,[vue.createVNode(ge,{form:vue.unref(ie).filter(ye=>ye.checked||ye.checked==null),isEdit:!1},null,8,["form"])])):vue.createCommentVNode("",!0),_e.value=="json"?(vue.openBlock(),vue.createElementBlock("pre",_hoisted_5$a,vue.toDisplayString(vue.unref(ae)(vue.unref(ie))),1)):vue.createCommentVNode("",!0),_e.value=="sql"?(vue.openBlock(),vue.createBlock(me,{key:2,extensions:"sql",disabled:"",modelValue:vue.unref(se),"onUpdate:modelValue":pe[0]||(pe[0]=ye=>vue.isRef(se)?se.value=ye:null),style:{height:"250px"}},null,8,["modelValue"])):vue.createCommentVNode("",!0)],64)):vue.createCommentVNode("",!0)],64))),128))])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_6$8,[vue.createElementVNode("div",_hoisted_7$8,[vue.createElementVNode("div",null,[["model"].includes(ee.businessType)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElLink),{key:0,type:"primary",onClick:ve},{default:vue.withCtx(()=>[_hoisted_8$6,vue.createTextVNode(" 新增参数 ")]),_:1}))]),vue.createElementVNode("div",null,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",onClick:fe},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",class:"ml-3",size:"small",onClick:pe[1]||(pe[1]=_e=>ce.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode(" 关闭 ")]),_:1})])]),_hoisted_9$6,vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(de),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_10$5,[vue.createVNode(ge,{form:vue.unref(ie),businessType:ee.businessType},null,8,["form","businessType"])])]),_:1},8,["loading"])])])]),_:3},8,["visible","width"])}}}),_withScopeId$7=te=>(vue.pushScopeId("data-v-13eb82bd"),te=te(),vue.popScopeId(),te),_hoisted_1$j={class:"flex justify-end"},_hoisted_2$e=_withScopeId$7(()=>vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1)),_hoisted_3$d={class:"overflow-y-auto max-h-96"},_hoisted_4$b=_withScopeId$7(()=>vue.createElementVNode("thead",null,[vue.createElementVNode("tr",null,[vue.createElementVNode("td",null,"字段名称"),vue.createElementVNode("td",null,"字段描述"),vue.createElementVNode("td",null,"数据类型"),vue.createElementVNode("td",{style:{width:"150px"}},"标题栏名称"),vue.createElementVNode("td",{style:{width:"150px"}},"列的宽度"),vue.createElementVNode("td",{style:{width:"60px"}},"固定"),vue.createElementVNode("td",{style:{width:"60px"}},"列显示"),vue.createElementVNode("td",{style:{width:"150px"}},"类型"),vue.createElementVNode("td",{style:{width:"150px"}},"额外参数"),vue.createElementVNode("td",{style:{width:"30px"}})])],-1)),_hoisted_5$9={class:"sort-target"},_hoisted_6$7=_withScopeId$7(()=>vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-move ri-mouse-line sortable-handle text-color-warning"})],-1)),_hoisted_7$7=_withScopeId$7(()=>vue.createElementVNode("i",{class:"mr-1 ri-file-cloud-line"},null,-1)),_sfc_main$j=vue.defineComponent({__name:"dynamicTableCol",props:{model:{default:{}},title:{default:"标题栏配置"}},emits:["success"],setup(te,{emit:U}){const{proxy:G}=vue.getCurrentInstance(),{getDetail:ee}=fetch$1(G).model,ne=te,re=vue.ref([]),oe=vue.ref([]),ie=vue.ref(!1),le=vue.ref(!1),ae=[{label:"文本",value:"txt"},{label:"字典",value:"dict"},{label:"地图",value:"map"},{label:"图片",value:"img"}],se=U,ue=async()=>{le.value=!0,re.value=[];const de=await ee(ne.model.id);le.value=!1,G.$baseHttp.get(`/api/ace-data-center/custom-dic/options?projectId=${G.$baseGetCurrentProjectId()}`).then(he=>{oe.value=he.data});const fe=de.data.listModelAttribute,ve=JSON.parse(de.data.columnOption||"[]");fe.forEach(he=>{const pe=ve.find(ge=>ge.prop==he.attributeCode);pe?he.columnOption=pe:he.columnOption={prop:he.attributeCode,label:he.attributeComment,labelWidth:"",fixed:!1,isShow:!["id","project_id","create_time","create_user","create_dept","_project_id","tag","_create_time","_create_user","_create_dept","_tag","_data_from"].includes(he.attributeCode),sort:"",type:"txt",ext:{}}}),fe.sort((he,pe)=>he.columnOption.sort-pe.columnOption.sort),re.value=fe},ce=async()=>{const de=[],fe=[];if(vue.unref(re).forEach((he,pe)=>{const ge=he.columnOption;ge.sort=pe+1,ge.type=="dict"?ge.ext.dictId||fe.push(`${he.attributeComment}字典值为空`):ge.ext={},de.push(ge)}),fe.length>0){G.$message.error(fe[0]);return}await G.$baseHttp.post("/api/ace-data-center/model/saveColumnOption",{id:ne.model.id,columnOption:JSON.stringify(de)})&&(G.$message.success("操作成功"),ie.value=!1,se("success"))};return(de,fe)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{placement:"bottom",visible:vue.unref(ie),"onUpdate:visible":fe[3]||(fe[3]=ve=>vue.isRef(ie)?ie.value=ve:null),trigger:"click",width:"1200px"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"warning",class:"ml-3",onClick:fe[2]||(fe[2]=ve=>ue())},{default:vue.withCtx(()=>[_hoisted_7$7,vue.createTextVNode(" "+vue.toDisplayString(de.title),1)]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$j,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",onClick:ce},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",class:"ml-3",size:"small",onClick:fe[0]||(fe[0]=ve=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("关闭")]),_:1})]),_hoisted_2$e,vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(le),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3$d,[vue.createVNode(vue.unref(vueDraggablePlus.VueDraggable),{modelValue:vue.unref(re),"onUpdate:modelValue":fe[1]||(fe[1]=ve=>vue.isRef(re)?re.value=ve:null),target:".sort-target",animation:150,handle:".sortable-handle"},{default:vue.withCtx(()=>[vue.createElementVNode("table",null,[_hoisted_4$b,vue.createElementVNode("tbody",_hoisted_5$9,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(re),ve=>(vue.openBlock(),vue.createElementBlock("tr",{key:ve.id},[vue.createElementVNode("td",null,vue.toDisplayString(ve.attributeCode),1),vue.createElementVNode("td",null,vue.toDisplayString(ve.attributeComment),1),vue.createElementVNode("td",null,vue.toDisplayString(ve.dataType),1),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:ve.columnOption.label,"onUpdate:modelValue":he=>ve.columnOption.label=he,placeholder:"名称"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:ve.columnOption.labelWidth,"onUpdate:modelValue":he=>ve.columnOption.labelWidth=he,placeholder:"列的宽度"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:ve.columnOption.fixed,"onUpdate:modelValue":he=>ve.columnOption.fixed=he},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:ve.columnOption.isShow,"onUpdate:modelValue":he=>ve.columnOption.isShow=he},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,size:"small",class:"w-full",modelValue:ve.columnOption.type,"onUpdate:modelValue":he=>ve.columnOption.type=he,placeholder:"请选择"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ae,he=>vue.createVNode(vue.unref(elementPlus.ElOption),{key:he.value,label:he.label,value:he.value},null,8,["label","value"])),64))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[["dict"].includes(ve.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,teleported:!1,size:"small",modelValue:ve.columnOption.ext.dictId,"onUpdate:modelValue":he=>ve.columnOption.ext.dictId=he,placeholder:"字典值"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(oe),he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:he.label,value:he.code,key:he.code},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),_hoisted_6$7]))),128))])])]),_:1},8,["modelValue"])])]),_:1},8,["loading"])]),_:1},8,["visible"]))}}),dynamicTableCol_vue_vue_type_style_index_0_scoped_13eb82bd_lang="",dynamicTableCol=_export_sfc$2(_sfc_main$j,[["__scopeId","data-v-13eb82bd"]]),_hoisted_1$i={class:"relative pt-2.5"},_sfc_main$i=vue.defineComponent({__name:"insert",props:{model:{default:{}},permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=G,ne=vue.ref(!1),re=vue.ref(null),oe=se=>{re.value=se,ne.value=!0},ie=()=>ee("success"),le=vue.inject("masterData"),ae=se=>{const ue=vue.unref(re).joinFieldMapping.split(":")[0],ce=vue.unref(re).joinFieldMapping.split(":")[1];se.dataMap[ce]=vue.unref(le)[ue]};return U({init:oe}),(se,ue)=>{const ce=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ce,{modelValue:vue.unref(ne),"onUpdate:modelValue":ue[0]||(ue[0]=de=>vue.isRef(ne)?ne.value=de:null),title:"从表数据编辑",size:"1200px"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$i,[vue.createVNode(_sfc_main$G,{model:vue.unref(re),permission:se.permission,onSuccess:ie,paramsCallback:ae},null,8,["model","permission"])])]),_:1},8,["modelValue"])}}}),insert_vue_vue_type_style_index_0_scoped_9480ca97_lang="",Insert=_export_sfc$2(_sfc_main$i,[["__scopeId","data-v-9480ca97"]]),_withScopeId$6=te=>(vue.pushScopeId("data-v-0f244db2"),te=te(),vue.popScopeId(),te),_hoisted_1$h={class:"mt-2.5 mb-2.5"},_hoisted_2$d={class:"flex items-center justify-between"},_hoisted_3$c={key:0,class:"relative"},_hoisted_4$a={key:0},_hoisted_5$8=_withScopeId$6(()=>vue.createElementVNode("i",{class:"ri-add-line"},null,-1)),_sfc_main$h=vue.defineComponent({__name:"slave",props:{model:{default:{}},permission:{default:()=>[]}},setup(te){const U=te,G=vue.inject("masterData"),ee=()=>{oe.value=!1,setTimeout(()=>oe.value=!0,10)},ne=vue.ref(null),re=vue.ref(""),oe=vue.ref(!0);vue.nextTick(()=>{re.value=U.model.slaveModels[0].id});const ie=vue.computed(()=>U.model.slaveModels.find(le=>le.id==vue.unref(re)));return vue.watch(re,le=>{}),(le,ae)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$h,[vue.createElementVNode("div",_hoisted_2$d,[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(le.model.slaveModels,(se,ue)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:se.id==vue.unref(re)?"primary":"",onClick:ce=>re.value=se.id},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(se.modelName),1)]),_:2},1032,["type","onClick"]))),256))]),_:1})]),vue.unref(ie)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$c,[vue.unref(oe)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$a,[vue.createVNode(_sfc_main$f,{model:vue.unref(ie),permission:le.permission,masterData:vue.unref(G)},{btns:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(ie).publishStatus=="1",type:"primary",class:"flex items-center mr-2",onClick:ae[0]||(ae[0]=se=>vue.unref(ne).init(vue.unref(ie)))},{default:vue.withCtx(()=>[_hoisted_5$8,vue.createTextVNode(" 新增数据 ")]),_:1},8,["disabled"])]),_:1},8,["model","permission","masterData"])])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0)]),vue.createVNode(Insert,{ref_key:"insertRef",ref:ne,masterId:"",model:le.model,permission:le.permission,onSuccess:ee},null,8,["model","permission"])],64))}}),slave_vue_vue_type_style_index_0_scoped_0f244db2_lang="",ModelSlave=_export_sfc$2(_sfc_main$h,[["__scopeId","data-v-0f244db2"]]),_hoisted_1$g={class:"p-4"},_sfc_main$g=vue.defineComponent({__name:"view",props:{model:{default:{}},permission:{default:()=>[]}},setup(te,{expose:U}){const G=te,{loading:ee,colValue:ne,formData:re,init:oe}=useInsertForm(G.model.id),ie=vue.ref(!1),le=vue.ref({});return vue.provide("masterData",le),U({init:se=>{ie.value=!0,le.value=se,oe(se,"update")}}),(se,ue)=>{const ce=vue.resolveComponent("aceHeader"),de=vue.resolveComponent("AppForm"),fe=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(fe,{modelValue:vue.unref(ie),"onUpdate:modelValue":ue[0]||(ue[0]=ve=>vue.isRef(ie)?ie.value=ve:null),title:"主从详情数据",size:"90%"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElSkeleton),{animated:"",loading:vue.unref(ee)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(re),ve=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:ve.key},[ve.key?(vue.openBlock(),vue.createBlock(ce,{key:0,title:ve.key},null,8,["title"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_1$g,[vue.createVNode(de,{form:ve.list,col:vue.unref(ne),disabled:""},null,8,["form","col"])])],64))),128)),vue.createVNode(ModelSlave,{model:se.model,permission:se.permission},null,8,["model","permission"])]),_:1},8,["loading"])]),_:1},8,["modelValue"])}}}),_hoisted_1$f={class:"absolute right-0 flex items-center -top-10"},_hoisted_2$c=vue.createElementVNode("i",{class:"mr-1 ri-file-upload-line"},null,-1),_hoisted_3$b=vue.createElementVNode("i",{class:"mr-1 ri-file-history-line"},null,-1),_sfc_main$f=vue.defineComponent({__name:"model-data",props:{model:{default:{}},masterData:{default:null},permission:{default:()=>[]}},setup(te){const U=te,{proxy:G}=vue.getCurrentInstance(),ee=vue.ref(null),ne=vue.ref([]),re=ae=>{ne.value=ae},oe=ae=>{const{data:se}=ae;se.forEach(ue=>{var de;(((de=U.model)==null?void 0:de.slaveModels)??[]).some(fe=>fe.parentModelId)&&ue.htmlButton.unshift({name:"详情",key:"viewBTN",type:"primary",icon:"ri-file-2-line"})})},ie=ae=>{const{type:se,row:ue}=ae;if(se=="viewBTN"){const ce={};U.model.listModelAttribute.forEach(de=>{ce[de.mapCode]=ue[de.attributeCode]}),vue.unref(ee).init(ce,"update")}},le=ae=>{const{joinFieldMapping:se}=U.model;if(U.model.joinFieldMapping&&U.masterData){const ue=se.split(":")[0],ce=se.split(":")[1];ae.params[ce]=U.masterData[ue]}return ae};return(ae,se)=>{var de,fe,ve;const ue=vue.resolveComponent("AppTable"),ce=vue.resolveComponent("aceDynamicList");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$f,[vue.renderSlot(ae.$slots,"btns"),vue.createVNode(_sfc_main$k,{ref:"modelSearchSettingRef",menu:[],businessType:"model",businessId:(de=ae.model)==null?void 0:de.id,onSuccess:se[0]||(se[0]=he=>vue.unref(G).$refs.aceDynamicListRef.init())},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"success"},{default:vue.withCtx(()=>[_hoisted_2$c,vue.createTextVNode(" 查询配置 ")]),_:1})]),attr:vue.withCtx(()=>[vue.createVNode(ue,{maxHeight:"250px",tableData:[{label:"标识符",prop:"prop"},{label:"字段名",prop:"label"}],list:vue.unref(ne)},null,8,["list"])]),_:1},8,["businessId"]),vue.createVNode(dynamicTableCol,{model:ae.model,onSuccess:se[1]||(se[1]=he=>vue.unref(G).$refs.aceDynamicListRef.init())},null,8,["model"]),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",class:"ml-3",onClick:se[2]||(se[2]=he=>vue.unref(G).$refs.aceDynamicListRef.handleExport())},{default:vue.withCtx(()=>[_hoisted_3$b,vue.createTextVNode(" 导出EXCEL ")]),_:1}),vue.createVNode(_sfc_main$g,{ref_key:"modelSlaveViewRef",ref:ee,model:ae.model,permission:ae.permission},null,8,["model","permission"])]),vue.createVNode(ce,{id:(fe=ae.model)==null?void 0:fe.id,title:(ve=ae.model)==null?void 0:ve.modelName,showPageIndex:!0,isDownLoad:!1,onTableHeader:re,formatParamsFunc:le,isDelete:ae.permission.includes("DATA_DEL")&&ae.model.modelLayer!="ODSVIEW"&&!ae.model.shadowModelId,isEdit:ae.model.openForm==2&&ae.permission.includes("DATA_EDIT"),ref:"aceDynamicListRef",onBtnClick:ie,onSuccessList:oe},null,8,["id","title","isDelete","isEdit"])],64)}}}),_hoisted_1$e={class:"flex flex-col h-full"},_hoisted_2$b={class:"flex flex-col w-full tab-container"},_hoisted_3$a={key:0},_hoisted_4$9={key:1},_hoisted_5$7={key:2},_sfc_main$e=vue.defineComponent({__name:"model-view",props:{type:{default:"ODS"},permission:{default:()=>[]}},setup(te,{expose:U}){const G=te,{proxy:ee}=vue.getCurrentInstance(),{getDetail:ne}=fetch$1(ee).model,re=vue.ref({}),oe=vue.ref(!1),ie=vue.ref(""),le=vue.ref([]),ae=vue.ref([{label:"字段名称",prop:"attributeCode",fixed:!0},{label:"字段描述",prop:"attributeComment"},{label:"映射字段",prop:"mapCode"},{label:"数据类型",prop:"dataType"},{label:"数据长度",prop:"dataLength"},{label:"数据标度",prop:"dataScale"},{label:"选择主键",prop:"primaryKey",props:{url:"/api/ace-api/blade-system/dict/dictionary?code=yes_no",label:"dictValue",value:"dictKey"}},{label:"唯一键",prop:"uniqueKey",slot:!0},{label:"查询字段",prop:"searchKey",slot:!0},{label:"协同字段",prop:"teamworkKey",slot:!0},{label:"字段来源",prop:"sourceModelName"},{label:"数据来源",prop:"sourceColumnName"}]),se=async he=>{oe.value=!0,ie.value="",le.value=[];const pe=await ne(he==null?void 0:he.id,!1);pe&&(re.value=pe.data,oe.value=!1,le.value.push({label:"模型数据",value:"data"}),G.type=="ODS"&&G.permission.includes("EXCEL_EXTRACT")&&!pe.data.parentModelId&&le.value.push({label:"Excel抽取",value:"fileExtract"}),G.type=="DWD"&&le.value.push({label:"抽取数据",value:"dbExtract"}),le.value.push({label:"模型信息",value:"info"}),vue.unref(re).openForm==2&&vue.unref(re).publishStatus==2&&!pe.data.parentModelId&&le.value.push({label:"录入数据",value:"insertForm"}),ie.value=vue.unref(le)[0].value)},ue=async he=>{await ee.$baseHttp.post("/api/ace-data-center/model-attribute/submit",{...he,projectId:ee.$baseGetCurrentProjectId()})&&ee.$message.success("操作成功")},ce=async he=>{await ee.$baseHttp.post("/api/ace-data-center/model-attribute/submit",{id:he.id,searchKey:he.searchKey,projectId:ee.$baseGetCurrentProjectId()})&&(ee.$message.success("操作成功"),he.searchKey=="1"&&he.indexKey=="2"&&(he.indexKey=1,de(he)))},de=async he=>{await ee.$baseHttp.post("/api/ace-data-center/model-attribute/changeIndexKey",he)&&ee.$message.success("操作成功")},fe=async he=>{he.teamworkKey=="2"&&vue.unref(re).listModelAttribute.filter(ge=>ge.id!=he.id).forEach(ge=>{ge.teamworkKey=1}),await ee.$baseHttp.post("/api/ace-data-center/model-attribute/changeTeamworkKey",he)&&ee.$message.success("操作成功")},ve=async he=>(he.loading=!0,new Promise(async pe=>{const ge=await ee.$baseHttp.post("/api/ace-data-center/model-attribute/changeRequiredStatus",{modelAttributeId:he.id,status:he.required==2?1:2});return he.loading=!1,pe(!!ge)}));return U({init:se}),(he,pe)=>{const ge=vue.resolveComponent("AppTable");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(oe),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$e,[vue.createVNode(vue.unref(elementPlus.ElTabs),{modelValue:vue.unref(ie),"onUpdate:modelValue":pe[0]||(pe[0]=me=>vue.isRef(ie)?ie.value=me:null),type:"card"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(le),me=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTabPane),{label:me.label,name:me.value,key:me.value},null,8,["label","name"]))),128))]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_2$b,[vue.unref(ie)=="dbExtract"?(vue.openBlock(),vue.createBlock(_sfc_main$l,{key:0,model:vue.unref(re)},null,8,["model"])):vue.createCommentVNode("",!0),vue.unref(ie)=="fileExtract"?(vue.openBlock(),vue.createBlock(_sfc_main$q,{key:1,model:vue.unref(re)},null,8,["model"])):vue.createCommentVNode("",!0),vue.unref(ie)=="info"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createVNode(vue.unref(elementPlus.ElDescriptions),{column:2,border:!0,style:{width:"100%"}},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型名称"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelName),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型代码"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelCode),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型层级"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTag),{type:"danger"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelLayer),1)]),_:1})]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型类型"},{default:vue.withCtx(()=>[vue.unref(re).modelType==1?(vue.openBlock(),vue.createElementBlock("span",_hoisted_3$a,"维度模型")):vue.createCommentVNode("",!0),vue.unref(re).modelType==2?(vue.openBlock(),vue.createElementBlock("span",_hoisted_4$9,"事实模型")):vue.createCommentVNode("",!0),vue.unref(re).modelType==3?(vue.openBlock(),vue.createElementBlock("span",_hoisted_5$7,"其他模型")):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型描述"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelDesc),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"数据仓库"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(re).modelStore),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"发布状态"},{default:vue.withCtx(()=>[vue.unref(re).publishStatus==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未发布")]),_:1})):vue.createCommentVNode("",!0),vue.unref(re).publishStatus==2?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:1,type:"success"},{default:vue.withCtx(()=>[vue.createTextVNode("已发布")]),_:1})):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"表单录入数据"},{default:vue.withCtx(()=>[vue.unref(re).openForm==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未开启")]),_:1})):vue.createCommentVNode("",!0),vue.unref(re).openForm==2?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:1,type:"success"},{default:vue.withCtx(()=>[vue.createTextVNode("已开启")]),_:1})):vue.createCommentVNode("",!0)]),_:1})]),_:1}),vue.createVNode(ge,{class:"mt-2.5",tableData:vue.unref(ae),list:vue.unref(re).listModelAttribute,ref:"appTable"},{uniqueKey:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{"true-value":"2","false-value":"1",modelValue:me.uniqueKey,"onUpdate:modelValue":_e=>me.uniqueKey=_e,onChange:_e=>ue(me)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),required:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:me.required,"onUpdate:modelValue":_e=>me.required=_e,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":2,"inactive-value":1,loading:me.loading,"before-change":()=>ve(me)},null,8,["modelValue","onUpdate:modelValue","loading","before-change"])]),searchKey:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:me.searchKey,"onUpdate:modelValue":_e=>me.searchKey=_e,"true-value":"2","false-value":"1",onChange:_e=>ce(me)},null,8,["modelValue","onUpdate:modelValue","onChange"]),me.searchKey==="2"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElCheckbox),{key:0,modelValue:me.indexKey,"onUpdate:modelValue":_e=>me.indexKey=_e,"true-value":"2","false-value":"1",onChange:_e=>de(me)},{default:vue.withCtx(()=>[vue.createTextVNode(" 创建索引 ")]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])):vue.createCommentVNode("",!0)]),teamworkKey:vue.withCtx(({row:me})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{disabled:!["date","time","datetime"].includes(me.dataType),modelValue:me.teamworkKey,"onUpdate:modelValue":_e=>me.teamworkKey=_e,"true-value":"2","false-value":"1",onChange:_e=>fe(me)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"])]),_:1},8,["tableData","list"])],64)):vue.createCommentVNode("",!0),vue.unref(ie)=="data"?(vue.openBlock(),vue.createBlock(_sfc_main$f,{key:3,model:vue.unref(re),permission:he.permission},null,8,["model","permission"])):vue.createCommentVNode("",!0),vue.unref(ie)=="insertForm"?(vue.openBlock(),vue.createBlock(_sfc_main$G,{key:4,model:vue.unref(re),permission:he.permission},null,8,["model","permission"])):vue.createCommentVNode("",!0)])])]),_:1},8,["loading"])}}}),modelView_vue_vue_type_style_index_0_scoped_d55b8fbb_lang="",aceModelView=_export_sfc$2(_sfc_main$e,[["__scopeId","data-v-d55b8fbb"]]),_withScopeId$5=te=>(vue.pushScopeId("data-v-9af70b95"),te=te(),vue.popScopeId(),te),_hoisted_1$d={class:"overflow-y-auto"},_hoisted_2$a={class:"fadeIn animated"},_hoisted_3$9=_withScopeId$5(()=>vue.createElementVNode("th",null,null,-1)),_hoisted_4$8={class:"h-80"},_hoisted_5$6=["title"],_hoisted_6$6={class:"name"},_hoisted_7$6={class:"total"},_hoisted_8$5={class:"h-80"},_hoisted_9$5=["title"],_hoisted_10$4={class:"name"},_hoisted_11$3={class:"total"},_hoisted_12$2=_withScopeId$5(()=>vue.createElementVNode("br",null,null,-1)),_sfc_main$d=vue.defineComponent({__name:"matrix",setup(te,{expose:U}){const{proxy:G}=vue.getCurrentInstance(),{allModel:ee,allModelAttribute:ne,allModelMatrix:re,queryRows:oe}=fetch$1(G).model,ie=vue.ref([]),le=vue.ref([]),ae=vue.ref({}),se=vue.ref([]),ue=vue.ref([]),ce=vue.ref(!0),de=vue.reactive([{label:"字段",prop:"attributeCode"},{label:"名称",prop:"attributeComment"},{label:"类型",prop:"dataType",func:ve=>commonDataType[ve.dataType]}]);Promise.all([ee({modelLayer:"DWD",publishStatus:2}),re({modelLayer:"DWD"}),oe({modelLayer:"DWD"})]).then(ve=>{ce.value=!1,ie.value=ve[0].data,le.value=ve[1].data,ae.value=ve[2].data;const he=[];vue.unref(ie).forEach(pe=>{(pe==null?void 0:pe.modelType)==="1"?(pe.rows=vue.unref(ae)[pe.modelCode],se.value.push(pe)):(pe==null?void 0:pe.modelType)==="2"&&he.push(pe)}),he.forEach(pe=>{pe.checked=[],vue.unref(se).forEach(ge=>{pe[ge.modelCode]=vue.unref(le).some(me=>me.targetModelId===ge.id&&me.modelId===pe.id)}),pe.rows=vue.unref(ae)[pe.modelCode],ue.value.push(pe)})});const fe=ve=>{ve.attr||(ve.loading=!0,ne({modelId:ve.id}).then(he=>{ve.loading=!1,ve.attr=he.data.filter(pe=>!["project_id","create_time","create_user","create_dept","tag"].includes(pe.attributeCode))}))};return U({wdModel:ue}),(ve,he)=>{const pe=vue.resolveComponent("AppTable");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$d,[vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(ce),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_2$a,[vue.createElementVNode("thead",null,[vue.createElementVNode("tr",null,[_hoisted_3$9,(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(se),(ge,me)=>(vue.openBlock(),vue.createElementBlock("th",{key:me},[vue.createVNode(vue.unref(elementPlus.ElPopover),{trigger:"hover",onShow:_e=>fe(ge),width:500},{reference:vue.withCtx(()=>[vue.createElementVNode("div",{title:ge.modelName,class:"flex items-center justify-center"},[vue.createElementVNode("span",_hoisted_6$6,[vue.createElementVNode("label",null,vue.toDisplayString(ge.modelName),1)]),vue.createElementVNode("span",_hoisted_7$6,vue.toDisplayString(ge.rows),1)],8,_hoisted_5$6)]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_4$8,[vue.createVNode(pe,{tableData:vue.unref(de),list:ge.attr,loading:ge.loading},null,8,["tableData","list","loading"])])]),_:2},1032,["onShow"])]))),128))])]),vue.createElementVNode("tbody",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),(ge,me)=>(vue.openBlock(),vue.createElementBlock("tr",{key:me},[vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElPopover),{trigger:"hover",onShow:_e=>fe(ge),placement:"right",width:500},{reference:vue.withCtx(()=>[vue.createElementVNode("div",{title:ge.modelName,class:"flex items-center justify-start"},[vue.createElementVNode("span",_hoisted_10$4,[vue.createElementVNode("label",null,vue.toDisplayString(ge.modelName),1)]),vue.createElementVNode("span",_hoisted_11$3,vue.toDisplayString(ge.rows),1)],8,_hoisted_9$5)]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$5,[vue.createVNode(pe,{tableData:vue.unref(de),list:ge.attr,loading:ge.loading},null,8,["tableData","list","loading"])])]),_:2},1032,["onShow"])]),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(se),_e=>(vue.openBlock(),vue.createElementBlock("td",{key:_e.id},[vue.createVNode(vue.unref(elementPlus.ElCheckboxGroup),{modelValue:ge.checked,"onUpdate:modelValue":ye=>ge.checked=ye},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{value:_e.id,checked:ge[_e.modelCode]},{default:vue.withCtx(()=>[_hoisted_12$2]),_:2},1032,["value","checked"])]),_:2},1032,["modelValue","onUpdate:modelValue"])]))),128))]))),128))])])]),_:1},8,["loading"])])}}}),matrix_vue_vue_type_style_index_0_scoped_9af70b95_lang="",Matrix=_export_sfc$2(_sfc_main$d,[["__scopeId","data-v-9af70b95"]]),_hoisted_1$c={class:"flex justify-end flex-1"},_hoisted_2$9=vue.createElementVNode("div",{class:"text-color-primary mr-2.5 flex items-center"},[vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"}),vue.createTextVNode(" 新建模型 ")],-1),_hoisted_3$8=vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"},null,-1),_hoisted_4$7={key:0},_hoisted_5$5=vue.createElementVNode("span",{class:"ml-2 mr-2 text-gray-300"},"|",-1),_hoisted_6$5=["onClick"],_hoisted_7$5={key:0,class:"flex items-center justify-center h-full"},_sfc_main$c=vue.defineComponent({__name:"index",props:{isCustom:{type:Boolean,default:!1},element:{default:null}},setup(te){const U=te,G=vue.inject("local"),{proxy:ee}=vue.getCurrentInstance(),{getDetail:ne,settingPublishStatus:re}=fetch$1(ee).model,oe=vue.ref([{label:"源数据",value:"ODS",rule:"VIEW_ODS",disabled:!0},{label:"源视图",value:"ODSVIEW",rule:"VIEW_ODSVIEW",disabled:!0},{label:"重构数据",value:"DWD",rule:"VIEW_DWD",disabled:!0},{label:"总线矩阵",value:"MATRIX",rule:"SAVE_MODEL_MATRIX",disabled:!0}]),ie=vue.ref([]),le=vue.ref([]),ae=vue.ref(""),se=vue.ref(U.element??{}),ue=vue.ref([]);U.isCustom&&vue.nextTick(()=>{ee.$refs.modelViewRef.init(vue.unref(se))}),fetch$1(ee).getCurrFunc("MODEL").then(he=>{vue.unref(oe).forEach(pe=>{pe.disabled=!he.data.includes(pe.rule),!vue.unref(ae)&&!pe.disabled&&(ae.value=pe.value)}),ue.value=he.data,U.isCustom||(le.value=[{label:"数据源导入模型",value:"conn",icon:"ri-add-circle-line",show:()=>he.data.includes("DB_IMPORT_MODEL")&&vue.unref(ae)!="ODSVIEW"},{label:"SQL新建模型",value:"sql",icon:"ri-add-circle-line",show:()=>["ODS","DWD"].includes(vue.unref(ae))&&he.data.includes("SQL_CREATE")},{label:"手动新建模型",value:"normal",icon:"ri-add-circle-line",show:()=>["ODS","DWD"].includes(vue.unref(ae))&&he.data.includes("DO_CREATE")},{label:"Excel生成模型",value:"excel",icon:"ri-add-circle-line",show:()=>["ODS"].includes(vue.unref(ae))&&he.data.includes("EXCEL_CREATE")},{label:"ODS抽取模型",value:"extract",icon:"ri-add-circle-line",show:()=>["DWD"].includes(vue.unref(ae))&&he.data.includes("ODS_CREATE")}],ie.value=[{label:"保存",type:"warning",value:"SAVE_MODEL_MATRIX",icon:"ri-save-line",show:()=>["MATRIX"].includes(vue.unref(ae))&&he.data.includes("SAVE_MODEL_MATRIX")},{label:"复制",value:"COPY",icon:"ri-file-copy-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.id)&&((ge=vue.unref(se))==null?void 0:ge.shadowFlag)!=2&&he.data.includes("PUBLISH")}},{label:"发布",value:"PUBLISH",icon:"ri-book-open-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.publishStatus)==1&&he.data.includes("PUBLISH")}},{label:"删除数据仓",value:"REMOVE_PUBLISH",type:"danger",icon:"ri-delete-bin-2-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.publishStatus)==2&&he.data.includes("REMOVE_PUBLISH")}},{label:"编辑",value:"EDIT",icon:"ri-file-line",show:()=>{var pe,ge;return["ODS","DWD"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.id)&&he.data.includes("EDIT")}},{label:"删除",value:"DEL",type:"danger",icon:"ri-delete-bin-2-line",show:()=>{var pe,ge;return["ODS","DWD","ODSVIEW"].includes(vue.unref(ae))&&((pe=vue.unref(se))==null?void 0:pe.shadowFlag)!=2&&((ge=vue.unref(se))==null?void 0:ge.id)&&he.data.includes("DEL")}}])});const ce=he=>{ae.value=he,vue.nextTick(()=>{var pe;ee.$refs.menuRef.$refs.treeRef.setCurrentKey((pe=vue.unref(se))==null?void 0:pe.id)})},de=he=>{se.value=he,vue.nextTick(()=>{ee.$refs.modelViewRef.init(vue.unref(se))})},fe=async(he,pe)=>{var ge,me;switch(he){case"conn":case"sql":case"normal":case"excel":case"extract":ee.$refs[`${he}Ref`].init();break;case"DEL":ee.$baseConfirm({content:"是否确认删除?",callConfirm:async()=>{var ye;await ee.$baseHttp.post(`/ace-data-center/model/remove?ids=${(ye=vue.unref(se))==null?void 0:ye.id}`,{},{headers:{loading:!0}})&&(ee.$message.success("操作成功"),se.value={},ve())}});break;case"EDIT":{const _e=await ne((ge=vue.unref(se))==null?void 0:ge.id,!0);if(!_e)return;if(_e.data.publishStatus==1){ee.$refs.normalRef.init(_e.data);return}ee.$message.warning("模型已发布,无法编辑")}break;case"COPY":{const _e=await ne((me=vue.unref(se))==null?void 0:me.id,!0);if(!_e)return;delete _e.data.id,_e.data.listModelAttribute.forEach(ye=>{ye.id=null,ye.createUser=null,ye.createDept=null,ye.createTime=null,ye.updateUser=null,ye.updateTime=null,ye.modelId=null,ye.nanoid=nanoid()}),_e.data.slaveModels&&_e.data.slaveModels.forEach(ye=>{delete ye.id,ye.listModelAttribute.forEach(be=>{delete be.id,be.createUser=null,be.createDept=null,be.createTime=null,be.updateUser=null,be.updateTime=null,be.modelId=null,be.nanoid=nanoid()})}),ee.$refs.normalRef.init(_e.data)}break;case"PUBLISH":case"REMOVE_PUBLISH":{const _e=he==="PUBLISH"?"模型发布后,模型信息无法再进行变更操作,是否立即执行?":"确定删除数仓表,删除后模型数据将清空,是否执行?",ye=he==="PUBLISH"?"2":"1";ee.$baseConfirm({content:_e,callConfirm:async()=>{var xe;await re((xe=vue.unref(se))==null?void 0:xe.id,ye)&&(vue.unref(se).publishStatus=ye,ee.$message.success("操作成功"),ve())}})}break;case"editTag":ee.$refs.tagEditRef.init(pe);break;case"SAVE_MODEL_MATRIX":{if(!await ee.$baseHttp.post("/api/ace-data-center/model-matrix/save",{modelLayer:"DWD",projectId:ee.$baseGetCurrentProjectId(),list:ee.$refs.MatrixRef.wdModel.map(ye=>({modelId:ye.id,listTargetModelId:ye.checked}))},{headers:{loading:!0}}))return;ee.$message.success("操作成功")}break}},ve=()=>{var he;ee.$refs.menuRef.init(),(he=vue.unref(se))!=null&&he.id&&ee.$refs.modelViewRef.init(vue.unref(se))};return(he,pe)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElContainer),{class:"overflow-hidden app-basic-container"},{default:vue.withCtx(()=>[he.isCustom?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElHeader),{key:0,style:{height:"auto",padding:"0"},class:"flex items-center mb-3 fadeIn animated"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(oe),ge=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:vue.unref(ae)==ge.value?"primary":"",key:ge.value,disabled:ge.disabled,onClick:me=>ce(ge.value)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ge.label),1)]),_:2},1032,["type","disabled","onClick"]))),128))]),_:1}),vue.createElementVNode("div",_hoisted_1$c,[vue.unref(le).length?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdown),{key:0,onCommand:fe},{dropdown:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElDropdownMenu),null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(le),ge=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdownItem),{disabled:!ge.show(),command:ge.value},{default:vue.withCtx(()=>[_hoisted_3$8,vue.createTextVNode(" "+vue.toDisplayString(ge.label),1)]),_:2},1032,["disabled","command"]))),256))]),_:1})]),default:vue.withCtx(()=>[_hoisted_2$9]),_:1})):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ie),ge=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[ge.show()?(vue.openBlock(),vue.createElementBlock("span",_hoisted_4$7,[vue.createVNode(vue.unref(elementPlus.ElLink),{type:ge.type||"primary",onClick:me=>fe(ge.value)},{default:vue.withCtx(()=>[vue.createElementVNode("i",{class:vue.normalizeClass([ge.icon,"mr-1"])},null,2),vue.createTextVNode(" "+vue.toDisplayString(ge.label),1)]),_:2},1032,["type","onClick"]),_hoisted_5$5])):vue.createCommentVNode("",!0)],64))),256))])]),_:1})),vue.withDirectives(vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElConfigProvider),{locale:vue.unref(G)},{default:vue.withCtx(()=>[he.isCustom?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElAside),{key:0,class:"pr-5 mr-5"},{default:vue.withCtx(()=>{var ge;return[vue.createVNode(_sfc_main$C,{ref:"menuRef",type:vue.unref(ae),onNodeClick:de,id:(ge=vue.unref(se))==null?void 0:ge.id},{default:vue.withCtx(({element:me})=>[me.modelCode&&vue.unref(ue).includes("EDIT")?(vue.openBlock(),vue.createElementBlock("i",{key:0,class:"ml-2 ri-edit-box-line",onClick:vue.withModifiers(_e=>fe("editTag",me),["stop"])},null,8,_hoisted_6$5)):vue.createCommentVNode("",!0)]),_:1},8,["type","id"])]}),_:1})),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>{var ge;return[(ge=vue.unref(se))!=null&&ge.id?(vue.openBlock(),vue.createBlock(aceModelView,{key:1,ref:"modelViewRef",type:vue.unref(ae),permission:vue.unref(ue)},null,8,["type","permission"])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_7$5,[vue.createVNode(vue.unref(elementPlus.ElEmpty),{description:"请在左侧选择模型"})]))]}),_:1})]),_:1},8,["locale"])]),_:1},512),[[vue.vShow,["ODS","DWD","ODSVIEW"].includes(vue.unref(ae))]]),["MATRIX"].includes(vue.unref(ae))?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElContainer),{key:1,class:"overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(Matrix,{ref:"MatrixRef"},null,512)]),_:1})]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$A,{ref:"connRef",onSuccess:pe[0]||(pe[0]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$z,{ref:"sqlRef",onSuccess:pe[1]||(pe[1]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$y,{ref:"normalRef",onSuccess:pe[2]||(pe[2]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$x,{ref:"excelRef",onSuccess:pe[3]||(pe[3]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$w,{ref:"extractRef",onSuccess:pe[4]||(pe[4]=ge=>ve()),permission:vue.unref(ue)},null,8,["permission"]),vue.createVNode(_sfc_main$v,{ref:"tagEditRef",permission:vue.unref(ue),onSuccess:pe[5]||(pe[5]=ge=>ve())},null,8,["permission"])]),_:1}))}});typeof window=="object"&&window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),typeof window<"u"&&function(te){te.forEach(U=>{Object.prototype.hasOwnProperty.call(U,"append")||Object.defineProperty(U,"append",{configurable:!0,enumerable:!0,writable:!0,value(...G){const ee=document.createDocumentFragment();G.forEach(ne=>{const re=ne instanceof Node;ee.appendChild(re?ne:document.createTextNode(String(ne)))}),this.appendChild(ee)}})})}([Element.prototype,Document.prototype,DocumentFragment.prototype]);class Disposable{get disposed(){return this._disposed===!0}dispose(){this._disposed=!0}}(function(te){function U(){return(G,ee,ne)=>{const re=ne.value,oe=G.__proto__;ne.value=function(...ie){this.disposed||(re.call(this,...ie),oe.dispose.call(this))}}}te.dispose=U})(Disposable||(Disposable={}));class DisposableSet{constructor(){this.isDisposed=!1,this.items=new Set}get disposed(){return this.isDisposed}dispose(){this.isDisposed||(this.isDisposed=!0,this.items.forEach(U=>{U.dispose()}),this.items.clear())}contains(U){return this.items.has(U)}add(U){this.items.add(U)}remove(U){this.items.delete(U)}clear(){this.items.clear()}}(function(te){function U(G){const ee=new te;return G.forEach(ne=>{ee.add(ne)}),ee}te.from=U})(DisposableSet||(DisposableSet={}));function apply(te,U,G){if(G)switch(G.length){case 0:return te.call(U);case 1:return te.call(U,G[0]);case 2:return te.call(U,G[0],G[1]);case 3:return te.call(U,G[0],G[1],G[2]);case 4:return te.call(U,G[0],G[1],G[2],G[3]);case 5:return te.call(U,G[0],G[1],G[2],G[3],G[4]);case 6:return te.call(U,G[0],G[1],G[2],G[3],G[4],G[5]);default:return te.apply(U,G)}return te.call(U)}function call$1(te,U,...G){return apply(te,U,G)}function isAsyncLike(te){return typeof te=="object"&&te.then&&typeof te.then=="function"}function isAsync(te){return te!=null&&(te instanceof Promise||isAsyncLike(te))}function toAsyncBoolean(...te){const U=[];if(te.forEach(ee=>{Array.isArray(ee)?U.push(...ee):U.push(ee)}),U.some(ee=>isAsync(ee))){const ee=U.map(ne=>isAsync(ne)?ne:Promise.resolve(ne!==!1));return Promise.all(ee).then(ne=>ne.reduce((re,oe)=>oe!==!1&&re,!0))}return U.every(ee=>ee!==!1)}function toDeferredBoolean(...te){const U=toAsyncBoolean(te);return typeof U=="boolean"?Promise.resolve(U):U}function call(te,U){const G=[];for(let ee=0;ee<te.length;ee+=2){const ne=te[ee],re=te[ee+1],oe=Array.isArray(U)?U:[U],ie=apply(ne,re,oe);G.push(ie)}return toAsyncBoolean(G)}class Events{constructor(){this.listeners={}}on(U,G,ee){return G==null?this:(this.listeners[U]||(this.listeners[U]=[]),this.listeners[U].push(G,ee),this)}once(U,G,ee){const ne=(...re)=>(this.off(U,ne),call([G,ee],re));return this.on(U,ne,this)}off(U,G,ee){if(!(U||G||ee))return this.listeners={},this;const ne=this.listeners;return(U?[U]:Object.keys(ne)).forEach(oe=>{const ie=ne[oe];if(ie){if(!(G||ee)){delete ne[oe];return}for(let le=ie.length-2;le>=0;le-=2)G&&ie[le]!==G||ee&&ie[le+1]!==ee||ie.splice(le,2)}}),this}trigger(U,...G){let ee=!0;if(U!=="*"){const re=this.listeners[U];re!=null&&(ee=call([...re],G))}const ne=this.listeners["*"];return ne!=null?toAsyncBoolean([ee,call([...ne],[U,...G])]):ee}emit(U,...G){return this.trigger(U,...G)}}function applyMixins(te,...U){U.forEach(G=>{Object.getOwnPropertyNames(G.prototype).forEach(ee=>{ee!=="constructor"&&Object.defineProperty(te.prototype,ee,Object.getOwnPropertyDescriptor(G.prototype,ee))})})}const extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(te,U){te.__proto__=U}||function(te,U){for(const G in U)Object.prototype.hasOwnProperty.call(U,G)&&(te[G]=U[G])};function inherit(te,U){extendStatics(te,U);function G(){this.constructor=te}te.prototype=U===null?Object.create(U):(G.prototype=U.prototype,new G)}class A{}const isNativeClass=/^\s*class\s+/.test(`${A}`)||/^\s*class\s*\{/.test(`${class{}}`);function createClass(te,U){let G;return isNativeClass?G=class extends U{}:(G=function(){return U.apply(this,arguments)},inherit(G,U)),Object.defineProperty(G,"name",{value:te}),G}function isMaliciousProp(te){return te==="__proto__"}function getByPath(te,U,G="/"){let ee;const ne=Array.isArray(U)?U:U.split(G);if(ne.length)for(ee=te;ne.length;){const re=ne.shift();if(Object(ee)===ee&&re&&re in ee)ee=ee[re];else return}return ee}function setByPath(te,U,G,ee="/"){const ne=Array.isArray(U)?U:U.split(ee),re=ne.pop();if(re&&!isMaliciousProp(re)){let oe=te;ne.forEach(ie=>{isMaliciousProp(ie)||(oe[ie]==null&&(oe[ie]={}),oe=oe[ie])}),oe[re]=G}return te}function unsetByPath(te,U,G="/"){const ee=Array.isArray(U)?U.slice():U.split(G),ne=ee.pop();if(ne)if(ee.length>0){const re=getByPath(te,ee);re&&delete re[ne]}else delete te[ne];return te}var __decorate$u=globalThis&&globalThis.__decorate||function(te,U,G,ee){var ne=arguments.length,re=ne<3?U:ee===null?ee=Object.getOwnPropertyDescriptor(U,G):ee,oe;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")re=Reflect.decorate(te,U,G,ee);else for(var ie=te.length-1;ie>=0;ie--)(oe=te[ie])&&(re=(ne<3?oe(re):ne>3?oe(U,G,re):oe(U,G))||re);return ne>3&&re&&Object.defineProperty(U,G,re),re};class Basecoat extends Events{dispose(){this.off()}}__decorate$u([Disposable.dispose()],Basecoat.prototype,"dispose",null),function(te){te.dispose=Disposable.dispose}(Basecoat||(Basecoat={})),applyMixins(Basecoat,Disposable);const cacheStringFunction=te=>{const U=Object.create(null);return G=>U[G]||(U[G]=te(G))},kebabCase=cacheStringFunction(te=>te.replace(/\B([A-Z])/g,"-$1").toLowerCase()),pascalCase=cacheStringFunction(te=>startCase$1(camelCase$1(te)).replace(/ /g,""));function hashcode(te){let U=2166136261,G=!1,ee=te;for(let ne=0,re=ee.length;ne<re;ne+=1){let oe=ee.charCodeAt(ne);oe>127&&!G&&(ee=unescape(encodeURIComponent(ee)),oe=ee.charCodeAt(ne),G=!0),U^=oe,U+=(U<<1)+(U<<4)+(U<<7)+(U<<8)+(U<<24)}return U>>>0}function uuid(){let te="";const U="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";for(let G=0,ee=U.length;G<ee;G+=1){const ne=U[G],re=Math.random()*16|0,oe=ne==="x"?re:ne==="y"?re&3|8:ne;te+=oe.toString(16)}return te}function getSpellingSuggestion(te,U,G){const ee=Math.min(2,Math.floor(te.length*.34));let ne=Math.floor(te.length*.4)+1,re,oe=!1;const ie=te.toLowerCase();for(const le of U){const ae=G(le);if(ae!==void 0&&Math.abs(ae.length-ie.length)<=ee){const se=ae.toLowerCase();if(se===ie){if(ae===te)continue;return le}if(oe||ae.length<3)continue;const ue=levenshteinWithMax(ie,se,ne-1);if(ue===void 0)continue;ue<3?(oe=!0,re=le):(ne=ue,re=le)}}return re}function levenshteinWithMax(te,U,G){let ee=new Array(U.length+1),ne=new Array(U.length+1);const re=G+1;for(let ie=0;ie<=U.length;ie+=1)ee[ie]=ie;for(let ie=1;ie<=te.length;ie+=1){const le=te.charCodeAt(ie-1),ae=ie>G?ie-G:1,se=U.length>G+ie?G+ie:U.length;ne[0]=ie;let ue=ie;for(let de=1;de<ae;de+=1)ne[de]=re;for(let de=ae;de<=se;de+=1){const fe=le===U.charCodeAt(de-1)?ee[de-1]:Math.min(ee[de]+1,ne[de-1]+1,ee[de-1]+2);ne[de]=fe,ue=Math.min(ue,fe)}for(let de=se+1;de<=U.length;de+=1)ne[de]=re;if(ue>G)return;const ce=ee;ee=ne,ne=ce}const oe=ee[U.length];return oe>G?void 0:oe}function isPercentage(te){return typeof te=="string"&&te.slice(-1)==="%"}function normalizePercentage(te,U){if(te==null)return 0;let G;if(typeof te=="string"){if(G=parseFloat(te),isPercentage(te)&&(G/=100,Number.isFinite(G)))return G*U}else G=te;return Number.isFinite(G)?G>0&&G<1?G*U:G:0}function normalizeSides(te){if(typeof te=="object"){let G=0,ee=0,ne=0,re=0;return te.vertical!=null&&Number.isFinite(te.vertical)&&(ee=re=te.vertical),te.horizontal!=null&&Number.isFinite(te.horizontal)&&(ne=G=te.horizontal),te.left!=null&&Number.isFinite(te.left)&&(G=te.left),te.top!=null&&Number.isFinite(te.top)&&(ee=te.top),te.right!=null&&Number.isFinite(te.right)&&(ne=te.right),te.bottom!=null&&Number.isFinite(te.bottom)&&(re=te.bottom),{top:ee,right:ne,bottom:re,left:G}}let U=0;return te!=null&&Number.isFinite(te)&&(U=te),{top:U,right:U,bottom:U,left:U}}let _IS_MAC=!1,_IS_IOS=!1,_IS_WINDOWS=!1,_IS_IE=!1,_IS_IE11=!1,_IS_EDGE=!1,_IS_NETSCAPE=!1,_IS_CHROME_APP=!1,_IS_CHROME=!1,_IS_OPERA=!1,_IS_FIREFOX=!1,_IS_SAFARI=!1,_SUPPORT_TOUCH=!1,_SUPPORT_POINTER=!1,_SUPPORT_PASSIVE=!1,_NO_FOREIGNOBJECT=!1;if(typeof navigator=="object"){const te=navigator.userAgent;_IS_MAC=te.indexOf("Macintosh")>=0,_IS_IOS=!!te.match(/(iPad|iPhone|iPod)/g),_IS_WINDOWS=te.indexOf("Windows")>=0,_IS_IE=te.indexOf("MSIE")>=0,_IS_IE11=!!te.match(/Trident\/7\./),_IS_EDGE=!!te.match(/Edge\//),_IS_NETSCAPE=te.indexOf("Mozilla/")>=0&&te.indexOf("MSIE")<0&&te.indexOf("Edge/")<0,_IS_CHROME=te.indexOf("Chrome/")>=0&&te.indexOf("Edge/")<0,_IS_OPERA=te.indexOf("Opera/")>=0||te.indexOf("OPR/")>=0,_IS_FIREFOX=te.indexOf("Firefox/")>=0,_IS_SAFARI=te.indexOf("AppleWebKit/")>=0&&te.indexOf("Chrome/")<0&&te.indexOf("Edge/")<0,typeof document=="object"&&(_NO_FOREIGNOBJECT=!document.createElementNS||`${document.createElementNS("http://www.w3.org/2000/svg","foreignObject")}`!="[object SVGForeignObjectElement]"||te.indexOf("Opera/")>=0)}if(typeof window=="object"&&(_IS_CHROME_APP=window.chrome!=null&&window.chrome.app!=null&&window.chrome.app.runtime!=null,_SUPPORT_POINTER=window.PointerEvent!=null&&!_IS_MAC),typeof document=="object"){_SUPPORT_TOUCH="ontouchstart"in document.documentElement;try{const te=Object.defineProperty({},"passive",{get(){_SUPPORT_PASSIVE=!0}}),U=document.createElement("div");U.addEventListener&&U.addEventListener("click",()=>{},te)}catch{}}var Platform;(function(te){te.IS_MAC=_IS_MAC,te.IS_IOS=_IS_IOS,te.IS_WINDOWS=_IS_WINDOWS,te.IS_IE=_IS_IE,te.IS_IE11=_IS_IE11,te.IS_EDGE=_IS_EDGE,te.IS_NETSCAPE=_IS_NETSCAPE,te.IS_CHROME_APP=_IS_CHROME_APP,te.IS_CHROME=_IS_CHROME,te.IS_OPERA=_IS_OPERA,te.IS_FIREFOX=_IS_FIREFOX,te.IS_SAFARI=_IS_SAFARI,te.SUPPORT_TOUCH=_SUPPORT_TOUCH,te.SUPPORT_POINTER=_SUPPORT_POINTER,te.SUPPORT_PASSIVE=_SUPPORT_PASSIVE,te.NO_FOREIGNOBJECT=_NO_FOREIGNOBJECT,te.SUPPORT_FOREIGNOBJECT=!te.NO_FOREIGNOBJECT})(Platform||(Platform={})),function(te){function U(){const re=window.module;return re!=null&&re.hot!=null&&re.hot.status!=null?re.hot.status():"unkonwn"}te.getHMRStatus=U;function G(){return U()==="apply"}te.isApplyingHMR=G;const ee={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};function ne(re){const oe=document.createElement(ee[re]||"div"),ie=`on${re}`;let le=ie in oe;return le||(oe.setAttribute(ie,"return;"),le=typeof oe[ie]=="function"),le}te.isEventSupported=ne}(Platform||(Platform={}));const rclass=/[\t\r\n\f]/g,rnotwhite=/\S+/g,fillSpaces=te=>` ${te} `;function getClass(te){return te&&te.getAttribute&&te.getAttribute("class")||""}function hasClass(te,U){if(te==null||U==null)return!1;const G=fillSpaces(getClass(te)),ee=fillSpaces(U);return te.nodeType===1?G.replace(rclass," ").includes(ee):!1}function addClass(te,U){if(!(te==null||U==null)){if(typeof U=="function")return addClass(te,U(getClass(te)));if(typeof U=="string"&&te.nodeType===1){const G=U.match(rnotwhite)||[],ee=fillSpaces(getClass(te)).replace(rclass," ");let ne=G.reduce((re,oe)=>re.indexOf(fillSpaces(oe))<0?`${re}${oe} `:re,ee);ne=ne.trim(),ee!==ne&&te.setAttribute("class",ne)}}}function removeClass(te,U){if(te!=null){if(typeof U=="function")return removeClass(te,U(getClass(te)));if((!U||typeof U=="string")&&te.nodeType===1){const G=(U||"").match(rnotwhite)||[],ee=fillSpaces(getClass(te)).replace(rclass," ");let ne=G.reduce((re,oe)=>{const ie=fillSpaces(oe);return re.indexOf(ie)>-1?re.replace(ie," "):re},ee);ne=U?ne.trim():"",ee!==ne&&te.setAttribute("class",ne)}}}function toggleClass(te,U,G){if(!(te==null||U==null)){if(G!=null&&typeof U=="string"){G?addClass(te,U):removeClass(te,U);return}if(typeof U=="function")return toggleClass(te,U(getClass(te),G),G);typeof U=="string"&&(U.match(rnotwhite)||[]).forEach(ne=>{hasClass(te,ne)?removeClass(te,ne):addClass(te,ne)})}}let idCounter=0;function uniqueId(){return idCounter+=1,`v${idCounter}`}function ensureId(te){return(te.id==null||te.id==="")&&(te.id=uniqueId()),te.id}function isSVGGraphicsElement(te){return te==null?!1:typeof te.getScreenCTM=="function"&&te instanceof SVGElement}const ns={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xml:"http://www.w3.org/XML/1998/namespace",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml"},svgVersion="1.1";function createElement(te,U=document){return U.createElement(te)}function createElementNS(te,U=ns.xhtml,G=document){return G.createElementNS(U,te)}function createSvgElement(te,U=document){return createElementNS(te,ns.svg,U)}function createSvgDocument(te){if(te){const G=`<svg xmlns="${ns.svg}" xmlns:xlink="${ns.xlink}" version="${svgVersion}">${te}</svg>`,{documentElement:ee}=parseXML(G,{async:!1});return ee}const U=document.createElementNS(ns.svg,"svg");return U.setAttributeNS(ns.xmlns,"xmlns:xlink",ns.xlink),U.setAttribute("version",svgVersion),U}function parseXML(te,U={}){let G;try{const ee=new DOMParser;if(U.async!=null){const ne=ee;ne.async=U.async}G=ee.parseFromString(te,U.mimeType||"text/xml")}catch{G=void 0}if(!G||G.getElementsByTagName("parsererror").length)throw new Error(`Invalid XML: ${te}`);return G}function tagName(te,U=!0){const G=te.nodeName;return U?G.toLowerCase():G.toUpperCase()}function index$1(te){let U=0,G=te.previousSibling;for(;G;)G.nodeType===1&&(U+=1),G=G.previousSibling;return U}function find(te,U){return te.querySelectorAll(U)}function findOne(te,U){return te.querySelector(U)}function findParentByClass(te,U,G){const ee=te.ownerSVGElement;let ne=te.parentNode;for(;ne&&ne!==G&&ne!==ee;){if(hasClass(ne,U))return ne;ne=ne.parentNode}return null}function contains(te,U){const G=U&&U.parentNode;return te===G||!!(G&&G.nodeType===1&&te.compareDocumentPosition(G)&16)}function remove(te){te&&(Array.isArray(te)?te:[te]).forEach(G=>{G.parentNode&&G.parentNode.removeChild(G)})}function empty(te){for(;te.firstChild;)te.removeChild(te.firstChild)}function append(te,U){(Array.isArray(U)?U:[U]).forEach(ee=>{ee!=null&&te.appendChild(ee)})}function prepend(te,U){const G=te.firstChild;return G?before(G,U):append(te,U)}function before(te,U){const G=te.parentNode;G&&(Array.isArray(U)?U:[U]).forEach(ne=>{ne!=null&&G.insertBefore(ne,te)})}function after(te,U){const G=te.parentNode;G&&(Array.isArray(U)?U:[U]).forEach(ne=>{ne!=null&&G.insertBefore(ne,te.nextSibling)})}function appendTo(te,U){U!=null&&U.appendChild(te)}function isHTMLElement(te){try{return te instanceof HTMLElement}catch{return typeof te=="object"&&te.nodeType===1&&typeof te.style=="object"&&typeof te.ownerDocument=="object"}}function children(te,U){const G=[];let ee=te.firstChild;for(;ee;ee=ee.nextSibling)ee.nodeType===1&&(!U||hasClass(ee,U))&&G.push(ee);return G}const CASE_SENSITIVE_ATTR=["viewBox","attributeName","attributeType","repeatCount","textLength","lengthAdjust","gradientUnits"];function getAttribute(te,U){return te.getAttribute(U)}function removeAttribute(te,U){const G=qualifyAttr(U);G.ns?te.hasAttributeNS(G.ns,G.local)&&te.removeAttributeNS(G.ns,G.local):te.hasAttribute(U)&&te.removeAttribute(U)}function setAttribute(te,U,G){if(G==null)return removeAttribute(te,U);const ee=qualifyAttr(U);ee.ns&&typeof G=="string"?te.setAttributeNS(ee.ns,U,G):U==="id"?te.id=`${G}`:te.setAttribute(U,`${G}`)}function setAttributes(te,U){Object.keys(U).forEach(G=>{setAttribute(te,G,U[G])})}function attr(te,U,G){if(U==null){const ee=te.attributes,ne={};for(let re=0;re<ee.length;re+=1)ne[ee[re].name]=ee[re].value;return ne}if(typeof U=="string"&&G===void 0)return te.getAttribute(U);typeof U=="object"?setAttributes(te,U):setAttribute(te,U,G)}function qualifyAttr(te){if(te.indexOf(":")!==-1){const U=te.split(":");return{ns:ns[U[0]],local:U[1]}}return{ns:null,local:te}}function kebablizeAttrs(te){const U={};return Object.keys(te).forEach(G=>{const ee=CASE_SENSITIVE_ATTR.includes(G)?G:kebabCase(G);U[ee]=te[G]}),U}function styleToObject(te){const U={};return te.split(";").forEach(ee=>{const ne=ee.trim();if(ne){const re=ne.split("=");re.length&&(U[re[0].trim()]=re[1]?re[1].trim():"")}}),U}function mergeAttrs(te,U){return Object.keys(U).forEach(G=>{if(G==="class")te[G]=te[G]?`${te[G]} ${U[G]}`:U[G];else if(G==="style"){const ee=typeof te[G]=="object",ne=typeof U[G]=="object";let re,oe;ee&&ne?(re=te[G],oe=U[G]):ee?(re=te[G],oe=styleToObject(U[G])):ne?(re=styleToObject(te[G]),oe=U[G]):(re=styleToObject(te[G]),oe=styleToObject(U[G])),te[G]=mergeAttrs(re,oe)}else te[G]=U[G]}),te}function annotate(te,U,G={}){const ee=G.offset||0,ne=[],re=[];let oe,ie,le=null;for(let ae=0;ae<te.length;ae+=1){oe=re[ae]=te[ae];for(let se=0,ue=U.length;se<ue;se+=1){const ce=U[se],de=ce.start+ee,fe=ce.end+ee;ae>=de&&ae<fe&&(typeof oe=="string"?oe=re[ae]={t:te[ae],attrs:ce.attrs}:oe.attrs=mergeAttrs(mergeAttrs({},oe.attrs),ce.attrs),G.includeAnnotationIndices&&(oe.annotations==null&&(oe.annotations=[]),oe.annotations.push(se)))}ie=re[ae-1],ie?isObject(oe)&&isObject(ie)?(le=le,JSON.stringify(oe.attrs)===JSON.stringify(ie.attrs)?le.t+=oe.t:(ne.push(le),le=oe)):isObject(oe)||isObject(ie)?(le=le,ne.push(le),le=oe):le=(le||"")+oe:le=oe}return le!=null&&ne.push(le),ne}function sanitize(te){return te.replace(/ /g," ")}var DataUri;(function(te){function U(ae){const se="data:";return ae.substr(0,se.length)===se}te.isDataUrl=U;function G(ae,se){if(!ae||U(ae)){setTimeout(()=>se(null,ae));return}const ue=()=>{se(new Error(`Failed to load image: ${ae}`))},ce=window.FileReader?fe=>{if(fe.status===200){const ve=new FileReader;ve.onload=he=>{const pe=he.target.result;se(null,pe)},ve.onerror=ue,ve.readAsDataURL(fe.response)}else ue()}:fe=>{const ve=he=>{const ge=[];for(let me=0;me<he.length;me+=32768)ge.push(String.fromCharCode.apply(null,he.subarray(me,me+32768)));return ge.join("")};if(fe.status===200){let he=ae.split(".").pop()||"png";he==="svg"&&(he="svg+xml");const pe=`data:image/${he};base64,`,ge=new Uint8Array(fe.response),me=pe+btoa(ve(ge));se(null,me)}else ue()},de=new XMLHttpRequest;de.responseType=window.FileReader?"blob":"arraybuffer",de.open("GET",ae,!0),de.addEventListener("error",ue),de.addEventListener("load",()=>ce(de)),de.send()}te.imageToDataUri=G;function ee(ae){let se=ae.replace(/\s/g,"");se=decodeURIComponent(se);const ue=se.indexOf(","),ce=se.slice(0,ue),de=ce.split(":")[1].split(";")[0],fe=se.slice(ue+1);let ve;ce.indexOf("base64")>=0?ve=atob(fe):ve=unescape(encodeURIComponent(fe));const he=new Uint8Array(ve.length);for(let pe=0;pe<ve.length;pe+=1)he[pe]=ve.charCodeAt(pe);return new Blob([he],{type:de})}te.dataUriToBlob=ee;function ne(ae,se){const ue=window.navigator.msSaveBlob;if(ue)ue(ae,se);else{const ce=window.URL.createObjectURL(ae),de=document.createElement("a");de.href=ce,de.download=se,document.body.appendChild(de),de.click(),document.body.removeChild(de),window.URL.revokeObjectURL(ce)}}te.downloadBlob=ne;function re(ae,se){const ue=ee(ae);ne(ue,se)}te.downloadDataUri=re;function oe(ae){const se=ae.match(/<svg[^>]*viewBox\s*=\s*(["']?)(.+?)\1[^>]*>/i);return se&&se[2]?se[2].replace(/\s+/," ").split(" "):null}function ie(ae){const se=parseFloat(ae);return Number.isNaN(se)?null:se}function le(ae,se={}){let ue=null;const ce=me=>(ue==null&&(ue=oe(ae)),ue!=null?ie(ue[me]):null),de=me=>{const _e=ae.match(me);return _e&&_e[2]?ie(_e[2]):null};let fe=se.width;if(fe==null&&(fe=de(/<svg[^>]*width\s*=\s*(["']?)(.+?)\1[^>]*>/i)),fe==null&&(fe=ce(2)),fe==null)throw new Error("Can not parse width from svg string");let ve=se.height;if(ve==null&&(ve=de(/<svg[^>]*height\s*=\s*(["']?)(.+?)\1[^>]*>/i)),ve==null&&(ve=ce(3)),ve==null)throw new Error("Can not parse height from svg string");return`data:image/svg+xml,${encodeURIComponent(ae).replace(/'/g,"%27").replace(/"/g,"%22")}`}te.svgToDataUrl=le})(DataUri||(DataUri={}));let millimeterSize;const supportedUnits={px(te){return te},mm(te){return millimeterSize*te},cm(te){return millimeterSize*te*10},in(te){return millimeterSize*te*25.4},pt(te){return millimeterSize*(25.4*te/72)},pc(te){return millimeterSize*(25.4*te/6)}};var Unit;(function(te){function U(ee,ne,re){const oe=document.createElement("div"),ie=oe.style;ie.display="inline-block",ie.position="absolute",ie.left="-15000px",ie.top="-15000px",ie.width=ee+(re||"px"),ie.height=ne+(re||"px"),document.body.appendChild(oe);const le=oe.getBoundingClientRect(),ae={width:le.width||0,height:le.height||0};return document.body.removeChild(oe),ae}te.measure=U;function G(ee,ne){millimeterSize==null&&(millimeterSize=U("1","1","mm").width);const re=ne?supportedUnits[ne]:null;return re?re(ee):ee}te.toPx=G})(Unit||(Unit={}));const hyphenPattern=/-(.)/g;function camelize(te){return te.replace(hyphenPattern,(U,G)=>G.toUpperCase())}const memoized={},prefixes=["webkit","ms","moz","o"],testStyle=typeof document<"u"?document.createElement("div").style:{};function getWithPrefix(te){for(let U=0;U<prefixes.length;U+=1){const G=prefixes[U]+te;if(G in testStyle)return G}return null}function getVendorPrefixedName(te){const U=camelize(te);if(memoized[U]==null){const G=U.charAt(0).toUpperCase()+U.slice(1);memoized[U]=U in testStyle?U:getWithPrefix(G)}return memoized[U]}function getComputedStyle$1(te,U){const G=te.ownerDocument&&te.ownerDocument.defaultView&&te.ownerDocument.defaultView.opener?te.ownerDocument.defaultView.getComputedStyle(te,null):window.getComputedStyle(te,null);return G&&U?G.getPropertyValue(U)||G[U]:G}const numericProps={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function isCSSVariable(te){return/^--/.test(te)}function computeStyle(te,U,G){const ee=window.getComputedStyle(te,null);return G?ee.getPropertyValue(U)||void 0:ee[U]||te.style[U]}function getSuffixedValue(te,U){return!numericProps[te]&&typeof U=="number"?`${U}px`:U}function css(te,U,G){if(typeof U=="string"){const ee=isCSSVariable(U);if(ee||(U=getVendorPrefixedName(U)),G===void 0)return computeStyle(te,U,ee);ee||(G=getSuffixedValue(U,G));const ne=te.style;ee?ne.setProperty(U,G):ne[U]=G;return}for(const ee in U)css(te,ee,U[ee])}const dataset=new WeakMap;function getData(te,U){const G=camelCase$1(U),ee=dataset.get(te);if(ee)return ee[G]}function setData(te,U,G){const ee=camelCase$1(U),ne=dataset.get(te);ne?ne[ee]=G:dataset.set(te,{[ee]:G})}function data(te,U,G){if(!U){const ee={};return Object.keys(dataset).forEach(ne=>{ee[ne]=getData(te,ne)}),ee}if(typeof U=="string"){if(G===void 0)return getData(te,U);setData(te,U,G);return}for(const ee in U)data(te,ee,U[ee])}const propMap={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};function prop(te,U,G){if(U){if(typeof U=="string"){if(U=propMap[U]||U,arguments.length<3)return te[U];te[U]=G;return}for(const ee in U)prop(te,ee,U[ee])}}class Vector{get[Symbol.toStringTag](){return Vector.toStringTag}get type(){return this.node.nodeName}get id(){return this.node.id}set id(U){this.node.id=U}constructor(U,G,ee){if(!U)throw new TypeError("Invalid element to create vector");let ne;if(Vector.isVector(U))ne=U.node;else if(typeof U=="string")if(U.toLowerCase()==="svg")ne=createSvgDocument();else if(U[0]==="<"){const re=createSvgDocument(U);ne=document.importNode(re.firstChild,!0)}else ne=document.createElementNS(ns.svg,U);else ne=U;this.node=ne,G&&this.setAttributes(G),ee&&this.append(ee)}transform(U,G){return U==null?transform(this.node):(transform(this.node,U,G),this)}translate(U,G=0,ee={}){return U==null?translate(this.node):(translate(this.node,U,G,ee),this)}rotate(U,G,ee,ne={}){return U==null?rotate$1(this.node):(rotate$1(this.node,U,G,ee,ne),this)}scale(U,G){return U==null?scale(this.node):(scale(this.node,U,G),this)}getTransformToElement(U){const G=Vector.toNode(U);return getTransformToElement(this.node,G)}removeAttribute(U){return removeAttribute(this.node,U),this}getAttribute(U){return getAttribute(this.node,U)}setAttribute(U,G){return setAttribute(this.node,U,G),this}setAttributes(U){return setAttributes(this.node,U),this}attr(U,G){return U==null?attr(this.node):typeof U=="string"&&G===void 0?attr(this.node,U):(typeof U=="object"?attr(this.node,U):attr(this.node,U,G),this)}svg(){return this.node instanceof SVGSVGElement?this:Vector.create(this.node.ownerSVGElement)}defs(){const U=this.svg()||this,G=U.node.getElementsByTagName("defs")[0];return G?Vector.create(G):Vector.create("defs").appendTo(U)}text(U,G={}){return text$1(this.node,U,G),this}tagName(){return tagName(this.node)}clone(){return Vector.create(this.node.cloneNode(!0))}remove(){return remove(this.node),this}empty(){return empty(this.node),this}append(U){return append(this.node,Vector.toNodes(U)),this}appendTo(U){return appendTo(this.node,Vector.isVector(U)?U.node:U),this}prepend(U){return prepend(this.node,Vector.toNodes(U)),this}before(U){return before(this.node,Vector.toNodes(U)),this}replace(U){return this.node.parentNode&&this.node.parentNode.replaceChild(Vector.toNode(U),this.node),Vector.create(U)}first(){return this.node.firstChild?Vector.create(this.node.firstChild):null}last(){return this.node.lastChild?Vector.create(this.node.lastChild):null}get(U){const G=this.node.childNodes[U];return G?Vector.create(G):null}indexOf(U){return Array.prototype.slice.call(this.node.childNodes).indexOf(Vector.toNode(U))}find(U){const G=[],ee=find(this.node,U);if(ee)for(let ne=0,re=ee.length;ne<re;ne+=1)G.push(Vector.create(ee[ne]));return G}findOne(U){const G=findOne(this.node,U);return G?Vector.create(G):null}findParentByClass(U,G){const ee=findParentByClass(this.node,U,G);return ee?Vector.create(ee):null}matches(U){const G=this.node;this.node.matches;const ee=G.matches||G.matchesSelector||G.msMatchesSelector||G.mozMatchesSelector||G.webkitMatchesSelector||G.oMatchesSelector||null;return ee&&ee.call(G,U)}contains(U){return contains(this.node,Vector.isVector(U)?U.node:U)}wrap(U){const G=Vector.create(U),ee=this.node.parentNode;return ee!=null&&ee.insertBefore(G.node,this.node),G.append(this)}parent(U){let G=this;if(G.node.parentNode==null)return null;if(G=Vector.create(G.node.parentNode),U==null)return G;do if(typeof U=="string"?G.matches(U):G instanceof U)return G;while(G=Vector.create(G.node.parentNode));return G}children(){const U=this.node.childNodes,G=[];for(let ee=0;ee<U.length;ee+=1)U[ee].nodeType===1&&G.push(Vector.create(U[ee]));return G}eachChild(U,G){const ee=this.children();for(let ne=0,re=ee.length;ne<re;ne+=1)U.call(ee[ne],ee[ne],ne,ee),G&&ee[ne].eachChild(U,G);return this}index(){return index$1(this.node)}hasClass(U){return hasClass(this.node,U)}addClass(U){return addClass(this.node,U),this}removeClass(U){return removeClass(this.node,U),this}toggleClass(U,G){return toggleClass(this.node,U,G),this}toLocalPoint(U,G){return toLocalPoint(this.node,U,G)}sample(U=1){return this.node instanceof SVGPathElement?sample(this.node,U):[]}toPath(){return Vector.create(toPath(this.node))}toPathData(){return toPathData(this.node)}}(function(te){te.toStringTag=`X6.${te.name}`;function U(oe){if(oe==null)return!1;if(oe instanceof te)return!0;const ie=oe[Symbol.toStringTag],le=oe;return(ie==null||ie===te.toStringTag)&&le.node instanceof SVGElement&&typeof le.sample=="function"&&typeof le.toPath=="function"}te.isVector=U;function G(oe,ie,le){return new te(oe,ie,le)}te.create=G;function ee(oe){if(oe[0]==="<"){const ie=createSvgDocument(oe),le=[];for(let ae=0,se=ie.childNodes.length;ae<se;ae+=1){const ue=ie.childNodes[ae];le.push(G(document.importNode(ue,!0)))}return le}return[G(oe)]}te.createVectors=ee;function ne(oe){return U(oe)?oe.node:oe}te.toNode=ne;function re(oe){return Array.isArray(oe)?oe.map(ie=>ne(ie)):[ne(oe)]}te.toNodes=re})(Vector||(Vector={}));function createTextPathNode(te,U){const G=Vector.create(U),ee=Vector.create("textPath"),ne=te.d;if(ne&&te["xlink:href"]===void 0){const re=Vector.create("path").attr("d",ne).appendTo(G.defs());ee.attr("xlink:href",`#${re.id}`)}return typeof te=="object"&&ee.attr(te),ee.node}function annotateTextLine(te,U,G){const ee=G.eol,ne=G.baseSize,re=G.lineHeight;let oe=0,ie;const le={},ae=U.length-1;for(let se=0;se<=ae;se+=1){let ue=U[se],ce=null;if(typeof ue=="object"){const de=ue.attrs,fe=Vector.create("tspan",de);ie=fe.node;let ve=ue.t;ee&&se===ae&&(ve+=ee),ie.textContent=ve;const he=de.class;he&&fe.addClass(he),G.includeAnnotationIndices&&fe.attr("annotations",ue.annotations.join(",")),ce=parseFloat(de["font-size"]),ce===void 0&&(ce=ne),ce&&ce>oe&&(oe=ce)}else ee&&se===ae&&(ue+=ee),ie=document.createTextNode(ue||" "),ne&&ne>oe&&(oe=ne);te.appendChild(ie)}return oe&&(le.maxFontSize=oe),re?le.lineHeight=re:oe&&(le.lineHeight=oe*1.2),le}const emRegex=/em$/;function emToPx(te,U){const G=parseFloat(te);return emRegex.test(te)?G*U:G}function calculateDY(te,U,G,ee){if(!Array.isArray(U))return 0;const ne=U.length;if(!ne)return 0;let re=U[0];const oe=emToPx(re.maxFontSize,G)||G;let ie=0;const le=emToPx(ee,G);for(let ue=1;ue<ne;ue+=1){re=U[ue];const ce=emToPx(re.lineHeight,G)||le;ie+=ce}const ae=emToPx(re.maxFontSize,G)||G;let se;switch(te){case"middle":se=oe/2-.15*ae-ie/2;break;case"bottom":se=-(.25*ae)-ie;break;case"top":default:se=.8*oe;break}return se}function text$1(te,U,G={}){U=sanitize(U);const ee=G.eol;let ne=G.textPath;const re=G.textVerticalAnchor,oe=re==="middle"||re==="bottom"||re==="top";let ie=G.x;ie===void 0&&(ie=te.getAttribute("x")||0);const le=G.includeAnnotationIndices;let ae=G.annotations;ae&&!Array.isArray(ae)&&(ae=[ae]);const se=G.lineHeight,ue=se==="auto",ce=ue?"1.5em":se||"1em";let de=!0;const fe=te.childNodes;if(fe.length===1){const $e=fe[0];$e&&$e.tagName.toUpperCase()==="TITLE"&&(de=!1)}de&&empty(te),attr(te,{"xml:space":"preserve",display:U||G.displayEmpty?null:"none"});const ve=attr(te,"font-size");let he=parseFloat(ve);he||(he=16,(oe||ae)&&!ve&&attr(te,"font-size",`${he}`));let pe;ne?(typeof ne=="string"&&(ne={d:ne}),pe=createTextPathNode(ne,te)):pe=document.createDocumentFragment();let ge,me=0,_e;const ye=U.split(`
904
904
  `),be=[],xe=ye.length-1;for(let $e=0;$e<=xe;$e+=1){ge=ce;let Ee="v-line";const Ve=createSvgElement("tspan");let Ne,Se=ye[$e];if(Se)if(ae){const Pe=annotate(Se,ae,{offset:-me,includeAnnotationIndices:le});Ne=annotateTextLine(Ve,Pe,{eol:$e!==xe&&ee,baseSize:he,lineHeight:ue?null:ce,includeAnnotationIndices:le});const we=Ne.lineHeight;we&&ue&&$e!==0&&(ge=we),$e===0&&(_e=Ne.maxFontSize*.8)}else ee&&$e!==xe&&(Se+=ee),Ve.textContent=Se;else{Ve.textContent="-",Ee+=" v-empty-line";const Pe=Ve.style;Pe.fillOpacity=0,Pe.strokeOpacity=0,ae&&(Ne={})}Ne&&be.push(Ne),$e>0&&Ve.setAttribute("dy",ge),($e>0||ne)&&Ve.setAttribute("x",ie),Ve.className.baseVal=Ee,pe.appendChild(Ve),me+=Se.length+1}if(oe)if(ae)ge=calculateDY(re,be,he,ce);else if(re==="top")ge="0.8em";else{let $e;switch(xe>0?($e=parseFloat(ce)||1,$e*=xe,emRegex.test(ce)||($e/=he)):$e=0,re){case"middle":ge=`${.3-$e/2}em`;break;case"bottom":ge=`${-$e-.3}em`;break}}else re===0?ge="0em":re?ge=re:(ge=0,te.getAttribute("y")==null&&te.setAttribute("y",`${_e||"0.8em"}`));pe.firstChild.setAttribute("dy",ge),te.appendChild(pe)}function measureText(te,U={}){const G=document.createElement("canvas").getContext("2d");if(!te)return{width:0};const ee=[],ne=U["font-size"]?`${parseFloat(U["font-size"])}px`:"14px";return ee.push(U["font-style"]||"normal"),ee.push(U["font-variant"]||"normal"),ee.push(U["font-weight"]||400),ee.push(ne),ee.push(U["font-family"]||"sans-serif"),G.font=ee.join(" "),G.measureText(te)}function splitTextByLength(te,U,G,ee={}){if(U>=G)return[te,""];const ne=te.length,re={};let oe=Math.round(U/G*ne-1);for(oe<0&&(oe=0);oe>=0&&oe<ne;){const ie=te.slice(0,oe),le=re[ie]||measureText(ie,ee).width,ae=te.slice(0,oe+1),se=re[ae]||measureText(ae,ee).width;if(re[ie]=le,re[ae]=se,le>U)oe-=1;else if(se<=U)oe+=1;else break}return[te.slice(0,oe),te.slice(oe)]}function breakText(te,U,G={},ee={}){const ne=U.width,re=U.height,oe=ee.eol||`
905
905
  `,ie=G.fontSize||14,le=G.lineHeight?parseFloat(G.lineHeight):Math.ceil(ie*1.4),ae=Math.floor(re/le);if(te.indexOf(oe)>-1){const he=uuid(),pe=[];return te.split(oe).map(ge=>{const me=breakText(ge,Object.assign(Object.assign({},U),{height:Number.MAX_SAFE_INTEGER}),G,Object.assign(Object.assign({},ee),{eol:he}));me&&pe.push(...me.split(he))}),pe.slice(0,ae).join(oe)}const{width:se}=measureText(te,G);if(se<ne)return te;const ue=[];let ce=te,de=se,fe=ee.ellipsis,ve=0;fe&&(typeof fe!="string"&&(fe="…"),ve=measureText(fe,G).width);for(let he=0;he<ae;he+=1)if(de>ne)if(he===ae-1){const[ge]=splitTextByLength(ce,ne-ve,de,G);ue.push(fe?`${ge}${fe}`:ge)}else{const[ge,me]=splitTextByLength(ce,ne,de,G);ue.push(ge),ce=me,de=measureText(ce,G).width}else{ue.push(ce);break}return ue.join(oe)}const KAPPA=.551784;function getNumbericAttribute(te,U,G=NaN){const ee=te.getAttribute(U);if(ee==null)return G;const ne=parseFloat(ee);return Number.isNaN(ne)?G:ne}function sample(te,U=1){const G=te.getTotalLength(),ee=[];let ne=0,re;for(;ne<G;)re=te.getPointAtLength(ne),ee.push({distance:ne,x:re.x,y:re.y}),ne+=U;return ee}function lineToPathData(te){return["M",getNumbericAttribute(te,"x1"),getNumbericAttribute(te,"y1"),"L",getNumbericAttribute(te,"x2"),getNumbericAttribute(te,"y2")].join(" ")}function polygonToPathData(te){const U=getPointsFromSvgElement(te);return U.length===0?null:`${svgPointsToPath(U)} Z`}function polylineToPathData(te){const U=getPointsFromSvgElement(te);return U.length===0?null:svgPointsToPath(U)}function svgPointsToPath(te){return`M ${te.map(G=>`${G.x} ${G.y}`).join(" L")}`}function getPointsFromSvgElement(te){const U=[],G=te.points;if(G)for(let ee=0,ne=G.numberOfItems;ee<ne;ee+=1)U.push(G.getItem(ee));return U}function circleToPathData(te){const U=getNumbericAttribute(te,"cx",0),G=getNumbericAttribute(te,"cy",0),ee=getNumbericAttribute(te,"r"),ne=ee*KAPPA;return["M",U,G-ee,"C",U+ne,G-ee,U+ee,G-ne,U+ee,G,"C",U+ee,G+ne,U+ne,G+ee,U,G+ee,"C",U-ne,G+ee,U-ee,G+ne,U-ee,G,"C",U-ee,G-ne,U-ne,G-ee,U,G-ee,"Z"].join(" ")}function ellipseToPathData(te){const U=getNumbericAttribute(te,"cx",0),G=getNumbericAttribute(te,"cy",0),ee=getNumbericAttribute(te,"rx"),ne=getNumbericAttribute(te,"ry")||ee,re=ee*KAPPA,oe=ne*KAPPA;return["M",U,G-ne,"C",U+re,G-ne,U+ee,G-oe,U+ee,G,"C",U+ee,G+oe,U+re,G+ne,U,G+ne,"C",U-re,G+ne,U-ee,G+oe,U-ee,G,"C",U-ee,G-oe,U-re,G-ne,U,G-ne,"Z"].join(" ")}function rectangleToPathData(te){return rectToPathData({x:getNumbericAttribute(te,"x",0),y:getNumbericAttribute(te,"y",0),width:getNumbericAttribute(te,"width",0),height:getNumbericAttribute(te,"height",0),rx:getNumbericAttribute(te,"rx",0),ry:getNumbericAttribute(te,"ry",0)})}function rectToPathData(te){let U;const G=te.x,ee=te.y,ne=te.width,re=te.height,oe=Math.min(te.rx||te["top-rx"]||0,ne/2),ie=Math.min(te.rx||te["bottom-rx"]||0,ne/2),le=Math.min(te.ry||te["top-ry"]||0,re/2),ae=Math.min(te.ry||te["bottom-ry"]||0,re/2);return oe||ie||le||ae?U=["M",G,ee+le,"v",re-le-ae,"a",ie,ae,0,0,0,ie,ae,"h",ne-2*ie,"a",ie,ae,0,0,0,ie,-ae,"v",-(re-ae-le),"a",oe,le,0,0,0,-oe,-le,"h",-(ne-2*oe),"a",oe,le,0,0,0,-oe,le,"Z"]:U=["M",G,ee,"H",G+ne,"V",ee+re,"H",G,"V",ee,"Z"],U.join(" ")}function toPath(te){const U=createSvgElement("path");attr(U,attr(te));const G=toPathData(te);return G&&U.setAttribute("d",G),U}function toPathData(te){const U=te.tagName.toLowerCase();switch(U){case"path":return te.getAttribute("d");case"line":return lineToPathData(te);case"polygon":return polygonToPathData(te);case"polyline":return polylineToPathData(te);case"ellipse":return ellipseToPathData(te);case"circle":return circleToPathData(te);case"rect":return rectangleToPathData(te)}throw new Error(`"${U}" cannot be converted to svg path element.`)}const transformRegex=/(\w+)\(([^,)]+),?([^)]+)?\)/gi,transformSeparatorRegex=/[ ,]+/,transformationListRegex=/^(\w+)\((.*)\)/;function createSVGPoint(te,U){const ee=createSvgElement("svg").createSVGPoint();return ee.x=te,ee.y=U,ee}function createSVGMatrix(te){const G=createSvgElement("svg").createSVGMatrix();if(te!=null){const ee=te,ne=G;for(const re in ee)ne[re]=ee[re]}return G}function createSVGTransform(te){const U=createSvgElement("svg");return te!=null?(te instanceof DOMMatrix||(te=createSVGMatrix(te)),U.createSVGTransformFromMatrix(te)):U.createSVGTransform()}function transformStringToMatrix(te){let U=createSVGMatrix();const G=te!=null&&te.match(transformRegex);if(!G)return U;for(let ee=0,ne=G.length;ee<ne;ee+=1){const oe=G[ee].match(transformationListRegex);if(oe){let ie,le,ae,se,ue,ce=createSVGMatrix();const de=oe[2].split(transformSeparatorRegex);switch(oe[1].toLowerCase()){case"scale":ie=parseFloat(de[0]),le=de[1]===void 0?ie:parseFloat(de[1]),ce=ce.scaleNonUniform(ie,le);break;case"translate":ae=parseFloat(de[0]),se=parseFloat(de[1]),ce=ce.translate(ae,se);break;case"rotate":ue=parseFloat(de[0]),ae=parseFloat(de[1])||0,se=parseFloat(de[2])||0,ae!==0||se!==0?ce=ce.translate(ae,se).rotate(ue).translate(-ae,-se):ce=ce.rotate(ue);break;case"skewx":ue=parseFloat(de[0]),ce=ce.skewX(ue);break;case"skewy":ue=parseFloat(de[0]),ce=ce.skewY(ue);break;case"matrix":ce.a=parseFloat(de[0]),ce.b=parseFloat(de[1]),ce.c=parseFloat(de[2]),ce.d=parseFloat(de[3]),ce.e=parseFloat(de[4]),ce.f=parseFloat(de[5]);break;default:continue}U=U.multiply(ce)}}return U}function matrixToTransformString(te){const U=te||{},G=U.a!=null?U.a:1,ee=U.b!=null?U.b:0,ne=U.c!=null?U.c:0,re=U.d!=null?U.d:1,oe=U.e!=null?U.e:0,ie=U.f!=null?U.f:0;return`matrix(${G},${ee},${ne},${re},${oe},${ie})`}function parseTransformString(te){let U,G,ee;if(te){const re=transformSeparatorRegex;if(te.trim().indexOf("matrix")>=0){const oe=transformStringToMatrix(te),ie=decomposeMatrix(oe);U=[ie.translateX,ie.translateY],G=[ie.rotation],ee=[ie.scaleX,ie.scaleY];const le=[];(U[0]!==0||U[1]!==0)&&le.push(`translate(${U.join(",")})`),(ee[0]!==1||ee[1]!==1)&&le.push(`scale(${ee.join(",")})`),G[0]!==0&&le.push(`rotate(${G[0]})`),te=le.join(" ")}else{const oe=te.match(/translate\((.*?)\)/);oe&&(U=oe[1].split(re));const ie=te.match(/rotate\((.*?)\)/);ie&&(G=ie[1].split(re));const le=te.match(/scale\((.*?)\)/);le&&(ee=le[1].split(re))}}const ne=ee&&ee[0]?parseFloat(ee[0]):1;return{raw:te||"",translation:{tx:U&&U[0]?parseInt(U[0],10):0,ty:U&&U[1]?parseInt(U[1],10):0},rotation:{angle:G&&G[0]?parseInt(G[0],10):0,cx:G&&G[1]?parseInt(G[1],10):void 0,cy:G&&G[2]?parseInt(G[2],10):void 0},scale:{sx:ne,sy:ee&&ee[1]?parseFloat(ee[1]):ne}}}function deltaTransformPoint(te,U){const G=U.x*te.a+U.y*te.c+0,ee=U.x*te.b+U.y*te.d+0;return{x:G,y:ee}}function decomposeMatrix(te){const U=deltaTransformPoint(te,{x:0,y:1}),G=deltaTransformPoint(te,{x:1,y:0}),ee=180/Math.PI*Math.atan2(U.y,U.x)-90,ne=180/Math.PI*Math.atan2(G.y,G.x);return{skewX:ee,skewY:ne,translateX:te.e,translateY:te.f,scaleX:Math.sqrt(te.a*te.a+te.b*te.b),scaleY:Math.sqrt(te.c*te.c+te.d*te.d),rotation:ee}}function matrixToScale(te){let U,G,ee,ne;return te?(U=te.a==null?1:te.a,ne=te.d==null?1:te.d,G=te.b,ee=te.c):U=ne=1,{sx:G?Math.sqrt(U*U+G*G):U,sy:ee?Math.sqrt(ee*ee+ne*ne):ne}}function matrixToRotation(te){let U={x:0,y:1};te&&(U=deltaTransformPoint(te,U));const G=180*Math.atan2(U.y,U.x)/Math.PI%360-90;return{angle:G%360+(G<0?360:0)}}function matrixToTranslation(te){return{tx:te&&te.e||0,ty:te&&te.f||0}}function transform(te,U,G={}){if(U==null)return transformStringToMatrix(attr(te,"transform"));if(G.absolute){te.setAttribute("transform",matrixToTransformString(U));return}const ee=te.transform,ne=createSVGTransform(U);ee.baseVal.appendItem(ne)}function translate(te,U,G=0,ee={}){let ne=attr(te,"transform");const re=parseTransformString(ne);if(U==null)return re.translation;ne=re.raw,ne=ne.replace(/translate\([^)]*\)/g,"").trim();const oe=ee.absolute?U:re.translation.tx+U,ie=ee.absolute?G:re.translation.ty+G,le=`translate(${oe},${ie})`;te.setAttribute("transform",`${le} ${ne}`.trim())}function rotate$1(te,U,G,ee,ne={}){let re=attr(te,"transform");const oe=parseTransformString(re);if(U==null)return oe.rotation;re=oe.raw,re=re.replace(/rotate\([^)]*\)/g,"").trim(),U%=360;const ie=ne.absolute?U:oe.rotation.angle+U,le=G!=null&&ee!=null?`,${G},${ee}`:"",ae=`rotate(${ie}${le})`;te.setAttribute("transform",`${re} ${ae}`.trim())}function scale(te,U,G){let ee=attr(te,"transform");const ne=parseTransformString(ee);if(U==null)return ne.scale;G=G??U,ee=ne.raw,ee=ee.replace(/scale\([^)]*\)/g,"").trim();const re=`scale(${U},${G})`;te.setAttribute("transform",`${ee} ${re}`.trim())}function getTransformToElement(te,U){if(isSVGGraphicsElement(U)&&isSVGGraphicsElement(te)){const G=U.getScreenCTM(),ee=te.getScreenCTM();if(G&&ee)return G.inverse().multiply(ee)}return createSVGMatrix()}function getTransformToParentElement(te,U){let G=createSVGMatrix();if(isSVGGraphicsElement(U)&&isSVGGraphicsElement(te)){let ee=te;const ne=[];for(;ee&&ee!==U;){const re=ee.getAttribute("transform")||null,oe=transformStringToMatrix(re);ne.push(oe),ee=ee.parentNode}ne.reverse().forEach(re=>{G=G.multiply(re)})}return G}function toLocalPoint(te,U,G){const ee=te instanceof SVGSVGElement?te:te.ownerSVGElement,ne=ee.createSVGPoint();ne.x=U,ne.y=G;try{const re=ee.getScreenCTM(),oe=ne.matrixTransform(re.inverse()),ie=getTransformToElement(te,ee).inverse();return oe.matrixTransform(ie)}catch{return ne}}var EventHook;(function(te){const U={};function G(re){return U[re]||{}}te.get=G;function ee(re,oe){U[re]=oe}te.register=ee;function ne(re){delete U[re]}te.unregister=ne})(EventHook||(EventHook={}));var Store$1;(function(te){const U=new WeakMap;function G(re){return U.has(re)||U.set(re,{events:Object.create(null)}),U.get(re)}te.ensure=G;function ee(re){return U.get(re)}te.get=ee;function ne(re){return U.delete(re)}te.remove=ne})(Store$1||(Store$1={}));var Util$2;(function(te){te.returnTrue=()=>!0,te.returnFalse=()=>!1;function U(ne){ne.stopPropagation()}te.stopPropagationCallback=U;function G(ne,re,oe){ne.addEventListener!=null&&ne.addEventListener(re,oe)}te.addEventListener=G;function ee(ne,re,oe){ne.removeEventListener!=null&&ne.removeEventListener(re,oe)}te.removeEventListener=ee})(Util$2||(Util$2={})),function(te){const U=/[^\x20\t\r\n\f]+/g,G=/^([^.]*)(?:\.(.+)|)/;function ee(ie){return(ie||"").match(U)||[""]}te.splitType=ee;function ne(ie){const le=G.exec(ie)||[];return{originType:le[1]?le[1].trim():le[1],namespaces:le[2]?le[2].split(".").map(ae=>ae.trim()).sort():[]}}te.normalizeType=ne;function re(ie){return ie.nodeType===1||ie.nodeType===9||!+ie.nodeType}te.isValidTarget=re;function oe(ie,le){if(le){const ae=ie;return ae.querySelector!=null&&ae.querySelector(le)!=null}return!0}te.isValidSelector=oe}(Util$2||(Util$2={})),function(te){let U=0;const G=new WeakMap;function ee(ie){return G.has(ie)||(G.set(ie,U),U+=1),G.get(ie)}te.ensureHandlerId=ee;function ne(ie){return G.get(ie)}te.getHandlerId=ne;function re(ie){return G.delete(ie)}te.removeHandlerId=re;function oe(ie,le){return G.set(ie,le)}te.setHandlerId=oe}(Util$2||(Util$2={})),function(te){function U(G,ee){const ne=[],re=Store$1.get(G),oe=re&&re.events&&re.events[ee.type],ie=oe&&oe.handlers||[],le=oe?oe.delegateCount:0;if(le>0&&!(ee.type==="click"&&typeof ee.button=="number"&&ee.button>=1)){for(let ae=ee.target;ae!==G;ae=ae.parentNode||G)if(ae.nodeType===1&&!(ee.type==="click"&&ae.disabled===!0)){const se=[],ue={};for(let ce=0;ce<le;ce+=1){const de=ie[ce],fe=de.selector;if(fe!=null&&ue[fe]==null){const ve=G,he=[];ve.querySelectorAll(fe).forEach(pe=>{he.push(pe)}),ue[fe]=he.includes(ae)}ue[fe]&&se.push(de)}se.length&&ne.push({elem:ae,handlers:se})}}return le<ie.length&&ne.push({elem:G,handlers:ie.slice(le)}),ne}te.getHandlerQueue=U}(Util$2||(Util$2={})),function(te){function U(G){return G!=null&&G===G.window}te.isWindow=U}(Util$2||(Util$2={})),function(te){function U(G,ee){const ne=G.nodeType===9?G.documentElement:G,re=ee&&ee.parentNode;return G===re||!!(re&&re.nodeType===1&&(ne.contains?ne.contains(re):G.compareDocumentPosition&&G.compareDocumentPosition(re)&16))}te.contains=U}(Util$2||(Util$2={}));class EventObject{constructor(U,G){this.isDefaultPrevented=Util$2.returnFalse,this.isPropagationStopped=Util$2.returnFalse,this.isImmediatePropagationStopped=Util$2.returnFalse,this.isSimulated=!1,this.preventDefault=()=>{const ee=this.originalEvent;this.isDefaultPrevented=Util$2.returnTrue,ee&&!this.isSimulated&&ee.preventDefault()},this.stopPropagation=()=>{const ee=this.originalEvent;this.isPropagationStopped=Util$2.returnTrue,ee&&!this.isSimulated&&ee.stopPropagation()},this.stopImmediatePropagation=()=>{const ee=this.originalEvent;this.isImmediatePropagationStopped=Util$2.returnTrue,ee&&!this.isSimulated&&ee.stopImmediatePropagation(),this.stopPropagation()},typeof U=="string"?this.type=U:U.type&&(this.originalEvent=U,this.type=U.type,this.isDefaultPrevented=U.defaultPrevented?Util$2.returnTrue:Util$2.returnFalse,this.target=U.target,this.currentTarget=U.currentTarget,this.relatedTarget=U.relatedTarget,this.timeStamp=U.timeStamp),G&&Object.assign(this,G),this.timeStamp||(this.timeStamp=Date.now())}}(function(te){function U(G){return G instanceof te?G:new te(G)}te.create=U})(EventObject||(EventObject={})),function(te){function U(G,ee){Object.defineProperty(te.prototype,G,{enumerable:!0,configurable:!0,get:typeof ee=="function"?function(){if(this.originalEvent)return ee(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[G]},set(ne){Object.defineProperty(this,G,{enumerable:!0,configurable:!0,writable:!0,value:ne})}})}te.addProperty=U}(EventObject||(EventObject={})),function(te){const U={bubbles:!0,cancelable:!0,eventPhase:!0,detail:!0,view:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pageX:!0,pageY:!0,screenX:!0,screenY:!0,toElement:!0,pointerId:!0,pointerType:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,touches:!0,changedTouches:!0,targetTouches:!0,which:!0,altKey:!0,ctrlKey:!0,metaKey:!0,shiftKey:!0};Object.keys(U).forEach(G=>te.addProperty(G,U[G]))}(EventObject||(EventObject={})),function(te){EventHook.register("load",{noBubble:!0})}(),function(te){EventHook.register("beforeunload",{postDispatch(U,G){G.result!==void 0&&G.originalEvent&&(G.originalEvent.returnValue=G.result)}})}(),function(te){EventHook.register("mouseenter",{delegateType:"mouseover",bindType:"mouseover",handle(U,G){let ee;const ne=G.relatedTarget,re=G.handleObj;return(!ne||ne!==U&&!Util$2.contains(U,ne))&&(G.type=re.originType,ee=re.handler.call(U,G),G.type="mouseover"),ee}}),EventHook.register("mouseleave",{delegateType:"mouseout",bindType:"mouseout",handle(U,G){let ee;const ne=G.relatedTarget,re=G.handleObj;return(!ne||ne!==U&&!Util$2.contains(U,ne))&&(G.type=re.originType,ee=re.handler.call(U,G),G.type="mouseout"),ee}})}();var __rest$u=globalThis&&globalThis.__rest||function(te,U){var G={};for(var ee in te)Object.prototype.hasOwnProperty.call(te,ee)&&U.indexOf(ee)<0&&(G[ee]=te[ee]);if(te!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ne=0,ee=Object.getOwnPropertySymbols(te);ne<ee.length;ne++)U.indexOf(ee[ne])<0&&Object.prototype.propertyIsEnumerable.call(te,ee[ne])&&(G[ee[ne]]=te[ee[ne]]);return G},Core;(function(te){let U;function G(oe,ie,le,ae,se){if(!Util$2.isValidTarget(oe))return;let ue;if(typeof le!="function"){const{handler:ve,selector:he}=le,pe=__rest$u(le,["handler","selector"]);le=ve,se=he,ue=pe}const ce=Store$1.ensure(oe);let de=ce.handler;de==null&&(de=ce.handler=function(ve,...he){return U!==ve.type?ne(oe,ve,...he):void 0});const fe=Util$2.ensureHandlerId(le);Util$2.splitType(ie).forEach(ve=>{const{originType:he,namespaces:pe}=Util$2.normalizeType(ve);if(!he)return;let ge=he,me=EventHook.get(ge);ge=(se?me.delegateType:me.bindType)||ge,me=EventHook.get(ge);const _e=Object.assign({type:ge,originType:he,data:ae,selector:se,guid:fe,handler:le,namespace:pe.join(".")},ue),ye=ce.events;let be=ye[ge];be||(be=ye[ge]={handlers:[],delegateCount:0},(!me.setup||me.setup(oe,ae,pe,de)===!1)&&Util$2.addEventListener(oe,ge,de)),me.add&&(Util$2.removeHandlerId(_e.handler),me.add(oe,_e),Util$2.setHandlerId(_e.handler,fe)),se?(be.handlers.splice(be.delegateCount,0,_e),be.delegateCount+=1):be.handlers.push(_e)})}te.on=G;function ee(oe,ie,le,ae,se){const ue=Store$1.get(oe);if(!ue)return;const ce=ue.events;ce&&(Util$2.splitType(ie).forEach(de=>{const{originType:fe,namespaces:ve}=Util$2.normalizeType(de);if(!fe){Object.keys(ce).forEach(ye=>{ee(oe,ye+de,le,ae,!0)});return}let he=fe;const pe=EventHook.get(he);he=(ae?pe.delegateType:pe.bindType)||he;const ge=ce[he];if(!ge)return;const me=ve.length>0?new RegExp(`(^|\\.)${ve.join("\\.(?:.*\\.|)")}(\\.|$)`):null,_e=ge.handlers.length;for(let ye=ge.handlers.length-1;ye>=0;ye-=1){const be=ge.handlers[ye];(se||fe===be.originType)&&(!le||Util$2.getHandlerId(le)===be.guid)&&(me==null||be.namespace&&me.test(be.namespace))&&(ae==null||ae===be.selector||ae==="**"&&be.selector)&&(ge.handlers.splice(ye,1),be.selector&&(ge.delegateCount-=1),pe.remove&&pe.remove(oe,be))}_e&&ge.handlers.length===0&&((!pe.teardown||pe.teardown(oe,ve,ue.handler)===!1)&&Util$2.removeEventListener(oe,he,ue.handler),delete ce[he])}),Object.keys(ce).length===0&&Store$1.remove(oe))}te.off=ee;function ne(oe,ie,...le){const ae=EventObject.create(ie);ae.delegateTarget=oe;const se=EventHook.get(ae.type);if(se.preDispatch&&se.preDispatch(oe,ae)===!1)return;const ue=Util$2.getHandlerQueue(oe,ae);for(let ce=0,de=ue.length;ce<de&&!ae.isPropagationStopped();ce+=1){const fe=ue[ce];ae.currentTarget=fe.elem;for(let ve=0,he=fe.handlers.length;ve<he&&!ae.isImmediatePropagationStopped();ve+=1){const pe=fe.handlers[ve];if(ae.rnamespace==null||pe.namespace&&ae.rnamespace.test(pe.namespace)){ae.handleObj=pe,ae.data=pe.data;const ge=EventHook.get(pe.originType).handle,me=ge?ge(fe.elem,ae,...le):pe.handler.call(fe.elem,ae,...le);me!==void 0&&(ae.result=me,me===!1&&(ae.preventDefault(),ae.stopPropagation()))}}}return se.postDispatch&&se.postDispatch(oe,ae),ae.result}te.dispatch=ne;function re(oe,ie,le,ae){let se=oe,ue=typeof oe=="string"?oe:oe.type,ce=typeof oe=="string"||se.namespace==null?[]:se.namespace.split(".");const de=le;if(de.nodeType===3||de.nodeType===8)return;ue.indexOf(".")>-1&&(ce=ue.split("."),ue=ce.shift(),ce.sort());const fe=ue.indexOf(":")<0&&`on${ue}`;se=oe instanceof EventObject?oe:new EventObject(ue,typeof oe=="object"?oe:null),se.namespace=ce.join("."),se.rnamespace=se.namespace?new RegExp(`(^|\\.)${ce.join("\\.(?:.*\\.|)")}(\\.|$)`):null,se.result=void 0,se.target||(se.target=de);const ve=[se];Array.isArray(ie)?ve.push(...ie):ve.push(ie);const he=EventHook.get(ue);if(!ae&&he.trigger&&he.trigger(de,se,ie)===!1)return;let pe;const ge=[de];if(!ae&&!he.noBubble&&!Util$2.isWindow(de)){pe=he.delegateType||ue;let _e=de,ye=de.parentNode;for(;ye!=null;)ge.push(ye),_e=ye,ye=ye.parentNode;const be=de.ownerDocument||document;if(_e===be){const xe=_e.defaultView||_e.parentWindow||window;ge.push(xe)}}let me=de;for(let _e=0,ye=ge.length;_e<ye&&!se.isPropagationStopped();_e+=1){const be=ge[_e];me=be,se.type=_e>1?pe:he.bindType||ue;const xe=Store$1.get(be);xe&&xe.events[se.type]&&xe.handler&&xe.handler.call(be,...ve);const Ce=fe&&be[fe]||null;Ce&&Util$2.isValidTarget(be)&&(se.result=Ce.call(be,...ve),se.result===!1&&se.preventDefault())}if(se.type=ue,!ae&&!se.isDefaultPrevented()){const _e=he.preventDefault;if((_e==null||_e(ge.pop(),se,ie)===!1)&&Util$2.isValidTarget(de)&&fe&&typeof de[ue]=="function"&&!Util$2.isWindow(de)){const ye=de[fe];ye&&(de[fe]=null),U=ue,se.isPropagationStopped()&&me.addEventListener(ue,Util$2.stopPropagationCallback),de[ue](),se.isPropagationStopped()&&me.removeEventListener(ue,Util$2.stopPropagationCallback),U=void 0,ye&&(de[fe]=ye)}}return se.result}te.trigger=re})(Core||(Core={}));var Event$1;(function(te){function U(re,oe,ie,le,ae){return Private$4.on(re,oe,ie,le,ae),re}te.on=U;function G(re,oe,ie,le,ae){return Private$4.on(re,oe,ie,le,ae,!0),re}te.once=G;function ee(re,oe,ie,le){return Private$4.off(re,oe,ie,le),re}te.off=ee;function ne(re,oe,ie,le){return Core.trigger(oe,ie,re,le),re}te.trigger=ne})(Event$1||(Event$1={}));var Private$4;(function(te){function U(ee,ne,re,oe,ie,le){if(typeof ne=="object"){typeof re!="string"&&(oe=oe||re,re=void 0),Object.keys(ne).forEach(ae=>U(ee,ae,re,oe,ne[ae],le));return}if(oe==null&&ie==null?(ie=re,oe=re=void 0):ie==null&&(typeof re=="string"?(ie=oe,oe=void 0):(ie=oe,oe=re,re=void 0)),ie===!1)ie=Util$2.returnFalse;else if(!ie)return;if(le){const ae=ie;ie=function(se,...ue){return te.off(ee,se),ae.call(this,se,...ue)},Util$2.setHandlerId(ie,Util$2.ensureHandlerId(ae))}Core.on(ee,ne,ie,oe,re)}te.on=U;function G(ee,ne,re,oe){const ie=ne;if(ie&&ie.preventDefault!=null&&ie.handleObj!=null){const le=ie.handleObj;G(ie.delegateTarget,le.namespace?`${le.originType}.${le.namespace}`:le.originType,le.selector,le.handler);return}if(typeof ne=="object"){const le=ne;Object.keys(le).forEach(ae=>G(ee,ae,re,le[ae]));return}(re===!1||typeof re=="function")&&(oe=re,re=void 0),oe===!1&&(oe=Util$2.returnFalse),Core.off(ee,ne,oe,re)}te.off=G})(Private$4||(Private$4={}));class MouseWheelHandle{constructor(U,G,ee){this.animationFrameId=0,this.deltaX=0,this.deltaY=0,this.eventName=Platform.isEventSupported("wheel")?"wheel":"mousewheel",this.target=U,this.onWheelCallback=G,this.onWheelGuard=ee,this.onWheel=this.onWheel.bind(this),this.didWheel=this.didWheel.bind(this)}enable(){this.target.addEventListener(this.eventName,this.onWheel,{passive:!1})}disable(){this.target.removeEventListener(this.eventName,this.onWheel)}onWheel(U){if(this.onWheelGuard!=null&&!this.onWheelGuard(U))return;this.deltaX+=U.deltaX,this.deltaY+=U.deltaY,U.preventDefault();let G;(this.deltaX!==0||this.deltaY!==0)&&(U.stopPropagation(),G=!0),G===!0&&this.animationFrameId===0&&(this.animationFrameId=requestAnimationFrame(()=>{this.didWheel(U)}))}didWheel(U){this.animationFrameId=0,this.onWheelCallback(U,this.deltaX,this.deltaY),this.deltaX=0,this.deltaY=0}}function offset$1(te){const U=te.getBoundingClientRect(),G=te.ownerDocument.defaultView;return{top:U.top+G.pageYOffset,left:U.left+G.pageXOffset}}function width(te){return te.getBoundingClientRect().width}function height(te){return te.getBoundingClientRect().height}function debounce(te,U=60){let G=null;return(...ee)=>{G&&clearTimeout(G),G=window.setTimeout(()=>{te.apply(this,ee)},U)}}function createSensor$2(te){let U=null,G=[];const ee=()=>{if(getComputedStyle(te).position==="static"){const ae=te.style;ae.position="relative"}const le=document.createElement("object");return le.onload=()=>{le.contentDocument.defaultView.addEventListener("resize",ne),ne()},le.style.display="block",le.style.position="absolute",le.style.top="0",le.style.left="0",le.style.height="100%",le.style.width="100%",le.style.overflow="hidden",le.style.pointerEvents="none",le.style.zIndex="-1",le.style.opacity="0",le.setAttribute("tabindex","-1"),le.type="text/html",te.appendChild(le),le.data="about:blank",le},ne=debounce(()=>{G.forEach(le=>le(te))}),re=le=>{U||(U=ee()),G.indexOf(le)===-1&&G.push(le)},oe=()=>{U&&U.parentNode&&(U.contentDocument&&U.contentDocument.defaultView.removeEventListener("resize",ne),U.parentNode.removeChild(U),U=null,G=[])};return{element:te,bind:re,destroy:oe,unbind:le=>{const ae=G.indexOf(le);ae!==-1&&G.splice(ae,1),G.length===0&&U&&oe()}}}function createSensor$1(te){let U=null,G=[];const ee=debounce(()=>{G.forEach(le=>{le(te)})}),ne=()=>{const le=new ResizeObserver(ee);return le.observe(te),ee(),le},re=le=>{U||(U=ne()),G.indexOf(le)===-1&&G.push(le)},oe=()=>{U&&(U.disconnect(),G=[],U=null)};return{element:te,bind:re,destroy:oe,unbind:le=>{const ae=G.indexOf(le);ae!==-1&&G.splice(ae,1),G.length===0&&U&&oe()}}}const createSensor=typeof ResizeObserver<"u"?createSensor$1:createSensor$2;var SizeSensor;(function(te){const U=new WeakMap;function G(ne){let re=U.get(ne);return re||(re=createSensor(ne),U.set(ne,re),re)}function ee(ne){ne.destroy(),U.delete(ne.element)}te.bind=(ne,re)=>{const oe=G(ne);return oe.bind(re),()=>oe.unbind(re)},te.clear=ne=>{const re=G(ne);ee(re)}})(SizeSensor||(SizeSensor={}));class PriorityQueue{constructor(U={}){this.comparator=U.comparator||PriorityQueue.defaultComparator,this.index={},this.data=U.data||[],this.heapify()}isEmpty(){return this.data.length===0}insert(U,G,ee){const ne={priority:U,value:G},re=this.data.length;return ee&&(ne.id=ee,this.index[ee]=re),this.data.push(ne),this.bubbleUp(re),this}peek(){return this.data[0]?this.data[0].value:null}peekPriority(){return this.data[0]?this.data[0].priority:null}updatePriority(U,G){const ee=this.index[U];if(typeof ee>"u")throw new Error(`Node with id '${U}' was not found in the heap.`);const ne=this.data,re=ne[ee].priority,oe=this.comparator(G,re);oe<0?(ne[ee].priority=G,this.bubbleUp(ee)):oe>0&&(ne[ee].priority=G,this.bubbleDown(ee))}remove(){const U=this.data,G=U[0],ee=U.pop();return G.id&&delete this.index[G.id],U.length>0&&(U[0]=ee,ee.id&&(this.index[ee.id]=0),this.bubbleDown(0)),G?G.value:null}heapify(){for(let U=0;U<this.data.length;U+=1)this.bubbleUp(U)}bubbleUp(U){const G=this.data;let ee,ne,re=U;for(;re>0&&(ne=re-1>>>1,this.comparator(G[re].priority,G[ne].priority)<0);){ee=G[ne],G[ne]=G[re];let oe=G[re].id;oe!=null&&(this.index[oe]=ne),G[re]=ee,oe=G[re].id,oe!=null&&(this.index[oe]=re),re=ne}}bubbleDown(U){const G=this.data,ee=G.length-1;let ne=U;for(;;){const re=(ne<<1)+1,oe=re+1;let ie=ne;if(re<=ee&&this.comparator(G[re].priority,G[ie].priority)<0&&(ie=re),oe<=ee&&this.comparator(G[oe].priority,G[ie].priority)<0&&(ie=oe),ie!==ne){const le=G[ie];G[ie]=G[ne];let ae=G[ne].id;ae!=null&&(this.index[ae]=ie),G[ne]=le,ae=G[ne].id,ae!=null&&(this.index[ae]=ne),ne=ie}else break}}}(function(te){te.defaultComparator=(U,G)=>U-G})(PriorityQueue||(PriorityQueue={}));var Dijkstra;(function(te){function U(G,ee,ne=(re,oe)=>1){const re={},oe={},ie={},le=new PriorityQueue;for(re[ee]=0,Object.keys(G).forEach(ae=>{ae!==ee&&(re[ae]=1/0),le.insert(re[ae],ae,ae)});!le.isEmpty();){const ae=le.remove();ie[ae]=!0;const se=G[ae]||[];for(let ue=0;ue<se.length;ue+=1){const ce=se[ue];if(!ie[ce]){const de=re[ae]+ne(ae,ce);de<re[ce]&&(re[ce]=de,oe[ce]=ae,le.updatePriority(ce,de))}}}return oe}te.run=U})(Dijkstra||(Dijkstra={}));class Color{constructor(U,G,ee,ne){if(U==null)return this.set(255,255,255,1);if(typeof U=="number")return this.set(U,G,ee,ne);if(typeof U=="string")return Color.fromString(U)||this;if(Array.isArray(U))return this.set(U);this.set(U.r,U.g,U.b,U.a==null?1:U.a)}blend(U,G,ee){this.set(U.r+(G.r-U.r)*ee,U.g+(G.g-U.g)*ee,U.b+(G.b-U.b)*ee,U.a+(G.a-U.a)*ee)}lighten(U){const G=Color.lighten(this.toArray(),U);this.r=G[0],this.g=G[1],this.b=G[2],this.a=G[3]}darken(U){this.lighten(-U)}set(U,G,ee,ne){const re=Array.isArray(U)?U[0]:U,oe=Array.isArray(U)?U[1]:G,ie=Array.isArray(U)?U[2]:ee,le=Array.isArray(U)?U[3]:ne;return this.r=Math.round(clamp(re,0,255)),this.g=Math.round(clamp(oe,0,255)),this.b=Math.round(clamp(ie,0,255)),this.a=le==null?1:clamp(le,0,1),this}toHex(){return`#${["r","g","b"].map(G=>{const ee=this[G].toString(16);return ee.length<2?`0${ee}`:ee}).join("")}`}toRGBA(){return this.toArray()}toHSLA(){return Color.rgba2hsla(this.r,this.g,this.b,this.a)}toCSS(U){const G=`${this.r},${this.g},${this.b},`;return U?`rgb(${G})`:`rgba(${G},${this.a})`}toGrey(){return Color.makeGrey(Math.round((this.r+this.g+this.b)/3),this.a)}toArray(){return[this.r,this.g,this.b,this.a]}toString(){return this.toCSS()}}(function(te){function U(me){return new te(me)}te.fromArray=U;function G(me){return new te([...fe(me),1])}te.fromHex=G;function ee(me){const _e=me.toLowerCase().match(/^rgba?\(([\s.,0-9]+)\)/);if(_e){const ye=_e[1].split(/\s*,\s*/).map(be=>parseInt(be,10));return new te(ye)}return null}te.fromRGBA=ee;function ne(me,_e,ye){ye<0&&++ye,ye>1&&--ye;const be=6*ye;return be<1?me+(_e-me)*be:2*ye<1?_e:3*ye<2?me+(_e-me)*(2/3-ye)*6:me}function re(me){const _e=me.toLowerCase().match(/^hsla?\(([\s.,0-9]+)\)/);if(_e){const ye=_e[2].split(/\s*,\s*/),be=(parseFloat(ye[0])%360+360)%360/360,xe=parseFloat(ye[1])/100,Ce=parseFloat(ye[2])/100,$e=ye[3]==null?1:parseInt(ye[3],10);return new te(ae(be,xe,Ce,$e))}return null}te.fromHSLA=re;function oe(me){if(me.startsWith("#"))return G(me);if(me.startsWith("rgb"))return ee(me);const _e=te.named[me];return _e?G(_e):re(me)}te.fromString=oe;function ie(me,_e){return te.fromArray([me,me,me,_e])}te.makeGrey=ie;function le(me,_e,ye,be){const xe=Array.isArray(me)?me[0]:me,Ce=Array.isArray(me)?me[1]:_e,$e=Array.isArray(me)?me[2]:ye,Ee=Array.isArray(me)?me[3]:be,Ve=Math.max(xe,Ce,$e),Ne=Math.min(xe,Ce,$e),Se=(Ve+Ne)/2;let Pe=0,we=0;if(Ne!==Ve){const ke=Ve-Ne;switch(we=Se>.5?ke/(2-Ve-Ne):ke/(Ve+Ne),Ve){case xe:Pe=(Ce-$e)/ke+(Ce<$e?6:0);break;case Ce:Pe=($e-xe)/ke+2;break;case $e:Pe=(xe-Ce)/ke+4;break}Pe/=6}return[Pe,we,Se,Ee??1]}te.rgba2hsla=le;function ae(me,_e,ye,be){const xe=Array.isArray(me)?me[0]:me,Ce=Array.isArray(me)?me[1]:_e,$e=Array.isArray(me)?me[2]:ye,Ee=Array.isArray(me)?me[3]:be,Ve=$e<=.5?$e*(Ce+1):$e+Ce-$e*Ce,Ne=2*$e-Ve;return[ne(Ne,Ve,xe+1/3)*256,ne(Ne,Ve,xe)*256,ne(Ne,Ve,xe-1/3)*256,Ee??1]}te.hsla2rgba=ae;function se(me){return new te(Math.round(Math.random()*256),Math.round(Math.random()*256),Math.round(Math.random()*256),me?void 0:parseFloat(Math.random().toFixed(2)))}te.random=se;function ue(){const me="0123456789ABCDEF";let _e="#";for(let ye=0;ye<6;ye+=1)_e+=me[Math.floor(Math.random()*16)];return _e}te.randomHex=ue;function ce(me){return se(me).toString()}te.randomRGBA=ce;function de(me,_e){if(typeof me=="string"){const $e=me[0]==="#",[Ee,Ve,Ne]=fe(me);return _e?Ee*.299+Ve*.587+Ne*.114>186?"#000000":"#ffffff":`${$e?"#":""}${ve(255-Ee,255-Ve,255-Ne)}`}const ye=me[0],be=me[1],xe=me[2],Ce=me[3];return _e?ye*.299+be*.587+xe*.114>186?[0,0,0,Ce]:[255,255,255,Ce]:[255-ye,255-be,255-xe,Ce]}te.invert=de;function fe(me){const _e=me.indexOf("#")===0?me:`#${me}`;let ye=+`0x${_e.substr(1)}`;if(!(_e.length===4||_e.length===7)||Number.isNaN(ye))throw new Error("Invalid hex color.");const be=_e.length===4?4:8,xe=(1<<be)-1,Ce=["b","g","r"].map(()=>{const $e=ye&xe;return ye>>=be,be===4?17*$e:$e});return[Ce[2],Ce[1],Ce[0]]}function ve(me,_e,ye){const be=xe=>xe.length<2?`0${xe}`:xe;return`${be(me.toString(16))}${be(_e.toString(16))}${be(ye.toString(16))}`}function he(me,_e){return ge(me,_e)}te.lighten=he;function pe(me,_e){return ge(me,-_e)}te.darken=pe;function ge(me,_e){if(typeof me=="string"){const xe=me[0]==="#",Ce=parseInt(xe?me.substr(1):me,16),$e=clamp((Ce>>16)+_e,0,255),Ee=clamp((Ce>>8&255)+_e,0,255),Ve=clamp((Ce&255)+_e,0,255);return`${xe?"#":""}${(Ve|Ee<<8|$e<<16).toString(16)}`}const ye=ve(me[0],me[1],me[2]),be=fe(ge(ye,_e));return[be[0],be[1],be[2],me[3]]}})(Color||(Color={})),function(te){te.named={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",burntsienna:"#ea7e5d",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}}(Color||(Color={}));class Dictionary{constructor(){this.clear()}clear(){this.map=new WeakMap,this.arr=[]}has(U){return this.map.has(U)}get(U){return this.map.get(U)}set(U,G){this.map.set(U,G),this.arr.push(U)}delete(U){const G=this.arr.indexOf(U);G>=0&&this.arr.splice(G,1);const ee=this.map.get(U);return this.map.delete(U),ee}each(U){this.arr.forEach(G=>{const ee=this.map.get(G);U(ee,G)})}dispose(){this.clear()}}var ModifierKey;(function(te){function U(ne){const re=[],oe=[];return Array.isArray(ne)?re.push(...ne):ne.split("|").forEach(ie=>{ie.indexOf("&")===-1?re.push(ie):oe.push(...ie.split("&"))}),{or:re,and:oe}}te.parse=U;function G(ne,re){if(ne!=null&&re!=null){const oe=U(ne),ie=U(re),le=oe.or.sort(),ae=ie.or.sort(),se=oe.and.sort(),ue=ie.and.sort(),ce=(de,fe)=>de.length===fe.length&&(de.length===0||de.every((ve,he)=>ve===fe[he]));return ce(le,ae)&&ce(se,ue)}return ne==null&&re==null}te.equals=G;function ee(ne,re,oe){if(re==null||Array.isArray(re)&&re.length===0)return oe?ne.altKey!==!0&&ne.ctrlKey!==!0&&ne.metaKey!==!0&&ne.shiftKey!==!0:!0;const{or:ie,and:le}=U(re),ae=se=>{const ue=`${se.toLowerCase()}Key`;return ne[ue]===!0};return ie.some(se=>ae(se))&&le.every(se=>ae(se))}te.isMatch=ee})(ModifierKey||(ModifierKey={}));var Timing;(function(te){te.linear=U=>U,te.quad=U=>U*U,te.cubic=U=>U*U*U,te.inout=U=>{if(U<=0)return 0;if(U>=1)return 1;const G=U*U,ee=G*U;return 4*(U<.5?ee:3*(U-G)+ee-.75)},te.exponential=U=>Math.pow(2,10*(U-1)),te.bounce=U=>{for(let G=0,ee=1;;G+=ee,ee/=2)if(U>=(7-4*G)/11){const ne=(11-6*G-11*U)/4;return-ne*ne+ee*ee}}})(Timing||(Timing={})),function(te){te.decorators={reverse(U){return G=>1-U(1-G)},reflect(U){return G=>.5*(G<.5?U(2*G):2-U(2-2*G))},clamp(U,G=0,ee=1){return ne=>{const re=U(ne);return re<G?G:re>ee?ee:re}},back(U=1.70158){return G=>G*G*((U+1)*G-U)},elastic(U=1.5){return G=>Math.pow(2,10*(G-1))*Math.cos(20*Math.PI*U/3*G)}}}(Timing||(Timing={})),function(te){function U(we){return-1*Math.cos(we*(Math.PI/2))+1}te.easeInSine=U;function G(we){return Math.sin(we*(Math.PI/2))}te.easeOutSine=G;function ee(we){return-.5*(Math.cos(Math.PI*we)-1)}te.easeInOutSine=ee;function ne(we){return we*we}te.easeInQuad=ne;function re(we){return we*(2-we)}te.easeOutQuad=re;function oe(we){return we<.5?2*we*we:-1+(4-2*we)*we}te.easeInOutQuad=oe;function ie(we){return we*we*we}te.easeInCubic=ie;function le(we){const ke=we-1;return ke*ke*ke+1}te.easeOutCubic=le;function ae(we){return we<.5?4*we*we*we:(we-1)*(2*we-2)*(2*we-2)+1}te.easeInOutCubic=ae;function se(we){return we*we*we*we}te.easeInQuart=se;function ue(we){const ke=we-1;return 1-ke*ke*ke*ke}te.easeOutQuart=ue;function ce(we){const ke=we-1;return we<.5?8*we*we*we*we:1-8*ke*ke*ke*ke}te.easeInOutQuart=ce;function de(we){return we*we*we*we*we}te.easeInQuint=de;function fe(we){const ke=we-1;return 1+ke*ke*ke*ke*ke}te.easeOutQuint=fe;function ve(we){const ke=we-1;return we<.5?16*we*we*we*we*we:1+16*ke*ke*ke*ke*ke}te.easeInOutQuint=ve;function he(we){return we===0?0:Math.pow(2,10*(we-1))}te.easeInExpo=he;function pe(we){return we===1?1:-Math.pow(2,-10*we)+1}te.easeOutExpo=pe;function ge(we){if(we===0||we===1)return we;const ke=we*2,Te=ke-1;return ke<1?.5*Math.pow(2,10*Te):.5*(-Math.pow(2,-10*Te)+2)}te.easeInOutExpo=ge;function me(we){const ke=we/1;return-1*(Math.sqrt(1-ke*we)-1)}te.easeInCirc=me;function _e(we){const ke=we-1;return Math.sqrt(1-ke*ke)}te.easeOutCirc=_e;function ye(we){const ke=we*2,Te=ke-2;return ke<1?-.5*(Math.sqrt(1-ke*ke)-1):.5*(Math.sqrt(1-Te*Te)+1)}te.easeInOutCirc=ye;function be(we,ke=1.70158){return we*we*((ke+1)*we-ke)}te.easeInBack=be;function xe(we,ke=1.70158){const Te=we/1-1;return Te*Te*((ke+1)*Te+ke)+1}te.easeOutBack=xe;function Ce(we,ke=1.70158){const Te=we*2,De=Te-2,Ie=ke*1.525;return Te<1?.5*Te*Te*((Ie+1)*Te-Ie):.5*(De*De*((Ie+1)*De+Ie)+2)}te.easeInOutBack=Ce;function $e(we,ke=.7){if(we===0||we===1)return we;const De=we/1-1,Ie=1-ke,Me=Ie/(2*Math.PI)*Math.asin(1);return-(Math.pow(2,10*De)*Math.sin((De-Me)*(2*Math.PI)/Ie))}te.easeInElastic=$e;function Ee(we,ke=.7){const Te=1-ke,De=we*2;if(we===0||we===1)return we;const Ie=Te/(2*Math.PI)*Math.asin(1);return Math.pow(2,-10*De)*Math.sin((De-Ie)*(2*Math.PI)/Te)+1}te.easeOutElastic=Ee;function Ve(we,ke=.65){const Te=1-ke;if(we===0||we===1)return we;const De=we*2,Ie=De-1,Me=Te/(2*Math.PI)*Math.asin(1);return De<1?-.5*(Math.pow(2,10*Ie)*Math.sin((Ie-Me)*(2*Math.PI)/Te)):Math.pow(2,-10*Ie)*Math.sin((Ie-Me)*(2*Math.PI)/Te)*.5+1}te.easeInOutElastic=Ve;function Ne(we){const ke=we/1;if(ke<1/2.75)return 7.5625*ke*ke;if(ke<2/2.75){const Te=ke-.5454545454545454;return 7.5625*Te*Te+.75}if(ke<2.5/2.75){const Te=ke-.8181818181818182;return 7.5625*Te*Te+.9375}{const Te=ke-.9545454545454546;return 7.5625*Te*Te+.984375}}te.easeOutBounce=Ne;function Se(we){return 1-Ne(1-we)}te.easeInBounce=Se;function Pe(we){return we<.5?Se(we*2)*.5:Ne(we*2-1)*.5+.5}te.easeInOutBounce=Pe}(Timing||(Timing={}));var Interp;(function(te){te.number=(U,G)=>{const ee=G-U;return ne=>U+ee*ne},te.object=(U,G)=>{const ee=Object.keys(U);return ne=>{const re={};for(let oe=ee.length-1;oe!==-1;oe-=1){const ie=ee[oe];re[ie]=U[ie]+(G[ie]-U[ie])*ne}return re}},te.unit=(U,G)=>{const ee=/(-?[0-9]*.[0-9]*)(px|em|cm|mm|in|pt|pc|%)/,ne=ee.exec(U),re=ee.exec(G),oe=re?re[1]:"",ie=ne?+ne[1]:0,le=re?+re[1]:0,ae=oe.indexOf("."),se=ae>0?oe[1].length-ae-1:0,ue=le-ie,ce=ne?ne[2]:"";return de=>(ie+ue*de).toFixed(se)+ce},te.color=(U,G)=>{const ee=parseInt(U.slice(1),16),ne=parseInt(G.slice(1),16),re=ee&255,oe=(ne&255)-re,ie=ee&65280,le=(ne&65280)-ie,ae=ee&16711680,se=(ne&16711680)-ae;return ue=>{const ce=re+oe*ue&255,de=ie+le*ue&65280,fe=ae+se*ue&16711680;return`#${(1<<24|ce|de|fe).toString(16).slice(1)}`}}})(Interp||(Interp={}));const cssModules=[];function ensure(te,U){const G=cssModules.find(ee=>ee.name===te);if(!(G&&(G.loadTimes+=1,G.loadTimes>1))&&!Platform.isApplyingHMR()){const ee=document.createElement("style");ee.setAttribute("type","text/css"),ee.textContent=U;const ne=document.querySelector("head");ne&&ne.insertBefore(ee,ne.firstChild),cssModules.push({name:te,loadTimes:1,styleElement:ee})}}function clean(te){const U=cssModules.findIndex(G=>G.name===te);if(U>-1){const G=cssModules[U];if(G.loadTimes-=1,G.loadTimes>0)return;let ee=G.styleElement;ee&&ee.parentNode&&ee.parentNode.removeChild(ee),ee=null,cssModules.splice(U,1)}}var Angle;(function(te){function U(ee){return 180*ee/Math.PI%360}te.toDeg=U,te.toRad=function(ee,ne=!1){return(ne?ee:ee%360)*Math.PI/180};function G(ee){return ee%360+(ee<0?360:0)}te.normalize=G})(Angle||(Angle={}));var GeometryUtil;(function(te){function U(ie,le=0){return Number.isInteger(ie)?ie:+ie.toFixed(le)}te.round=U;function G(ie,le){let ae,se;if(le==null?(se=ie??1,ae=0):(se=le,ae=ie??0),se<ae){const ue=ae;ae=se,se=ue}return Math.floor(Math.random()*(se-ae+1)+ae)}te.random=G;function ee(ie,le,ae){return Number.isNaN(ie)?NaN:Number.isNaN(le)||Number.isNaN(ae)?0:le<ae?ie<le?le:ie>ae?ae:ie:ie<ae?ae:ie>le?le:ie}te.clamp=ee;function ne(ie,le){return le*Math.round(ie/le)}te.snapToGrid=ne;function re(ie,le){return le!=null&&ie!=null&&le.x>=ie.x&&le.x<=ie.x+ie.width&&le.y>=ie.y&&le.y<=ie.y+ie.height}te.containsPoint=re;function oe(ie,le){const ae=ie.x-le.x,se=ie.y-le.y;return ae*ae+se*se}te.squaredLength=oe})(GeometryUtil||(GeometryUtil={}));class Geometry{valueOf(){return this.toJSON()}toString(){return JSON.stringify(this.toJSON())}}class Point extends Geometry{constructor(U,G){super(),this.x=U??0,this.y=G??0}round(U=0){return this.x=GeometryUtil.round(this.x,U),this.y=GeometryUtil.round(this.y,U),this}add(U,G){const ee=Point.create(U,G);return this.x+=ee.x,this.y+=ee.y,this}update(U,G){const ee=Point.create(U,G);return this.x=ee.x,this.y=ee.y,this}translate(U,G){const ee=Point.create(U,G);return this.x+=ee.x,this.y+=ee.y,this}rotate(U,G){const ee=Point.rotate(this,U,G);return this.x=ee.x,this.y=ee.y,this}scale(U,G,ee=new Point){const ne=Point.create(ee);return this.x=ne.x+U*(this.x-ne.x),this.y=ne.y+G*(this.y-ne.y),this}closest(U){if(U.length===1)return Point.create(U[0]);let G=null,ee=1/0;return U.forEach(ne=>{const re=this.squaredDistance(ne);re<ee&&(G=ne,ee=re)}),G?Point.create(G):null}distance(U){return Math.sqrt(this.squaredDistance(U))}squaredDistance(U){const G=Point.create(U),ee=this.x-G.x,ne=this.y-G.y;return ee*ee+ne*ne}manhattanDistance(U){const G=Point.create(U);return Math.abs(G.x-this.x)+Math.abs(G.y-this.y)}magnitude(){return Math.sqrt(this.x*this.x+this.y*this.y)||.01}theta(U=new Point){const G=Point.create(U),ee=-(G.y-this.y),ne=G.x-this.x;let re=Math.atan2(ee,ne);return re<0&&(re=2*Math.PI+re),180*re/Math.PI}angleBetween(U,G){if(this.equals(U)||this.equals(G))return NaN;let ee=this.theta(G)-this.theta(U);return ee<0&&(ee+=360),ee}vectorAngle(U){return new Point(0,0).angleBetween(this,U)}toPolar(U){return this.update(Point.toPolar(this,U)),this}changeInAngle(U,G,ee=new Point){return this.clone().translate(-U,-G).theta(ee)-this.theta(ee)}adhereToRect(U){return GeometryUtil.containsPoint(U,this)||(this.x=Math.min(Math.max(this.x,U.x),U.x+U.width),this.y=Math.min(Math.max(this.y,U.y),U.y+U.height)),this}bearing(U){const G=Point.create(U),ee=Angle.toRad(this.y),ne=Angle.toRad(G.y),re=this.x,oe=G.x,ie=Angle.toRad(oe-re),le=Math.sin(ie)*Math.cos(ne),ae=Math.cos(ee)*Math.sin(ne)-Math.sin(ee)*Math.cos(ne)*Math.cos(ie),se=Angle.toDeg(Math.atan2(le,ae)),ue=["NE","E","SE","S","SW","W","NW","N"];let ce=se-22.5;return ce<0&&(ce+=360),ce=parseInt(ce/45,10),ue[ce]}cross(U,G){if(U!=null&&G!=null){const ee=Point.create(U),ne=Point.create(G);return(ne.x-this.x)*(ee.y-this.y)-(ne.y-this.y)*(ee.x-this.x)}return NaN}dot(U){const G=Point.create(U);return this.x*G.x+this.y*G.y}diff(U,G){if(typeof U=="number")return new Point(this.x-U,this.y-G);const ee=Point.create(U);return new Point(this.x-ee.x,this.y-ee.y)}lerp(U,G){const ee=Point.create(U);return new Point((1-G)*this.x+G*ee.x,(1-G)*this.y+G*ee.y)}normalize(U=1){const G=U/this.magnitude();return this.scale(G,G)}move(U,G){const ee=Point.create(U),ne=Angle.toRad(ee.theta(this));return this.translate(Math.cos(ne)*G,-Math.sin(ne)*G)}reflection(U){return Point.create(U).move(this,this.distance(U))}snapToGrid(U,G){return this.x=GeometryUtil.snapToGrid(this.x,U),this.y=GeometryUtil.snapToGrid(this.y,G??U),this}equals(U){const G=Point.create(U);return G!=null&&G.x===this.x&&G.y===this.y}clone(){return Point.clone(this)}toJSON(){return Point.toJSON(this)}serialize(){return`${this.x} ${this.y}`}}(function(te){function U(G){return G!=null&&G instanceof te}te.isPoint=U})(Point||(Point={})),function(te){function U(ee){return ee!=null&&typeof ee=="object"&&typeof ee.x=="number"&&typeof ee.y=="number"}te.isPointLike=U;function G(ee){return ee!=null&&Array.isArray(ee)&&ee.length===2&&typeof ee[0]=="number"&&typeof ee[1]=="number"}te.isPointData=G}(Point||(Point={})),function(te){function U(ue,ce){return ue==null||typeof ue=="number"?new te(ue,ce):G(ue)}te.create=U;function G(ue){return te.isPoint(ue)?new te(ue.x,ue.y):Array.isArray(ue)?new te(ue[0],ue[1]):new te(ue.x,ue.y)}te.clone=G;function ee(ue){return te.isPoint(ue)?{x:ue.x,y:ue.y}:Array.isArray(ue)?{x:ue[0],y:ue[1]}:{x:ue.x,y:ue.y}}te.toJSON=ee;function ne(ue,ce,de=new te){let fe=Math.abs(ue*Math.cos(ce)),ve=Math.abs(ue*Math.sin(ce));const he=G(de),pe=Angle.normalize(Angle.toDeg(ce));return pe<90?ve=-ve:pe<180?(fe=-fe,ve=-ve):pe<270&&(fe=-fe),new te(he.x+fe,he.y+ve)}te.fromPolar=ne;function re(ue,ce=new te){const de=G(ue),fe=G(ce),ve=de.x-fe.x,he=de.y-fe.y;return new te(Math.sqrt(ve*ve+he*he),Angle.toRad(fe.theta(de)))}te.toPolar=re;function oe(ue,ce){return ue===ce?!0:ue!=null&&ce!=null?ue.x===ce.x&&ue.y===ce.y:!1}te.equals=oe;function ie(ue,ce){if(ue==null&&ce!=null||ue!=null&&ce==null||ue!=null&&ce!=null&&ue.length!==ce.length)return!1;if(ue!=null&&ce!=null){for(let de=0,fe=ue.length;de<fe;de+=1)if(!oe(ue[de],ce[de]))return!1}return!0}te.equalPoints=ie;function le(ue,ce,de,fe){return new te(GeometryUtil.random(ue,ce),GeometryUtil.random(de,fe))}te.random=le;function ae(ue,ce,de){const fe=Angle.toRad(Angle.normalize(-ce)),ve=Math.sin(fe),he=Math.cos(fe);return se(ue,he,ve,de)}te.rotate=ae;function se(ue,ce,de,fe=new te){const ve=G(ue),he=G(fe),pe=ve.x-he.x,ge=ve.y-he.y,me=pe*ce-ge*de,_e=ge*ce+pe*de;return new te(me+he.x,_e+he.y)}te.rotateEx=se}(Point||(Point={}));class Rectangle extends Geometry{get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get origin(){return new Point(this.x,this.y)}get topLeft(){return new Point(this.x,this.y)}get topCenter(){return new Point(this.x+this.width/2,this.y)}get topRight(){return new Point(this.x+this.width,this.y)}get center(){return new Point(this.x+this.width/2,this.y+this.height/2)}get bottomLeft(){return new Point(this.x,this.y+this.height)}get bottomCenter(){return new Point(this.x+this.width/2,this.y+this.height)}get bottomRight(){return new Point(this.x+this.width,this.y+this.height)}get corner(){return new Point(this.x+this.width,this.y+this.height)}get rightMiddle(){return new Point(this.x+this.width,this.y+this.height/2)}get leftMiddle(){return new Point(this.x,this.y+this.height/2)}get topLine(){return new Line(this.topLeft,this.topRight)}get rightLine(){return new Line(this.topRight,this.bottomRight)}get bottomLine(){return new Line(this.bottomLeft,this.bottomRight)}get leftLine(){return new Line(this.topLeft,this.bottomLeft)}constructor(U,G,ee,ne){super(),this.x=U??0,this.y=G??0,this.width=ee??0,this.height=ne??0}getOrigin(){return this.origin}getTopLeft(){return this.topLeft}getTopCenter(){return this.topCenter}getTopRight(){return this.topRight}getCenter(){return this.center}getCenterX(){return this.x+this.width/2}getCenterY(){return this.y+this.height/2}getBottomLeft(){return this.bottomLeft}getBottomCenter(){return this.bottomCenter}getBottomRight(){return this.bottomRight}getCorner(){return this.corner}getRightMiddle(){return this.rightMiddle}getLeftMiddle(){return this.leftMiddle}getTopLine(){return this.topLine}getRightLine(){return this.rightLine}getBottomLine(){return this.bottomLine}getLeftLine(){return this.leftLine}bbox(U){if(!U)return this.clone();const G=Angle.toRad(U),ee=Math.abs(Math.sin(G)),ne=Math.abs(Math.cos(G)),re=this.width*ne+this.height*ee,oe=this.width*ee+this.height*ne;return new Rectangle(this.x+(this.width-re)/2,this.y+(this.height-oe)/2,re,oe)}round(U=0){return this.x=GeometryUtil.round(this.x,U),this.y=GeometryUtil.round(this.y,U),this.width=GeometryUtil.round(this.width,U),this.height=GeometryUtil.round(this.height,U),this}add(U,G,ee,ne){const re=Rectangle.create(U,G,ee,ne),oe=Math.min(this.x,re.x),ie=Math.min(this.y,re.y),le=Math.max(this.x+this.width,re.x+re.width),ae=Math.max(this.y+this.height,re.y+re.height);return this.x=oe,this.y=ie,this.width=le-oe,this.height=ae-ie,this}update(U,G,ee,ne){const re=Rectangle.create(U,G,ee,ne);return this.x=re.x,this.y=re.y,this.width=re.width,this.height=re.height,this}inflate(U,G){const ee=U,ne=G??U;return this.x-=ee,this.y-=ne,this.width+=2*ee,this.height+=2*ne,this}snapToGrid(U,G){const ee=this.origin.snapToGrid(U,G),ne=this.corner.snapToGrid(U,G);return this.x=ee.x,this.y=ee.y,this.width=ne.x-ee.x,this.height=ne.y-ee.y,this}translate(U,G){const ee=Point.create(U,G);return this.x+=ee.x,this.y+=ee.y,this}scale(U,G,ee=new Point){const ne=this.origin.scale(U,G,ee);return this.x=ne.x,this.y=ne.y,this.width*=U,this.height*=G,this}rotate(U,G=this.getCenter()){if(U!==0){const ee=Angle.toRad(U),ne=Math.cos(ee),re=Math.sin(ee);let oe=this.getOrigin(),ie=this.getTopRight(),le=this.getBottomRight(),ae=this.getBottomLeft();oe=Point.rotateEx(oe,ne,re,G),ie=Point.rotateEx(ie,ne,re,G),le=Point.rotateEx(le,ne,re,G),ae=Point.rotateEx(ae,ne,re,G);const se=new Rectangle(oe.x,oe.y,0,0);se.add(ie.x,ie.y,0,0),se.add(le.x,le.y,0,0),se.add(ae.x,ae.y,0,0),this.update(se)}return this}rotate90(){const U=(this.width-this.height)/2;this.x+=U,this.y-=U;const G=this.width;return this.width=this.height,this.height=G,this}moveAndExpand(U){const G=Rectangle.clone(U);return this.x+=G.x||0,this.y+=G.y||0,this.width+=G.width||0,this.height+=G.height||0,this}getMaxScaleToFit(U,G=this.center){const ee=Rectangle.clone(U),ne=G.x,re=G.y;let oe=1/0,ie=1/0,le=1/0,ae=1/0,se=1/0,ue=1/0,ce=1/0,de=1/0;const fe=ee.topLeft;fe.x<ne&&(oe=(this.x-ne)/(fe.x-ne)),fe.y<re&&(se=(this.y-re)/(fe.y-re));const ve=ee.bottomRight;ve.x>ne&&(ie=(this.x+this.width-ne)/(ve.x-ne)),ve.y>re&&(ue=(this.y+this.height-re)/(ve.y-re));const he=ee.topRight;he.x>ne&&(le=(this.x+this.width-ne)/(he.x-ne)),he.y<re&&(ce=(this.y-re)/(he.y-re));const pe=ee.bottomLeft;return pe.x<ne&&(ae=(this.x-ne)/(pe.x-ne)),pe.y>re&&(de=(this.y+this.height-re)/(pe.y-re)),{sx:Math.min(oe,ie,le,ae),sy:Math.min(se,ue,ce,de)}}getMaxUniformScaleToFit(U,G=this.center){const ee=this.getMaxScaleToFit(U,G);return Math.min(ee.sx,ee.sy)}containsPoint(U,G){return GeometryUtil.containsPoint(this,Point.create(U,G))}containsRect(U,G,ee,ne){const re=Rectangle.create(U,G,ee,ne),oe=this.x,ie=this.y,le=this.width,ae=this.height,se=re.x,ue=re.y,ce=re.width,de=re.height;return le===0||ae===0||ce===0||de===0?!1:se>=oe&&ue>=ie&&se+ce<=oe+le&&ue+de<=ie+ae}intersectsWithLine(U){const G=[this.topLine,this.rightLine,this.bottomLine,this.leftLine],ee=[],ne=[];return G.forEach(re=>{const oe=U.intersectsWithLine(re);oe!==null&&ne.indexOf(oe.toString())<0&&(ee.push(oe),ne.push(oe.toString()))}),ee.length>0?ee:null}intersectsWithLineFromCenterToPoint(U,G){const ee=Point.clone(U),ne=this.center;let re=null;G!=null&&G!==0&&ee.rotate(G,ne);const oe=[this.topLine,this.rightLine,this.bottomLine,this.leftLine],ie=new Line(ne,ee);for(let le=oe.length-1;le>=0;le-=1){const ae=oe[le].intersectsWithLine(ie);if(ae!==null){re=ae;break}}return re&&G!=null&&G!==0&&re.rotate(-G,ne),re}intersectsWithRect(U,G,ee,ne){const re=Rectangle.create(U,G,ee,ne);if(!this.isIntersectWithRect(re))return null;const oe=this.origin,ie=this.corner,le=re.origin,ae=re.corner,se=Math.max(oe.x,le.x),ue=Math.max(oe.y,le.y);return new Rectangle(se,ue,Math.min(ie.x,ae.x)-se,Math.min(ie.y,ae.y)-ue)}isIntersectWithRect(U,G,ee,ne){const re=Rectangle.create(U,G,ee,ne),oe=this.origin,ie=this.corner,le=re.origin,ae=re.corner;return!(ae.x<=oe.x||ae.y<=oe.y||le.x>=ie.x||le.y>=ie.y)}normalize(){let U=this.x,G=this.y,ee=this.width,ne=this.height;return this.width<0&&(U=this.x+this.width,ee=-this.width),this.height<0&&(G=this.y+this.height,ne=-this.height),this.x=U,this.y=G,this.width=ee,this.height=ne,this}union(U){const G=Rectangle.clone(U),ee=this.origin,ne=this.corner,re=G.origin,oe=G.corner,ie=Math.min(ee.x,re.x),le=Math.min(ee.y,re.y),ae=Math.max(ne.x,oe.x),se=Math.max(ne.y,oe.y);return new Rectangle(ie,le,ae-ie,se-le)}getNearestSideToPoint(U){const G=Point.clone(U),ee=G.x-this.x,ne=this.x+this.width-G.x,re=G.y-this.y,oe=this.y+this.height-G.y;let ie=ee,le="left";return ne<ie&&(ie=ne,le="right"),re<ie&&(ie=re,le="top"),oe<ie&&(le="bottom"),le}getNearestPointToPoint(U){const G=Point.clone(U);if(this.containsPoint(G)){const ee=this.getNearestSideToPoint(G);if(ee==="left")return new Point(this.x,G.y);if(ee==="top")return new Point(G.x,this.y);if(ee==="right")return new Point(this.x+this.width,G.y);if(ee==="bottom")return new Point(G.x,this.y+this.height)}return G.adhereToRect(this)}equals(U){return U!=null&&U.x===this.x&&U.y===this.y&&U.width===this.width&&U.height===this.height}clone(){return new Rectangle(this.x,this.y,this.width,this.height)}toJSON(){return{x:this.x,y:this.y,width:this.width,height:this.height}}serialize(){return`${this.x} ${this.y} ${this.width} ${this.height}`}}(function(te){function U(G){return G!=null&&G instanceof te}te.isRectangle=U})(Rectangle||(Rectangle={})),function(te){function U(G){return G!=null&&typeof G=="object"&&typeof G.x=="number"&&typeof G.y=="number"&&typeof G.width=="number"&&typeof G.height=="number"}te.isRectangleLike=U}(Rectangle||(Rectangle={})),function(te){function U(oe,ie,le,ae){return oe==null||typeof oe=="number"?new te(oe,ie,le,ae):G(oe)}te.create=U;function G(oe){return te.isRectangle(oe)?oe.clone():Array.isArray(oe)?new te(oe[0],oe[1],oe[2],oe[3]):new te(oe.x,oe.y,oe.width,oe.height)}te.clone=G;function ee(oe){return new te(oe.x-oe.a,oe.y-oe.b,2*oe.a,2*oe.b)}te.fromEllipse=ee;function ne(oe){return new te(0,0,oe.width,oe.height)}te.fromSize=ne;function re(oe,ie){return new te(oe.x,oe.y,ie.width,ie.height)}te.fromPositionAndSize=re}(Rectangle||(Rectangle={}));class Line extends Geometry{get center(){return new Point((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2)}constructor(U,G,ee,ne){super(),typeof U=="number"&&typeof G=="number"?(this.start=new Point(U,G),this.end=new Point(ee,ne)):(this.start=Point.create(U),this.end=Point.create(G))}getCenter(){return this.center}round(U=0){return this.start.round(U),this.end.round(U),this}translate(U,G){return typeof U=="number"?(this.start.translate(U,G),this.end.translate(U,G)):(this.start.translate(U),this.end.translate(U)),this}rotate(U,G){return this.start.rotate(U,G),this.end.rotate(U,G),this}scale(U,G,ee){return this.start.scale(U,G,ee),this.end.scale(U,G,ee),this}length(){return Math.sqrt(this.squaredLength())}squaredLength(){const U=this.start.x-this.end.x,G=this.start.y-this.end.y;return U*U+G*G}setLength(U){const G=this.length();if(!G)return this;const ee=U/G;return this.scale(ee,ee,this.start)}parallel(U){const G=this.clone();if(!G.isDifferentiable())return G;const{start:ee,end:ne}=G,re=ee.clone().rotate(270,ne),oe=ne.clone().rotate(90,ee);return ee.move(oe,U),ne.move(re,U),G}vector(){return new Point(this.end.x-this.start.x,this.end.y-this.start.y)}angle(){const U=new Point(this.start.x+1,this.start.y);return this.start.angleBetween(this.end,U)}bbox(){const U=Math.min(this.start.x,this.end.x),G=Math.min(this.start.y,this.end.y),ee=Math.max(this.start.x,this.end.x),ne=Math.max(this.start.y,this.end.y);return new Rectangle(U,G,ee-U,ne-G)}bearing(){return this.start.bearing(this.end)}closestPoint(U){return this.pointAt(this.closestPointNormalizedLength(U))}closestPointLength(U){return this.closestPointNormalizedLength(U)*this.length()}closestPointTangent(U){return this.tangentAt(this.closestPointNormalizedLength(U))}closestPointNormalizedLength(U){const G=this.vector().dot(new Line(this.start,U).vector()),ee=Math.min(1,Math.max(0,G/this.squaredLength()));return Number.isNaN(ee)?0:ee}pointAt(U){const G=this.start,ee=this.end;return U<=0?G.clone():U>=1?ee.clone():G.lerp(ee,U)}pointAtLength(U){const G=this.start,ee=this.end;let ne=!0;U<0&&(ne=!1,U=-U);const re=this.length();if(U>=re)return ne?ee.clone():G.clone();const oe=(ne?U:re-U)/re;return this.pointAt(oe)}divideAt(U){const G=this.pointAt(U);return[new Line(this.start,G),new Line(G,this.end)]}divideAtLength(U){const G=this.pointAtLength(U);return[new Line(this.start,G),new Line(G,this.end)]}containsPoint(U){const G=this.start,ee=this.end;if(G.cross(U,ee)!==0)return!1;const ne=this.length();return!(new Line(G,U).length()>ne||new Line(U,ee).length()>ne)}intersect(U,G){const ee=U.intersectsWithLine(this,G);return ee?Array.isArray(ee)?ee:[ee]:null}intersectsWithLine(U){const G=new Point(this.end.x-this.start.x,this.end.y-this.start.y),ee=new Point(U.end.x-U.start.x,U.end.y-U.start.y),ne=G.x*ee.y-G.y*ee.x,re=new Point(U.start.x-this.start.x,U.start.y-this.start.y),oe=re.x*ee.y-re.y*ee.x,ie=re.x*G.y-re.y*G.x;if(ne===0||oe*ne<0||ie*ne<0)return null;if(ne>0){if(oe>ne||ie>ne)return null}else if(oe<ne||ie<ne)return null;return new Point(this.start.x+oe*G.x/ne,this.start.y+oe*G.y/ne)}isDifferentiable(){return!this.start.equals(this.end)}pointOffset(U){const G=Point.clone(U),ee=this.start,ne=this.end;return((ne.x-ee.x)*(G.y-ee.y)-(ne.y-ee.y)*(G.x-ee.x))/this.length()}pointSquaredDistance(U,G){const ee=Point.create(U,G);return this.closestPoint(ee).squaredDistance(ee)}pointDistance(U,G){const ee=Point.create(U,G);return this.closestPoint(ee).distance(ee)}tangentAt(U){if(!this.isDifferentiable())return null;const G=this.start,ee=this.end,ne=this.pointAt(U),re=new Line(G,ee);return re.translate(ne.x-G.x,ne.y-G.y),re}tangentAtLength(U){if(!this.isDifferentiable())return null;const G=this.start,ee=this.end,ne=this.pointAtLength(U),re=new Line(G,ee);return re.translate(ne.x-G.x,ne.y-G.y),re}relativeCcw(U,G){const ee=Point.create(U,G);let ne=ee.x-this.start.x,re=ee.y-this.start.y;const oe=this.end.x-this.start.x,ie=this.end.y-this.start.y;let le=ne*ie-re*oe;return le===0&&(le=ne*oe+re*ie,le>0&&(ne-=oe,re-=ie,le=ne*oe+re*ie,le<0&&(le=0))),le<0?-1:le>0?1:0}equals(U){return U!=null&&this.start.x===U.start.x&&this.start.y===U.start.y&&this.end.x===U.end.x&&this.end.y===U.end.y}clone(){return new Line(this.start,this.end)}toJSON(){return{start:this.start.toJSON(),end:this.end.toJSON()}}serialize(){return[this.start.serialize(),this.end.serialize()].join(" ")}}(function(te){function U(G){return G!=null&&G instanceof te}te.isLine=U})(Line||(Line={}));class Ellipse extends Geometry{get center(){return new Point(this.x,this.y)}constructor(U,G,ee,ne){super(),this.x=U??0,this.y=G??0,this.a=ee??0,this.b=ne??0}bbox(){return Rectangle.fromEllipse(this)}getCenter(){return this.center}inflate(U,G){const ee=U,ne=G??U;return this.a+=2*ee,this.b+=2*ne,this}normalizedDistance(U,G){const ee=Point.create(U,G),ne=ee.x-this.x,re=ee.y-this.y,oe=this.a,ie=this.b;return ne*ne/(oe*oe)+re*re/(ie*ie)}containsPoint(U,G){return this.normalizedDistance(U,G)<=1}intersectsWithLine(U){const G=[],ee=this.a,ne=this.b,re=U.start,oe=U.end,ie=U.vector(),le=re.diff(new Point(this.x,this.y)),ae=new Point(ie.x/(ee*ee),ie.y/(ne*ne)),se=new Point(le.x/(ee*ee),le.y/(ne*ne)),ue=ie.dot(ae),ce=ie.dot(se),de=le.dot(se)-1,fe=ce*ce-ue*de;if(fe<0)return null;if(fe>0){const ve=Math.sqrt(fe),he=(-ce-ve)/ue,pe=(-ce+ve)/ue;if((he<0||he>1)&&(pe<0||pe>1))return null;he>=0&&he<=1&&G.push(re.lerp(oe,he)),pe>=0&&pe<=1&&G.push(re.lerp(oe,pe))}else{const ve=-ce/ue;if(ve>=0&&ve<=1)G.push(re.lerp(oe,ve));else return null}return G}intersectsWithLineFromCenterToPoint(U,G=0){const ee=Point.clone(U);G&&ee.rotate(G,this.getCenter());const ne=ee.x-this.x,re=ee.y-this.y;let oe;if(ne===0)return oe=this.bbox().getNearestPointToPoint(ee),G?oe.rotate(-G,this.getCenter()):oe;const ie=re/ne,le=ie*ie,ae=this.a*this.a,se=this.b*this.b;let ue=Math.sqrt(1/(1/ae+le/se));ue=ne<0?-ue:ue;const ce=ie*ue;return oe=new Point(this.x+ue,this.y+ce),G?oe.rotate(-G,this.getCenter()):oe}tangentTheta(U){const G=Point.clone(U),ee=G.x,ne=G.y,re=this.a,oe=this.b,ie=this.bbox().center,le=ie.x,ae=ie.y,se=30,ue=ee>ie.x+re/2,ce=ee<ie.x-re/2;let de,fe;return ue||ce?(fe=ee>ie.x?ne-se:ne+se,de=re*re/(ee-le)-re*re*(ne-ae)*(fe-ae)/(oe*oe*(ee-le))+le):(de=ne>ie.y?ee+se:ee-se,fe=oe*oe/(ne-ae)-oe*oe*(ee-le)*(de-le)/(re*re*(ne-ae))+ae),new Point(de,fe).theta(G)}scale(U,G){return this.a*=U,this.b*=G,this}rotate(U,G){const ee=Rectangle.fromEllipse(this);ee.rotate(U,G);const ne=Ellipse.fromRect(ee);return this.a=ne.a,this.b=ne.b,this.x=ne.x,this.y=ne.y,this}translate(U,G){const ee=Point.create(U,G);return this.x+=ee.x,this.y+=ee.y,this}equals(U){return U!=null&&U.x===this.x&&U.y===this.y&&U.a===this.a&&U.b===this.b}clone(){return new Ellipse(this.x,this.y,this.a,this.b)}toJSON(){return{x:this.x,y:this.y,a:this.a,b:this.b}}serialize(){return`${this.x} ${this.y} ${this.a} ${this.b}`}}(function(te){function U(G){return G!=null&&G instanceof te}te.isEllipse=U})(Ellipse||(Ellipse={})),function(te){function U(ne,re,oe,ie){return ne==null||typeof ne=="number"?new te(ne,re,oe,ie):G(ne)}te.create=U;function G(ne){return te.isEllipse(ne)?ne.clone():Array.isArray(ne)?new te(ne[0],ne[1],ne[2],ne[3]):new te(ne.x,ne.y,ne.a,ne.b)}te.parse=G;function ee(ne){const re=ne.center;return new te(re.x,re.y,ne.width/2,ne.height/2)}te.fromRect=ee}(Ellipse||(Ellipse={}));const regexSupportedData=new RegExp("^[\\s\\dLMCZz,.]*$");function isValid(te){return typeof te!="string"?!1:regexSupportedData.test(te)}function mod(te,U){return(te%U+U)%U}function draw(te,U,G,ee,ne){const re=[],oe=te[te.length-1],ie=U!=null&&U>0,le=U||0;if(ee&&ie){te=te.slice();const ue=te[0],ce=new Point(oe.x+(ue.x-oe.x)/2,oe.y+(ue.y-oe.y)/2);te.splice(0,0,ce)}let ae=te[0],se=1;for(G?re.push("M",ae.x,ae.y):re.push("L",ae.x,ae.y);se<(ee?te.length:te.length-1);){let ue=te[mod(se,te.length)],ce=ae.x-ue.x,de=ae.y-ue.y;if(ie&&(ce!==0||de!==0)&&(ne==null||ne.indexOf(se-1)<0)){let fe=Math.sqrt(ce*ce+de*de);const ve=ce*Math.min(le,fe/2)/fe,he=de*Math.min(le,fe/2)/fe,pe=ue.x+ve,ge=ue.y+he;re.push("L",pe,ge);let me=te[mod(se+1,te.length)];for(;se<te.length-2&&Math.round(me.x-ue.x)===0&&Math.round(me.y-ue.y)===0;)me=te[mod(se+2,te.length)],se+=1;ce=me.x-ue.x,de=me.y-ue.y,fe=Math.max(1,Math.sqrt(ce*ce+de*de));const _e=ce*Math.min(le,fe/2)/fe,ye=de*Math.min(le,fe/2)/fe,be=ue.x+_e,xe=ue.y+ye;re.push("Q",ue.x,ue.y,be,xe),ue=new Point(be,xe)}else re.push("L",ue.x,ue.y);ae=ue,se+=1}return ee?re.push("Z"):re.push("L",oe.x,oe.y),re.map(ue=>typeof ue=="string"?ue:+ue.toFixed(3)).join(" ")}function drawPoints(te,U={}){const G=[];return te&&te.length&&te.forEach(ee=>{Array.isArray(ee)?G.push({x:ee[0],y:ee[1]}):G.push({x:ee.x,y:ee.y})}),draw(G,U.round,U.initialMove==null||U.initialMove,U.close,U.exclude)}function arcToCurves(te,U,G,ee,ne=0,re=0,oe=0,ie,le){if(G===0||ee===0)return[];ie-=te,le-=U,G=Math.abs(G),ee=Math.abs(ee);const ae=-ie/2,se=-le/2,ue=Math.cos(ne*Math.PI/180),ce=Math.sin(ne*Math.PI/180),de=ue*ae+ce*se,fe=-1*ce*ae+ue*se,ve=de*de,he=fe*fe,pe=G*G,ge=ee*ee,me=ve/pe+he/ge;let _e;if(me>1)G=Math.sqrt(me)*G,ee=Math.sqrt(me)*ee,_e=0;else{let Oe=1;re===oe&&(Oe=-1),_e=Oe*Math.sqrt((pe*ge-pe*he-ge*ve)/(pe*he+ge*ve))}const ye=_e*G*fe/ee,be=-1*_e*ee*de/G,xe=ue*ye-ce*be+ie/2,Ce=ce*ye+ue*be+le/2;let $e=Math.atan2((fe-be)/ee,(de-ye)/G)-Math.atan2(0,1),Ee=$e>=0?$e:2*Math.PI+$e;$e=Math.atan2((-fe-be)/ee,(-de-ye)/G)-Math.atan2((fe-be)/ee,(de-ye)/G);let Ve=$e>=0?$e:2*Math.PI+$e;oe===0&&Ve>0?Ve-=2*Math.PI:oe!==0&&Ve<0&&(Ve+=2*Math.PI);const Ne=Ve*2/Math.PI,Se=Math.ceil(Ne<0?-1*Ne:Ne),Pe=Ve/Se,we=8/3*Math.sin(Pe/4)*Math.sin(Pe/4)/Math.sin(Pe/2),ke=ue*G,Te=ue*ee,De=ce*G,Ie=ce*ee;let Me=Math.cos(Ee),Be=Math.sin(Ee),Ae=-we*(ke*Be+Ie*Me),ze=-we*(De*Be-Te*Me),Re=0,Fe=0;const je=[];for(let Oe=0;Oe<Se;Oe+=1){Ee+=Pe,Me=Math.cos(Ee),Be=Math.sin(Ee),Re=ke*Me-Ie*Be+xe,Fe=De*Me+Te*Be+Ce;const Le=-we*(ke*Be+Ie*Me),Ge=-we*(De*Be-Te*Me),qe=Oe*6;je[qe]=Number(Ae+te),je[qe+1]=Number(ze+U),je[qe+2]=Number(Re-Le+te),je[qe+3]=Number(Fe-Ge+U),je[qe+4]=Number(Re+te),je[qe+5]=Number(Fe+U),Ae=Re+Le,ze=Fe+Ge}return je.map(Oe=>+Oe.toFixed(2))}function drawArc(te,U,G,ee,ne=0,re=0,oe=0,ie,le){const ae=[],se=arcToCurves(te,U,G,ee,ne,re,oe,ie,le);if(se!=null)for(let ue=0,ce=se.length;ue<ce;ue+=6)ae.push("C",se[ue],se[ue+1],se[ue+2],se[ue+3],se[ue+4],se[ue+5]);return ae.join(" ")}class Polyline extends Geometry{get start(){return this.points[0]||null}get end(){return this.points[this.points.length-1]||null}constructor(U){if(super(),U!=null){if(typeof U=="string")return Polyline.parse(U);this.points=U.map(G=>Point.create(G))}else this.points=[]}scale(U,G,ee=new Point){return this.points.forEach(ne=>ne.scale(U,G,ee)),this}rotate(U,G){return this.points.forEach(ee=>ee.rotate(U,G)),this}translate(U,G){const ee=Point.create(U,G);return this.points.forEach(ne=>ne.translate(ee.x,ee.y)),this}round(U=0){return this.points.forEach(G=>G.round(U)),this}bbox(){if(this.points.length===0)return new Rectangle;let U=1/0,G=-1/0,ee=1/0,ne=-1/0;const re=this.points;for(let oe=0,ie=re.length;oe<ie;oe+=1){const le=re[oe],ae=le.x,se=le.y;ae<U&&(U=ae),ae>G&&(G=ae),se<ee&&(ee=se),se>ne&&(ne=se)}return new Rectangle(U,ee,G-U,ne-ee)}closestPoint(U){const G=this.closestPointLength(U);return this.pointAtLength(G)}closestPointLength(U){const G=this.points,ee=G.length;if(ee===0||ee===1)return 0;let ne=0,re=0,oe=1/0;for(let ie=0,le=ee-1;ie<le;ie+=1){const ae=new Line(G[ie],G[ie+1]),se=ae.length(),ue=ae.closestPointNormalizedLength(U),de=ae.pointAt(ue).squaredDistance(U);de<oe&&(oe=de,re=ne+ue*se),ne+=se}return re}closestPointNormalizedLength(U){const G=this.length();return G===0?0:this.closestPointLength(U)/G}closestPointTangent(U){const G=this.closestPointLength(U);return this.tangentAtLength(G)}containsPoint(U){if(this.points.length===0)return!1;const G=Point.clone(U),ee=G.x,ne=G.y,re=this.points,oe=re.length;let ie=oe-1,le=0;for(let ae=0;ae<oe;ae+=1){const se=re[ie],ue=re[ae];if(G.equals(se))return!0;const ce=new Line(se,ue);if(ce.containsPoint(U))return!0;if(ne<=se.y&&ne>ue.y||ne>se.y&&ne<=ue.y){const de=se.x-ee>ue.x-ee?se.x-ee:ue.x-ee;if(de>=0){const fe=new Point(ee+de,ne),ve=new Line(U,fe);ce.intersectsWithLine(ve)&&(le+=1)}}ie=ae}return le%2===1}intersectsWithLine(U){const G=[];for(let ee=0,ne=this.points.length-1;ee<ne;ee+=1){const re=this.points[ee],oe=this.points[ee+1],ie=U.intersectsWithLine(new Line(re,oe));ie&&G.push(ie)}return G.length>0?G:null}isDifferentiable(){for(let U=0,G=this.points.length-1;U<G;U+=1){const ee=this.points[U],ne=this.points[U+1];if(new Line(ee,ne).isDifferentiable())return!0}return!1}length(){let U=0;for(let G=0,ee=this.points.length-1;G<ee;G+=1){const ne=this.points[G],re=this.points[G+1];U+=ne.distance(re)}return U}pointAt(U){const G=this.points,ee=G.length;if(ee===0)return null;if(ee===1||U<=0)return G[0].clone();if(U>=1)return G[ee-1].clone();const re=this.length()*U;return this.pointAtLength(re)}pointAtLength(U){const G=this.points,ee=G.length;if(ee===0)return null;if(ee===1)return G[0].clone();let ne=!0;U<0&&(ne=!1,U=-U);let re=0;for(let ie=0,le=ee-1;ie<le;ie+=1){const ae=ne?ie:le-1-ie,se=G[ae],ue=G[ae+1],ce=new Line(se,ue),de=se.distance(ue);if(U<=re+de)return ce.pointAtLength((ne?1:-1)*(U-re));re+=de}return(ne?G[ee-1]:G[0]).clone()}tangentAt(U){const ee=this.points.length;if(ee===0||ee===1)return null;U<0&&(U=0),U>1&&(U=1);const re=this.length()*U;return this.tangentAtLength(re)}tangentAtLength(U){const G=this.points,ee=G.length;if(ee===0||ee===1)return null;let ne=!0;U<0&&(ne=!1,U=-U);let re,oe=0;for(let ie=0,le=ee-1;ie<le;ie+=1){const ae=ne?ie:le-1-ie,se=G[ae],ue=G[ae+1],ce=new Line(se,ue),de=se.distance(ue);if(ce.isDifferentiable()){if(U<=oe+de)return ce.tangentAtLength((ne?1:-1)*(U-oe));re=ce}oe+=de}if(re){const ie=ne?1:0;return re.tangentAt(ie)}return null}simplify(U={}){const G=this.points;if(G.length<3)return this;const ee=U.threshold||0;let ne=0;for(;G[ne+2];){const re=ne,oe=ne+1,ie=ne+2,le=G[re],ae=G[oe],se=G[ie];new Line(le,se).closestPoint(ae).distance(ae)<=ee?G.splice(oe,1):ne+=1}return this}toHull(){const U=this.points,G=U.length;if(G===0)return new Polyline;let ee=U[0];for(let ce=1;ce<G;ce+=1)(U[ce].y<ee.y||U[ce].y===ee.y&&U[ce].x>ee.x)&&(ee=U[ce]);const ne=[];for(let ce=0;ce<G;ce+=1){let de=ee.theta(U[ce]);de===0&&(de=360),ne.push([U[ce],ce,de])}if(ne.sort((ce,de)=>{let fe=ce[2]-de[2];return fe===0&&(fe=de[1]-ce[1]),fe}),ne.length>2){const ce=ne[ne.length-1];ne.unshift(ce)}const re={},oe=[],ie=ce=>`${ce[0].toString()}@${ce[1]}`;for(;ne.length!==0;){const ce=ne.pop(),de=ce[0];if(re[ie(ce)])continue;let fe=!1;for(;!fe;)if(oe.length<2)oe.push(ce),fe=!0;else{const ve=oe.pop(),he=ve[0],pe=oe.pop(),ge=pe[0],me=ge.cross(he,de);if(me<0)oe.push(pe),oe.push(ve),oe.push(ce),fe=!0;else if(me===0){const ye=he.angleBetween(ge,de);Math.abs(ye-180)<1e-10||he.equals(de)||ge.equals(he)?(re[ie(ve)]=he,oe.push(pe)):Math.abs((ye+1)%360-1)<1e-10&&(oe.push(pe),ne.push(ve))}else re[ie(ve)]=he,oe.push(pe)}}oe.length>2&&oe.pop();let le,ae=-1;for(let ce=0,de=oe.length;ce<de;ce+=1){const fe=oe[ce][1];(le===void 0||fe<le)&&(le=fe,ae=ce)}let se=[];if(ae>0){const ce=oe.slice(ae),de=oe.slice(0,ae);se=ce.concat(de)}else se=oe;const ue=[];for(let ce=0,de=se.length;ce<de;ce+=1)ue.push(se[ce][0]);return new Polyline(ue)}equals(U){return U==null||U.points.length!==this.points.length?!1:U.points.every((G,ee)=>G.equals(this.points[ee]))}clone(){return new Polyline(this.points.map(U=>U.clone()))}toJSON(){return this.points.map(U=>U.toJSON())}serialize(){return this.points.map(U=>`${U.serialize()}`).join(" ")}}(function(te){function U(G){return G!=null&&G instanceof te}te.isPolyline=U})(Polyline||(Polyline={})),function(te){function U(G){const ee=G.trim();if(ee==="")return new te;const ne=[],re=ee.split(/\s*,\s*|\s+/);for(let oe=0,ie=re.length;oe<ie;oe+=2)ne.push({x:+re[oe],y:+re[oe+1]});return new te(ne)}te.parse=U}(Polyline||(Polyline={}));class Curve extends Geometry{constructor(U,G,ee,ne){super(),this.PRECISION=3,this.start=Point.create(U),this.controlPoint1=Point.create(G),this.controlPoint2=Point.create(ee),this.end=Point.create(ne)}bbox(){const U=this.start,G=this.controlPoint1,ee=this.controlPoint2,ne=this.end,re=U.x,oe=U.y,ie=G.x,le=G.y,ae=ee.x,se=ee.y,ue=ne.x,ce=ne.y,de=[],fe=[[],[]];let ve,he,pe,ge,me,_e,ye,be;for(let ke=0;ke<2;ke+=1){if(ke===0?(he=6*re-12*ie+6*ae,ve=-3*re+9*ie-9*ae+3*ue,pe=3*ie-3*re):(he=6*oe-12*le+6*se,ve=-3*oe+9*le-9*se+3*ce,pe=3*le-3*oe),Math.abs(ve)<1e-12){if(Math.abs(he)<1e-12)continue;ge=-pe/he,ge>0&&ge<1&&de.push(ge);continue}ye=he*he-4*pe*ve,be=Math.sqrt(ye),!(ye<0)&&(me=(-he+be)/(2*ve),me>0&&me<1&&de.push(me),_e=(-he-be)/(2*ve),_e>0&&_e<1&&de.push(_e))}let xe,Ce,$e,Ee=de.length;const Ve=Ee;for(;Ee;)Ee-=1,ge=de[Ee],$e=1-ge,xe=$e*$e*$e*re+3*$e*$e*ge*ie+3*$e*ge*ge*ae+ge*ge*ge*ue,fe[0][Ee]=xe,Ce=$e*$e*$e*oe+3*$e*$e*ge*le+3*$e*ge*ge*se+ge*ge*ge*ce,fe[1][Ee]=Ce;de[Ve]=0,de[Ve+1]=1,fe[0][Ve]=re,fe[1][Ve]=oe,fe[0][Ve+1]=ue,fe[1][Ve+1]=ce,de.length=Ve+2,fe[0].length=Ve+2,fe[1].length=Ve+2;const Ne=Math.min.apply(null,fe[0]),Se=Math.min.apply(null,fe[1]),Pe=Math.max.apply(null,fe[0]),we=Math.max.apply(null,fe[1]);return new Rectangle(Ne,Se,Pe-Ne,we-Se)}closestPoint(U,G={}){return this.pointAtT(this.closestPointT(U,G))}closestPointLength(U,G={}){const ee=this.getOptions(G);return this.lengthAtT(this.closestPointT(U,ee),ee)}closestPointNormalizedLength(U,G={}){const ee=this.getOptions(G),ne=this.closestPointLength(U,ee);if(!ne)return 0;const re=this.length(ee);return re===0?0:ne/re}closestPointT(U,G={}){const ee=this.getPrecision(G),ne=this.getDivisions(G),re=Math.pow(10,-ee);let oe=null,ie=0,le=0,ae=0,se=0,ue=0,ce=null;const de=ne.length;let fe=de>0?1/de:0;for(ne.forEach((ve,he)=>{const pe=ve.start.distance(U),ge=ve.end.distance(U),me=pe+ge;(ce==null||me<ce)&&(oe=ve,ie=he*fe,le=(he+1)*fe,ae=pe,se=ge,ce=me,ue=ve.endpointDistance())});;){const ve=ae?Math.abs(ae-se)/ae:0,he=se!=null?Math.abs(ae-se)/se:0,pe=ve<re||he<re,ge=ae?ae<ue*re:!0,me=se?se<ue*re:!0;if(pe||(ge||me))return ae<=se?ie:le;const ye=oe.divide(.5);fe/=2;const be=ye[0].start.distance(U),xe=ye[0].end.distance(U),Ce=be+xe,$e=ye[1].start.distance(U),Ee=ye[1].end.distance(U),Ve=$e+Ee;Ce<=Ve?(oe=ye[0],le-=fe,ae=be,se=xe):(oe=ye[1],ie+=fe,ae=$e,se=Ee)}}closestPointTangent(U,G={}){return this.tangentAtT(this.closestPointT(U,G))}containsPoint(U,G={}){return this.toPolyline(G).containsPoint(U)}divideAt(U,G={}){if(U<=0)return this.divideAtT(0);if(U>=1)return this.divideAtT(1);const ee=this.tAt(U,G);return this.divideAtT(ee)}divideAtLength(U,G={}){const ee=this.tAtLength(U,G);return this.divideAtT(ee)}divide(U){return this.divideAtT(U)}divideAtT(U){const G=this.start,ee=this.controlPoint1,ne=this.controlPoint2,re=this.end;if(U<=0)return[new Curve(G,G,G,G),new Curve(G,ee,ne,re)];if(U>=1)return[new Curve(G,ee,ne,re),new Curve(re,re,re,re)];const oe=this.getSkeletonPoints(U),ie=oe.startControlPoint1,le=oe.startControlPoint2,ae=oe.divider,se=oe.dividerControlPoint1,ue=oe.dividerControlPoint2;return[new Curve(G,ie,le,ae),new Curve(ae,se,ue,re)]}endpointDistance(){return this.start.distance(this.end)}getSkeletonPoints(U){const G=this.start,ee=this.controlPoint1,ne=this.controlPoint2,re=this.end;if(U<=0)return{startControlPoint1:G.clone(),startControlPoint2:G.clone(),divider:G.clone(),dividerControlPoint1:ee.clone(),dividerControlPoint2:ne.clone()};if(U>=1)return{startControlPoint1:ee.clone(),startControlPoint2:ne.clone(),divider:re.clone(),dividerControlPoint1:re.clone(),dividerControlPoint2:re.clone()};const oe=new Line(G,ee).pointAt(U),ie=new Line(ee,ne).pointAt(U),le=new Line(ne,re).pointAt(U),ae=new Line(oe,ie).pointAt(U),se=new Line(ie,le).pointAt(U),ue=new Line(ae,se).pointAt(U);return{startControlPoint1:oe,startControlPoint2:ae,divider:ue,dividerControlPoint1:se,dividerControlPoint2:le}}getSubdivisions(U={}){const G=this.getPrecision(U);let ee=[new Curve(this.start,this.controlPoint1,this.controlPoint2,this.end)];if(G===0)return ee;let ne=this.endpointDistance();const re=Math.pow(10,-G);let oe=0;for(;;){oe+=1;const ie=[];ee.forEach(se=>{const ue=se.divide(.5);ie.push(ue[0],ue[1])});const le=ie.reduce((se,ue)=>se+ue.endpointDistance(),0),ae=le!==0?(le-ne)/le:0;if(oe>1&&ae<re)return ie;ee=ie,ne=le}}length(U={}){return this.getDivisions(U).reduce((ee,ne)=>ee+ne.endpointDistance(),0)}lengthAtT(U,G={}){if(U<=0)return 0;const ee=G.precision===void 0?this.PRECISION:G.precision;return this.divide(U)[0].length({precision:ee})}pointAt(U,G={}){if(U<=0)return this.start.clone();if(U>=1)return this.end.clone();const ee=this.tAt(U,G);return this.pointAtT(ee)}pointAtLength(U,G={}){const ee=this.tAtLength(U,G);return this.pointAtT(ee)}pointAtT(U){return U<=0?this.start.clone():U>=1?this.end.clone():this.getSkeletonPoints(U).divider}isDifferentiable(){const U=this.start,G=this.controlPoint1,ee=this.controlPoint2,ne=this.end;return!(U.equals(G)&&G.equals(ee)&&ee.equals(ne))}tangentAt(U,G={}){if(!this.isDifferentiable())return null;U<0?U=0:U>1&&(U=1);const ee=this.tAt(U,G);return this.tangentAtT(ee)}tangentAtLength(U,G={}){if(!this.isDifferentiable())return null;const ee=this.tAtLength(U,G);return this.tangentAtT(ee)}tangentAtT(U){if(!this.isDifferentiable())return null;U<0&&(U=0),U>1&&(U=1);const G=this.getSkeletonPoints(U),ee=G.startControlPoint2,ne=G.dividerControlPoint1,re=G.divider,oe=new Line(ee,ne);return oe.translate(re.x-ee.x,re.y-ee.y),oe}getPrecision(U={}){return U.precision==null?this.PRECISION:U.precision}getDivisions(U={}){if(U.subdivisions!=null)return U.subdivisions;const G=this.getPrecision(U);return this.getSubdivisions({precision:G})}getOptions(U={}){const G=this.getPrecision(U),ee=this.getDivisions(U);return{precision:G,subdivisions:ee}}tAt(U,G={}){if(U<=0)return 0;if(U>=1)return 1;const ee=this.getOptions(G),re=this.length(ee)*U;return this.tAtLength(re,ee)}tAtLength(U,G={}){let ee=!0;U<0&&(ee=!1,U=-U);const ne=this.getPrecision(G),re=this.getDivisions(G),oe={precision:ne,subdivisions:re};let ie=null,le,ae,se=0,ue=0,ce=0;const de=re.length;let fe=de>0?1/de:0;for(let pe=0;pe<de;pe+=1){const ge=ee?pe:de-1-pe,me=re[pe],_e=me.endpointDistance();if(U<=ce+_e){ie=me,le=ge*fe,ae=(ge+1)*fe,se=ee?U-ce:_e+ce-U,ue=ee?_e+ce-U:U-ce;break}ce+=_e}if(ie==null)return ee?1:0;const ve=this.length(oe),he=Math.pow(10,-ne);for(;;){let pe;if(pe=ve!==0?se/ve:0,pe<he)return le;if(pe=ve!==0?ue/ve:0,pe<he)return ae;let ge,me;const _e=ie.divide(.5);fe/=2;const ye=_e[0].endpointDistance(),be=_e[1].endpointDistance();se<=ye?(ie=_e[0],ae-=fe,ge=se,me=ye-ge):(ie=_e[1],le+=fe,ge=se-ye,me=be-ge),se=ge,ue=me}}toPoints(U={}){const G=this.getDivisions(U),ee=[G[0].start.clone()];return G.forEach(ne=>ee.push(ne.end.clone())),ee}toPolyline(U={}){return new Polyline(this.toPoints(U))}scale(U,G,ee){return this.start.scale(U,G,ee),this.controlPoint1.scale(U,G,ee),this.controlPoint2.scale(U,G,ee),this.end.scale(U,G,ee),this}rotate(U,G){return this.start.rotate(U,G),this.controlPoint1.rotate(U,G),this.controlPoint2.rotate(U,G),this.end.rotate(U,G),this}translate(U,G){return typeof U=="number"?(this.start.translate(U,G),this.controlPoint1.translate(U,G),this.controlPoint2.translate(U,G),this.end.translate(U,G)):(this.start.translate(U),this.controlPoint1.translate(U),this.controlPoint2.translate(U),this.end.translate(U)),this}equals(U){return U!=null&&this.start.equals(U.start)&&this.controlPoint1.equals(U.controlPoint1)&&this.controlPoint2.equals(U.controlPoint2)&&this.end.equals(U.end)}clone(){return new Curve(this.start,this.controlPoint1,this.controlPoint2,this.end)}toJSON(){return{start:this.start.toJSON(),controlPoint1:this.controlPoint1.toJSON(),controlPoint2:this.controlPoint2.toJSON(),end:this.end.toJSON()}}serialize(){return[this.start.serialize(),this.controlPoint1.serialize(),this.controlPoint2.serialize(),this.end.serialize()].join(" ")}}(function(te){function U(G){return G!=null&&G instanceof te}te.isCurve=U})(Curve||(Curve={})),function(te){function U(ne){const re=ne.length,oe=[],ie=[];let le=2;oe[0]=ne[0]/le;for(let ae=1;ae<re;ae+=1)ie[ae]=1/le,le=(ae<re-1?4:3.5)-ie[ae],oe[ae]=(ne[ae]-oe[ae-1])/le;for(let ae=1;ae<re;ae+=1)oe[re-ae-1]-=ie[re-ae]*oe[re-ae];return oe}function G(ne){const re=ne.map(ce=>Point.clone(ce)),oe=[],ie=[],le=re.length-1;if(le===1)return oe[0]=new Point((2*re[0].x+re[1].x)/3,(2*re[0].y+re[1].y)/3),ie[0]=new Point(2*oe[0].x-re[0].x,2*oe[0].y-re[0].y),[oe,ie];const ae=[];for(let ce=1;ce<le-1;ce+=1)ae[ce]=4*re[ce].x+2*re[ce+1].x;ae[0]=re[0].x+2*re[1].x,ae[le-1]=(8*re[le-1].x+re[le].x)/2;const se=U(ae);for(let ce=1;ce<le-1;ce+=1)ae[ce]=4*re[ce].y+2*re[ce+1].y;ae[0]=re[0].y+2*re[1].y,ae[le-1]=(8*re[le-1].y+re[le].y)/2;const ue=U(ae);for(let ce=0;ce<le;ce+=1)oe.push(new Point(se[ce],ue[ce])),ce<le-1?ie.push(new Point(2*re[ce+1].x-se[ce+1],2*re[ce+1].y-ue[ce+1])):ie.push(new Point((re[le].x+se[le-1])/2,(re[le].y+ue[le-1])/2));return[oe,ie]}function ee(ne){if(ne==null||Array.isArray(ne)&&ne.length<2)throw new Error("At least 2 points are required");const re=G(ne),oe=[];for(let ie=0,le=re[0].length;ie<le;ie+=1){const ae=new Point(re[0][ie].x,re[0][ie].y),se=new Point(re[1][ie].x,re[1][ie].y);oe.push(new te(ne[ie],ae,se,ne[ie+1]))}return oe}te.throughPoints=ee}(Curve||(Curve={}));class Segment extends Geometry{constructor(){super(...arguments),this.isVisible=!0,this.isSegment=!0,this.isSubpathStart=!1}get end(){return this.endPoint}get start(){if(this.previousSegment==null)throw new Error("Missing previous segment. (This segment cannot be the first segment of a path, or segment has not yet been added to a path.)");return this.previousSegment.end}closestPointT(U,G){if(this.closestPointNormalizedLength)return this.closestPointNormalizedLength(U);throw new Error("Neither `closestPointT` nor `closestPointNormalizedLength` method is implemented.")}lengthAtT(U,G){if(U<=0)return 0;const ee=this.length();return U>=1?ee:ee*U}divideAtT(U){if(this.divideAt)return this.divideAt(U);throw new Error("Neither `divideAtT` nor `divideAt` method is implemented.")}pointAtT(U){if(this.pointAt)return this.pointAt(U);throw new Error("Neither `pointAtT` nor `pointAt` method is implemented.")}tangentAtT(U){if(this.tangentAt)return this.tangentAt(U);throw new Error("Neither `tangentAtT` nor `tangentAt` method is implemented.")}}class LineTo extends Segment{constructor(U,G){super(),Line.isLine(U)?this.endPoint=U.end.clone().round(2):this.endPoint=Point.create(U,G).round(2)}get type(){return"L"}get line(){return new Line(this.start,this.end)}bbox(){return this.line.bbox()}closestPoint(U){return this.line.closestPoint(U)}closestPointLength(U){return this.line.closestPointLength(U)}closestPointNormalizedLength(U){return this.line.closestPointNormalizedLength(U)}closestPointTangent(U){return this.line.closestPointTangent(U)}length(){return this.line.length()}divideAt(U){const G=this.line.divideAt(U);return[new LineTo(G[0]),new LineTo(G[1])]}divideAtLength(U){const G=this.line.divideAtLength(U);return[new LineTo(G[0]),new LineTo(G[1])]}getSubdivisions(){return[]}pointAt(U){return this.line.pointAt(U)}pointAtLength(U){return this.line.pointAtLength(U)}tangentAt(U){return this.line.tangentAt(U)}tangentAtLength(U){return this.line.tangentAtLength(U)}isDifferentiable(){return this.previousSegment==null?!1:!this.start.equals(this.end)}clone(){return new LineTo(this.end)}scale(U,G,ee){return this.end.scale(U,G,ee),this}rotate(U,G){return this.end.rotate(U,G),this}translate(U,G){return typeof U=="number"?this.end.translate(U,G):this.end.translate(U),this}equals(U){return this.type===U.type&&this.start.equals(U.start)&&this.end.equals(U.end)}toJSON(){return{type:this.type,start:this.start.toJSON(),end:this.end.toJSON()}}serialize(){const U=this.end;return`${this.type} ${U.x} ${U.y}`}}(function(te){function U(...G){const ee=G.length,ne=G[0];if(Line.isLine(ne))return new te(ne);if(Point.isPointLike(ne))return ee===1?new te(ne):G.map(oe=>new te(oe));if(ee===2)return new te(+G[0],+G[1]);const re=[];for(let oe=0;oe<ee;oe+=2){const ie=+G[oe],le=+G[oe+1];re.push(new te(ie,le))}return re}te.create=U})(LineTo||(LineTo={}));class Close extends Segment{get end(){if(!this.subpathStartSegment)throw new Error("Missing subpath start segment. (This segment needs a subpath start segment (e.g. MoveTo), or segment has not yet been added to a path.)");return this.subpathStartSegment.end}get type(){return"Z"}get line(){return new Line(this.start,this.end)}bbox(){return this.line.bbox()}closestPoint(U){return this.line.closestPoint(U)}closestPointLength(U){return this.line.closestPointLength(U)}closestPointNormalizedLength(U){return this.line.closestPointNormalizedLength(U)}closestPointTangent(U){return this.line.closestPointTangent(U)}length(){return this.line.length()}divideAt(U){const G=this.line.divideAt(U);return[G[1].isDifferentiable()?new LineTo(G[0]):this.clone(),new LineTo(G[1])]}divideAtLength(U){const G=this.line.divideAtLength(U);return[G[1].isDifferentiable()?new LineTo(G[0]):this.clone(),new LineTo(G[1])]}getSubdivisions(){return[]}pointAt(U){return this.line.pointAt(U)}pointAtLength(U){return this.line.pointAtLength(U)}tangentAt(U){return this.line.tangentAt(U)}tangentAtLength(U){return this.line.tangentAtLength(U)}isDifferentiable(){return!this.previousSegment||!this.subpathStartSegment?!1:!this.start.equals(this.end)}scale(){return this}rotate(){return this}translate(){return this}equals(U){return this.type===U.type&&this.start.equals(U.start)&&this.end.equals(U.end)}clone(){return new Close}toJSON(){return{type:this.type,start:this.start.toJSON(),end:this.end.toJSON()}}serialize(){return this.type}}(function(te){function U(){return new te}te.create=U})(Close||(Close={}));class MoveTo extends Segment{constructor(U,G){super(),this.isVisible=!1,this.isSubpathStart=!0,Line.isLine(U)||Curve.isCurve(U)?this.endPoint=U.end.clone().round(2):this.endPoint=Point.create(U,G).round(2)}get start(){throw new Error("Illegal access. Moveto segments should not need a start property.")}get type(){return"M"}bbox(){return null}closestPoint(){return this.end.clone()}closestPointLength(){return 0}closestPointNormalizedLength(){return 0}closestPointT(){return 1}closestPointTangent(){return null}length(){return 0}lengthAtT(){return 0}divideAt(){return[this.clone(),this.clone()]}divideAtLength(){return[this.clone(),this.clone()]}getSubdivisions(){return[]}pointAt(){return this.end.clone()}pointAtLength(){return this.end.clone()}pointAtT(){return this.end.clone()}tangentAt(){return null}tangentAtLength(){return null}tangentAtT(){return null}isDifferentiable(){return!1}scale(U,G,ee){return this.end.scale(U,G,ee),this}rotate(U,G){return this.end.rotate(U,G),this}translate(U,G){return typeof U=="number"?this.end.translate(U,G):this.end.translate(U),this}clone(){return new MoveTo(this.end)}equals(U){return this.type===U.type&&this.end.equals(U.end)}toJSON(){return{type:this.type,end:this.end.toJSON()}}serialize(){const U=this.end;return`${this.type} ${U.x} ${U.y}`}}(function(te){function U(...G){const ee=G.length,ne=G[0];if(Line.isLine(ne))return new te(ne);if(Curve.isCurve(ne))return new te(ne);if(Point.isPointLike(ne)){if(ee===1)return new te(ne);const oe=[];for(let ie=0;ie<ee;ie+=1)ie===0?oe.push(new te(G[ie])):oe.push(new LineTo(G[ie]));return oe}if(ee===2)return new te(+G[0],+G[1]);const re=[];for(let oe=0;oe<ee;oe+=2){const ie=+G[oe],le=+G[oe+1];oe===0?re.push(new te(ie,le)):re.push(new LineTo(ie,le))}return re}te.create=U})(MoveTo||(MoveTo={}));class CurveTo extends Segment{constructor(U,G,ee,ne,re,oe){super(),Curve.isCurve(U)?(this.controlPoint1=U.controlPoint1.clone().round(2),this.controlPoint2=U.controlPoint2.clone().round(2),this.endPoint=U.end.clone().round(2)):typeof U=="number"?(this.controlPoint1=new Point(U,G).round(2),this.controlPoint2=new Point(ee,ne).round(2),this.endPoint=new Point(re,oe).round(2)):(this.controlPoint1=Point.create(U).round(2),this.controlPoint2=Point.create(G).round(2),this.endPoint=Point.create(ee).round(2))}get type(){return"C"}get curve(){return new Curve(this.start,this.controlPoint1,this.controlPoint2,this.end)}bbox(){return this.curve.bbox()}closestPoint(U){return this.curve.closestPoint(U)}closestPointLength(U){return this.curve.closestPointLength(U)}closestPointNormalizedLength(U){return this.curve.closestPointNormalizedLength(U)}closestPointTangent(U){return this.curve.closestPointTangent(U)}length(){return this.curve.length()}divideAt(U,G={}){const ee=this.curve.divideAt(U,G);return[new CurveTo(ee[0]),new CurveTo(ee[1])]}divideAtLength(U,G={}){const ee=this.curve.divideAtLength(U,G);return[new CurveTo(ee[0]),new CurveTo(ee[1])]}divideAtT(U){const G=this.curve.divideAtT(U);return[new CurveTo(G[0]),new CurveTo(G[1])]}getSubdivisions(){return[]}pointAt(U){return this.curve.pointAt(U)}pointAtLength(U){return this.curve.pointAtLength(U)}tangentAt(U){return this.curve.tangentAt(U)}tangentAtLength(U){return this.curve.tangentAtLength(U)}isDifferentiable(){if(!this.previousSegment)return!1;const U=this.start,G=this.controlPoint1,ee=this.controlPoint2,ne=this.end;return!(U.equals(G)&&G.equals(ee)&&ee.equals(ne))}scale(U,G,ee){return this.controlPoint1.scale(U,G,ee),this.controlPoint2.scale(U,G,ee),this.end.scale(U,G,ee),this}rotate(U,G){return this.controlPoint1.rotate(U,G),this.controlPoint2.rotate(U,G),this.end.rotate(U,G),this}translate(U,G){return typeof U=="number"?(this.controlPoint1.translate(U,G),this.controlPoint2.translate(U,G),this.end.translate(U,G)):(this.controlPoint1.translate(U),this.controlPoint2.translate(U),this.end.translate(U)),this}equals(U){return this.start.equals(U.start)&&this.end.equals(U.end)&&this.controlPoint1.equals(U.controlPoint1)&&this.controlPoint2.equals(U.controlPoint2)}clone(){return new CurveTo(this.controlPoint1,this.controlPoint2,this.end)}toJSON(){return{type:this.type,start:this.start.toJSON(),controlPoint1:this.controlPoint1.toJSON(),controlPoint2:this.controlPoint2.toJSON(),end:this.end.toJSON()}}serialize(){const U=this.controlPoint1,G=this.controlPoint2,ee=this.end;return[this.type,U.x,U.y,G.x,G.y,ee.x,ee.y].join(" ")}}(function(te){function U(...G){const ee=G.length,ne=G[0];if(Curve.isCurve(ne))return new te(ne);if(Point.isPointLike(ne)){if(ee===3)return new te(G[0],G[1],G[2]);const oe=[];for(let ie=0;ie<ee;ie+=3)oe.push(new te(G[ie],G[ie+1],G[ie+2]));return oe}if(ee===6)return new te(G[0],G[1],G[2],G[3],G[4],G[5]);const re=[];for(let oe=0;oe<ee;oe+=6)re.push(new te(G[oe],G[oe+1],G[oe+2],G[oe+3],G[oe+4],G[oe+5]));return re}te.create=U})(CurveTo||(CurveTo={}));function rotate(te,U,G){return{x:te*Math.cos(G)-U*Math.sin(G),y:te*Math.sin(G)+U*Math.cos(G)}}function q2c(te,U,G,ee,ne,re){const oe=.3333333333333333,ie=2/3;return[oe*te+ie*G,oe*U+ie*ee,oe*ne+ie*G,oe*re+ie*ee,ne,re]}function a2c(te,U,G,ee,ne,re,oe,ie,le,ae){const se=Math.PI*120/180,ue=Math.PI/180*(+ne||0);let ce=[],de,fe,ve,he,pe;if(ae)fe=ae[0],ve=ae[1],he=ae[2],pe=ae[3];else{de=rotate(te,U,-ue),te=de.x,U=de.y,de=rotate(ie,le,-ue),ie=de.x,le=de.y;const Pe=(te-ie)/2,we=(U-le)/2;let ke=Pe*Pe/(G*G)+we*we/(ee*ee);ke>1&&(ke=Math.sqrt(ke),G=ke*G,ee=ke*ee);const Te=G*G,De=ee*ee,Ie=(re===oe?-1:1)*Math.sqrt(Math.abs((Te*De-Te*we*we-De*Pe*Pe)/(Te*we*we+De*Pe*Pe)));he=Ie*G*we/ee+(te+ie)/2,pe=Ie*-ee*Pe/G+(U+le)/2,fe=Math.asin((U-pe)/ee),ve=Math.asin((le-pe)/ee),fe=te<he?Math.PI-fe:fe,ve=ie<he?Math.PI-ve:ve,fe<0&&(fe=Math.PI*2+fe),ve<0&&(ve=Math.PI*2+ve),oe&&fe>ve&&(fe-=Math.PI*2),!oe&&ve>fe&&(ve-=Math.PI*2)}let ge=ve-fe;if(Math.abs(ge)>se){const Pe=ve,we=ie,ke=le;ve=fe+se*(oe&&ve>fe?1:-1),ie=he+G*Math.cos(ve),le=pe+ee*Math.sin(ve),ce=a2c(ie,le,G,ee,ne,0,oe,we,ke,[ve,Pe,he,pe])}ge=ve-fe;const me=Math.cos(fe),_e=Math.sin(fe),ye=Math.cos(ve),be=Math.sin(ve),xe=Math.tan(ge/4),Ce=4/3*(G*xe),$e=4/3*(ee*xe),Ee=[te,U],Ve=[te+Ce*_e,U-$e*me],Ne=[ie+Ce*be,le-$e*ye],Se=[ie,le];if(Ve[0]=2*Ee[0]-Ve[0],Ve[1]=2*Ee[1]-Ve[1],ae)return[Ve,Ne,Se].concat(ce);{ce=[Ve,Ne,Se].concat(ce).join().split(",");const Pe=[],we=ce.length;for(let ke=0;ke<we;ke+=1)Pe[ke]=ke%2?rotate(+ce[ke-1],+ce[ke],ue).y:rotate(+ce[ke],+ce[ke+1],ue).x;return Pe}}function parse(te){if(!te)return null;const U=`
906
906
  \v\f\r   ᠎              \u2028\u2029`,G=new RegExp(`([a-z])[${U},]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[${U}]*,?[${U}]*)+)`,"ig"),ee=new RegExp(`(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[${U}]*,?[${U}]*`,"ig"),ne={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},re=[];return te.replace(G,(oe,ie,le)=>{const ae=[];let se=ie.toLowerCase();le.replace(ee,(ce,de)=>(de&&ae.push(+de),ce)),se==="m"&&ae.length>2&&(re.push([ie,...ae.splice(0,2)]),se="l",ie=ie==="m"?"l":"L");const ue=ne[se];for(;ae.length>=ue&&(re.push([ie,...ae.splice(0,ue)]),!!ue););return oe}),re}function abs(te){const U=parse(te);if(!U||!U.length)return[["M",0,0]];let G=0,ee=0,ne=0,re=0;const oe=[];for(let ie=0,le=U.length;ie<le;ie+=1){const ae=[];oe.push(ae);const se=U[ie],ue=se[0];if(ue!==ue.toUpperCase())switch(ae[0]=ue.toUpperCase(),ae[0]){case"A":ae[1]=se[1],ae[2]=se[2],ae[3]=se[3],ae[4]=se[4],ae[5]=se[5],ae[6]=+se[6]+G,ae[7]=+se[7]+ee;break;case"V":ae[1]=+se[1]+ee;break;case"H":ae[1]=+se[1]+G;break;case"M":ne=+se[1]+G,re=+se[2]+ee;for(let ce=1,de=se.length;ce<de;ce+=1)ae[ce]=+se[ce]+(ce%2?G:ee);break;default:for(let ce=1,de=se.length;ce<de;ce+=1)ae[ce]=+se[ce]+(ce%2?G:ee);break}else for(let ce=0,de=se.length;ce<de;ce+=1)ae[ce]=se[ce];switch(ae[0]){case"Z":G=+ne,ee=+re;break;case"H":G=ae[1];break;case"V":ee=ae[1];break;case"M":ne=ae[ae.length-2],re=ae[ae.length-1],G=ae[ae.length-2],ee=ae[ae.length-1];break;default:G=ae[ae.length-2],ee=ae[ae.length-1];break}}return oe}function normalize$1(te){const U=abs(te),G={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null};function ee(le,ae,se){let ue,ce;if(!le)return["C",ae.x,ae.y,ae.x,ae.y,ae.x,ae.y];switch(le[0]in{T:1,Q:1}||(ae.qx=null,ae.qy=null),le[0]){case"M":ae.X=le[1],ae.Y=le[2];break;case"A":return parseFloat(le[1])===0||parseFloat(le[2])===0?["L",le[6],le[7]]:["C"].concat(a2c.apply(0,[ae.x,ae.y].concat(le.slice(1))));case"S":return se==="C"||se==="S"?(ue=ae.x*2-ae.bx,ce=ae.y*2-ae.by):(ue=ae.x,ce=ae.y),["C",ue,ce].concat(le.slice(1));case"T":return se==="Q"||se==="T"?(ae.qx=ae.x*2-ae.qx,ae.qy=ae.y*2-ae.qy):(ae.qx=ae.x,ae.qy=ae.y),["C"].concat(q2c(ae.x,ae.y,ae.qx,ae.qy,le[1],le[2]));case"Q":return ae.qx=le[1],ae.qy=le[2],["C"].concat(q2c(ae.x,ae.y,le[1],le[2],le[3],le[4]));case"H":return["L"].concat(le[1],ae.y);case"V":return["L"].concat(ae.x,le[1])}return le}function ne(le,ae){if(le[ae].length>7){le[ae].shift();const se=le[ae];for(;se.length;)re[ae]="A",ae+=1,le.splice(ae,0,["C"].concat(se.splice(0,6)));le.splice(ae,1),ie=U.length}}const re=[];let oe="",ie=U.length;for(let le=0;le<ie;le+=1){let ae="";U[le]&&(ae=U[le][0]),ae!=="C"&&(re[le]=ae,le>0&&(oe=re[le-1])),U[le]=ee(U[le],G,oe),re[le]!=="A"&&ae==="C"&&(re[le]="C"),ne(U,le);const se=U[le],ue=se.length;G.x=se[ue-2],G.y=se[ue-1],G.bx=parseFloat(se[ue-4])||G.x,G.by=parseFloat(se[ue-3])||G.y}return(!U[0][0]||U[0][0]!=="M")&&U.unshift(["M",0,0]),U}function normalizePathData(te){return normalize$1(te).map(U=>U.map(G=>typeof G=="string"?G:GeometryUtil.round(G,2))).join(",").split(",").join(" ")}class Path extends Geometry{constructor(U){if(super(),this.PRECISION=3,this.segments=[],Array.isArray(U))if(Line.isLine(U[0])||Curve.isCurve(U[0])){let G=null;U.forEach((ne,re)=>{re===0&&this.appendSegment(Path.createSegment("M",ne.start)),G!=null&&!G.end.equals(ne.start)&&this.appendSegment(Path.createSegment("M",ne.start)),Line.isLine(ne)?this.appendSegment(Path.createSegment("L",ne.end)):Curve.isCurve(ne)&&this.appendSegment(Path.createSegment("C",ne.controlPoint1,ne.controlPoint2,ne.end)),G=ne})}else U.forEach(ee=>{ee.isSegment&&this.appendSegment(ee)});else U!=null&&(Line.isLine(U)?(this.appendSegment(Path.createSegment("M",U.start)),this.appendSegment(Path.createSegment("L",U.end))):Curve.isCurve(U)?(this.appendSegment(Path.createSegment("M",U.start)),this.appendSegment(Path.createSegment("C",U.controlPoint1,U.controlPoint2,U.end))):Polyline.isPolyline(U)?U.points&&U.points.length&&U.points.forEach((G,ee)=>{const ne=ee===0?Path.createSegment("M",G):Path.createSegment("L",G);this.appendSegment(ne)}):U.isSegment&&this.appendSegment(U))}get start(){const U=this.segments,G=U.length;if(G===0)return null;for(let ee=0;ee<G;ee+=1){const ne=U[ee];if(ne.isVisible)return ne.start}return U[G-1].end}get end(){const U=this.segments,G=U.length;if(G===0)return null;for(let ee=G-1;ee>=0;ee-=1){const ne=U[ee];if(ne.isVisible)return ne.end}return U[G-1].end}moveTo(...U){return this.appendSegment(MoveTo.create.call(null,...U))}lineTo(...U){return this.appendSegment(LineTo.create.call(null,...U))}curveTo(...U){return this.appendSegment(CurveTo.create.call(null,...U))}arcTo(U,G,ee,ne,re,oe,ie){const le=this.end||new Point,ae=typeof oe=="number"?arcToCurves(le.x,le.y,U,G,ee,ne,re,oe,ie):arcToCurves(le.x,le.y,U,G,ee,ne,re,oe.x,oe.y);if(ae!=null)for(let se=0,ue=ae.length;se<ue;se+=6)this.curveTo(ae[se],ae[se+1],ae[se+2],ae[se+3],ae[se+4],ae[se+5]);return this}quadTo(U,G,ee,ne){const re=this.end||new Point,oe=["M",re.x,re.y];if(typeof U=="number")oe.push("Q",U,G,ee,ne);else{const le=G;oe.push("Q",U.x,U.y,le.x,le.y)}const ie=Path.parse(oe.join(" "));return this.appendSegment(ie.segments.slice(1)),this}close(){return this.appendSegment(Close.create())}drawPoints(U,G={}){const ee=drawPoints(U,G),ne=Path.parse(ee);ne&&ne.segments&&this.appendSegment(ne.segments)}bbox(){const U=this.segments,G=U.length;if(G===0)return null;let ee;for(let re=0;re<G;re+=1){const oe=U[re];if(oe.isVisible){const ie=oe.bbox();ie!=null&&(ee=ee?ee.union(ie):ie)}}if(ee!=null)return ee;const ne=U[G-1];return new Rectangle(ne.end.x,ne.end.y,0,0)}appendSegment(U){const G=this.segments.length;let ee=G!==0?this.segments[G-1]:null,ne;const re=null;if(Array.isArray(U))for(let oe=0,ie=U.length;oe<ie;oe+=1){const le=U[oe];ne=this.prepareSegment(le,ee,re),this.segments.push(ne),ee=ne}else U!=null&&U.isSegment&&(ne=this.prepareSegment(U,ee,re),this.segments.push(ne));return this}insertSegment(U,G){const ee=this.segments.length;if(U<0&&(U=ee+U+1),U>ee||U<0)throw new Error("Index out of range.");let ne,re=null,oe=null;if(ee!==0&&(U>=1?(re=this.segments[U-1],oe=re.nextSegment):(re=null,oe=this.segments[0])),!Array.isArray(G))ne=this.prepareSegment(G,re,oe),this.segments.splice(U,0,ne);else for(let ie=0,le=G.length;ie<le;ie+=1){const ae=G[ie];ne=this.prepareSegment(ae,re,oe),this.segments.splice(U+ie,0,ne),re=ne}return this}removeSegment(U){const G=this.fixIndex(U),ee=this.segments.splice(G,1)[0],ne=ee.previousSegment,re=ee.nextSegment;return ne&&(ne.nextSegment=re),re&&(re.previousSegment=ne),ee.isSubpathStart&&re&&this.updateSubpathStartSegment(re),ee}replaceSegment(U,G){const ee=this.fixIndex(U);let ne;const re=this.segments[ee];let oe=re.previousSegment;const ie=re.nextSegment;let le=re.isSubpathStart;if(!Array.isArray(G))ne=this.prepareSegment(G,oe,ie),this.segments.splice(ee,1,ne),le&&ne.isSubpathStart&&(le=!1);else{this.segments.splice(U,1);for(let ae=0,se=G.length;ae<se;ae+=1){const ue=G[ae];ne=this.prepareSegment(ue,oe,ie),this.segments.splice(U+ae,0,ne),oe=ne,le&&ne.isSubpathStart&&(le=!1)}}le&&ie&&this.updateSubpathStartSegment(ie)}getSegment(U){const G=this.fixIndex(U);return this.segments[G]}fixIndex(U){const G=this.segments.length;if(G===0)throw new Error("Path has no segments.");let ee=U;for(;ee<0;)ee=G+ee;if(ee>=G||ee<0)throw new Error("Index out of range.");return ee}segmentAt(U,G={}){const ee=this.segmentIndexAt(U,G);return ee?this.getSegment(ee):null}segmentAtLength(U,G={}){const ee=this.segmentIndexAtLength(U,G);return ee?this.getSegment(ee):null}segmentIndexAt(U,G={}){if(this.segments.length===0)return null;const ee=GeometryUtil.clamp(U,0,1),ne=this.getOptions(G),oe=this.length(ne)*ee;return this.segmentIndexAtLength(oe,ne)}segmentIndexAtLength(U,G={}){const ee=this.segments.length;if(ee===0)return null;let ne=!0;U<0&&(ne=!1,U=-U);const re=this.getPrecision(G),oe=this.getSubdivisions(G);let ie=0,le=null;for(let ae=0;ae<ee;ae+=1){const se=ne?ae:ee-1-ae,ue=this.segments[se],ce=oe[se],de=ue.length({precision:re,subdivisions:ce});if(ue.isVisible){if(U<=ie+de)return se;le=se}ie+=de}return le}getSegmentSubdivisions(U={}){const G=this.getPrecision(U),ee=[];for(let ne=0,re=this.segments.length;ne<re;ne+=1){const ie=this.segments[ne].getSubdivisions({precision:G});ee.push(ie)}return ee}updateSubpathStartSegment(U){let G=U.previousSegment,ee=U;for(;ee&&!ee.isSubpathStart;)G!=null?ee.subpathStartSegment=G.subpathStartSegment:ee.subpathStartSegment=null,G=ee,ee=ee.nextSegment}prepareSegment(U,G,ee){U.previousSegment=G,U.nextSegment=ee,G!=null&&(G.nextSegment=U),ee!=null&&(ee.previousSegment=U);let ne=U;return U.isSubpathStart&&(U.subpathStartSegment=U,ne=ee),ne!=null&&this.updateSubpathStartSegment(ne),U}closestPoint(U,G={}){const ee=this.closestPointT(U,G);return ee?this.pointAtT(ee):null}closestPointLength(U,G={}){const ee=this.getOptions(G),ne=this.closestPointT(U,ee);return ne?this.lengthAtT(ne,ee):0}closestPointNormalizedLength(U,G={}){const ee=this.getOptions(G),ne=this.closestPointLength(U,ee);if(ne===0)return 0;const re=this.length(ee);return re===0?0:ne/re}closestPointT(U,G={}){if(this.segments.length===0)return null;const ee=this.getPrecision(G),ne=this.getSubdivisions(G);let re,oe=1/0;for(let ie=0,le=this.segments.length;ie<le;ie+=1){const ae=this.segments[ie],se=ne[ie];if(ae.isVisible){const ue=ae.closestPointT(U,{precision:ee,subdivisions:se}),ce=ae.pointAtT(ue),de=GeometryUtil.squaredLength(ce,U);de<oe&&(re={segmentIndex:ie,value:ue},oe=de)}}return re||{segmentIndex:this.segments.length-1,value:1}}closestPointTangent(U,G={}){if(this.segments.length===0)return null;const ee=this.getPrecision(G),ne=this.getSubdivisions(G);let re,oe=1/0;for(let ie=0,le=this.segments.length;ie<le;ie+=1){const ae=this.segments[ie],se=ne[ie];if(ae.isDifferentiable()){const ue=ae.closestPointT(U,{precision:ee,subdivisions:se}),ce=ae.pointAtT(ue),de=GeometryUtil.squaredLength(ce,U);de<oe&&(re=ae.tangentAtT(ue),oe=de)}}return re||null}containsPoint(U,G={}){const ee=this.toPolylines(G);if(!ee)return!1;let ne=0;for(let re=0,oe=ee.length;re<oe;re+=1)ee[re].containsPoint(U)&&(ne+=1);return ne%2===1}pointAt(U,G={}){if(this.segments.length===0)return null;if(U<=0)return this.start.clone();if(U>=1)return this.end.clone();const ee=this.getOptions(G),re=this.length(ee)*U;return this.pointAtLength(re,ee)}pointAtLength(U,G={}){if(this.segments.length===0)return null;if(U===0)return this.start.clone();let ee=!0;U<0&&(ee=!1,U=-U);const ne=this.getPrecision(G),re=this.getSubdivisions(G);let oe,ie=0;for(let ae=0,se=this.segments.length;ae<se;ae+=1){const ue=ee?ae:se-1-ae,ce=this.segments[ue],de=re[ue],fe=ce.length({precision:ne,subdivisions:de});if(ce.isVisible){if(U<=ie+fe)return ce.pointAtLength((ee?1:-1)*(U-ie),{precision:ne,subdivisions:de});oe=ce}ie+=fe}return oe?ee?oe.end:oe.start:this.segments[this.segments.length-1].end.clone()}pointAtT(U){const G=this.segments,ee=G.length;if(ee===0)return null;const ne=U.segmentIndex;if(ne<0)return G[0].pointAtT(0);if(ne>=ee)return G[ee-1].pointAtT(1);const re=GeometryUtil.clamp(U.value,0,1);return G[ne].pointAtT(re)}divideAt(U,G={}){if(this.segments.length===0)return null;const ee=GeometryUtil.clamp(U,0,1),ne=this.getOptions(G),oe=this.length(ne)*ee;return this.divideAtLength(oe,ne)}divideAtLength(U,G={}){if(this.segments.length===0)return null;let ee=!0;U<0&&(ee=!1,U=-U);const ne=this.getPrecision(G),re=this.getSubdivisions(G);let oe=0,ie,le,ae,se,ue;for(let ye=0,be=this.segments.length;ye<be;ye+=1){const xe=ee?ye:be-1-ye,Ce=this.getSegment(xe),$e=re[xe],Ee={precision:ne,subdivisions:$e},Ve=Ce.length(Ee);if(Ce.isDifferentiable()&&(ae=Ce,se=xe,U<=oe+Ve)){le=xe,ie=Ce.divideAtLength((ee?1:-1)*(U-oe),Ee);break}oe+=Ve}if(!ae)return null;ie||(le=se,ue=ee?1:0,ie=ae.divideAtT(ue));const ce=this.clone(),de=le;ce.replaceSegment(de,ie);const fe=de;let ve=de+1,he=de+2;ie[0].isDifferentiable()||(ce.removeSegment(fe),ve-=1,he-=1);const pe=ce.getSegment(ve).start;ce.insertSegment(ve,Path.createSegment("M",pe)),he+=1,ie[1].isDifferentiable()||(ce.removeSegment(he-1),he-=1);const ge=he-fe-1;for(let ye=he,be=ce.segments.length;ye<be;ye+=1){const xe=this.getSegment(ye-ge),Ce=ce.getSegment(ye);if(Ce.type==="Z"&&!xe.subpathStartSegment.end.equals(Ce.subpathStartSegment.end)){const $e=Path.createSegment("L",xe.end);ce.replaceSegment(ye,$e)}}const me=new Path(ce.segments.slice(0,ve)),_e=new Path(ce.segments.slice(ve));return[me,_e]}intersectsWithLine(U,G={}){const ee=this.toPolylines(G);if(ee==null)return null;let ne=null;for(let re=0,oe=ee.length;re<oe;re+=1){const ie=ee[re],le=U.intersect(ie);le&&(ne==null&&(ne=[]),Array.isArray(le)?ne.push(...le):ne.push(le))}return ne}isDifferentiable(){for(let U=0,G=this.segments.length;U<G;U+=1)if(this.segments[U].isDifferentiable())return!0;return!1}isValid(){const U=this.segments;return U.length===0||U[0].type==="M"}length(U={}){if(this.segments.length===0)return 0;const G=this.getSubdivisions(U);let ee=0;for(let ne=0,re=this.segments.length;ne<re;ne+=1){const oe=this.segments[ne],ie=G[ne];ee+=oe.length({subdivisions:ie})}return ee}lengthAtT(U,G={}){const ee=this.segments.length;if(ee===0)return 0;let ne=U.segmentIndex;if(ne<0)return 0;let re=GeometryUtil.clamp(U.value,0,1);ne>=ee&&(ne=ee-1,re=1);const oe=this.getPrecision(G),ie=this.getSubdivisions(G);let le=0;for(let ue=0;ue<ne;ue+=1){const ce=this.segments[ue],de=ie[ue];le+=ce.length({precision:oe,subdivisions:de})}const ae=this.segments[ne],se=ie[ne];return le+=ae.lengthAtT(re,{precision:oe,subdivisions:se}),le}tangentAt(U,G={}){if(this.segments.length===0)return null;const ee=GeometryUtil.clamp(U,0,1),ne=this.getOptions(G),oe=this.length(ne)*ee;return this.tangentAtLength(oe,ne)}tangentAtLength(U,G={}){if(this.segments.length===0)return null;let ee=!0;U<0&&(ee=!1,U=-U);const ne=this.getPrecision(G),re=this.getSubdivisions(G);let oe,ie=0;for(let le=0,ae=this.segments.length;le<ae;le+=1){const se=ee?le:ae-1-le,ue=this.segments[se],ce=re[se],de=ue.length({precision:ne,subdivisions:ce});if(ue.isDifferentiable()){if(U<=ie+de)return ue.tangentAtLength((ee?1:-1)*(U-ie),{precision:ne,subdivisions:ce});oe=ue}ie+=de}if(oe){const le=ee?1:0;return oe.tangentAtT(le)}return null}tangentAtT(U){const G=this.segments.length;if(G===0)return null;const ee=U.segmentIndex;if(ee<0)return this.segments[0].tangentAtT(0);if(ee>=G)return this.segments[G-1].tangentAtT(1);const ne=GeometryUtil.clamp(U.value,0,1);return this.segments[ee].tangentAtT(ne)}getPrecision(U={}){return U.precision==null?this.PRECISION:U.precision}getSubdivisions(U={}){if(U.segmentSubdivisions==null){const G=this.getPrecision(U);return this.getSegmentSubdivisions({precision:G})}return U.segmentSubdivisions}getOptions(U={}){const G=this.getPrecision(U),ee=this.getSubdivisions(U);return{precision:G,segmentSubdivisions:ee}}toPoints(U={}){const G=this.segments,ee=G.length;if(ee===0)return null;const ne=this.getSubdivisions(U),re=[];let oe=[];for(let ie=0;ie<ee;ie+=1){const le=G[ie];if(le.isVisible){const ae=ne[ie];ae.length>0?ae.forEach(se=>oe.push(se.start)):oe.push(le.start)}else oe.length>0&&(oe.push(G[ie-1].end),re.push(oe),oe=[])}return oe.length>0&&(oe.push(this.end),re.push(oe)),re}toPolylines(U={}){const G=this.toPoints(U);return G?G.map(ee=>new Polyline(ee)):null}scale(U,G,ee){return this.segments.forEach(ne=>ne.scale(U,G,ee)),this}rotate(U,G){return this.segments.forEach(ee=>ee.rotate(U,G)),this}translate(U,G){return typeof U=="number"?this.segments.forEach(ee=>ee.translate(U,G)):this.segments.forEach(ee=>ee.translate(U)),this}clone(){const U=new Path;return this.segments.forEach(G=>U.appendSegment(G.clone())),U}equals(U){if(U==null)return!1;const G=this.segments,ee=U.segments,ne=G.length;if(ee.length!==ne)return!1;for(let re=0;re<ne;re+=1){const oe=G[re],ie=ee[re];if(oe.type!==ie.type||!oe.equals(ie))return!1}return!0}toJSON(){return this.segments.map(U=>U.toJSON())}serialize(){if(!this.isValid())throw new Error("Invalid path segments.");return this.segments.map(U=>U.serialize()).join(" ")}toString(){return this.serialize()}}(function(te){function U(G){return G!=null&&G instanceof te}te.isPath=U})(Path||(Path={})),function(te){function U(ee){if(!ee)return new te;const ne=new te,re=/(?:[a-zA-Z] *)(?:(?:-?\d+(?:\.\d+)?(?:e[-+]?\d+)? *,? *)|(?:-?\.\d+ *,? *))+|(?:[a-zA-Z] *)(?! |\d|-|\.)/g,oe=te.normalize(ee).match(re);if(oe!=null)for(let ie=0,le=oe.length;ie<le;ie+=1){const ae=oe[ie],se=/(?:[a-zA-Z])|(?:(?:-?\d+(?:\.\d+)?(?:e[-+]?\d+)?))|(?:(?:-?\.\d+))/g,ue=ae.match(se);if(ue!=null){const ce=ue[0],de=ue.slice(1).map(ve=>+ve),fe=G.call(null,ce,...de);ne.appendSegment(fe)}}return ne}te.parse=U;function G(ee,...ne){if(ee==="M")return MoveTo.create.call(null,...ne);if(ee==="L")return LineTo.create.call(null,...ne);if(ee==="C")return CurveTo.create.call(null,...ne);if(ee==="z"||ee==="Z")return Close.create();throw new Error(`Invalid path segment type "${ee}"`)}te.createSegment=G}(Path||(Path={})),function(te){te.normalize=normalizePathData,te.isValid=isValid,te.drawArc=drawArc,te.drawPoints=drawPoints,te.arcToCurves=arcToCurves}(Path||(Path={}));class Registry{constructor(U){this.options=Object.assign({},U),this.data=this.options.data||{},this.register=this.register.bind(this),this.unregister=this.unregister.bind(this)}get names(){return Object.keys(this.data)}register(U,G,ee=!1){if(typeof U=="object"){Object.entries(U).forEach(([oe,ie])=>{this.register(oe,ie,G)});return}this.exist(U)&&!ee&&!Platform.isApplyingHMR()&&this.onDuplicated(U);const ne=this.options.process,re=ne?call$1(ne,this,U,G):G;return this.data[U]=re,re}unregister(U){const G=U?this.data[U]:null;return delete this.data[U],G}get(U){return U?this.data[U]:null}exist(U){return U?this.data[U]!=null:!1}onDuplicated(U){try{throw this.options.onConflict&&call$1(this.options.onConflict,this,U),new Error(`${upperFirst$1(this.options.type)} with name '${U}' already registered.`)}catch(G){throw G}}onNotFound(U,G){throw new Error(this.getSpellingSuggestion(U,G))}getSpellingSuggestion(U,G){const ee=this.getSpellingSuggestionForName(U),ne=G?`${G} ${lowerFirst$1(this.options.type)}`:this.options.type;return`${upperFirst$1(ne)} with name '${U}' does not exist.${ee?` Did you mean '${ee}'?`:""}`}getSpellingSuggestionForName(U){return getSpellingSuggestion(U,Object.keys(this.data),G=>G)}}(function(te){function U(G){return new te(G)}te.create=U})(Registry||(Registry={}));const dot={color:"#aaaaaa",thickness:1,markup:"rect",update(te,U){const G=U.thickness*U.sx,ee=U.thickness*U.sy;attr(te,{width:G,height:ee,rx:G,ry:ee,fill:U.color})}},fixedDot={color:"#aaaaaa",thickness:1,markup:"rect",update(te,U){const G=U.sx<=1?U.thickness*U.sx:U.thickness;attr(te,{width:G,height:G,rx:G,ry:G,fill:U.color})}},mesh={color:"rgba(224,224,224,1)",thickness:1,markup:"path",update(te,U){let G;const ee=U.width,ne=U.height,re=U.thickness;ee-re>=0&&ne-re>=0?G=["M",ee,0,"H0 M0 0 V0",ne].join(" "):G="M 0 0 0 0",attr(te,{d:G,stroke:U.color,"stroke-width":U.thickness})}},doubleMesh=[{color:"rgba(224,224,224,1)",thickness:1,markup:"path",update(te,U){let G;const ee=U.width,ne=U.height,re=U.thickness;ee-re>=0&&ne-re>=0?G=["M",ee,0,"H0 M0 0 V0",ne].join(" "):G="M 0 0 0 0",attr(te,{d:G,stroke:U.color,"stroke-width":U.thickness})}},{color:"rgba(224,224,224,0.2)",thickness:3,factor:4,markup:"path",update(te,U){let G;const ee=U.factor||1,ne=U.width*ee,re=U.height*ee,oe=U.thickness;ne-oe>=0&&re-oe>=0?G=["M",ne,0,"H0 M0 0 V0",re].join(" "):G="M 0 0 0 0",U.width=ne,U.height=re,attr(te,{d:G,stroke:U.color,"stroke-width":U.thickness})}}],patterns$1=Object.freeze(Object.defineProperty({__proto__:null,dot,doubleMesh,fixedDot,mesh},Symbol.toStringTag,{value:"Module"}));class Grid{constructor(){this.patterns={},this.root=Vector.create(createSvgDocument(),{width:"100%",height:"100%"},[createSvgElement("defs")]).node}add(U,G){const ee=this.root.childNodes[0];ee&&ee.appendChild(G),this.patterns[U]=G,Vector.create("rect",{width:"100%",height:"100%",fill:`url(#${U})`}).appendTo(this.root)}get(U){return this.patterns[U]}has(U){return this.patterns[U]!=null}}(function(te){te.presets=patterns$1,te.registry=Registry.create({type:"grid"}),te.registry.register(te.presets,!0)})(Grid||(Grid={}));const flipX=function(te){const U=document.createElement("canvas"),G=te.width,ee=te.height;U.width=G*2,U.height=ee;const ne=U.getContext("2d");return ne.drawImage(te,0,0,G,ee),ne.translate(2*G,0),ne.scale(-1,1),ne.drawImage(te,0,0,G,ee),U},flipY=function(te){const U=document.createElement("canvas"),G=te.width,ee=te.height;U.width=G,U.height=ee*2;const ne=U.getContext("2d");return ne.drawImage(te,0,0,G,ee),ne.translate(0,2*ee),ne.scale(1,-1),ne.drawImage(te,0,0,G,ee),U},flipXY=function(te){const U=document.createElement("canvas"),G=te.width,ee=te.height;U.width=2*G,U.height=2*ee;const ne=U.getContext("2d");return ne.drawImage(te,0,0,G,ee),ne.setTransform(-1,0,0,-1,U.width,U.height),ne.drawImage(te,0,0,G,ee),ne.setTransform(-1,0,0,1,U.width,0),ne.drawImage(te,0,0,G,ee),ne.setTransform(1,0,0,-1,0,U.height),ne.drawImage(te,0,0,G,ee),U},watermark=function(te,U){const G=te.width,ee=te.height,ne=document.createElement("canvas");ne.width=G*3,ne.height=ee*3;const re=ne.getContext("2d"),oe=U.angle!=null?-U.angle:-20,ie=Angle.toRad(oe),le=ne.width/4,ae=ne.height/4;for(let se=0;se<4;se+=1)for(let ue=0;ue<4;ue+=1)(se+ue)%2>0&&(re.setTransform(1,0,0,1,(2*se-1)*le,(2*ue-1)*ae),re.rotate(ie),re.drawImage(te,-G/2,-ee/2,G,ee));return ne},patterns=Object.freeze(Object.defineProperty({__proto__:null,flipX,flipXY,flipY,watermark},Symbol.toStringTag,{value:"Module"}));var Background;(function(te){te.presets=Object.assign({},patterns),te.presets["flip-x"]=flipX,te.presets["flip-y"]=flipY,te.presets["flip-xy"]=flipXY,te.registry=Registry.create({type:"background pattern"}),te.registry.register(te.presets,!0)})(Background||(Background={}));function getString(te,U){return te??U}function getNumber(te,U){return te!=null&&Number.isFinite(te)?te:U}function outline(te={}){const U=getString(te.color,"blue"),G=getNumber(te.width,1),ee=getNumber(te.margin,2),ne=getNumber(te.opacity,1),re=ee,oe=ee+G;return`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ace-component-lib",
3
- "version": "0.0.75",
3
+ "version": "0.0.76",
4
4
  "main": "./dist/ace-component-lib.umd.js",
5
5
  "files": [
6
6
  "dist/*"