{"version":3,"sources":["webpack:///./src/views/Planning/components/SpreadJsDialog.vue?124b","webpack:///./src/views/Planning/components/spreadUtils.ts","webpack:///./src/views/Planning/components/CasvadeSelector.vue?1454","webpack:///./src/views/Planning/components/CasvadeSelector.vue","webpack:///./src/views/Planning/components/CasvadeSelector.vue?7e27","webpack:///./src/views/Planning/components/CasvadeSelector.vue?786f","webpack:///./src/API/checking/checkingManagement.ts","webpack:///./src/API/planning.ts","webpack:///./src/views/Planning/components/SpreadJsDialog.vue?bb19","webpack:///./src/views/Planning/components/SpreadJsDialog.vue","webpack:///./src/views/Planning/components/SpreadJsDialog.vue?a104"],"names":["initOutlineColumn","sheet","outlineColumn","options","columnIndex","showImage","showCheckBox","expandIndicator","collapseIndicator","maxLevel","showRowOutline","refresh","setCollapsed","data","isCollapsed","suspendPaint","row","length","level","rowOutlines","resumePaint","setHeader","header","setRowCount","Spread","Sheets","SheetArea","colHeader","getRange","wordWrap","cell","setValue","name","getCell","hAlign","HorizontalAlign","left","right","setRowHeight","protectionOptions","allowOutlineRows","allowOutlineColumns","bindDataTable","forcastIndex","setDataSource","bindColumn","setColumnCount","viewport","setColumnWidth","textIndent","setFormatter","font","style","Style","locked","backColor","borderLeft","LineBorder","LineStyle","thin","borderTop","borderRight","borderBottom","i","setStyle","initSpread","spread","scrollbarMaxAlign","scrollByPixel","tabNavigationVisible","tabStripVisible","scrollbarAppearance","ScrollbarAppearance","mobile","allowUserZoom","allowInsertRows","allowInsertColumns","allowDeleteRows","allowDeleteColumns","allowEditObjects","allowUserDragFill","allowUserDragDrop","allowCopyPasteExcelStyle","rowHeaderVisible","isProtected","defaultStyle","vAlign","VerticalAlign","center","setDefaultStyle","formatDataForSpread","list","result","field","parentId","obj","id","brand","nstGroupName","typeClass","january","february","march","april","may","june","july","august","september","october","november","december","childIds","children","map","child","push","formatDataForTable","oldTableData","spreadJsData","months","forEach","tableRow","excelRow","month","edited","_withScopeId","n","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","render","_ctx","_cache","$props","$setup","$data","$options","_component_a_select_option","_component_a_select","value","bu","$event","placeholder","onChange","findBrandByBu","default","buList","bu1","key","nameEn","_","mode","handleBrandChange","onBlur","selectBrand","brandList","bd","brandNameEn","make","getVehicleItems","makeList","mk","title","typeClassList","tc","powerTrain","powerTrainList","pt","type","$btnPermissions","onClick","handleUpdate","args","props","String","setup","ctx","isEmptyBrand","params","modelName","nst","then","res","buFormat","filter","item","buId","emit","buIds","selectedIdList","totalBrandList","includes","ele","__exports__","getAGManagementData","getTAManagementData","getTDTAManagementData","searchVehicle","getBrand","getProgramCodeList","findProgramCodeList","code","getProgramTANameList","getUser","getScenrioList","removeScenrio","updateScenrioActive","saveScenrio","getKufriList","getPlanningYear","getGuidelinePlanningYear","removePlanning","lockPlanning","createPlanning","downloadFmWsTemplate","planningId","a","get","responseType","exportFmWs","year","uploadPlanningFm","config","post","getQueryDataNumber","getBaseList","saveSimulation","lockSimulation","getCbuWsUploadInfo","kufriVersion","importCbuWs","category","exportCbuWs","downloadCbuWsTemplate","getReopenBuList","updateReopenBus","getGuidelineList","refreshKufri","getGuidelineYear","setBottomUpYear","saveGuideline","refreshBudget","getBottomUpList","refreshKufriBottomUp","saveBottomUp","refreshBudgetBu","getTotalData","getCrBrandList","getCrInfo","getFcInputTypeList","getFcInputBrandList","planningTypeId","getFcInputData","saveFcInputData","getFcInputProposalData","typeId","getArTopicList","getArBrandList","planningType","reportByTopicAndAdjustment","getAfterClosingReport","brandlist","getAdjLabelList","getAdjustmentInfo","headerId","getReleaseInfo","addAdjustmnetLabel","adjustmentNos","newAdjustmentData","adjustmentNo","saveAdjustmentData","getReportOverview","getReportStructureTree","getReportTable2","getReportMonth","getCurrentDealerStock","saveAvgSi","saveAmount","getfutureDealerStock","exportAjustment","exportRelease","exportFcInput","exportCr","exportFinal","initProcess","nextYearData","resetCurrent","currentExport","featureExport","kufriInfo","exportKufri","version","_component_a_checkbox","_component_a_button","_component_a_modal","visible","dialogVisible","onOk","handleOk","onCancel","handleCancle","width","wrapClassName","checked","expandModel","handleClear","handleExport","spreadVisible","Boolean","spreadData","Array","actuals","makeName","LicenseKey","workbook","worksheet","store","excelIo","spinning","route","getDataSource","destroy","initData","query","scenarioName","index","Workbook","document","getElementById","getActiveSheet","bind","Events","EditEnded","s","e","rowIndex","colIndex","col","rowInfo","ClipboardPasted","sender","cellRange","rowCount","colCount","dataRow","indexOf","pasteSkipInvisibleRange","confirm","content","okText","commit","monthList","slice","cancelText","spreadVisibleValue","spreadDataValue","immediate","newValue","includeBindingSource","columnHeadersAsFrozenRows","rowHeadersAsFrozenColumns","json","toJSON","save","blob","saveAs","console","log"],"mappings":"kHAAA,W,oCCAA,mMAEO,SAASA,EAAkBC,GAChCA,EAAMC,cAAcC,QAAQ,CACxBC,YAAa,EACbC,WAAW,EACXC,cAAc,EACdC,gBAAiB,EAAQ,QACzBC,kBAAmB,EAAQ,QAC3BC,SAAU,IAEdR,EAAMS,gBAAe,GACrBT,EAAMC,cAAcS,UAGf,IAAMC,EAAe,SAACX,EAAmCY,EAAcC,GAC5Eb,EAAMc,eAEN,IAAK,IAAIC,EAAM,EAAGA,EAAMH,EAAKI,OAAQD,IACT,IAApBH,EAAKG,GAAKE,OACVjB,EAAMkB,YAAYP,aAAaI,EAAKF,GAG5Cb,EAAMC,cAAcS,UACpBV,EAAMmB,eAIKC,EAAY,SAACpB,EAAmCqB,GAE3DrB,EAAMc,eAENd,EAAMsB,YAAY,EAAG,IAAGC,OAAOC,OAAOC,UAAUC,WAChD,IAAMX,EAAMf,EAAM2B,SAAS,GAAI,EAAG,GAAI,EAAG,IAAGJ,OAAOC,OAAOC,UAAUC,WACpEX,EAAIa,UAAS,GAEb,IAAK,IAAI,EAAM,EAAG,EAAMP,EAAOL,OAAQ,IAAO,CAC5C,IAAK,IAAIa,EAAO,EAAGA,EAAOR,EAAO,GAAKL,OAAQa,IAC5C7B,EAAM8B,SAAS,EAAKD,EAAMR,EAAO,GAAKQ,GAAME,KAAM,IAAGR,OAAOC,OAAOC,UAAUC,WAC7E1B,EAAMgC,QAAQ,EAAKH,EAAM,IAAGN,OAAOC,OAAOC,UAAUC,WAAWO,OAAO,IAAGV,OAAOC,OAAOU,gBAAgBC,MACnGN,EAAO,GACT7B,EAAMgC,QAAQ,EAAKH,EAAM,IAAGN,OAAOC,OAAOC,UAAUC,WAAWO,OAAO,IAAGV,OAAOC,OAAOU,gBAAgBE,OAM3GpC,EAAMqC,aAAa,EAAK,GAAI,IAAGd,OAAOC,OAAOC,UAAUC,WAYzD1B,EAAME,QAAQoC,kBAAkBC,kBAAmB,EACnDvC,EAAME,QAAQoC,kBAAkBE,qBAAsB,EAMtDxC,EAAMmB,eAIKsB,EAAgB,SAACzC,EAAmCY,EAAa8B,GAE5E1C,EAAMc,eAENd,EAAM2C,cAAc/B,GAepBZ,EAAM4C,WAAW,EAAG,SACpB5C,EAAM4C,WAAW,EAAG,aACpB5C,EAAM4C,WAAW,EAAG,gBACpB5C,EAAM4C,WAAW,EAAG,WACpB5C,EAAM4C,WAAW,EAAG,YACpB5C,EAAM4C,WAAW,EAAG,SACpB5C,EAAM4C,WAAW,EAAG,SACpB5C,EAAM4C,WAAW,EAAG,OACpB5C,EAAM4C,WAAW,EAAG,QACpB5C,EAAM4C,WAAW,EAAG,QACpB5C,EAAM4C,WAAW,GAAI,UACrB5C,EAAM4C,WAAW,GAAI,aACrB5C,EAAM4C,WAAW,GAAI,WACrB5C,EAAM4C,WAAW,GAAI,YACrB5C,EAAM4C,WAAW,GAAI,YAGrB5C,EAAM6C,eAAe,GAAI,IAAGtB,OAAOC,OAAOC,UAAUqB,UAGpD9C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,EAAG,MACxB/C,EAAM+C,eAAe,GAAI,MACzB/C,EAAM+C,eAAe,GAAI,MACzB/C,EAAM+C,eAAe,GAAI,MACzB/C,EAAM+C,eAAe,GAAI,MACzB/C,EAAM+C,eAAe,GAAI,MAGzB,IAAK,IAAIhC,EAAM,EAAGA,EAAMH,EAAKI,OAAQD,IAAO,CAC1C,IAAME,EAAQL,EAAKG,GAAKE,MACxBjB,EAAMgC,QAAQjB,EAAK,GAAGiC,WAAW/B,GACjCjB,EAAMgC,QAAQjB,EAAK,GAAGa,UAAS,GAC/B5B,EAAMgC,QAAQjB,EAAK,GAAGkB,OAAO,IAAGV,OAAOC,OAAOU,gBAAgBC,MAC9DnC,EAAMgC,QAAQjB,EAAK,GAAGkB,OAAO,IAAGV,OAAOC,OAAOU,gBAAgBC,MAC9DnC,EAAMgC,QAAQjB,EAAK,GAAGkB,OAAO,IAAGV,OAAOC,OAAOU,gBAAgBC,MAC9DnC,EAAMqC,aAAatB,EAAK,GAAI,IAAGQ,OAAOC,OAAOC,UAAUqB,UACvD9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,EAAG,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAC/D9C,EAAMiD,aAAalC,EAAK,GAAI,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAChE9C,EAAMiD,aAAalC,EAAK,GAAI,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAChE9C,EAAMiD,aAAalC,EAAK,GAAI,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAChE9C,EAAMiD,aAAalC,EAAK,GAAI,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAChE9C,EAAMiD,aAAalC,EAAK,GAAI,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAChE9C,EAAMiD,aAAalC,EAAK,GAAI,QAAS,IAAGQ,OAAOC,OAAOC,UAAUqB,UAGhE9C,EAAMgC,QAAQjB,EAAK,GAAGmC,KAAK,oBAG7B,IAAMC,EAAQ,IAAI,IAAG5B,OAAOC,OAAO4B,MACnCD,EAAME,QAAS,EACfF,EAAMG,UAAY,aAClBH,EAAMI,WAAY,IAAI,IAAGhC,OAAOC,OAAOgC,WAAW,OAAQ,IAAGjC,OAAOC,OAAOiC,UAAUC,MACrFP,EAAMQ,UAAY,IAAI,IAAGpC,OAAOC,OAAOgC,WAAW,OAAQ,IAAGjC,OAAOC,OAAOiC,UAAUC,MACrFP,EAAMS,YAAc,IAAI,IAAGrC,OAAOC,OAAOgC,WAAW,OAAQ,IAAGjC,OAAOC,OAAOiC,UAAUC,MACvFP,EAAMU,aAAe,IAAI,IAAGtC,OAAOC,OAAOgC,WAAW,OAAQ,IAAGjC,OAAOC,OAAOiC,UAAUC,MACxF,IAAK,IAAII,EAAIpB,EAAcoB,EAAI,GAAIA,IACjC9D,EAAM+D,UAAU,EAAGD,EAAI,EAAGX,GAE5BnD,EAAMmB,eAGK6C,EAAa,SAACC,EAAmCjE,EAAmCqB,EAAiBT,EAAa8B,GAC7HuB,EAAOnD,eAGPmD,EAAO/D,QAAQgE,mBAAoB,EACnCD,EAAO/D,QAAQiE,eAAgB,EAE/BF,EAAO/D,QAAQkE,sBAAuB,EACtCH,EAAO/D,QAAQmE,iBAAkB,EAGjCJ,EAAO/D,QAAQoE,oBAAsB,IAAG/C,OAAOC,OAAO+C,oBAAoBC,OAM1ExE,EAAMsB,YAAYV,EAAKI,OAAQ,IAAGO,OAAOC,OAAOC,UAAUqB,UAG1DmB,EAAO/D,QAAQuE,eAAgB,EAE/BzE,EAAME,QAAQoC,kBAAkBC,kBAAmB,EACnDvC,EAAME,QAAQoC,kBAAkBE,qBAAsB,EAKtDxC,EAAME,QAAQoC,kBAAkBoC,iBAAkB,EAClD1E,EAAME,QAAQoC,kBAAkBqC,oBAAqB,EACrD3E,EAAME,QAAQoC,kBAAkBsC,iBAAkB,EAClD5E,EAAME,QAAQoC,kBAAkBuC,oBAAqB,EACrD7E,EAAME,QAAQoC,kBAAkBwC,kBAAmB,EAInDb,EAAO/D,QAAQ6E,mBAAoB,EACnCd,EAAO/D,QAAQ8E,mBAAoB,EAEnCf,EAAO/D,QAAQ+E,0BAA2B,EAG1CjF,EAAME,QAAQgF,kBAAmB,EAEjClF,EAAME,QAAQiF,aAAc,EAE5B,IAAMC,EAAe,IAAI,IAAG7D,OAAOC,OAAO4B,MAE1CgC,EAAanD,OAAS,IAAGV,OAAOC,OAAOU,gBAAgBE,MACvDgD,EAAaC,OAAS,IAAG9D,OAAOC,OAAO8D,cAAcC,OACrDH,EAAa/B,QAAS,EACtBrD,EAAMwF,gBAAgBJ,GAEtB3C,EAAczC,EAAOY,EAAM8B,GAG3BtB,EAAUpB,EAAOqB,GAEjB4C,EAAO9C,eAGIsE,EAAsB,SAACC,EAAWzE,EAAW0E,EAAoBC,EAA4BC,G,mCAA3D,IAAA5E,MAAA,QAAW,IAAA0E,MAAA,SAAoB,IAAAC,MAAA,yBAA4B,IAAAC,MAAA,MACxG,IAAK,IAAI/B,EAAI,EAAGA,EAAI4B,EAAK1E,OAAQ8C,IAAK,CACpC,IAAMgC,EAAM,CACV7E,MAAOA,EACP8E,GAAIL,EAAK5B,GAAGiC,GACZC,MAAON,EAAK5B,GAAGkC,OAAS,GACxBC,aAAcP,EAAK5B,GAAGmC,cAAgB,GACtCC,UAAWR,EAAK5B,GAAGoC,WAAa,GAChCC,QAAsC,QAAd,QAAf,EAAAT,EAAK5B,GAAGqC,eAAO,eAAGP,IAAkB,KAAOF,EAAK5B,GAAGqC,QAAQP,GAAS,IAC7EQ,SAAwC,QAAd,QAAhB,EAAAV,EAAK5B,GAAGsC,gBAAQ,eAAGR,IAAkB,KAAOF,EAAK5B,GAAGsC,SAASR,GAAS,IAChFS,MAAkC,QAAd,QAAb,EAAAX,EAAK5B,GAAGuC,aAAK,eAAGT,IAAkB,KAAOF,EAAK5B,GAAGuC,MAAMT,GAAS,IACvEU,MAAkC,QAAd,QAAb,EAAAZ,EAAK5B,GAAGwC,aAAK,eAAGV,IAAkB,KAAOF,EAAK5B,GAAGwC,MAAMV,GAAS,IACvEW,IAA8B,QAAd,QAAX,EAAAb,EAAK5B,GAAGyC,WAAG,eAAGX,IAAkB,KAAOF,EAAK5B,GAAGyC,IAAIX,GAAS,IACjEY,KAAgC,QAAd,QAAZ,EAAAd,EAAK5B,GAAG0C,YAAI,eAAGZ,IAAkB,KAAOF,EAAK5B,GAAG0C,KAAKZ,GAAS,IACpEa,KAAgC,QAAd,QAAZ,EAAAf,EAAK5B,GAAG2C,YAAI,eAAGb,IAAkB,KAAOF,EAAK5B,GAAG2C,KAAKb,GAAS,IACpEc,OAAoC,QAAd,QAAd,EAAAhB,EAAK5B,GAAG4C,cAAM,eAAGd,IAAkB,KAAOF,EAAK5B,GAAG4C,OAAOd,GAAS,IAC1Ee,UAA0C,QAAd,QAAjB,EAAAjB,EAAK5B,GAAG6C,iBAAS,eAAGf,IAAkB,KAAOF,EAAK5B,GAAG6C,UAAUf,GAAS,IACnFgB,QAAsC,QAAd,QAAf,EAAAlB,EAAK5B,GAAG8C,eAAO,eAAGhB,IAAkB,KAAOF,EAAK5B,GAAG8C,QAAQhB,GAAS,IAC7EiB,SAAwC,QAAd,QAAhB,EAAAnB,EAAK5B,GAAG+C,gBAAQ,eAAGjB,IAAkB,KAAOF,EAAK5B,GAAG+C,SAASjB,GAAS,IAChFkB,SAAwC,QAAd,QAAhB,EAAApB,EAAK5B,GAAGgD,gBAAQ,eAAGlB,IAAkB,KAAOF,EAAK5B,GAAGgD,SAASlB,GAAS,IAChFmB,SAA0B,QAAhB,EAAArB,EAAK5B,GAAGkD,gBAAQ,eAAEC,KAAI,SAACC,GAAe,OAAAA,EAAMnB,MACtDF,SAAUA,GAEZF,EAAOwB,KAAKrB,GACRJ,EAAK5B,GAAGkD,UAAYtB,EAAK5B,GAAGkD,SAAShG,OAAS,GAChDyE,EAAoBC,EAAK5B,GAAGkD,SAAU,EAAGrB,EAAQC,EAAOF,EAAK5B,GAAGiC,IAGpE,OAAOJ,GAGIyB,EAAqB,SAACC,EAAqBC,EAAqB1B,QAAA,IAAAA,MAAA,oBAC3E,IAAM2B,EAAS,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAC9HF,EAAaG,SAAQ,SAAAC,GACnBH,EAAaE,SAAQ,SAAAE,GAEfA,EAAS3B,KAAO0B,EAAS1B,IAC3BwB,EAAOC,SAAQ,SAACG,GACVD,EAASC,IAA8B,IAApBD,EAASC,IAC1BF,EAASE,GAAO/B,KAA6B,IAAlB8B,EAASC,KACtCF,EAASE,GAAOC,QAAS,GAE3BH,EAASE,GAAO/B,GAA2B,IAAlB8B,EAASC,KAE9BF,EAASE,GAAO/B,IAAqC,IAA3B6B,EAASE,GAAO/B,MAC5C6B,EAASE,GAAO/B,GAAS8B,EAASC,GAClCF,EAASE,GAAOC,QAAS,SAM/BH,EAAST,UAAYS,EAAST,SAAShG,OAAS,GAClDoG,EAAmBK,EAAST,SAAUM,EAAc1B,Q,gECrRpDiC,EAAe,SAAAC,GAAK,OAAC,yBAAa,mBAAmBA,EAAEA,IAAI,0BAAcA,GACzEC,EAAa,CAAEC,MAAO,aACtBC,EAAa,CAAE9E,MAAO,CAAC,QAAU,SACjC+E,EAA2BL,GAAa,WAAmB,uCAAoB,OAAQ,CAAEG,MAAO,SAAW,MAAO,MAClHG,EAA2BN,GAAa,WAAmB,uCAAoB,OAAQ,CAAEG,MAAO,SAAW,SAAU,MACrHI,EAA2BP,GAAa,WAAmB,uCAAoB,OAAQ,CAAEG,MAAO,SAAW,QAAS,MACpHK,EAA2BR,GAAa,WAAmB,uCAAoB,OAAQ,CAAEG,MAAO,SAAW,cAAe,MAC1HM,EAA2BT,GAAa,WAAmB,uCAAoB,OAAQ,CAAEG,MAAO,SAAW,eAAgB,MAE1H,SAASO,EAAOC,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,IAAMC,EAA6B,8BAAkB,mBAC/CC,EAAsB,8BAAkB,YAE9C,OAAQ,yBAAc,gCAAoB,MAAOhB,EAAY,CAC3D,gCAAoB,MAAOE,EAAY,CACrC,gCAAoB,MAAO,KAAM,CAC/BC,EACA,yBAAaa,EAAqB,CAChCC,MAAOR,EAAKS,GACZ,iBAAkBR,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAO,GAAIU,IAC1ElB,MAAO,gBACPmB,YAAa,gBACbC,SAAUZ,EAAKa,eACd,CACDC,QAAS,sBAAS,WAAM,QACrB,wBAAW,GAAO,gCAAoB,cAAW,KAAM,wBAAYd,EAAKe,QAAQ,SAACC,GAChF,OAAQ,yBAAc,yBAAaV,EAA4B,CAC7DE,MAAOQ,EAAIzD,GACX0D,IAAKD,EAAIzD,IACR,CACDuD,QAAS,sBAAS,WAAM,OACtB,6BAAiB,6BAAiBE,EAAIE,QAAS,OAEjDC,EAAG,GACF,KAAM,CAAC,aACR,UAENA,EAAG,GACF,EAAG,CAAC,QAAS,eAElB,gCAAoB,MAAO,KAAM,CAC/BxB,EACA,yBAAaY,EAAqB,CAChCa,KAAM,WACNZ,MAAOR,EAAKxC,MACZ,iBAAkByC,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAU,MAAIU,IAC7ElB,MAAO,eACPmB,YAAa,gBACbC,SAAUZ,EAAKqB,kBACfC,OAAQrB,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAACV,EAAKuB,iBACxD,CACDT,QAAS,sBAAS,WAAM,QACrB,wBAAW,GAAO,gCAAoB,cAAW,KAAM,wBAAYd,EAAKwB,WAAW,SAACC,GACnF,OAAQ,yBAAc,yBAAanB,EAA4B,CAC7DE,MAAOiB,EAAGC,YACVT,IAAKQ,EAAGlE,IACP,CACDuD,QAAS,sBAAS,WAAM,OACtB,6BAAiB,6BAAiBW,EAAGC,aAAc,OAErDP,EAAG,GACF,KAAM,CAAC,aACR,UAENA,EAAG,GACF,EAAG,CAAC,QAAS,eAElB,gCAAoB,MAAO,KAAM,CAC/BvB,EACA,yBAAaW,EAAqB,CAChCa,KAAM,WACNZ,MAAOR,EAAK2B,KACZ,iBAAkB1B,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAS,KAAIU,IAC5EC,YAAa,gBACbnB,MAAO,eACP8B,OAAQtB,EAAK4B,iBACZ,CACDd,QAAS,sBAAS,WAAM,QACrB,wBAAW,GAAO,gCAAoB,cAAW,KAAM,wBAAYd,EAAK6B,UAAU,SAACC,GAClF,OAAQ,yBAAc,yBAAaxB,EAA4B,CAC7DE,MAAOsB,EACPb,IAAKa,EACLC,MAAOD,GACN,CACDhB,QAAS,sBAAS,WAAM,OACtB,6BAAiB,6BAAiBgB,GAAK,OAEzCX,EAAG,GACF,KAAM,CAAC,QAAS,aACjB,UAENA,EAAG,GACF,EAAG,CAAC,QAAS,aAElB,gCAAoB,MAAO,KAAM,CAC/BtB,EACA,yBAAaU,EAAqB,CAChCa,KAAM,WACNZ,MAAOR,EAAKtC,UACZ,iBAAkBuC,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAc,UAAIU,IACjFC,YAAa,gBACbnB,MAAO,eACP8B,OAAQtB,EAAK4B,iBACZ,CACDd,QAAS,sBAAS,WAAM,QACrB,wBAAW,GAAO,gCAAoB,cAAW,KAAM,wBAAYd,EAAKgC,eAAe,SAACC,GACvF,OAAQ,yBAAc,yBAAa3B,EAA4B,CAC7DE,MAAOyB,EACPhB,IAAKgB,EACLF,MAAOE,GACN,CACDnB,QAAS,sBAAS,WAAM,OACtB,6BAAiB,6BAAiBmB,GAAK,OAEzCd,EAAG,GACF,KAAM,CAAC,QAAS,aACjB,UAENA,EAAG,GACF,EAAG,CAAC,QAAS,aAElB,gCAAoB,MAAO,KAAM,CAC/BrB,EACA,yBAAaS,EAAqB,CAChCa,KAAM,WACNZ,MAAOR,EAAKkC,WACZ,iBAAkBjC,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAe,WAAIU,IAClFC,YAAa,gBACbnB,MAAO,eACP8B,OAAQtB,EAAK4B,iBACZ,CACDd,QAAS,sBAAS,WAAM,QACrB,wBAAW,GAAO,gCAAoB,cAAW,KAAM,wBAAYd,EAAKmC,gBAAgB,SAACC,GACxF,OAAQ,yBAAc,yBAAa9B,EAA4B,CAC7DE,MAAO4B,EACPnB,IAAKmB,EACLL,MAAOK,GACN,CACDtB,QAAS,sBAAS,WAAM,OACtB,6BAAiB,6BAAiBsB,GAAK,OAEzCjB,EAAG,GACF,KAAM,CAAC,QAAS,aACjB,UAENA,EAAG,GACF,EAAG,CAAC,QAAS,eAGJ,cAAdnB,EAAKqC,MAAwBrC,EAAKsC,gBAAgB,SAAU,aAA+B,aAAdtC,EAAKqC,MAAuBrC,EAAKsC,gBAAgB,SAAU,aACrI,yBAAc,gCAAoB,IAAK,CACtCrB,IAAK,EACLzB,MAAO,kCACP7E,MAAO,CAAC,YAAY,QACpB4H,QAAStC,EAAO,KAAOA,EAAO,GAExC,W,IAAC,sDAAY,OAACD,EAAKwC,cAAgBxC,EAAKwC,aAAY,MAAjBxC,EAAI,iCAAiByC,UAEhD,gCAAoB,IAAI,K,gBClJjB,+BAAgB,CAC7BC,MAAO,CACLL,KAAM,CACJA,KAAMM,SAGVC,MAAA,SAAMF,EAAOG,GACX,IAAMpC,EAAK,iBAAmB,MACxBM,EAAS,iBAAW,IAEpBY,EAAO,iBAAc,IACrBE,EAAW,iBAAc,IAEzBrE,EAAQ,iBAAc,IACtBgE,EAAY,iBAAiB,IAE7B9D,EAAY,iBAAc,IAC1BsE,EAAgB,iBAAc,IAE9BE,EAAa,iBAAc,IAC3BC,EAAiB,iBAAc,IAE/BW,EAAe,kBAAa,GAE5BlB,EAAkB,W,MACtB,GAA4B,KAAb,QAAX,EAAApE,EAAMgD,aAAK,eAAEhI,QAAjB,CAGA,IAAMuK,EAAS,CACbvF,MAAOA,EAAMgD,MACbmB,KAAMA,EAAKnB,MAEXwC,UAAW,GACXC,IAAK,GACLvF,UAAWA,EAAU8C,MACrB0B,WAAYA,EAAW1B,OAEzB,eAAcuC,GAAQG,MAAK,SAACC,GAC1BtB,EAASrB,MAAQ2C,EAAIxB,KACrBQ,EAAe3B,MAAQ2C,EAAIjB,WAC3BF,EAAcxB,MAAQ2C,EAAIzF,eAIxB2D,EAAoB,W,MACI,KAAb,QAAX,EAAA7D,EAAMgD,aAAK,eAAEhI,UACfmJ,EAAKnB,MAAQ,GACb9C,EAAU8C,MAAQ,GAClB0B,EAAW1B,MAAQ,KAIjBe,EAAc,WAClBuB,EAAatC,MAAwB,OAAhBhD,EAAMgD,MAC3BmB,EAAKnB,MAAQ,GAEb0B,EAAW1B,MAAQ,GACnB9C,EAAU8C,MAAQ,GAClBqB,EAASrB,MAAQ,GACjBwB,EAAcxB,MAAQ,GACtB2B,EAAe3B,MAAQ,GACvBoB,KAGIY,EAAe,WACnB,IAAMY,EAAWrC,EAAOP,MAAM6C,QAAO,SAAAC,GACnC,OAAOA,EAAK/F,KAAOkD,EAAGD,SACrB/B,KAAI,SAAA6E,GACL,OAAOA,EAAKpC,UACX,GACG9I,EAAY,CAChBqI,GAAI2C,EACJG,KAAM9C,EAAGD,MACTqB,SAAUF,EAAKnB,MACfgB,UAAWhE,EAAMgD,MACjBwB,cAAetE,EAAU8C,MACzB2B,eAAgBD,EAAW1B,OAEN,OAAnBpI,EAAKoJ,kBACApJ,EAAKoJ,UAEdqB,EAAIW,KAAK,SAAUpL,IAGfyI,EAAgB,WACpB,IAAMkC,EAAS,CAAEU,MAAO,CAAChD,EAAGD,QAC5B,eAAS,CAAEuC,OAAM,IAAIG,MAAK,SAACC,GACzB,IAAMO,EAA2B,GAC3BC,EAIA,GACNR,EAAInE,SAAQ,SAACyB,GACXA,EAAGe,UAAUxC,SAAQ,SAACxB,GACfkG,EAAeE,SAASpG,EAAMD,MACjCmG,EAAe/E,KAAKnB,EAAMD,IAC1BoG,EAAehF,KAAKnB,UAI1BgE,EAAUhB,MAAQmD,EAClBnG,EAAMgD,MAAQ,GACdmB,EAAKnB,MAAQ,GACb0B,EAAW1B,MAAQ,GACnB9C,EAAU8C,MAAQ,GAClBqB,EAASrB,MAAQ,GACjBwB,EAAcxB,MAAQ,GACtB2B,EAAe3B,MAAQ,GACvBgC,QAmBJ,OAdA,wBAAU,WACR,iBACGU,MAAK,SAACC,GACLpC,EAAOP,MAAQ2C,EAAIpC,OAAOsC,QAAO,SAACQ,GAC9B,OAAwB,OAAjBA,EAAIxG,UAAoC,QAAfwG,EAAI3C,QAAmC,UAAf2C,EAAI3C,QAAqC,eAAf2C,EAAI3C,UAE1FT,EAAGD,MAAQO,EAAOP,MAAM,GAAGjD,MAG5B2F,MAAK,WACJ,OAAOrC,UAIN,CACLJ,GAAE,EACFM,OAAM,EACNY,KAAI,EACJE,SAAQ,EACRrE,MAAK,EACLgE,UAAS,EACT9D,UAAS,EACTsE,cAAa,EACbE,WAAU,EACVC,eAAc,EACdW,aAAY,EACZjC,cAAa,EACbQ,kBAAiB,EACjBE,YAAW,EACXiB,aAAY,EACZZ,gBAAe,M,iCCvJrB,MAAMkC,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS/D,GAAQ,CAAC,YAAY,qBAE1E,U,oCCTf,W,kCCAA,kUAWagE,EAAsB,SAC/BhB,GAEA,OAAO,eAAU,8CAA+CA,IAIvDiB,EAAsB,SAC/BjB,GAEA,OAAO,eAAU,kDAAmDA,IAI3DkB,EAAwB,SACjClB,GAEA,OAAO,eAAU,wBAAyBA,IAIjCmB,EAAgB,SAACnB,GAC1B,OAAO,eAAU,gCAAiCA,IAIzCoB,EAAW,SAACpB,GACrB,OAAO,eAAS,6BAA8BA,IAIrCqB,EAAqB,SAACrB,GAC/B,OAAO,eAAS,0CAA2C,CAAEA,OAAM,KAI1DsB,EAAsB,SAACd,EAAce,GAC9C,OAAO,eAAS,2CAA4C,CAC1DvB,OAAQ,CACNQ,KAAI,EACJe,KAAI,MAMCC,EAAuB,SAACxB,GACjC,OAAO,eAAS,4CAA6C,CAAEA,OAAM,KAI5DyB,EAAU,WACnB,OAAO,eAAS,8B,mgFC3CPC,EAAiB,SAAC1B,GAC3B,YAD2B,IAAAA,MAAA,IACpB,eAAa,sBAAuB,CAACA,OAAM,KAGzC2B,EAAgB,SAAC3B,GAC1B,OAAO,eAAU,yBAAyBA,IAGjC4B,EAAsB,SAAC5B,GAChC,YADgC,IAAAA,MAAA,IACzB,eAAU,oCAAqCA,IAG7C6B,EAAc,SAAC7B,GACxB,YADwB,IAAAA,MAAA,IACjB,eAAU,sBAAuBA,IAG/B8B,EAAe,SAAC9B,GACzB,YADyB,IAAAA,MAAA,IAClB,eAAa,qCAAsC,CAACA,OAAM,KAGxD+B,EAAkB,SAAC/B,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAa,4CAA6C,CAACA,OAAM,KAG/DgC,EAA2B,SAAChC,GACrC,YADqC,IAAAA,MAAA,IAC9B,eAAa,qDAAsD,CAACA,OAAM,KAGxEiC,EAAiB,SAACjC,GAC3B,OAAO,eAAU,oCAAsCA,IAG9CkC,EAAe,SAAClC,GACzB,YADyB,IAAAA,MAAA,IAClB,eAAU,iCAAkCA,IAG1CmC,EAAiB,SAACnC,GAC3B,YAD2B,IAAAA,MAAA,IACpB,eAAU,iCAAkCA,IAG1CoC,EAAuB,SAACC,GACjC,OAAO,EAAAC,EAAMC,IAAI,sCAAsCF,EAAc,CACjEG,aAAc,UAITC,EAAa,SAAC7D,EAAc8D,GACrC,OAAO,EAAAJ,EAAMC,IAAI,yCAAyC3D,EAAI,SAAS8D,EAAQ,CAC3EF,aAAc,UAITG,EAAmB,SAAC3C,EAAapB,EAAc8D,EAAcE,GACtE,YAD6B,IAAA5C,MAAA,SAAyC,IAAA4C,MAAA,IAC/D,EAAAN,EAAMO,KAAK,oCAAoCjE,EAAI,IAAI8D,EAAQ1C,EAAQ,iCACvE4C,GAAM,CACTJ,aAAc,WAITM,EAAqB,SAAC9C,GAC/B,YAD+B,IAAAA,MAAA,IACxB,eAAa,kDAAmD,CAACA,OAAM,KAKrE+C,EAAc,SAAC/C,GACxB,YADwB,IAAAA,MAAA,IACjB,eAAa,qCAAsC,CAACA,OAAM,KAGxDgD,EAAiB,SAAChD,GAC3B,YAD2B,IAAAA,MAAA,IACpB,eAAU,2CAA4CA,IAGpDiD,EAAiB,SAACjD,GAC3B,YAD2B,IAAAA,MAAA,IACpB,eAAU,2CAA4CA,IAgBpDkD,EAAqB,SAACtE,EAAcuE,GAC/C,OAAO,eAAS,yCAA0C,CAAEnD,OAAQ,CAAEpB,KAAI,EAAEuE,aAAY,MAI7EC,EAAc,SAACxE,EAAc8D,EAAcL,EAAoBgB,EAAyBF,EAAsBnD,EAAkB4C,GACzI,YADyI,IAAAA,MAAA,IAClI,EAAAN,EAAMO,KAAK,gCAAgCjE,EAAI,IAAI8D,EAAI,IAAIS,EAAY,IAAId,EAAU,IAAIgB,EAAYrD,EAAQ,iCAC7G4C,GAAM,CACTJ,aAAc,WAKTc,EAAc,SAACjB,EAAoBgB,GAC5C,OAAO,EAAAf,EAAMC,IAAI,gCAAgCF,EAAU,IAAIgB,EAAY,CACvEb,aAAc,UAKTe,EAAwB,SAACF,GAClC,OAAO,EAAAf,EAAMC,IAAI,kCAAkCc,EAAY,CAC3Db,aAAc,UAOTgB,EAAkB,SAACxD,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAa,2CAA4C,CAACA,OAAM,KAG9DyD,EAAkB,SAACzD,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAU,2CAA4CA,IAGpD0D,EAAmB,SAAC1D,GAC7B,YAD6B,IAAAA,MAAA,IACtB,eAAa,iCAAkC,CAACA,OAAM,KAGpD2D,EAAe,SAAC3D,GACzB,YADyB,IAAAA,MAAA,IAClB,eAAa,oCAAqC,CAACA,OAAM,KAIvD4D,EAAmB,SAAC5D,GAC7B,YAD6B,IAAAA,MAAA,IACtB,eAAa,6CAA8C,CAACA,OAAM,KAIhE6D,EAAkB,SAAC7D,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAU,4CAA6CA,IAIrD8D,EAAgB,SAAC9D,GAC1B,YAD0B,IAAAA,MAAA,IACnB,eAAU,iCAAkCA,IAI1C+D,EAAgB,SAAC/D,GAC1B,YAD0B,IAAAA,MAAA,IACnB,eAAa,0CAA2C,CAACA,OAAM,KAM7DgE,EAAkB,SAAChE,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAa,gCAAiC,CAACA,OAAM,KAGnDiE,EAAuB,SAACjE,GACjC,YADiC,IAAAA,MAAA,IAC1B,eAAa,mCAAoC,CAACA,OAAM,KAItDkE,EAAe,SAAClE,GACzB,YADyB,IAAAA,MAAA,IAClB,eAAU,gCAAiCA,IAIzCmE,EAAkB,SAACnE,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAa,yCAA0C,CAACA,OAAM,KAM5DoE,EAAe,SAAC/B,EAAoBc,GAC7C,OAAO,eAAS,sCAAuC,CAAEnD,OAAQ,CAAEqC,WAAU,EAAEc,aAAY,MAIlFkB,EAAiB,SAAChC,EAAoBc,GAC/C,OAAO,eAAS,kCAAmC,CAAEnD,OAAQ,CAAEqC,WAAU,EAAEc,aAAY,MAG9EmB,EAAY,SAAC7F,EAAqB4D,EAAoBc,GAC/D,OAAO,eAAS,0BAA2B,CAAEnD,OAAQ,CAAEvB,UAAS,EAAE4D,WAAU,EAAEc,aAAY,MAIjFoB,EAAqB,WAC9B,OAAO,eAAS,0CAGPC,EAAsB,SAACnC,EAAoBc,EAAsBsB,GAC1E,OAAO,eAAS,yCAA0C,CAAEzE,OAAQ,CAAEqC,WAAU,EAAEc,aAAY,EAAEsB,eAAc,MAGrGC,EAAiB,SAACjG,EAAqB4D,EAAoBc,EAAsBsB,GAC1F,OAAO,eAAU,2CAA4C,CACzDhG,UAAS,EACT0E,aAAY,EACZd,WAAU,EACVoC,eAAc,KAKTE,EAAkB,SAACtP,GAC5B,OAAO,eAAU,+BAAgCA,IAIxCuP,EAAyB,SAACvC,EAAoBjG,EAAeyI,EAAgB1B,GACtF,OAAO,eAAS,gDAAiD,CAAEnD,OAAQ,CAAEqC,WAAU,EAAEjG,MAAK,EAAEyI,OAAM,EAAE1B,aAAY,MAI3G2B,EAAiB,SAACzC,GAC3B,OAAO,eAAS,+BAAgC,CAAErC,OAAQ,CAAEqC,WAAU,MAI7D0C,EAAiB,SAAC1C,EAAoBc,EAAsB6B,GACvE,OAAO,eAAS,+BAAgC,CAAEhF,OAAQ,CAAEqC,WAAU,EAAEc,aAAY,EAAE6B,aAAY,MAIvFC,EAA6B,SAAC5C,EAAoBc,GAC7D,OAAO,eAAS,gDAAiD,CAAEnD,OAAQ,CAAEqC,WAAU,EAAEc,aAAY,MAI1F+B,EAAwB,SAAC7C,EAAoB8C,GACxD,OAAO,eAAS,wCAAyC,CAAEnF,OAAQ,CAAEqC,WAAU,EAAE8C,UAAS,MAI/EC,EAAkB,SAAC/C,EAAoBc,GAClD,OAAO,eAAS,kCAAmC,CAAEnD,OAAQ,CAAEqC,WAAU,EAAEc,aAAY,MAI5EkC,EAAoB,SAAC5G,EAAqB6G,GACrD,OAAO,eAAS,oCAAqC,CAAEtF,OAAQ,CAAEvB,UAAS,EAAE6G,SAAQ,MAIzEC,GAAiB,SAAC9G,EAAqB4D,EAAoBc,GACtE,OAAO,eAAS,iCAAkC,CAAEnD,OAAQ,CAAEvB,UAAS,EAAE4D,WAAU,EAAEc,aAAY,MAItFqC,GAAqB,SAACnD,EAAoBc,EAAsBsC,GAC3E,OAAO,eAAU,wCAAyC,GAAI,CAAEzF,OAAQ,CAACqC,WAAU,EAAEc,aAAY,EAAEsC,cAAa,MAIrGC,GAAoB,SAACjH,EAAqB4D,EAAoBc,EAAsBwC,GAC/F,OAAO,eAAS,uCAAwC,CAAE3F,OAAQ,CAAEvB,UAAS,EAAE4D,WAAU,EAAEc,aAAY,EAAEwC,aAAY,MAI1GC,GAAqB,SAACvQ,GACjC,OAAO,eAAU,0BAA2BA,IAIjCwQ,GAAoB,SAAC7F,GAChC,YADgC,IAAAA,MAAA,IACzB,eAAa,uCAAwC,CAACA,OAAM,KAIxD8F,GAAyB,WACpC,OAAO,eAAS,iCAILC,GAAkB,SAAC/F,GAC5B,YAD4B,IAAAA,MAAA,IACrB,eAAa,qCAAsC,CAACA,OAAM,KAIxDgG,GAAiB,SAAChG,GAC3B,YAD2B,IAAAA,MAAA,IACpB,eAAa,oCAAqC,CAACA,OAAM,KAIvDiG,GAAwB,SAACjG,GAClC,YADkC,IAAAA,MAAA,IAC3B,eAAa,iBAAkB,CAACA,OAAM,KAIpCkG,GAAY,SAAC7Q,GACtB,OAAO,eAAU,2BAA4BA,IAIpC8Q,GAAa,SAAC9Q,GACvB,OAAO,eAAU,4BAA6BA,IAIrC+Q,GAAuB,SAACpG,GACjC,YADiC,IAAAA,MAAA,IAC1B,eAAa,gBAAiB,CAACA,OAAM,KAKnCqG,GAAkB,SAAChR,GAC5B,OAAO,EAAAiN,EAAMO,KAAK,oCAAqC,GAAI,CACvD7C,OAAQ3K,EACRmN,aAAc,UAIT8D,GAAgB,SAACjR,GAC1B,OAAO,EAAAiN,EAAMO,KAAK,oCAAoC,GAAI,CACtD7C,OAAQ3K,EACRmN,aAAc,UAIT+D,GAAe,SAAClR,GACzB,OAAO,EAAAiN,EAAMO,KAAK,sCAAsCxN,EAAM,CAC1DmN,aAAc,UAITgE,GAAU,SAACnR,GACpB,OAAO,EAAAiN,EAAMO,KAAK,iCAAiC,GAAI,CACnD7C,OAAQ3K,EACRmN,aAAc,UAITiE,GAAa,SAACpR,GACvB,OAAO,EAAAiN,EAAMO,KAAK,2CAA4C,GAAI,CAC9D7C,OAAQ3K,EACRmN,aAAc,UAKTkE,GAAa,SAAC1G,GACvB,OAAO,eAAa,sCAAuC,CAACA,OAAM,KAIzD2G,GAAc,SAAC3G,GACxB,OAAO,eAAa,yCAA0C,CAACA,OAAM,KAI5D4G,GAAc,SAAC5G,GACxB,OAAO,eAAa,uBAAwB,CAACA,OAAM,KAI1C6G,GAAe,SAAC7G,GACzB,OAAO,EAAAsC,EAAMC,IAAI,wBAAyB,CACtCvC,OAAQA,EACRwC,aAAc,UAKTsE,GAAe,SAAC9G,GACzB,OAAO,EAAAsC,EAAMO,KAAK,4BAA6B,GAAI,CAC/C7C,OAAQA,EACRwC,aAAc,UAITuE,GAAY,SAAC1E,GACtB,OAAO,eAAS,6BAA8B,CAC5CrC,OAAQ,CACNqC,WAAU,MAKL2E,GAAc,SAACpI,EAAcqI,EAAiBvE,EAAcpD,GACrE,OAAO,EAAAgD,EAAMC,IAAI,gCAAgCjD,EAAQ,CACrDU,OAAQ,CACNpB,KAAI,EACJqI,QAAO,EACPvE,KAAI,GAENF,aAAc,W,yEC1ZhBhG,EAAa,CAAEC,MAAO,WACtBC,EAA0B,6BAAiB,mBAC3CC,EAA0B,6BAAiB,uBAC3CC,EAA0B,6BAAiB,UAC3CC,EAA0B,gCAAoB,MAAO,CAAErC,GAAI,UAAY,MAAO,GAE7E,SAASwC,EAAOC,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,IAAM4J,EAAwB,8BAAkB,cAC1CC,EAAsB,8BAAkB,YACxCC,EAAqB,8BAAkB,WAE7C,OAAQ,yBAAc,yBAAaA,EAAoB,CACrDpI,MAAO,cACPqI,QAASpK,EAAKqK,cACd,mBAAoBpK,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAkB,cAAIU,IACvF4J,KAAMtK,EAAKuK,SACXC,SAAUxK,EAAKyK,aACfC,MAAO,OACPC,cAAe,cACd,CACD7J,QAAS,sBAAS,WAAM,OACtB,gCAAoB,MAAOvB,EAAY,CACrC,yBAAa0K,EAAuB,CAClCzK,MAAO,wBACPoL,QAAS5K,EAAK6K,YACd,mBAAoB5K,EAAO,KAAOA,EAAO,GAAK,SAACS,GAAgB,OAAEV,EAAgB,YAAIU,IACrF/F,MAAO,CAAC,gBAAgB,SACvB,CACDmG,QAAS,sBAAS,WAAM,OACtBrB,MAEF0B,EAAG,GACF,EAAG,CAAC,YACP,gCAAoB,MAAO,KAAM,CAC/B,yBAAa+I,EAAqB,CAChC7H,KAAM,UACN1H,MAAO,CAAC,eAAe,QACvB4H,QAASvC,EAAK8K,aACb,CACDhK,QAAS,sBAAS,WAAM,OACtBpB,MAEFyB,EAAG,GACF,EAAG,CAAC,YACP,yBAAa+I,EAAqB,CAChC7H,KAAM,UACNE,QAASvC,EAAK+K,cACb,CACDjK,QAAS,sBAAS,WAAM,OACtBnB,MAEFwB,EAAG,GACF,EAAG,CAAC,gBAGXvB,MAEFuB,EAAG,GACF,EAAG,CAAC,UAAW,OAAQ,a,sHClDb,+BAAgB,CAC7BuB,MAAO,CACLsI,cAAe,CACb3I,KAAM4I,SAERC,WAAY,CACV7I,KAAM8I,OAERC,QAAS,CACP/I,KAAM8I,OAER/N,MAAO,CACLiF,KAAMM,QAER8C,KAAM,CACJpD,KAAMM,QAER0I,SAAU,CACRhJ,KAAMM,SAGVC,MAAA,SAAMF,EAAOG,GACX,IAAG9J,OAAOC,OAAOsS,WAAc,gBAA6B,omCAE5D,IAYIC,EAEAC,EAEApT,EAhBEqT,EAAQ,iBAERC,EAAU,IAAI,QAEdC,EAAW,kBAAa,GAExBC,EAAa,iBAEbf,EAAc,kBAAa,GAE3BR,EAAgB,kBAAa,GAQ7BE,EAAW,WACf,IAAMnS,EAAgB,OAAToT,QAAS,IAATA,OAAS,EAATA,EAAWK,gBACxBhJ,EAAIW,KAAK,SAAUpL,GACnByK,EAAIW,KAAK,SACTqH,EAAYrK,OAAQ,EACZ,OAAR+K,QAAQ,IAARA,KAAUO,WAGNrB,EAAe,WACnB5H,EAAIW,KAAK,SACTqH,EAAYrK,OAAQ,EACZ,OAAR+K,QAAQ,IAARA,KAAUO,WAGNC,EAAW,SAAC3T,G,cACVS,EAAkB,C,gBAEpB,CACEU,KAAMmJ,EAAM2I,UAEd,CACE9R,KAAMqS,EAAMI,MAAMC,cAEpB,CACE1S,KAAM,K,eAMN,QAJE,EAAa,QAAb,EAAAmJ,EAAM0I,eAAO,eAAE3M,KAAI,SAAA6E,GACrB,MAAO,CACL/J,KAAM+J,EAAO,SAAW,sBAE1B,QAAI,K,gBAGN,CACE/J,KAAM,SAER,CACEA,KAAM,cAER,CACEA,KAAM,U,eAMN,QAJE,EAAa,QAAb,EAAAmJ,EAAM0I,eAAO,eAAE3M,KAAI,SAAC6E,EAAM4I,GAC5B,MAAO,CACL3S,KAASmJ,EAAM+C,KAAI,KAAIyG,EAAQ,EAAI,IAAM,KAAKA,EAAQ,cAExD,QAAI,MAGJzQ,EAAS,IAAI,IAAG1C,OAAOC,OAAOmT,SAASC,SAASC,eAAe,WAE/D7U,EAAQiE,EAAO6Q,iBACrB9U,EAAM+U,KAAK,IAAGxT,OAAOC,OAAOwT,OAAOC,WAAW,SAAUC,EAAQC,GAC9D,IAAMxN,EAAQ,CAAC,GAAI,GAAI,GAAI,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACnI/G,EAAgB,OAAToT,QAAS,IAATA,OAAS,EAATA,EAAWK,gBAClBe,EAAWD,EAAEpU,IACbsU,EAAWF,EAAEG,IAEbC,EAAU3U,EAAKwU,GACfpM,EAAQuM,EAAQ5N,EAAM0N,IACtBtO,EAAWwO,EAAQxO,SAErBA,GAAYA,EAAS/F,OAAS,IAChCJ,EAAK4G,SAAQ,SAACzG,IACA,OAARgG,QAAQ,IAARA,OAAQ,EAARA,EAAUqF,SAASrL,EAAIgF,OACzBhF,EAAI4G,EAAM0N,IAAarM,MAGlB,OAATgL,QAAS,IAATA,KAAWrR,cAAc/B,IAEvB2U,EAAQ1P,WACVjF,EAAK4G,SAAQ,SAACzG,GACRA,EAAIgF,KAAOwP,EAAQ1P,WACrB9E,EAAI4G,EAAM0N,IAAa,SAGlB,OAATrB,QAAS,IAATA,KAAWrR,cAAc/B,OAI7BZ,EAAM+U,KAAK,IAAGxT,OAAOC,OAAOwT,OAAOQ,iBAAiB,SAAUC,EAAaxK,GAQzE,IAPA,IAAMtD,EAAQ,CAAC,GAAI,GAAI,GAAI,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACnI/G,EAAgB,OAAToT,QAAS,IAATA,OAAS,EAATA,EAAWK,gBAClBe,EAAWnK,EAAKyK,UAAU3U,IAC1BsU,EAAWpK,EAAKyK,UAAUJ,IAC1BK,EAAW1K,EAAKyK,UAAUC,SAC1BC,EAAW3K,EAAKyK,UAAUE,SAC1BL,EAAU3U,EAAKiL,QAAO,SAACC,EAAW4I,GAAc,OAAAA,GAASU,GAAYV,EAAQU,EAAWO,K,WACrF7R,GACPyR,EAAQ/N,SAAQ,SAACzG,GACf,GAAIA,EAAIgG,UAAYhG,EAAIgG,SAAS/F,OAAS,EAAG,CAC3C,IAAM,EAAQD,EAAI4G,EAAM7D,IACxBlD,EAAK4G,SAAQ,SAACqO,GACR9U,EAAIgG,SAASqF,SAASyJ,EAAQ9P,KAAO,IACvC8P,EAAQlO,EAAM7D,IAAM,WANrBA,EAAIuR,EAASvR,EAAIuR,EAAWO,EAAU9R,I,EAAtCA,MAaXkQ,EAAYhU,EACZ+T,EAAW9P,EACX,IAAMvB,EAAiC,QAAb,EAAAwI,EAAM0I,eAAO,eAAEkC,SAAQ,GACjD7R,EAAO/D,QAAQ6V,yBAA0B,EACzC,eAAW9R,EAAQjE,EAAOqB,EAAQT,EAAM8B,GACxC,eAAkB1C,GAClB,eAAaA,EAAOY,GAAM,IAGtB0S,EAAc,WAClB,OAAM0C,QAAQ,CACZzL,MAAO,OACP0L,QAAS,2CACTC,OAAQ,UACFpD,KAAN,W,+GAKE,IAJAmB,EAAMkC,OAAO,kBAAkB,GAC/BhC,EAASnL,OAAQ,EACboN,EAAY,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAC3H1T,EAAe,EACVoB,EAAI,EAAEA,EAAI,GAAGA,IACpB,KAAkB,QAAb,EAAAoH,EAAM0I,eAAO,eAAG9P,IAAI,CACvBpB,EAAeoB,EACf,M,OASJsS,EAAYA,EAAUC,MAAM3T,EAAc,IACpC9B,EAAgB,OAAToT,QAAS,IAATA,OAAS,EAATA,EAAWK,gBACxBzT,EAAK4G,SAAQ,SAACzG,GACZqV,EAAU5O,SAAQ,SAAAG,GAChB5G,EAAI4G,GAAS,WAGR,OAATqM,QAAS,IAATA,KAAWrR,cAAc/B,GAEhB,OAAToT,QAAS,IAATA,KAAW7S,cACX8S,EAAMkC,OAAO,kBAAkB,G,WAEjCG,WAAY,YAIhB,mBAAM,CAAC,WAAM,OAAApL,EAAMsI,eAAe,WAAM,OAAAtI,EAAMwI,cAAa,SAAC,G,IAAA,sBAAC6C,EAAkB,KAAEC,EAAe,KAC9F3D,EAAc7J,MAAQyK,QAAQ8C,GAC1BA,GACF,uBAAS,WAEL3V,EADkB,YAAhBsK,EAAMtF,MACD,eAAoB4Q,EAAiB,EAAG,GAAI,WAE5C,eAAoBA,GAE7BjC,EAAS3T,QAGZ,CACD6V,WAAW,IAGb,mBAAMpD,GAAa,SAACqD,GAClB,eAAa1C,EAAkBpT,GAAO8V,MAGxC,IAAMnD,EAAe,WACnB,IAAMrT,EAAU,CACdyW,sBAAsB,EACtBC,2BAA0B,EAC1BC,2BAA2B,GAEvBC,EAAe,OAAR/C,QAAQ,IAARA,OAAQ,EAARA,EAAUgD,OAAO7W,GAC9BgU,EAAQ8C,KAAKF,GAAa,SAAUG,GAClC,IAAOC,OAAOD,EAAM,qBACnB,SAAU9B,GACXgC,QAAQC,IAAIjC,OAIhB,MAAO,CACLtC,cAAa,EACbQ,YAAW,EACXc,SAAQ,EACRpB,SAAQ,EACRE,aAAY,EACZK,YAAW,EACXC,aAAY,M,iCC1OlB,MAAMjH,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS/D,KAErD","file":"js/chunk-5ebef18b.66eb8822.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SpreadJsDialog.vue?vue&type=style&index=0&id=112af404&lang=scss\"","import GC from \"@grapecity/spread-sheets\";\n//分组列在第一次没有数据初始化后会导致后续更新报错,所以分组列必须要在有数据才可以分组\nexport function initOutlineColumn(sheet: GC.Spread.Sheets.Worksheet) {\n sheet.outlineColumn.options({\n columnIndex: 0,\n showImage: true,\n showCheckBox: false,\n expandIndicator: require('@/assets/images/increaseIndicator.png'),\n collapseIndicator: require('@/assets/images/decreaseIndicator.png'),\n maxLevel: 2\n });\n sheet.showRowOutline(false);\n sheet.outlineColumn.refresh();\n}\n\nexport const setCollapsed = (sheet: GC.Spread.Sheets.Worksheet, data: any [], isCollapsed: boolean) => {\n sheet.suspendPaint();\n //强制折叠所有二级\n for (let row = 0; row < data.length; row++) {\n if (data[row].level === 1) {\n sheet.rowOutlines.setCollapsed(row, isCollapsed);\n }\n }\n sheet.outlineColumn.refresh();\n sheet.resumePaint();\n}\n\n// 设置表格的头部,可以不占用单元格\nexport const setHeader = (sheet: GC.Spread.Sheets.Worksheet, header: any[][]) => {\n //挂起\n sheet.suspendPaint();\n //设置header行数为2行\n sheet.setRowCount(2, GC.Spread.Sheets.SheetArea.colHeader);\n const row = sheet.getRange(1, -1, 1, -1, GC.Spread.Sheets.SheetArea.colHeader);\n row.wordWrap(true);\n //set header 设置头的样式\n for (let row = 0; row < header.length; row++) {\n for (let cell = 0; cell < header[row].length; cell++) {\n sheet.setValue(row, cell, header[row][cell].name, GC.Spread.Sheets.SheetArea.colHeader);\n sheet.getCell(row, cell, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n if (cell > 2) {\n sheet.getCell(row, cell, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.right);\n }\n // if ([1].includes(cell)) {\n // sheet.getCell(row, cell, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n // }\n }\n sheet.setRowHeight(row, 30, GC.Spread.Sheets.SheetArea.colHeader);\n }\n //合并行 \n // sheet.addSpan(0, 0, 2, 1, GC.Spread.Sheets.SheetArea.colHeader);\n // 筛选\n // const range = new GC.Spread.Sheets.Range(-1, 0, -1, 2);\n // const rowFilter = new GC.Spread.Sheets.Filter.HideRowFilter(range);\n // sheet.rowFilter(rowFilter);\n // sheet.addSpan(0, 0, 1, 2, GC.Spread.Sheets.SheetArea.colHeader);\n // sheet.addSpan(0, 2, 1, 4, GC.Spread.Sheets.SheetArea.colHeader);\n // sheet.addSpan(0, 6, 1, 4, GC.Spread.Sheets.SheetArea.colHeader);\n // // 必须加上这两个才能折叠展开\n sheet.options.protectionOptions.allowOutlineRows = true\n sheet.options.protectionOptions.allowOutlineColumns = true\n // 自动合并\n // const ranges = new GC.Spread.Sheets.Range(-1, -1, -1, -1);\n // sheet.autoMerge(ranges, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.row, GC.Spread.Sheets.AutoMerge.AutoMergeMode.free, GC.Spread.Sheets.SheetArea.colHeader);\n // sheet.autoMerge(ranges, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.column, GC.Spread.Sheets.AutoMerge.AutoMergeMode.free, GC.Spread.Sheets.SheetArea.rowHeader);2\n //重绘\n sheet.resumePaint();\n\n}\n\nexport const bindDataTable = (sheet: GC.Spread.Sheets.Worksheet, data: any[], forcastIndex: number): void => {\n //挂起\n sheet.suspendPaint();\n //设置数据源\n sheet.setDataSource(data);\n\n /* //setDataSource true 重置表格样式也会重置,这里重新设置默认样式\n sheet.options.rowHeaderVisible = false;\n //默认对其方式\n const defaultStyle = new GC.Spread.Sheets.Style();\n //默认对其方式\n defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;\n defaultStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n defaultStyle.locked = true;\n sheet.setDefaultStyle(defaultStyle);\n*/\n\n\n //绑定列\n sheet.bindColumn(0, 'brand');\n sheet.bindColumn(1, 'typeClass');\n sheet.bindColumn(2, 'nstGroupName');\n sheet.bindColumn(3, 'january');\n sheet.bindColumn(4, 'february');\n sheet.bindColumn(5, 'march');\n sheet.bindColumn(6, 'april');\n sheet.bindColumn(7, 'may');\n sheet.bindColumn(8, 'june');\n sheet.bindColumn(9, 'july');\n sheet.bindColumn(10, 'august');\n sheet.bindColumn(11, 'september');\n sheet.bindColumn(12, 'october');\n sheet.bindColumn(13, 'november');\n sheet.bindColumn(14, 'december');\n\n //设置列数\n sheet.setColumnCount(15, GC.Spread.Sheets.SheetArea.viewport);\n\n //设置没列的宽度\n sheet.setColumnWidth(0, '2*');\n sheet.setColumnWidth(1, '1*');\n sheet.setColumnWidth(2, '4*');\n sheet.setColumnWidth(3, '1*');\n sheet.setColumnWidth(4, '1*');\n sheet.setColumnWidth(5, '1*');\n sheet.setColumnWidth(6, '1*');\n sheet.setColumnWidth(7, '1*');\n sheet.setColumnWidth(8, '1*');\n sheet.setColumnWidth(9, '1*');\n sheet.setColumnWidth(10, '1*');\n sheet.setColumnWidth(11, '1*');\n sheet.setColumnWidth(12, '1*');\n sheet.setColumnWidth(13, '1*');\n sheet.setColumnWidth(14, '1*');\n\n //数据格式化\n for (let row = 0; row < data.length; row++) {\n const level = data[row].level;\n sheet.getCell(row, 0).textIndent(level);\n sheet.getCell(row, 1).wordWrap(true);\n sheet.getCell(row, 0).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n sheet.getCell(row, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n sheet.getCell(row, 2).hAlign(GC.Spread.Sheets.HorizontalAlign.left);\n sheet.setRowHeight(row, 25, GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 3, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 4, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 5, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 6, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 7, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 8, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 9, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 10, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 11, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 12, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 13, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 14, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n sheet.setFormatter(row, 15, \"0.00%\", GC.Spread.Sheets.SheetArea.viewport);\n \n // 加粗typeclass\n sheet.getCell(row, 0).font('700 11pt Calibri'); \n }\n //重绘\n const style = new GC.Spread.Sheets.Style();\n style.locked = false;\n style.backColor = 'lightGreen';\n style.borderLeft =new GC.Spread.Sheets.LineBorder(\"gray\", GC.Spread.Sheets.LineStyle.thin);\n style.borderTop = new GC.Spread.Sheets.LineBorder(\"gray\", GC.Spread.Sheets.LineStyle.thin);\n style.borderRight = new GC.Spread.Sheets.LineBorder(\"gray\", GC.Spread.Sheets.LineStyle.thin);\n style.borderBottom = new GC.Spread.Sheets.LineBorder(\"gray\", GC.Spread.Sheets.LineStyle.thin);\n for (let i = forcastIndex; i < 15; i++) {\n sheet.setStyle(-1, i + 3, style);\n }\n sheet.resumePaint();\n}\n\nexport const initSpread = (spread: GC.Spread.Sheets.Workbook, sheet: GC.Spread.Sheets.Worksheet, header: any[][], data: any[], forcastIndex: number): void => {\n spread.suspendPaint();\n\n //填充铺满整个canvas\n spread.options.scrollbarMaxAlign = true;\n spread.options.scrollByPixel = true;\n\n spread.options.tabNavigationVisible = false;\n spread.options.tabStripVisible = false;\n\n // 滚动条样式\n spread.options.scrollbarAppearance = GC.Spread.Sheets.ScrollbarAppearance.mobile;\n\n // 设置header的高度\n // sheet.setRowHeight(0, 80, GC.Spread.Sheets.SheetArea.colHeader);\n\n // 设置多少行和列\n sheet.setRowCount(data.length, GC.Spread.Sheets.SheetArea.viewport);\n\n //禁止缩放\n spread.options.allowUserZoom = false;\n // 必须加上这两个才能折叠展开\n sheet.options.protectionOptions.allowOutlineRows = true\n sheet.options.protectionOptions.allowOutlineColumns = true\n\n // 设置整个表格不能插入, 删除行列\n // allowInsertRows不允许插入行,allowInsertColumns不允许插入列\n // allowDeleteRows不允许删除行, allowDeleteColumns不允许删除列\n sheet.options.protectionOptions.allowInsertRows = false;\n sheet.options.protectionOptions.allowInsertColumns = false;\n sheet.options.protectionOptions.allowDeleteRows = false;\n sheet.options.protectionOptions.allowDeleteColumns = false;\n sheet.options.protectionOptions.allowEditObjects = true;\n \n\n //禁止拖动填充\n spread.options.allowUserDragFill = false;\n spread.options.allowUserDragDrop = false;\n\n spread.options.allowCopyPasteExcelStyle = false\n\n // 设置隐藏头和列\n sheet.options.rowHeaderVisible = false\n // 要设置允保护,不允许的才能生效\n sheet.options.isProtected = true\n\n const defaultStyle = new GC.Spread.Sheets.Style();\n //默认对其方式\n defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.right;\n defaultStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center;\n defaultStyle.locked = true;\n sheet.setDefaultStyle(defaultStyle);\n // 绑定数据\n bindDataTable(sheet, data, forcastIndex);\n\n // 设置头部\n setHeader(sheet, header);\n\n spread.resumePaint();\n}\n\nexport const formatDataForSpread = (list: any, level = 0, result: any[] = [], field = 'controllingPoint', parentId = null) => {\n for (let i = 0; i < list.length; i++) {\n const obj = {\n level: level,\n id: list[i].id,\n brand: list[i].brand || '',\n nstGroupName: list[i].nstGroupName || '',\n typeClass: list[i].typeClass || '',\n january: list[i].january?.[field] === null ? null : list[i].january[field] / 100,\n february: list[i].february?.[field] === null ? null : list[i].february[field] / 100,\n march: list[i].march?.[field] === null ? null : list[i].march[field] / 100,\n april: list[i].april?.[field] === null ? null : list[i].april[field] / 100,\n may: list[i].may?.[field] === null ? null : list[i].may[field] / 100,\n june: list[i].june?.[field] === null ? null : list[i].june[field] / 100,\n july: list[i].july?.[field] === null ? null : list[i].july[field] / 100,\n august: list[i].august?.[field] === null ? null : list[i].august[field] / 100,\n september: list[i].september?.[field] === null ? null : list[i].september[field] / 100,\n october: list[i].october?.[field] === null ? null : list[i].october[field] / 100,\n november: list[i].november?.[field] === null ? null : list[i].november[field] / 100,\n december: list[i].december?.[field] === null ? null : list[i].december[field] / 100,\n childIds: list[i].children?.map((child: any) => child.id),\n parentId: parentId\n }\n result.push(obj)\n if (list[i].children && list[i].children.length > 0) {\n formatDataForSpread(list[i].children, 1, result, field, list[i].id)\n }\n }\n return result\n}\n\nexport const formatDataForTable = (oldTableData: any[], spreadJsData: any[], field = 'controllingPoint') => {\n const months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']\n oldTableData.forEach(tableRow => {\n spreadJsData.forEach(excelRow => {\n // 同一行\n if (excelRow.id === tableRow.id) {\n months.forEach((month: string) => {\n if (excelRow[month] || excelRow[month] === 0) {\n if (tableRow[month][field] !== excelRow[month] * 100) {\n tableRow[month].edited = true\n }\n tableRow[month][field] = excelRow[month] * 100\n } else { // null的情况\n if (tableRow[month][field] || tableRow[month][field] === 0) {\n tableRow[month][field] = excelRow[month]\n tableRow[month].edited = true\n }\n }\n }) \n }\n })\n if (tableRow.children && tableRow.children.length > 0) {\n formatDataForTable(tableRow.children, spreadJsData, field)\n }\n })\n}","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b6796a92\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"condition\" }\nconst _hoisted_2 = { style: {\"display\":\"flex\"} }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"lable\" }, \"BU\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"lable\" }, \"Brand\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"lable\" }, \"Make\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"lable\" }, \"Type Class\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"lable\" }, \"Power Train\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", null, [\n _hoisted_3,\n _createVNode(_component_a_select, {\n value: _ctx.bu,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.bu) = $event)),\n class: \"sel-inp-size2\",\n placeholder: \"Please Select\",\n onChange: _ctx.findBrandByBu\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.buList, (bu1) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: bu1.id,\n key: bu1.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(bu1.nameEn), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_4,\n _createVNode(_component_a_select, {\n mode: \"multiple\",\n value: _ctx.brand,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.brand) = $event)),\n class: \"sel-inp-size\",\n placeholder: \"Please Select\",\n onChange: _ctx.handleBrandChange,\n onBlur: _cache[2] || (_cache[2] = ($event: any) => (_ctx.selectBrand()))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.brandList, (bd) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: bd.brandNameEn,\n key: bd.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(bd.brandNameEn), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onChange\"])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_5,\n _createVNode(_component_a_select, {\n mode: \"multiple\",\n value: _ctx.make,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.make) = $event)),\n placeholder: \"Please Select\",\n class: \"sel-inp-size\",\n onBlur: _ctx.getVehicleItems\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.makeList, (mk) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: mk,\n key: mk,\n title: mk\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(mk), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onBlur\"])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_6,\n _createVNode(_component_a_select, {\n mode: \"multiple\",\n value: _ctx.typeClass,\n \"onUpdate:value\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.typeClass) = $event)),\n placeholder: \"Please Select\",\n class: \"sel-inp-size\",\n onBlur: _ctx.getVehicleItems\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.typeClassList, (tc) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: tc,\n key: tc,\n title: tc\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(tc), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onBlur\"])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_7,\n _createVNode(_component_a_select, {\n mode: \"multiple\",\n value: _ctx.powerTrain,\n \"onUpdate:value\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.powerTrain) = $event)),\n placeholder: \"Please Select\",\n class: \"sel-inp-size\",\n onBlur: _ctx.getVehicleItems\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.powerTrainList, (pt) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: pt,\n key: pt,\n title: pt\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(pt), 1)\n ]),\n _: 2\n }, 1032, [\"value\", \"title\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\", \"onBlur\"])\n ])\n ]),\n ((_ctx.type === 'guideline' && _ctx.$btnPermissions('p-gl01', '/glAndBu')) || (_ctx.type === 'bottomUp' && _ctx.$btnPermissions('p-bu01', '/glAndBu')))\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"font_family icon-shuaxin upload\",\n style: {\"font-size\":\"24px\"},\n onClick: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.handleUpdate && _ctx.handleUpdate(...args)))\n }))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { defineComponent, onMounted, ref, reactive, nextTick, h, computed } from 'vue'\nimport {\n getBrand,\n getUser,\n searchVehicle,\n} from '@/API/checking/checkingManagement';\n\ninterface BrandType {\n id: number;\n brandNameCn: string;\n brandNameEn: string;\n}\n\nexport default defineComponent({\n props: {\n type: {\n type: String\n }\n },\n setup(props, ctx) {\n const bu = ref(null);\n const buList = ref([]);\n\n const make = ref([]);\n const makeList = ref([]);\n\n const brand = ref([]);\n const brandList = ref([]);\n\n const typeClass = ref([]);\n const typeClassList = ref([]);\n\n const powerTrain = ref([]);\n const powerTrainList = ref([]);\n\n const isEmptyBrand = ref(false);\n\n const getVehicleItems = () => {\n if (brand.value?.length === 0) {\n return \n }\n const params = {\n brand: brand.value,\n make: make.value,\n // modelName: modelName.value,\n modelName: [],\n nst: [],\n typeClass: typeClass.value,\n powerTrain: powerTrain.value,\n };\n searchVehicle(params).then((res: any) => {\n makeList.value = res.make;\n powerTrainList.value = res.powerTrain;\n typeClassList.value = res.typeClass;\n });\n };\n\n const handleBrandChange = () => {\n if (brand.value?.length === 0) {\n make.value = []\n typeClass.value = []\n powerTrain.value = [] \n }\n }\n\n const selectBrand = () => {\n isEmptyBrand.value = brand.value === null ? true : false;\n make.value = [];\n // modelName.value = []\n powerTrain.value = [];\n typeClass.value = [];\n makeList.value = []\n typeClassList.value = []\n powerTrainList.value = []\n getVehicleItems();\n };\n\n const handleUpdate = () => {\n const buFormat = buList.value.filter(item => {\n return item.id === bu.value\n }).map(item => {\n return item.nameEn\n })[0]\n const data: any = {\n bu: buFormat,\n buId: bu.value,\n makeList: make.value,\n brandList: brand.value,\n typeClassList: typeClass.value,\n powerTrainList: powerTrain.value\n }\n if (data.brandList === null) {\n delete data.brandList\n }\n ctx.emit('update', data)\n }\n\n const findBrandByBu = () => {\n const params = { buIds: [bu.value] } //TODO 获取buList\n getBrand({ params }).then((res) => {\n const selectedIdList: number[] = []\n const totalBrandList: {\n id: number;\n brandNameCn: string;\n brandNameEn: string;\n }[] = []\n res.forEach((bu: any) => {\n bu.brandList.forEach((brand: any) => {\n if (!selectedIdList.includes(brand.id)) {\n selectedIdList.push(brand.id)\n totalBrandList.push(brand)\n }\n })\n })\n brandList.value = totalBrandList\n brand.value = []\n make.value = []\n powerTrain.value = []\n typeClass.value = []\n makeList.value = []\n typeClassList.value = []\n powerTrainList.value = []\n handleUpdate()\n })\n }\n\n //? 数据初始化阶段\n onMounted(() => {\n getUser()\n .then((res: any) => {\n buList.value = res.buList.filter((ele: any) => {\n return ele.parentId === null && ele.nameEn !== 'CPO' && ele.nameEn !== 'Fleet' && ele.nameEn !== 'Companycar';\n });\n bu.value = buList.value[0].id;\n // bu.value = '1'\n })\n .then(() => {\n return findBrandByBu()\n })\n })\n\n return {\n bu,\n buList,\n make,\n makeList,\n brand,\n brandList,\n typeClass,\n typeClassList,\n powerTrain,\n powerTrainList,\n isEmptyBrand,\n findBrandByBu,\n handleBrandChange,\n selectBrand,\n handleUpdate,\n getVehicleItems\n }\n }\n})\n","import { render } from \"./CasvadeSelector.vue?vue&type=template&id=b6796a92&scoped=true&ts=true\"\nimport script from \"./CasvadeSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./CasvadeSelector.vue?vue&type=script&lang=ts\"\n\nimport \"./CasvadeSelector.vue?vue&type=style&index=0&id=b6796a92&lang=scss&scoped=true\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b6796a92\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CasvadeSelector.vue?vue&type=style&index=0&id=b6796a92&lang=scss&scoped=true\"","import { fetchGet, fetchPost } from '../index';\nimport {\n AGManagementQueryParams,\n TAManagementQueryParams,\n} from '@/views/Checking/CheckingManagement/type';\n//* 获取bu接口\nexport const getBuData = (): Promise => {\n return fetchGet('');\n};\n\n//* AG table数据查询接口\nexport const getAGManagementData = (\n params: AGManagementQueryParams\n): Promise => {\n return fetchPost('/claimapi/claimChecking/agManagement/search', params);\n};\n\n//* TA table数据查询接口\nexport const getTAManagementData = (\n params: TAManagementQueryParams\n): Promise => {\n return fetchPost('/claimapi/claimChecking/taManagement/signTAList', params);\n};\n\n//* TDTA table数据查询接口\nexport const getTDTAManagementData = (\n params: TAManagementQueryParams\n): Promise => {\n return fetchPost('/claimapi/tdta/search', params);\n};\n\n//* 车辆信息级联查询\nexport const searchVehicle = (params: any): Promise => {\n return fetchPost('/claimapi/tdta/search/vehicle', params);\n};\n\n//* findBrandByBu\nexport const getBrand = (params: any): Promise => {\n return fetchGet('/vapi/noAuth/findBrandByBu', params);\n};\n\n//* 根据 Program Code 模糊查询 Program Code 列表\nexport const getProgramCodeList = (params: any): Promise => {\n return fetchGet('/pgapi/calc/claim/get_program_code_list', { params });\n};\n\n//* 根据BU、Program Code 模糊查询 Program Code 列表\nexport const findProgramCodeList = (buId: string, code: string): Promise => {\n return fetchGet('/pgapi/calc/claim/find_program_code_list', {\n params: {\n buId,\n code\n }\n });\n}\n\n//* 根据program code 查询 taname\nexport const getProgramTANameList = (params: any): Promise => {\n return fetchGet('/pgapi/calc/claim/get_program_taname_list', { params });\n};\n\n//* 获取用户信息的接口\nexport const getUser = (): Promise => {\n return fetchGet('/usapi/users/currentuser');\n};\n","import axios from 'axios'\nimport { fetchGet, fetchPost, fetchPostPic, fetchGetMess} from './index'\nimport {\n CbuWsCategory,\n CentralRegionData,\n PlanningSimulationStatData,\n FcInputTypeData,\n FleetData,\n FcInputDataParam,\n TopicData,\n AdjReleaseType,\n AdjStatResponseData,\n AdjAfterClosingResponseData,\n AdjLabelResponseData,\n AdjustmentInfoResponse,\n WsDataNumberInfo,\n KufriInfo\n} from '@/views/Planning/type'\n\n// 获取scenrio列表\nexport const getScenrioList = (params = {}): Promise => {\n return fetchGetMess('/pcapi/scenrio/list', {params})\n}\n// 删除scenrio\nexport const removeScenrio = (params: any): Promise => {\n return fetchPost(`/pcapi/scenrio/delete/${params}`)\n}\n// 修改scenrio activeStatus\nexport const updateScenrioActive = (params = {}): Promise => {\n return fetchPost(`/pcapi/scenrio/updateActiveStatus`, params)\n}\n// 保存scenrio列表\nexport const saveScenrio = (params = {}): Promise => {\n return fetchPost('/pcapi/scenrio/save', params)\n}\n// homePage获取kufri\nexport const getKufriList = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/basicInfo/getKufri', {params})\n}\n// homePage获取planningYear\nexport const getPlanningYear = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/basicInfo/getPlanningYear', {params})\n}\n// bu homePage获取planningYear\nexport const getGuidelinePlanningYear = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/basicInfo/getGuideLinePlanningYear', {params})\n}\n// planning删除\nexport const removePlanning = (params: number): Promise => {\n return fetchPost('/pcapi/planning/basicInfo/delete/' + params)\n}\n// planning锁定/解锁\nexport const lockPlanning = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/basicInfo/lock', params)\n}\n// planning新建\nexport const createPlanning = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/basicInfo/save', params)\n}\n// 下载FM导入模板\nexport const downloadFmWsTemplate = (planningId: string) => {\n return axios.get(`/pcapi/planning/basicInfo/template/${planningId}`, {\n responseType: \"blob\"\n })\n}\n// 导出FM\nexport const exportFmWs = (make: string, year: string) => {\n return axios.get(`/pcapi/planning/basicInfo/export?make=${make}&year=${year}`, {\n responseType: \"blob\"\n })\n}\n// planning上传FM\nexport const uploadPlanningFm = (params = {}, make: string, year: string, config = {}): Promise => {\n return axios.post(`/pcapi/planning/basicInfo/import/${make}/${year}`, params, {\n ...config,\n responseType: \"blob\"\n })\n}\n// homePage 查询是否上传过FM\nexport const getQueryDataNumber = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/basicInfo/check/queryDataNumber', {params})\n}\n\n/** Simulation */\n// 获取baseList\nexport const getBaseList = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/basicInfo/baseList', {params})\n}\n// 保存simulation\nexport const saveSimulation = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/basicInfo/saveSimulation', params)\n}\n// update simulation plan kufriMonth is kufri latest version\nexport const lockSimulation = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/basicInfo/lockSimulation', params)\n}\n\n/** Data Preparation */\n\n// 获取最新Kufri版本\nexport const getLatestKufri = (): Promise => {\n return fetchGet('/pcapi/planning/cbuws/getKufriList')\n}\n\n// 获取CBU WS信息\nexport const getCbuWsInfo = (planningId: number, category: CbuWsCategory) => {\n return fetchGet('/pcapi/planning/cbuws/getKufriList', { params: { planningId, category } })\n}\n\n// 获取CBU WS上传信息\nexport const getCbuWsUploadInfo = (make: string, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/cbuws/check/dataNumber', { params: { make, kufriVersion } })\n}\n\n// 导入CBU WS信息\nexport const importCbuWs = (make: string, year: string, planningId: number, category: CbuWsCategory, kufriVersion: string, params: FormData, config = {}) => {\n return axios.post(`/pcapi/planning/cbuws/import/${make}/${year}/${kufriVersion}/${planningId}/${category}`, params, {\n ...config,\n responseType: \"blob\"\n })\n}\n\n// 导出CBU WS信息\nexport const exportCbuWs = (planningId: number, category: CbuWsCategory) => {\n return axios.get(`/pcapi/planning/cbuws/export/${planningId}/${category}`, {\n responseType: \"blob\"\n })\n}\n\n// 下载CBU WS导入模板\nexport const downloadCbuWsTemplate = (category: CbuWsCategory) => {\n return axios.get(`/pcapi/planning/cbuws/template/${category}`, {\n responseType: \"blob\"\n })\n}\n\n/**guideline */\n\n// reopen时获取bulist\nexport const getReopenBuList = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/bottomUp/getReopenBuList', {params})\n}\n// 提交reopen\nexport const updateReopenBus = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/bottomUp/updateReopenBus', params)\n}\n// guideline获取数据\nexport const getGuidelineList = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/guideLine/info', {params})\n}\n// guideline页面刷新kfuri\nexport const refreshKufri = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/guideLine/refresh', {params})\n}\n\n// guideline页面获取年份\nexport const getGuidelineYear = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/basicInfo/getGuideLineYear', {params})\n}\n\n// guideline页面 set bottom year\nexport const setBottomUpYear = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/basicInfo/setBottomUpYear', params)\n}\n\n// guideline页面 save\nexport const saveGuideline = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/guideLine/save', params)\n}\n\n// guideline页面点击forecast \nexport const refreshBudget = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/guideLine/refreshBudget', {params})\n}\n\n/**Bottom Up */\n\n// Bottom Up获取数据\nexport const getBottomUpList = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/bottomUp/info', {params})\n}\n// Bottom Up页面刷新kfuri\nexport const refreshKufriBottomUp = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/bottomUp/refresh', {params})\n}\n\n// Bottom Up页面 save\nexport const saveBottomUp = (params = {}): Promise => {\n return fetchPost('/pcapi/planning/bottomUp/save', params)\n}\n\n// bottomUp页面点击forecast \nexport const refreshBudgetBu = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/bottomUp/refreshBudget', {params})\n}\n\n/** Planning & Simulation */\n\n// 获取统计数据\nexport const getTotalData = (planningId: number, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/common/getTotalData', { params: { planningId, kufriVersion} })\n}\n\n// C+R 获取品牌列表\nexport const getCrBrandList = (planningId: number, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/cr/getBrandList', { params: { planningId, kufriVersion} })\n}\n// C+R 获取列表详细数据\nexport const getCrInfo = (brandList: string[], planningId: number, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/cr/info', { params: { brandList, planningId, kufriVersion} })\n}\n\n// Fleet & UC & Bidding & Floor Plan 类型\nexport const getFcInputTypeList = (): Promise => {\n return fetchGet('/pcapi/planning/fcinput/queryTypeList')\n}\n// Fleet & UC & Bidding & Floor Plan 获取品牌列表\nexport const getFcInputBrandList = (planningId: number, kufriVersion: string, planningTypeId: number): Promise => {\n return fetchGet('/pcapi/planning/fcinput/queryBrandList', { params: { planningId, kufriVersion, planningTypeId } })\n}\n// Fleet & UC & Bidding & Floor Plan 后去列表详细数据\nexport const getFcInputData = (brandList: string[], planningId: number, kufriVersion: string, planningTypeId: number): Promise => {\n return fetchPost('/pcapi/planning/fcinput/queryFcInputData', {\n brandList,\n kufriVersion,\n planningId,\n planningTypeId\n })\n}\n\n// Fleet & UC & Bidding & Floor Plan 保存\nexport const saveFcInputData = (data: FcInputDataParam[]) => {\n return fetchPost('/pcapi/planning/fcinput/save', data)\n}\n\n// Fleet & UC & Bidding & Floor Plan 获取proposal数据\nexport const getFcInputProposalData = (planningId: number, month: string, typeId: number, kufriVersion: string): Promise> => {\n return fetchGet('/pcapi/planning/fcinput/getPorposeDataByMonth', { params: { planningId, month, typeId, kufriVersion } })\n}\n\n// Adjustment & Release 获取topic列表\nexport const getArTopicList = (planningId: number): Promise => {\n return fetchGet('/pcapi/planning/ar/topicList', { params: { planningId } })\n}\n\n// Adjustment & Release 获取品牌列表\nexport const getArBrandList = (planningId: number, kufriVersion: string, planningType: AdjReleaseType): Promise => {\n return fetchGet('/pcapi/planning/ar/brandList', { params: { planningId, kufriVersion, planningType } })\n}\n\n// Adjustment & Release 获取统计数据\nexport const reportByTopicAndAdjustment = (planningId: number, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/ar/reportByTopicAndAdjustment', { params: { planningId, kufriVersion } })\n}\n\n// Adjustment & Release 获取Adj. After Closing列表详细数据\nexport const getAfterClosingReport = (planningId: number, brandlist: string[]): Promise => {\n return fetchGet('/pcapi/planning/ar/afterClosingReport', { params: { planningId, brandlist } })\n}\n\n// Adjustment & Release 获取Adjustment列表\nexport const getAdjLabelList = (planningId: number, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/ar/adjLabelList', { params: { planningId, kufriVersion } })\n}\n\n// Adjustment & Release 获取Adjustment详细信息\nexport const getAdjustmentInfo = (brandList: string[], headerId: number): Promise => {\n return fetchGet('/pcapi/planning/ar/adjustmentInfo', { params: { brandList, headerId } })\n}\n\n// Adjustment & Release 获取Release详细信息\nexport const getReleaseInfo = (brandList: string[], planningId: number, kufriVersion: string): Promise => {\n return fetchGet('/pcapi/planning/ar/releaseInfo', { params: { brandList, planningId, kufriVersion } })\n}\n\n// Adjustment & Release 新增Adjustment时获取AdjustmentNo\nexport const addAdjustmnetLabel = (planningId: number, kufriVersion: string, adjustmentNos: string[]): Promise => {\n return fetchPost('/pcapi/planning/ar/addAdjustmnetLabel', {}, { params: {planningId, kufriVersion, adjustmentNos } })\n}\n\n// Adjustment & Release 新增Adjustment时获取数据\nexport const newAdjustmentData = (brandList: string[], planningId: number, kufriVersion: string, adjustmentNo?: string): Promise => {\n return fetchGet('/pcapi/planning/ar/newAdjustmentData', { params: { brandList, planningId, kufriVersion, adjustmentNo } })\n}\n\n// Adjustment & Release 保存Adjustment数据\nexport const saveAdjustmentData = (data: object): Promise => {\n return fetchPost('/pcapi/planning/ar/save', data)\n}\n\n//finalView 获取表1数据\nexport const getReportOverview = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/finalReport/overview', {params})\n}\n\n//finalView 获取表2查询条件options\nexport const getReportStructureTree = (): Promise => {\n return fetchGet('/pcapi/report/structure/tree')\n}\n\n//finalView 获取表2数据\nexport const getReportTable2 = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/finalReport/report', {params})\n}\n\n//finalView 获取表3数据\nexport const getReportMonth = (params = {}): Promise => {\n return fetchGetMess('/pcapi/planning/finalReport/month', {params})\n}\n\n//get current dealer stock data\nexport const getCurrentDealerStock = (params = {}): Promise => {\n return fetchGetMess('/pcapi/current', {params})\n}\n\n// dealer stock current save avgSi\nexport const saveAvgSi = (data: object): Promise => {\n return fetchPost('/pcapi/current/saveAvgSi', data)\n}\n\n// dealer stock current save amount\nexport const saveAmount = (data: object): Promise => {\n return fetchPost('/pcapi/current/saveAmount', data)\n}\n\n//get future dealer stock data\nexport const getfutureDealerStock = (params = {}): Promise => {\n return fetchGetMess('/pcapi/future', {params})\n}\n\n// 导出\n// 导出Ajustment\nexport const exportAjustment = (data: object) => {\n return axios.post(`/pcapi/planning/ar/exportAdjExcel`, {}, {\n params: data,\n responseType: \"blob\"\n })\n}\n// 导出Release \nexport const exportRelease = (data: object) => {\n return axios.post(`/pcapi/planning/ar/exportRelExcel`,{}, {\n params: data,\n responseType: \"blob\"\n })\n}\n// 导出FcInput\nexport const exportFcInput= (data: object) => {\n return axios.post(`/pcapi/planning/fcinput/exportExcel`,data, {\n responseType: \"blob\"\n })\n}\n// 导出C+R\nexport const exportCr= (data: object) => {\n return axios.post(`/pcapi/planning/cr/exportExcel`,{}, {\n params: data,\n responseType: \"blob\"\n })\n}\n// 导出final report\nexport const exportFinal= (data: object) => {\n return axios.post(`/pcapi/planning/finalReport/exportExcel?`, {}, {\n params: data,\n responseType: \"blob\"\n })\n}\n\n// 轮训查询simulation初始化状态\nexport const initProcess= (params: object) => {\n return fetchGetMess(`/pcapi/planning/kufri/init/process?`, {params})\n}\n\n// dealer stock\nexport const nextYearData= (params: object) => {\n return fetchGetMess(`/pcapi/planning/basicInfo/nextYearData`, {params})\n}\n\n// dealer stock\nexport const resetCurrent= (params: object) => {\n return fetchGetMess(`/pcapi/current/reset`, {params})\n}\n\n// dealer stock current 导出\nexport const currentExport= (params: object) => {\n return axios.get(`/pcapi/current/export`, {\n params: params,\n responseType: \"blob\"\n })\n}\n\n// dealer stock feature 导出\nexport const featureExport= (params: object) => {\n return axios.post(`/pcapi/exportFutureExcel?`, {}, {\n params: params,\n responseType: \"blob\"\n })\n}\n\nexport const kufriInfo = (planningId: number): Promise => {\n return fetchGet('/pcapi/planning/kufri/info', {\n params: {\n planningId\n }\n })\n}\n\nexport const exportKufri = (make: string, version: string, year: string, type: 'RT'|'WS'|'DS') => {\n return axios.get(`/pcapi/planning/kufri/export/${type}`, {\n params: {\n make,\n version,\n year\n },\n responseType: \"blob\"\n })\n}","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"handler\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"Expand to Model\")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"Clear Forecast Data\")\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Export\")\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"report\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_modal = _resolveComponent(\"a-modal\")!\n\n return (_openBlock(), _createBlock(_component_a_modal, {\n title: \"Batch Input\",\n visible: _ctx.dialogVisible,\n \"onUpdate:visible\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.dialogVisible) = $event)),\n onOk: _ctx.handleOk,\n onCancel: _ctx.handleCancle,\n width: \"100%\",\n wrapClassName: \"full-modal\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_a_checkbox, {\n class: \"expand-model-checkbox\",\n checked: _ctx.expandModel,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.expandModel) = $event)),\n style: {\"margin-bottom\":\"16px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"checked\"]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n style: {\"margin-right\":\"12px\"},\n onClick: _ctx.handleClear\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _ctx.handleExport\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"visible\", \"onOk\", \"onCancel\"]))\n}","\nimport { useRoute } from 'vue-router'\nimport { defineComponent, onMounted, ref, reactive, nextTick, h, computed, watch } from 'vue'\nimport { initSpread, formatDataForSpread, initOutlineColumn, setCollapsed } from './spreadUtils'\nimport { message ,Modal} from \"ant-design-vue\";\nimport { useStore } from 'vuex'\nimport GC from \"@grapecity/spread-sheets\"\nimport { IO } from \"@grapecity/spread-excelio\"\nimport * as ExcelIO from '@grapecity/spread-excelio'\nimport saveAs from 'file-saver'\nexport default defineComponent({\n props: {\n spreadVisible: {\n type: Boolean\n },\n spreadData: {\n type: Array\n },\n actuals: {\n type: Array\n },\n field: {\n type: String\n },\n year: {\n type: String\n },\n makeName: {\n type: String\n }\n },\n setup(props, ctx) {\n GC.Spread.Sheets.LicenseKey = (ExcelIO as any).LicenseKey = 'oasis.mercedes-benz.com.cn|oasis-dev.mercedes-benz.com.cn|oasis-qa.mercedes-benz.com.cn|oasis-training.mercedes-benz.com.cn|oasis-uat.mercedes-benz.com.cn,858593977834555#B0WSK5WcvIVWah7Z5lXOIdGW7ZmN6czQ7wmeGJTOKpWdpFFTUNlUnF6dztiSKpkNUdzU6gzK95mRHRFbr2UUlZ5avoVSPhjVrFVMDtURsF5NvgzKtZ7YNpEO7ZUOWFVTsZ7V8Qkezl6c4hnbC36V84GbjpmNENkYxIGexU5ZtJDdr4WdmZ7RndUMzRjUv2WUwYnQnlkQHZle6Q6LzAXd8QFWwMjUNN6cT34LPF7LXJTbmhjSHNTb9wWRvdXMQhDVkFGVINWb7tWYwkUc7FEb8EEczpFSvgzRrc5LxdnQOhXeaRVWwV7TThHRqtGejl6SLNndxwkZhhlauFjb8YkRTRjaihmaIhWcodGRxFjaLJ7dN3kVahUchRkNONHOQJHdoN5YYtyN5hWZ8RGStJTcMVXaVRUeyEzK9oHZQR7MI3kI0IyUiwiIDFEODZkM7cjI0ICSiwiNyATOwUTN6QTM0IicfJye#4Xfd5nIFVUSWJiOiMkIsICNx8idgAyUKBCZhVmcwNlI0IiTis7W0ICZyBlIsISN4gzM6ADI9IDOwIjMwIjI0ICdyNkIsIibj9SbvNmL09WZi5yclRWZjJXZt9CdhVXLzl6ch3GLuNmLt36YuonblJWLzVGZlNmcl5mLn9WaulWYyRXLzl6ch3GLuNmLt36YuonblJWLzVGZlNmcl5mLhFXLzl6ch3GLuNmLt36YuonblJWLzVGZlNmcl5mL6VGZtMXazF6bs86Yu46bj9ieuVmYtMXZkV6YyVWbuMXazF6biojIz5GRiwiI8+Y9sWY9QmZ0Jyp9EWL0Vqo90yY9O6Y9tiL9nSa9SuY9Gea94io9iojIh94QiwiI5UTN4MDO7cTOzkTN8UDOiojIklkIs4XZzxWYmpjIyNHZisnOiwmbBJye0ICRiwiI34zdjhHUQVTNUplRBdlTPlXOhZVazJRWuM';\n\n const store = useStore()\n\n const excelIo = new ExcelIO.IO();\n\n const spinning = ref(false)\n\n const route: any = useRoute()\n\n const expandModel = ref(false)\n\n const dialogVisible = ref(false)\n // sheet当前表格的初始化\n let workbook: GC.Spread.Sheets.Workbook | null;\n\n let worksheet: GC.Spread.Sheets.Worksheet | null;\n\n let data: any\n\n const handleOk = () => {\n const data = worksheet?.getDataSource();\n ctx.emit('update', data)\n ctx.emit('close')\n expandModel.value = false\n workbook?.destroy()\n }\n\n const handleCancle = () => {\n ctx.emit('close')\n expandModel.value = false\n workbook?.destroy()\n }\n\n const initData = (data: any) => {\n const header: any[][] = [\n [\n {\n name: props.makeName,\n },\n {\n name: route.query.scenarioName,\n },\n {\n name: '',\n },\n ...(props.actuals?.map(item => {\n return {\n name: item ? 'Actual' : 'Forecast'\n }\n }) ?? [])\n ],\n [\n {\n name: 'Brand',\n },\n {\n name: 'Type Class',\n },\n {\n name: 'Model',\n },\n ...(props.actuals?.map((item, index) => {\n return {\n name: `${props.year}-${index < 9 ? '0' : ''}${index + 1}`\n }\n }) ?? [])\n ]\n ]\n const spread = new GC.Spread.Sheets.Workbook(document.getElementById('report') as HTMLElement);\n \n const sheet = spread.getActiveSheet();\n sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (s: any, e: any) {\n const month = ['', '', '', 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']\n const data = worksheet?.getDataSource();\n const rowIndex = e.row\n const colIndex = e.col\n \n const rowInfo = data[rowIndex]\n const value = rowInfo[month[colIndex]]\n const childIds = rowInfo.childIds\n \n if (childIds && childIds.length > 0) {\n data.forEach((row: any) => {\n if (childIds?.includes(row.id)) {\n row[month[colIndex]] = value\n } \n })\n worksheet?.setDataSource(data);\n }\n if (rowInfo.parentId) {\n data.forEach((row: any) => {\n if (row.id === rowInfo.parentId) {\n row[month[colIndex]] = null\n } \n })\n worksheet?.setDataSource(data);\n }\n })\n\n sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender: any, args: any) {\n const month = ['', '', '', 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']\n const data = worksheet?.getDataSource()\n const rowIndex = args.cellRange.row\n const colIndex = args.cellRange.col\n const rowCount = args.cellRange.rowCount\n const colCount = args.cellRange.colCount\n const rowInfo = data.filter((item: any, index: any)=> index >= rowIndex && index < rowIndex + rowCount)\n for (let i = colIndex;i < colIndex + colCount; i++) {\n rowInfo.forEach((row: any) => {\n if (row.childIds && row.childIds.length > 0) {\n const value = row[month[i]]\n data.forEach((dataRow: any) => {\n if (row.childIds.includes(dataRow.id) && value) {\n dataRow[month[i]] = value\n }\n })\n }\n })\n }\n });\n worksheet = sheet;\n workbook = spread;\n const forcastIndex: any = props.actuals?.indexOf(false)\n spread.options.pasteSkipInvisibleRange = true\n initSpread(spread, sheet, header, data, forcastIndex)\n initOutlineColumn(sheet)\n setCollapsed(sheet, data, true)\n }\n\n const handleClear = () => {\n Modal.confirm({\n title: 'Tips',\n content: 'Are you sure to delete all forcast data?',\n okText: 'Confirm',\n async onOk() {\n store.commit('updateSpinning', true)\n spinning.value = true\n let monthList = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']\n let forcastIndex = 0\n for (let i = 0;i < 12;i ++) {\n if (!props.actuals?.[i]) {\n forcastIndex = i\n break\n }\n }\n // props.actuals?.forEach((item: any, index: any) => {\n // console.log(item)\n // if (!item) {\n // forcastIndex = index\n // }\n // })\n monthList = monthList.slice(forcastIndex, 12)\n const data = worksheet?.getDataSource()\n data.forEach((row: any) => {\n monthList.forEach(month => {\n row[month] = null\n })\n })\n worksheet?.setDataSource(data)\n // 重绘\n worksheet?.resumePaint()\n store.commit('updateSpinning', false)\n },\n cancelText: 'Cancel'\n })\n }\n\n watch([() => props.spreadVisible, () => props.spreadData], ([spreadVisibleValue, spreadDataValue]) => {\n dialogVisible.value = Boolean(spreadVisibleValue)\n if (spreadVisibleValue) {\n nextTick(()=>{\n if (props.field === 'buPoint') {\n data = formatDataForSpread(spreadDataValue, 0, [], 'buPoint')\n } else {\n data = formatDataForSpread(spreadDataValue)\n }\n initData(data)\n })\n }\n }, {\n immediate: true\n })\n\n watch(expandModel, (newValue) => {\n setCollapsed(worksheet as any, data, !newValue)\n })\n\n const handleExport = () => {\n const options = {\n includeBindingSource: true, \n columnHeadersAsFrozenRows:true,\n rowHeadersAsFrozenColumns: false\n }\n const json = workbook?.toJSON(options)\n excelIo.save(json as any, function (blob: any) {\n saveAs.saveAs(blob, 'Guideline.xlsx')\n }, function (e: any) {\n console.log(e)\n })\n }\n\n return {\n dialogVisible,\n expandModel,\n spinning,\n handleOk,\n handleCancle,\n handleClear,\n handleExport\n }\n }\n})\n","import { render } from \"./SpreadJsDialog.vue?vue&type=template&id=112af404&ts=true\"\nimport script from \"./SpreadJsDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./SpreadJsDialog.vue?vue&type=script&lang=ts\"\n\nimport \"./SpreadJsDialog.vue?vue&type=style&index=0&id=112af404&lang=scss\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"sourceRoot":""}