ace-component-lib 0.0.76 → 0.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ace-component-lib.umd.js +3 -3
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -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.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}}});/*!
|
|
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.77",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
|
*
|
|
@@ -894,13 +894,13 @@ ${ue} div ,${ue} span,${ue} a,${ue} * {
|
|
|
894
894
|
}`),Ve=vue.ref([]),Ne=vue.ref(!1),Se=vue.ref([]),Pe=vue.ref(!1),we=vue.ref(null),ke=vue.ref(""),Te=vue.computed(()=>Be.find(Oe=>Oe.fieldName=="extractType"));vue.watch(_e,Oe=>{Oe&&!vue.unref(Se).length&&Re("javascript",!1)});const De=(Oe=!1)=>{const Le=Me.find(Ge=>Ge.fieldName=="modelLayer");Oe&&(Le.value=""),(Le.options??[]).forEach(Ge=>{Ge.disabled=vue.unref(he)=="view",Ge.value=="ODSVIEW"&&(Ge.disabled=vue.unref(he)!="view")})},Ie=vue.ref(""),Me=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},hide:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},optionsSuccess:()=>{De()},changeFunc:Oe=>{const Le=Me.find(qe=>qe.fieldName==="modelType");Le.required=Oe.value=="DWD",Le.disabled=Oe.value!="DWD";const Ge=`${((Oe==null?void 0:Oe.value)??"").toLocaleLowerCase()}_`;Ie.value=Ge,Me.find(qe=>qe.fieldName==="modelCode").prepend=vue.h("div",{},Ge)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"}}]);vue.watch(he,Oe=>{ve.value=[{label:"输出结果",value:"1",num:"②",isRequired:!1}],Oe=="view"?ve.value.push({label:"输出模型",value:"2",num:"③",isRequired:!1}):ee.widgetType=="model-add"?ve.value.push({label:"ETL插件编写",value:"2",num:"③",isRequired:!1},{label:"输出模型",value:"3",num:"④",isRequired:!0},{label:"方案作业配置",value:"4",num:"⑤",isRequired:!0}):ve.value.push({label:"ETL插件编写",value:"2",num:"③",isRequired:!1},{label:"方案作业配置",value:"4",num:"④",isRequired:!0}),De(!0)},{immediate:!0});const Be=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:Oe=>{Be.find(Le=>Le.fieldName=="incrementalField").hide=Oe.value!=2}},{name:"增量字段",type:FieldType.Slot,fieldName:"incrementalField",value:"",required:!0,hide:!0,tip:"该字段必须为本模型字段,并且是SQL结果集中存在的字段"},{name:"taskDefinedId",type:FieldType.Text,fieldName:"taskDefinedId",hide:!0},{name:"id",type:FieldType.Text,fieldName:"id",hide:!0}]),Ae=vue.ref(null),ze=(Oe={})=>{vue.nextTick(()=>{if(he.value=ee.widgetType.indexOf("ODSVIEW")==-1?"dataTable":"view",oe(Oe??{},Be),Oe!=null&&Oe.taskDefined&&(Pe.value=!0),ee.widgetType.indexOf("ODSVIEW")>=0&&(pe.value="2"),Ce.value=(Oe==null?void 0:Oe.extractSql)??"",Ee.value=(Oe==null?void 0:Oe.extractPluginScript)??`function plugin(item){
|
|
895
895
|
var data=JSON.parse(item);
|
|
896
896
|
return JSON.stringify(data)
|
|
897
|
-
}`,vue.unref(we).init((Oe==null?void 0:Oe.taskDefined)??{}),Ae.value=(Oe==null?void 0:Oe.taskDefined)??null,be.value="",re.$baseHttp.get("/api/ace-data-center/data-source/options?type=3").then(Le=>{xe.value=Le.data}),ee.widgetType.indexOf("ODSVIEW")>=0){Oe.modelCode=Oe.modelCode.replace("odsview_",""),oe({...Oe,projectId:re.$baseGetCurrentProjectId()},Me),Oe.viewQuerySql&&(Ce.value=Oe.viewQuerySql);return}oe({modelLayer:"",projectId:re.$baseGetCurrentProjectId()},Me)})},Re=async(Oe,Le=!0)=>{Ne.value=!0;const Ge={dataSourceId:vue.unref(be),extractSql:vue.unref(Ce),projectId:re.$baseGetCurrentProjectId()};Oe==="javascript"&&(Ge.extractPluginScript=vue.unref(Ee)||"",Ge.streamType=Be.find(Ue=>Ue.fieldName=="streamType").value);const qe=await re.$baseHttp.post("/api/ace-data-center/db-extract/dbExtractDebug",Ge);Ne.value=!1,qe&&(Oe==="sql"?$e.value=qe.data:(Ve.value=qe.data,ee.widgetType=="model-add"&&re.$baseHttp.post("/api/ace-data-center/model/autoParseToModel",Ge).then(Ue=>{Ue&&(Se.value=Ue.data)})),Le&&le({type:"success",message:"执行成功"}))},Fe=async()=>{vue.nextTick(async()=>{var Ge;let Oe;if(!vue.unref(Ce)){le({type:"warning",message:"请输入SQL"});return}if(!vue.unref(Ee)){le({type:"warning",message:"请输入javascript"});return}let Le={};if(!(vue.unref(he)=="dataTable"&&(Le=je(),!Le))){if(ee.widgetType=="model-add"||ee.widgetType.indexOf("ODSVIEW")>=0){pe.value=vue.unref(he)=="view"?"2":"3";const{params:qe,error:Ue}=ie(Me);if(Ue.length>0)return;if(!await((Ge=vue.unref(ye))==null?void 0:Ge.validate())){le({type:"warning",message:"映射字段有误请核对"});return}const Ye=vue.unref(ye).isRepeat();if(Ye!==""){re.$baseAlert({content:Ye});return}if(!vue.unref(Se).length){le({type:"warning",message:"字段不能为空"});return}const Je={...qe,modelCode:vue.unref(Ie)+qe.modelCode,dataSourceId:vue.unref(be),projectId:String(re.$baseGetCurrentProjectId()),listModelAttribute:vue.unref(Se),viewQuerySql:qe.modelLayer==="ODSVIEW"?vue.unref(Ce):""};if(ee.widgetType.indexOf("ODSVIEW")>=0&&Je.listModelAttribute.forEach(Xe=>{delete Xe.id}),Oe=await re.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",Je,{headers:{loading:!0}}),!Oe||(ke.value=Oe.data,Oe=await re.$baseHttp.post(`/api/ace-data-center/model/settingPublishStatus/${vue.unref(ke)}/2`),!Oe))return}vue.unref(he)!="view"&&(Oe=await re.$baseHttp.post("/api/ace-data-center/db-extract/submitDbExtract",{execExtract:0,dataSourceId:vue.unref(be),modelId:vue.unref(ke),projectId:re.$baseGetCurrentProjectId(),...Le}),!Oe)||(le({type:"success",message:"操作成功"}),ne("success"))}})},je=()=>{const{params:Oe,error:Le}=ie(Be);if(Le.length>0){pe.value="3",le({type:"warning",message:"方案配置有误"});return}if(vue.unref(Pe)){const{params:Ge,error:qe}=vue.unref(we).getForm();if(qe.length>0){pe.value="3",le({type:"warning",message:"作业配置有误"});return}Oe.taskDefined={...vue.unref(Ae)??{},...Ge}}return{...Oe,extractPluginScript:vue.unref(Ee),extractSql:vue.unref(Ce)}};return U({init:ze,modelId:ke,listModelAttribute:Se,extractSql:Ce,handleSubmit:Fe}),(Oe,Le)=>{var Xe,Ke;const Ge=vue.resolveComponent("AppCodemirror"),qe=vue.resolveComponent("AppTable"),Ue=vue.resolveComponent("AppJson"),We=vue.resolveComponent("AppForm"),Ye=vue.resolveComponent("aceHeader"),Je=vue.resolveComponent("AppTaskDesign");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$F,[vue.createElementVNode("div",_hoisted_2$y,[vue.createElementVNode("div",_hoisted_3$t,[vue.createElementVNode("div",_hoisted_4$p,[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ue,He=>vue.createElementVNode("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(ce)==He.value}]),onClick:Qe=>fe.value=He.value},[vue.createElementVNode("span",_hoisted_6$g,vue.toDisplayString(He.num),1),vue.createTextVNode(" "+vue.toDisplayString(He.label),1)],10,_hoisted_5$k)),64)),vue.createElementVNode("span",_hoisted_7$e,[vue.createTextVNode(" 当前数据仓库为: "),vue.createElementVNode("span",_hoisted_8$b,vue.toDisplayString(vue.unref(se)),1),vue.createTextVNode(" 注意sql语法 ")]),vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:vue.unref(be),"onUpdate:modelValue":Le[0]||(Le[0]=He=>vue.isRef(be)?be.value=He:null),placeholder:"请选择数据源选项",clearable:!0,teleported:!1,class:"w-40 ml-2",size:"small"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(xe),He=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:He.code,label:He.label,value:He.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_9$a,[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(Ne),type:"warning",class:"flex items-center",onClick:Le[1]||(Le[1]=He=>Re("sql"))},{default:vue.withCtx(()=>[_hoisted_10$9,vue.createTextVNode(" 执行SQL ")]),_:1},8,["disabled"])])]),vue.createElementVNode("div",_hoisted_11$7,[vue.unref(ce)=="1"?(vue.openBlock(),vue.createBlock(Ge,{key:0,extensions:"sql",modelValue:vue.unref(Ce),"onUpdate:modelValue":Le[2]||(Le[2]=He=>vue.isRef(Ce)?Ce.value=He:null),style:{height:"100%"}},null,8,["modelValue"])):vue.createCommentVNode("",!0)])]),vue.createElementVNode("div",_hoisted_12$6,[vue.createElementVNode("div",_hoisted_13$4,[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(de,He=>vue.createElementVNode("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(fe)==He.value}]),onClick:Qe=>fe.value=He.value},vue.toDisplayString(He.label),11,_hoisted_14$3)),64))]),vue.createElementVNode("div",_hoisted_15$2,[vue.unref(fe)=="1"?(vue.openBlock(),vue.createBlock(qe,{key:0,tableData:(Xe=vue.unref($e))!=null&&Xe.length?Object.keys(vue.unref($e)[0]).map(He=>({label:He,prop:He})):[],list:vue.unref($e)??[]},null,8,["tableData","list"])):vue.createCommentVNode("",!0),vue.unref(fe)=="2"?(vue.openBlock(),vue.createBlock(Ue,{key:1,style:{height:"100%"},modelValue:vue.unref($e),"onUpdate:modelValue":Le[3]||(Le[3]=He=>vue.isRef($e)?$e.value=He:null)},null,8,["modelValue"])):vue.createCommentVNode("",!0)])])]),vue.createElementVNode("div",_hoisted_16$2,[vue.createElementVNode("div",_hoisted_17$2,[vue.createElementVNode("div",_hoisted_18$2,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ve),He=>(vue.openBlock(),vue.createElementBlock("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(pe)==He.value}]),onClick:Qe=>pe.value=He.value},[He.isRequired?(vue.openBlock(),vue.createElementBlock("span",_hoisted_20$2,"*")):vue.createCommentVNode("",!0),vue.createElementVNode("span",_hoisted_21$2,vue.toDisplayString(He.num),1),vue.createTextVNode(" "+vue.toDisplayString(He.label),1)],10,_hoisted_19$2))),256)),vue.unref(he)!="view"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_22$2,[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(Ne),type:"warning",class:"flex items-center",onClick:Le[4]||(Le[4]=He=>Re("javascript"))},{default:vue.withCtx(()=>[_hoisted_23$1,vue.createTextVNode(" 执行插件 ")]),_:1},8,["disabled"])])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_24$1,[vue.unref(pe)=="1"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_25$1,[vue.createVNode(vue.unref(elementPlus.ElRadioGroup),{modelValue:vue.unref(he),"onUpdate:modelValue":Le[5]||(Le[5]=He=>vue.isRef(he)?he.value=He:null)},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElRadioButton),{value:"view",disabled:Oe.widgetType!="model-add"&&Oe.widgetType.indexOf("ODSVIEW")==-1},{default:vue.withCtx(()=>[_hoisted_26$1,vue.createTextVNode(" 保存为视图 ")]),_:1},8,["disabled"]),vue.createVNode(vue.unref(elementPlus.ElRadioButton),{value:"dataTable",disabled:Oe.widgetType.indexOf("ODSVIEW")>=0},{default:vue.withCtx(()=>[_hoisted_27,vue.createTextVNode(" 保存为数据表 ")]),_:1},8,["disabled"])]),_:1},8,["modelValue"])])):vue.createCommentVNode("",!0),vue.unref(he)=="dataTable"&&vue.unref(pe)=="2"?(vue.openBlock(),vue.createBlock(Ge,{key:1,modelValue:vue.unref(Ee),"onUpdate:modelValue":Le[6]||(Le[6]=He=>vue.isRef(Ee)?Ee.value=He:null),style:{height:"100%"}},null,8,["modelValue"])):vue.createCommentVNode("",!0),vue.withDirectives(vue.createElementVNode("div",_hoisted_28,[vue.createVNode(We,{form:vue.unref(Me),col:1,class:"mt-2"},null,8,["form"]),vue.createVNode(vue.unref(elementPlus.ElPopover),{placement:"top-end",trigger:"click",width:"1000px",teleported:!1,visible:vue.unref(_e),"onUpdate:visible":Le[8]||(Le[8]=He=>vue.isRef(_e)?_e.value=He:null)},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",class:"ml-7"},{default:vue.withCtx(()=>[_hoisted_30,vue.createTextVNode(" 字段映射("+vue.toDisplayString(vue.unref(Se).length)+") ",1)]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_29,[vue.createVNode(Attribute,{ref_key:"attributeRef",ref:ye,modelValue:vue.unref(Se),"onUpdate:modelValue":Le[7]||(Le[7]=He=>vue.isRef(Se)?Se.value=He:null)},null,8,["modelValue"])])]),_:1},8,["visible"])],512),[[vue.vShow,vue.unref(he)=="view"&&vue.unref(pe)=="2"||vue.unref(he)=="dataTable"&&vue.unref(pe)=="3"]]),vue.withDirectives(vue.createElementVNode("div",_hoisted_31,[vue.createVNode(We,{form:vue.unref(Be)},{incrementalField:vue.withCtx(({element:He})=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,modelValue:He.value,"onUpdate:modelValue":Qe=>He.value=Qe,placeholder:"请选择"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(Se),Qe=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Qe.id,label:`${Qe.attributeCode}(${Qe.attributeComment||Qe.attributeCode})`,value:Qe.attributeCode},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:1},8,["form"]),vue.withDirectives(vue.createElementVNode("div",_hoisted_32,[vue.createVNode(Ye,{title:"作业配置",class:"mb-2"},{left:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{class:"ml-2",modelValue:vue.unref(Pe),"onUpdate:modelValue":Le[9]||(Le[9]=He=>vue.isRef(Pe)?Pe.value=He:null)},{default:vue.withCtx(()=>[vue.createTextVNode("作业配置")]),_:1},8,["modelValue"])]),_:1}),vue.withDirectives(vue.createElementVNode("div",null,[vue.createVNode(Je,{ref_key:"taskDesignRef",ref:we},null,512)],512),[[vue.vShow,vue.unref(Pe)]])],512),[[vue.vShow,["1","2"].includes(vue.unref(Te).value)]])],512),[[vue.vShow,vue.unref(pe)=="4"]])])]),vue.unref(he)!="view"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_33,[vue.createElementVNode("div",_hoisted_34,[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ge,He=>vue.createElementVNode("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(me)==He.value}]),onClick:Qe=>me.value=He.value},vue.toDisplayString(He.label),11,_hoisted_35)),64))]),vue.createElementVNode("div",_hoisted_36,[vue.unref(me)=="1"?(vue.openBlock(),vue.createBlock(qe,{key:0,tableData:(Ke=vue.unref(Ve))!=null&&Ke.length?Object.keys(vue.unref(Ve)[0]).map(He=>({label:He,prop:He})):[],list:vue.unref(Ve)??[]},null,8,["tableData","list"])):vue.createCommentVNode("",!0),vue.unref(me)=="2"?(vue.openBlock(),vue.createBlock(Ue,{key:1,style:{height:"100%"},modelValue:vue.unref(Ve),"onUpdate:modelValue":Le[10]||(Le[10]=He=>vue.isRef(Ve)?Ve.value=He:null)},null,8,["modelValue"])):vue.createCommentVNode("",!0)])])):vue.createCommentVNode("",!0)])])}}}),design_vue_vue_type_style_index_0_scoped_22676e4d_lang="",Design=_export_sfc$2(_sfc_main$O,[["__scopeId","data-v-22676e4d"]]),_withScopeId$e=te=>(vue.pushScopeId("data-v-6eba707e"),te=te(),vue.popScopeId(),te),_hoisted_1$E={class:"flex items-center mt-2"},_hoisted_2$x={class:"flex-1"},_hoisted_3$s={class:"mt-2 text-gray-400"},_hoisted_4$o={class:"text-xs text-gray-400"},_hoisted_5$j=_withScopeId$e(()=>vue.createElementVNode("label",null,"模型名称:",-1)),_hoisted_6$f=_withScopeId$e(()=>vue.createElementVNode("label",null,"模型代码:",-1)),_hoisted_7$d=_withScopeId$e(()=>vue.createElementVNode("label",null,"模型描述:",-1)),_sfc_main$N=vue.defineComponent({__name:"sql",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),oe=vue.ref(null),ie=vue.ref(!1),le=vue.ref(""),ae=vue.ref(""),se=vue.ref([]),ue=vue.ref({}),ce=(me,_e="")=>{ue.value={},se.value=[],ie.value=!0,le.value=me,[{label:"源数据",value:"odsy"},{label:"整合数据",value:"dwdy"}].forEach(ye=>{se.value.push({...ye,attributeList:{},options:[],selectValue:[],currentVal:"",checkAttributeList:[]})}),me!="model-add"&&me.indexOf("ODSVIEW")==-1&&se.value.push({label:"DWD目标",value:"dwdmb"}),ae.value=vue.unref(se)[0].value,fetch$1(re).allModel({modelLayer:"ODS"}).then(ye=>{vue.unref(se).find(be=>be.value=="odsy").options=ye.data}),fetch$1(re).allModel({modelLayer:"DWD"}).then(ye=>{vue.unref(se).find(be=>be.value=="dwdy").options=ye.data}),vue.nextTick(()=>{ee.modelId?(vue.unref(oe).modelId=ee.modelId,fetch$1(re).allModelAttribute({modelId:ee.modelId}).then(ye=>{const be=vue.unref(se).find(xe=>xe.value=="dwdmb");be&&(be.attributeList=ye.data),vue.unref(oe).listModelAttribute=ye.data}),re.$baseHttp.get(`/api/ace-data-center/model/detail?id=${ee.modelId}`,{headers:{loading:!0}}).then(ye=>{ue.value=ye.data,me.indexOf("ODSVIEW")>=0&&vue.unref(oe).init(ye.data)}),_e?re.$baseHttp.get(`/api/ace-data-center/db-extract/detailAndTask?dbExtractId=${_e}`).then(ye=>{vue.unref(oe).init(me=="COPY"?{...ye.data,id:null,extractType:null,incrementalField:null,status:null,taskDefined:null,taskDefinedId:null,createUser:null,createDept:null,createTime:null,updateUser:null,updateTime:null}:ye.data)}):vue.unref(oe).init()):vue.unref(oe).init()})},de=me=>{ae.value=me},fe=(me,_e="")=>_e?me.options.find(ye=>ye.id==_e):me.options.find(ye=>ye.id==me.currentVal),ve=me=>{var _e;if(me.selectValue.length){const ye=me.selectValue.at(-1);me.currentVal=(_e=fe(me,ye))==null?void 0:_e.id,he(me);return}me.currentVal=""},he=me=>{me.attributeList[me.currentVal]||fetch$1(re).allModelAttribute({modelId:me.currentVal}).then(_e=>{me.attributeList[me.currentVal]=_e.data})},pe=me=>{var _e;vue.unref(oe).extractSql+=`select ${me.checkAttributeList.map(ye=>ye.attributeCode).toString()} from ${(_e=fe(me))==null?void 0:_e.modelCode}`},ge=()=>{ie.value=!1,ne("success",le.value,vue.unref(oe).modelId)};return U({init:ce}),(me,_e)=>{const ye=vue.resolveComponent("aceHeader"),be=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(be,{modelValue:vue.unref(ie),"onUpdate:modelValue":_e[2]||(_e[2]=xe=>vue.isRef(ie)?ie.value=xe:null),title:"SQL数据整合抽取",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:_e[0]||(_e[0]=xe=>vue.unref(oe).handleSubmit())},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(me.$slots,"formFooter",{},void 0,!0),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:_e[1]||(_e[1]=xe=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"flex flex-col pr-4 mr-5",style:{width:"280px",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(se),xe=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{onClick:Ce=>de(xe.value),type:vue.unref(ae)==xe.value?"primary":"",key:xe.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(xe.label),1)]),_:2},1032,["onClick","type"]))),128))]),_:1}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(se),xe=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:xe.value},[xe.value==vue.unref(ae)&&["odsy","dwdy"].includes(xe.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(ye,{class:"mt-2",title:"模型选择"}),vue.createElementVNode("div",_hoisted_1$E,[vue.createElementVNode("div",_hoisted_2$x,[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:xe.selectValue,"onUpdate:modelValue":Ce=>xe.selectValue=Ce,teleported:!1,onChange:()=>ve(xe),multiple:"","collapse-tags":"",clearable:"",placeholder:"请选择一个模型",class:"w-full"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(xe.options,Ce=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Ce.id,label:Ce.modelName,value:Ce.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),xe.selectValue.length?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{key:0,placement:"right",width:"300",teleported:!1,trigger:"hover"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElBadge),{value:xe.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(xe.selectValue,Ce=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:Ce,type:xe.currentVal==Ce?"warning":"primary",onClick:$e=>{xe.currentVal=Ce,he(xe)},style:{margin:"0 7px 7px 0",cursor:"pointer"}},{default:vue.withCtx(()=>{var $e;return[vue.createTextVNode(vue.toDisplayString(($e=fe(xe,Ce))==null?void 0:$e.modelName),1)]}),_:2},1032,["type","onClick"]))),128))]),_:2},1024)):vue.createCommentVNode("",!0)]),xe.currentVal?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTooltip),{key:0,effect:"dark",content:`${fe(xe).modelName}[${fe(xe).modelCode}]`,placement:"bottom"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3$s,vue.toDisplayString(`${fe(xe).modelName}[${fe(xe).modelCode}]`),1)]),_:2},1032,["content"])):vue.createCommentVNode("",!0),vue.createVNode(ye,{class:"mt-2 mb-2",title:"字段属性"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:xe.checkAttributeList.length==0,type:"primary",onClick:Ce=>pe(xe)},{default:vue.withCtx(()=>[vue.createTextVNode(" 复制select语句到编辑框 ")]),_:2},1032,["disabled","onClick"])]),_:2},1024),vue.createVNode(vue.unref(elementPlus.ElTable),{data:xe.attributeList[xe.currentVal],height:"100%",size:"small",onSelectionChange:Ce=>xe.checkAttributeList=Ce},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{type:"selection",width:"40"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeCode",label:"字段"},{default:vue.withCtx(({row:Ce,$index:$e})=>[vue.createElementVNode("div",null,vue.toDisplayString(Ce.attributeCode),1),vue.createElementVNode("div",_hoisted_4$o,vue.toDisplayString(Ce.attributeComment),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{width:"80",prop:"dataType",label:"数据类型"})]),_:2},1032,["data","onSelectionChange"])],64)):vue.createCommentVNode("",!0),xe.value==vue.unref(ae)&&["dwdmb"].includes(xe.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(ye,{class:"mt-2",title:"DWD目标"}),vue.createElementVNode("section",null,[vue.createElementVNode("div",null,[_hoisted_5$j,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(ue).modelName),1)]),vue.createElementVNode("div",null,[_hoisted_6$f,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(ue).modelCode),1)]),vue.createElementVNode("div",null,[_hoisted_7$d,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(ue).modelDesc),1)])]),vue.createVNode(vue.unref(elementPlus.ElTable),{data:xe.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:Ce,$index:$e})=>[vue.createTextVNode(vue.toDisplayString(Ce.sourceModelName)+"."+vue.toDisplayString(Ce.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(Design,{ref_key:"designMainRef",ref:oe,widgetType:vue.unref(le),onSuccess:ge},null,8,["widgetType"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),sql_vue_vue_type_style_index_0_scoped_6eba707e_lang="",ModelSql=_export_sfc$2(_sfc_main$N,[["__scopeId","data-v-6eba707e"]]),_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("AppList"),ge=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ge,{modelValue:vue.unref(G),"onUpdate:modelValue":he[1]||(he[1]=me=>vue.isRef(G)?G.value=me:null),title:"调度日志",size:1e3},{default:vue.withCtx(()=>[vue.createVNode(pe,{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:me})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:_e=>fe(me)},{default:vue.withCtx(()=>[vue.createTextVNode("查看调度日志")]),_:2},1032,["onClick"])]),_:1},8,["tableData","searchForm","searchBtns","formData"]),vue.createVNode(ge,{modelValue:vue.unref(ee),"onUpdate:modelValue":he[0]||(he[0]=me=>vue.isRef(ee)?ee.value=me: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(),{openMessage:ee}=G.$globalHooks.useMessage(),ne=vue.ref(null),re=vue.ref(null),oe=vue.ref(null),ie=vue.ref(null),le=`/api/ace-data-center/db-extract/page?modelId=${U.model.id}&projectId=${G.$baseGetCurrentProjectId()}`,ae=vue.reactive([{name:"新增",key:"ADD",type:"primary",icon:"ri-add-line"}]),se=vue.reactive([{label:"抽取方案名称",prop:"extractName"},{label:"抽取类型",prop:"extractType",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=extractType",label:"dictValue",value:"dictKey"},slot:!0},{label:"作业任务",prop:"taskDefinedId",slot:!0},{label:"操作",prop:"htmlButton",fixed:"right"}]),ue=de=>{de.data.forEach(fe=>{fe.htmlButton=[],fe.htmlButton.push({name:"编辑",key:"EDIT",type:"primary",icon:"ri-edit-line"}),fe.htmlButton.push({name:"复制",key:"COPY",type:"primary",icon:"ri-file-copy-line"}),fe.htmlButton.push({name:"抽取记录",key:"LOG",type:"primary",icon:"ri-file-line"}),fe.taskDefinedId&&fe.htmlButton.push({name:"作业调度日志",key:"TASK-LOG",type:"primary",icon:"ri-file-line"}),[1,2].includes(fe.extractType)&&fe.htmlButton.push({name:"抽取",key:"PUSH",type:"primary",icon:"ri-pushpin-line"}),fe.htmlButton.push({name:"删除",key:"DEL",type:"danger",icon:"ri-delete-bin-6-line"})})},ce=de=>{const{type:fe,row:ve}=de;switch(fe){case"ADD":case"COPY":case"EDIT":vue.unref(ie).init(fe,(ve==null?void 0:ve.id)??"");break;case"LOG":vue.unref(ne).init({businessId:ve.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(re).init(ve.taskDefinedId??"");break;case"PUSH":G.$baseConfirm({content:"是否抽取?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/extract/${ve.id}`,{},{headers:{loading:!0}})&&ee({type:"success",message:"操作成功"})}});break;case"DEL":G.$baseConfirm({content:"是否删除?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/removeById/${ve.id}`,{},{headers:{loading:!0}})&&(ee({type:"success",message:"操作成功"}),vue.unref(oe).getData())}});break}};return(de,fe)=>{const ve=vue.resolveComponent("AppList");return vue.openBlock(),vue.createBlock(ve,{ref_key:"appRef",ref:oe,url:le,tableData:vue.unref(se),searchBtns:vue.unref(ae),onSuccess:ue,onBtnClick:ce},{taskDefinedId:vue.withCtx(({row:he})=>{var pe;return[he.taskDefinedId?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createTextVNode(vue.toDisplayString(((pe=vue.unref(G).$globalUtils.taskOptions.find(ge=>ge.value==he.taskDefined.xxlJobId))==null?void 0:pe.label)??"-")+" ",1),vue.createVNode(vue.unref(elementPlus.ElTag),{type:he.taskDefined.status==2?"primary":"danger",class:"ml-2"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(he.taskDefined.status==2?"启用":"禁用"),1)]),_:2},1032,["type"])],64)):vue.createCommentVNode("",!0)]}),extractType:vue.withCtx(({row:he,element:pe})=>[vue.createVNode(vue.unref(elementPlus.ElTag),null,{default:vue.withCtx(()=>{var ge;return[pe.options?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createTextVNode(vue.toDisplayString((ge=pe==null?void 0:pe.options.find(me=>me.dictKey==he.extractType))==null?void 0:ge.dictValue)+" ",1),he.extractType==2?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createTextVNode(vue.toDisplayString(he==null?void 0:he.incrementalField),1)],64)):vue.createCommentVNode("",!0)],64)):vue.createCommentVNode("",!0)]}),_:2},1024)]),default:vue.withCtx(()=>{var he;return[vue.createVNode(_sfc_main$M,{ref_key:"taskLogRef",ref:re},null,512),vue.createVNode(_sfc_main$Y,{ref_key:"extractLogRef",ref:ne},null,512),vue.createVNode(ModelSql,{ref_key:"modelSqlRef",ref:ie,modelId:(he=U==null?void 0:U.model)==null?void 0:he.id,onSuccess:fe[0]||(fe[0]=pe=>vue.unref(oe).getData())},null,8,["modelId"])]}),_:1},8,["tableData","searchBtns"])}}}),_sfc_main$K=vue.defineComponent({__name:"attrList",setup(te,{expose:U}){const{proxy:G}=vue.getCurrentInstance(),ee=vue.ref(!1),ne=vue.ref([]),re=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"}]);return U({init:async ie=>{ee.value=!0,ne.value=[],vue.nextTick(()=>{fetch$1(G).allModelAttribute({modelId:ie}).then(le=>{ne.value=le.data})})}}),(ie,le)=>{const ae=vue.resolveComponent("AppTable"),se=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(se,{modelValue:vue.unref(ee),"onUpdate:modelValue":le[0]||(le[0]=ue=>vue.isRef(ee)?ee.value=ue:null),title:"模型属性",size:"90%"},{default:vue.withCtx(()=>[vue.createVNode(ae,{tableData:vue.unref(re),list:vue.unref(ne),ref:"appTable"},{uniqueKey:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{"true-value":"2","false-value":"1",modelValue:ue.uniqueKey,"onUpdate:modelValue":ce=>ue.uniqueKey=ce,disabled:!0},null,8,["modelValue","onUpdate:modelValue"])]),required:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:ue.required,"onUpdate:modelValue":ce=>ue.required=ce,disabled:!0,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":2,"inactive-value":1,loading:ue.loading},null,8,["modelValue","onUpdate:modelValue","loading"])]),searchKey:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{disabled:!0,modelValue:ue.searchKey,"onUpdate:modelValue":ce=>ue.searchKey=ce,"true-value":"2","false-value":"1"},null,8,["modelValue","onUpdate:modelValue"]),ue.searchKey==="2"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElCheckbox),{key:0,modelValue:ue.indexKey,"onUpdate:modelValue":ce=>ue.indexKey=ce,"true-value":"2","false-value":"1",disabled:!0},{default:vue.withCtx(()=>[vue.createTextVNode(" 创建索引 ")]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),teamworkKey:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{disabled:!0,modelValue:ue.teamworkKey,"onUpdate:modelValue":ce=>ue.teamworkKey=ce,"true-value":"2","false-value":"1"},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["tableData","list"])]),_:1},8,["modelValue"])}}}),_hoisted_1$D={key:0},_hoisted_2$w={key:1},_hoisted_3$r={key:2},_hoisted_4$n=vue.createElementVNode("i",{class:"mr-1 ri-file-copy-line"},null,-1),_hoisted_5$i={class:"mt-2"},_sfc_main$J=vue.defineComponent({__name:"main",props:{model:{default:{}}},emits:["success"],setup(te,{emit:U}){const G=te,ee=U,ne=vue.ref(!1),re=vue.ref(null),oe=vue.ref(null);return(ie,le)=>{var ce;const ae=vue.resolveComponent("aceHeader"),se=vue.resolveComponent("aceDynamicList"),ue=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createElementBlock("div",null,[vue.createVNode(ae,{title:"基础信息"}),vue.createVNode(vue.unref(elementPlus.ElDescriptions),{column:2,border:!0,style:{width:"100%"},class:"mt-2 mb-2"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型名称"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.modelName),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型代码"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.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(ie.model.modelLayer),1)]),_:1})]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型类型"},{default:vue.withCtx(()=>[ie.model.modelType==1?(vue.openBlock(),vue.createElementBlock("span",_hoisted_1$D,"维度模型")):vue.createCommentVNode("",!0),ie.model.modelType==2?(vue.openBlock(),vue.createElementBlock("span",_hoisted_2$w,"事实模型")):vue.createCommentVNode("",!0),ie.model.modelType==3?(vue.openBlock(),vue.createElementBlock("span",_hoisted_3$r,"其他模型")):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型描述"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.modelDesc),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"数据仓库"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.modelStore),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"发布状态"},{default:vue.withCtx(()=>[ie.model.publishStatus==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未发布")]),_:1})):vue.createCommentVNode("",!0),ie.model.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(()=>[ie.model.openForm==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未开启")]),_:1})):vue.createCommentVNode("",!0),ie.model.openForm==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.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:le[0]||(le[0]=de=>vue.unref(re).init(ie.model.id))},{default:vue.withCtx(()=>[vue.createTextVNode("查看模型属性")]),_:1})]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型数据"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:le[1]||(le[1]=de=>ne.value=!0)},{default:vue.withCtx(()=>[vue.createTextVNode("查看模型数据")]),_:1})]),_:1}),ie.model.modelLayer=="ODSVIEW"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDescriptionsItem),{key:0,label:"操作"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:le[2]||(le[2]=de=>vue.unref(oe).init("ODSVIEW_COPY"))},{default:vue.withCtx(()=>[_hoisted_4$n,vue.createTextVNode(" 复制 ")]),_:1})]),_:1})):vue.createCommentVNode("",!0)]),_:1}),ie.model.modelLayer!="ODSVIEW"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(ae,{title:"抽取方案"}),vue.createElementVNode("div",_hoisted_5$i,[vue.createVNode(_sfc_main$L,{model:ie.model},null,8,["model"])])],64)):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$K,{ref_key:"attrListRef",ref:re},null,512),vue.createVNode(ue,{modelValue:vue.unref(ne),"onUpdate:modelValue":le[3]||(le[3]=de=>vue.isRef(ne)?ne.value=de:null),title:"模型数据",size:"90%"},{default:vue.withCtx(()=>{var de,fe;return[vue.createVNode(se,{id:(de=ie.model)==null?void 0:de.id,title:(fe=ie.model)==null?void 0:fe.modelName},null,8,["id","title"])]}),_:1},8,["modelValue"]),vue.createVNode(ModelSql,{ref_key:"modelSqlRef",ref:oe,modelId:(ce=G==null?void 0:G.model)==null?void 0:ce.id,onSuccess:le[4]||(le[4]=de=>ee("success"))},null,8,["modelId"])])}}}),_hoisted_1$C=vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"},null,-1),_hoisted_2$v={key:0,class:"flex items-center justify-center h-full"},_sfc_main$I=vue.defineComponent({__name:"index",setup(te){const U=vue.ref(null),G=vue.ref(null),ee=vue.ref({}),ne=vue.inject("local"),re=le=>{ee.value={},setTimeout(()=>{ee.value=le},10)},oe=le=>{vue.unref(G).init(le)},ie=(le,ae)=>{le=="model-add"&&vue.unref(U).init()};return(le,ae)=>{const se=vue.resolveComponent("AppEmpty");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElContainer),{class:"overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElConfigProvider),{locale:vue.unref(ne)},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$Q,{onNodeClick:re,ref_key:"menuRef",ref:U},{top:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",class:"flex items-center",onClick:ae[0]||(ae[0]=ue=>oe("model-add"))},{default:vue.withCtx(()=>[_hoisted_1$C,vue.createTextVNode(" SQL新增模型 ")]),_:1})]),_:1},512)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>{var ue;return[(ue=vue.unref(ee))!=null&&ue.id?(vue.openBlock(),vue.createBlock(_sfc_main$J,{key:1,model:vue.unref(ee),onSuccess:ae[1]||(ae[1]=ce=>vue.unref(U).init())},null,8,["model"])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$v,[vue.createVNode(se,{description:"请选择对应数据"})])),vue.createVNode(ModelSql,{ref_key:"modelSqlRef",ref:G,onSuccess:ie},null,512)]}),_:1})]),_:1},8,["locale"])]),_:1})}}});function useDynamicSearch(){const{proxy:te}=vue.getCurrentInstance(),U=vue.ref([]);return vue.watch(U,re=>{re.length&&U.value.filter(oe=>oe.type==="select"&&oe.dictId).forEach(oe=>{oe.options=[],te.$baseHttp.get(`/api/ace-data-center/custom-dic/readDict/${oe.dictId}`).then(ie=>{oe.options=dictArratToTree(ie.data??[])})})}),{dynamicSearchForm:U,dynamicSearchFormat:re=>(re.filter(oe=>oe.defaultRule).forEach(oe=>{switch(oe.defaultRule){case"today":oe.value=dayjs().format("YYYY-MM-DD");break;case"yesterday":oe.value=dayjs().subtract(1,"day").format("YYYY-MM-DD");break;case"week":oe.minValue=dayjs().subtract(7,"day").format("YYYY-MM-DD"),oe.maxValue=dayjs().format("YYYY-MM-DD");break;case"month":oe.value=dayjs().format("YYYY-MM");break;case"two-month":oe.minValue=dayjs().subtract(2,"month").format("YYYY-MM"),oe.maxValue=dayjs().format("YYYY-MM");break;case"year":oe.value=dayjs().format("YYYY");break;case"two-year":oe.minValue=dayjs().subtract(2,"year").format("YYYY"),oe.maxValue=dayjs().format("YYYY");break}}),re),dynamicSearchParams:re=>{const oe={};return re.forEach(ie=>{if(ie.type.includes("Range")){oe[`${ie.key}1`]=(ie.minValue??"")&&ie.type=="numberRange"?Number(ie.minValue):ie.minValue.replaceAll("-",""),oe[`${ie.key}2`]=(ie.maxValue??"")&&ie.type=="numberRange"?Number(ie.maxValue):ie.maxValue.replaceAll("-","");return}oe[ie.key]=(ie.value??"")&&(ie.type.includes("yymm")?ie.value.replaceAll("-",""):ie.value),ie.type==="numberSingle"&&ie.value&&(oe[ie.key]=Number(ie.value))}),oe},dynamicSearchParamsTitle:(re={})=>{const{showTitle:oe=!0}=re,ie=[];return U.value.forEach(le=>{const ae=oe?`${le.name}: `:"";switch(le.type){case"stringSingle":case"numberSingle":case"select":(le.value??"")&&ie.push(`${ae}${le.value}`);break;case"numberRange":ie.push(`${ae}[${le.minValue}~${le.maxValue}]`);break;case"yySingle":(le.value??"")&&ie.push(`${ae}${le.value}年`);break;case"yyRange":(le.minValue||le.maxValue)&&ie.push(`${ae}${le.minValue||"_"}年~${le.maxValue||"_"}年`);break;case"yymmSingle":if(le.value){let se=le.value.split("-");ie.push(`${ae}${se[0]}年${se[1]}月`)}break;case"yymmRange":if(le.minValue||le.maxValue){let se="_",ue="_";if(le.minValue){let ce=le.minValue.split("-");se=`${ae}${ce[0]}年${ce[1]}月`}if(le.maxValue){let ce=le.maxValue.split("-");ue=`${ae}${ce[0]}年${ce[1]}月`}ie.push(`${ae}${se}~${ue}`)}break;case"yymmddSingle":if(le.value){let se=le.value.split("-");ie.push(`${ae}${se[0]}年${se[1]}月${se[2]}日`)}break;case"yymmddRange":if(le.minValue||le.maxValue){let se="_",ue="_";if(le.minValue){let ce=le.minValue.split("-");se=`${ce[0]}年${ce[1]}月${ce[2]}日`}if(le.maxValue){let ce=le.maxValue.split("-");ue=`${ce[0]}年${ce[1]}月${ce[2]}日`}ie.push(`${ae}${se}~${ue}`)}break}}),ie.filter(le=>le).join(" ; ")}}}function useInsertForm(te){const{proxy:U}=vue.getCurrentInstance(),{setFormValue:G,getFormValue:ee}=U.$globalHooks.useForm(),{getDetail:ne}=fetch$1(U).model,re=vue.ref(),oe=vue.ref(1),ie=vue.ref([]),le=vue.ref("");return{loading:re,colValue:oe,formData:ie,formType:le,init:async(se={},ue="add")=>{ie.value=[],oe.value=1,le.value=ue,re.value=!0;const ce=await ne(te);re.value=!1,JSON.parse(ce.data.formJson||"[]").forEach(fe=>{fe.hide=!fe.isShow;const ve=ce.data.listModelAttribute.find(pe=>pe.mapCode==fe.fieldName);if(!ve)return;if(oe.value=fe.col,ve.primaryKey==2&&(fe.prepend=vue.h("i",{class:"text-base ri-key-line text-color-warning"}),fe.required=!0,fe.disabled=ue=="update",fe.fieldType=FieldRenderType.String),fe.ext.extend=="auto-insert-number"&&(fe.defVal=Date.now()),["radio","select","checkbox","treeSelect"].includes(fe.type)){const pe=fe==null?void 0:fe.ext.dictId;pe&&(fe.props={url:`/api/ace-data-center/custom-dic/readDict/${pe}`,label:"name",value:"code"}),fe.type=="treeSelect"&&(fe.expandAll=!1,fe.renderAfterExpand=!0,fe.optionsSuccess=ge=>{fe.options=dictArratToTree(ge)})}fe.type=="file"&&(fe.accept=fe.ext.accept||"*",fe.width="100%"),fe.type=="file"&&(fe.accept=fe.ext.accept||"*",fe.width="100%"),fe.type=="rate"&&(fe.defVal=0,fe.max=fe.ext.max);const he=vue.unref(ie).find(pe=>pe.key==fe.tag);he?he.list.push(fe):vue.unref(ie).push({key:fe.tag,list:[fe]})}),vue.unref(ie).forEach(fe=>{G(se,fe.list)})}}}const _withScopeId$d=te=>(vue.pushScopeId("data-v-6c642e9c"),te=te(),vue.popScopeId(),te),_hoisted_1$B={class:"flex items-center justify-between"},_hoisted_2$u={class:"flex items-center whitespace-nowrap"},_hoisted_3$q=_withScopeId$d(()=>vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1)),_hoisted_4$m={class:"overflow-y-auto max-h-60",style:{"min-height":"150px"}},_hoisted_5$h=_withScopeId$d(()=>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:"120px"}},"显示名称"),vue.createElementVNode("td",{style:{width:"120px"}},"表单标签"),vue.createElementVNode("td",{style:{width:"120px"}},"规则"),vue.createElementVNode("td",{style:{width:"70px"}},"录入显示"),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_6$e={class:"sort-target"},_hoisted_7$c=_withScopeId$d(()=>vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-move ri-mouse-line sortable-handle text-color-warning"})],-1)),_hoisted_8$a=_withScopeId$d(()=>vue.createElementVNode("i",{class:"mr-1 ri-file-cloud-line"},null,-1)),_sfc_main$H=vue.defineComponent({__name:"dynamicForm",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:"auto-insert-number"}],se=U,ue=[{label:"身份证号",value:"/^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$|^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$/"},{label:"邮箱",value:"/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$/"},{label:"手机号",value:"/^1d{10}$/"},{label:"银行卡",value:"/[1-9]d{12,18}/"},{label:"车牌号",value:"/^([京津晋冀蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][ABCDEFGHJKLMNPQRSTUVWXYZ][dABCDEFGHJKLNMxPQRSTUVWXYZ]{5,6})$/"}],ce=pe=>{const ge=[];return["date","datetime"].includes(pe)||ge.push({label:"单选框",value:FieldType.Radio},{label:"计数器",value:FieldType.Number},{label:"选择器",value:FieldType.Select},{label:"开关",value:FieldType.Switch},{label:"级联",value:FieldType.TreeSelect},{label:"评分",value:FieldType.Rate}),["int","decimal","double","bigint"].includes(pe)||(["date","datetime"].includes(pe)||ge.push({label:"输入框",value:FieldType.Text},{label:"多行输入框",value:FieldType.Textarea},{label:"多选框",value:FieldType.CheckBox},{label:"上传",value:FieldType.File}),["datetime"].includes(pe)||ge.push({label:"日期",value:FieldType.Date}),["date"].includes(pe)||ge.push({label:"日期时间",value:FieldType.DateTime})),ge},de=pe=>["int","decimal","double","bigint"].includes(pe)?FieldType.Number:["datetime"].includes(pe)?FieldType.DateTime:["date"].includes(pe)?FieldType.Date:FieldType.Text,fe=vue.ref(1),ve=async()=>{le.value=!0,re.value=[];const pe=await ee(ne.model.id);le.value=!1,G.$baseHttp.get(`/api/ace-data-center/custom-dic/options?projectId=${G.$baseGetCurrentProjectId()}`).then(_e=>{oe.value=_e.data});const ge=pe.data.listModelAttribute,me=JSON.parse(pe.data.formJson||"[]");ge.forEach(_e=>{if(["project_id","create_time","create_user","create_dept","_project_id","tag","_create_time","_create_user","_create_dept","_tag","_data_from"].includes(_e.attributeCode))return;const ye=me.find(be=>be.fieldName==_e.mapCode);ye?(_e.columnOption=ye,fe.value=ye.col??1):_e.columnOption={fieldName:_e.mapCode,name:_e.attributeComment,type:de(_e.dataType),sort:"",isShow:!0,ext:{}},re.value.push(_e)}),re.value.sort((_e,ye)=>_e.columnOption.sort-ye.columnOption.sort)},he=async()=>{const pe=[],ge=[];if(vue.unref(re).forEach((_e,ye)=>{const be=_e.columnOption;be.sort=ye+1,be.col=vue.unref(fe),be.type||ge.push(`${_e.attributeComment}类型不能为空`),["radio","select","checkbox","treeSelect"].includes(be.type)?be.ext.dictId||ge.push(`${_e.attributeComment}字典值为空`):["rate"].includes(be.type)&&(be.ext.max||ge.push(`${_e.attributeComment}最大值不能为空`)),pe.push(be)}),ge.length>0){G.$message.error(ge[0]);return}await G.$baseHttp.post("/api/ace-data-center/model/updateFormJson",{id:ne.model.id,formJson:JSON.stringify(pe)})&&(G.$message.success("操作成功"),ie.value=!1,se("success"))};return(pe,ge)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{placement:"bottom",visible:vue.unref(ie),"onUpdate:visible":ge[4]||(ge[4]=me=>vue.isRef(ie)?ie.value=me:null),trigger:"click",width:"1200px"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"warning",class:"ml-3",onClick:ge[3]||(ge[3]=me=>ve())},{default:vue.withCtx(()=>[_hoisted_8$a,vue.createTextVNode(" "+vue.toDisplayString(pe.title),1)]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$B,[vue.createElementVNode("div",_hoisted_2$u,[vue.createTextVNode(" 分栏: "),vue.createVNode(vue.unref(elementPlus.ElInputNumber),{size:"small",min:1,class:"ml-1","value-on-clear":0,modelValue:vue.unref(fe),"onUpdate:modelValue":ge[0]||(ge[0]=me=>vue.isRef(fe)?fe.value=me:null),placeholder:"分栏"},null,8,["modelValue"])]),vue.createElementVNode("div",null,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",onClick:he},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",class:"ml-3",size:"small",onClick:ge[1]||(ge[1]=me=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode(" 关闭 ")]),_:1})])]),_hoisted_3$q,vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(le),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_4$m,[vue.createVNode(vue.unref(vueDraggablePlus.VueDraggable),{modelValue:vue.unref(re),"onUpdate:modelValue":ge[2]||(ge[2]=me=>vue.isRef(re)?re.value=me:null),target:".sort-target",animation:150,handle:".sortable-handle"},{default:vue.withCtx(()=>[vue.createElementVNode("table",null,[_hoisted_5$h,vue.createElementVNode("tbody",_hoisted_6$e,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(re),me=>(vue.openBlock(),vue.createElementBlock("tr",{key:me.id},[vue.createElementVNode("td",null,vue.toDisplayString(me.attributeCode),1),vue.createElementVNode("td",null,vue.toDisplayString(me.attributeComment),1),vue.createElementVNode("td",null,vue.toDisplayString(me.dataType),1),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:me.columnOption.name,"onUpdate:modelValue":_e=>me.columnOption.name=_e,placeholder:"显示名称"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:me.columnOption.tag,"onUpdate:modelValue":_e=>me.columnOption.tag=_e,placeholder:"表单标签"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSelect),{clearable:!0,teleported:!1,size:"small",modelValue:me.columnOption.rule,"onUpdate:modelValue":_e=>me.columnOption.rule=_e,placeholder:"规则"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ue,_e=>vue.createVNode(vue.unref(elementPlus.ElOption),{label:_e.label,value:_e.value,key:_e.value},null,8,["label","value"])),64))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:me.columnOption.isShow,"onUpdate:modelValue":_e=>me.columnOption.isShow=_e},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:me.columnOption.required,"onUpdate:modelValue":_e=>me.columnOption.required=_e},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,size:"small",class:"w-full",modelValue:me.columnOption.type,"onUpdate:modelValue":_e=>me.columnOption.type=_e,placeholder:"请选择",onChange:()=>me.columnOption.ext={}},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(ce(me.dataType),_e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:_e.value,label:_e.label,value:_e.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),vue.createElementVNode("td",null,[["radio","select","checkbox","treeSelect"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,teleported:!1,size:"small",modelValue:me.columnOption.ext.dictId,"onUpdate:modelValue":_e=>me.columnOption.ext.dictId=_e,placeholder:"字典值"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(oe),_e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:_e.label,value:_e.code,key:_e.code},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),["file"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:1,size:"small",modelValue:me.columnOption.ext.accept,"onUpdate:modelValue":_e=>me.columnOption.ext.accept=_e,placeholder:"上传类型多个,隔开"},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),["rate"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:2,min:0,size:"small",type:"number",modelValue:me.columnOption.ext.max,"onUpdate:modelValue":_e=>me.columnOption.ext.max=_e,placeholder:"最大值"},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),["number"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:3,clearable:!0,teleported:!1,size:"small",modelValue:me.columnOption.ext.extend,"onUpdate:modelValue":_e=>me.columnOption.ext.extend=_e,placeholder:"额外参数"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ae,_e=>vue.createVNode(vue.unref(elementPlus.ElOption),{label:_e.label,value:_e.value,key:_e.value},null,8,["label","value"])),64))]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),_hoisted_7$c]))),128))])])]),_:1},8,["modelValue"])])]),_:1},8,["loading"])]),_:1},8,["visible"]))}}),dynamicForm_vue_vue_type_style_index_0_scoped_6c642e9c_lang="",dynamicForm=_export_sfc$2(_sfc_main$H,[["__scopeId","data-v-6c642e9c"]]),_hoisted_1$A={class:"p-4"},_hoisted_2$t={class:"flex justify-center mt-2"},_hoisted_3$p={class:"absolute right-0 -top-10"},_sfc_main$G=vue.defineComponent({__name:"model-insert-form",props:{model:{default:{}},isDefaultInit:{type:Boolean,default:!0},permission:{default:()=>[]},paramsCallback:{type:Function,default:()=>{}}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),{getFormValue:oe}=re.$globalHooks.useForm(),{getDetail:ie,modelDataAction:le}=fetch$1(re).model,{loading:ae,colValue:se,formData:ue,formType:ce,init:de}=useInsertForm(ee.model.id);ee.isDefaultInit&&de();const fe=async()=>{const ve={},he=[];if(vue.unref(ue).forEach(me=>{const{params:_e,error:ye}=oe(me.list);he.push(...ye),Object.assign(ve,_e)}),he.length>0)return;const pe={modelId:ee.model.id,dataMap:ve,batchNo:dayjs().format("YYYY-MM-DD")};ee.paramsCallback&&ee.paramsCallback(pe),await le(pe,ce.value)&&(re.$message.success("操作成功"),ee.isDefaultInit&&de(),ne("success"))};return U({init:de,handleSubmit:fe}),(ve,he)=>{const pe=vue.resolveComponent("aceHeader"),ge=vue.resolveComponent("AppForm");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createVNode(vue.unref(elementPlus.ElSkeleton),{animated:"",loading:vue.unref(ae)},{default:vue.withCtx(()=>[vue.unref(ue).length?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),me=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:me.key},[me.key?(vue.openBlock(),vue.createBlock(pe,{key:0,title:me.key},null,8,["title"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_1$A,[vue.createVNode(ge,{form:me.list,col:vue.unref(se)},null,8,["form","col"])])],64))),128)),vue.createElementVNode("div",_hoisted_2$t,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",onClick:fe},{default:vue.withCtx(()=>[vue.createTextVNode("保 存")]),_:1})])],64)):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElEmpty),{key:0,description:"暂未配置表单数据"}))]),_:1},8,["loading"]),vue.createElementVNode("div",_hoisted_3$p,[vue.createVNode(dynamicForm,{model:ve.model,title:"属性列配置",onSuccess:vue.unref(de)},null,8,["model","onSuccess"])])],64)}}}),_withScopeId$c=te=>(vue.pushScopeId("data-v-24a4d931"),te=te(),vue.popScopeId(),te),_hoisted_1$z={class:"flex justify-between"},_hoisted_2$s=_withScopeId$c(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_3$o=_withScopeId$c(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_4$l=_withScopeId$c(()=>vue.createElementVNode("i",{class:"mr-1 ri-search-line"},null,-1)),_sfc_main$F=vue.defineComponent({__name:"search",props:{form:{default:()=>[]},search:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},emits:["success"],setup(te,{emit:U}){const G=te,ee=U,ne=vue.inject("local"),re=ae=>{let se="date",ue="YYYY-MM-DD";return["yyRange","yySingle"].includes(ae)&&(se="year",ue="YYYY"),["yymmRange","yymmSingle"].includes(ae)&&(se="month",ue="YYYY-MM"),{type:se,format:ue}},oe=(ae,se,ue)=>ae=="gt"?se.getTime()>dayjs(ue||"").valueOf():se.getTime()<dayjs(ue||"").valueOf(),ie=(ae,se,ue)=>{if(ae[se]==""||ae[ue]=="")return;const ce=Number(ae[se]),de=Number(ae[ue]);(se=="minValue"?ce>de:ce<de)&&(ae[se]=ae[ue])},le=()=>{ee("success")};return(ae,se)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElConfigProvider),{locale:vue.unref(ne)},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$z,[vue.createVNode(vue.unref(elementPlus.ElForm),{inline:""},{default:vue.withCtx(()=>[vue.renderSlot(ae.$slots,"default",{},void 0,!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(ae.form,(ue,ce)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:ce},[ue.hide?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:0,label:ae.disabled?"":ue.name},{default:vue.withCtx(()=>[ue.type.includes("Range")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[["yyRange","yymmRange","yymmddRange"].includes(ue.type)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(vue.unref(elementPlus.ElDatePicker),{modelValue:ue.minValue,"onUpdate:modelValue":de=>ue.minValue=de,clearable:!1,teleported:!1,disabled:ae.disabled,type:re(ue.type).type,placeholder:"开始","disabled-date":de=>oe("gt",de,ue.maxValue),"value-format":re(ue.type).format},null,8,["modelValue","onUpdate:modelValue","disabled","type","disabled-date","value-format"]),_hoisted_2$s,vue.createVNode(vue.unref(elementPlus.ElDatePicker),{modelValue:ue.maxValue,"onUpdate:modelValue":de=>ue.maxValue=de,placeholder:"结束",teleported:!1,disabled:ae.disabled,clearable:!1,"disabled-date":de=>oe("lt",de,ue.minValue),type:re(ue.type).type,"value-format":re(ue.type).format},null,8,["modelValue","onUpdate:modelValue","disabled","disabled-date","type","value-format"])],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:ue.minValue,"onUpdate:modelValue":de=>ue.minValue=de,modelModifiers:{trim:!0},max:ue.maxValue,clearable:!1,disabled:ae.disabled,onBlur:de=>ie(ue,"minValue","maxValue"),type:"number",placeholder:"最小值"},null,8,["modelValue","onUpdate:modelValue","max","disabled","onBlur"]),_hoisted_3$o,vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:ue.maxValue,"onUpdate:modelValue":de=>ue.maxValue=de,modelModifiers:{trim:!0},min:ue.minValue,clearable:!1,disabled:ae.disabled,onBlur:de=>ie(ue,"maxValue","minValue"),type:"number",placeholder:"最大值"},null,8,["modelValue","onUpdate:modelValue","min","disabled","onBlur"])],64))],64)):vue.createCommentVNode("",!0),ue.type.includes("Single")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[["yySingle","yymmSingle","yymmddSingle"].includes(ue.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDatePicker),{key:0,modelValue:ue.value,"onUpdate:modelValue":de=>ue.value=de,clearable:!1,teleported:!1,disabled:ae.disabled,placeholder:"请输入"+ue.name,type:re(ue.type).type,"value-format":re(ue.type).format},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder","type","value-format"])):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:1,modelValue:ue.value,"onUpdate:modelValue":de=>ue.value=de,modelModifiers:{trim:!0},clearable:!1,disabled:ae.disabled,onKeyup:vue.withKeys(le,["enter","native"]),type:ue.type=="numberSingle"?"number":"",placeholder:"请输入"+ue.name},null,8,["modelValue","onUpdate:modelValue","disabled","type","placeholder"]))],64)):vue.createCommentVNode("",!0),ue.type=="select"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTreeSelect),{key:2,modelValue:ue.value,"onUpdate:modelValue":de=>ue.value=de,data:ue.options,teleported:!1,disabled:ae.disabled,placeholder:"请选择",props:{label:"name",value:"code"},clearable:!1,"check-strictly":""},null,8,["modelValue","onUpdate:modelValue","data","disabled"])):vue.createCommentVNode("",!0)]),_:2},1032,["label"]))],64))),128)),vue.createVNode(vue.unref(elementPlus.ElFormItem),null,{default:vue.withCtx(()=>[ae.form.filter(ue=>!ue.hide).length>0&&G.search?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{key:0,type:"primary",onClick:le},{default:vue.withCtx(()=>[_hoisted_4$l,vue.createTextVNode(" 查询 ")]),_:1})):vue.createCommentVNode("",!0),vue.renderSlot(ae.$slots,"btns",{},void 0,!0)]),_:3})]),_:3}),vue.renderSlot(ae.$slots,"aside",{},void 0,!0)])]),_:3},8,["locale"]))}}),search_vue_vue_type_style_index_0_scoped_24a4d931_lang="",aceDynamicSearch=_export_sfc$2(_sfc_main$F,[["__scopeId","data-v-24a4d931"]]),_withScopeId$b=te=>(vue.pushScopeId("data-v-9e5ff44b"),te=te(),vue.popScopeId(),te),_hoisted_1$y=_withScopeId$b(()=>vue.createElementVNode("i",{class:"mr-1 ri-download-2-line"},null,-1)),_sfc_main$E=vue.defineComponent({__name:"list",props:{id:{default:""},title:{default:nanoid()},pageLimit:{default:20},type:{default:DynamicTableType.Default},keyName:{default:"modelId"},url:{default:"/api/ace-data-center/model/modelDataPage"},showPageIndex:{type:Boolean,default:!1},isDownLoad:{type:Boolean,default:!0},searchFormData:{default:null},isDelete:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},formatParamsFunc:{type:[Function,null],default:null}},emits:["row-click","success-list","table-header","btn-click"],setup(te,{expose:U,emit:G}){const ee=te;vue.watch(()=>ee.id,()=>Ce());const ne=G,{proxy:re}=vue.getCurrentInstance(),{dynamicSearchForm:oe,dynamicSearchFormat:ie,dynamicSearchParams:le}=useDynamicSearch(),{modelDataDel:ae,getDetail:se}=fetch$1(re).model,{listColumnInfo:ue,getFormJsonConfig:ce,getSystemParam:de}=fetch$1(re),fe=vue.ref(null),ve=vue.ref(null),he=vue.ref(null),pe=vue.ref([]),ge=vue.ref(""),me=vue.ref({}),_e=vue.ref(0),ye=vue.ref(!0),be=vue.ref(!1),xe=vue.ref({}),Ce=async()=>{var Te,De;if(ge.value="",pe.value=[],_e.value=0,me.value={[ee.keyName]:ee.id,params:{}},ee.type==DynamicTableType.Default){const Ie=await ue(ee.id),Me=await se(ee.id,!1);if(xe.value=Me.data,pe.value=(Ie.data??[]).filter(Be=>Be.isShow??!0).map(Be=>{var ze;const Ae={...Be,width:Be.labelWidth??null,showOverflowTooltip:Be.overHidden??!1,sortable:"custom"};if(Be.type=="dict"){const Re=(ze=JSON.parse(Be.ext??"{}"))==null?void 0:ze.dictId;Re&&(Ae.props={url:`/api/ace-data-center/custom-dic/readDict/${Re}`,label:"name",value:"code"})}return Be.type=="img"&&(Ae.type=Be.type,Ae.resetUrl=(Re,Fe)=>{const je=resetUrl(Fe[Be.prop]).split(",");if(Re=="small")return je[0];if(Re=="preview")return je},delete Ae.sortable),Be.type=="map"&&(delete Ae.sortable,Ae.func=Re=>'<span class="text-gray-600 cursor-pointer">查看地图</span>',Ae.clickFunc=Re=>{try{vue.unref(ve).init(JSON.parse(Re[Be.prop]??"[]"))}catch{re.$message.warning("数据格式获取错误")}}),Ae.prop=="_data_from"&&(Ae.dict="dataFormStatus"),Ae}),Se(),(ee.isDelete||ee.isEdit)&&pe.value.push({label:"操作",prop:"htmlButton",fixed:"right",noExport:!0}),ee.searchFormData)oe.value=ee.searchFormData;else{const Be=await ce(ee.id);oe.value=ie(JSON.parse(((Te=Be.data)==null?void 0:Te.formConfJson)??"[]"))}}if(ee.type==DynamicTableType.DataForm){const Ie=await re.$baseHttp.get(`/api/ace-data-center/dataform/detail?id=${ee.id}`);ye.value=Ie.data.isPage!=0,oe.value=ie(JSON.parse(((De=Ie.data)==null?void 0:De.formConfJson)??"[]"))}ge.value=ee.url},$e=vue.ref(!1),Ee=Te=>{$e.value=Te.extra.total!="0"&&ee.isDownLoad,_e.value=Te.extra.total,ee.type==DynamicTableType.DataForm&&(Te==null?void 0:Te.data.length)>0&&(pe.value=[],Object.keys(Te.data[0]).forEach(De=>{const Ie={label:De,prop:De,sortable:vue.unref(ye)};De==="map_column"&&(Ie.label="地图",Ie.func=Me=>`<span class="cursor-pointer ${["","[]"].includes(Me[De])?"text-gray-600":"text-color-danger"}">查看地图</span>`,Ie.type=ItableType.Link,Ie.clickFunc=Me=>vue.unref(ve).init(JSON.parse(Me[De]??"[]")),delete Ie.sortable),pe.value.push(Ie)}),Se()),ee.type==DynamicTableType.Default&&(Te==null?void 0:Te.data.length)>0&&Te.data.forEach(De=>{De.htmlButton=[],ee.isEdit&&De.htmlButton.push({name:"修改",key:"eidtBTN",type:"primary",icon:"ri-edit-line"}),ee.isDelete&&De.htmlButton.push({name:"删除",key:"delBTN",type:"danger",icon:"ri-delete-bin-6-line"})}),ne("table-header",vue.unref(pe)),ne("success-list",Te)},Ve=Te=>(me.value.params=le(vue.unref(oe)),ee.formatParamsFunc&&(me.value=ee.formatParamsFunc(me.value)),Object.assign(Te,vue.unref(me))),Ne=()=>{vue.unref(fe).getData()},Se=()=>{ee.showPageIndex?pe.value.unshift({label:"序号",prop:"pageIndex",width:"80px"}):pe.value.splice(vue.unref(pe).findIndex(Te=>Te.prop==="pageIndex"),1)},Pe=Te=>{const{prop:De,order:Ie}=Te;ee.type==DynamicTableType.Default&&(vue.unref(me).ascs="",vue.unref(me).descs="",Ie==="ascending"&&(vue.unref(me).ascs=De),Ie==="descending"&&(vue.unref(me).descs=De)),ee.type==DynamicTableType.DataForm&&(vue.unref(me).orders=[],Ie&&vue.unref(me).orders.push({property:De,direction:Ie==="ascending"?"asc":"desc"})),vue.unref(fe).getData()},we=async()=>{if(ee.type==DynamicTableType.Default){const Te=await de({paramKey:"model.export.max"});if(+(vue.unref(_e)>Number((Te==null?void 0:Te.data)??0))){re.$message.warning(`数据量超过${Te==null?void 0:Te.data}条,请筛选后再导出`);return}}re.$baseExportExcel({title:ee.title,url:vue.unref(ge),header:vue.unref(pe),customParams:vue.unref(me)})},ke=Te=>{const{type:De,row:Ie}=Te;switch(De){case"eidtBTN":case"delBTN":{const Me={};if(vue.unref(xe).listModelAttribute.forEach(Be=>{Me[Be.mapCode]=Ie[Be.attributeCode]}),De=="eidtBTN"){be.value=!0,vue.nextTick(()=>{vue.unref(he).init(Me,"update")});return}re.$baseConfirm({content:"是否确定删除",callConfirm:async()=>{await ae({dataMap:Me,modelId:ee.id})&&(re.$message.success("删除成功"),vue.unref(fe).getData())}})}break}ne("btn-click",Te)};return Ce(),U({handleExport:we,init:Ce}),(Te,De)=>{const Ie=vue.resolveComponent("AppList"),Me=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(ge)=="",animated:""},{default:vue.withCtx(()=>[vue.createVNode(aceDynamicSearch,{form:vue.unref(oe),onSuccess:Ne},{btns:vue.withCtx(()=>[vue.unref($e)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{key:0,type:"warning",onClick:we},{default:vue.withCtx(()=>[_hoisted_1$y,vue.createTextVNode(" 导出 ")]),_:1})):vue.createCommentVNode("",!0)]),_:1},8,["form"]),vue.unref(ge)?(vue.openBlock(),vue.createBlock(Ie,{key:0,tableData:vue.unref(pe),pageLimit:Te.pageLimit,url:vue.unref(ge),showPage:vue.unref(ye),methods:"post",formatParamsFunc:Ve,onSuccess:Ee,onSortChange:Pe,onBtnClick:ke,ref_key:"appList",ref:fe},null,8,["tableData","pageLimit","url","showPage"])):vue.createCommentVNode("",!0),vue.createVNode(Me,{modelValue:vue.unref(be),"onUpdate:modelValue":De[1]||(De[1]=Be=>vue.isRef(be)?be.value=Be:null),title:"数据修改",size:"1200px"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$G,{model:{id:ee.id},isDefaultInit:!1,ref_key:"modelInsertFormRef",ref:he,onSuccess:De[0]||(De[0]=Be=>{be.value=!1,vue.unref(fe).getData()})},null,8,["model"])]),_:1},8,["modelValue"])]),_:1},8,["loading"])}}}),list_vue_vue_type_style_index_0_scoped_9e5ff44b_lang="",aceDynamicList=_export_sfc$2(_sfc_main$E,[["__scopeId","data-v-9e5ff44b"]]),_withScopeId$a=te=>(vue.pushScopeId("data-v-441ff053"),te=te(),vue.popScopeId(),te),_hoisted_1$x={key:0},_hoisted_2$r=_withScopeId$a(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_3$n=_withScopeId$a(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_4$k=["onClick"],_sfc_main$D=vue.defineComponent({__name:"searchEdit",props:{form:{default:()=>[]},isEdit:{type:Boolean,default:!0},businessType:{default:"indicators"}},setup(te,{expose:U}){const G=te,{proxy:ee}=vue.getCurrentInstance(),ne=vue.ref([]),re=vue.computed(()=>["model"].includes(G.businessType));ee.$baseHttp.get(`/api/ace-data-center/custom-dic/options?projectId=${ee.$baseGetCurrentProjectId()}`).then(ce=>{ne.value=ce.data});const oe={yymmddSingle:[{name:"当日",value:"today"},{name:"昨天",value:"yesterday"}],yymmddRange:[{name:"近一周",value:"week"}],yymmSingle:[{name:"当月",value:"month"}],yymmRange:[{name:"近两月",value:"two-month"}],yySingle:[{name:"当年",value:"year"}],yyRange:[{name:"近两年",value:"two-year"}]},ie=ce=>{let de="date",fe="YYYY-MM-DD";return["yyRange","yySingle"].includes(ce)&&(de="year",fe="YYYY"),["yymmRange","yymmSingle"].includes(ce)&&(de="month",fe="YYYY-MM"),{type:de,format:fe}},le=(ce,de,fe)=>ce=="gt"?de.getTime()>dayjs(fe||"").valueOf():de.getTime()<dayjs(fe||"").valueOf(),ae=(ce,de,fe)=>{if(ce[de]==""||ce[fe]=="")return;const ve=Number(ce[de]),he=Number(ce[fe]);(de=="minValue"?ve>he:ve<he)&&(ce[de]=ce[fe])},se=ce=>{ce.value=[],ce.options=[],ce.dictId&&ee.$baseHttp.get(`/api/ace-data-center/custom-dic/readDict/${ce.dictId}`).then(de=>{ce.options=de.data??[]})},ue=ce=>{ce.value="",ce.minValue="",ce.maxValue="",ce.defaultRule="",ce.dictId="",ce.options=[]};return vue.onMounted(()=>{G.form.forEach(ce=>{!ce.checked&&!ce.type&&["varchar","text"].includes(ce.dataType)&&(ce.type="stringSingle")})}),U({handleChangeDictSelect:se}),(ce,de)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElForm),{inline:"",size:"small"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(ce.form,(fe,ve)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:ve},[fe.hide?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$x,[vue.unref(re)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:0,label:""},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:fe.checked,"onUpdate:modelValue":he=>fe.checked=he,size:"small"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):vue.createCommentVNode("",!0),ce.isEdit&&!vue.unref(re)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:1,label:"标识符"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.key,"onUpdate:modelValue":he=>fe.key=he,clearable:"",placeholder:"请输入标识符"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(elementPlus.ElFormItem),{label:ce.isEdit?"名称":fe.name},{default:vue.withCtx(()=>[ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:0,modelValue:fe.name,"onUpdate:modelValue":he=>fe.name=he,clearable:"",placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),_:2},1032,["label"]),ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:2,label:"类型"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{clearable:"",teleported:!1,modelValue:fe.type,"onUpdate:modelValue":he=>fe.type=he,onChange:he=>ue(fe),placeholder:"类型"},{default:vue.withCtx(()=>[vue.unref(re)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[["date","datetime"].includes(fe.dataType)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·区间",value:"yyRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·单值",value:"yySingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·区间",value:"yymmRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·单值",value:"yymmSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·区间",value:"yymmddRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·单值",value:"yymmddSingle"})],64)):["int","decimal","double"].includes(fe.dataType)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·区间",value:"numberRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·单值",value:"numberSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"下拉框·字典",value:"select"})],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"字符串",value:"stringSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"下拉框·字典",value:"select"})],64))],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·区间",value:"yyRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·单值",value:"yySingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·区间",value:"yymmRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·单值",value:"yymmSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·区间",value:"yymmddRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·单值",value:"yymmddSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·区间",value:"numberRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·单值",value:"numberSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"字符串",value:"stringSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"下拉框·字典",value:"select"})],64))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1024)):vue.createCommentVNode("",!0),fe.type?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:3,label:ce.isEdit?"默认值":""},{default:vue.withCtx(()=>[oe[fe.type]&&ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,clearable:"",style:{"margin-right":"10px"},teleported:!1,modelValue:fe.defaultRule,"onUpdate:modelValue":he=>fe.defaultRule=he,placeholder:"默认值"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(oe[fe.type],he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:he.name,value:he.value,key:he.value},null,8,["label","value"]))),128)),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"自定义",value:"custom"})]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),fe.type.endsWith("Range")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[["yyRange","yymmRange","yymmddRange"].includes(fe.type)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(vue.unref(elementPlus.ElDatePicker),{teleported:!1,modelValue:fe.minValue,"onUpdate:modelValue":he=>fe.minValue=he,clearable:"",placeholder:"开始","disabled-date":he=>le("gt",he,fe.maxValue),type:ie(fe.type).type,"value-format":ie(fe.type).format},null,8,["modelValue","onUpdate:modelValue","disabled-date","type","value-format"]),_hoisted_2$r,vue.createVNode(vue.unref(elementPlus.ElDatePicker),{teleported:!1,modelValue:fe.maxValue,"onUpdate:modelValue":he=>fe.maxValue=he,clearable:"",placeholder:"结束","disabled-date":he=>le("lt",he,fe.minValue),type:ie(fe.type).type,"value-format":ie(fe.type).format},null,8,["modelValue","onUpdate:modelValue","disabled-date","type","value-format"])],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.minValue,"onUpdate:modelValue":he=>fe.minValue=he,max:fe.maxValue,clearable:!1,onBlur:he=>ae(fe,"minValue","maxValue"),type:"number",placeholder:"最小值"},null,8,["modelValue","onUpdate:modelValue","max","onBlur"]),_hoisted_3$n,vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.maxValue,"onUpdate:modelValue":he=>fe.maxValue=he,min:fe.minValue,clearable:!1,onBlur:he=>ae(fe,"maxValue","minValue"),type:"number",placeholder:"最大值"},null,8,["modelValue","onUpdate:modelValue","min","onBlur"])],64))],64)):vue.createCommentVNode("",!0),fe.type.includes("Single")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[["yySingle","yymmSingle","yymmddSingle"].includes(fe.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDatePicker),{key:0,teleported:!1,modelValue:fe.value,"onUpdate:modelValue":he=>fe.value=he,clearable:"",placeholder:"请输入"+fe.name,type:ie(fe.type).type,"value-format":ie(fe.type).format},null,8,["modelValue","onUpdate:modelValue","placeholder","type","value-format"])):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:1,modelValue:fe.value,"onUpdate:modelValue":he=>fe.value=he,teleported:!1,clearable:"",type:fe.type=="numberSingle"?"number":"",placeholder:"请输入"+fe.name},null,8,["modelValue","onUpdate:modelValue","type","placeholder"]))],64)):vue.createCommentVNode("",!0),fe.type=="select"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:3},[ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,teleported:!1,style:{"margin-right":"10px"},modelValue:fe.dictId,"onUpdate:modelValue":he=>fe.dictId=he,placeholder:"字典值",clearable:"",onChange:he=>se(fe)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ne),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","onChange"])):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,modelValue:fe.value,"onUpdate:modelValue":he=>fe.value=he,placeholder:"请选择",clearable:""},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(fe.options,he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:he.name,value:he.code,key:he.code},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])],64)):vue.createCommentVNode("",!0)]),_:2},1032,["label"])):vue.createCommentVNode("",!0),ce.isEdit&&!vue.unref(re)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:4,style:{"margin-right":"0"}},{default:vue.withCtx(()=>[vue.createElementVNode("i",{class:"cursor-pointer ri-delete-bin-6-line text-color-danger",onClick:he=>G.form.splice(ve,1)},null,8,_hoisted_4$k)]),_:2},1024)):vue.createCommentVNode("",!0)]))],64))),128))]),_:1}))}}),searchEdit_vue_vue_type_style_index_0_scoped_441ff053_lang="",aceDynamicSearchEdit=_export_sfc$2(_sfc_main$D,[["__scopeId","data-v-441ff053"]]),_hoisted_1$w=vue.createElementVNode("i",{class:"ri-search-line"},null,-1),_hoisted_2$q={class:"mt-3"},_hoisted_3$m={key:1,class:"mr-1 text-base ri-edit-circle-fill text-color-primary"},_hoisted_4$j={key:2,class:"mr-1 ri-database-2-fill text-color-info"},_hoisted_5$g={key:3,class:"mr-1 ri-camera-fill text-color-info"},_hoisted_6$d={key:4,class:"ml-1"},_sfc_main$C=vue.defineComponent({__name:"model-menu",props:{type:{default:""},id:{default:""}},emits:["node-click"],setup(te,{expose:U,emit:G}){const ee=te,{proxy:ne}=vue.getCurrentInstance(),{loadModelMenu:re}=fetch$1(ne).model,oe=vue.ref(""),ie=vue.ref(null),le=G;vue.watch(oe,pe=>{vue.unref(ie).filter(pe)});const ae=(pe,ge)=>pe?ge.modelName.includes(pe):!0,se=vue.ref([]),ue=vue.ref([]),ce=vue.ref([]),de=vue.ref(!0),fe=vue.computed(()=>ee.type=="ODS"?vue.unref(se):ee.type=="DWD"?vue.unref(ue):vue.unref(ce)),ve=()=>{de.value=!0,Promise.all([re({modelLayer:"ODS"}),re({modelLayer:"DWD"}),re({modelLayer:"ODSVIEW"})]).then(pe=>{const ge=pe[0].data,me=pe[1].data,_e=pe[2].data;se.value=Object.keys(ge).map(ye=>({modelName:ye,id:ye,children:ge[ye]})),ce.value=Object.keys(_e).map(ye=>({modelName:ye,id:ye,children:_e[ye]})),ue.value=Object.keys(me).map(ye=>({modelName:ye,id:ye,children:[{modelName:"事实模型",id:nanoid(),children:me[ye].filter(be=>String(be.modelType)=="2")},{modelName:"维度模型",id:nanoid(),children:me[ye].filter(be=>String(be.modelType)=="1")}]})),de.value=!1})};ve();const he=pe=>{if(pe.modelCode){if(ee.type=="ODS"){le("node-click",pe);return}Array.isArray(pe.children)||le("node-click",pe)}};return U({init:ve}),(pe,ge)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createVNode(vue.unref(elementPlus.ElInput),{placeholder:"请输入内容",clearable:"",modelValue:vue.unref(oe),"onUpdate:modelValue":ge[0]||(ge[0]=me=>vue.isRef(oe)?oe.value=me:null)},{prefix:vue.withCtx(()=>[_hoisted_1$w]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_2$q,[vue.unref(de)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSkeleton),{key:0,animated:"",count:2})):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTree),{key:1,class:"animated fadeIn",ref_key:"treeRef",ref:ie,data:vue.unref(fe),"default-expand-all":"","node-key":"id",indent:10,"expand-on-click-node":!1,"highlight-current":"","filter-node-method":ae,onNodeClick:he},{default:vue.withCtx(({node:me,data:_e})=>[me.level!=1||pe.type=="ODS"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[_e.modelCode&&(_e.publishStatus==1&&_e.openForm==2||_e.openForm!=2)?(vue.openBlock(),vue.createElementBlock("i",{key:0,class:vue.normalizeClass(["mr-1 text-base ri-checkbox-circle-fill",[_e.publishStatus==2?"text-green-700":"text-gray-400"]])},null,2)):vue.createCommentVNode("",!0)],64)):vue.createCommentVNode("",!0),_e.openForm==2&&_e.publishStatus==2?(vue.openBlock(),vue.createElementBlock("i",_hoisted_3$m)):vue.createCommentVNode("",!0),_e.shadowFlag==1?(vue.openBlock(),vue.createElementBlock("i",_hoisted_4$j)):vue.createCommentVNode("",!0),_e.shadowFlag==2?(vue.openBlock(),vue.createElementBlock("i",_hoisted_5$g)):vue.createCommentVNode("",!0),vue.createElementVNode("span",{class:vue.normalizeClass({"font-bold":me.level==1})},vue.toDisplayString(_e.modelName),3),((_e==null?void 0:_e.children)??[]).some(ye=>ye.parentModelId)?(vue.openBlock(),vue.createElementBlock("span",_hoisted_6$d,[vue.createVNode(vue.unref(elementPlus.ElTag),{size:"small",effect:"plain",type:"danger"},{default:vue.withCtx(()=>[vue.createTextVNode("主表")]),_:1})])):vue.createCommentVNode("",!0),vue.renderSlot(pe.$slots,"default",{element:_e})]),_:3},8,["data"]))])],64))}}),_withScopeId$9=te=>(vue.pushScopeId("data-v-35df2183"),te=te(),vue.popScopeId(),te),_hoisted_1$v={class:"mt-3"},_hoisted_2$p=_withScopeId$9(()=>vue.createElementVNode("td",null,"字段名称",-1)),_hoisted_3$l=_withScopeId$9(()=>vue.createElementVNode("td",null,"字段描述",-1)),_hoisted_4$i=_withScopeId$9(()=>vue.createElementVNode("td",null,"映射字段",-1)),_hoisted_5$f=_withScopeId$9(()=>vue.createElementVNode("td",null,"数据类型",-1)),_hoisted_6$c=_withScopeId$9(()=>vue.createElementVNode("td",null,"数据长度",-1)),_hoisted_7$b=_withScopeId$9(()=>vue.createElementVNode("td",null,"数据标度",-1)),_hoisted_8$9=_withScopeId$9(()=>vue.createElementVNode("td",null,"是否主键",-1)),_hoisted_9$9=_withScopeId$9(()=>vue.createElementVNode("td",null,"唯一校验",-1)),_hoisted_10$8=_withScopeId$9(()=>vue.createElementVNode("td",{style:{width:"50px"}},null,-1)),_hoisted_11$6={class:"sort-target"},_hoisted_12$5=["onClick"],_hoisted_13$3=_withScopeId$9(()=>vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-move ri-mouse-line sortable-handle text-color-warning"})],-1)),_sfc_main$B=vue.defineComponent({__name:"model-attribute",props:vue.mergeModels({isRequired:{default:1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(te,{expose:U}){vue.getCurrentInstance();const G=vue.useModel(te,"modelValue");vue.ref(null);const ee=vue.ref(null),ne=vue.ref({attributeCode:[{required:!0,message:"请输入字段名称"},{pattern:/^[A-Za-z]\w*$/,message:"只能以字母开头,由字母/数字/下划线组成",trigger:"blur"}],attributeComment:[{required:!0,message:"请输入字段描述"}],mapCode:[{required:!0,message:"请输入映射字段"}],dataType:[{required:!0,message:"请选择数据类型"}],primaryKey:[{required:!0,message:"请选择是否为主键"}]}),re=ue=>{const ce=ue.dataType;ce!=="decimal"&&(ue.dataScale=0),["autoIncrement","date","time","datetime","int","bigint","double","text"].includes(ce)&&(ue.dataLength=0),ce==="decimal"&&(ue.dataLength=10,ue.dataScale=6),ce==="varchar"&&(ue.dataLength=255),vue.unref(ee).clearValidate()},oe=(ue,ce)=>{ue.primaryKey==2&&G.value.forEach((fe,ve)=>{ve!=ce&&(fe.primaryKey=1)})},ie=()=>{G.value.push({nanoid:nanoid(),dataScale:0,dataLength:0})},le=ue=>{const ce=vue.unref(G).findIndex(de=>de.nanoid==ue);G.value.length>1&&G.value.splice(ce,1)};return U({validate:async()=>await vue.unref(ee).validate(ue=>ue),isRepeat:()=>{const ue=new Map;let ce="";for(let de=0;de<G.value.length;de++){let fe=G.value[de],ve=ue.get(fe.attributeCode);ve!=null&&(ce+="字段名称 <strong>"+fe.attributeCode+"</strong> 重复(<i>第"+(ve+1)+"行和第"+(de+1)+"行</i>);<br>"),ue.set(G.value[de].attributeCode,de)}return ce}}),(ue,ce)=>{const de=vue.resolveComponent("aceHeader");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createVNode(de,{title:"唯一校验"},{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(G.value,(fe,ve)=>vue.withDirectives((vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:ve,size:"small",class:"ml-2",type:"primary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(fe.mapCode),1)]),_:2},1024)),[[vue.vShow,fe.uniqueKey==="2"&&fe.mapCode]])),128))])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElForm),{"label-width":"0",model:{modelValue:G.value},ref_key:"elFormRef",ref:ee,rules:vue.unref(ne)},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(vueDraggablePlus.VueDraggable),{modelValue:G.value,"onUpdate:modelValue":ce[0]||(ce[0]=fe=>G.value=fe),target:".sort-target",animation:150,handle:".sortable-handle"},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_1$v,[vue.createElementVNode("thead",null,[vue.createElementVNode("tr",null,[vue.createElementVNode("td",{style:{width:"50px"}},[vue.createElementVNode("i",{class:"text-lg cursor-pointer ri-add-circle-line text-color-primary",onClick:ie})]),_hoisted_2$p,_hoisted_3$l,_hoisted_4$i,_hoisted_5$f,_hoisted_6$c,_hoisted_7$b,_hoisted_8$9,_hoisted_9$9,_hoisted_10$8])]),vue.createElementVNode("tbody",_hoisted_11$6,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(G.value,(fe,ve)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:fe.nanoid},[fe.hide?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("tr",{key:fe.nanoid},[vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-pointer ri-indeterminate-circle-line text-color-danger",onClick:he=>le(fe.nanoid)},null,8,_hoisted_12$5)]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".attributeCode",rules:vue.unref(ne).attributeCode},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.attributeCode,"onUpdate:modelValue":he=>fe.attributeCode=he,maxlength:"30",showWordLimit:"",placeholder:"字段名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".attributeComment",rules:vue.unref(ne).attributeComment},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.attributeComment,"onUpdate:modelValue":he=>fe.attributeComment=he,maxlength:"30",showWordLimit:"",placeholder:"字段描述"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".mapCode",rules:vue.unref(ne).mapCode},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.mapCode,"onUpdate:modelValue":he=>fe.mapCode=he,maxlength:"30",showWordLimit:"",placeholder:"映射字段"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".dataType",rules:vue.unref(ne).dataType},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:fe.dataType,"onUpdate:modelValue":he=>fe.dataType=he,placeholder:"数据类型",style:{width:"120px"},onChange:()=>re(fe)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(commonDataType),he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:he.value,label:he.label,value:he.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".dataLength",rules:vue.unref(ne).dataLength},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInputNumber),{min:0,max:2048,"value-on-clear":0,"controls-position":"right",modelValue:fe.dataLength,"onUpdate:modelValue":he=>fe.dataLength=he,disabled:["autoIncrement","date","time","datetime","int","bigint","double","text"].includes(fe.dataType),placeholder:"长度",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".dataScale",rules:vue.unref(ne).dataScale},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInputNumber),{modelValue:fe.dataScale,"onUpdate:modelValue":he=>fe.dataScale=he,min:0,max:2048,"value-on-clear":0,"controls-position":"right",disabled:!["decimal"].includes(fe.dataType),placeholder:"标度",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:fe.primaryKey,"onUpdate:modelValue":he=>fe.primaryKey=he,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":"2","inactive-value":"1",onChange:()=>oe(fe,ve)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:fe.uniqueKey,"onUpdate:modelValue":he=>fe.uniqueKey=he,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":"2","inactive-value":"1"},null,8,["modelValue","onUpdate:modelValue"])]),_hoisted_13$3]))],64))),128))])])]),_:1},8,["modelValue"])]),_:1},8,["model","rules"])],64)}}}),modelAttribute_vue_vue_type_style_index_0_scoped_35df2183_lang="",ModelAttribute=_export_sfc$2(_sfc_main$B,[["__scopeId","data-v-35df2183"]]),_hoisted_1$u={class:"flex items-center justify-center mb-3"},_hoisted_2$o=vue.createElementVNode("i",{class:"ri-arrow-down-s-line"},null,-1),_sfc_main$A=vue.defineComponent({__name:"model-conn",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.ref([]),de=vue.computed(()=>{var ge;return(ge=fe.find(me=>me.fieldName=="openForm"))==null?void 0:ge.value}),fe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:ge=>{const me=fe.find(_e=>_e.fieldName==="modelType");me.required=ge.value=="DWD",me.disabled=ge.value!="DWD"}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0,disabled:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},disabled:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0}]),ve=()=>{le.value=!0,se.value="",ue.value=[],ce.value=[{nanoid:nanoid(),dataScale:0,dataLength:0}],oe.permission.includes("DATA_FROM_FORM")||fe.splice(fe.findIndex(ge=>ge.fieldName=="openForm"),1),ne({modelLayer:"ODS",projectId:ee.$baseGetCurrentProjectId()},fe),ee.$baseHttp.get(`/api/ace-data-center/data-source/listTableDetailByProjectId/${ee.$baseGetCurrentProjectId()}`).then(ge=>{ue.value=ge.data.filter(me=>!me.tableCode.startsWith("ods_")&&!me.tableCode.startsWith("dwd_"))})},he=async ge=>{var _e;ce.value=[];const me=await ee.$baseHttp.get("/api/ace-data-center/model/projectIdToModels",{params:{tableCodes:ge,projectId:ee.$baseGetCurrentProjectId()},headers:{loading:!0}});me&&(ne({...me.data[0],modelLayer:"ODS",projectId:ee.$baseGetCurrentProjectId()},fe),ce.value=(((_e=me.data[0])==null?void 0:_e.listModelAttribute)??[]).map(ye=>({...ye,dataScale:ye.dataScale||0,dataLength:ye.dataLength||0,nanoid:nanoid()})))},pe=async()=>{var be;const{params:ge,error:me}=re(fe);if(me.length>0||!await((be=vue.unref(ae))==null?void 0:be.validate()))return;const ye=vue.unref(ae).isRepeat();if(ye!==""){ee.$baseAlert({content:ye});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{await ee.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",{...ge,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:vue.unref(ce)})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})};return U({init:ve}),(ge,me)=>{const _e=vue.resolveComponent("AppForm"),ye=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ye,{modelValue:vue.unref(le),"onUpdate:modelValue":me[2]||(me[2]=be=>vue.isRef(le)?le.value=be:null),title:"数据源导入模型",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:pe},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(ge.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:me[1]||(me[1]=be=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$u,[vue.createVNode(vue.unref(elementPlus.ElDropdown),{onCommand:he},{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(ue),be=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdownItem),{key:be.tableCode,command:be.tableCode},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(be.tableComment||be.tableCode),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small"},{default:vue.withCtx(()=>[vue.createTextVNode(" 请选择模型 "),_hoisted_2$o]),_:1})]),_:1})]),vue.createVNode(_e,{form:vue.unref(fe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(ce),"onUpdate:modelValue":me[0]||(me[0]=be=>vue.isRef(ce)?ce.value=be:null),"is-required":vue.unref(de)},null,8,["modelValue","is-required"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),defaultAttributeCode=["project_id","create_time","create_user","create_dept","tag"],pushRequiredAttr=(te,U=!0)=>te,_hoisted_1$t={key:0,class:"flex items-center justify-center mt-3 mb-3"},_hoisted_2$n=vue.createElementVNode("i",{class:"ri-arrow-down-s-line"},null,-1),_sfc_main$z=vue.defineComponent({__name:"model-sql",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.ref(""),de=vue.ref([]),fe=vue.reactive([{name:"数据源类型",type:FieldType.Select,fieldName:"storeType",value:"",required:!0,options:[{label:"Mysql",value:"mysql"},{label:"Clickhouse",value:"clickhouse"},{label:"PostgreSql",value:"postgre"}]},{name:"上传sql",type:FieldType.Slot,fieldName:"file",required:!0,value:""}]),ve=vue.computed(()=>fe.find(be=>be.fieldName==="storeType")),he=vue.computed(()=>{var be;return(be=pe.find(xe=>xe.fieldName=="openForm"))==null?void 0:be.value}),pe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:be=>{const xe=pe.find($e=>$e.fieldName==="modelType");xe.required=be.value=="DWD",xe.disabled=be.value!="DWD";const Ce=`${((be==null?void 0:be.value)??"").toLocaleLowerCase()}_`;ce.value=Ce,pe.find($e=>$e.fieldName==="modelCode").prepend=vue.h("div",{},Ce)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},disabled:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0}]),ge=()=>{le.value=!0,se.value="",ue.value=[],de.value=[{nanoid:nanoid(),dataScale:0,dataLength:0}],oe.permission.includes("DATA_FROM_FORM")||pe.splice(pe.findIndex(be=>be.fieldName=="openForm"),1),ne({},fe),ne({projectId:ee.$baseGetCurrentProjectId()},pe)},me=async be=>{var Ve;if(!(be.file.name.substring(be.file.name.lastIndexOf(".")+1)==="sql")){ee.$message.error("上传文件只能为SQL文件!");return}const $e=new FormData;$e.append("file",be.file),$e.append("storeType",vue.unref(ve).value);const Ee=await ee.$baseHttp.post("/api/ace-data-center/model/uploadSqlFileToModel",$e,{headers:{"Content-Type":"multipart/form-data",loading:!0}});Ee&&(ue.value=Ee.data,ne({...Ee.data[0],projectId:ee.$baseGetCurrentProjectId()},pe),de.value=(((Ve=Ee.data[0])==null?void 0:Ve.listModelAttribute)??[]).map(Ne=>({...Ne,dataScale:Ne.dataScale||0,dataLength:Ne.dataLength||0,nanoid:nanoid()})))},_e=async be=>{const xe=vue.unref(ue).find(Ce=>Ce.modelCode==be);ne({...xe??{},projectId:ee.$baseGetCurrentProjectId()},pe),de.value=((xe==null?void 0:xe.listModelAttribute)??[]).map(Ce=>({...Ce,dataScale:Ce.dataScale??0,nanoid:nanoid()}))},ye=async()=>{var Ee;const{params:be,error:xe}=re(pe);if(xe.length>0||!await((Ee=vue.unref(ae))==null?void 0:Ee.validate()))return;const $e=vue.unref(ae).isRepeat();if($e!==""){ee.$baseAlert({content:$e});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{await ee.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",{...be,modelCode:vue.unref(ce)+be.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:pushRequiredAttr(vue.unref(de),be.modelLayer=="ODS")})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})};return U({init:ge}),(be,xe)=>{const Ce=vue.resolveComponent("AppForm"),$e=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock($e,{modelValue:vue.unref(le),"onUpdate:modelValue":xe[2]||(xe[2]=Ee=>vue.isRef(le)?le.value=Ee:null),title:"SQL新建模型",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:ye},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(be.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:xe[1]||(xe[1]=Ee=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(Ce,{form:vue.unref(fe)},{file:vue.withCtx(()=>{var Ee;return[vue.createVNode(vue.unref(elementPlus.ElUpload),{disabled:!((Ee=vue.unref(ve))!=null&&Ee.value),style:{width:"100%"},"http-request":me,multiple:!1,accept:".sql","show-file-list":!1},{default:vue.withCtx(()=>{var Ve;return[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",disabled:!((Ve=vue.unref(ve))!=null&&Ve.value)},{default:vue.withCtx(()=>[vue.createTextVNode("点击上传")]),_:1},8,["disabled"])]}),_:1},8,["disabled"]),vue.unref(ue).length?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$t,[vue.createVNode(vue.unref(elementPlus.ElDropdown),{onCommand:_e},{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(ue),Ve=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdownItem),{key:Ve.modelName,command:Ve.modelCode},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Ve.modelName),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small"},{default:vue.withCtx(()=>[vue.createTextVNode(" 请选择模型 "),_hoisted_2$n]),_:1})]),_:1})])):vue.createCommentVNode("",!0)]}),_:1},8,["form"]),vue.createVNode(Ce,{form:vue.unref(pe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(de),"onUpdate:modelValue":xe[0]||(xe[0]=Ee=>vue.isRef(de)?de.value=Ee:null),"is-required":vue.unref(he)},null,8,["modelValue","is-required"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_hoisted_1$s={key:0,class:"mb-2.5"},_hoisted_2$m=["onClick"],_hoisted_3$k=vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"},null,-1),_sfc_main$y=vue.defineComponent({__name:"model-normal",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.ref(""),de=vue.ref(""),fe=vue.ref([]),ve=vue.ref([]),he=vue.computed(()=>{var be;return(be=pe.find(xe=>xe.fieldName=="openForm"))==null?void 0:be.value}),pe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:be=>{const xe=pe.find($e=>$e.fieldName==="modelType");xe.required=be.value=="DWD",xe.disabled=be.value!="DWD";const Ce=`${((be==null?void 0:be.value)??"").toLocaleLowerCase()}_`;ce.value=Ce,pe.find($e=>$e.fieldName==="modelCode").prepend=vue.h("div",{},Ce)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},disabled:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0},{name:"id",type:FieldType.Text,fieldName:"id",value:"",hide:!0}]),ge=vue.ref(!0),me=be=>{var xe,Ce;le.value=!0,se.value="",ue.value=[],ve.value=((be==null?void 0:be.slaveModels)??[]).map($e=>({...$e,listModelAttribute:$e.listModelAttribute.filter(Ee=>Ee.attributeComment!="外键"&&Ee.attributeCode!="_data_from")})),de.value="default",ge.value=!(be!=null&&be.parentModelId),fe.value=(be?(be==null?void 0:be.listModelAttribute)??[]:[{nanoid:nanoid(),dataScale:0,dataLength:0}]).map($e=>{const Ee=(($e==null?void 0:$e.attributeCode)??"").split("");return $e.nanoid=nanoid(),Ee[0]=="_"&&($e.hide=!0),$e}),oe.permission.includes("DATA_FROM_FORM")||pe.splice(pe.findIndex($e=>$e.fieldName=="openForm"),1),((xe=be==null?void 0:be.modelCode)!=null&&xe.startsWith("ods_")||(Ce=be==null?void 0:be.modelCode)!=null&&Ce.startsWith("dwd_"))&&(be.modelCode=be.modelCode.substring(4,be.modelCode.length)),ne({...be??{},projectId:ee.$baseGetCurrentProjectId()},pe)},_e=async()=>{const{params:be,error:xe}=re(pe);if(xe.length>0)return;let Ce=!1;for(let $e=0;$e<vue.unref(ve).length+1;$e+=1){de.value=$e==0?"default":vue.unref(ve)[$e-1].value,await new Promise(Se=>{vue.nextTick(()=>Se(!0))});const Ee=Array.isArray(vue.unref(ae))?vue.unref(ae)[0]:vue.unref(ae);if(!await(Ee==null?void 0:Ee.validate())){Ce=!0;break}const Ne=vue.unref(Ee).isRepeat();if(Ne!==""){Ce=!0,ee.$baseAlert({content:Ne});break}}Ce||ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{const $e=be.id?"/api/ace-data-center/model/editModelDetail":"/api/ace-data-center/model/saveModelDetail";await ee.$baseHttp.post($e,{...be,modelCode:vue.unref(ce)+be.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:vue.unref(fe),slaveModels:vue.unref(ve).map(Ve=>({...Ve,openForm:be.openForm}))},{headers:{loading:!0}})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})},ye=()=>{ee.$basePrompt({content:"模型名称",placeholder:"模型名称",inputType:"input",inputValue:"",beforeCloseFunc:async(be,xe,Ce)=>{if(be!="confirm"){Ce();return}const $e={modelName:xe.inputValue,value:nanoid(),listModelAttribute:[{nanoid:nanoid(),dataScale:0,dataLength:0}]};ve.value.push($e),de.value=$e.value,Ce()}})};return U({init:me}),(be,xe)=>{const Ce=vue.resolveComponent("AppForm"),$e=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock($e,{modelValue:vue.unref(le),"onUpdate:modelValue":xe[3]||(xe[3]=Ee=>vue.isRef(le)?le.value=Ee: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.renderSlot(be.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:xe[2]||(xe[2]=Ee=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(Ce,{form:vue.unref(pe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.unref(ge)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$s,[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:vue.unref(de)=="default"?"primary":"",onClick:xe[0]||(xe[0]=Ee=>de.value="default")},{default:vue.withCtx(()=>[vue.createTextVNode(" 主表 ")]),_:1},8,["type"]),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ve),(Ee,Ve)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:vue.unref(de)==Ee.value?"primary":"",onClick:Ne=>de.value=Ee.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Ee.modelName)+" ",1),Ee.value!=vue.unref(de)?(vue.openBlock(),vue.createElementBlock("i",{key:0,class:"ml-1 ri-close-circle-line",onClick:vue.withModifiers(Ne=>vue.unref(ve).splice(Ve,1),["stop"])},null,8,_hoisted_2$m)):vue.createCommentVNode("",!0)]),_:2},1032,["type","onClick"]))),256))]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"warning",class:"ml-2.5",onClick:ye},{default:vue.withCtx(()=>[_hoisted_3$k,vue.createTextVNode(" 增加从表 ")]),_:1})])):vue.createCommentVNode("",!0),vue.unref(de)=="default"?(vue.openBlock(),vue.createBlock(ModelAttribute,{key:1,ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(fe),"onUpdate:modelValue":xe[1]||(xe[1]=Ee=>vue.isRef(fe)?fe.value=Ee:null),"is-required":vue.unref(he)},null,8,["modelValue","is-required"])):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ve),(Ee,Ve)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.unref(de)==Ee.value?(vue.openBlock(),vue.createBlock(ModelAttribute,{key:0,ref_for:!0,ref_key:"modelAttributeRef",ref:ae,modelValue:Ee.listModelAttribute,"onUpdate:modelValue":Ne=>Ee.listModelAttribute=Ne,"is-required":vue.unref(he)},null,8,["modelValue","onUpdate:modelValue","is-required"])):vue.createCommentVNode("",!0)],64))),256))]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_sfc_main$x=vue.defineComponent({__name:"model-excel",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.reactive([{name:"上传excel",type:FieldType.Slot,fieldName:"file",required:!0,value:""}]),de=vue.computed(()=>{var ge;return(ge=fe.find(me=>me.fieldName=="openForm"))==null?void 0:ge.value}),fe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},disabled:!0,changeFunc:ge=>{const me=fe.find(ye=>ye.fieldName==="modelType");me.required=ge.value=="DWD",me.disabled=ge.value!="DWD";const _e=`${((ge==null?void 0:ge.value)??"").toLocaleLowerCase()}_`;se.value=_e,fe.find(ye=>ye.fieldName==="modelCode").prepend=vue.h("div",{},_e)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},hide:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0},{name:"modelTemplateFileUrl",type:FieldType.Text,fieldName:"modelTemplateFileUrl",value:"",hide:!0},{name:"modelTemplateFileName",type:FieldType.Text,fieldName:"modelTemplateFileName",value:"",hide:!0},{name:"modelTemplateFileHeadIndex",type:FieldType.Text,fieldName:"modelTemplateFileHeadIndex",value:"",hide:!0}]),ve=()=>{le.value=!0,ue.value=[{nanoid:nanoid(),dataScale:0,dataLength:0}],oe.permission.includes("DATA_FROM_FORM")||fe.splice(fe.findIndex(ge=>ge.fieldName=="openForm"),1),ne({},ce),ne({modelLayer:"ODS",projectId:ee.$baseGetCurrentProjectId()},fe)},he=async ge=>{var ye;const me=new FormData;me.append("file",ge.file);const _e=await ee.$baseHttp.post("/api/ace-data-center/auto-import-excel/fileParser2Model",me,{headers:{"Content-Type":"multipart/form-data",loading:!0}});_e&&(ne({modelLayer:"ODS",modelName:_e.data.filename,modelCode:_e.data.filenamePinyin,modelTemplateFileUrl:_e.data.link,modelTemplateFileName:_e.data.originalName,modelTemplateFileHeadIndex:_e.data.headIndex,projectId:ee.$baseGetCurrentProjectId()},fe),ue.value=(((ye=_e.data)==null?void 0:ye.list)??[]).map(be=>({...be,dataScale:be.dataScale||0,dataLength:be.dataLength||0,nanoid:nanoid()})))},pe=async()=>{var be;const{params:ge,error:me}=re(fe);if(me.length>0||!await((be=vue.unref(ae))==null?void 0:be.validate()))return;const ye=vue.unref(ae).isRepeat();if(ye!==""){ee.$baseAlert({content:ye});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{await ee.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",{...ge,modelCode:vue.unref(se)+ge.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:pushRequiredAttr(vue.unref(ue),ge.modelLayer=="ODS")},{headers:{loading:!0}})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})};return U({init:ve}),(ge,me)=>{const _e=vue.resolveComponent("AppForm"),ye=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ye,{modelValue:vue.unref(le),"onUpdate:modelValue":me[2]||(me[2]=be=>vue.isRef(le)?le.value=be:null),title:"EXCEL新建模型",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:pe},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(ge.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:me[1]||(me[1]=be=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(_e,{form:vue.unref(ce)},{file:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElUpload),{style:{width:"100%"},"http-request":he,multiple:!1,accept:".xls,.xlsx","show-file-list":!1},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary"},{default:vue.withCtx(()=>[vue.createTextVNode("点击上传")]),_:1})]),_:1})]),_:1},8,["form"]),vue.createVNode(_e,{form:vue.unref(fe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(ue),"onUpdate:modelValue":me[0]||(me[0]=be=>vue.isRef(ue)?ue.value=be:null),"is-required":vue.unref(de)},null,8,["modelValue","is-required"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_hoisted_1$r={class:"flex flex-1 overflow-hidden"},_hoisted_2$l={class:"mt-4"},_sfc_main$w=vue.defineComponent({__name:"model-extract",emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),{allModel:oe,allModelAttribute:ie}=fetch$1(ee).model,le=G,ae=vue.ref(!1),se=vue.ref(null),ue=vue.ref(""),ce=vue.ref([]),de=vue.reactive({odsList:[],odsAttributeList:[],odsValue:""}),fe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,disabled:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:ye=>{const be=fe.find(Ce=>Ce.fieldName==="modelType");be.required=ye.value=="DWD",be.disabled=ye.value!="DWD";const xe=`${((ye==null?void 0:ye.value)??"").toLocaleLowerCase()}_`;ue.value=xe,fe.find(Ce=>Ce.fieldName==="modelCode").prepend=vue.h("div",{},xe)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"}}]),ve=vue.computed(()=>de.odsList.find(ye=>ye.id==de.odsValue).modelCode),he=()=>{ae.value=!0,ce.value=[],ne({modelLayer:"DWD",projectId:ee.$baseGetCurrentProjectId()},fe),oe({modelLayer:"ODS"}).then(ye=>{de.odsList=ye.data})},pe=async ye=>{const be=await ie({modelId:ye});be&&(de.odsAttributeList=be.data.filter(xe=>!defaultAttributeCode.includes(xe.attributeCode)),vue.nextTick(()=>{de.odsAttributeList.forEach(xe=>{vue.unref(ce).some(Ce=>Ce.sourceModelName==vue.unref(ve)&&Ce.sourceColumnName==xe.attributeCode)&&ee.$refs.odsAttributeListRef.toggleRowSelection(xe,!0)})}))},ge=(ye,be)=>{if(be){const xe=ye.length&&ye.indexOf(be)!==-1;me(xe?"add":"remove",be);return}ye.length?ye.forEach(xe=>{me("add",xe)}):ce.value=ce.value.filter(xe=>xe.sourceModelName!=vue.unref(ve))},me=(ye,be)=>{ye==="add"&&(vue.unref(ce).find(xe=>xe.sourceModelName==vue.unref(ve)&&xe.sourceColumnName==be.attributeCode)||ce.value.push({attributeCode:be.attributeCode,attributeComment:be.attributeComment,mapCode:be.attributeCode,dataType:be.dataType,dataLength:be.dataLength,dataScale:be.dataScale,primaryKey:"1",sourceModelName:vue.unref(ve),sourceColumnName:be.attributeCode,nanoid:nanoid()})),ye==="remove"&&(ce.value=ce.value.filter(xe=>xe.sourceModelName!==be.odsName&&xe.sourceColumnName!=be.attributeCode))},_e=async()=>{var $e;const{params:ye,error:be}=re(fe);if(be.length>0||!await(($e=vue.unref(se))==null?void 0:$e.validate()))return;const Ce=vue.unref(se).isRepeat();if(Ce!==""){ee.$baseAlert({content:Ce});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{const Ee="/api/ace-data-center/model/saveModelDetail";await ee.$baseHttp.post(Ee,{...ye,modelCode:vue.unref(ue)+ye.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:pushRequiredAttr(vue.unref(ce),ye.modelLayer=="ODS")},{headers:{loading:!0}})&&(ae.value=!1,ee.$message.success("操作成功"),le("success"))}})};return U({init:he}),(ye,be)=>{const xe=vue.resolveComponent("aceHeader"),Ce=vue.resolveComponent("AppForm"),$e=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock($e,{modelValue:vue.unref(ae),"onUpdate:modelValue":be[3]||(be[3]=Ee=>vue.isRef(ae)?ae.value=Ee:null),title:"ODS抽取模型",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.renderSlot(ye.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:be[2]||(be[2]=Ee=>ae.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"flex flex-col pr-5 mr-5",style:{width:"320px",overflow:"hidden"}},{default:vue.withCtx(()=>[vue.createVNode(xe,{title:"ODS源表"}),vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:vue.unref(de).odsValue,"onUpdate:modelValue":be[0]||(be[0]=Ee=>vue.unref(de).odsValue=Ee),onChange:pe,class:"w-full mt-2 mb-2",placeholder:"请选择模型"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(de).odsList,Ee=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Ee.id,label:`${Ee.modelName}:${Ee.modelCode}`,value:Ee.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_1$r,[vue.createVNode(vue.unref(elementPlus.ElTable),{ref:"odsAttributeListRef",data:vue.unref(de).odsAttributeList,onSelect:ge,onSelectAll:ge,height:"100%"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{type:"selection",width:"30"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeCode",label:"字段","show-overflow-tooltip":""}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeComment",label:"名称","show-overflow-tooltip":""}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"dataType",label:"类型"})]),_:1},8,["data"])])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(xe,{title:"DWD目标模型"}),vue.createElementVNode("div",_hoisted_2$l,[vue.createVNode(Ce,{form:vue.unref(fe),col:2},null,8,["form"])]),vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:se,modelValue:vue.unref(ce),"onUpdate:modelValue":be[1]||(be[1]=Ee=>vue.isRef(ce)?ce.value=Ee:null)},null,8,["modelValue"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_sfc_main$v=vue.defineComponent({__name:"model-tag-edit",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=ce=>{se.value=[{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:"",placeholder:"多个标签用英文逗号分割",required:!0},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0},{name:"projectId",type:FieldType.Text,fieldName:"projectId",value:"",hide:!0},{name:"编号",type:FieldType.Text,fieldName:"id",value:"",hide:!0}],(!oe.permission.includes("DATA_FROM_FORM")||ce.modelLayer=="ODSVIEW")&&vue.unref(se).splice(vue.unref(se).findIndex(de=>de.fieldName=="openForm"),1),ne(ce,se.value),le.value=!0},se=vue.ref([]),ue=async ce=>{switch(ce){case"submit":{const{params:de,error:fe}=re(vue.unref(se));if(fe.length>0||!await ee.$baseHttp.post("/api/ace-data-center/model/submit",de))return;le.value=!1,ee.$message.success("操作成功"),ie("success")}break}};return U({init:ae}),(ce,de)=>{const fe=vue.resolveComponent("AppForm"),ve=vue.resolveComponent("AppDialog");return vue.openBlock(),vue.createBlock(ve,{modelValue:vue.unref(le),"onUpdate:modelValue":de[2]||(de[2]=he=>vue.isRef(le)?le.value=he:null),title:"编辑模型",size:500},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",onClick:de[0]||(de[0]=he=>ue("submit"))},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:de[1]||(de[1]=he=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(fe,{form:vue.unref(se)},null,8,["form"])]),_:1},8,["modelValue"])}}}),_hoisted_1$q={key:1},_hoisted_2$k=vue.createElementVNode("i",{class:"mr-2 ri-delete-bin-line"},null,-1),_hoisted_3$j={key:0},_hoisted_4$h=vue.createElementVNode("span",{class:"text-color-danger"},"表格标题栏不匹配,",-1),_hoisted_5$e=vue.createElementVNode("span",{class:"text-color-danger"},"异常",-1),_sfc_main$u=vue.defineComponent({__name:"model-file-cache-list",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,{proxy:ne}=vue.getCurrentInstance(),{listSimpleColumn:re}=fetch$1(ne),oe=vue.ref(!1),ie=vue.ref(!1),le=vue.ref(null),ae=vue.ref(null),se=vue.ref([]),ue=vue.ref([]),ce=vue.ref(""),de=G,fe=vue.reactive([{name:"状态",type:FieldType.Select,fieldName:"extractStatus",value:"",fieldType:FieldRenderType.String,dict:"extractStatus"}]),ve=vue.ref([{label:"日期",prop:"createTime"},{label:"文件名",prop:"fileName"},{label:"抽取状态",prop:"extractStatus",dict:"extractStatus"},{label:"错误信息",prop:"errorMsg",slot:!0},{label:"操作",prop:"action",slot:!0,fixed:"right"}]),he=async()=>{ce.value=`/api/ace-data-center/file-extract-cache/list?projectId=${ne.$baseGetCurrentProjectId()}&modelId=${ee.modelId}`,oe.value=!0},pe=async(ge,me)=>{var _e;switch(ge){case"delete":ne.$baseConfirm({content:"是否确认删除?",callConfirm:async()=>{await ne.$baseHttp.post(`/api/ace-data-center/file-extract-cache/remove?ids=${me.id}`,{},{headers:{loading:!0}})&&(ne.$message.success("操作成功"),vue.unref(le).getData(),de("success"))}});break;case"viewError":ae.value=JSON.parse(me.errorMsg),se.value=(_e=vue.unref(ae))==null?void 0:_e.errorValidateData;const ye=await re(ee.modelId);ye.data&&ye.data.unshift({label:"异常情况",prop:"异常情况",mapLabel:"异常情况"}),ue.value=(ye.data??[]).map(be=>({...be,prop:be.mapLabel})),ie.value=!0;break}};return U({init:he}),(ge,me)=>{const _e=vue.resolveComponent("AppList"),ye=vue.resolveComponent("AppTable"),be=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(be,{modelValue:vue.unref(oe),"onUpdate:modelValue":me[1]||(me[1]=xe=>vue.isRef(oe)?oe.value=xe:null),title:"抽取日志",size:"90%"},{default:vue.withCtx(()=>[vue.unref(ce)?(vue.openBlock(),vue.createBlock(_e,{key:0,searchFormRes:{extractStatus:"00"},searchForm:vue.unref(fe),tableData:vue.unref(ve),url:vue.unref(ce),ref_key:"appList",ref:le},{errorMsg:vue.withCtx(({row:xe})=>[xe.extractStatus==="10"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElLink),{key:0,type:"primary",onClick:Ce=>pe("viewError",xe)},{default:vue.withCtx(()=>[vue.createTextVNode(" 查看错误信息 ")]),_:2},1032,["onClick"])):(vue.openBlock(),vue.createElementBlock("span",_hoisted_1$q,"-"))]),action:vue.withCtx(({row:xe})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"danger",onClick:Ce=>pe("delete",xe)},{default:vue.withCtx(()=>[_hoisted_2$k,vue.createTextVNode(" 删除 ")]),_:2},1032,["onClick"])]),_:1},8,["searchForm","tableData","url"])):vue.createCommentVNode("",!0),vue.createVNode(be,{modelValue:vue.unref(ie),"onUpdate:modelValue":me[0]||(me[0]=xe=>vue.isRef(ie)?ie.value=xe:null),title:"错误信息",size:"90%"},{default:vue.withCtx(()=>[vue.unref(ae)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$j,[vue.createVNode(vue.unref(elementPlus.ElAlert),{title:"温馨提醒",type:vue.unref(ae).isExtractSuccess?"success":"warning","show-icon":"",closable:!1},{default:vue.withCtx(()=>[vue.unref(ae).isTitleCheckSuccess===!1?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[_hoisted_4$h,vue.createTextVNode(" 请检查Excel文件数据! ")],64)):vue.unref(ae).isValidateSuccess?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createTextVNode(" 本批数据共有"+vue.toDisplayString(vue.unref(ae).dataTotalNum)+"条,全部通过校验。 ",1)],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createTextVNode(" 本批数据共有"+vue.toDisplayString(vue.unref(ae).dataTotalNum)+"条, 已校验"+vue.toDisplayString(vue.unref(ae).validateSuccessNum+vue.unref(ae).validateFailNum)+"条, "+vue.toDisplayString(vue.unref(ae).validateFailNum)+"条 ",1),_hoisted_5$e,vue.createTextVNode(" 当前异常率约为"+vue.toDisplayString(Number(vue.unref(ae).validateFailNum/(vue.unref(ae).validateSuccessNum+vue.unref(ae).validateFailNum)*100).toFixed(2))+"% ",1)],64))]),_:1},8,["type"])])):vue.createCommentVNode("",!0),vue.unref(ve).length>0?(vue.openBlock(),vue.createBlock(ye,{key:1,class:"mt-4",list:vue.unref(se),tableData:vue.unref(ue),loading:!1},null,8,["list","tableData"])):vue.createCommentVNode("",!0)]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}}),_hoisted_1$p=vue.createElementVNode("i",{class:"mr-2 ri-exchange-line"},null,-1),_hoisted_2$j=vue.createElementVNode("i",{class:"mr-2 ri-refresh-line"},null,-1),_hoisted_3$i=vue.createElementVNode("div",null,null,-1),_hoisted_4$g=vue.createElementVNode("i",{class:"mr-2 ri-delete-bin-line"},null,-1),_sfc_main$t=vue.defineComponent({__name:"model-extract-log",emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),ne=G,re=vue.ref(!1),oe=vue.ref(null),ie=vue.ref(""),le=vue.ref([]),ae=ue=>{const{businessId:ce,businessType:de="file_extract",ajaxUrl:fe="",table:ve}=ue;le.value=ve||[{label:"批次号",prop:"batchNo"},{label:"日期",prop:"createTime"},{label:"文件名",prop:"file",slot:!0},{label:"抽取方式",prop:"createTime",func:he=>{var pe;return((pe=JSON.parse(he.businessSnapshot||"{}"))==null?void 0:pe.extractType)==2?"覆盖":"追加"}},{label:"数据总数",prop:"totalNum"},{label:"成功数",prop:"successNum"},{label:"失败数",prop:"failNum"},{label:"协同参数",prop:"collaborateValue"},{label:"操作",prop:"action",slot:!0,fixed:"right"}],ie.value=fe||`/api/ace-data-center/extract-log/list?descs=create_time&businessId=${ce}&businessType=${de}`,re.value=!0},se=async(ue,ce)=>{switch(ue){case"refresh":{if(!await ee.$baseHttp.post(`/api/ace-data-center/extract-log/updateSuccessTotal/${ce.id}`,{},{headers:{loading:!0}}))return;ee.$message.success("操作成功"),vue.unref(oe).getData(),ne("success")}break;case"delete":ee.$baseConfirm({content:"删除数据可能影响指标统计,是否确认删除?",callConfirm:async()=>{await ee.$baseHttp.post(`/api/ace-data-center/extract-log/deleteModelData/${ce.id}`,{},{headers:{loading:!0}})&&(ee.$message.success("操作成功"),vue.unref(oe).getData(),ne("success"))}});break;case"run":ee.$baseConfirm({content:"重跑数据会先删除本批次数据,然后新建立一个批次任务执行,是否继续执行?",callConfirm:async()=>{await ee.$baseHttp.post(`/api/ace-data-center/extract-log/reRunTeamworkDbExtractBy/${ce.id}`,{},{headers:{loading:!0}})&&(ee.$message.success("操作成功"),vue.unref(oe).getData(),ne("success"))}});break;case"download":{const de=JSON.parse((ce==null?void 0:ce.businessSnapshot)??"{}");window.open(de.fileUrl)}break}};return U({init:ae}),(ue,ce)=>{const de=vue.resolveComponent("AppList"),fe=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(fe,{modelValue:vue.unref(re),"onUpdate:modelValue":ce[0]||(ce[0]=ve=>vue.isRef(re)?re.value=ve:null),title:"抽取日志",size:"90%"},{default:vue.withCtx(()=>[vue.createVNode(de,{tableData:vue.unref(le),url:vue.unref(ie),ref_key:"appList",ref:oe},{file:vue.withCtx(({row:ve})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:he=>se("download",ve)},{default:vue.withCtx(()=>{var he;return[vue.createTextVNode(vue.toDisplayString((he=JSON.parse(ve.businessSnapshot??"{}"))==null?void 0:he.fileName),1)]}),_:2},1032,["onClick"])]),action:vue.withCtx(({row:ve})=>{var he;return[((he=JSON.parse(ve.businessSnapshot||"{}"))==null?void 0:he.extractType)==3?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElLink),{key:0,type:"primary",class:"mr-2",onClick:pe=>se("run",ve)},{default:vue.withCtx(()=>[_hoisted_1$p,vue.createTextVNode(" 重跑 ")]),_:2},1032,["onClick"])):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:pe=>se("refresh",ve)},{default:vue.withCtx(()=>[_hoisted_2$j,vue.createTextVNode(" 刷新 ")]),_:2},1032,["onClick"]),_hoisted_3$i,vue.createVNode(vue.unref(elementPlus.ElLink),{type:"danger",onClick:pe=>se("delete",ve)},{default:vue.withCtx(()=>[_hoisted_4$g,vue.createTextVNode(" 删除本批次数据 ")]),_:2},1032,["onClick"])]}),_:1},8,["tableData","url"])]),_:1},8,["modelValue"])}}}),_sfc_main$s=vue.defineComponent({__name:"model-excel-edit",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=vue.ref(!1),le=vue.reactive([{name:"上传excel",type:FieldType.Slot,fieldName:"modelTemplateFileUrl",value:""},{name:"表头位置",type:FieldType.Select,fieldName:"titleNum",value:"",hide:!0,options:[{label:"第1行",value:"1"},{label:"第2行",value:"2"},{label:"第3行",value:"3"},{label:"第4行",value:"4"},{label:"第5行",value:"5"}]},{name:"去除末尾统计行",type:FieldType.Radio,fieldName:"filterEndLineFlag",value:"",hide:!0,options:[{label:"是",value:"1"},{label:"否",value:"0"}],defVal:"1"}]),ae=vue.ref(null),se=vue.ref([]),ue=async()=>{const fe=await ee.$baseHttp.get(`/api/ace-data-center/file-extract-template/detailByParams?modelId=${oe.modelId}`,{headers:{loading:!0}});fe&&(ae.value=fe.data,ie.value=!0,fe.data&&(se.value=[{name:fe.data.modelTemplateFileName,url:fe.data.modelTemplateFileUrl}]),ne(fe.data??{},le))},ce=async fe=>{const ve=new FormData;ve.append("file",fe.file);const he=await ee.$baseHttp.post("/api/ace-api/blade-resource/oss/endpoint/put-file",ve,{headers:{"Content-Type":"multipart/form-data",loading:!0}});he&&(se.value=[{name:he.data.originalName,url:he.data.link}])},de=async()=>{var pe;const{params:fe,error:ve}=re(le);ve.length>0||!await ee.$baseHttp.post("/api/ace-data-center/file-extract-template/submit",{...fe,modelTemplateFileName:vue.unref(se).length?vue.unref(se)[0].name:"",modelTemplateFileUrl:vue.unref(se).length?vue.unref(se)[0].url:"",modelId:oe.modelId,id:((pe=vue.unref(ae))==null?void 0:pe.id)??"",projectId:String(ee.$baseGetCurrentProjectId())})||(ie.value=!1,ee.$message.success("操作成功"))};return U({init:ue}),(fe,ve)=>{const he=vue.resolveComponent("AppForm"),pe=vue.resolveComponent("AppDialog");return vue.openBlock(),vue.createBlock(pe,{modelValue:vue.unref(ie),"onUpdate:modelValue":ve[2]||(ve[2]=ge=>vue.isRef(ie)?ie.value=ge:null),title:"模板上传",size:"50%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:de},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(fe.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:ve[1]||(ve[1]=ge=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(he,{form:vue.unref(le)},{modelTemplateFileUrl:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElUpload),{style:{width:"100%"},"file-list":vue.unref(se),"onUpdate:fileList":ve[0]||(ve[0]=ge=>vue.isRef(se)?se.value=ge:null),"http-request":ce,multiple:!1,accept:".xls,.xlsx"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary"},{default:vue.withCtx(()=>[vue.createTextVNode("点击上传")]),_:1})]),_:1},8,["file-list"])]),_:1},8,["form"])]),_:3},8,["modelValue"])}}}),jsoneditor_min="",jsonEditor_vue_vue_type_style_index_0_scoped_71f05bd7_lang="",_sfc_main$r={editor:null,name:"json-editor-vue",internalChange:!1,props:{modelValue:Object|Number|Array,options:Object,currentMode:{type:String,default:"code"},modeList:{type:Array,default:()=>["tree","code","form","text","view"]},language:{type:String,default:"en"}},data(){return{json:this.modelValue,expandedModes:["tree","view","form"],isFullScreen:!1,hasLogo:!0,showFullScreen:!1}},watch:{modelValue:{immediate:!0,deep:!0,handler(te){this.internalChange||(this.setEditorContent(te),this.$nextTick(()=>{this.expandAll()}))}}},mounted(){this.init();const te=document.querySelector(".jsoneditor-menu .jsoneditor-poweredBy");this.hasLogo=te&&window.getComputedStyle(te).display!=="none",this.showFullScreen=!0},unmounted(){var te;(te=this.editor)==null||te.destroy(),this.editor=null},methods:{toggleFullScreen(){this.isFullScreen=!this.isFullScreen,this.$nextTick(()=>{const te=new Event("resize");window.dispatchEvent(te)})},init(){const{currentMode:te,modeList:U,options:G}=this,ee=()=>{const ce=fe=>{this.json=fe,this.$emit("update:modelValue",fe),this.$emit("change",fe),this.internalChange=!0,this.$nextTick(()=>{this.internalChange=!1})};if(!this.editor.getText()){ce("");return}try{const fe=this.editor.get();ce(fe)}catch{}},ne=()=>{this.expandAll()},re=(ce,de,fe)=>{this.$emit("textSelectionChange",this.editor,ce,de,fe)},oe=(ce,de)=>{this.$emit("selectionChange",this.editor,ce,de)},ie=(ce,de,fe)=>{this.$emit("colorPicker",this.editor,ce,de,fe)},le=({target:ce})=>{this.$emit("focus",this.editor,ce)},ae=({target:ce})=>{this.$emit("blur",this.editor,ce)},se=ce=>{this.$emit("validationError",this.editor,ce)},ue={...G,indentation:2,language:this.language,mode:te,modes:U,onChange:ee,onModeChange:ne,onTextSelectionChange:re,onSelectionChange:oe,onColorPicker:ie,onFocus:le,onBlur:ae,onValidationError:se};this.editor=new JsonEditor(this.$refs.jsonEditorVue,ue,this.json)},expandAll(){var te,U;this.expandedModes.includes((te=this.editor)==null?void 0:te.getMode())&&((U=this.editor)==null||U.expandAll())},setEditorContent(te){var U;(U=this.editor)==null||U.set(te)}}},_hoisted_1$o={ref:"jsonEditorVue",class:"json-editor-vue"};function _sfc_render(te,U,G,ee,ne,re){return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["container",{"full-screen-container":ne.isFullScreen}])},[vue.createElementVNode("div",_hoisted_1$o,null,512),vue.createElementVNode("div",{class:vue.normalizeClass(["full-screen",{show:ne.showFullScreen,right:!ne.hasLogo}]),onClick:U[0]||(U[0]=(...oe)=>re.toggleFullScreen&&re.toggleFullScreen(...oe))},null,2)],2)}const JsonEditorVue=_export_sfc$2(_sfc_main$r,[["render",_sfc_render],["__scopeId","data-v-71f05bd7"]]);JsonEditorVue.install=function te(U){U.component(JsonEditorVue.name,JsonEditorVue)};const _hoisted_1$n={class:"h-full overflow-y-auto"},_hoisted_2$i={class:"absolute right-0 -top-10"},_hoisted_3$h=vue.createElementVNode("i",{class:"mr-1 ri-file-upload-line"},null,-1),_hoisted_4$f=vue.createElementVNode("i",{class:"mr-1 ri-file-cloud-line"},null,-1),_hoisted_5$d=vue.createElementVNode("i",{class:"mr-1 ri-file-history-line"},null,-1),_hoisted_6$b={key:0,class:"mb-4"},_hoisted_7$a=vue.createElementVNode("span",{class:"text-color-danger"},"表格标题栏不匹配,",-1),_hoisted_8$8=vue.createElementVNode("span",{class:"text-color-danger"},"异常",-1),_hoisted_9$8={class:"flex"},_hoisted_10$7={class:"flex-1 mr-3"},_hoisted_11$5={class:"flex-1"},_hoisted_12$4=vue.createElementVNode("i",{class:"mr-1 ri-edit-line"},null,-1),_hoisted_13$2=vue.createElementVNode("i",{class:"ri-file-excel-line text-color-primary",style:{"font-size":"38px"}},null,-1),_hoisted_14$2=vue.createElementVNode("div",{class:"el-upload__text"},"拖拽/点击文件上传",-1),_hoisted_15$1={class:"w-full"},_hoisted_16$1=vue.createElementVNode("i",{class:"mr-1 ri-google-play-line"},null,-1),_hoisted_17$1=vue.createElementVNode("i",{class:"ri-file-excel-line text-color-primary",style:{"font-size":"38px"}},null,-1),_hoisted_18$1=vue.createElementVNode("div",{class:"el-upload__text"},"拖拽/点击文件上传",-1),_hoisted_19$1={class:"flex w-full mt-3 text-sm"},_hoisted_20$1={class:"mr-2"},_hoisted_21$1={class:"w-full mt-2"},_hoisted_22$1=vue.createElementVNode("i",{class:"mr-1 ri-google-play-line"},null,-1),_sfc_main$q=vue.defineComponent({__name:"model-file-extract",props:{model:{default:{}}},setup(te){const{proxy:U}=vue.getCurrentInstance(),{setFormValue:G,getFormValue:ee}=U.$globalHooks.useForm(),{listSimpleColumn:ne}=fetch$1(U),re=te,oe=vue.reactive([{name:"抽取方式",type:FieldType.Radio,fieldName:"extractType",value:"",required:!0,options:[{label:"追加",value:"1"},{label:"覆盖",value:"2"}],defVal:"1"},{name:"是否上传图片",type:FieldType.Radio,fieldName:"hasPicture",value:"",required:!0,options:[{label:"否",value:"0"},{label:"是",value:"1"}],defVal:"0"},{name:"插件编写",type:FieldType.Slot,fieldName:"debug",value:""},{name:"Excel文件",type:FieldType.Slot,fieldName:"fileUrl",value:""},{name:"Excel批量",type:FieldType.Slot,fieldName:"batchFileUrl",value:""}]),ie=vue.ref(null),le=vue.ref(null),ae=vue.ref(null),se=vue.ref(null),ue=vue.ref(null),ce=vue.ref(`function plugin(item){
|
|
897
|
+
}`,vue.unref(we).init((Oe==null?void 0:Oe.taskDefined)??{}),Ae.value=(Oe==null?void 0:Oe.taskDefined)??null,be.value="",re.$baseHttp.get("/api/ace-data-center/data-source/options?type=3").then(Le=>{xe.value=Le.data}),ee.widgetType.indexOf("ODSVIEW")>=0){Oe.modelCode=Oe.modelCode.replace("odsview_",""),oe({...Oe,projectId:re.$baseGetCurrentProjectId()},Me),Oe.viewQuerySql&&(Ce.value=Oe.viewQuerySql);return}oe({modelLayer:"",projectId:re.$baseGetCurrentProjectId()},Me)})},Re=async(Oe,Le=!0)=>{Ne.value=!0;const Ge={dataSourceId:vue.unref(be),extractSql:vue.unref(Ce),projectId:re.$baseGetCurrentProjectId()};Oe==="javascript"&&(Ge.extractPluginScript=vue.unref(Ee)||"",Ge.streamType=Be.find(Ue=>Ue.fieldName=="streamType").value);const qe=await re.$baseHttp.post("/api/ace-data-center/db-extract/dbExtractDebug",Ge);Ne.value=!1,qe&&(Oe==="sql"?$e.value=qe.data:(Ve.value=qe.data,ee.widgetType=="model-add"&&re.$baseHttp.post("/api/ace-data-center/model/autoParseToModel",Ge).then(Ue=>{Ue&&(Se.value=Ue.data)})),Le&&le({type:"success",message:"执行成功"}))},Fe=async()=>{vue.nextTick(async()=>{var Ge;let Oe;if(!vue.unref(Ce)){le({type:"warning",message:"请输入SQL"});return}if(!vue.unref(Ee)){le({type:"warning",message:"请输入javascript"});return}let Le={};if(!(vue.unref(he)=="dataTable"&&(Le=je(),!Le))){if(ee.widgetType=="model-add"||ee.widgetType.indexOf("ODSVIEW")>=0){pe.value=vue.unref(he)=="view"?"2":"3";const{params:qe,error:Ue}=ie(Me);if(Ue.length>0)return;if(!await((Ge=vue.unref(ye))==null?void 0:Ge.validate())){le({type:"warning",message:"映射字段有误请核对"});return}const Ye=vue.unref(ye).isRepeat();if(Ye!==""){re.$baseAlert({content:Ye});return}if(!vue.unref(Se).length){le({type:"warning",message:"字段不能为空"});return}const Je={...qe,modelCode:vue.unref(Ie)+qe.modelCode,dataSourceId:vue.unref(be),projectId:String(re.$baseGetCurrentProjectId()),listModelAttribute:vue.unref(Se),viewQuerySql:qe.modelLayer==="ODSVIEW"?vue.unref(Ce):""};if(ee.widgetType.indexOf("ODSVIEW")>=0&&Je.listModelAttribute.forEach(Xe=>{delete Xe.id}),Oe=await re.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",Je,{headers:{loading:!0}}),!Oe||(ke.value=Oe.data,Oe=await re.$baseHttp.post(`/api/ace-data-center/model/settingPublishStatus/${vue.unref(ke)}/2`),!Oe))return}vue.unref(he)!="view"&&(Oe=await re.$baseHttp.post("/api/ace-data-center/db-extract/submitDbExtract",{execExtract:0,dataSourceId:vue.unref(be),modelId:vue.unref(ke),projectId:re.$baseGetCurrentProjectId(),...Le}),!Oe)||(le({type:"success",message:"操作成功"}),ne("success"))}})},je=()=>{const{params:Oe,error:Le}=ie(Be);if(Le.length>0){pe.value="3",le({type:"warning",message:"方案配置有误"});return}if(vue.unref(Pe)){const{params:Ge,error:qe}=vue.unref(we).getForm();if(qe.length>0){pe.value="3",le({type:"warning",message:"作业配置有误"});return}Oe.taskDefined={...vue.unref(Ae)??{},...Ge}}return{...Oe,extractPluginScript:vue.unref(Ee),extractSql:vue.unref(Ce)}};return U({init:ze,modelId:ke,listModelAttribute:Se,extractSql:Ce,handleSubmit:Fe}),(Oe,Le)=>{var Xe,Ke;const Ge=vue.resolveComponent("AppCodemirror"),qe=vue.resolveComponent("AppTable"),Ue=vue.resolveComponent("AppJson"),We=vue.resolveComponent("AppForm"),Ye=vue.resolveComponent("aceHeader"),Je=vue.resolveComponent("AppTaskDesign");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$F,[vue.createElementVNode("div",_hoisted_2$y,[vue.createElementVNode("div",_hoisted_3$t,[vue.createElementVNode("div",_hoisted_4$p,[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ue,He=>vue.createElementVNode("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(ce)==He.value}]),onClick:Qe=>fe.value=He.value},[vue.createElementVNode("span",_hoisted_6$g,vue.toDisplayString(He.num),1),vue.createTextVNode(" "+vue.toDisplayString(He.label),1)],10,_hoisted_5$k)),64)),vue.createElementVNode("span",_hoisted_7$e,[vue.createTextVNode(" 当前数据仓库为: "),vue.createElementVNode("span",_hoisted_8$b,vue.toDisplayString(vue.unref(se)),1),vue.createTextVNode(" 注意sql语法 ")]),vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:vue.unref(be),"onUpdate:modelValue":Le[0]||(Le[0]=He=>vue.isRef(be)?be.value=He:null),placeholder:"请选择数据源选项",clearable:!0,teleported:!1,class:"w-40 ml-2",size:"small"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(xe),He=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:He.code,label:He.label,value:He.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_9$a,[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(Ne),type:"warning",class:"flex items-center",onClick:Le[1]||(Le[1]=He=>Re("sql"))},{default:vue.withCtx(()=>[_hoisted_10$9,vue.createTextVNode(" 执行SQL ")]),_:1},8,["disabled"])])]),vue.createElementVNode("div",_hoisted_11$7,[vue.unref(ce)=="1"?(vue.openBlock(),vue.createBlock(Ge,{key:0,extensions:"sql",modelValue:vue.unref(Ce),"onUpdate:modelValue":Le[2]||(Le[2]=He=>vue.isRef(Ce)?Ce.value=He:null),style:{height:"100%"}},null,8,["modelValue"])):vue.createCommentVNode("",!0)])]),vue.createElementVNode("div",_hoisted_12$6,[vue.createElementVNode("div",_hoisted_13$4,[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(de,He=>vue.createElementVNode("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(fe)==He.value}]),onClick:Qe=>fe.value=He.value},vue.toDisplayString(He.label),11,_hoisted_14$3)),64))]),vue.createElementVNode("div",_hoisted_15$2,[vue.unref(fe)=="1"?(vue.openBlock(),vue.createBlock(qe,{key:0,tableData:(Xe=vue.unref($e))!=null&&Xe.length?Object.keys(vue.unref($e)[0]).map(He=>({label:He,prop:He})):[],list:vue.unref($e)??[]},null,8,["tableData","list"])):vue.createCommentVNode("",!0),vue.unref(fe)=="2"?(vue.openBlock(),vue.createBlock(Ue,{key:1,style:{height:"100%"},modelValue:vue.unref($e),"onUpdate:modelValue":Le[3]||(Le[3]=He=>vue.isRef($e)?$e.value=He:null)},null,8,["modelValue"])):vue.createCommentVNode("",!0)])])]),vue.createElementVNode("div",_hoisted_16$2,[vue.createElementVNode("div",_hoisted_17$2,[vue.createElementVNode("div",_hoisted_18$2,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ve),He=>(vue.openBlock(),vue.createElementBlock("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(pe)==He.value}]),onClick:Qe=>pe.value=He.value},[He.isRequired?(vue.openBlock(),vue.createElementBlock("span",_hoisted_20$2,"*")):vue.createCommentVNode("",!0),vue.createElementVNode("span",_hoisted_21$2,vue.toDisplayString(He.num),1),vue.createTextVNode(" "+vue.toDisplayString(He.label),1)],10,_hoisted_19$2))),256)),vue.unref(he)!="view"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_22$2,[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:vue.unref(Ne),type:"warning",class:"flex items-center",onClick:Le[4]||(Le[4]=He=>Re("javascript"))},{default:vue.withCtx(()=>[_hoisted_23$1,vue.createTextVNode(" 执行插件 ")]),_:1},8,["disabled"])])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_24$1,[vue.unref(pe)=="1"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_25$1,[vue.createVNode(vue.unref(elementPlus.ElRadioGroup),{modelValue:vue.unref(he),"onUpdate:modelValue":Le[5]||(Le[5]=He=>vue.isRef(he)?he.value=He:null)},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElRadioButton),{value:"view",disabled:Oe.widgetType!="model-add"&&Oe.widgetType.indexOf("ODSVIEW")==-1},{default:vue.withCtx(()=>[_hoisted_26$1,vue.createTextVNode(" 保存为视图 ")]),_:1},8,["disabled"]),vue.createVNode(vue.unref(elementPlus.ElRadioButton),{value:"dataTable",disabled:Oe.widgetType.indexOf("ODSVIEW")>=0},{default:vue.withCtx(()=>[_hoisted_27,vue.createTextVNode(" 保存为数据表 ")]),_:1},8,["disabled"])]),_:1},8,["modelValue"])])):vue.createCommentVNode("",!0),vue.unref(he)=="dataTable"&&vue.unref(pe)=="2"?(vue.openBlock(),vue.createBlock(Ge,{key:1,modelValue:vue.unref(Ee),"onUpdate:modelValue":Le[6]||(Le[6]=He=>vue.isRef(Ee)?Ee.value=He:null),style:{height:"100%"}},null,8,["modelValue"])):vue.createCommentVNode("",!0),vue.withDirectives(vue.createElementVNode("div",_hoisted_28,[vue.createVNode(We,{form:vue.unref(Me),col:1,class:"mt-2"},null,8,["form"]),vue.createVNode(vue.unref(elementPlus.ElPopover),{placement:"top-end",trigger:"click",width:"1000px",teleported:!1,visible:vue.unref(_e),"onUpdate:visible":Le[8]||(Le[8]=He=>vue.isRef(_e)?_e.value=He:null)},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",class:"ml-7"},{default:vue.withCtx(()=>[_hoisted_30,vue.createTextVNode(" 字段映射("+vue.toDisplayString(vue.unref(Se).length)+") ",1)]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_29,[vue.createVNode(Attribute,{ref_key:"attributeRef",ref:ye,modelValue:vue.unref(Se),"onUpdate:modelValue":Le[7]||(Le[7]=He=>vue.isRef(Se)?Se.value=He:null)},null,8,["modelValue"])])]),_:1},8,["visible"])],512),[[vue.vShow,vue.unref(he)=="view"&&vue.unref(pe)=="2"||vue.unref(he)=="dataTable"&&vue.unref(pe)=="3"]]),vue.withDirectives(vue.createElementVNode("div",_hoisted_31,[vue.createVNode(We,{form:vue.unref(Be)},{incrementalField:vue.withCtx(({element:He})=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,modelValue:He.value,"onUpdate:modelValue":Qe=>He.value=Qe,placeholder:"请选择"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(Se),Qe=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Qe.id,label:`${Qe.attributeCode}(${Qe.attributeComment||Qe.attributeCode})`,value:Qe.attributeCode},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:1},8,["form"]),vue.withDirectives(vue.createElementVNode("div",_hoisted_32,[vue.createVNode(Ye,{title:"作业配置",class:"mb-2"},{left:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{class:"ml-2",modelValue:vue.unref(Pe),"onUpdate:modelValue":Le[9]||(Le[9]=He=>vue.isRef(Pe)?Pe.value=He:null)},{default:vue.withCtx(()=>[vue.createTextVNode("作业配置")]),_:1},8,["modelValue"])]),_:1}),vue.withDirectives(vue.createElementVNode("div",null,[vue.createVNode(Je,{ref_key:"taskDesignRef",ref:we},null,512)],512),[[vue.vShow,vue.unref(Pe)]])],512),[[vue.vShow,["1","2"].includes(vue.unref(Te).value)]])],512),[[vue.vShow,vue.unref(pe)=="4"]])])]),vue.unref(he)!="view"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_33,[vue.createElementVNode("div",_hoisted_34,[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ge,He=>vue.createElementVNode("span",{class:vue.normalizeClass(["h-item",{active:vue.unref(me)==He.value}]),onClick:Qe=>me.value=He.value},vue.toDisplayString(He.label),11,_hoisted_35)),64))]),vue.createElementVNode("div",_hoisted_36,[vue.unref(me)=="1"?(vue.openBlock(),vue.createBlock(qe,{key:0,tableData:(Ke=vue.unref(Ve))!=null&&Ke.length?Object.keys(vue.unref(Ve)[0]).map(He=>({label:He,prop:He})):[],list:vue.unref(Ve)??[]},null,8,["tableData","list"])):vue.createCommentVNode("",!0),vue.unref(me)=="2"?(vue.openBlock(),vue.createBlock(Ue,{key:1,style:{height:"100%"},modelValue:vue.unref(Ve),"onUpdate:modelValue":Le[10]||(Le[10]=He=>vue.isRef(Ve)?Ve.value=He:null)},null,8,["modelValue"])):vue.createCommentVNode("",!0)])])):vue.createCommentVNode("",!0)])])}}}),design_vue_vue_type_style_index_0_scoped_22676e4d_lang="",Design=_export_sfc$2(_sfc_main$O,[["__scopeId","data-v-22676e4d"]]),_withScopeId$e=te=>(vue.pushScopeId("data-v-6eba707e"),te=te(),vue.popScopeId(),te),_hoisted_1$E={class:"flex items-center mt-2"},_hoisted_2$x={class:"flex-1"},_hoisted_3$s={class:"mt-2 text-gray-400"},_hoisted_4$o={class:"text-xs text-gray-400"},_hoisted_5$j=_withScopeId$e(()=>vue.createElementVNode("label",null,"模型名称:",-1)),_hoisted_6$f=_withScopeId$e(()=>vue.createElementVNode("label",null,"模型代码:",-1)),_hoisted_7$d=_withScopeId$e(()=>vue.createElementVNode("label",null,"模型描述:",-1)),_sfc_main$N=vue.defineComponent({__name:"sql",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),oe=vue.ref(null),ie=vue.ref(!1),le=vue.ref(""),ae=vue.ref(""),se=vue.ref([]),ue=vue.ref({}),ce=(me,_e="")=>{ue.value={},se.value=[],ie.value=!0,le.value=me,[{label:"源数据",value:"odsy"},{label:"整合数据",value:"dwdy"}].forEach(ye=>{se.value.push({...ye,attributeList:{},options:[],selectValue:[],currentVal:"",checkAttributeList:[]})}),me!="model-add"&&me.indexOf("ODSVIEW")==-1&&se.value.push({label:"DWD目标",value:"dwdmb"}),ae.value=vue.unref(se)[0].value,fetch$1(re).allModel({modelLayer:"ODS"}).then(ye=>{vue.unref(se).find(be=>be.value=="odsy").options=ye.data}),fetch$1(re).allModel({modelLayer:"DWD"}).then(ye=>{vue.unref(se).find(be=>be.value=="dwdy").options=ye.data}),vue.nextTick(()=>{ee.modelId?(vue.unref(oe).modelId=ee.modelId,fetch$1(re).allModelAttribute({modelId:ee.modelId}).then(ye=>{const be=vue.unref(se).find(xe=>xe.value=="dwdmb");be&&(be.attributeList=ye.data),vue.unref(oe).listModelAttribute=ye.data}),re.$baseHttp.get(`/api/ace-data-center/model/detail?id=${ee.modelId}`,{headers:{loading:!0}}).then(ye=>{ue.value=ye.data,me.indexOf("ODSVIEW")>=0&&vue.unref(oe).init(ye.data)}),_e?re.$baseHttp.get(`/api/ace-data-center/db-extract/detailAndTask?dbExtractId=${_e}`).then(ye=>{vue.unref(oe).init(me=="COPY"?{...ye.data,id:null,extractType:null,incrementalField:null,status:null,taskDefined:null,taskDefinedId:null,createUser:null,createDept:null,createTime:null,updateUser:null,updateTime:null}:ye.data)}):vue.unref(oe).init()):vue.unref(oe).init()})},de=me=>{ae.value=me},fe=(me,_e="")=>_e?me.options.find(ye=>ye.id==_e):me.options.find(ye=>ye.id==me.currentVal),ve=me=>{var _e;if(me.selectValue.length){const ye=me.selectValue.at(-1);me.currentVal=(_e=fe(me,ye))==null?void 0:_e.id,he(me);return}me.currentVal=""},he=me=>{me.attributeList[me.currentVal]||fetch$1(re).allModelAttribute({modelId:me.currentVal}).then(_e=>{me.attributeList[me.currentVal]=_e.data})},pe=me=>{var _e;vue.unref(oe).extractSql+=`select ${me.checkAttributeList.map(ye=>ye.attributeCode).toString()} from ${(_e=fe(me))==null?void 0:_e.modelCode}`},ge=()=>{ie.value=!1,ne("success",le.value,vue.unref(oe).modelId)};return U({init:ce}),(me,_e)=>{const ye=vue.resolveComponent("aceHeader"),be=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(be,{modelValue:vue.unref(ie),"onUpdate:modelValue":_e[2]||(_e[2]=xe=>vue.isRef(ie)?ie.value=xe:null),title:"SQL数据整合抽取",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:_e[0]||(_e[0]=xe=>vue.unref(oe).handleSubmit())},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(me.$slots,"formFooter",{},void 0,!0),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:_e[1]||(_e[1]=xe=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"flex flex-col pr-4 mr-5",style:{width:"280px",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(se),xe=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{onClick:Ce=>de(xe.value),type:vue.unref(ae)==xe.value?"primary":"",key:xe.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(xe.label),1)]),_:2},1032,["onClick","type"]))),128))]),_:1}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(se),xe=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:xe.value},[xe.value==vue.unref(ae)&&["odsy","dwdy"].includes(xe.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(ye,{class:"mt-2",title:"模型选择"}),vue.createElementVNode("div",_hoisted_1$E,[vue.createElementVNode("div",_hoisted_2$x,[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:xe.selectValue,"onUpdate:modelValue":Ce=>xe.selectValue=Ce,teleported:!1,onChange:()=>ve(xe),multiple:"","collapse-tags":"",clearable:"",placeholder:"请选择一个模型",class:"w-full"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(xe.options,Ce=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Ce.id,label:Ce.modelName,value:Ce.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),xe.selectValue.length?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{key:0,placement:"right",width:"300",teleported:!1,trigger:"hover"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElBadge),{value:xe.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(xe.selectValue,Ce=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:Ce,type:xe.currentVal==Ce?"warning":"primary",onClick:$e=>{xe.currentVal=Ce,he(xe)},style:{margin:"0 7px 7px 0",cursor:"pointer"}},{default:vue.withCtx(()=>{var $e;return[vue.createTextVNode(vue.toDisplayString(($e=fe(xe,Ce))==null?void 0:$e.modelName),1)]}),_:2},1032,["type","onClick"]))),128))]),_:2},1024)):vue.createCommentVNode("",!0)]),xe.currentVal?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTooltip),{key:0,effect:"dark",content:`${fe(xe).modelName}[${fe(xe).modelCode}]`,placement:"bottom"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3$s,vue.toDisplayString(`${fe(xe).modelName}[${fe(xe).modelCode}]`),1)]),_:2},1032,["content"])):vue.createCommentVNode("",!0),vue.createVNode(ye,{class:"mt-2 mb-2",title:"字段属性"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{disabled:xe.checkAttributeList.length==0,type:"primary",onClick:Ce=>pe(xe)},{default:vue.withCtx(()=>[vue.createTextVNode(" 复制select语句到编辑框 ")]),_:2},1032,["disabled","onClick"])]),_:2},1024),vue.createVNode(vue.unref(elementPlus.ElTable),{data:xe.attributeList[xe.currentVal],height:"100%",size:"small",onSelectionChange:Ce=>xe.checkAttributeList=Ce},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{type:"selection",width:"40"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeCode",label:"字段"},{default:vue.withCtx(({row:Ce,$index:$e})=>[vue.createElementVNode("div",null,vue.toDisplayString(Ce.attributeCode),1),vue.createElementVNode("div",_hoisted_4$o,vue.toDisplayString(Ce.attributeComment),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{width:"80",prop:"dataType",label:"数据类型"})]),_:2},1032,["data","onSelectionChange"])],64)):vue.createCommentVNode("",!0),xe.value==vue.unref(ae)&&["dwdmb"].includes(xe.value)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(ye,{class:"mt-2",title:"DWD目标"}),vue.createElementVNode("section",null,[vue.createElementVNode("div",null,[_hoisted_5$j,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(ue).modelName),1)]),vue.createElementVNode("div",null,[_hoisted_6$f,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(ue).modelCode),1)]),vue.createElementVNode("div",null,[_hoisted_7$d,vue.createTextVNode(" "+vue.toDisplayString(vue.unref(ue).modelDesc),1)])]),vue.createVNode(vue.unref(elementPlus.ElTable),{data:xe.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:Ce,$index:$e})=>[vue.createTextVNode(vue.toDisplayString(Ce.sourceModelName)+"."+vue.toDisplayString(Ce.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(Design,{ref_key:"designMainRef",ref:oe,widgetType:vue.unref(le),onSuccess:ge},null,8,["widgetType"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),sql_vue_vue_type_style_index_0_scoped_6eba707e_lang="",ModelSql=_export_sfc$2(_sfc_main$N,[["__scopeId","data-v-6eba707e"]]),_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("AppList"),ge=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ge,{modelValue:vue.unref(G),"onUpdate:modelValue":he[1]||(he[1]=me=>vue.isRef(G)?G.value=me:null),title:"调度日志",size:1e3},{default:vue.withCtx(()=>[vue.createVNode(pe,{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:me})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:_e=>fe(me)},{default:vue.withCtx(()=>[vue.createTextVNode("查看调度日志")]),_:2},1032,["onClick"])]),_:1},8,["tableData","searchForm","searchBtns","formData"]),vue.createVNode(ge,{modelValue:vue.unref(ee),"onUpdate:modelValue":he[0]||(he[0]=me=>vue.isRef(ee)?ee.value=me: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(),{openMessage:ee}=G.$globalHooks.useMessage(),ne=vue.ref(null),re=vue.ref(null),oe=vue.ref(null),ie=vue.ref(null),le=`/api/ace-data-center/db-extract/page?modelId=${U.model.id}&projectId=${G.$baseGetCurrentProjectId()}`,ae=vue.reactive([{name:"新增",key:"ADD",type:"primary",icon:"ri-add-line"}]),se=vue.reactive([{label:"抽取方案名称",prop:"extractName"},{label:"抽取类型",prop:"extractType",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=extractType",label:"dictValue",value:"dictKey"},slot:!0},{label:"作业任务",prop:"taskDefinedId",slot:!0},{label:"操作",prop:"htmlButton",fixed:"right"}]),ue=de=>{de.data.forEach(fe=>{fe.htmlButton=[],fe.htmlButton.push({name:"编辑",key:"EDIT",type:"primary",icon:"ri-edit-line"}),fe.htmlButton.push({name:"复制",key:"COPY",type:"primary",icon:"ri-file-copy-line"}),fe.htmlButton.push({name:"抽取记录",key:"LOG",type:"primary",icon:"ri-file-line"}),fe.taskDefinedId&&fe.htmlButton.push({name:"作业调度日志",key:"TASK-LOG",type:"primary",icon:"ri-file-line"}),[1,2].includes(fe.extractType)&&fe.htmlButton.push({name:"抽取",key:"PUSH",type:"primary",icon:"ri-pushpin-line"}),fe.htmlButton.push({name:"删除",key:"DEL",type:"danger",icon:"ri-delete-bin-6-line"})})},ce=de=>{const{type:fe,row:ve}=de;switch(fe){case"ADD":case"COPY":case"EDIT":vue.unref(ie).init(fe,(ve==null?void 0:ve.id)??"");break;case"LOG":vue.unref(ne).init({businessId:ve.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(re).init(ve.taskDefinedId??"");break;case"PUSH":G.$baseConfirm({content:"是否抽取?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/extract/${ve.id}`,{},{headers:{loading:!0}})&&ee({type:"success",message:"操作成功"})}});break;case"DEL":G.$baseConfirm({content:"是否删除?",callConfirm:async()=>{await G.$baseHttp.post(`/api/ace-data-center/db-extract/removeById/${ve.id}`,{},{headers:{loading:!0}})&&(ee({type:"success",message:"操作成功"}),vue.unref(oe).getData())}});break}};return(de,fe)=>{const ve=vue.resolveComponent("AppList");return vue.openBlock(),vue.createBlock(ve,{ref_key:"appRef",ref:oe,url:le,tableData:vue.unref(se),searchBtns:vue.unref(ae),onSuccess:ue,onBtnClick:ce},{taskDefinedId:vue.withCtx(({row:he})=>{var pe;return[he.taskDefinedId?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createTextVNode(vue.toDisplayString(((pe=vue.unref(G).$globalUtils.taskOptions.find(ge=>ge.value==he.taskDefined.xxlJobId))==null?void 0:pe.label)??"-")+" ",1),vue.createVNode(vue.unref(elementPlus.ElTag),{type:he.taskDefined.status==2?"primary":"danger",class:"ml-2"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(he.taskDefined.status==2?"启用":"禁用"),1)]),_:2},1032,["type"])],64)):vue.createCommentVNode("",!0)]}),extractType:vue.withCtx(({row:he,element:pe})=>[vue.createVNode(vue.unref(elementPlus.ElTag),null,{default:vue.withCtx(()=>{var ge;return[pe.options?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createTextVNode(vue.toDisplayString((ge=pe==null?void 0:pe.options.find(me=>me.dictKey==he.extractType))==null?void 0:ge.dictValue)+" ",1),he.extractType==2?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createTextVNode(vue.toDisplayString(he==null?void 0:he.incrementalField),1)],64)):vue.createCommentVNode("",!0)],64)):vue.createCommentVNode("",!0)]}),_:2},1024)]),default:vue.withCtx(()=>{var he;return[vue.createVNode(_sfc_main$M,{ref_key:"taskLogRef",ref:re},null,512),vue.createVNode(_sfc_main$Y,{ref_key:"extractLogRef",ref:ne},null,512),vue.createVNode(ModelSql,{ref_key:"modelSqlRef",ref:ie,modelId:(he=U==null?void 0:U.model)==null?void 0:he.id,onSuccess:fe[0]||(fe[0]=pe=>vue.unref(oe).getData())},null,8,["modelId"])]}),_:1},8,["tableData","searchBtns"])}}}),_sfc_main$K=vue.defineComponent({__name:"attrList",setup(te,{expose:U}){const{proxy:G}=vue.getCurrentInstance(),ee=vue.ref(!1),ne=vue.ref([]),re=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"}]);return U({init:async ie=>{ee.value=!0,ne.value=[],vue.nextTick(()=>{fetch$1(G).allModelAttribute({modelId:ie}).then(le=>{ne.value=le.data})})}}),(ie,le)=>{const ae=vue.resolveComponent("AppTable"),se=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(se,{modelValue:vue.unref(ee),"onUpdate:modelValue":le[0]||(le[0]=ue=>vue.isRef(ee)?ee.value=ue:null),title:"模型属性",size:"90%"},{default:vue.withCtx(()=>[vue.createVNode(ae,{tableData:vue.unref(re),list:vue.unref(ne),ref:"appTable"},{uniqueKey:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{"true-value":"2","false-value":"1",modelValue:ue.uniqueKey,"onUpdate:modelValue":ce=>ue.uniqueKey=ce,disabled:!0},null,8,["modelValue","onUpdate:modelValue"])]),required:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:ue.required,"onUpdate:modelValue":ce=>ue.required=ce,disabled:!0,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":2,"inactive-value":1,loading:ue.loading},null,8,["modelValue","onUpdate:modelValue","loading"])]),searchKey:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{disabled:!0,modelValue:ue.searchKey,"onUpdate:modelValue":ce=>ue.searchKey=ce,"true-value":"2","false-value":"1"},null,8,["modelValue","onUpdate:modelValue"]),ue.searchKey==="2"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElCheckbox),{key:0,modelValue:ue.indexKey,"onUpdate:modelValue":ce=>ue.indexKey=ce,"true-value":"2","false-value":"1",disabled:!0},{default:vue.withCtx(()=>[vue.createTextVNode(" 创建索引 ")]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),teamworkKey:vue.withCtx(({row:ue})=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{disabled:!0,modelValue:ue.teamworkKey,"onUpdate:modelValue":ce=>ue.teamworkKey=ce,"true-value":"2","false-value":"1"},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["tableData","list"])]),_:1},8,["modelValue"])}}}),_hoisted_1$D={key:0},_hoisted_2$w={key:1},_hoisted_3$r={key:2},_hoisted_4$n=vue.createElementVNode("i",{class:"mr-1 ri-file-copy-line"},null,-1),_hoisted_5$i={class:"mt-2"},_sfc_main$J=vue.defineComponent({__name:"main",props:{model:{default:{}}},emits:["success"],setup(te,{emit:U}){const G=te,ee=U,ne=vue.ref(!1),re=vue.ref(null),oe=vue.ref(null);return(ie,le)=>{var ce;const ae=vue.resolveComponent("aceHeader"),se=vue.resolveComponent("aceDynamicList"),ue=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createElementBlock("div",null,[vue.createVNode(ae,{title:"基础信息"}),vue.createVNode(vue.unref(elementPlus.ElDescriptions),{column:2,border:!0,style:{width:"100%"},class:"mt-2 mb-2"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型名称"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.modelName),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型代码"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.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(ie.model.modelLayer),1)]),_:1})]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型类型"},{default:vue.withCtx(()=>[ie.model.modelType==1?(vue.openBlock(),vue.createElementBlock("span",_hoisted_1$D,"维度模型")):vue.createCommentVNode("",!0),ie.model.modelType==2?(vue.openBlock(),vue.createElementBlock("span",_hoisted_2$w,"事实模型")):vue.createCommentVNode("",!0),ie.model.modelType==3?(vue.openBlock(),vue.createElementBlock("span",_hoisted_3$r,"其他模型")):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型描述"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.modelDesc),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"数据仓库"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(ie.model.modelStore),1)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"发布状态"},{default:vue.withCtx(()=>[ie.model.publishStatus==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未发布")]),_:1})):vue.createCommentVNode("",!0),ie.model.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(()=>[ie.model.openForm==1?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:0,type:"warning"},{default:vue.withCtx(()=>[vue.createTextVNode("未开启")]),_:1})):vue.createCommentVNode("",!0),ie.model.openForm==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.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:le[0]||(le[0]=de=>vue.unref(re).init(ie.model.id))},{default:vue.withCtx(()=>[vue.createTextVNode("查看模型属性")]),_:1})]),_:1}),vue.createVNode(vue.unref(elementPlus.ElDescriptionsItem),{label:"模型数据"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:le[1]||(le[1]=de=>ne.value=!0)},{default:vue.withCtx(()=>[vue.createTextVNode("查看模型数据")]),_:1})]),_:1}),ie.model.modelLayer=="ODSVIEW"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDescriptionsItem),{key:0,label:"操作"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:le[2]||(le[2]=de=>vue.unref(oe).init("ODSVIEW_COPY"))},{default:vue.withCtx(()=>[_hoisted_4$n,vue.createTextVNode(" 复制 ")]),_:1})]),_:1})):vue.createCommentVNode("",!0)]),_:1}),ie.model.modelLayer!="ODSVIEW"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(ae,{title:"抽取方案"}),vue.createElementVNode("div",_hoisted_5$i,[vue.createVNode(_sfc_main$L,{model:ie.model},null,8,["model"])])],64)):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$K,{ref_key:"attrListRef",ref:re},null,512),vue.createVNode(ue,{modelValue:vue.unref(ne),"onUpdate:modelValue":le[3]||(le[3]=de=>vue.isRef(ne)?ne.value=de:null),title:"模型数据",size:"90%"},{default:vue.withCtx(()=>{var de,fe;return[vue.createVNode(se,{id:(de=ie.model)==null?void 0:de.id,title:(fe=ie.model)==null?void 0:fe.modelName},null,8,["id","title"])]}),_:1},8,["modelValue"]),vue.createVNode(ModelSql,{ref_key:"modelSqlRef",ref:oe,modelId:(ce=G==null?void 0:G.model)==null?void 0:ce.id,onSuccess:le[4]||(le[4]=de=>ee("success"))},null,8,["modelId"])])}}}),_hoisted_1$C=vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"},null,-1),_hoisted_2$v={key:0,class:"flex items-center justify-center h-full"},_sfc_main$I=vue.defineComponent({__name:"index",setup(te){const U=vue.ref(null),G=vue.ref(null),ee=vue.ref({}),ne=vue.inject("local"),re=le=>{ee.value={},setTimeout(()=>{ee.value=le},10)},oe=le=>{vue.unref(G).init(le)},ie=(le,ae)=>{le=="model-add"&&vue.unref(U).init()};return(le,ae)=>{const se=vue.resolveComponent("AppEmpty");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElContainer),{class:"overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElConfigProvider),{locale:vue.unref(ne)},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$Q,{onNodeClick:re,ref_key:"menuRef",ref:U},{top:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",class:"flex items-center",onClick:ae[0]||(ae[0]=ue=>oe("model-add"))},{default:vue.withCtx(()=>[_hoisted_1$C,vue.createTextVNode(" SQL新增模型 ")]),_:1})]),_:1},512)]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>{var ue;return[(ue=vue.unref(ee))!=null&&ue.id?(vue.openBlock(),vue.createBlock(_sfc_main$J,{key:1,model:vue.unref(ee),onSuccess:ae[1]||(ae[1]=ce=>vue.unref(U).init())},null,8,["model"])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$v,[vue.createVNode(se,{description:"请选择对应数据"})])),vue.createVNode(ModelSql,{ref_key:"modelSqlRef",ref:G,onSuccess:ie},null,512)]}),_:1})]),_:1},8,["locale"])]),_:1})}}});function useDynamicSearch(){const{proxy:te}=vue.getCurrentInstance(),U=vue.ref([]);return vue.watch(U,re=>{re.length&&U.value.filter(oe=>oe.type==="select"&&oe.dictId).forEach(oe=>{oe.options=[],te.$baseHttp.get(`/api/ace-data-center/custom-dic/readDict/${oe.dictId}`).then(ie=>{oe.options=dictArratToTree(ie.data??[])})})}),{dynamicSearchForm:U,dynamicSearchFormat:re=>(re.filter(oe=>oe.defaultRule).forEach(oe=>{switch(oe.defaultRule){case"today":oe.value=dayjs().format("YYYY-MM-DD");break;case"yesterday":oe.value=dayjs().subtract(1,"day").format("YYYY-MM-DD");break;case"week":oe.minValue=dayjs().subtract(7,"day").format("YYYY-MM-DD"),oe.maxValue=dayjs().format("YYYY-MM-DD");break;case"month":oe.value=dayjs().format("YYYY-MM");break;case"two-month":oe.minValue=dayjs().subtract(2,"month").format("YYYY-MM"),oe.maxValue=dayjs().format("YYYY-MM");break;case"year":oe.value=dayjs().format("YYYY");break;case"two-year":oe.minValue=dayjs().subtract(2,"year").format("YYYY"),oe.maxValue=dayjs().format("YYYY");break}}),re),dynamicSearchParams:re=>{const oe={};return re.forEach(ie=>{if(ie.type.includes("Range")){oe[`${ie.key}1`]=(ie.minValue??"")&&ie.type=="numberRange"?Number(ie.minValue):ie.minValue.replaceAll("-",""),oe[`${ie.key}2`]=(ie.maxValue??"")&&ie.type=="numberRange"?Number(ie.maxValue):ie.maxValue.replaceAll("-","");return}oe[ie.key]=(ie.value??"")&&(ie.type.includes("yymm")?ie.value.replaceAll("-",""):ie.value),ie.type==="numberSingle"&&ie.value&&(oe[ie.key]=Number(ie.value))}),oe},dynamicSearchParamsTitle:(re={})=>{const{showTitle:oe=!0}=re,ie=[];return U.value.forEach(le=>{const ae=oe?`${le.name}: `:"";switch(le.type){case"stringSingle":case"numberSingle":case"select":(le.value??"")&&ie.push(`${ae}${le.value}`);break;case"numberRange":ie.push(`${ae}[${le.minValue}~${le.maxValue}]`);break;case"yySingle":(le.value??"")&&ie.push(`${ae}${le.value}年`);break;case"yyRange":(le.minValue||le.maxValue)&&ie.push(`${ae}${le.minValue||"_"}年~${le.maxValue||"_"}年`);break;case"yymmSingle":if(le.value){let se=le.value.split("-");ie.push(`${ae}${se[0]}年${se[1]}月`)}break;case"yymmRange":if(le.minValue||le.maxValue){let se="_",ue="_";if(le.minValue){let ce=le.minValue.split("-");se=`${ae}${ce[0]}年${ce[1]}月`}if(le.maxValue){let ce=le.maxValue.split("-");ue=`${ae}${ce[0]}年${ce[1]}月`}ie.push(`${ae}${se}~${ue}`)}break;case"yymmddSingle":if(le.value){let se=le.value.split("-");ie.push(`${ae}${se[0]}年${se[1]}月${se[2]}日`)}break;case"yymmddRange":if(le.minValue||le.maxValue){let se="_",ue="_";if(le.minValue){let ce=le.minValue.split("-");se=`${ce[0]}年${ce[1]}月${ce[2]}日`}if(le.maxValue){let ce=le.maxValue.split("-");ue=`${ce[0]}年${ce[1]}月${ce[2]}日`}ie.push(`${ae}${se}~${ue}`)}break}}),ie.filter(le=>le).join(" ; ")}}}function useInsertForm(te){const{proxy:U}=vue.getCurrentInstance(),{setFormValue:G,getFormValue:ee}=U.$globalHooks.useForm(),{getDetail:ne}=fetch$1(U).model,re=vue.ref(),oe=vue.ref(1),ie=vue.ref([]),le=vue.ref("");return{loading:re,colValue:oe,formData:ie,formType:le,init:async(se={},ue="add")=>{ie.value=[],oe.value=1,le.value=ue,re.value=!0;const ce=await ne(te);re.value=!1,JSON.parse(ce.data.formJson||"[]").forEach(fe=>{fe.hide=!fe.isShow;const ve=ce.data.listModelAttribute.find(pe=>pe.mapCode==fe.fieldName);if(!ve)return;if(oe.value=fe.col,ve.primaryKey==2&&(fe.prepend=vue.h("i",{class:"text-base ri-key-line text-color-warning"}),fe.required=!0,fe.disabled=ue=="update",fe.fieldType=FieldRenderType.String),fe.ext.extend=="auto-insert-number"&&(fe.defVal=Date.now()),["radio","select","checkbox","treeSelect"].includes(fe.type)){const pe=fe==null?void 0:fe.ext.dictId;pe&&(fe.props={url:`/api/ace-data-center/custom-dic/readDict/${pe}`,label:"name",value:"code"}),fe.type=="treeSelect"&&(fe.expandAll=!1,fe.renderAfterExpand=!0,fe.optionsSuccess=ge=>{fe.options=dictArratToTree(ge)})}fe.type=="file"&&(fe.accept=fe.ext.accept||"*",fe.width="100%"),fe.type=="file"&&(fe.accept=fe.ext.accept||"*",fe.width="100%"),fe.type=="rate"&&(fe.defVal=0,fe.max=fe.ext.max);const he=vue.unref(ie).find(pe=>pe.key==fe.tag);he?he.list.push(fe):vue.unref(ie).push({key:fe.tag,list:[fe]})}),vue.unref(ie).forEach(fe=>{G(se,fe.list)})}}}const _withScopeId$d=te=>(vue.pushScopeId("data-v-6c642e9c"),te=te(),vue.popScopeId(),te),_hoisted_1$B={class:"flex items-center justify-between"},_hoisted_2$u={class:"flex items-center whitespace-nowrap"},_hoisted_3$q=_withScopeId$d(()=>vue.createElementVNode("div",{class:"h-px mt-2 mb-2 bg-gray-200"},null,-1)),_hoisted_4$m={class:"overflow-y-auto max-h-60",style:{"min-height":"150px"}},_hoisted_5$h=_withScopeId$d(()=>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:"120px"}},"显示名称"),vue.createElementVNode("td",{style:{width:"120px"}},"表单标签"),vue.createElementVNode("td",{style:{width:"120px"}},"规则"),vue.createElementVNode("td",{style:{width:"70px"}},"录入显示"),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_6$e={class:"sort-target"},_hoisted_7$c=_withScopeId$d(()=>vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-move ri-mouse-line sortable-handle text-color-warning"})],-1)),_hoisted_8$a=_withScopeId$d(()=>vue.createElementVNode("i",{class:"mr-1 ri-file-cloud-line"},null,-1)),_sfc_main$H=vue.defineComponent({__name:"dynamicForm",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:"auto-insert-number"}],se=U,ue=[{label:"身份证号",value:"/^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$|^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$/"},{label:"邮箱",value:"/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$/"},{label:"手机号",value:"/^1d{10}$/"},{label:"银行卡",value:"/[1-9]d{12,18}/"},{label:"车牌号",value:"/^([京津晋冀蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][ABCDEFGHJKLMNPQRSTUVWXYZ][dABCDEFGHJKLNMxPQRSTUVWXYZ]{5,6})$/"}],ce=pe=>{const ge=[];return["date","datetime"].includes(pe)||ge.push({label:"单选框",value:FieldType.Radio},{label:"计数器",value:FieldType.Number},{label:"选择器",value:FieldType.Select},{label:"开关",value:FieldType.Switch},{label:"级联",value:FieldType.TreeSelect},{label:"评分",value:FieldType.Rate}),["int","decimal","double","bigint"].includes(pe)||(["date","datetime"].includes(pe)||ge.push({label:"输入框",value:FieldType.Text},{label:"多行输入框",value:FieldType.Textarea},{label:"多选框",value:FieldType.CheckBox},{label:"上传",value:FieldType.File}),["datetime"].includes(pe)||ge.push({label:"日期",value:FieldType.Date}),["date"].includes(pe)||ge.push({label:"日期时间",value:FieldType.DateTime})),ge},de=pe=>["int","decimal","double","bigint"].includes(pe)?FieldType.Number:["datetime"].includes(pe)?FieldType.DateTime:["date"].includes(pe)?FieldType.Date:FieldType.Text,fe=vue.ref(1),ve=async()=>{le.value=!0,re.value=[];const pe=await ee(ne.model.id);le.value=!1,G.$baseHttp.get(`/api/ace-data-center/custom-dic/options?projectId=${G.$baseGetCurrentProjectId()}`).then(_e=>{oe.value=_e.data});const ge=pe.data.listModelAttribute,me=JSON.parse(pe.data.formJson||"[]");ge.forEach(_e=>{if(["project_id","create_time","create_user","create_dept","_project_id","tag","_create_time","_create_user","_create_dept","_tag","_data_from"].includes(_e.attributeCode))return;const ye=me.find(be=>be.fieldName==_e.mapCode);ye?(_e.columnOption=ye,fe.value=ye.col??1):_e.columnOption={fieldName:_e.mapCode,name:_e.attributeComment,type:de(_e.dataType),sort:"",isShow:!0,ext:{}},re.value.push(_e)}),re.value.sort((_e,ye)=>_e.columnOption.sort-ye.columnOption.sort)},he=async()=>{const pe=[],ge=[];if(vue.unref(re).forEach((_e,ye)=>{const be=_e.columnOption;be.sort=ye+1,be.col=vue.unref(fe),be.type||ge.push(`${_e.attributeComment}类型不能为空`),["radio","select","checkbox","treeSelect"].includes(be.type)?be.ext.dictId||ge.push(`${_e.attributeComment}字典值为空`):["rate"].includes(be.type)&&(be.ext.max||ge.push(`${_e.attributeComment}最大值不能为空`)),pe.push(be)}),ge.length>0){G.$message.error(ge[0]);return}await G.$baseHttp.post("/api/ace-data-center/model/updateFormJson",{id:ne.model.id,formJson:JSON.stringify(pe)})&&(G.$message.success("操作成功"),ie.value=!1,se("success"))};return(pe,ge)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElPopover),{placement:"bottom",visible:vue.unref(ie),"onUpdate:visible":ge[4]||(ge[4]=me=>vue.isRef(ie)?ie.value=me:null),trigger:"click",width:"1200px"},{reference:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"warning",class:"ml-3",onClick:ge[3]||(ge[3]=me=>ve())},{default:vue.withCtx(()=>[_hoisted_8$a,vue.createTextVNode(" "+vue.toDisplayString(pe.title),1)]),_:1})]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$B,[vue.createElementVNode("div",_hoisted_2$u,[vue.createTextVNode(" 分栏: "),vue.createVNode(vue.unref(elementPlus.ElInputNumber),{size:"small",min:1,class:"ml-1","value-on-clear":0,modelValue:vue.unref(fe),"onUpdate:modelValue":ge[0]||(ge[0]=me=>vue.isRef(fe)?fe.value=me:null),placeholder:"分栏"},null,8,["modelValue"])]),vue.createElementVNode("div",null,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small",onClick:he},{default:vue.withCtx(()=>[vue.createTextVNode("保存")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",class:"ml-3",size:"small",onClick:ge[1]||(ge[1]=me=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode(" 关闭 ")]),_:1})])]),_hoisted_3$q,vue.createVNode(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(le),animated:""},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_4$m,[vue.createVNode(vue.unref(vueDraggablePlus.VueDraggable),{modelValue:vue.unref(re),"onUpdate:modelValue":ge[2]||(ge[2]=me=>vue.isRef(re)?re.value=me:null),target:".sort-target",animation:150,handle:".sortable-handle"},{default:vue.withCtx(()=>[vue.createElementVNode("table",null,[_hoisted_5$h,vue.createElementVNode("tbody",_hoisted_6$e,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(re),me=>(vue.openBlock(),vue.createElementBlock("tr",{key:me.id},[vue.createElementVNode("td",null,vue.toDisplayString(me.attributeCode),1),vue.createElementVNode("td",null,vue.toDisplayString(me.attributeComment),1),vue.createElementVNode("td",null,vue.toDisplayString(me.dataType),1),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:me.columnOption.name,"onUpdate:modelValue":_e=>me.columnOption.name=_e,placeholder:"显示名称"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElInput),{size:"small",modelValue:me.columnOption.tag,"onUpdate:modelValue":_e=>me.columnOption.tag=_e,placeholder:"表单标签"},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSelect),{clearable:!0,teleported:!1,size:"small",modelValue:me.columnOption.rule,"onUpdate:modelValue":_e=>me.columnOption.rule=_e,placeholder:"规则"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ue,_e=>vue.createVNode(vue.unref(elementPlus.ElOption),{label:_e.label,value:_e.value,key:_e.value},null,8,["label","value"])),64))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:me.columnOption.isShow,"onUpdate:modelValue":_e=>me.columnOption.isShow=_e},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:me.columnOption.required,"onUpdate:modelValue":_e=>me.columnOption.required=_e},null,8,["modelValue","onUpdate:modelValue"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,size:"small",class:"w-full",modelValue:me.columnOption.type,"onUpdate:modelValue":_e=>me.columnOption.type=_e,placeholder:"请选择",onChange:()=>me.columnOption.ext={}},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(ce(me.dataType),_e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:_e.value,label:_e.label,value:_e.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),vue.createElementVNode("td",null,[["radio","select","checkbox","treeSelect"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,teleported:!1,size:"small",modelValue:me.columnOption.ext.dictId,"onUpdate:modelValue":_e=>me.columnOption.ext.dictId=_e,placeholder:"字典值"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(oe),_e=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:_e.label,value:_e.code,key:_e.code},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),["file"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:1,size:"small",modelValue:me.columnOption.ext.accept,"onUpdate:modelValue":_e=>me.columnOption.ext.accept=_e,placeholder:"上传类型多个,隔开"},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),["rate"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:2,min:0,size:"small",type:"number",modelValue:me.columnOption.ext.max,"onUpdate:modelValue":_e=>me.columnOption.ext.max=_e,placeholder:"最大值"},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),["number"].includes(me.columnOption.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:3,clearable:!0,teleported:!1,size:"small",modelValue:me.columnOption.ext.extend,"onUpdate:modelValue":_e=>me.columnOption.ext.extend=_e,placeholder:"额外参数"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,vue.renderList(ae,_e=>vue.createVNode(vue.unref(elementPlus.ElOption),{label:_e.label,value:_e.value,key:_e.value},null,8,["label","value"])),64))]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),_hoisted_7$c]))),128))])])]),_:1},8,["modelValue"])])]),_:1},8,["loading"])]),_:1},8,["visible"]))}}),dynamicForm_vue_vue_type_style_index_0_scoped_6c642e9c_lang="",dynamicForm=_export_sfc$2(_sfc_main$H,[["__scopeId","data-v-6c642e9c"]]),_hoisted_1$A={class:"p-4"},_hoisted_2$t={class:"flex justify-center mt-2"},_hoisted_3$p={class:"absolute right-0 -top-10"},_sfc_main$G=vue.defineComponent({__name:"model-insert-form",props:{model:{default:{}},isDefaultInit:{type:Boolean,default:!0},permission:{default:()=>[]},paramsCallback:{type:Function,default:()=>{}}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,ne=G,{proxy:re}=vue.getCurrentInstance(),{getFormValue:oe}=re.$globalHooks.useForm(),{getDetail:ie,modelDataAction:le}=fetch$1(re).model,{loading:ae,colValue:se,formData:ue,formType:ce,init:de}=useInsertForm(ee.model.id);ee.isDefaultInit&&de();const fe=async()=>{const ve={},he=[];if(vue.unref(ue).forEach(me=>{const{params:_e,error:ye}=oe(me.list);he.push(...ye),Object.assign(ve,_e)}),he.length>0)return;const pe={modelId:ee.model.id,dataMap:ve,batchNo:dayjs().format("YYYY-MM-DD")};ee.paramsCallback&&ee.paramsCallback(pe),await le(pe,ce.value)&&(re.$message.success("操作成功"),ee.isDefaultInit&&de(),ne("success"))};return U({init:de,handleSubmit:fe}),(ve,he)=>{const pe=vue.resolveComponent("aceHeader"),ge=vue.resolveComponent("AppForm");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createVNode(vue.unref(elementPlus.ElSkeleton),{animated:"",loading:vue.unref(ae)},{default:vue.withCtx(()=>[vue.unref(ue).length?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ue),me=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:me.key},[me.key?(vue.openBlock(),vue.createBlock(pe,{key:0,title:me.key},null,8,["title"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_1$A,[vue.createVNode(ge,{form:me.list,col:vue.unref(se)},null,8,["form","col"])])],64))),128)),vue.createElementVNode("div",_hoisted_2$t,[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",onClick:fe},{default:vue.withCtx(()=>[vue.createTextVNode("保 存")]),_:1})])],64)):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElEmpty),{key:0,description:"暂未配置表单数据"}))]),_:1},8,["loading"]),vue.createElementVNode("div",_hoisted_3$p,[vue.createVNode(dynamicForm,{model:ve.model,title:"属性列配置",onSuccess:vue.unref(de)},null,8,["model","onSuccess"])])],64)}}}),_withScopeId$c=te=>(vue.pushScopeId("data-v-24a4d931"),te=te(),vue.popScopeId(),te),_hoisted_1$z={class:"flex justify-between"},_hoisted_2$s=_withScopeId$c(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_3$o=_withScopeId$c(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_4$l=_withScopeId$c(()=>vue.createElementVNode("i",{class:"mr-1 ri-search-line"},null,-1)),_sfc_main$F=vue.defineComponent({__name:"search",props:{form:{default:()=>[]},search:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},emits:["success"],setup(te,{emit:U}){const G=te,ee=U,ne=vue.inject("local"),re=ae=>{let se="date",ue="YYYY-MM-DD";return["yyRange","yySingle"].includes(ae)&&(se="year",ue="YYYY"),["yymmRange","yymmSingle"].includes(ae)&&(se="month",ue="YYYY-MM"),{type:se,format:ue}},oe=(ae,se,ue)=>ae=="gt"?se.getTime()>dayjs(ue||"").valueOf():se.getTime()<dayjs(ue||"").valueOf(),ie=(ae,se,ue)=>{if(ae[se]==""||ae[ue]=="")return;const ce=Number(ae[se]),de=Number(ae[ue]);(se=="minValue"?ce>de:ce<de)&&(ae[se]=ae[ue])},le=()=>{ee("success")};return(ae,se)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElConfigProvider),{locale:vue.unref(ne)},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$z,[vue.createVNode(vue.unref(elementPlus.ElForm),{inline:""},{default:vue.withCtx(()=>[vue.renderSlot(ae.$slots,"default",{},void 0,!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(ae.form,(ue,ce)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:ce},[ue.hide?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:0,label:ae.disabled?"":ue.name},{default:vue.withCtx(()=>[ue.type.includes("Range")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[["yyRange","yymmRange","yymmddRange"].includes(ue.type)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(vue.unref(elementPlus.ElDatePicker),{modelValue:ue.minValue,"onUpdate:modelValue":de=>ue.minValue=de,clearable:!1,teleported:!1,disabled:ae.disabled,type:re(ue.type).type,placeholder:"开始","disabled-date":de=>oe("gt",de,ue.maxValue),"value-format":re(ue.type).format},null,8,["modelValue","onUpdate:modelValue","disabled","type","disabled-date","value-format"]),_hoisted_2$s,vue.createVNode(vue.unref(elementPlus.ElDatePicker),{modelValue:ue.maxValue,"onUpdate:modelValue":de=>ue.maxValue=de,placeholder:"结束",teleported:!1,disabled:ae.disabled,clearable:!1,"disabled-date":de=>oe("lt",de,ue.minValue),type:re(ue.type).type,"value-format":re(ue.type).format},null,8,["modelValue","onUpdate:modelValue","disabled","disabled-date","type","value-format"])],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:ue.minValue,"onUpdate:modelValue":de=>ue.minValue=de,modelModifiers:{trim:!0},max:ue.maxValue,clearable:!1,disabled:ae.disabled,onBlur:de=>ie(ue,"minValue","maxValue"),type:"number",placeholder:"最小值"},null,8,["modelValue","onUpdate:modelValue","max","disabled","onBlur"]),_hoisted_3$o,vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:ue.maxValue,"onUpdate:modelValue":de=>ue.maxValue=de,modelModifiers:{trim:!0},min:ue.minValue,clearable:!1,disabled:ae.disabled,onBlur:de=>ie(ue,"maxValue","minValue"),type:"number",placeholder:"最大值"},null,8,["modelValue","onUpdate:modelValue","min","disabled","onBlur"])],64))],64)):vue.createCommentVNode("",!0),ue.type.includes("Single")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[["yySingle","yymmSingle","yymmddSingle"].includes(ue.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDatePicker),{key:0,modelValue:ue.value,"onUpdate:modelValue":de=>ue.value=de,clearable:!1,teleported:!1,disabled:ae.disabled,placeholder:"请输入"+ue.name,type:re(ue.type).type,"value-format":re(ue.type).format},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder","type","value-format"])):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:1,modelValue:ue.value,"onUpdate:modelValue":de=>ue.value=de,modelModifiers:{trim:!0},clearable:!1,disabled:ae.disabled,onKeyup:vue.withKeys(le,["enter","native"]),type:ue.type=="numberSingle"?"number":"",placeholder:"请输入"+ue.name},null,8,["modelValue","onUpdate:modelValue","disabled","type","placeholder"]))],64)):vue.createCommentVNode("",!0),ue.type=="select"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTreeSelect),{key:2,modelValue:ue.value,"onUpdate:modelValue":de=>ue.value=de,data:ue.options,teleported:!1,disabled:ae.disabled,placeholder:"请选择",props:{label:"name",value:"code"},clearable:!1,"check-strictly":""},null,8,["modelValue","onUpdate:modelValue","data","disabled"])):vue.createCommentVNode("",!0)]),_:2},1032,["label"]))],64))),128)),vue.createVNode(vue.unref(elementPlus.ElFormItem),null,{default:vue.withCtx(()=>[ae.form.filter(ue=>!ue.hide).length>0&&G.search?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{key:0,type:"primary",onClick:le},{default:vue.withCtx(()=>[_hoisted_4$l,vue.createTextVNode(" 查询 ")]),_:1})):vue.createCommentVNode("",!0),vue.renderSlot(ae.$slots,"btns",{},void 0,!0)]),_:3})]),_:3}),vue.renderSlot(ae.$slots,"aside",{},void 0,!0)])]),_:3},8,["locale"]))}}),search_vue_vue_type_style_index_0_scoped_24a4d931_lang="",aceDynamicSearch=_export_sfc$2(_sfc_main$F,[["__scopeId","data-v-24a4d931"]]),_withScopeId$b=te=>(vue.pushScopeId("data-v-9e5ff44b"),te=te(),vue.popScopeId(),te),_hoisted_1$y=_withScopeId$b(()=>vue.createElementVNode("i",{class:"mr-1 ri-download-2-line"},null,-1)),_sfc_main$E=vue.defineComponent({__name:"list",props:{id:{default:""},title:{default:nanoid()},pageLimit:{default:20},type:{default:DynamicTableType.Default},keyName:{default:"modelId"},url:{default:"/api/ace-data-center/model/modelDataPage"},showPageIndex:{type:Boolean,default:!1},isDownLoad:{type:Boolean,default:!0},searchFormData:{default:null},isDelete:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},formatParamsFunc:{type:[Function,null],default:null}},emits:["row-click","success-list","table-header","btn-click"],setup(te,{expose:U,emit:G}){const ee=te;vue.watch(()=>ee.id,()=>Ce());const ne=G,{proxy:re}=vue.getCurrentInstance(),{dynamicSearchForm:oe,dynamicSearchFormat:ie,dynamicSearchParams:le}=useDynamicSearch(),{modelDataDel:ae,getDetail:se}=fetch$1(re).model,{listColumnInfo:ue,getFormJsonConfig:ce,getSystemParam:de}=fetch$1(re),fe=vue.ref(null),ve=vue.ref(null),he=vue.ref(null),pe=vue.ref([]),ge=vue.ref(""),me=vue.ref({}),_e=vue.ref(0),ye=vue.ref(!0),be=vue.ref(!1),xe=vue.ref({}),Ce=async()=>{var Te,De;if(ge.value="",pe.value=[],_e.value=0,me.value={[ee.keyName]:ee.id,params:{}},ee.type==DynamicTableType.Default){const Ie=await ue(ee.id),Me=await se(ee.id,!1);if(xe.value=Me.data,pe.value=(Ie.data??[]).filter(Be=>Be.isShow??!0).map(Be=>{var ze;const Ae={...Be,width:Be.labelWidth??null,showOverflowTooltip:Be.overHidden??!1,sortable:"custom"};if(Be.type=="dict"){const Re=(ze=JSON.parse(Be.ext??"{}"))==null?void 0:ze.dictId;Re&&(Ae.props={url:`/api/ace-data-center/custom-dic/readDict/${Re}`,label:"name",value:"code"})}return Be.type=="img"&&(Ae.type=Be.type,Ae.resetUrl=(Re,Fe)=>{const je=resetUrl(Fe[Be.prop]).split(",");if(Re=="small")return je[0];if(Re=="preview")return je},delete Ae.sortable),Be.type=="map"&&(delete Ae.sortable,Ae.func=Re=>'<span class="text-gray-600 cursor-pointer">查看地图</span>',Ae.clickFunc=Re=>{try{vue.unref(ve).init(JSON.parse(Re[Be.prop]??"[]"))}catch{re.$message.warning("数据格式获取错误")}}),Ae.prop=="_data_from"&&(Ae.dict="dataFormStatus"),Ae}),Se(),(ee.isDelete||ee.isEdit)&&pe.value.push({label:"操作",prop:"htmlButton",fixed:"right",noExport:!0}),ee.searchFormData)oe.value=ee.searchFormData;else{const Be=await ce(ee.id);oe.value=ie(JSON.parse(((Te=Be.data)==null?void 0:Te.formConfJson)??"[]"))}}if(ee.type==DynamicTableType.DataForm){const Ie=await re.$baseHttp.get(`/api/ace-data-center/dataform/detail?id=${ee.id}`);ye.value=Ie.data.isPage!=0,oe.value=ie(JSON.parse(((De=Ie.data)==null?void 0:De.formConfJson)??"[]"))}ge.value=ee.url},$e=vue.ref(!1),Ee=Te=>{$e.value=Te.extra.total!="0"&&ee.isDownLoad,_e.value=Te.extra.total,ee.type==DynamicTableType.DataForm&&(Te==null?void 0:Te.data.length)>0&&(pe.value=[],Object.keys(Te.data[0]).forEach(De=>{const Ie={label:De,prop:De,sortable:vue.unref(ye)};De==="map_column"&&(Ie.label="地图",Ie.func=Me=>`<span class="cursor-pointer ${["","[]"].includes(Me[De])?"text-gray-600":"text-color-danger"}">查看地图</span>`,Ie.type=ItableType.Link,Ie.clickFunc=Me=>vue.unref(ve).init(JSON.parse(Me[De]??"[]")),delete Ie.sortable),pe.value.push(Ie)}),Se()),ee.type==DynamicTableType.Default&&(Te==null?void 0:Te.data.length)>0&&Te.data.forEach(De=>{De.htmlButton=[],ee.isEdit&&De.htmlButton.push({name:"修改",key:"eidtBTN",type:"primary",icon:"ri-edit-line"}),ee.isDelete&&De.htmlButton.push({name:"删除",key:"delBTN",type:"danger",icon:"ri-delete-bin-6-line"})}),ne("table-header",vue.unref(pe)),ne("success-list",Te)},Ve=Te=>(me.value.params=le(vue.unref(oe)),ee.formatParamsFunc&&(me.value=ee.formatParamsFunc(me.value)),Object.assign(Te,vue.unref(me))),Ne=()=>{vue.unref(fe).getData()},Se=()=>{ee.showPageIndex?pe.value.unshift({label:"序号",prop:"pageIndex",width:"80px"}):pe.value.splice(vue.unref(pe).findIndex(Te=>Te.prop==="pageIndex"),1)},Pe=Te=>{const{prop:De,order:Ie}=Te;ee.type==DynamicTableType.Default&&(vue.unref(me).ascs="",vue.unref(me).descs="",Ie==="ascending"&&(vue.unref(me).ascs=De),Ie==="descending"&&(vue.unref(me).descs=De)),ee.type==DynamicTableType.DataForm&&(vue.unref(me).orders=[],Ie&&vue.unref(me).orders.push({property:De,direction:Ie==="ascending"?"asc":"desc"})),vue.unref(fe).getData()},we=async()=>{if(ee.type==DynamicTableType.Default){const Te=await de({paramKey:"model.export.max"});if(+(vue.unref(_e)>Number((Te==null?void 0:Te.data)??0))){re.$message.warning(`数据量超过${Te==null?void 0:Te.data}条,请筛选后再导出`);return}}re.$baseExportExcel({title:ee.title,url:vue.unref(ge),header:vue.unref(pe),customParams:vue.unref(me)})},ke=Te=>{const{type:De,row:Ie}=Te;switch(De){case"eidtBTN":case"delBTN":{const Me={};if(vue.unref(xe).listModelAttribute.forEach(Be=>{Me[Be.mapCode]=Ie[Be.attributeCode]}),De=="eidtBTN"){be.value=!0,vue.nextTick(()=>{vue.unref(he).init(Me,"update")});return}re.$baseConfirm({content:"是否确定删除",callConfirm:async()=>{await ae({dataMap:Me,modelId:ee.id})&&(re.$message.success("删除成功"),vue.unref(fe).getData())}})}break}ne("btn-click",Te)};return Ce(),U({handleExport:we,init:Ce}),(Te,De)=>{const Ie=vue.resolveComponent("AppList"),Me=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSkeleton),{loading:vue.unref(ge)=="",animated:""},{default:vue.withCtx(()=>[vue.createVNode(aceDynamicSearch,{form:vue.unref(oe),onSuccess:Ne},{btns:vue.withCtx(()=>[vue.unref($e)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{key:0,type:"warning",onClick:we},{default:vue.withCtx(()=>[_hoisted_1$y,vue.createTextVNode(" 导出 ")]),_:1})):vue.createCommentVNode("",!0)]),_:1},8,["form"]),vue.unref(ge)?(vue.openBlock(),vue.createBlock(Ie,{key:0,tableData:vue.unref(pe),pageLimit:Te.pageLimit,url:vue.unref(ge),showPage:vue.unref(ye),methods:"post",formatParamsFunc:Ve,onSuccess:Ee,onSortChange:Pe,onBtnClick:ke,ref_key:"appList",ref:fe},null,8,["tableData","pageLimit","url","showPage"])):vue.createCommentVNode("",!0),vue.createVNode(Me,{modelValue:vue.unref(be),"onUpdate:modelValue":De[1]||(De[1]=Be=>vue.isRef(be)?be.value=Be:null),title:"数据修改",size:"1200px"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$G,{model:{id:ee.id},isDefaultInit:!1,ref_key:"modelInsertFormRef",ref:he,onSuccess:De[0]||(De[0]=Be=>{be.value=!1,vue.unref(fe).getData()})},null,8,["model"])]),_:1},8,["modelValue"])]),_:1},8,["loading"])}}}),list_vue_vue_type_style_index_0_scoped_9e5ff44b_lang="",aceDynamicList=_export_sfc$2(_sfc_main$E,[["__scopeId","data-v-9e5ff44b"]]),_withScopeId$a=te=>(vue.pushScopeId("data-v-441ff053"),te=te(),vue.popScopeId(),te),_hoisted_1$x={key:0},_hoisted_2$r=_withScopeId$a(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_3$n=_withScopeId$a(()=>vue.createElementVNode("span",{class:"ml-2 mr-2"},"~",-1)),_hoisted_4$k=["onClick"],_sfc_main$D=vue.defineComponent({__name:"searchEdit",props:{form:{default:()=>[]},isEdit:{type:Boolean,default:!0},businessType:{default:"indicators"}},setup(te,{expose:U}){const G=te,{proxy:ee}=vue.getCurrentInstance(),ne=vue.ref([]),re=vue.computed(()=>["model"].includes(G.businessType));ee.$baseHttp.get(`/api/ace-data-center/custom-dic/options?projectId=${ee.$baseGetCurrentProjectId()}`).then(ce=>{ne.value=ce.data});const oe={yymmddSingle:[{name:"当日",value:"today"},{name:"昨天",value:"yesterday"}],yymmddRange:[{name:"近一周",value:"week"}],yymmSingle:[{name:"当月",value:"month"}],yymmRange:[{name:"近两月",value:"two-month"}],yySingle:[{name:"当年",value:"year"}],yyRange:[{name:"近两年",value:"two-year"}]},ie=ce=>{let de="date",fe="YYYY-MM-DD";return["yyRange","yySingle"].includes(ce)&&(de="year",fe="YYYY"),["yymmRange","yymmSingle"].includes(ce)&&(de="month",fe="YYYY-MM"),{type:de,format:fe}},le=(ce,de,fe)=>ce=="gt"?de.getTime()>dayjs(fe||"").valueOf():de.getTime()<dayjs(fe||"").valueOf(),ae=(ce,de,fe)=>{if(ce[de]==""||ce[fe]=="")return;const ve=Number(ce[de]),he=Number(ce[fe]);(de=="minValue"?ve>he:ve<he)&&(ce[de]=ce[fe])},se=ce=>{ce.value=[],ce.options=[],ce.dictId&&ee.$baseHttp.get(`/api/ace-data-center/custom-dic/readDict/${ce.dictId}`).then(de=>{ce.options=de.data??[]})},ue=ce=>{ce.value="",ce.minValue="",ce.maxValue="",ce.defaultRule="",ce.dictId="",ce.options=[]};return vue.onMounted(()=>{G.form.forEach(ce=>{!ce.checked&&!ce.type&&["varchar","text"].includes(ce.dataType)&&(ce.type="stringSingle")})}),U({handleChangeDictSelect:se}),(ce,de)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElForm),{inline:"",size:"small"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(ce.form,(fe,ve)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:ve},[fe.hide?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$x,[vue.unref(re)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:0,label:""},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElCheckbox),{modelValue:fe.checked,"onUpdate:modelValue":he=>fe.checked=he,size:"small"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):vue.createCommentVNode("",!0),ce.isEdit&&!vue.unref(re)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:1,label:"标识符"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.key,"onUpdate:modelValue":he=>fe.key=he,clearable:"",placeholder:"请输入标识符"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(elementPlus.ElFormItem),{label:ce.isEdit?"名称":fe.name},{default:vue.withCtx(()=>[ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:0,modelValue:fe.name,"onUpdate:modelValue":he=>fe.name=he,clearable:"",placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)]),_:2},1032,["label"]),ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:2,label:"类型"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{clearable:"",teleported:!1,modelValue:fe.type,"onUpdate:modelValue":he=>fe.type=he,onChange:he=>ue(fe),placeholder:"类型"},{default:vue.withCtx(()=>[vue.unref(re)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[["date","datetime"].includes(fe.dataType)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·区间",value:"yyRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·单值",value:"yySingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·区间",value:"yymmRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·单值",value:"yymmSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·区间",value:"yymmddRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·单值",value:"yymmddSingle"})],64)):["int","decimal","double"].includes(fe.dataType)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·区间",value:"numberRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·单值",value:"numberSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"下拉框·字典",value:"select"})],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"字符串",value:"stringSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"下拉框·字典",value:"select"})],64))],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·区间",value:"yyRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年·单值",value:"yySingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·区间",value:"yymmRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月·单值",value:"yymmSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·区间",value:"yymmddRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"年月日·单值",value:"yymmddSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·区间",value:"numberRange"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"数值·单值",value:"numberSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"字符串",value:"stringSingle"}),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"下拉框·字典",value:"select"})],64))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1024)):vue.createCommentVNode("",!0),fe.type?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:3,label:ce.isEdit?"默认值":""},{default:vue.withCtx(()=>[oe[fe.type]&&ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,clearable:"",style:{"margin-right":"10px"},teleported:!1,modelValue:fe.defaultRule,"onUpdate:modelValue":he=>fe.defaultRule=he,placeholder:"默认值"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(oe[fe.type],he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:he.name,value:he.value,key:he.value},null,8,["label","value"]))),128)),vue.createVNode(vue.unref(elementPlus.ElOption),{label:"自定义",value:"custom"})]),_:2},1032,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0),fe.type.endsWith("Range")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[["yyRange","yymmRange","yymmddRange"].includes(fe.type)?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(vue.unref(elementPlus.ElDatePicker),{teleported:!1,modelValue:fe.minValue,"onUpdate:modelValue":he=>fe.minValue=he,clearable:"",placeholder:"开始","disabled-date":he=>le("gt",he,fe.maxValue),type:ie(fe.type).type,"value-format":ie(fe.type).format},null,8,["modelValue","onUpdate:modelValue","disabled-date","type","value-format"]),_hoisted_2$r,vue.createVNode(vue.unref(elementPlus.ElDatePicker),{teleported:!1,modelValue:fe.maxValue,"onUpdate:modelValue":he=>fe.maxValue=he,clearable:"",placeholder:"结束","disabled-date":he=>le("lt",he,fe.minValue),type:ie(fe.type).type,"value-format":ie(fe.type).format},null,8,["modelValue","onUpdate:modelValue","disabled-date","type","value-format"])],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.minValue,"onUpdate:modelValue":he=>fe.minValue=he,max:fe.maxValue,clearable:!1,onBlur:he=>ae(fe,"minValue","maxValue"),type:"number",placeholder:"最小值"},null,8,["modelValue","onUpdate:modelValue","max","onBlur"]),_hoisted_3$n,vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.maxValue,"onUpdate:modelValue":he=>fe.maxValue=he,min:fe.minValue,clearable:!1,onBlur:he=>ae(fe,"maxValue","minValue"),type:"number",placeholder:"最大值"},null,8,["modelValue","onUpdate:modelValue","min","onBlur"])],64))],64)):vue.createCommentVNode("",!0),fe.type.includes("Single")?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[["yySingle","yymmSingle","yymmddSingle"].includes(fe.type)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDatePicker),{key:0,teleported:!1,modelValue:fe.value,"onUpdate:modelValue":he=>fe.value=he,clearable:"",placeholder:"请输入"+fe.name,type:ie(fe.type).type,"value-format":ie(fe.type).format},null,8,["modelValue","onUpdate:modelValue","placeholder","type","value-format"])):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElInput),{key:1,modelValue:fe.value,"onUpdate:modelValue":he=>fe.value=he,teleported:!1,clearable:"",type:fe.type=="numberSingle"?"number":"",placeholder:"请输入"+fe.name},null,8,["modelValue","onUpdate:modelValue","type","placeholder"]))],64)):vue.createCommentVNode("",!0),fe.type=="select"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:3},[ce.isEdit?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSelect),{key:0,teleported:!1,style:{"margin-right":"10px"},modelValue:fe.dictId,"onUpdate:modelValue":he=>fe.dictId=he,placeholder:"字典值",clearable:"",onChange:he=>se(fe)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ne),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","onChange"])):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(elementPlus.ElSelect),{teleported:!1,modelValue:fe.value,"onUpdate:modelValue":he=>fe.value=he,placeholder:"请选择",clearable:""},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(fe.options,he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{label:he.name,value:he.code,key:he.code},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])],64)):vue.createCommentVNode("",!0)]),_:2},1032,["label"])):vue.createCommentVNode("",!0),ce.isEdit&&!vue.unref(re)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElFormItem),{key:4,style:{"margin-right":"0"}},{default:vue.withCtx(()=>[vue.createElementVNode("i",{class:"cursor-pointer ri-delete-bin-6-line text-color-danger",onClick:he=>G.form.splice(ve,1)},null,8,_hoisted_4$k)]),_:2},1024)):vue.createCommentVNode("",!0)]))],64))),128))]),_:1}))}}),searchEdit_vue_vue_type_style_index_0_scoped_441ff053_lang="",aceDynamicSearchEdit=_export_sfc$2(_sfc_main$D,[["__scopeId","data-v-441ff053"]]),_hoisted_1$w=vue.createElementVNode("i",{class:"ri-search-line"},null,-1),_hoisted_2$q={class:"mt-3"},_hoisted_3$m={key:1,class:"mr-1 text-base ri-edit-circle-fill text-color-primary"},_hoisted_4$j={key:2,class:"mr-1 ri-database-2-fill text-color-info"},_hoisted_5$g={key:3,class:"mr-1 ri-camera-fill text-color-info"},_hoisted_6$d={key:4,class:"ml-1"},_sfc_main$C=vue.defineComponent({__name:"model-menu",props:{type:{default:""},id:{default:""}},emits:["node-click"],setup(te,{expose:U,emit:G}){const ee=te,{proxy:ne}=vue.getCurrentInstance(),{loadModelMenu:re}=fetch$1(ne).model,oe=vue.ref(""),ie=vue.ref(null),le=G;vue.watch(oe,pe=>{vue.unref(ie).filter(pe)});const ae=(pe,ge)=>pe?ge.modelName.includes(pe):!0,se=vue.ref([]),ue=vue.ref([]),ce=vue.ref([]),de=vue.ref(!0),fe=vue.computed(()=>ee.type=="ODS"?vue.unref(se):ee.type=="DWD"?vue.unref(ue):vue.unref(ce)),ve=()=>{de.value=!0,Promise.all([re({modelLayer:"ODS"}),re({modelLayer:"DWD"}),re({modelLayer:"ODSVIEW"})]).then(pe=>{const ge=pe[0].data,me=pe[1].data,_e=pe[2].data;se.value=Object.keys(ge).map(ye=>({modelName:ye,id:ye,children:ge[ye]})),ce.value=Object.keys(_e).map(ye=>({modelName:ye,id:ye,children:_e[ye]})),ue.value=Object.keys(me).map(ye=>({modelName:ye,id:ye,children:[{modelName:"事实模型",id:nanoid(),children:me[ye].filter(be=>String(be.modelType)=="2")},{modelName:"维度模型",id:nanoid(),children:me[ye].filter(be=>String(be.modelType)=="1")}]})),de.value=!1})};ve();const he=pe=>{if(pe.modelCode){if(ee.type=="ODS"){le("node-click",pe);return}Array.isArray(pe.children)||le("node-click",pe)}};return U({init:ve}),(pe,ge)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createVNode(vue.unref(elementPlus.ElInput),{placeholder:"请输入内容",clearable:"",modelValue:vue.unref(oe),"onUpdate:modelValue":ge[0]||(ge[0]=me=>vue.isRef(oe)?oe.value=me:null)},{prefix:vue.withCtx(()=>[_hoisted_1$w]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_2$q,[vue.unref(de)?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElSkeleton),{key:0,animated:"",count:2})):(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTree),{key:1,class:"animated fadeIn",ref_key:"treeRef",ref:ie,data:vue.unref(fe),"default-expand-all":"","node-key":"id",indent:10,"expand-on-click-node":!1,"highlight-current":"","filter-node-method":ae,onNodeClick:he},{default:vue.withCtx(({node:me,data:_e})=>[me.level!=1||pe.type=="ODS"?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[_e.modelCode&&(_e.publishStatus==1&&_e.openForm==2||_e.openForm!=2)?(vue.openBlock(),vue.createElementBlock("i",{key:0,class:vue.normalizeClass(["mr-1 text-base ri-checkbox-circle-fill",[_e.publishStatus==2?"text-green-700":"text-gray-400"]])},null,2)):vue.createCommentVNode("",!0)],64)):vue.createCommentVNode("",!0),_e.openForm==2&&_e.publishStatus==2?(vue.openBlock(),vue.createElementBlock("i",_hoisted_3$m)):vue.createCommentVNode("",!0),_e.shadowFlag==1?(vue.openBlock(),vue.createElementBlock("i",_hoisted_4$j)):vue.createCommentVNode("",!0),_e.shadowFlag==2?(vue.openBlock(),vue.createElementBlock("i",_hoisted_5$g)):vue.createCommentVNode("",!0),vue.createElementVNode("span",{class:vue.normalizeClass({"font-bold":me.level==1})},vue.toDisplayString(_e.modelName),3),((_e==null?void 0:_e.children)??[]).some(ye=>ye.parentModelId)?(vue.openBlock(),vue.createElementBlock("span",_hoisted_6$d,[vue.createVNode(vue.unref(elementPlus.ElTag),{size:"small",effect:"plain",type:"danger"},{default:vue.withCtx(()=>[vue.createTextVNode("主表")]),_:1})])):vue.createCommentVNode("",!0),vue.renderSlot(pe.$slots,"default",{element:_e})]),_:3},8,["data"]))])],64))}}),_withScopeId$9=te=>(vue.pushScopeId("data-v-35df2183"),te=te(),vue.popScopeId(),te),_hoisted_1$v={class:"mt-3"},_hoisted_2$p=_withScopeId$9(()=>vue.createElementVNode("td",null,"字段名称",-1)),_hoisted_3$l=_withScopeId$9(()=>vue.createElementVNode("td",null,"字段描述",-1)),_hoisted_4$i=_withScopeId$9(()=>vue.createElementVNode("td",null,"映射字段",-1)),_hoisted_5$f=_withScopeId$9(()=>vue.createElementVNode("td",null,"数据类型",-1)),_hoisted_6$c=_withScopeId$9(()=>vue.createElementVNode("td",null,"数据长度",-1)),_hoisted_7$b=_withScopeId$9(()=>vue.createElementVNode("td",null,"数据标度",-1)),_hoisted_8$9=_withScopeId$9(()=>vue.createElementVNode("td",null,"是否主键",-1)),_hoisted_9$9=_withScopeId$9(()=>vue.createElementVNode("td",null,"唯一校验",-1)),_hoisted_10$8=_withScopeId$9(()=>vue.createElementVNode("td",{style:{width:"50px"}},null,-1)),_hoisted_11$6={class:"sort-target"},_hoisted_12$5=["onClick"],_hoisted_13$3=_withScopeId$9(()=>vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-move ri-mouse-line sortable-handle text-color-warning"})],-1)),_sfc_main$B=vue.defineComponent({__name:"model-attribute",props:vue.mergeModels({isRequired:{default:1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(te,{expose:U}){vue.getCurrentInstance();const G=vue.useModel(te,"modelValue");vue.ref(null);const ee=vue.ref(null),ne=vue.ref({attributeCode:[{required:!0,message:"请输入字段名称"},{pattern:/^[A-Za-z]\w*$/,message:"只能以字母开头,由字母/数字/下划线组成",trigger:"blur"}],attributeComment:[{required:!0,message:"请输入字段描述"}],mapCode:[{required:!0,message:"请输入映射字段"}],dataType:[{required:!0,message:"请选择数据类型"}],primaryKey:[{required:!0,message:"请选择是否为主键"}]}),re=ue=>{const ce=ue.dataType;ce!=="decimal"&&(ue.dataScale=0),["autoIncrement","date","time","datetime","int","bigint","double","text"].includes(ce)&&(ue.dataLength=0),ce==="decimal"&&(ue.dataLength=10,ue.dataScale=6),ce==="varchar"&&(ue.dataLength=255),vue.unref(ee).clearValidate()},oe=(ue,ce)=>{ue.primaryKey==2&&G.value.forEach((fe,ve)=>{ve!=ce&&(fe.primaryKey=1)})},ie=()=>{G.value.push({nanoid:nanoid(),dataScale:0,dataLength:0})},le=ue=>{const ce=vue.unref(G).findIndex(de=>de.nanoid==ue);G.value.length>1&&G.value.splice(ce,1)};return U({validate:async()=>await vue.unref(ee).validate(ue=>ue),isRepeat:()=>{const ue=new Map;let ce="";for(let de=0;de<G.value.length;de++){let fe=G.value[de],ve=ue.get(fe.attributeCode);ve!=null&&(ce+="字段名称 <strong>"+fe.attributeCode+"</strong> 重复(<i>第"+(ve+1)+"行和第"+(de+1)+"行</i>);<br>"),ue.set(G.value[de].attributeCode,de)}return ce}}),(ue,ce)=>{const de=vue.resolveComponent("aceHeader");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createVNode(de,{title:"唯一校验"},{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(G.value,(fe,ve)=>vue.withDirectives((vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElTag),{key:ve,size:"small",class:"ml-2",type:"primary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(fe.mapCode),1)]),_:2},1024)),[[vue.vShow,fe.uniqueKey==="2"&&fe.mapCode]])),128))])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElForm),{"label-width":"0",model:{modelValue:G.value},ref_key:"elFormRef",ref:ee,rules:vue.unref(ne)},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(vueDraggablePlus.VueDraggable),{modelValue:G.value,"onUpdate:modelValue":ce[0]||(ce[0]=fe=>G.value=fe),target:".sort-target",animation:150,handle:".sortable-handle"},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_1$v,[vue.createElementVNode("thead",null,[vue.createElementVNode("tr",null,[vue.createElementVNode("td",{style:{width:"50px"}},[vue.createElementVNode("i",{class:"text-lg cursor-pointer ri-add-circle-line text-color-primary",onClick:ie})]),_hoisted_2$p,_hoisted_3$l,_hoisted_4$i,_hoisted_5$f,_hoisted_6$c,_hoisted_7$b,_hoisted_8$9,_hoisted_9$9,_hoisted_10$8])]),vue.createElementVNode("tbody",_hoisted_11$6,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(G.value,(fe,ve)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:fe.nanoid},[fe.hide?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("tr",{key:fe.nanoid},[vue.createElementVNode("td",null,[vue.createElementVNode("i",{class:"text-lg cursor-pointer ri-indeterminate-circle-line text-color-danger",onClick:he=>le(fe.nanoid)},null,8,_hoisted_12$5)]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".attributeCode",rules:vue.unref(ne).attributeCode},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.attributeCode,"onUpdate:modelValue":he=>fe.attributeCode=he,maxlength:"30",showWordLimit:"",placeholder:"字段名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".attributeComment",rules:vue.unref(ne).attributeComment},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.attributeComment,"onUpdate:modelValue":he=>fe.attributeComment=he,maxlength:"30",showWordLimit:"",placeholder:"字段描述"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".mapCode",rules:vue.unref(ne).mapCode},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInput),{modelValue:fe.mapCode,"onUpdate:modelValue":he=>fe.mapCode=he,maxlength:"30",showWordLimit:"",placeholder:"映射字段"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".dataType",rules:vue.unref(ne).dataType},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:fe.dataType,"onUpdate:modelValue":he=>fe.dataType=he,placeholder:"数据类型",style:{width:"120px"},onChange:()=>re(fe)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(commonDataType),he=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:he.value,label:he.label,value:he.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".dataLength",rules:vue.unref(ne).dataLength},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInputNumber),{min:0,max:2048,"value-on-clear":0,"controls-position":"right",modelValue:fe.dataLength,"onUpdate:modelValue":he=>fe.dataLength=he,disabled:["autoIncrement","date","time","datetime","int","bigint","double","text"].includes(fe.dataType),placeholder:"长度",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElFormItem),{prop:"modelValue."+ve+".dataScale",rules:vue.unref(ne).dataScale},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElInputNumber),{modelValue:fe.dataScale,"onUpdate:modelValue":he=>fe.dataScale=he,min:0,max:2048,"value-on-clear":0,"controls-position":"right",disabled:!["decimal"].includes(fe.dataType),placeholder:"标度",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:2},1032,["prop","rules"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:fe.primaryKey,"onUpdate:modelValue":he=>fe.primaryKey=he,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":"2","inactive-value":"1",onChange:()=>oe(fe,ve)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),vue.createElementVNode("td",null,[vue.createVNode(vue.unref(elementPlus.ElSwitch),{modelValue:fe.uniqueKey,"onUpdate:modelValue":he=>fe.uniqueKey=he,"inline-prompt":"","active-text":"是","inactive-text":"否","active-value":"2","inactive-value":"1"},null,8,["modelValue","onUpdate:modelValue"])]),_hoisted_13$3]))],64))),128))])])]),_:1},8,["modelValue"])]),_:1},8,["model","rules"])],64)}}}),modelAttribute_vue_vue_type_style_index_0_scoped_35df2183_lang="",ModelAttribute=_export_sfc$2(_sfc_main$B,[["__scopeId","data-v-35df2183"]]),_hoisted_1$u={class:"flex items-center justify-center mb-3"},_hoisted_2$o=vue.createElementVNode("i",{class:"ri-arrow-down-s-line"},null,-1),_sfc_main$A=vue.defineComponent({__name:"model-conn",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.ref([]),de=vue.computed(()=>{var ge;return(ge=fe.find(me=>me.fieldName=="openForm"))==null?void 0:ge.value}),fe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:ge=>{const me=fe.find(_e=>_e.fieldName==="modelType");me.required=ge.value=="DWD",me.disabled=ge.value!="DWD"}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0,disabled:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},disabled:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0}]),ve=()=>{le.value=!0,se.value="",ue.value=[],ce.value=[{nanoid:nanoid(),dataScale:0,dataLength:0}],oe.permission.includes("DATA_FROM_FORM")||fe.splice(fe.findIndex(ge=>ge.fieldName=="openForm"),1),ne({modelLayer:"ODS",projectId:ee.$baseGetCurrentProjectId()},fe),ee.$baseHttp.get(`/api/ace-data-center/data-source/listTableDetailByProjectId/${ee.$baseGetCurrentProjectId()}`).then(ge=>{ue.value=ge.data.filter(me=>!me.tableCode.startsWith("ods_")&&!me.tableCode.startsWith("dwd_"))})},he=async ge=>{var _e;ce.value=[];const me=await ee.$baseHttp.get("/api/ace-data-center/model/projectIdToModels",{params:{tableCodes:ge,projectId:ee.$baseGetCurrentProjectId()},headers:{loading:!0}});me&&(ne({...me.data[0],modelLayer:"ODS",projectId:ee.$baseGetCurrentProjectId()},fe),ce.value=(((_e=me.data[0])==null?void 0:_e.listModelAttribute)??[]).map(ye=>({...ye,dataScale:ye.dataScale||0,dataLength:ye.dataLength||0,nanoid:nanoid()})))},pe=async()=>{var be;const{params:ge,error:me}=re(fe);if(me.length>0||!await((be=vue.unref(ae))==null?void 0:be.validate()))return;const ye=vue.unref(ae).isRepeat();if(ye!==""){ee.$baseAlert({content:ye});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{await ee.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",{...ge,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:vue.unref(ce)})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})};return U({init:ve}),(ge,me)=>{const _e=vue.resolveComponent("AppForm"),ye=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ye,{modelValue:vue.unref(le),"onUpdate:modelValue":me[2]||(me[2]=be=>vue.isRef(le)?le.value=be:null),title:"数据源导入模型",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:pe},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(ge.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:me[1]||(me[1]=be=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$u,[vue.createVNode(vue.unref(elementPlus.ElDropdown),{onCommand:he},{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(ue),be=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdownItem),{key:be.tableCode,command:be.tableCode},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(be.tableComment||be.tableCode),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small"},{default:vue.withCtx(()=>[vue.createTextVNode(" 请选择模型 "),_hoisted_2$o]),_:1})]),_:1})]),vue.createVNode(_e,{form:vue.unref(fe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(ce),"onUpdate:modelValue":me[0]||(me[0]=be=>vue.isRef(ce)?ce.value=be:null),"is-required":vue.unref(de)},null,8,["modelValue","is-required"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),defaultAttributeCode=["project_id","create_time","create_user","create_dept","tag"],pushRequiredAttr=(te,U=!0)=>te,_hoisted_1$t={key:0,class:"flex items-center justify-center mt-3 mb-3"},_hoisted_2$n=vue.createElementVNode("i",{class:"ri-arrow-down-s-line"},null,-1),_sfc_main$z=vue.defineComponent({__name:"model-sql",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.ref(""),de=vue.ref([]),fe=vue.reactive([{name:"数据源类型",type:FieldType.Select,fieldName:"storeType",value:"",required:!0,options:[{label:"Mysql",value:"mysql"},{label:"Clickhouse",value:"clickhouse"},{label:"PostgreSql",value:"postgre"}]},{name:"上传sql",type:FieldType.Slot,fieldName:"file",required:!0,value:""}]),ve=vue.computed(()=>fe.find(be=>be.fieldName==="storeType")),he=vue.computed(()=>{var be;return(be=pe.find(xe=>xe.fieldName=="openForm"))==null?void 0:be.value}),pe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:be=>{const xe=pe.find($e=>$e.fieldName==="modelType");xe.required=be.value=="DWD",xe.disabled=be.value!="DWD";const Ce=`${((be==null?void 0:be.value)??"").toLocaleLowerCase()}_`;ce.value=Ce,pe.find($e=>$e.fieldName==="modelCode").prepend=vue.h("div",{},Ce)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},disabled:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0}]),ge=()=>{le.value=!0,se.value="",ue.value=[],de.value=[{nanoid:nanoid(),dataScale:0,dataLength:0}],oe.permission.includes("DATA_FROM_FORM")||pe.splice(pe.findIndex(be=>be.fieldName=="openForm"),1),ne({},fe),ne({projectId:ee.$baseGetCurrentProjectId()},pe)},me=async be=>{var Ve;if(!(be.file.name.substring(be.file.name.lastIndexOf(".")+1)==="sql")){ee.$message.error("上传文件只能为SQL文件!");return}const $e=new FormData;$e.append("file",be.file),$e.append("storeType",vue.unref(ve).value);const Ee=await ee.$baseHttp.post("/api/ace-data-center/model/uploadSqlFileToModel",$e,{headers:{"Content-Type":"multipart/form-data",loading:!0}});Ee&&(ue.value=Ee.data,ne({...Ee.data[0],projectId:ee.$baseGetCurrentProjectId()},pe),de.value=(((Ve=Ee.data[0])==null?void 0:Ve.listModelAttribute)??[]).map(Ne=>({...Ne,dataScale:Ne.dataScale||0,dataLength:Ne.dataLength||0,nanoid:nanoid()})))},_e=async be=>{const xe=vue.unref(ue).find(Ce=>Ce.modelCode==be);ne({...xe??{},projectId:ee.$baseGetCurrentProjectId()},pe),de.value=((xe==null?void 0:xe.listModelAttribute)??[]).map(Ce=>({...Ce,dataScale:Ce.dataScale??0,nanoid:nanoid()}))},ye=async()=>{var Ee;const{params:be,error:xe}=re(pe);if(xe.length>0||!await((Ee=vue.unref(ae))==null?void 0:Ee.validate()))return;const $e=vue.unref(ae).isRepeat();if($e!==""){ee.$baseAlert({content:$e});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{await ee.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",{...be,modelCode:vue.unref(ce)+be.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:pushRequiredAttr(vue.unref(de),be.modelLayer=="ODS")})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})};return U({init:ge}),(be,xe)=>{const Ce=vue.resolveComponent("AppForm"),$e=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock($e,{modelValue:vue.unref(le),"onUpdate:modelValue":xe[2]||(xe[2]=Ee=>vue.isRef(le)?le.value=Ee:null),title:"SQL新建模型",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:ye},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(be.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:xe[1]||(xe[1]=Ee=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(Ce,{form:vue.unref(fe)},{file:vue.withCtx(()=>{var Ee;return[vue.createVNode(vue.unref(elementPlus.ElUpload),{disabled:!((Ee=vue.unref(ve))!=null&&Ee.value),style:{width:"100%"},"http-request":me,multiple:!1,accept:".sql","show-file-list":!1},{default:vue.withCtx(()=>{var Ve;return[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",disabled:!((Ve=vue.unref(ve))!=null&&Ve.value)},{default:vue.withCtx(()=>[vue.createTextVNode("点击上传")]),_:1},8,["disabled"])]}),_:1},8,["disabled"]),vue.unref(ue).length?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$t,[vue.createVNode(vue.unref(elementPlus.ElDropdown),{onCommand:_e},{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(ue),Ve=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElDropdownItem),{key:Ve.modelName,command:Ve.modelCode},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Ve.modelName),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",size:"small"},{default:vue.withCtx(()=>[vue.createTextVNode(" 请选择模型 "),_hoisted_2$n]),_:1})]),_:1})])):vue.createCommentVNode("",!0)]}),_:1},8,["form"]),vue.createVNode(Ce,{form:vue.unref(pe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(de),"onUpdate:modelValue":xe[0]||(xe[0]=Ee=>vue.isRef(de)?de.value=Ee:null),"is-required":vue.unref(he)},null,8,["modelValue","is-required"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_hoisted_1$s={key:0,class:"mb-2.5"},_hoisted_2$m=["onClick"],_hoisted_3$k=vue.createElementVNode("i",{class:"mr-1 ri-add-circle-line"},null,-1),_sfc_main$y=vue.defineComponent({__name:"model-normal",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.ref(""),de=vue.ref(""),fe=vue.ref([]),ve=vue.ref([]),he=vue.computed(()=>{var be;return(be=pe.find(xe=>xe.fieldName=="openForm"))==null?void 0:be.value}),pe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:be=>{const xe=pe.find($e=>$e.fieldName==="modelType");xe.required=be.value=="DWD",xe.disabled=be.value!="DWD";const Ce=`${((be==null?void 0:be.value)??"").toLocaleLowerCase()}_`;ce.value=Ce,pe.find($e=>$e.fieldName==="modelCode").prepend=vue.h("div",{},Ce)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},disabled:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0},{name:"id",type:FieldType.Text,fieldName:"id",value:"",hide:!0}]),ge=vue.ref(!0),me=be=>{var xe,Ce;le.value=!0,se.value="",ue.value=[],ve.value=((be==null?void 0:be.slaveModels)??[]).map($e=>({...$e,listModelAttribute:$e.listModelAttribute.filter(Ee=>Ee.attributeComment!="外键"&&Ee.attributeCode!="_data_from")})),de.value="default",ge.value=!(be!=null&&be.parentModelId),fe.value=(be?(be==null?void 0:be.listModelAttribute)??[]:[{nanoid:nanoid(),dataScale:0,dataLength:0}]).map($e=>{const Ee=(($e==null?void 0:$e.attributeCode)??"").split("");return $e.nanoid=nanoid(),Ee[0]=="_"&&($e.hide=!0),$e}),oe.permission.includes("DATA_FROM_FORM")||pe.splice(pe.findIndex($e=>$e.fieldName=="openForm"),1),((xe=be==null?void 0:be.modelCode)!=null&&xe.startsWith("ods_")||(Ce=be==null?void 0:be.modelCode)!=null&&Ce.startsWith("dwd_"))&&(be.modelCode=be.modelCode.substring(4,be.modelCode.length)),ne({...be??{},projectId:ee.$baseGetCurrentProjectId()},pe)},_e=async()=>{const{params:be,error:xe}=re(pe);if(xe.length>0)return;let Ce=!1;for(let $e=0;$e<vue.unref(ve).length+1;$e+=1){de.value=$e==0?"default":vue.unref(ve)[$e-1].value,await new Promise(Se=>{vue.nextTick(()=>Se(!0))});const Ee=Array.isArray(vue.unref(ae))?vue.unref(ae)[0]:vue.unref(ae);if(!await(Ee==null?void 0:Ee.validate())){Ce=!0;break}const Ne=vue.unref(Ee).isRepeat();if(Ne!==""){Ce=!0,ee.$baseAlert({content:Ne});break}}Ce||ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{const $e=be.id?"/api/ace-data-center/model/editModelDetail":"/api/ace-data-center/model/saveModelDetail";await ee.$baseHttp.post($e,{...be,modelCode:vue.unref(ce)+be.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:vue.unref(fe),slaveModels:vue.unref(ve).map(Ve=>({...Ve,openForm:be.openForm}))},{headers:{loading:!0}})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})},ye=()=>{ee.$basePrompt({content:"模型名称",placeholder:"模型名称",inputType:"input",inputValue:"",beforeCloseFunc:async(be,xe,Ce)=>{if(be!="confirm"){Ce();return}const $e={modelName:xe.inputValue,value:nanoid(),listModelAttribute:[{nanoid:nanoid(),dataScale:0,dataLength:0}]};ve.value.push($e),de.value=$e.value,Ce()}})};return U({init:me}),(be,xe)=>{const Ce=vue.resolveComponent("AppForm"),$e=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock($e,{modelValue:vue.unref(le),"onUpdate:modelValue":xe[3]||(xe[3]=Ee=>vue.isRef(le)?le.value=Ee: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.renderSlot(be.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:xe[2]||(xe[2]=Ee=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(Ce,{form:vue.unref(pe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.unref(ge)&&oe.permission.includes("MASTER_SLAVE_SAVE")?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$s,[vue.createVNode(vue.unref(elementPlus.ElButtonGroup),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:vue.unref(de)=="default"?"primary":"",onClick:xe[0]||(xe[0]=Ee=>de.value="default")},{default:vue.withCtx(()=>[vue.createTextVNode(" 主表 ")]),_:1},8,["type"]),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ve),(Ee,Ve)=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElButton),{type:vue.unref(de)==Ee.value?"primary":"",onClick:Ne=>de.value=Ee.value},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Ee.modelName)+" ",1),Ee.value!=vue.unref(de)?(vue.openBlock(),vue.createElementBlock("i",{key:0,class:"ml-1 ri-close-circle-line",onClick:vue.withModifiers(Ne=>vue.unref(ve).splice(Ve,1),["stop"])},null,8,_hoisted_2$m)):vue.createCommentVNode("",!0)]),_:2},1032,["type","onClick"]))),256))]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{type:"warning",class:"ml-2.5",onClick:ye},{default:vue.withCtx(()=>[_hoisted_3$k,vue.createTextVNode(" 增加从表 ")]),_:1})])):vue.createCommentVNode("",!0),vue.unref(de)=="default"?(vue.openBlock(),vue.createBlock(ModelAttribute,{key:1,ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(fe),"onUpdate:modelValue":xe[1]||(xe[1]=Ee=>vue.isRef(fe)?fe.value=Ee:null),"is-required":vue.unref(he)},null,8,["modelValue","is-required"])):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(ve),(Ee,Ve)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.unref(de)==Ee.value?(vue.openBlock(),vue.createBlock(ModelAttribute,{key:0,ref_for:!0,ref_key:"modelAttributeRef",ref:ae,modelValue:Ee.listModelAttribute,"onUpdate:modelValue":Ne=>Ee.listModelAttribute=Ne,"is-required":vue.unref(he)},null,8,["modelValue","onUpdate:modelValue","is-required"])):vue.createCommentVNode("",!0)],64))),256))]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_sfc_main$x=vue.defineComponent({__name:"model-excel",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=vue.ref(null),se=vue.ref(""),ue=vue.ref([]),ce=vue.reactive([{name:"上传excel",type:FieldType.Slot,fieldName:"file",required:!0,value:""}]),de=vue.computed(()=>{var ge;return(ge=fe.find(me=>me.fieldName=="openForm"))==null?void 0:ge.value}),fe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},disabled:!0,changeFunc:ge=>{const me=fe.find(ye=>ye.fieldName==="modelType");me.required=ge.value=="DWD",me.disabled=ge.value!="DWD";const _e=`${((ge==null?void 0:ge.value)??"").toLocaleLowerCase()}_`;se.value=_e,fe.find(ye=>ye.fieldName==="modelCode").prepend=vue.h("div",{},_e)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"},hide:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:""},{name:"分区字段",type:FieldType.Text,fieldName:"partitionColumn",value:""},{name:"模型描述",type:FieldType.Textarea,fieldName:"modelDesc",value:""},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0},{name:"modelTemplateFileUrl",type:FieldType.Text,fieldName:"modelTemplateFileUrl",value:"",hide:!0},{name:"modelTemplateFileName",type:FieldType.Text,fieldName:"modelTemplateFileName",value:"",hide:!0},{name:"modelTemplateFileHeadIndex",type:FieldType.Text,fieldName:"modelTemplateFileHeadIndex",value:"",hide:!0}]),ve=()=>{le.value=!0,ue.value=[{nanoid:nanoid(),dataScale:0,dataLength:0}],oe.permission.includes("DATA_FROM_FORM")||fe.splice(fe.findIndex(ge=>ge.fieldName=="openForm"),1),ne({},ce),ne({modelLayer:"ODS",projectId:ee.$baseGetCurrentProjectId()},fe)},he=async ge=>{var ye;const me=new FormData;me.append("file",ge.file);const _e=await ee.$baseHttp.post("/api/ace-data-center/auto-import-excel/fileParser2Model",me,{headers:{"Content-Type":"multipart/form-data",loading:!0}});_e&&(ne({modelLayer:"ODS",modelName:_e.data.filename,modelCode:_e.data.filenamePinyin,modelTemplateFileUrl:_e.data.link,modelTemplateFileName:_e.data.originalName,modelTemplateFileHeadIndex:_e.data.headIndex,projectId:ee.$baseGetCurrentProjectId()},fe),ue.value=(((ye=_e.data)==null?void 0:ye.list)??[]).map(be=>({...be,dataScale:be.dataScale||0,dataLength:be.dataLength||0,nanoid:nanoid()})))},pe=async()=>{var be;const{params:ge,error:me}=re(fe);if(me.length>0||!await((be=vue.unref(ae))==null?void 0:be.validate()))return;const ye=vue.unref(ae).isRepeat();if(ye!==""){ee.$baseAlert({content:ye});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{await ee.$baseHttp.post("/api/ace-data-center/model/saveModelDetail",{...ge,modelCode:vue.unref(se)+ge.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:pushRequiredAttr(vue.unref(ue),ge.modelLayer=="ODS")},{headers:{loading:!0}})&&(le.value=!1,ee.$message.success("操作成功"),ie("success"))}})};return U({init:ve}),(ge,me)=>{const _e=vue.resolveComponent("AppForm"),ye=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(ye,{modelValue:vue.unref(le),"onUpdate:modelValue":me[2]||(me[2]=be=>vue.isRef(le)?le.value=be:null),title:"EXCEL新建模型",size:"100%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:pe},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(ge.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:me[1]||(me[1]=be=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"pr-5 mr-5"},{default:vue.withCtx(()=>[vue.createVNode(_e,{form:vue.unref(ce)},{file:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElUpload),{style:{width:"100%"},"http-request":he,multiple:!1,accept:".xls,.xlsx","show-file-list":!1},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary"},{default:vue.withCtx(()=>[vue.createTextVNode("点击上传")]),_:1})]),_:1})]),_:1},8,["form"]),vue.createVNode(_e,{form:vue.unref(fe)},null,8,["form"])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:ae,modelValue:vue.unref(ue),"onUpdate:modelValue":me[0]||(me[0]=be=>vue.isRef(ue)?ue.value=be:null),"is-required":vue.unref(de)},null,8,["modelValue","is-required"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_hoisted_1$r={class:"flex flex-1 overflow-hidden"},_hoisted_2$l={class:"mt-4"},_sfc_main$w=vue.defineComponent({__name:"model-extract",emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),{allModel:oe,allModelAttribute:ie}=fetch$1(ee).model,le=G,ae=vue.ref(!1),se=vue.ref(null),ue=vue.ref(""),ce=vue.ref([]),de=vue.reactive({odsList:[],odsAttributeList:[],odsValue:""}),fe=vue.reactive([{name:"项目名称",type:FieldType.Select,fieldName:"projectId",value:"",required:!0,props:{url:"/api/ace-data-center/project/options",label:"label",value:"code"},disabled:!0},{name:"模型层级",type:FieldType.Select,fieldName:"modelLayer",value:"",required:!0,disabled:!0,props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelLayer",label:"dictValue",value:"dictKey"},changeFunc:ye=>{const be=fe.find(Ce=>Ce.fieldName==="modelType");be.required=ye.value=="DWD",be.disabled=ye.value!="DWD";const xe=`${((ye==null?void 0:ye.value)??"").toLocaleLowerCase()}_`;ue.value=xe,fe.find(Ce=>Ce.fieldName==="modelCode").prepend=vue.h("div",{},xe)}},{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"模型表名",type:FieldType.Text,fieldName:"modelCode",value:"",required:!0},{name:"模型类型",type:FieldType.Select,fieldName:"modelType",value:"",props:{url:"/api/ace-api/blade-system/dict-biz/dictionary?code=modelType",label:"dictValue",value:"dictKey"}}]),ve=vue.computed(()=>de.odsList.find(ye=>ye.id==de.odsValue).modelCode),he=()=>{ae.value=!0,ce.value=[],ne({modelLayer:"DWD",projectId:ee.$baseGetCurrentProjectId()},fe),oe({modelLayer:"ODS"}).then(ye=>{de.odsList=ye.data})},pe=async ye=>{const be=await ie({modelId:ye});be&&(de.odsAttributeList=be.data.filter(xe=>!defaultAttributeCode.includes(xe.attributeCode)),vue.nextTick(()=>{de.odsAttributeList.forEach(xe=>{vue.unref(ce).some(Ce=>Ce.sourceModelName==vue.unref(ve)&&Ce.sourceColumnName==xe.attributeCode)&&ee.$refs.odsAttributeListRef.toggleRowSelection(xe,!0)})}))},ge=(ye,be)=>{if(be){const xe=ye.length&&ye.indexOf(be)!==-1;me(xe?"add":"remove",be);return}ye.length?ye.forEach(xe=>{me("add",xe)}):ce.value=ce.value.filter(xe=>xe.sourceModelName!=vue.unref(ve))},me=(ye,be)=>{ye==="add"&&(vue.unref(ce).find(xe=>xe.sourceModelName==vue.unref(ve)&&xe.sourceColumnName==be.attributeCode)||ce.value.push({attributeCode:be.attributeCode,attributeComment:be.attributeComment,mapCode:be.attributeCode,dataType:be.dataType,dataLength:be.dataLength,dataScale:be.dataScale,primaryKey:"1",sourceModelName:vue.unref(ve),sourceColumnName:be.attributeCode,nanoid:nanoid()})),ye==="remove"&&(ce.value=ce.value.filter(xe=>xe.sourceModelName!==be.odsName&&xe.sourceColumnName!=be.attributeCode))},_e=async()=>{var $e;const{params:ye,error:be}=re(fe);if(be.length>0||!await(($e=vue.unref(se))==null?void 0:$e.validate()))return;const Ce=vue.unref(se).isRepeat();if(Ce!==""){ee.$baseAlert({content:Ce});return}ee.$baseConfirm({content:"是否立即执行?",callConfirm:async()=>{const Ee="/api/ace-data-center/model/saveModelDetail";await ee.$baseHttp.post(Ee,{...ye,modelCode:vue.unref(ue)+ye.modelCode,projectId:String(ee.$baseGetCurrentProjectId()),listModelAttribute:pushRequiredAttr(vue.unref(ce),ye.modelLayer=="ODS")},{headers:{loading:!0}})&&(ae.value=!1,ee.$message.success("操作成功"),le("success"))}})};return U({init:he}),(ye,be)=>{const xe=vue.resolveComponent("aceHeader"),Ce=vue.resolveComponent("AppForm"),$e=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock($e,{modelValue:vue.unref(ae),"onUpdate:modelValue":be[3]||(be[3]=Ee=>vue.isRef(ae)?ae.value=Ee:null),title:"ODS抽取模型",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.renderSlot(ye.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:be[2]||(be[2]=Ee=>ae.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElContainer),{class:"h-full overflow-hidden"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElAside),{class:"flex flex-col pr-5 mr-5",style:{width:"320px",overflow:"hidden"}},{default:vue.withCtx(()=>[vue.createVNode(xe,{title:"ODS源表"}),vue.createVNode(vue.unref(elementPlus.ElSelect),{modelValue:vue.unref(de).odsValue,"onUpdate:modelValue":be[0]||(be[0]=Ee=>vue.unref(de).odsValue=Ee),onChange:pe,class:"w-full mt-2 mb-2",placeholder:"请选择模型"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(de).odsList,Ee=>(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElOption),{key:Ee.id,label:`${Ee.modelName}:${Ee.modelCode}`,value:Ee.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),vue.createElementVNode("div",_hoisted_1$r,[vue.createVNode(vue.unref(elementPlus.ElTable),{ref:"odsAttributeListRef",data:vue.unref(de).odsAttributeList,onSelect:ge,onSelectAll:ge,height:"100%"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElTableColumn),{type:"selection",width:"30"}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeCode",label:"字段","show-overflow-tooltip":""}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"attributeComment",label:"名称","show-overflow-tooltip":""}),vue.createVNode(vue.unref(elementPlus.ElTableColumn),{prop:"dataType",label:"类型"})]),_:1},8,["data"])])]),_:1}),vue.createVNode(vue.unref(elementPlus.ElMain),null,{default:vue.withCtx(()=>[vue.createVNode(xe,{title:"DWD目标模型"}),vue.createElementVNode("div",_hoisted_2$l,[vue.createVNode(Ce,{form:vue.unref(fe),col:2},null,8,["form"])]),vue.createVNode(ModelAttribute,{ref_key:"modelAttributeRef",ref:se,modelValue:vue.unref(ce),"onUpdate:modelValue":be[1]||(be[1]=Ee=>vue.isRef(ce)?ce.value=Ee:null)},null,8,["modelValue"])]),_:1})]),_:1})]),_:3},8,["modelValue"])}}}),_sfc_main$v=vue.defineComponent({__name:"model-tag-edit",props:{permission:{default:()=>[]}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=G,le=vue.ref(!1),ae=ce=>{se.value=[{name:"模型名称",type:FieldType.Text,fieldName:"modelName",value:"",required:!0},{name:"标签",type:FieldType.Text,fieldName:"tags",value:"",placeholder:"多个标签用英文逗号分割",required:!0},{name:"表单录入数据",type:FieldType.Radio,fieldName:"openForm",value:"",dict:"openForm",defVal:"1",required:!0},{name:"projectId",type:FieldType.Text,fieldName:"projectId",value:"",hide:!0},{name:"编号",type:FieldType.Text,fieldName:"id",value:"",hide:!0}],(!oe.permission.includes("DATA_FROM_FORM")||ce.modelLayer=="ODSVIEW")&&vue.unref(se).splice(vue.unref(se).findIndex(de=>de.fieldName=="openForm"),1),ne(ce,se.value),le.value=!0},se=vue.ref([]),ue=async ce=>{switch(ce){case"submit":{const{params:de,error:fe}=re(vue.unref(se));if(fe.length>0||!await ee.$baseHttp.post("/api/ace-data-center/model/submit",de))return;le.value=!1,ee.$message.success("操作成功"),ie("success")}break}};return U({init:ae}),(ce,de)=>{const fe=vue.resolveComponent("AppForm"),ve=vue.resolveComponent("AppDialog");return vue.openBlock(),vue.createBlock(ve,{modelValue:vue.unref(le),"onUpdate:modelValue":de[2]||(de[2]=he=>vue.isRef(le)?le.value=he:null),title:"编辑模型",size:500},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary",onClick:de[0]||(de[0]=he=>ue("submit"))},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:de[1]||(de[1]=he=>le.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(fe,{form:vue.unref(se)},null,8,["form"])]),_:1},8,["modelValue"])}}}),_hoisted_1$q={key:1},_hoisted_2$k=vue.createElementVNode("i",{class:"mr-2 ri-delete-bin-line"},null,-1),_hoisted_3$j={key:0},_hoisted_4$h=vue.createElementVNode("span",{class:"text-color-danger"},"表格标题栏不匹配,",-1),_hoisted_5$e=vue.createElementVNode("span",{class:"text-color-danger"},"异常",-1),_sfc_main$u=vue.defineComponent({__name:"model-file-cache-list",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const ee=te,{proxy:ne}=vue.getCurrentInstance(),{listSimpleColumn:re}=fetch$1(ne),oe=vue.ref(!1),ie=vue.ref(!1),le=vue.ref(null),ae=vue.ref(null),se=vue.ref([]),ue=vue.ref([]),ce=vue.ref(""),de=G,fe=vue.reactive([{name:"状态",type:FieldType.Select,fieldName:"extractStatus",value:"",fieldType:FieldRenderType.String,dict:"extractStatus"}]),ve=vue.ref([{label:"日期",prop:"createTime"},{label:"文件名",prop:"fileName"},{label:"抽取状态",prop:"extractStatus",dict:"extractStatus"},{label:"错误信息",prop:"errorMsg",slot:!0},{label:"操作",prop:"action",slot:!0,fixed:"right"}]),he=async()=>{ce.value=`/api/ace-data-center/file-extract-cache/list?projectId=${ne.$baseGetCurrentProjectId()}&modelId=${ee.modelId}`,oe.value=!0},pe=async(ge,me)=>{var _e;switch(ge){case"delete":ne.$baseConfirm({content:"是否确认删除?",callConfirm:async()=>{await ne.$baseHttp.post(`/api/ace-data-center/file-extract-cache/remove?ids=${me.id}`,{},{headers:{loading:!0}})&&(ne.$message.success("操作成功"),vue.unref(le).getData(),de("success"))}});break;case"viewError":ae.value=JSON.parse(me.errorMsg),se.value=(_e=vue.unref(ae))==null?void 0:_e.errorValidateData;const ye=await re(ee.modelId);ye.data&&ye.data.unshift({label:"异常情况",prop:"异常情况",mapLabel:"异常情况"}),ue.value=(ye.data??[]).map(be=>({...be,prop:be.mapLabel})),ie.value=!0;break}};return U({init:he}),(ge,me)=>{const _e=vue.resolveComponent("AppList"),ye=vue.resolveComponent("AppTable"),be=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(be,{modelValue:vue.unref(oe),"onUpdate:modelValue":me[1]||(me[1]=xe=>vue.isRef(oe)?oe.value=xe:null),title:"抽取日志",size:"90%"},{default:vue.withCtx(()=>[vue.unref(ce)?(vue.openBlock(),vue.createBlock(_e,{key:0,searchFormRes:{extractStatus:"00"},searchForm:vue.unref(fe),tableData:vue.unref(ve),url:vue.unref(ce),ref_key:"appList",ref:le},{errorMsg:vue.withCtx(({row:xe})=>[xe.extractStatus==="10"?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElLink),{key:0,type:"primary",onClick:Ce=>pe("viewError",xe)},{default:vue.withCtx(()=>[vue.createTextVNode(" 查看错误信息 ")]),_:2},1032,["onClick"])):(vue.openBlock(),vue.createElementBlock("span",_hoisted_1$q,"-"))]),action:vue.withCtx(({row:xe})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"danger",onClick:Ce=>pe("delete",xe)},{default:vue.withCtx(()=>[_hoisted_2$k,vue.createTextVNode(" 删除 ")]),_:2},1032,["onClick"])]),_:1},8,["searchForm","tableData","url"])):vue.createCommentVNode("",!0),vue.createVNode(be,{modelValue:vue.unref(ie),"onUpdate:modelValue":me[0]||(me[0]=xe=>vue.isRef(ie)?ie.value=xe:null),title:"错误信息",size:"90%"},{default:vue.withCtx(()=>[vue.unref(ae)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$j,[vue.createVNode(vue.unref(elementPlus.ElAlert),{title:"温馨提醒",type:vue.unref(ae).isExtractSuccess?"success":"warning","show-icon":"",closable:!1},{default:vue.withCtx(()=>[vue.unref(ae).isTitleCheckSuccess===!1?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[_hoisted_4$h,vue.createTextVNode(" 请检查Excel文件数据! ")],64)):vue.unref(ae).isValidateSuccess?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[vue.createTextVNode(" 本批数据共有"+vue.toDisplayString(vue.unref(ae).dataTotalNum)+"条,全部通过校验。 ",1)],64)):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:1},[vue.createTextVNode(" 本批数据共有"+vue.toDisplayString(vue.unref(ae).dataTotalNum)+"条, 已校验"+vue.toDisplayString(vue.unref(ae).validateSuccessNum+vue.unref(ae).validateFailNum)+"条, "+vue.toDisplayString(vue.unref(ae).validateFailNum)+"条 ",1),_hoisted_5$e,vue.createTextVNode(" 当前异常率约为"+vue.toDisplayString(Number(vue.unref(ae).validateFailNum/(vue.unref(ae).validateSuccessNum+vue.unref(ae).validateFailNum)*100).toFixed(2))+"% ",1)],64))]),_:1},8,["type"])])):vue.createCommentVNode("",!0),vue.unref(ve).length>0?(vue.openBlock(),vue.createBlock(ye,{key:1,class:"mt-4",list:vue.unref(se),tableData:vue.unref(ue),loading:!1},null,8,["list","tableData"])):vue.createCommentVNode("",!0)]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}}),_hoisted_1$p=vue.createElementVNode("i",{class:"mr-2 ri-exchange-line"},null,-1),_hoisted_2$j=vue.createElementVNode("i",{class:"mr-2 ri-refresh-line"},null,-1),_hoisted_3$i=vue.createElementVNode("div",null,null,-1),_hoisted_4$g=vue.createElementVNode("i",{class:"mr-2 ri-delete-bin-line"},null,-1),_sfc_main$t=vue.defineComponent({__name:"model-extract-log",emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),ne=G,re=vue.ref(!1),oe=vue.ref(null),ie=vue.ref(""),le=vue.ref([]),ae=ue=>{const{businessId:ce,businessType:de="file_extract",ajaxUrl:fe="",table:ve}=ue;le.value=ve||[{label:"批次号",prop:"batchNo"},{label:"日期",prop:"createTime"},{label:"文件名",prop:"file",slot:!0},{label:"抽取方式",prop:"createTime",func:he=>{var pe;return((pe=JSON.parse(he.businessSnapshot||"{}"))==null?void 0:pe.extractType)==2?"覆盖":"追加"}},{label:"数据总数",prop:"totalNum"},{label:"成功数",prop:"successNum"},{label:"失败数",prop:"failNum"},{label:"协同参数",prop:"collaborateValue"},{label:"操作",prop:"action",slot:!0,fixed:"right"}],ie.value=fe||`/api/ace-data-center/extract-log/list?descs=create_time&businessId=${ce}&businessType=${de}`,re.value=!0},se=async(ue,ce)=>{switch(ue){case"refresh":{if(!await ee.$baseHttp.post(`/api/ace-data-center/extract-log/updateSuccessTotal/${ce.id}`,{},{headers:{loading:!0}}))return;ee.$message.success("操作成功"),vue.unref(oe).getData(),ne("success")}break;case"delete":ee.$baseConfirm({content:"删除数据可能影响指标统计,是否确认删除?",callConfirm:async()=>{await ee.$baseHttp.post(`/api/ace-data-center/extract-log/deleteModelData/${ce.id}`,{},{headers:{loading:!0}})&&(ee.$message.success("操作成功"),vue.unref(oe).getData(),ne("success"))}});break;case"run":ee.$baseConfirm({content:"重跑数据会先删除本批次数据,然后新建立一个批次任务执行,是否继续执行?",callConfirm:async()=>{await ee.$baseHttp.post(`/api/ace-data-center/extract-log/reRunTeamworkDbExtractBy/${ce.id}`,{},{headers:{loading:!0}})&&(ee.$message.success("操作成功"),vue.unref(oe).getData(),ne("success"))}});break;case"download":{const de=JSON.parse((ce==null?void 0:ce.businessSnapshot)??"{}");window.open(de.fileUrl)}break}};return U({init:ae}),(ue,ce)=>{const de=vue.resolveComponent("AppList"),fe=vue.resolveComponent("AppDrawer");return vue.openBlock(),vue.createBlock(fe,{modelValue:vue.unref(re),"onUpdate:modelValue":ce[0]||(ce[0]=ve=>vue.isRef(re)?re.value=ve:null),title:"抽取日志",size:"90%"},{default:vue.withCtx(()=>[vue.createVNode(de,{tableData:vue.unref(le),url:vue.unref(ie),ref_key:"appList",ref:oe},{file:vue.withCtx(({row:ve})=>[vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:he=>se("download",ve)},{default:vue.withCtx(()=>{var he;return[vue.createTextVNode(vue.toDisplayString((he=JSON.parse(ve.businessSnapshot??"{}"))==null?void 0:he.fileName),1)]}),_:2},1032,["onClick"])]),action:vue.withCtx(({row:ve})=>{var he;return[((he=JSON.parse(ve.businessSnapshot||"{}"))==null?void 0:he.extractType)==3?(vue.openBlock(),vue.createBlock(vue.unref(elementPlus.ElLink),{key:0,type:"primary",class:"mr-2",onClick:pe=>se("run",ve)},{default:vue.withCtx(()=>[_hoisted_1$p,vue.createTextVNode(" 重跑 ")]),_:2},1032,["onClick"])):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(elementPlus.ElLink),{type:"primary",onClick:pe=>se("refresh",ve)},{default:vue.withCtx(()=>[_hoisted_2$j,vue.createTextVNode(" 刷新 ")]),_:2},1032,["onClick"]),_hoisted_3$i,vue.createVNode(vue.unref(elementPlus.ElLink),{type:"danger",onClick:pe=>se("delete",ve)},{default:vue.withCtx(()=>[_hoisted_4$g,vue.createTextVNode(" 删除本批次数据 ")]),_:2},1032,["onClick"])]}),_:1},8,["tableData","url"])]),_:1},8,["modelValue"])}}}),_sfc_main$s=vue.defineComponent({__name:"model-excel-edit",props:{modelId:{default:""}},emits:["success"],setup(te,{expose:U,emit:G}){const{proxy:ee}=vue.getCurrentInstance(),{setFormValue:ne,getFormValue:re}=ee.$globalHooks.useForm(),oe=te,ie=vue.ref(!1),le=vue.reactive([{name:"上传excel",type:FieldType.Slot,fieldName:"modelTemplateFileUrl",value:""},{name:"表头位置",type:FieldType.Select,fieldName:"titleNum",value:"",hide:!0,options:[{label:"第1行",value:"1"},{label:"第2行",value:"2"},{label:"第3行",value:"3"},{label:"第4行",value:"4"},{label:"第5行",value:"5"}]},{name:"去除末尾统计行",type:FieldType.Radio,fieldName:"filterEndLineFlag",value:"",hide:!0,options:[{label:"是",value:"1"},{label:"否",value:"0"}],defVal:"1"}]),ae=vue.ref(null),se=vue.ref([]),ue=async()=>{const fe=await ee.$baseHttp.get(`/api/ace-data-center/file-extract-template/detailByParams?modelId=${oe.modelId}`,{headers:{loading:!0}});fe&&(ae.value=fe.data,ie.value=!0,fe.data&&(se.value=[{name:fe.data.modelTemplateFileName,url:fe.data.modelTemplateFileUrl}]),ne(fe.data??{},le))},ce=async fe=>{const ve=new FormData;ve.append("file",fe.file);const he=await ee.$baseHttp.post("/api/ace-api/blade-resource/oss/endpoint/put-file",ve,{headers:{"Content-Type":"multipart/form-data",loading:!0}});he&&(se.value=[{name:he.data.originalName,url:he.data.link}])},de=async()=>{var pe;const{params:fe,error:ve}=re(le);ve.length>0||!await ee.$baseHttp.post("/api/ace-data-center/file-extract-template/submit",{...fe,modelTemplateFileName:vue.unref(se).length?vue.unref(se)[0].name:"",modelTemplateFileUrl:vue.unref(se).length?vue.unref(se)[0].url:"",modelId:oe.modelId,id:((pe=vue.unref(ae))==null?void 0:pe.id)??"",projectId:String(ee.$baseGetCurrentProjectId())})||(ie.value=!1,ee.$message.success("操作成功"))};return U({init:ue}),(fe,ve)=>{const he=vue.resolveComponent("AppForm"),pe=vue.resolveComponent("AppDialog");return vue.openBlock(),vue.createBlock(pe,{modelValue:vue.unref(ie),"onUpdate:modelValue":ve[2]||(ve[2]=ge=>vue.isRef(ie)?ie.value=ge:null),title:"模板上传",size:"50%"},{footer:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",type:"primary",onClick:de},{default:vue.withCtx(()=>[vue.createTextVNode("提交")]),_:1}),vue.renderSlot(fe.$slots,"formFooter"),vue.createVNode(vue.unref(elementPlus.ElButton),{class:"ml-3",onClick:ve[1]||(ve[1]=ge=>ie.value=!1)},{default:vue.withCtx(()=>[vue.createTextVNode("取消")]),_:1})]),default:vue.withCtx(()=>[vue.createVNode(he,{form:vue.unref(le)},{modelTemplateFileUrl:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElUpload),{style:{width:"100%"},"file-list":vue.unref(se),"onUpdate:fileList":ve[0]||(ve[0]=ge=>vue.isRef(se)?se.value=ge:null),"http-request":ce,multiple:!1,accept:".xls,.xlsx"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(elementPlus.ElButton),{type:"primary"},{default:vue.withCtx(()=>[vue.createTextVNode("点击上传")]),_:1})]),_:1},8,["file-list"])]),_:1},8,["form"])]),_:3},8,["modelValue"])}}}),jsoneditor_min="",jsonEditor_vue_vue_type_style_index_0_scoped_71f05bd7_lang="",_sfc_main$r={editor:null,name:"json-editor-vue",internalChange:!1,props:{modelValue:Object|Number|Array,options:Object,currentMode:{type:String,default:"code"},modeList:{type:Array,default:()=>["tree","code","form","text","view"]},language:{type:String,default:"en"}},data(){return{json:this.modelValue,expandedModes:["tree","view","form"],isFullScreen:!1,hasLogo:!0,showFullScreen:!1}},watch:{modelValue:{immediate:!0,deep:!0,handler(te){this.internalChange||(this.setEditorContent(te),this.$nextTick(()=>{this.expandAll()}))}}},mounted(){this.init();const te=document.querySelector(".jsoneditor-menu .jsoneditor-poweredBy");this.hasLogo=te&&window.getComputedStyle(te).display!=="none",this.showFullScreen=!0},unmounted(){var te;(te=this.editor)==null||te.destroy(),this.editor=null},methods:{toggleFullScreen(){this.isFullScreen=!this.isFullScreen,this.$nextTick(()=>{const te=new Event("resize");window.dispatchEvent(te)})},init(){const{currentMode:te,modeList:U,options:G}=this,ee=()=>{const ce=fe=>{this.json=fe,this.$emit("update:modelValue",fe),this.$emit("change",fe),this.internalChange=!0,this.$nextTick(()=>{this.internalChange=!1})};if(!this.editor.getText()){ce("");return}try{const fe=this.editor.get();ce(fe)}catch{}},ne=()=>{this.expandAll()},re=(ce,de,fe)=>{this.$emit("textSelectionChange",this.editor,ce,de,fe)},oe=(ce,de)=>{this.$emit("selectionChange",this.editor,ce,de)},ie=(ce,de,fe)=>{this.$emit("colorPicker",this.editor,ce,de,fe)},le=({target:ce})=>{this.$emit("focus",this.editor,ce)},ae=({target:ce})=>{this.$emit("blur",this.editor,ce)},se=ce=>{this.$emit("validationError",this.editor,ce)},ue={...G,indentation:2,language:this.language,mode:te,modes:U,onChange:ee,onModeChange:ne,onTextSelectionChange:re,onSelectionChange:oe,onColorPicker:ie,onFocus:le,onBlur:ae,onValidationError:se};this.editor=new JsonEditor(this.$refs.jsonEditorVue,ue,this.json)},expandAll(){var te,U;this.expandedModes.includes((te=this.editor)==null?void 0:te.getMode())&&((U=this.editor)==null||U.expandAll())},setEditorContent(te){var U;(U=this.editor)==null||U.set(te)}}},_hoisted_1$o={ref:"jsonEditorVue",class:"json-editor-vue"};function _sfc_render(te,U,G,ee,ne,re){return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["container",{"full-screen-container":ne.isFullScreen}])},[vue.createElementVNode("div",_hoisted_1$o,null,512),vue.createElementVNode("div",{class:vue.normalizeClass(["full-screen",{show:ne.showFullScreen,right:!ne.hasLogo}]),onClick:U[0]||(U[0]=(...oe)=>re.toggleFullScreen&&re.toggleFullScreen(...oe))},null,2)],2)}const JsonEditorVue=_export_sfc$2(_sfc_main$r,[["render",_sfc_render],["__scopeId","data-v-71f05bd7"]]);JsonEditorVue.install=function te(U){U.component(JsonEditorVue.name,JsonEditorVue)};const _hoisted_1$n={class:"h-full overflow-y-auto"},_hoisted_2$i={class:"absolute right-0 -top-10"},_hoisted_3$h=vue.createElementVNode("i",{class:"mr-1 ri-file-upload-line"},null,-1),_hoisted_4$f=vue.createElementVNode("i",{class:"mr-1 ri-file-cloud-line"},null,-1),_hoisted_5$d=vue.createElementVNode("i",{class:"mr-1 ri-file-history-line"},null,-1),_hoisted_6$b={key:0,class:"mb-4"},_hoisted_7$a=vue.createElementVNode("span",{class:"text-color-danger"},"表格标题栏不匹配,",-1),_hoisted_8$8=vue.createElementVNode("span",{class:"text-color-danger"},"异常",-1),_hoisted_9$8={class:"flex"},_hoisted_10$7={class:"flex-1 mr-3"},_hoisted_11$5={class:"flex-1"},_hoisted_12$4=vue.createElementVNode("i",{class:"mr-1 ri-edit-line"},null,-1),_hoisted_13$2=vue.createElementVNode("i",{class:"ri-file-excel-line text-color-primary",style:{"font-size":"38px"}},null,-1),_hoisted_14$2=vue.createElementVNode("div",{class:"el-upload__text"},"拖拽/点击文件上传",-1),_hoisted_15$1={class:"w-full"},_hoisted_16$1=vue.createElementVNode("i",{class:"mr-1 ri-google-play-line"},null,-1),_hoisted_17$1=vue.createElementVNode("i",{class:"ri-file-excel-line text-color-primary",style:{"font-size":"38px"}},null,-1),_hoisted_18$1=vue.createElementVNode("div",{class:"el-upload__text"},"拖拽/点击文件上传",-1),_hoisted_19$1={class:"flex w-full mt-3 text-sm"},_hoisted_20$1={class:"mr-2"},_hoisted_21$1={class:"w-full mt-2"},_hoisted_22$1=vue.createElementVNode("i",{class:"mr-1 ri-google-play-line"},null,-1),_sfc_main$q=vue.defineComponent({__name:"model-file-extract",props:{model:{default:{}}},setup(te){const{proxy:U}=vue.getCurrentInstance(),{setFormValue:G,getFormValue:ee}=U.$globalHooks.useForm(),{listSimpleColumn:ne}=fetch$1(U),re=te,oe=vue.reactive([{name:"抽取方式",type:FieldType.Radio,fieldName:"extractType",value:"",required:!0,options:[{label:"追加",value:"1"},{label:"覆盖",value:"2"}],defVal:"1"},{name:"是否上传图片",type:FieldType.Radio,fieldName:"hasPicture",value:"",required:!0,options:[{label:"否",value:"0"},{label:"是",value:"1"}],defVal:"0"},{name:"插件编写",type:FieldType.Slot,fieldName:"debug",value:""},{name:"Excel文件",type:FieldType.Slot,fieldName:"fileUrl",value:""},{name:"Excel批量",type:FieldType.Slot,fieldName:"batchFileUrl",value:""}]),ie=vue.ref(null),le=vue.ref(null),ae=vue.ref(null),se=vue.ref(null),ue=vue.ref(null),ce=vue.ref(`function plugin(item){
|
|
898
898
|
var data=JSON.parse(item);
|
|
899
899
|
return JSON.stringify(data)
|
|
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 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(`
|
|
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_3d8756ee_lang="",aceModelView=_export_sfc$2(_sfc_main$e,[["__scopeId","data-v-3d8756ee"]]),_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:"h-full 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:"flex flex-1 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),{class:"flex-1 overflow-hidden"},{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`
|