-
Notifications
You must be signed in to change notification settings - Fork 86
/
brightics-va-dataflow.min.js
2 lines (2 loc) · 199 KB
/
brightics-va-dataflow.min.js
1
2
/* Brightics VA Build 200427 */
(function(){"use strict";var t,e=this.Brightics.VA.Core.Functions.Library;this.Brightics.VA.Implementation.DataFlow={Clazz:"data",Label:"Data Flow",Launcher:{},Validator:{},Editors:{Diagram:{Shapes:{}},Sheet:{Panels:{Properties:{}}},Header:{},BodyContainer:{}},Dialogs:{RefineSteps:{Validator:{}}},Tools:{Adapter:{},Manager:{}},Utils:{}},this.Brightics.VA.Implementation.DataFlow.Functions=e.extendFunctions(["load","dbReader","unload","cassandraLoad","cassandraUnload","randomDataGeneration","ewma","imputeDatetime","imputeNumberTypeFillColumn","imputeStringTypeFillColumn","kalmanFilter","movingAverage","dataNormalization","sort","timeShift","timeSeriesDistance","conditionalUpdate","elementwiseProduct","polynomialExpansion","polynomialRegressionTrain","polynomialRegressionPredict","distinctFilter","conditionFilter","minmaxFilter","imputeRemoveLine","lengthFilter","outlierRemoval","stringFilter","independentFilter","correlation","quantileDiscretizer","frequency","frequencyMat","statisticDerivation","statisticSummary","kernelDensityEstimation","kernelDensity","gaussianMixtureTrain","gaussianMixturePredict","chiSquareTest","duncanTest","ttest","typeCast","changeColumnName","capitalizeColName","reorganizeTable","join","colAppend","rowAppend","powerRowAppend","queryExecutor","pivot","unpivot","stratifiedSampling","randomSampling","timeSeriesTranspose","splitData","refine","qrDecomposition","pca","indexToString","transpose","bucketizer","mdRemove","mdReplaceNumber","mdReplaceString","mdTrim","mdCapitalize","mdLength","numericalVariableDerivation","rowIndexDerivation","conditionalDerivation","ymdhwFromDatetime","datetimeFormatConvertor","datetimeCalculator","oneHotEncoder","stringIndexer","vectorIndexer","binarizer","nGram","stringSplit","addLeadLag","autoArimaTrain","autoArimaPredict","arimaTrain","arimaPredict","linearRegressionTrain","linearRegressionPredict","logisticRegressionTrain","logisticRegressionPredict","timeSeriesLRTrain","timeSeriesLRPredict","holtWintersTrain","holtWintersPredict","isotonicRegressionTrain","isotonicRegressionPredict","glm","glmForLogisticRegression","glmPredict","glmPredictForLogisticRegression","alsTrain","alsRecommend","decisionTreeTrain","decisionTreePredict","decisionTreeCartTrain","decisionTreeCartPredict","kmeans","knn","naiveBayesTrain","naiveBayesPredict","hierarchicalClustering","hierarchicalClusteringPostProcess","svmTrain","svmPredict","svd","randomForestTrain","randomForestPredict","latentDirichletAllocation","powerIterationClustering","oneVsRestLRClassifierTrain","oneVsRestLRClassifierPredict","anova","regressionEvaluation","binaryClassificationEvaluation","multiclassClassificationEvaluation","csp","outDet","calib","logLikelihoodRatioTest","logLikelihoodRatioTestForLR","evaluateRankingAlgorithm","elasticIndexing","elasticSearch","elasticRegExpSearch","elasticQueryExecutor","scalaScript","pythonScript","rGroupBy","rScript","flatMapR","rScript2","mlpPredict","mlpTrain","dlPredict","sqlExecutor","addColumnByRefine","selectColumn","tFIDF","changeValue","groupBy","simpleFilter","advancedFilter","sortByRefine","linearUCBTrain","linearUCBPrescribe","associationRule","featureEncoding","columnsToArray","arrayToColumns","bigDataScatter","bigDataLine","bigDataColumn","bigDataBar","bigDataBoxPlot","bigDataPie","bigDataHistogram","qLearningTrain","qLearningPrescribe","sarsaTrain","sarsaPrescribe","thompsonSamplingTrain","thompsonSamplingPrescribe","valueIterationTrain","valueIterationPrescribe","interactivePrediction","tokenizer","chiSqSelection","createTable","correlationWithPivot","timeSeriesAnalysis","eDA","optPreprocessing","localOptimization","globalOptimization","parameterStudies","designOfExperiments","sampling","uncertaintyQuantification","randomSplit","unknownFunction","flow","if","forLoop","whileLoop","import","export","setValue","dataViewer","udfTest","kmeanspy","kmeansmodelpy","pairwisescatter","kmeans2","kmeans2model","testftn1","testftn2","testftn3","unpivot","pythonRefine","timeSeriesSmoothen","timeSeriesDecomposition","crossCorrelation","autoCorrelation","aRXTrain","aRXPredict","tFIDF","stopWordsRemover","vIF","twoSampleTTestForStacked","trimmedMeansOneWayTest","stringSummary","pairedTTest","oneSampleTTest","normalityTest","mannWhitneyUTest","levenesTest","kruskalWallisHTest","fTestForStacked","crossTable","correlationTest","chiSquareTestOfIndependence","chiSquareTestForGivenProportions","chiSqTestForTheVariance","bootstrapLimit","bartlettsTestForStacked","stepwiseLinearRegressionTrain","stepwiseLinearRegressionPredict","predictor","polynomialRegressionTrain","polynomialRegressionPredict","linearRegressionResidual","mahalanobisDistanceOutlierDetection","exportColumn","oneHotEncoderModel","oneHotEncoder","labelIndexerModel","labelIndexer","indexToLabelModel","indexToLabel","evaluateTimeSeries","sVMRBFTrain","sVMRBFPredict","sVMRBF","symbolicRegressionTrain","symbolicRegressionPredict","randomForestRegressionTrain","randomForestRegressionPredict","randomForestClassificationTrain","randomForestClassificationPredict","gBTRegressionTrain","gBTRegressionPredict","gBTClassificationTrain","gBTClassificationPredict","decisionTreeRegressionTrain","decisionTreeRegressionPredict","decisionTreeClassificationTrain","decisionTreeClassificationPredict","autoRegressionTrain","autoRegressionPredict","autoOneVsRestLogisticRegressionTrain","autoMLPTrainForClassification","autoLogisticRegressionTrain","autoLogisticRegressionPredict","autoLinearRegressionTrain","autoLinearRegressionPredict","autoFeatureSelection","autoDataCleansing","autoClassificationTrain","autoClassificationPredict","bootstrapLimit","t2train","t2predict","sprt","sbmtrain","sbmpredict","adRandomForestTrain","adRandomForestPredict","adPoissonFilter","readFromS3","writeToS3","readFromDb","writeToDb","addColumnIfPython","simpleFilterPython","advancedFilterPython","selectColumnPython","sortPython","addColumnPython","dialogProperties","merge","addFunctionColumnsPython","brightics.function.evaluation$plot_roc_pr_curve","queryExecutorPython","createTablePython","loadModel","unloadModel","brightics.function.transform$get_table","queryExecutorPython2"]),this.Brightics.VA.Implementation.DataFlow.Helpers={sqlfunctionhelp:{label:"SQL Function Help",operation:"SQLFuncHelper"}},this.Brightics.VA.Implementation.DataFlow.defaultModel=$.extend(!0,((t={variables:{},variableRef:[],innerModels:{},getVariableAssignedParamList:function(t){for(var e=[],i=0;i<this.variableRef.length;i++){var o=this.variableRef[i];for(var n in o.param)o.param[n]===t&&e.push({fid:o.fid,param:n})}return e},renameVariableKey:function(t,e){if(this.variables[e])throw new Error("variable already exists");this.variables[e]=this.variables[t],delete this.variables[t]},updateVariable:function(t,e,i){if(!this.variables[t])throw new Error("variable not exists");this.variables[t].type=e,this.variables[t].value=i},getInnerModel:function(t){return(this.innerModels||{})[t]},getInnerModels:function(t){return this.innerModels=this.innerModels||{},this.innerModels},addInnerModel:function(t){return this.innerModels=this.innerModels||{},this.innerModels[t.mid]=t,t},removeInnerModel:function(t){var e=this.innerModels[t];return delete this.innerModels[t],e},removeInnerModelRecursion:function(t){var e=this,i=this.innerModels[t],o=[];if(i){var n=i.functions;(o=o.concat(_.map(n,function(t){var i=Brightics.VA.Core.Utils.NestedFlowUtils.getSubModels(e,t);return _.map(i,function(t){return e.removeInnerModelRecursion(t.mid)})}))).push(e.removeInnerModel(t))}return _.filter(_.flattenDeep(o),_.negate(_.isUndefined))}})[IN_DATA]=[],t[OUT_DATA]=[],t),Brightics.VA.Default.analyticsModel),this.Brightics.VA.Implementation.DataFlow.innerModel=$.extend(!0,function(){var t={};return t[IN_DATA]=[],t[OUT_DATA]=[],t}(),Brightics.VA.Default.analyticsModel)}).call(this),function(){"use strict";var t=this.Brightics,e=brtc_require("TabChannel");function i(e,i){t.VA.Core.Editors.ModelEditor.call(this,e,i),this.initUDFChangeListener(),this.initTemplateChangeListener(),this.initTabChannel()}i.prototype=Object.create(t.VA.Core.Editors.ModelEditor.prototype),i.prototype.constructor=i,i.prototype.createPanelFactory=function(){this.panelFactory=new t.VA.Implementation.DataFlow.Editors.Sheet.PanelFactory},i.prototype.addToLibrary=function(e){var i=this;new t.VA.Core.Dialogs.AddToLibraryDialog(this.$mainControl,{close:function(t){if(t.OK){var o={library_id:t.library,label:t.label,contents:e,description:""};i.modelLayoutManager.handleAppendTemplate(o)}},title:"Add to Template"})},i.prototype.addToFunctionClipboard=function(t){if(t.functions.length>0){var e={width:$(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected").width(),height:$(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected").height(),contents:t};Studio.getClipboardManager().addFunctionToClipboard(e)}},i.prototype.initUDFChangeListener=function(){var t=this;this.$mainControl.bind("udfChanged",function(e,i){t.fireUDFChanged(i)})},i.prototype.initTemplateChangeListener=function(){var t=this;this.$mainControl.bind("templateChanged",function(e,i){t.fireTemplateChanged(i)})},i.prototype.initTabChannel=function(){var i=this;i.tabChannel=new e(Date.now()),i.tabChannel.listen("multi-chart",function(e){return i.getCommandManager().execute(new t.VA.Core.Editors.Diagram.Commands.UpdateMultiChartOptionCommand(i,{fid:e.value.fid,cid:e.value.cid,value:e.value.multiChartOption})),{success:!0}})},i.prototype.fireUDFChanged=function(t){this.modelLayoutManager.handleUDFChanged(t)},i.prototype.fireTemplateChanged=function(t){this.modelLayoutManager.handleTemplateChanged(t)},i.prototype.preProcess=function(e){var i=e||{},o=this.getEditorInput().getProjectId(),n=this.getModel();return t.VA.Core.Utils.NestedFlowUtils.makeRunnable(o,n,i).then(function(t){return t}).catch(console.error)},i.prototype.getConnectionKey=function(){return this.tabChannel.getConnectionKey()},t.VA.Implementation.DataFlow.Editor=i}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){t.VA.Core.Editors.ModelLayoutManager.call(this,e,i),this.registerCommandManagerListener(),this.getToolbar().navigator.registerOpenNavigatorDialog(this.openNavigatorDialog.bind(this))}e.prototype=Object.create(t.VA.Core.Editors.ModelLayoutManager.prototype),e.prototype.constructor=e,e.prototype.registerConditionHeader=function(t){this.conditionHeader=t,this.conditionHeader.on("tab-click",function(t){this.changeEditorModel(t.data.getId())}.bind(this))},e.prototype.registerLoopHeader=function(t){this.loopHeader=t},e.prototype.changeEditorModel=function(t){this.getEditor().setActiveModel(t),this.getDiagramEditorWrapper().setModel(this.getEditor().getActiveModel(),this.fnUnit),this.getToolbar().navigator.buildNavigator(t,this.fnUnit.fid),this.getEditor().resetSheetEditorPage(),this.getSideBarManager().onModelChange(),this.getDiagramEditorPage().createExpressionControl(),this.adjustLayout()},e.prototype.openActivity=function(t,e){this.fnUnit=e,this.getToolbar().navigator.buildNavigator(t,e?e.fid:void 0),this.getEditor().setActiveModel(t),this.getDiagramEditorWrapper().setModel(this.getEditor().getActiveModel(),e),this.getEditor().resetSheetEditorPage(),this.getSideBarManager().onModelChange(),this.getDiagramEditorPage().createExpressionControl(),this.adjustLayout()},e.prototype.setDiagramHeight=function(){var t=this.getEditor().getDiagramArea(),e=this.$editor.height()-this.getToolbar().getHeight(),i=this.getEditor().getHeaderArea(),o="none"!==i.css("display")?i.height():0;t.height(e-o),this.handleExpandStatusChanged()},e.prototype.handleAppendTemplate=function(t){this.getSideBarManager().getSideBars().palette.appendTemplate(t)},e.prototype.handleSelectFunction=function(t){this.getDiagramEditorPage().selectFunction(t)},e.prototype.handleChangeScale=function(t){this.getDiagramEditorPage().changeScale(t)},e.prototype.handleChangeTooltipEnabled=function(t){this.getDiagramEditorPage().changeTooltipEnabled(t)},e.prototype.handleFitToContent=function(){this.getDiagramEditorPage().fitToContent()},e.prototype.handleOpenHistoryDialog=function(e){var i,o=this,n=$(e.target).offset(),a={x:n.left-402+26,y:n.top-10+40},r=this.getEditor().getCommandManager().getStacks(),s=[];for(var l in r)i=r[l].option&&r[l].option.fnUnit?r[l].getLabel()+" - "+r[l].options.fnUnit.display.label:r[l].getLabel(),s.push({name:r[l].getLabel(),description:i});this.getEditor().setHistorySelector(new t.VA.Core.Dialogs.HistorySelector(this.getEditor().$mainControl,{selectHistory:function(t){t.OK&&(o.getEditor().getCommandManager().go(t.goHistory),o.getEditor().setEnableRedoUndoButton(),o.getEditor().refreshRedoUndoLabel())},stackIndex:o.getEditor().getCommandManager().getIndex(),pos:a,source:s,editor:o.getEditor()}))},e.prototype.handleOpenIndexDialog=function(e){var i=$(e.target).offset(),o={x:i.left-402+26,y:i.top-10+40};this.getEditor().indexDialog=new t.VA.Core.Dialogs.IndexDialog(this.getEditor().$mainControl,{editor:this.getEditor(),window:{position:o},appendTo:this.getEditor().$mainControl})},e.prototype.openNavigatorDialog=function(e,i,o){this.getEditor().navigatorDialog&&this.getEditor().navigatorDialog.close(),this.getEditor().navigatorDialog=new t.VA.Core.Dialogs.NavigatorDialog(this.getEditor().$mainControl,_.merge({editor:this.getEditor(),window:{position:e},appendTo:this.getEditor().$mainControl},o))},e.prototype.handleOpenScheduleManagementDialog=function(){new t.VA.Core.Dialogs.ScheduleManagementDialog(this.getEditor().$mainControl,{editorInput:this.getEditor().getModel(),appendTo:this.getEditor().$parent,title:"Schedule list"})},e.prototype.handleExpandStatusChanged=function(){this.setEditorWidth()},e.prototype.setEditorWidth=function(){var t=this.getSideBarManager();if(t){var e=this.getEditor().getMainArea().find(".brtc-va-editors-modeleditor-splitter"),i=this.editor.getLeftTabBarArea().height(),o=t.getLeftSideBarWidth()+t.getRightSideBarWidth();t.isOpen("left")&&(o+=i),t.isOpen("right")&&(o+=i);var n=t.isOpen("left")?t.getLeftSideBarWidth()+i:i;e.css("width","calc(100% - "+o+"px)").css("margin-left",n);var a=this.getEditor().getHeaderArea(),r=40+a.outerHeight();e.css("height","calc(100% - "+r+"px)"),a.css("width","calc(100% - "+o+"px)").css("margin-left",n),this.getSheetEditorPage().getFnUnitViewer().updatePanelWidth()}},e.prototype.getFnUnit=function(){return this.fnUnit},e.prototype.registerCommandManagerListener=function(){var t=this,e=this.getEditor().getCommandManager();e.registerCallbackLeft(function(e){var i=e.options.editorContext.fnUnit,o=e.options.editorContext.mid;"Remove Condition"===e.options.label&&o===e.options.mid&&(o=i.param.if.mid),t.fnUnit===i&&o===t.getEditor().getActiveModel().mid||t.openActivity(o,i),t.getSideBarManager().onModelChange(e)}),e.registerGoHistoryCallbackLeft(function(e){var i=e.options.commands,o=i[i.length-1],n=o.options.editorContext.fnUnit,a=o.options.editorContext.mid;"Remove Condition"===o.options.label&&a===o.options.mid&&(a=n.param.if.mid),t.fnUnit===n&&a===t.getEditor().getActiveModel().mid||t.openActivity(a,n),t.getSideBarManager().onModelChange()})},e.prototype.getDiagramEditorPage=function(){return this.editor.getDiagramEditorPage()},e.prototype.getSheetEditorPage=function(){return this.editor.getSheetEditorPage()},e.prototype.getDiagramEditorWrapper=function(){return this.editor.getDiagramEditorWrapper()},e.prototype.handleOnActivate=function(){this.getDiagramEditorPage().onActivated(),this.getSideBarManager().onActivated(),this.getSheetEditorPage().onActivated()},e.prototype.destroy=function(){this.getSheetEditorPage().destroy(),this.getDiagramEditorPage().destroy()},t.VA.Implementation.DataFlow.ModelLayoutManager=e}.call(this),function(){"use strict";var t=this,e=t.Brightics;function i(t){this.validator={},this.options=t||{}}i.prototype.validate=function(t){var e=[];for(var i in t.functions){var o=t.functions[i];try{var n,a=this.createValidator(o.func);a&&(n=a.validate(o,t)),n&&(e=e.concat(n))}catch(t){console.log(t)}}return e=e.filter(function(t){return void 0!==t&&null!=t}),t.problemList=e,t.problemList},i.prototype.createValidator=function(i){var o=void 0===t.Brightics.VA.Implementation.DataFlow.Functions[i]?t.Brightics.VA.Implementation.DataFlow.Functions.unknownFunction.validator:t.Brightics.VA.Implementation.DataFlow.Functions[i].validator;return this.validator[i]?this.validator[i]:this.validator[i]=o?new o:new e.VA.Core.Validator.BaseValidator},e.VA.Implementation.DataFlow.Validator=i}.call(this),function(){"use strict";var t=this.Brightics;function e(){this._functionContents=this._getContents(),this._validatorParams=this._functionContents.params||[],t.VA.Core.Validator.SingleInputValidator.call(this)}e.prototype=Object.create(t.VA.Core.Validator.SingleInputValidator.prototype),e.prototype.constructor=e,e.prototype.initRules=function(){this.addLinkRule(),this.addInTableRule(),this.addRulesFromParams(),this._createCustomValidation()},e.prototype.addLinkRule=function(){var t=this,e=this.FnUnitUtils.getTotalInRangeCount(this._functionContents);void 0!==e&&0!=e.min&&this.addRule(function(e){return t.checkLinkIsConnected(e)})},e.prototype.addInTableRule=function(){var t=this;this.addRule(function(e){if(!t.FnUnitUtils.hasMeta(e)||t.FnUnitUtils.hasTable(e))return t.checkInTableIsEmpty(e)})},e.prototype._createCustomValidation=function(){for(var t,e=0;e<this._validatorParams.length;e++)(t=this._validatorParams[e]).validation&&t.validation.length>0&&this._addCustomRule(t)},e.prototype.addColumnsRule=function(){var t=this;this.addRule(function(e){if(!t.checkLinkIsConnected(e))return t.checkColumnIsEmpty(e,"columns",e.param.columns[0],"Columns")}),this.addRule(function(e){if(!t.checkLinkIsConnected(e))return t.checkColumnExists(e,"columns",e.param.columns[0])})},e.prototype._addCustomRule=function(t){for(var e,i=this,o=t.validation,n=t.id,a=0;a<o.length;a++)e=o[a],this.addRule(function(t){if(!i.checkLinkIsConnected(t)){var o=new Function("value","fnUnit",e.validationCode),a=$.extend(!0,{},t);if(t.param[n]&&!1===o.call(i,t.param[n],a)){var r={errorCode:e.messageCode||"BR-0100",param:n,messageParam:e.messageParam};return i.problemFactory.createProblem(r,t)}}})},e.prototype.addRulesFromParams=function(){for(var t,e=0;e<this._validatorParams.length;e++)!0===(t=this._validatorParams[e]).mandatory&&this._createMandatoryRule(t)},e.prototype._createMandatoryRule=function(t){const e=this,{id:i,label:o,type:n}=t;"ColumnSelector"===t.control?(this.addRule(function(t){if(!e.checkLinkIsConnected(t))return e.checkColumnIsEmpty(t,i,t.param[i],o)}),this.addRule(function(t){if(!e.checkLinkIsConnected(t))return e.checkColumnExists(t,i,t.param[i])})):"InputBox"===t.control?this.addRule(function(t){if(!e.checkLinkIsConnected(t))return e.emptyProblemMessage(t,i,t.param[i],o)}):"DropDownList"===t.control?this.addRule(function(t){if(!e.checkLinkIsConnected(t))return e.emptyProblemMessage(t,i,t.param[i],o)}):"RadioButton"===t.control||("CheckBox"===t.control?this.addRule(function(t){if(!e.checkLinkIsConnected(t)){var n={errorCode:"BR-0033",param:i,messageParam:[o]};return e._checkArrayIsEmpty(n,t,t.param[i])}}):"Expression"===t.control?this.addRule(function(t){if(!e.checkLinkIsConnected(t))return e.emptyProblemMessage(t,i,t.param[i],o)}):"ArrayInput"===t.control&&this.addRule(function(t){if(!e.checkLinkIsConnected(t)){var a={errorCode:"BR-0033",param:i,messageParam:[o]};return e._checkArrayIsCompact(a,t,t.param[i],o,n)}}))},t.VA.Implementation.DataFlow.Functions.InvokeValidator=e}.call(this),function(){"use strict";var t=this.Brightics;function e(){t.VA.Core.ModelLauncher.call(this),this.isProcessing=!1}e.prototype=Object.create(t.VA.Core.ModelLauncher.prototype),e.prototype.constructor=e,e.prototype.launchUnit=function(e,i,o,n){this.isProcessing||(this.isProcessing=!0,this.__launchUnit=this.__launchUnit||_.debounce(function(e,i,o,n){var a=this,r=this._generateJobId(e.fid),s=t.VA.Env.Session.userId;t.VA.Core.Utils.RunnableFactory.createForUnit(e,r,s,i,o).then(function(i){var r={mode:"unit",clazz:t.VA.Implementation.DataFlow.Clazz,originalModels:[e.parent()],expectedUnitCount:1,runnable:i};a._launch(r,o,n)}).catch(function(){a.isProcessing=!1})}.bind(this),1e3,{leading:!0,trailing:!1}),this.__launchUnit(e,i,o,n))},e.prototype.launchModel=function(e,i,o,n){this.isProcessing||(this.isProcessing=!0,this.__launchModel=this.__launchModel||_.debounce(function(e,i,o,n){var a=this,r=e.mid,s=this._generateJobId(r),l=t.VA.Env.Session.userId,d=e.functions.length;t.VA.Core.Utils.RunnableFactory.createForFlow(e,s,l,i,o).then(function(i){var r={mode:"data-flow",clazz:t.VA.Implementation.DataFlow.Clazz,originalModels:[e],expectedUnitCount:d,runnable:i};a._launch(r,o,n)}).catch(function(){a.isProcessing=!1})}.bind(this),1e3,{leading:!0,trailing:!1}),this.__launchModel(e,i,o,n))},e.prototype._launch=function(e,i,o){var n=this,a=new t.VA.Implementation.DataFlow.EventDetector(e),r=function(t){for(var e in t.processes){var o=t.processes[e],r=o.pid||"pid_undefined",s=o.mid,l=a.createProcessEvent(r,s,o.begin,o.end,o.status,e);for(var d in o.functions){var c=o.functions[d];"PROCESSING"==c.status&&(n.processingUnit=c),l=l.concat(a.createUnitEvent(r,s,c,d))}for(var p in l)l[p].originalResponse=t;i&&i.hideDialog||n._fireEvents(l)}},s=function(t){var o={eventType:"END-JOB",jid:t.jobId,message:n._getProcessingMessage(t),detailMessage:n._getProcessingDetailMessage(t),status:t.status,launchOptions:e,originalResponse:t};i&&i.hideDialog||n._fireEvents([o]),delete n.jobScheduler[t.jobId],n.isProcessing=!1},l={status:[function(t){r(t)}],success:[function(t){r(t),s(t)}],abort:[function(t){s(t)}],fail:[function(t){r(t),s(t)}],pending:[function(t){!function(t){var o={eventType:"PENDING-JOB",jid:t.jobId,message:n._getPendingMessage(t),status:t.status,launchOptions:e,originalResponse:t};i&&i.hideDialog||n._fireEvents([o])}(t)}],catch:[function(t){s({jobId:e.runnable.jid,status:"FAIL",exception:t})}]};this._extendListeners(l,o);var d=new t.VA.Implementation.DataFlow.Job(l);d.start(e.runnable).then(function(t){var o=t.result;n.jobScheduler[o]=d;var a={eventType:"BEGIN-JOB",jid:o,status:"WAIT",launchOptions:e};i&&i.hideDialog||n._fireEvents([a])})},t.VA.Implementation.DataFlow.DataFlowLauncher=e}.call(this),function(){"use strict";var t=this.Brightics;function e(t){this.cache={},this.labelMap={},this.subflowMap={},this.innerModelMap={},this.launchOptions=t;var e=this.launchOptions.runnable.models;for(var i in e){var o=e[i];this._scanModel(i,o)}}e.prototype._scanModel=function(t,e,i){var o=t+"_pid";this.labelMap[o]=e.title,this._scanFunctions(t,e,i);var n=e.innerModels;for(var a in n){var r=n[a];this._scanModel(a,r,t)}},e.prototype._scanFunctions=function(t,e,i){i&&(t=i);for(var o=0;o<e.functions.length;o++){var n=e.functions[o],a=t+"_"+n.fid;if(this.labelMap[a]=n.label,"Subflow"==n[FUNCTION_NAME]&&n.param.functions.length>0){var r={fid:n.fid,first:n.param.functions[0].fid,last:n.param.functions[n.param.functions.length-1].fid};for(var s in n.param.functions){var l=n.param.functions[s];this.subflowMap[t+"_"+l.fid]=r}}else if("ForLoop"==n[FUNCTION_NAME]||"WhileLoop"==n[FUNCTION_NAME]||"If"==n[FUNCTION_NAME]){var d=n.label,c=n.param.mid;this.innerModelMap[c]=d}else n.param.functions&&this._scanFunctions(t,n.param,n.fid)}},e.prototype.createUnitEvent=function(t,e,i,o){var n,a=[];return(n=this._createUnitStartEvent(t,e,i,o))&&a.push(n),(n=this._createUnitEndEvent(t,e,i,o))&&a.push(n),a},e.prototype._createUnitStartEvent=function(t,e,i,o){if(this.cache[t]&&!(i.fid.indexOf("internal_function")>-1)){var n,a=i.fid,r=this.subflowMap[e+"_"+i.fid];if(n=r?a=r.fid:a+"@"+o,"WAIT"!==i.status&&!this.cache[t][n]){var s={eventType:"BEGIN-UNIT",launchOptions:this.launchOptions,pid:t,mid:e,fid:a,status:"PROCESSING",label:this.labelMap[e+"_"+a],begin:i.begin,message:i.message,sequence:o};return i.fid.indexOf("read_alluxio_pagination")>-1?s.label="(read)":i.fid.indexOf("write_alluxio_pagination")>-1&&(s.label="(write)"),this.cache[t][n]={event:s},s}if(this.cache[t][n]&&(this.cache[t][n].event.begin!=i.begin||"SUCCESS"==this.cache[t][n].event.status)){s={eventType:"BEGIN-UNIT",launchOptions:this.launchOptions,pid:t,mid:e,fid:a,status:"PROCESSING",label:this.labelMap[e+"_"+a],begin:i.begin,message:i.message,sequence:o};return i.fid.indexOf("read_alluxio_pagination")>-1?s.label="(read)":i.fid.indexOf("write_alluxio_pagination")>-1&&(s.label="(write)"),this.cache[t][n]={event:s},s}if(this.cache[t][n]&&(this.cache[t][n].event.begin!=i.begin||"PROCESSING"==this.cache[t][n].event.status)){s={eventType:"UPDATE-UNIT",launchOptions:this.launchOptions,pid:t,mid:e,fid:a,status:"PROCESSING",label:this.labelMap[e+"_"+a],begin:i.begin,message:i.message,sequence:o};return i.fid.indexOf("read_alluxio_pagination")>-1?s.label="(read)":i.fid.indexOf("write_alluxio_pagination")>-1&&(s.label="(write)"),this.cache[t][n]={event:s},s}if(this.cache[t][n]&&(this.cache[t][n].event.begin!=i.begin||"SUCCESS"==this.cache[t][n].event.status)){s={eventType:"BEGIN-UNIT",launchOptions:this.launchOptions,pid:t,mid:e,fid:a,status:"PROCESSING",label:this.labelMap[e+"_"+a],begin:i.begin,sequence:o};return i.fid.indexOf("read_alluxio_pagination")>-1?s.label="(read)":i.fid.indexOf("write_alluxio_pagination")>-1&&(s.label="(write)"),this.cache[t][n]={event:s},s}if(this.cache[t][n]&&(this.cache[t][n].event.begin!=i.begin||"SUCCESS"==this.cache[t][n].event.status)){s={eventType:"BEGIN-UNIT",launchOptions:this.launchOptions,pid:t,mid:e,fid:a,status:"PROCESSING",label:this.labelMap[e+"_"+a],begin:i.begin,sequence:o};return i.fid.indexOf("read_alluxio_pagination")>-1?s.label="(read)":i.fid.indexOf("write_alluxio_pagination")>-1&&(s.label="(write)"),this.cache[t][n]={event:s},s}}},e.prototype._createUnitEndEvent=function(t,e,i,o){var n,a=i.fid,r=this.subflowMap[e+"_"+i.fid];if(n=r?a=r.fid:a+"@"+o,this.cache[t]&&this.cache[t][n]&&"PROCESSING"==this.cache[t][n].event.status&&this.cache[t][n].event.status!=i.status)return this.cache[t][n].event.status=i.status,{eventType:"END-UNIT",launchOptions:this.launchOptions,pid:t,mid:e,fid:a,status:i.status,label:this.labelMap[e+"_"+a],begin:i.begin,end:i.end,message:i.message,sequence:o}},e.prototype.createProcessEvent=function(t,e,i,o,n,a){var r,s=[];return(r=this._createProcessStartEvent(t,e,i,a))&&s.push(r),(r=this._createProcessEndEvent(t,e,i,o,n))&&s.push(r),s},e.prototype._createProcessStartEvent=function(t,e,i,o){if(!(e.indexOf("internal_process")>-1||this.cache[t]&&"0"==o)){var n={eventType:"BEGIN-PROCESS",launchOptions:this.launchOptions,pid:t,mid:e,label:this.labelMap[t],status:"PROCESSING",begin:i};return this.cache[t]={mid:n.mid,status:n.status},n}},e.prototype._createProcessEndEvent=function(t,e,i,o,n){if(this.cache[t]&&"PROCESSING"==this.cache[t].status&&this.cache[t].status!=n)return{eventType:"END-PROCESS",launchOptions:this.launchOptions,pid:t,mid:e,label:this.labelMap[t],status:n,begin:i,end:o}},t.VA.Implementation.DataFlow.EventDetector=e}.call(this),function(){"use strict";var t=this.Brightics;function e(e){t.VA.Core.JobDelegator.call(this,e),this.runnable=null,this._abort=!1}e.prototype=Object.create(t.VA.Core.JobDelegator.prototype),e.prototype.constructor=e,e.prototype._start=function(t){var e={url:"api/va/v2/analytics/jobs/execute",data:JSON.stringify(t),type:"POST",contentType:"application/json; charset=utf-8",blocking:!1};return Promise.resolve($.ajax(e)).then(function(t){return JSON.parse(t)})},e.prototype._stop=function(t){var e={url:"api/va/v2/analytics/jobs/"+this.jobId+"/delete",type:"POST",blocking:!1,contentType:"application/json; charset=utf-8"};if(t){var i={type:t};e.data=JSON.stringify(i)}return $.ajax(e)},e.prototype._check=function(t){var e={url:"api/va/v2/analytics/jobs/"+t,type:"GET",blocking:!1};return $.ajax(e)},e.prototype._scheduleCheckStatus=function(t){var e=this,i=function(){e._check(t).done(function(o){e._abort?e._fireAbort({jobId:t,end:Date.now(),status:"ABORT",message:"Job aborted by user"}):"FAIL"===o.status?e._fireFail(o):"SUCCESS"===o.status?e._fireSuccess(o):"WAIT"===o.status?(e._firePending(o),setTimeout(i,500)):(e._fireStatus(o),setTimeout(i,500))}).fail(e._fireCatch.bind(e))};setTimeout(i,500)},e.prototype.start=function(t){var e=this;return this.runnable=t,this._start(t).then(function(t){return e.jobId=t.result,e._scheduleCheckStatus(t.result),t},e._fireCatch.bind(e))},e.prototype.stop=function(t){this._stop(t),this._abort=!0},t.VA.Implementation.DataFlow.Job=e}.call(this),function(){"use strict";this.Brightics.VA.Implementation.DataFlow.Editors.Diagram.Shapes.DiagramPaper=joint.dia.Paper.extend({sortViews:_.noop,initialize:function(){joint.dia.Paper.prototype.initialize.apply(this,arguments)}})}.call(this),function(){"use strict";var t=this.Brightics;t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.FnUnitFigure=joint.dia.Element.define("brtc.va.shapes.FnUnit",{fid:void 0,inputtable:void 0,outputtable:void 0,connectableFunctions:void 0,acceptableFunctions:void 0,z:2,size:{width:t.VA.Env.Diagram.FIGURE_WIDTH,height:t.VA.Env.Diagram.FIGURE_HEIGHT},colorSet:{READY:"#E5E9EF",DEPRECATED:"#D3D3D3",PROCESSING:"blue",SUCCESS:"#58bd7c",FAIL:"red"},ports:{groups:{"in:l":{z:2,size:0,position:{name:"left"},attrs:{magnet:!0}},"out:r":{z:2,size:0,position:{name:"right"},attrs:{magnet:!0}}},items:[{id:"in-left",group:"in:l"},{id:"out-right",group:"out:r"}]},attrs:{".brtc-va-bounds":{fill:"#DFDFEF","fill-opacity":0,width:t.VA.Env.Diagram.FIGURE_WIDTH,height:t.VA.Env.Diagram.FIGURE_HEIGHT},".brtc-va-outer":{fill:"#FFFFFF",ref:".brtc-va-bounds","ref-y":6,width:t.VA.Env.Diagram.FIGURE_WIDTH-5,height:t.VA.Env.Diagram.FIGURE_HEIGHT-12,rx:(t.VA.Env.Diagram.FIGURE_HEIGHT-12)/2,ry:(t.VA.Env.Diagram.FIGURE_HEIGHT-12)/2},".brtc-va-icon":{width:16,height:16,"xlink:href":"css/va/images/func-io-20.png",ref:".brtc-va-outer","ref-x":25,"ref-y":16},".brtc-va-label":{fill:"#667185",text:"",ref:".brtc-va-outer","ref-x":50,"ref-y":(t.VA.Env.Diagram.FIGURE_HEIGHT-8)/2,"y-alignment":"middle","font-size":"12px","font-family":"Arial, Dotum, Tahoma, sans-serif","font-weight":"bold"},".brtc-va-last-runtime":{fill:"#667185",text:"- -:- -:- -(-)",ref:".brtc-va-outer","ref-x":120,"ref-y":50,"font-size":10,"font-family":"Arial, Dotum, Tahoma, sans-serif","font-weight":"normal"},".brtc-va-inner":{fill:"#E5E9EF",ref:".brtc-va-bounds","ref-x":t.VA.Env.Diagram.FIGURE_WIDTH-6,"ref-y":t.VA.Env.Diagram.FIGURE_HEIGHT/2,"stroke-width":2,stroke:"#FFFFFF",r:5},".brtc-va-tooltip":{fill:"#FFFFFF",ref:".brtc-va-bounds","ref-x":8,"ref-y":t.VA.Env.Diagram.FIGURE_HEIGHT/2-15,"stroke-width":2,stroke:"#E5E9EF",r:10,display:"none"},".brtc-va-tooltip-icon":{width:18,height:18,"xlink:href":"css/va/images/func-memo-18x18.png",ref:".brtc-va-tooltip","ref-x":1,"ref-y":1,display:"none"}}},{markup:'<g class="brtc-va-fnunit-wrapper"> <rect class="brtc-va-bounds"/> <rect class="brtc-va-outer"/> <image class="brtc-va-icon"/> <text class="brtc-va-label"/> <text class="brtc-va-last-runtime"/> <circle class="brtc-va-inner"/> <circle class="brtc-va-tooltip"/> <image class="brtc-va-tooltip-icon"/> <title/></g>',portMarkup:'<circle class="fnunit-port" r="0"/>',portLabelMarkup:"<text/>",resource:{scala:{classification:{fill:"#E45A00",image:"css/va/images/func-classification-20-scala.png","selected-image":"css/va/images/func-classification-w-20.png"},evaluation:{fill:"#E45A00",image:"css/va/images/func-evaluation-20-scala.png","selected-image":"css/va/images/func-evaluation-w-20.png"},extraction:{fill:"#E45A00",image:"css/va/images/func-extraction-20-scala.png","selected-image":"css/va/images/func-extraction-w-20.png"},io:{fill:"#E45A00",image:"css/va/images/func-io-20-scala.png","selected-image":"css/va/images/func-io-w-20.png"},brightics:{opacity:"0.3","stroke-dasharray":"2,5",fill:"green",image:"css/va/images/func-script-20-scala.png","selected-image":"css/va/images/func-script-w-20.png"},control:{fill:"#36968B",image:"css/va/images/func-control-20.png","selected-image":"css/va/images/func-control-w-20.png"},process:{fill:"#9966FF",image:"css/va/images/func-process-20.png","selected-image":"css/va/images/func-process-w-20.png"},manipulation:{fill:"#E45A00",image:"css/va/images/func-manipulation-20-scala.png","selected-image":"css/va/images/func-manipulation-w-20.png"},regression:{fill:"#E45A00",image:"css/va/images/func-regression-20-scala.png","selected-image":"css/va/images/func-regression-w-20.png"},statistics:{fill:"#E45A00",image:"css/va/images/func-statistics-20-scala.png","selected-image":"css/va/images/func-statistics-w-20.png"},transform:{fill:"#E45A00",image:"css/va/images/func-transform-20-scala.png","selected-image":"css/va/images/func-transform-w-20.png"},textanalytics:{fill:"#E45A00",image:"css/va/images/func-textanalytics-20.png","selected-image":"css/va/images/func-textanalytics-w-20.png"},script:{fill:"#E45A00",image:"css/va/images/func-script-20-scala.png","selected-image":"css/va/images/func-script-w-20.png"},streaming:{fill:"#E45A00",image:"css/va/images/func-streaming-20.png","selected-image":"css/va/images/func-streaming-w-20.png"},deeplearning:{fill:"#E45A00",image:"css/va/images/func-deeplearning-20-scala.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},bigdata:{fill:"#E45A00",image:"css/va/images/func-bigdata-20.png","selected-image":"css/va/images/func-bigdata-w-20.png"},udf:{fill:"#DD92EC",image:"css/va/images/func-udf-normal.png","selected-image":"css/va/images/func-udf-select.png"},clustering:{fill:"#E45A00",image:"css/va/images/func-clustering-20-scala.png","selected-image":"css/va/images/func-clustering-w-20.png"},recommendation:{fill:"#E45A00",image:"css/va/images/func-recommendation-20-scala.png","selected-image":"css/va/images/func-recommendation-w-20.png"},timeseries:{fill:"#E45A00",image:"css/va/images/func-timeseries-20-scala.png","selected-image":"css/va/images/func-timeseries-w-20.png"},autonomousanalytics:{fill:"#E45A00",image:"css/va/images/func-autonomousanalytics-20-scala.png","selected-image":"css/va/images/func-autonomousanalytics-w-20.png"},opt:{fill:"#E45A00",image:"css/va/images/func-opt-20-scala.png","selected-image":"css/va/images/func-opt-w-20.png"},ad:{fill:"#E45A00",image:"css/va/images/func-ad-20-scala.png","selected-image":"css/va/images/func-ad-w-20.png"},unknown:{fill:"red",image:"css/va/images/func-unknown-20.png","selected-image":"css/va/images/func-unknown-w-20.png"},"core-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"convolutional-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"pooling-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},application:{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"recurrent-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"merge-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"normalization-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"advanced-activations-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"}},python:{classification:{fill:"#366E9D",image:"css/va/images/func-classification-20-python.png","selected-image":"css/va/images/func-classification-w-20.png"},evaluation:{fill:"#366E9D",image:"css/va/images/func-evaluation-20-python.png","selected-image":"css/va/images/func-evaluation-w-20.png"},extraction:{fill:"#366E9D",image:"css/va/images/func-extraction-20-python.png","selected-image":"css/va/images/func-extraction-w-20.png"},io:{fill:"#366E9D",image:"css/va/images/func-io-20-python.png","selected-image":"css/va/images/func-io-w-20.png"},brightics:{opacity:"0.3","stroke-dasharray":"2,5",fill:"green",image:"css/va/images/func-script-20-python.png","selected-image":"css/va/images/func-script-w-20.png"},control:{fill:"#36968B",image:"css/va/images/func-control-20.png","selected-image":"css/va/images/func-control-w-20.png"},process:{fill:"#9966FF",image:"css/va/images/func-process-20.png","selected-image":"css/va/images/func-process-w-20.png"},manipulation:{fill:"#366E9D",image:"css/va/images/func-manipulation-20-python.png","selected-image":"css/va/images/func-manipulation-w-20.png"},regression:{fill:"#366E9D",image:"css/va/images/func-regression-20-python.png","selected-image":"css/va/images/func-regression-w-20.png"},statistics:{fill:"#366E9D",image:"css/va/images/func-statistics-20-python.png","selected-image":"css/va/images/func-statistics-w-20.png"},transform:{fill:"#366E9D",image:"css/va/images/func-transform-20-python.png","selected-image":"css/va/images/func-transform-w-20.png"},textanalytics:{fill:"#366E9D",image:"css/va/images/func-textanalytics-20-python.png","selected-image":"css/va/images/func-textanalytics-w-20.png"},script:{fill:"#366E9D",image:"css/va/images/func-script-20-python.png","selected-image":"css/va/images/func-script-w-20.png"},streaming:{fill:"#366E9D",image:"css/va/images/func-streaming-20-python.png","selected-image":"css/va/images/func-streaming-w-20.png"},deeplearning:{fill:"#366E9D",image:"css/va/images/func-deeplearning-20-python.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},bigdata:{fill:"#366E9D",image:"css/va/images/func-bigdata-20.png","selected-image":"css/va/images/func-bigdata-w-20.png"},udf:{fill:"#DD92EC",image:"css/va/images/func-udf-normal.png","selected-image":"css/va/images/func-udf-select.png"},clustering:{fill:"#366E9D",image:"css/va/images/func-clustering-20-python.png","selected-image":"css/va/images/func-clustering-w-20.png"},recommendation:{fill:"#366E9D",image:"css/va/images/func-recommendation-20-python.png","selected-image":"css/va/images/func-recommendation-w-20.png"},timeseries:{fill:"#366E9D",image:"css/va/images/func-timeseries-20-python.png","selected-image":"css/va/images/func-timeseries-w-20.png"},autonomousanalytics:{fill:"#366E9D",image:"css/va/images/func-autonomousanalytics-20-python.png","selected-image":"css/va/images/func-autonomousanalytics-w-20.png"},opt:{fill:"#366E9D",image:"css/va/images/func-opt-20-python.png","selected-image":"css/va/images/func-opt-w-20.png"},ad:{fill:"#366E9D",image:"css/va/images/func-ad-20-python.png","selected-image":"css/va/images/func-ad-w-20.png"},unknown:{fill:"red",image:"css/va/images/func-unknown-20.png","selected-image":"css/va/images/func-unknown-w-20.png"},"core-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"convolutional-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"pooling-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},application:{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"recurrent-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"},"advanced-activations-layer":{fill:"#4CB87D",image:"css/va/images/func-deeplearning-20.png","selected-image":"css/va/images/func-deeplearning-w-20.png"}},sql:{udf:{fill:"#d771eb",image:"css/va/images/func-udf-normal.png","selected-image":"css/va/images/func-udf-select.png"}}},getColor:function(){var t=this.prop("category"),e=this.prop("context");return(this.resource[e][t]||this.resource[e].io).fill},select:function(){this.prop("selected",!0);var t=this.prop("category"),e=this.prop("context"),i={},o=this.resource[e][t]||this.resource[e].io;if(t&&o&&o.fill&&(i[".brtc-va-outer"]={opacity:o.opacity||1},i[".brtc-va-outer"]={fill:o.fill},i[".brtc-va-inner"]={stroke:o.fill},i[".brtc-va-icon"]={"xlink:href":o["selected-image"]}),this.prop("deprecated")){var n=this.prop(["colorSet","DEPRECATED"]);i[".brtc-va-outer"]={fill:n},i[".brtc-va-inner"]={stroke:n}}i[".brtc-va-label"]={fill:"#FFFFFF"},this.attr(i)},unselect:function(){this.prop("selected",!1);var t=this.prop("category"),e=this.prop("context"),i=["unknown","brightics"],o=this.resource[e][t]||this.resource[e].io,n={".brtc-va-outer":{opacity:o.opacity||1,fill:i.indexOf(t)>-1?o.fill:"#FFFFFF"},".brtc-va-label":{fill:i.indexOf(t)>-1?"#FFFFFF":"#667185"},".brtc-va-inner":{stroke:i.indexOf(t)>-1?o.fill:"#FFFFFF"}};if(this.prop("deprecated")){var a=this.prop(["colorSet","DEPRECATED"]);$.extend(!0,n,{".brtc-va-outer":{fill:a},".brtc-va-inner":{stroke:a}})}t&&o&&o.image&&$.extend(!0,n,{".brtc-va-icon":{"xlink:href":o.image}}),this.attr(n)},label:function(e,i){if(e){this.originalLabel=e;var o,n=i||1,a=e;if(n<.7){a=e.replace(/\s/g,""),o=(a=joint.util.breakText(a,{width:(t.VA.Env.Diagram.FIGURE_WIDTH-80)*n},{"font-size":12*n,"font-family":"Arial, Dotum, Tahoma, sans-serif","font-weight":"bold"})).split("\n");let i={"text.brtc-va-label":{text:a=(a=o.length>1?o[0]+"...":o[0]).replace(/\u0006/g," "),ref:".brtc-va-outer","ref-x":50,"ref-y":27,"y-alignment":"middle"}};this.attr(i)}else{(o=(a=joint.util.breakText(a,{width:(t.VA.Env.Diagram.FIGURE_WIDTH-80)*n},{"font-size":12*n,"font-family":"Arial, Dotum, Tahoma, sans-serif","font-weight":"bold"})).split("\n")).length>2&&(a=o[0]+"\n"+o[1]+"...");let e={"text.brtc-va-label":{text:a,ref:".brtc-va-outer","ref-x":50,"ref-y":25,"y-alignment":"middle"}};this.attr(e)}}else console.log("label is undefined !!!")},lastRuntime:function(t){this.attr("text.brtc-va-last-runtime/text",t)},resetRuntime:function(){this.attr("text.brtc-va-last-runtime/text","- -:- -:- -(-)")},tooltip:function(t){},category:function(t){var e=t.category,i=t.defaultFnUnit.context||"scala";let o;this.prop("category",e),this.prop("context",i);var n=this.resource[i][e]?this.resource[i][e].image:this.resource[i].io.image;"unknown"===e?o={".brtc-va-outer":{fill:this.resource[i][e].fill},".brtc-va-inner":{stroke:this.resource[i][e].fill},".brtc-va-icon":{"xlink:href":this.resource[i][e]["selected-image"]},".brtc-va-label":{fill:"#FFFFFF"}}:"brightics"===e?o={".brtc-va-outer":{fill:this.resource[i][e].fill,opacity:this.resource[i][e].opacity}}:(this.attr(".brtc-va-icon/xlink:href",n),o={".brtc-va-icon":{"xlink:href":n}}),this.attr(o)},updateStatus:function(t){this.attr(".brtc-va-inner/fill",this.prop(["colorSet",t])),"FAIL"===t&&this.showError(),"SUCCESS"===t&&this.hideError()},refresh:function(){var t=this.prop(["colorSet","READY"]);this.attr({".brtc-va-outer":{stroke:t},".brtc-va-inner":{fill:t}})},showError:function(){var t=this.prop(["colorSet","FAIL"]);this.attr(".brtc-va-outer/stroke",t)},hideError:function(){var t=this.prop(["colorSet","READY"]);this.attr(".brtc-va-outer/stroke",t)},showToolTipIcon:function(){this.attr({".brtc-va-tooltip":{display:"block"},".brtc-va-tooltip-icon":{display:"block"}})},hideToolTipIcon:function(){this.attr({".brtc-va-tooltip":{display:"none"},".brtc-va-tooltip-icon":{display:"none"}})},setOnShade:function(){this.attr({"text.brtc-va-label":{opacity:".25"},".brtc-va-icon":{opacity:".25"},"shade-type":"on"})},setOffShade:function(){"on"===this.attr("shade-type")&&this.attr({"text.brtc-va-label":{opacity:"1"},".brtc-va-icon":{opacity:"1"},"shade-type":"off"})},setCursorType:function(t){this.attr(".brtc-va-fnunit-wrapper/cursor",t)},setDeprecated:function(t){var e=this.prop(["colorSet","DEPRECATED"]);this.prop("deprecated",!0),this.attr({title:{text:"Deprecated: "+t},".brtc-va-label":{"text-decoration":"line-through"},".brtc-va-outer":{fill:e},".brtc-va-inner":{stroke:e}})}})}.call(this),function(){"use strict";this.Brightics.VA.Implementation.DataFlow.Editors.Diagram.Shapes.LinkFigure=joint.dia.Link.define("brtc.va.shapes.Link",{z:1,router:{name:"metro"},connector:{name:"rounded"},attrs:{wrapper:{connection:!0,strokeWidth:10,strokeLinejoin:"round"},line:{connection:!0,stroke:"#9FA7A2",strokeWidth:2,strokeLinejoin:"round",targetMarker:{type:"path",d:"M 10 -5 0 0 10 5 z"}}},kid:void 0,sourceFid:void 0,targetFid:void 0},{markup:[{tagName:"path",selector:"wrapper",className:"connection-wrap",attributes:{fill:"none",cursor:"pointer",stroke:"transparent"}},{tagName:"path",selector:"line",attributes:{fill:"none","pointer-events":"none"}}],renderLabels:function(){return this},renderTools:function(){return this},renderVertexMarkers:function(){return this},renderArrowheadMarkers:function(){return this},select:function(){this.prop("selected",!0),this.attr({line:{stroke:"#8993DE",strokeWidth:4}})},unselect:function(){this.prop("selected",!1),this.attr({line:{stroke:"#9FA7A2",strokeWidth:2}})}})}.call(this),function(){"use strict";var t=this.Brightics,e=brtc_require("FnUnitUtils"),i="default",o=function(t){return t&&0===t.movementX&&0===t.movementY};function n(e,o){this.MAX_FUNC_COUNT=t.VA.SettingStorage.getValue("editor.maxfuncnum"),this.MAX_FUNC_MESSAGE="You can only add up to "+this.MAX_FUNC_COUNT+".",this.parentId=e,this.options=o,this.options.scale=this.options.scale||1,this.opacity4transition={duration:1e3,timingFunction:joint.util.timing.inout,valueFunction:function(t,e){return function(t){return Math.max(.2,e+t)}}},this.translateProblems={},this._highlightedViews=[],this._selectedLinkViews=[],this._selectedElements=[],this.dropContents=null,this.dropFigures=[],this.dropLinks=[],this.behaviorMode=i,this.toolItems={},this.retrieveParent(),this.createControls(),this.registerDebugListener(),this.render(),this.registerCommandEventListener(),this.registerGoHistoryEventListener(),this.prvFnUnitSelectTrigger={};var n=this.graph.getElements();if(n.length>0){var a=n[0];for(var r in n)a.attributes.position.x>n[r].attributes.position.x&&(a=n[r]);this.ensureCenter(a)}this.updateMiniMapWindow(),t.OptModelManager.renderOptModels(this)}n.prototype.retrieveParent=function(){this.$parent=t.VA.Core.Utils.WidgetUtils.retrieveWidget(this.parentId)},n.prototype.createControls=function(){this.$mainControl=$('<div class="brtc-va-editors-diagram-diagrameditorpage brtc-style-editor-editorpage"></div>'),this.$parent.append(this.$mainControl);var t=$('<div class="brtc-va-editors-diagram-diagrameditorpage-paper"></div>');this.$mainControl.append(t),this.createMainPanel(),this.createDiagramPaper(),this.$createCue=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-cue-create"> <div class="brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label-wrapper"> <div class="brtc-va-editors-diagram-diagrameditorpage-function-cue"> <div class="brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label">Click</div> <div class="brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label">to add Function</div> </div> <div class="brtc-va-editors-diagram-diagrameditorpage-function-cue-create-icon"></div> </div></div>'),this.$selectedBounds=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected"></div>'),this.$toolTip=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip"></div>'),this.$toolbar=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-toolbar"></div>'),this.$guideBox=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-guidebox"></div>'),this.$guideMessageBox=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-guidemessage"></div>'),this.$dragSelection=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-drag-selection"></div>'),t.append(this.$createCue),t.append(this.$selectedBounds),t.append(this.$toolTip),t.append(this.$toolbar),t.append(this.$guideBox),t.append(this.$guideMessageBox),t.append(this.$dragSelection),this.createFnUnitToolbar(),this.createMultiSelectionToolbar(),this.createCue(),this._createMiniMapControl(),this.changeScale(this.options.scale)},n.prototype.createMainPanel=function(){var t=this;this.$mainControl.perfectScrollbar(),this.$mainControl.scroll(function(){t.updateMiniMapWindow()}),this.$mainControl.hover(function(){t.fitToContent()},function(){t.fitToContent()}),this.$mainControl.mouseleave(function(){t.switchFnUnitDialog||t.hideCue()})},n.prototype.createDiagramPaper=function(){this.$paperElement=this.$mainControl.find(".brtc-va-editors-diagram-diagrameditorpage-paper"),this.graph=new joint.dia.Graph,this.paper=new joint.dia.Paper({sortViews:_.noop,el:this.$paperElement,width:this.options.width,height:this.options.height,model:this.graph,snapLinks:!1,markAvailable:!1,linkPinning:!1,multiLinks:!1,gridSize:10,theme:"none",clickThreshold:3,interactive:function(t){return t.model instanceof joint.dia.Link?{linkMove:!1,labelMove:!1,arrowheadMove:!0,vertexMove:!1,vertexAdd:!1,vertexRemove:!1,useLinkTools:!1}:{elementMove:!1}}}),this.paper.on("element:pointerdblclick",this.handleElementPointerDblClick.bind(this)),this.paper.on("element:pointerclick",this.handleElementPointerClick.bind(this)),this.paper.on("element:pointermove",this.handleElementPointerMove.bind(this)),this.paper.on("element:pointerup",this.handleElementPointerUp.bind(this)),this.paper.on("element:mouseenter",this.handleElementMouseEnter.bind(this)),this.paper.on("element:mouseleave",this.handleElementMouseLeave.bind(this)),this.paper.on("link:pointerclick",this.handleLinkPointerClick.bind(this)),this.paper.on("link:pointermove",this.handleLinkPointerMove.bind(this)),this.paper.on("link:pointerup",this.handleLinkPointerUp.bind(this)),this.paper.on("link:mouseenter",this.handleLinkMouseEnter.bind(this)),this.paper.on("link:mouseleave",this.handleLinkMouseLeave.bind(this)),this.paper.on("blank:pointerclick",this.handleBlankPointerClick.bind(this)),this.paper.on("blank:pointermove",this.handleBlankPointerMove.bind(this)),this.paper.on("blank:pointerup",this.handleBlankPointerUp.bind(this)),this.paper.on("blank:mousewheel",this.handleBlankMouseWheel.bind(this)),this.$paperElement.mousemove(this.handleBlankMouseOver.bind(this)),this.paper.on("render:done",function(){console.log("render:done")}),this.graph.on("remove",this.handleGraphRemove.bind(this)),this.makeDroppable()},n.prototype.handleElementPointerDblClick=function(t,e,i,o){"link"===this.behaviorMode?(this._isConnectableCell(t.model)?this._handleLinkCellPointerClick(t,e,i,o):(this._handleDefaultCellPointerClick(t,e,i,o),this._triggerFnUnitDbClick()),this._setBehaviorModeToDefault()):(this._handleDefaultCellPointerClick(t,e,i,o),this._triggerFnUnitDbClick())},n.prototype.handleElementPointerClick=function(t,e,i,o){"link"===this.behaviorMode?(this._isConnectableCell(t.model)?this._handleLinkCellPointerClick(t,e,i,o):(this._handleDefaultCellPointerClick(t,e,i,o),this._triggerFnUnitSelect()),this._setBehaviorModeToDefault()):(this._handleDefaultCellPointerClick(t,e,i,o),this._triggerFnUnitSelect())},n.prototype._handleLinkCellPointerClick=function(e,i,o,n){var a=this._fromCell,r=e.model,s=t.VA.Core.Utils.IDGenerator.link.id(),l=this._createLinkFigure(s,a,r);this.graph.addCells([l]);var d=this.createConnectFnUnitCommand(l);this.fireCommand(d)||(l.remove(),this.notification("warning","No connection could be made.")),e.unhighlight()},n.prototype._handleDefaultCellPointerClick=function(t,e,i,o){var n=t.model;e.ctrlKey||(this._unselectAllLinkViews(),this._unselectAllElements()),this._selectElement(n),this.showSelectionBox()},n.prototype.handleElementPointerMove=function(t,e,i,o){if("link"===this.behaviorMode)return void e.stopPropagation();var n=function(t){return`x:${t.clientX},y:${t.clientY}`};let a=this,r=t.model;e.data.dragging?_.throttle(function(){a.forceScrollTo(e,i,o);var t=e.data;if(t.ghost){var n=e.data.boxMap;t.ghost.children().forEach(t=>{let e=n[t.id];t.attr({x:i-e.dx,y:o-e.dy})})}},100)():e.data.originalPositionStr&&e.data.originalPositionStr!==n(e)?(e.data.dragging=!0,a.dragging=!0,-1===this._selectedElements.indexOf(r)&&(this._unselectAllElements(),this._selectElement(r)),this._configureDragEvent(t,e,i,o),this._triggerFnUnitMove(),this._unselectAllLinkViews(),this.showGuideBox(r),this.hideCue(),this.hideGuideMessage(),this.hideSelectionBox(),this.hideTools(!0)):e.data.originalPositionStr=e.data.originalPositionStr||n(e)},n.prototype._configureDragEvent=function(e,i,o,n){var a=V("g");a.appendTo(this.paper.viewport);var r={};this._selectedElements.map(e=>{let i=V("rect"),s=e.getBBox();i.attr({x:s.x,y:s.y+6,fill:"transparent",stroke:e.getColor(),"stroke-dasharray":"4,4","stroke-width":4,width:t.VA.Env.Diagram.FIGURE_WIDTH-5,height:t.VA.Env.Diagram.FIGURE_HEIGHT-12,rx:(t.VA.Env.Diagram.FIGURE_HEIGHT-12)/2,ry:(t.VA.Env.Diagram.FIGURE_HEIGHT-12)/2}),r[i.id]=s,r[i.id].dx=o-s.x,r[i.id].dy=n-s.y-6,r[i.id].figure=e,a.append(i)}),i.data.ghost=a,i.data.boxMap=r},n.prototype.handleElementPointerUp=function(e,i,o,n){var a=e.model,r=this;if(i.data.dragging){i.data.dragging=!1,r.dragging=!1;var s=[],l=[],d=i.data;if(d.ghost){let t,e;for(var c in d.ghost.remove(),d.boxMap)t=d.boxMap[c],e=this.calcGuideLocation(o-t.dx,n-t.dy),t.figure.position(e.x,e.y),s.push(t.figure),l.push({figure:t.figure,position:e})}var p=Object.values(this.validateTranslate(s))[0];if(p)this.notification("warning",p),$.each(s,function(t,e){r._revertPosition(e)});else{var h=new t.VA.Core.CompoundCommand(r,{label:"Change Position"});$.each(l,function(t,e){var i=e.figure,o=e.position,n=r.getFnUnitById(i.prop("fid"));n.display.diagram.position.x===o.x&&n.display.diagram.position.y===o.y||h.add(r.createSetFnUnitPositionCommand(i,o.x,o.y))}),this.fireCommand(h),1==s.length&&setTimeout(function(){r.ensureCenter(a)},100),this._rerouteLink()}this.hideGuideBox(),this.hideGuideMessage(),this.showSelectionBox(),this.showTools(a)}},n.prototype.handleElementMouseEnter=function(t,e){if("link"===this.behaviorMode){for(var i=0;i<this._connectableFigures.length;i++)if(this._connectableFigures[i].cid===t.model.cid){t.highlight();break}}else this.showTools(t.model),this.showToolTip(t.model)},n.prototype.handleElementMouseLeave=function(t,e){t.model!==this._fromCell&&t.unhighlight(),this.hideTools(),this.hideToolTip()},n.prototype.handleLinkPointerClick=function(t,e,i,o){this._setBehaviorModeToDefault(),this._unselectAllLinkViews(),this._unselectAllElements(),this.hideSelectionBox(),this.addLinkTools(t),this._selectLinkView(t),this._triggerFnUnitSelect(),this.$guideBox&&this.$guideBox.hide()},n.prototype.handleLinkPointerMove=function(t,e,i,o){var n=function(t){return JSON.stringify(t.sourceAnchor)+JSON.stringify(t.targetAnchor)},a=this;e.data.dragging?_.throttle(function(){a.fitToContent(),a.forceScrollTo(e,i,o)},100)():e.data.originalAnchorStr&&e.data.originalAnchorStr!==n(t)?(e.data.dragging=!0,this.dragging=!0,this._triggerFnUnitMove(),this.hideCue()):e.data.originalAnchorStr=e.data.originalAnchorStr||n(t)},n.prototype.handleLinkPointerUp=function(t,e,i,o){if(e.data.dragging){e.data.dragging=!1,this.dragging=!1;let i=t.model;var n=i.getSourceElement(),a=i.getTargetElement(),r=n.prop("fid"),s=a.prop("fid");i.prop({sourceFid:r,targetFid:s});var l=this.validateConnect([i]);if(l)this.notification("warning",l),this._revertLink(i);else{i.set({source:{id:n.id,port:"out-right"},target:{id:a.id,port:"in-left"},sourceFid:r,targetFid:s});var d=this.createReconnectFnUnitCommand(i);this.fireCommand(d)}this._unselectAllLinkViews(),this._selectLinkView(t),this.addLinkTools(t)}},n.prototype.handleLinkMouseEnter=function(t,e,i,o){},n.prototype.handleLinkMouseLeave=function(t,e,i,o){},n.prototype.handleBlankPointerClick=function(e,i,o){this._unselectAllLinkViews(),this._setBehaviorModeToDefault(),"hidden"!==this.getEditor().getSheetEditorPageArea().css("visibility")&&"true"!==t.VA.SettingStorage.getValue("editor.closePanelOnClick")||(this._unselectAllElements(),this.hideSelectionBox(),this._triggerFnUnitSelect())},n.prototype.handleBlankPointerMove=function(t,e,i){var n=this;if(t.data.dragging)_.throttle(function(){var e=n.$paperElement.offset(),i=t.pageX-e.left,o=t.pageY-e.top,a=n.$dragSelection.attr("start-x"),r=n.$dragSelection.attr("start-y");n.$dragSelection.css({left:Math.min(i,a),top:Math.min(o,r),width:Math.abs(i-a),height:Math.abs(o-r)}),n.forceScrollTo(t,i,o)},200)();else{if(o(t.originalEvent))return;t.data.dragging=!0,n.dragging=!0,this._unselectAllElements(),this._unselectAllLinkViews(),this._triggerFnUnitSelect(),this.hideSelectionBox(),this.hideTools(),this.hideToolTip(),this.$dragSelection.css({display:"block",width:0,height:0}),this.$dragSelection.attr("start-x",e*this.options.scale),this.$dragSelection.attr("start-y",i*this.options.scale)}},n.prototype.handleBlankPointerUp=function(t,e,i){var o=this;if(t.data.dragging){t.data.dragging=!1,o.dragging=!1;var n=this.$dragSelection.width(),a=this.$dragSelection.height();if(n>10&&a>10){var r=this.$dragSelection.position(),s=new g.rect(r.left/this.options.scale,r.top/this.options.scale,n/this.options.scale,a/this.options.scale),l=this.graph.findModelsInArea(s);l.length>0&&(this._selectElements(l),this.showSelectionBox(),1===l.length&&setTimeout(function(){o.ensureCenter(l[0])},100)),this._triggerFnUnitSelect()}this.$dragSelection.css({display:"none"})}},n.prototype.handleBlankMouseWheel=function(t,e,i,o){if(t.ctrlKey){var n=this.options.scale;n+=.2*o,n=Math.min(n,1),n=Math.max(n,.2),this.changeScale(parseFloat(n.toFixed(1))),t.stopPropagation(),t.preventDefault()}},n.prototype.handleBlankMouseOver=function(e,i,n){var a=this;this.options.scale<.6||_.throttle(function(){if(!a.dragging&&!a.dropping){var i=a.$paperElement.offset(),n=e.pageX-i.left,r=e.pageY-i.top,s=a.GAP_WIDTH||t.VA.Env.Diagram.GAP_WIDTH,l=a.GAP_HEIGHT||t.VA.Env.Diagram.GAP_HEIGHT,d=t.VA.Env.Diagram.FIGURE_WIDTH+s,c=t.VA.Env.Diagram.FIGURE_HEIGHT+l,p=n%Number.parseInt(d*a.options.scale),h=r%Number.parseInt(c*a.options.scale);if(n-=p,n+=Number.parseInt(t.VA.Env.Diagram.PAPER_MARGIN_LEFT*a.options.scale),r-=h,r+=Number.parseInt(t.VA.Env.Diagram.PAPER_MARGIN_TOP*a.options.scale),0===a.graph.findModelsFromPoint({x:n/a.options.scale,y:r/a.options.scale}).length&&!o(e.originalEvent)){a.$createCue.attr("mousedown","false"),a.$createCue.css({display:"flex",left:n,top:r});var u="true"!==t.VA.SettingStorage.getValue("editor.function.add.doubleclick")?"Click":"Double-Click";a.$createCue.find(".brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label").first().text(u)}}},200)()},n.prototype.handleGraphRemove=function(t,e,i){if(t.isLink()&&!0===i.ui){var o=this.createDisconnectFnUnitCommand(t);this.fireCommand(o),this.notification("success","The connection was removed.")}},n.prototype._unselectAllLinkViews=function(){this._selectedLinkViews.length&&(this._selectedLinkViews.map(t=>{t.removeTools(),t.model.unselect()}),this._selectedLinkViews=[])},n.prototype._selectLinkViews=function(t){t.map(t=>t.model.select()),this._selectedLinkViews=t},n.prototype._selectLinkView=function(t){this._selectLinkViews([t])},n.prototype._unselectAllElements=function(){this._selectedElements.length&&(this._selectedElements.map(t=>t.unselect()),this._selectedElements=[])},n.prototype._unselectElements=function(t){t.map(t=>t.unselect()),this._selectedElements=this._selectedElements.filter(e=>-1===t.indexOf(e))},n.prototype._unselectElement=function(t){this._unselectElements([t])},n.prototype._selectAllElements=function(){this._selectedElements=$.extend(!0,[],this.graph.getElements()),this._selectedElements.map(t=>t.select())},n.prototype._selectElements=function(t){t.map(t=>t.select()),this._selectedElements=this._selectedElements.concat(t)},n.prototype._selectElement=function(t){this._selectElements([t])},n.prototype._triggerFnUnitDbClick=function(){this.$parent.trigger("fnUnit:dbclick",[this._selectedElements.map(t=>t.prop("fid"))])},n.prototype._triggerFnUnitSelect=function(){this.$parent.trigger("fnUnit:select",[this._selectedElements.map(t=>t.prop("fid"))])},n.prototype._triggerFnUnitMove=function(){this.$parent.trigger("fnUnit:move")},n.prototype._triggerMouseLeave=function(){this.$parent.trigger("mouseleave")},n.prototype.forceScrollTo=function(t,e,i){let o=this,n=120,a=220,r=50,s=220;_.throttle(function(){let e=t.clientX,i=t.clientY,l=o.$mainControl.scrollLeft(),d=o.$mainControl.scrollTop(),c=document.querySelector("html").clientWidth,p=document.querySelector("html").clientHeight,h=!1;i<n&&d>0&&(h=!0,d-=20),e>c-a&&(h=!0,l+=20),i>p-r&&(h=!0,d+=20),e<s&&l>0&&(h=!0,l-=20),h&&(o.$mainControl.scrollLeft(l),o.$mainControl.scrollTop(d))},200)()},n.prototype.createFnUnitToolbar=function(){var t=this;this.$tools=this.$mainControl.find(".brtc-va-editors-diagram-diagrameditorpage-function-toolbar"),this.$tools.hover(function(){t.clearHideToolsTimer()},function(){t.hideTools(!1)}),this.createRemoveToolItem(),this.createClearLinkToolItem(),this.createShiftLeftToolItem(),this.createShiftRightToolItem(),this.createSwitchToolItem(),this.createConnectToolItem(),this.createCloneToolItem(),this.createEnterToolItem(),this.createPopupToolItem()},n.prototype.createRemoveToolItem=function(){var t=this,e=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-remove" title="Remove"></div>');this.$tools.append(e),e.click(function(){var e=t.$tools.attr("cid"),i=t.graph.getCell(e);t._unselectElement(i),t.removeFnUnitFigure(i),t._unselectAllLinkViews(),t.showSelectionBox(),t._triggerFnUnitSelect(),t.hideTools(!0)}),this.toolItems.remove=e},n.prototype.createClearLinkToolItem=function(){var t=this,e=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-clearlink"><i class="fa fa-chain-broken"></i></div>');this.$tools.append(e),e.click(function(){var e=t.$tools.attr("cid"),i=t.graph.getCell(e);t.removeFnUnitLink(i)}),this.toolItems.clearLink=e},n.prototype.createShiftLeftToolItem=function(){var t=this,e=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-shiftleft brtc-style-flex-center"><i class="fa fa-angle-double-left fa-lg"></i></div>');this.$tools.append(e),e.click(function(){var e=t.$tools.attr("cid"),i=t.graph.getCell(e),o=t.createShiftLeftCommand(i);!1===t.fireCommand(o)?t.notification("warning",o.message):(t.hideSelectionBox(),t.showSelectionBox())}),this.toolItems.shiftLeft=e},n.prototype.createShiftRightToolItem=function(){var t=this,e=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-shiftright brtc-style-flex-center"><i class="fa fa-angle-double-right fa-lg"></i></div>');this.$tools.append(e),e.click(function(){var e=t.$tools.attr("cid"),i=t.graph.getCell(e),o=t.createShiftRightCommand(i);t.fireCommand(o),t.hideSelectionBox(),t.showSelectionBox()}),this.toolItems.shiftRight=e},n.prototype.createSwitchToolItem=function(){var e=this,i=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-switch" title="Change Function"></div>');this.$tools.append(i),i.click(function(i){var o=e.$tools.attr("cid"),n=e.graph.getCell(o),a=e.getModel().getPrevious(n.attributes.fid);e.switchFnUnitDialog=new t.VA.Core.Dialogs.SwitchFnUnitDialog($(i.target),{preFnUnit:e.getFnUnitById(a[0]),modelType:e.getModel().type,close:function(t){if(t.OK){var i=e.$tools.attr("cid"),o=e.graph.getCell(i),n=e.getFnUnitById(o.attributes.fid);if(n.func!==t.func){var a=e.getModel().newFnUnit(t.func);a.display.diagram.position=$.extend({},n.display.diagram.position);var r=e.createSwitchFnUnitCommand(o,a,n);r.event.source=this,e.fireCommand(r)}}e.switchFnUnitDialog=null}})}),this.toolItems.switch=i},n.prototype.createConnectToolItem=function(){var e,i,o=this,n=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-connect" title="Connect"></div>');this.$tools.append(n),n.click(function(){var t=o.$tools.attr("cid");e=o.graph.getCell(t);var i=o.paper.findViewByModel(e);o._highlightedViews.push(i),i.highlight(),o._connectableFigures=o._findConnectableFigures(e),o._fromCell=e,o._unselectAllLinkViews(),o._unselectAllElements(),o.hideSelectionBox(),o._setBehaviorModeToLink(),o._triggerFnUnitSelect()}),n.draggable({appendTo:o.$paperElement,helper:function(t){return $('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools-link-helper"></div>')},start:function(n,a){o.dragging=!0,o._unselectAllLinkViews();var r=o.$tools.attr("cid");e=o.graph.getCell(r);var s=t.VA.Core.Utils.IDGenerator.link.id();i=o._createLinkFigure(s,e,{x:a.position.left/o.options.scale,y:a.position.top/o.options.scale}),o.graph.addCells([i]),a.helper.attr("cid",i.cid)},drag:function(t,n){var a=t.pageX-o.$paperElement.offset().left,r=t.pageY-o.$paperElement.offset().top,s=a/o.options.scale,l=r/o.options.scale,d=o.graph.findModelsFromPoint({x:s,y:l});o._unhighlightAll();var c=e;if(d.length>0&&o._isConnectableFnUnit(c,d[0])){i.set("target",{id:d[0].id,port:"in-left"});var p=o.paper.findViewByModel(d[0]);o._highlightedViews.push(p),p.highlight()}else i.set("target",{x:s,y:l});_.throttle(function(){o.fitToContent(),o.forceScrollTo(t,s,l)},200)()},stop:function(t,e){o.dragging=!1;var n=t.pageX-o.$paperElement.offset().left,a=t.pageY-o.$paperElement.offset().top;o._unhighlightAll();var r=o.graph.findModelsFromPoint({x:n/o.options.scale,y:a/o.options.scale});if(r.length>0)if(i.attributes.source.id===r[0].id)i.remove(),o.notification("warning","No connection could be made because connection loop.");else{i.prop({targetFid:r[0].prop("fid")});var s=o.validateConnect([i]);if(s)o.notification("warning",s),i.remove();else{var l=o.createConnectFnUnitCommand(i);o.fireCommand(l)||(i.remove(),o.notification("warning","No connection could be made because connection already exists."))}}else i.remove(),o.notification("warning","No connection could be made.")},scope:"tasks"}),this.toolItems.connect=n},n.prototype.createCloneToolItem=function(){var i=this,o=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-clone" title="Duplicate"></div>');this.$tools.append(o),o.click(function(){i.notification("info","Click and drag to clone function")}),o.draggable({appendTo:i.$paperElement,helper:function(t){return $('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools-clone-helper"></div>')},start:function(o,n){i.dragging=!0;var a=i.$tools.attr("cid"),r=i.graph.getCell(a),s=r.clone();s.unselect(),s.resetRuntime();var l={functions:[_.cloneDeep(i.getFnUnitById(s.attributes.fid))],links:[],innerModels:{},type:"data"};l.innerModels=i._collectInnerModels(i.getEditor().getModel(),l);var d=t.VA.Core.Utils.ModelUtils.cloneModel(l);i.duplicatedFnUnit=d.functions[0],e.clearInData(i.duplicatedFnUnit),i.duplicatedDummyModel=d,s.attributes.dummy=!0,s.attributes.fid=i.duplicatedFnUnit.fid;var c=n.position.left/i.options.scale-r.attributes.position.x,p=n.position.top/i.options.scale-r.attributes.position.y;s.translate(c,p),i.graph.addCells([s]),n.helper.attr("cid",s.cid),i.hideCue(),i.showGuideBox(s)},drag:function(t,e){var o=e.helper.attr("cid"),n=i.graph.getCell(o),a=e.position.left/i.options.scale-n.attributes.position.x,r=e.position.top/i.options.scale-n.attributes.position.y;n.translate(a,r),i.showGuideBox(n)},stop:function(e,o){i.dragging=!1;var n=o.helper.attr("cid"),a=i.graph.getCell(n),r=Object.values(i.validateTranslate([a]))[0];if(r)i.hideGuideBox(),i.hideGuideMessage(),i.notification("warning",r),a.remove();else if(i.getFunctionsLength()+1>i.MAX_FUNC_COUNT)i.hideGuideBox(),i.hideGuideMessage(),a.remove(),t.VA.Core.Utils.WidgetUtils.openErrorDialog(i.MAX_FUNC_MESSAGE);else{var s=o.position.left/i.options.scale-a.attributes.position.x,l=o.position.top/i.options.scale-a.attributes.position.y;a.translate(s,l),i.hideGuideBox();var d=i.calcGuidePosition(a);a.position(d.x,d.y),a.attributes.dummy=!1;var c=[];"true"===t.VA.SettingStorage.getValue("editor.diagram.autoconnect")&&(c=i.connectSmartly(a)),i.graph.addCells(c);var p=new t.VA.Core.CompoundCommand(i,{label:"Clone a Function"});for(var h in p.add(i.createNewFnUnitCommand(a,i.duplicatedFnUnit,i.duplicatedDummyModel)),p.add(i.createSetFnUnitPositionCommand(a,d.x,d.y)),c)p.add(i.createConnectFnUnitCommand(c[h]));i.fireCommand(p),i._unselectAllElements(),i._selectElement(a),i.showSelectionBox(),i._triggerFnUnitSelect()}}}),this.toolItems.duplicate=o},n.prototype.createEnterToolItem=function(){var t=this,e=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-enter" title="Step Into"></div>');this.$tools.append(e),e.click(function(){var e=t.$tools.attr("cid"),i=t.graph.getCell(e);t.hideTools(!0),t.$parent.trigger("fnUnit:dbclick",[[i.attributes.fid]])}),this.toolItems.enter=e},n.prototype.createPopupToolItem=function(){var e=this,i=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tools brtc-va-editors-diagram-diagrameditorpage-function-tools-popup" title="Popup"></div>');this.$tools.append(i),i.click(function(i){var o=e.$tools.attr("cid"),n=e.graph.getCell(o);e.hideTools(!0);var a,r=e.getFnUnitById(n.attributes.fid),s=$.extend(!0,{},r),l=r.func,d=$(i.target).offset(),c={x:d.left-402+26,y:d.top-10+40};switch(l){case"setValue":a=t.VA.Core.Dialogs.SetValueSettingDialog;break;case"import":a=t.VA.Core.Dialogs.ImportDataSettingDialog;break;case"export":a=t.VA.Core.Dialogs.ExportDataSettingDialog}new a(e.$mainControl,{event:i,editor:e.getEditor(),fnUnit:s,param:s.param,position:c,title:"Setting Configuration",close:function(t){t.OK&&t.results&&e.createSetDialogFnUnitCommand(t.results.fnUnit,r)}})}),this.toolItems.popup=i},n.prototype.createMultiSelectionToolbar=function(){var e=this;this.$multiTools=this.$mainControl.find(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected"),this.$multiTools.append('<div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected-toolbar"> <div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-remove" title="Remove"></div> <div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-add-library" title="Add to Template"></div> <div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-run" title="Run"></div> <div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-add-clipboard" title="Add to Clipboard"></div> <div class="brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-bind-functions" title="Bind for OPT"></div></div>'),this.$multiTools.find(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-remove").click(function(){var t=e.getSelectedFigures();e.removeFnUnitFigures(t),e._unselectAllElements(),e._unselectAllLinkViews(),e._triggerFnUnitSelect(),e.hideSelectionBox(),e.hideTools(!0)}),this.$multiTools.find(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-add-library").click(function(){if(!e.getEditor().getEditorState("readonly-figure-selected")){var i=e.makeTemplate.call(e);t.VA.Core.Utils.WidgetUtils.getModelEditorRef(e.$mainControl).addToLibrary(i)}}),this.$multiTools.find(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-add-clipboard").click(function(){if(!e.getEditor().getEditorState("readonly-figure-selected")){var i=e.makeTemplate.call(e);t.VA.Core.Utils.WidgetUtils.getModelEditorRef(e.$mainControl).addToFunctionClipboard(i)}}),this.$multiTools.find(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-run").click(function(){var i,o,n,a=e.getModel(),r=$.extend(!0,{},a);r.functions=[];var s=e.getSelectedFigures(),l=[];for(var d in s)o=s[d],i=$.extend(!0,{},e.getFnUnitById(o.attributes.fid)),r.addFnUnit(i),l.push(i.fid);var c=[];for(var p in r.links)n=r.links[p],(l.indexOf(n[SOURCE_FID])<0||l.indexOf(n[TARGET_FID])<0)&&c.push(n);for(var h in c)r.links.splice(r.links.indexOf(c[h]),1);var u=function(e){e.OK&&(t.VA.Core.DataQueryTemplate.removeCache(r.mid),Studio.getJobExecutor().launchModel(r,e.args))};if("true"===t.VA.SettingStorage.getValue("editor.variable.visible")&&Object.keys(e.getEditor().getModel().variables).length>0)new t.VA.Core.Dialogs.RunDataDialog($(this),{close:u,analyticsModel:e.getEditor().getModel()});else{var m={};for(var g in e.getEditor().getModel().variables){var f,v=e.getEditor().getModel().variables[g];f=_.isArray(v.value)&&1===v.value.length?v.value[0]:v.value,_.isUndefined(f)||(m[g]=v.value)}u({OK:!0,args:m})}}),this.$multiTools.find(".brtc-va-editors-diagram-diagrameditorpage-function-multiselected-tools-bind-functions").click(function(){var i=e.getEditor().getEditorInput().getProjectId(),o=e.getEditor().getEditorInput().getFileId();if(o!==e.getEditor().activeModel.mid)return t.VA.Core.Utils.WidgetUtils.openErrorDialog("OPT models cannot be made in inner models.");var n=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i].attributes.fid);return e}(e.getSelectedFigures()),a=n.sort().join("_"),r=e.getEditor().activeModel.optModels;for(var s in r)if(r[s].hash===a)return t.VA.Core.Utils.WidgetUtils.openErrorDialog("This OPT model already exists.");var l=t.OptModelManager.createNewOptModelCommand(i,o,n);e.fireCommand(l)})},n.prototype.createCue=function(){var e=this,i=function(i){if(i.OK){var o=[],n=e.getModel().newFnUnit(i.func),a=i.position;n.display.diagram.position=e.calcGuideLocation(a.left/e.options.scale,a.top/e.options.scale);var r=e.createFnUnitFigure(n);o.push(r),e.graph.addCells(o);var s=new t.VA.Core.CompoundCommand(e,{label:"Create a Function"}),l=[];if("true"===t.VA.SettingStorage.getValue("editor.diagram.autoconnect")&&(l=e.connectSmartly(r)),e.graph.addCells(l),l.length>0)for(var d in s.add(e.createNewFnUnitCommand(r,n)),l)s.add(e.createConnectFnUnitCommand(l[d]));else s.add(e.createNewFnUnitCommand(r,n));e.fireCommand(s),e.hideCue(),e._unselectAllElements(),e._selectElement(r),e.showSelectionBox(),e._triggerFnUnitSelect()}e.switchFnUnitDialog=null};this.getFunctionsLength()||this.$createCue.css({display:"flex",left:"19.5px",top:"27px"}),this.$createCue.find(".brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label-wrapper").mousedown(function(t){e.$createCue.attr("mousedown","true");var i=e.paper.snapToGrid({x:t.clientX,y:t.clientY});e.$dragSelection.css({display:"block",width:0,height:0}),e.$dragSelection.attr("start-x",i.x*e.options.scale),e.$dragSelection.attr("start-y",i.y*e.options.scale)}),this.$createCue.find(".brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label-wrapper").mouseup(function(o){"true"===t.VA.SettingStorage.getValue("editor.closePanelOnClick")&&(e._unselectAllElements(),e.hideSelectionBox(),e._triggerFnUnitSelect()),"true"!==t.VA.SettingStorage.getValue("editor.function.add.doubleclick")&&"false"!==e.$createCue.attr("mousedown")&&(e.MAX_FUNC_COUNT=t.VA.SettingStorage.getValue("editor.maxfuncnum"),e.MAX_FUNC_MESSAGE="You can only add up to "+e.MAX_FUNC_COUNT+".",e.getFunctionsLength()+1>e.MAX_FUNC_COUNT?t.VA.Core.Utils.WidgetUtils.openErrorDialog(e.MAX_FUNC_MESSAGE):e.switchFnUnitDialog=new t.VA.Core.Dialogs.SwitchFnUnitDialog($(o.target),{modelType:e.getModel().type,close:i,position:e.$createCue.position()}))}),this.$createCue.find(".brtc-va-editors-diagram-diagrameditorpage-function-cue-create-label-wrapper").dblclick(function(o){"true"===t.VA.SettingStorage.getValue("editor.function.add.doubleclick")&&(e.getFunctionsLength()+1>e.MAX_FUNC_COUNT?t.VA.Core.Utils.WidgetUtils.openErrorDialog(e.MAX_FUNC_MESSAGE):e.switchFnUnitDialog=new t.VA.Core.Dialogs.SwitchFnUnitDialog($(o.target),{modelType:e.getModel().type,close:i,position:e.$createCue.position()}))})},n.prototype._createMiniMapControl=function(){this.minimap=new t.VA.Core.Editors.Diagram.MinimapBoat(this.$parent.parent(".brtc-va-editors-modeleditor-splitter"),{diagramEditorPage:this})},n.prototype.createExpressionControl=function(){this.expression&&this.expression.destroy(),this.options.editor.getActiveModel().isMainModel()||(this.expression=new t.VA.Core.Editors.Diagram.ExpressionBoat(this.$parent.parent(".brtc-va-editors-modeleditor-splitter"),{editor:this.options.editor,resizable:!1}))},n.prototype.getFunctionsLength=function(){return this.getModel().functions.length},n.prototype.ensureCenter=function(e){var i=e;if(i){var o=this.$mainControl.width(),n=this.$mainControl.height(),a=(this.$mainControl.scrollLeft(),this.$mainControl.scrollTop(),i.attributes.position.x*this.options.scale),r=i.attributes.position.y*this.options.scale,s=(a/o|0)*o+a%o-o/2+t.VA.Env.Diagram.FIGURE_WIDTH*this.options.scale/2,l=(r/n|0)*n+r%n-n/2+t.VA.Env.Diagram.FIGURE_HEIGHT*this.options.scale/2;this.$mainControl.animate({scrollLeft:s,scrollTop:l},500)}},n.prototype.ensureVisible=function(t){if(t){var e=this.$mainControl.width(),i=this.$mainControl.height(),o=this.$mainControl.scrollLeft(),n=this.$mainControl.scrollTop(),a=t.attributes.position.x*this.options.scale,r=t.attributes.position.y*this.options.scale;o>a&&this.$mainControl.scrollLeft(a-10),n>r&&this.$mainControl.scrollTop(r-10),o+e<a+109&&this.$mainControl.scrollLeft(a-e+110),n+i<r+44&&this.$mainControl.scrollTop(n+r-i+45)}},n.prototype.changeScale=function(e){if(this.options.scale!==e)if(this.options.scale=e,this.options.scale<.6)this.controlSmallPaper();else{if(.8===this.options.scale)this.$paperElement.removeClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-small"),this.$paperElement.addClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-normal"),this.paper.scale(this.options.scale);else if(.6===this.options.scale)this.$paperElement.removeClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-normal"),this.$paperElement.addClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-small"),this.paper.scale(this.options.scale);else{if(1!==this.options.scale)return;this.$paperElement.removeClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-small"),this.$paperElement.removeClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-normal"),this.paper.scale(this.options.scale)}this.showSelectionBox();var i=this.getSelectedFigures();i.length>0&&this.ensureCenter(i[0]),this.updateMiniMapWindow(),t.OptModelManager.renderOptModels()}},n.prototype.controlSmallPaper=function(){this._unselectAllElements(),this._unselectAllLinkViews(),this._triggerFnUnitSelect(),this.hideSelectionBox(),this.hideTools(),this.hideGuideBox(),this.hideGuideMessage(),this.hideCue(),this.$paperElement.removeClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-normal"),this.$paperElement.addClass("brtc-va-editors-diagram-diagrameditorpage-paper-scale-small"),this.paper.scale(this.options.scale),this.updateMiniMapWindow(),t.OptModelManager.renderOptModels()},n.prototype.changeTooltipEnabled=function(t){this.getEditor().setEditorState("tooltip-enabled",t)},n.prototype.makeDroppable=function(){var i=this;i.$mainControl.closest(".brtc-va-editor").droppable({accept:".ui-dialog",drop:function(t,e){$.ui.ddmanager.droppables.default.forEach(t=>{t.isover=!1})}}),i.$mainControl.droppable({accept:".brtc-va-studio-dm-draggable",activate:function(t,e){i.dropping=!0,i.fitToContent()},deactivate:function(t,e){i.dropping=!1,"visible"===e.helper.css("visibility")&&i.fitToContent()},over:function(e,o){var n,a,r;i.hideSelectionBox(),o.helper.css("visibility","hidden"),o.helper.bind("feedback",function(t,e){var o=i.paper.clientToLocalPoint({x:e.clientX,y:e.clientY});for(var s in i.dropContents.functions)n=i.dropFigures[s],a=o.x-50+i.dropContents.functions[s].display.diagram.position.x,r=o.y-30+i.dropContents.functions[s].display.diagram.position.y,n.position(a,r);i.showGuideBox(i.dropFigures[0])});var s=t.VA.Core.Utils.WidgetUtils.getData(o.helper,"template"),l=t.VA.Core.Utils.WidgetUtils.getData(o.helper,"source"),d=i.paper.clientToLocalPoint({x:e.clientX,y:e.clientY});l instanceof t.VA.Core.Views.Palette?(i.dropContents={functions:[],links:[],isPalette:!0},i.dropContents.functions.push(i.getModel().newFnUnit(s.functions[0].func))):i.dropContents=s,i.dropFigures=[];for(let t in i.dropContents.functions)(n=i.createFnUnitFigure(i.dropContents.functions[t])).attributes.dummy=!0,i.dropFigures.push(n);for(let t in i.dropContents.functions)n=i.dropFigures[t],a=d.x-50+i.dropContents.functions[t].display.diagram.position.x,r=d.y-30+i.dropContents.functions[t].display.diagram.position.y,n.position(a,r);var c=_.zipObject(i.dropFigures.map(t=>[t.attributes.fid,t]));i.dropLinks=[];for(let t in i.dropContents.links){let e=i.dropContents.links[t],o=e[SOURCE_FID],n=e[TARGET_FID];var p=i.createLinkFigure(e,c[o],c[n]);p&&i.dropLinks.push(p)}var h=i.dropFigures.concat(i.dropLinks);i.graph.addCells(h)},out:function(t,e){for(var o in e.helper.css("visibility","visible"),e.helper.unbind("feedback"),i.dropFigures)i.dropFigures[o].remove();i.dropContents=null,i.dropFigures=[],i.dropLinks=[],i.hideGuideBox(),i.hideGuideMessage(),i.hideTools(!0),i.showSelectionBox(),i._triggerMouseLeave()},drop:function(o,n){var a,r=[];i.hideGuideBox();var s=i.dropFigures,l=Object.values(i.validateTranslate(s))[0];if(l)for(a in i.hideGuideMessage(),i.notification("warning",l),i.dropFigures)i.dropFigures[a].remove();else if(i.getFunctionsLength()+i.dropFigures.length>i.MAX_FUNC_COUNT){for(a in i.hideGuideMessage(),i.dropFigures)i.dropFigures[a].remove();t.VA.Core.Utils.WidgetUtils.openErrorDialog(i.MAX_FUNC_MESSAGE)}else if(i.dropFigures.length>0){var d=!1;for(a in i.dropFigures){var c=i.calcGuidePosition(i.dropFigures[a]);i.dropFigures[a].position(c.x,c.y),i.dropFigures[a].attributes.dummy=!1}1===i.dropFigures.length&&"true"===t.VA.SettingStorage.getValue("editor.diagram.autoconnect")?r=i.connectSmartly(i.dropFigures[a]):d=!0,i.graph.addCells(r),i.showTools(i.dropFigures[0]);var p=new t.VA.Core.CompoundCommand(i,{label:"Create a Function"});for(a in i.dropFigures)!0!==d&&e.clearInData(i.dropContents.functions[a]),p.add(i.createNewFnUnitCommand(i.dropFigures[a],i.dropContents.functions[a],i.dropContents.isPalette?void 0:i.dropContents)),p.add(i.createSetFnUnitPositionCommand(i.dropFigures[a],i.dropFigures[a].attributes.position.x,i.dropFigures[a].attributes.position.y));for(a in i.dropLinks)p.add(i.createConnectFnUnitCommand(i.dropLinks[a],d));for(a in r)p.add(i.createConnectFnUnitCommand(r[a]));i.fireCommand(p),i._rerouteLink(),i._unselectAllElements(),i._selectElements(i.dropFigures),i.showSelectionBox(),i._triggerFnUnitSelect()}i.dropContents=null,i.dropFigures=[],i.dropLinks=[],i.showSelectionBox()}})},n.prototype._rerouteLink=function(){var t=this;t.rerouteLinkTaskTimeOut&&clearTimeout(t.rerouteLinkTaskTimeOut);t.rerouteLinkTaskTimeOut=setTimeout(function(){var e=t.graph.getLinks();for(var i in e)t.paper.findViewByModel(e[i]).update()},1e3)},n.prototype.configureSelectionBounds=function(){this.$multiTools.toggleClass("single-selected",1===this.getSelectedFigures().length)},n.prototype.showSelectionBounds=function(){var e,i=this.getSelectedFigures(),o=!1;if(i.length>0){for(var n in i)o=o||this.isReadOnlyFigure(i[n]),e?(e.top=Math.min(e.top,i[n].attributes.position.y),e.left=Math.min(e.left,i[n].attributes.position.x),e.bottom=Math.max(e.bottom,i[n].attributes.position.y+t.VA.Env.Diagram.FIGURE_HEIGHT),e.right=Math.max(e.right,i[n].attributes.position.x+t.VA.Env.Diagram.FIGURE_WIDTH)):e={top:i[n].attributes.position.y,left:i[n].attributes.position.x,bottom:i[n].attributes.position.y+t.VA.Env.Diagram.FIGURE_HEIGHT,right:i[n].attributes.position.x+t.VA.Env.Diagram.FIGURE_WIDTH};var a=e.top*this.options.scale,r=e.left*this.options.scale+3,s=(e.right-e.left)*this.options.scale-5,l=(e.bottom-e.top)*this.options.scale+7;this.$selectedBounds.css({display:"block",top:a,left:r,width:s,height:l})}else this.$selectedBounds.css({display:"none"});this.getEditor().setEditorState("readonly-figure-selected",o),this.$multiTools.toggleClass("readonly-figure-selected",o)},n.prototype.hideCue=function(){this.$createCue.css({display:"none"})},n.prototype.hideSelectionBounds=function(){this.$selectedBounds&&this.$selectedBounds.hide()},n.prototype.showSelectionBox=function(){this.options.scale<.6||(this.configureSelectionBounds(),this.showSelectionBounds())},n.prototype.updateSelectionBox=function(t){},n.prototype.hideSelectionBox=function(t){this.hideSelectionBounds()},n.prototype._triggerClickOrDoubleClickEvent=function(t){},n.prototype.showErrorBox=function(e){for(var i in e)e[i]instanceof t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.FnUnitFigure&&e[i].showError()},n.prototype.updateErrorBox=function(t){},n.prototype.hideErrorBox=function(){var t=this.graph.getElements();for(var e in t)t[e].hideError()},n.prototype.showValidationToolTip=function(t){for(var e in this.$validationTooltip.empty(),this.problems)if(this.problems[e].fid===t.attributes.fid){var i=$('<div class="brtc-va-editors-diagram-diagrameditorpage-validation-problem"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> '+this.problems[e].message+"</div>");this.$validationTooltip.append(i)}this.$validationTooltip.css("display","block")},n.prototype.hideValidationToolTip=function(){this.$validationTooltip&&this.$validationTooltip.css("display","none")},n.prototype.validateTranslate=function(t){for(var e in this.translateProblems={},t){var i,o=t[e];!1===this.checkOverPosition(o)?i="Can not move over other function.":!1===this.checkOutRangePosition(o)&&(i="Can not move out of range."),i&&(this.translateProblems[o.cid]=i)}return this.translateProblems},n.prototype.validateConnect=function(t){for(var e in t){var i=t[e];if(!1===this.checkConnectedLink(i))return"No connection could be made.";if(!1===this.checkLoopLink(i))return"No connection could be made because connection loop.";if(!1===this.checkAlreadyExistLink(i))return"No connection could be made because connection already exists."}},n.prototype.notification=function(e,i){t.VA.Core.Utils.WidgetUtils.getModelEditorRef(this.$mainControl).notification(e,i)},n.prototype.createSetDialogFnUnitCommand=function(e,i){var o=new t.VA.Core.CompoundCommand(this,{label:"Change a Function"}),n=new t.VA.Core.Editors.Diagram.Commands.SetDialogFnUnitCommand(this,{fnUnit:i,ref:{param:e.param}}),a=new t.VA.Core.Editors.Diagram.Commands.RenameFnUnitCommand(this,{fid:e.fid,name:e.display.label,description:e.display.description});o.add(n),o.add(a);var r=t.VA.Core.Utils.WidgetUtils.getModelEditorRef(this.$mainControl);r&&r.getCommandManager().execute(o)},n.prototype.createConfigurationCommand=function(e,i){var o={fnUnit:i,ref:{param:e}},n=new t.VA.Core.Editors.Diagram.Commands.SetFnUnitParameterValueCommand(this,o),a=t.VA.Core.Utils.WidgetUtils.getModelEditorRef(this.$mainControl);a&&a.getCommandManager().execute(n)},n.prototype.setConnectToolItemVisible=function(t){var e=this.$tools.find(".brtc-va-editors-diagram-diagrameditorpage-function-tools-connect");t?e.css("display","block"):e.css("display","none")},n.prototype._findConnectableFigures=function(t){var e,i=[],o=this,n=this._getConnectableFids(t.attributes.fid);t.attributes.connectableFunctions&&(n=n.filter(function(e){var i=o.getFnUnitById(e);return t.attributes.connectableFunctions.indexOf(i.func)>=0}));var a=[],r=this.graph.getConnectedLinks(t);for(let t in r)a.push(r[t].getTargetElement().cid);for(let o in n)e=this.getFigureByFnUnitId(n[o]),t.attributes.connectableFunctions?a.indexOf(e.cid)<0&&i.push(e):e.attributes.inputtable&&a.indexOf(e.cid)<0&&i.push(e);return i},n.prototype._setBehaviorModeToDefault=function(){if(this.behaviorMode!==i){this.behaviorMode=i;var t=this.graph.getElements();for(var e in t)t[e].setOffShade();this._connectableFigures=[],this._unhighlightAll()}},n.prototype._setBehaviorModeToLink=function(){if("link"!==this.behaviorMode){this.behaviorMode="link";var e=this.graph.getElements();for(var i in e)e[i]instanceof t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.FnUnitFigure&&(this._isConnectableCell(e[i])||e[i].setOnShade())}},n.prototype._isConnectableCell=function(t){var e=!1;for(var i in this._connectableFigures)if(this._connectableFigures[i]===t){e=!0;break}return e},n.prototype._isConnectableFnUnit=function(t,e){var i=!1,o=t.attributes.connectableFunctions,n=e.attributes.acceptableFunctions;if(o){for(var a=this.getFnUnitById(e.attributes.fid),r=0;r<o.length;r++)if(o[r]===a.func){i=!0;break}}else if(n){var s=this.getFnUnitById(t.attributes.fid);i=_.indexOf(n,s.func)>=0}else e.attributes.inputtable&&(i=!0);return i},n.prototype._unhighlightAll=function(){for(var t=0;t<this._highlightedViews.length;t++)this._highlightedViews[t].unhighlight();this._highlightedViews=[]},n.prototype._collectInnerModels=function(e,i){return _.reduce(_.map(t.VA.Core.Utils.NestedFlowUtils.getAllSubModelsFromModel(e,i),function(t){var e={};return e[t.mid]=t,e}),_.merge,{})},n.prototype.makeTemplate=function(){var i,o,n={functions:[],links:[],innerModels:{},type:"data"},a=this.getEditor().getModel(),r=this.getSelectedFigures(),s=Number.MAX_VALUE,l=Number.MAX_VALUE,d=[];for(i in r){var c=this.getFnUnitById(r[i].attributes.fid);s=Math.min(s,c.display.diagram.position.x),l=Math.min(l,c.display.diagram.position.y),n.functions.push($.extend(!0,{},c));var p=this.graph.getConnectedLinks(r[i]);for(o in p)d.indexOf(p[o].attributes.kid)<0&&d.push(p[o].attributes.kid)}for(i in n.functions)n.functions[i].display.diagram.position.x-=s,n.functions[i].display.diagram.position.y-=l;for(i in d){var h=this.getLinkUnitById(d[i]),u=0;for(o in n.functions)if(n.functions[o].fid===h[SOURCE_FID]&&u++,n.functions[o].fid===h[TARGET_FID]&&u++,2==u)break;2==u&&n.links.push($.extend(!0,{},h))}n.functions.sort(function(t,e){return t.display.diagram.position.x===e.display.diagram.position.x?t.display.diagram.position.y-e.display.diagram.position.y:t.display.diagram.position.x-e.display.diagram.position.x}),n.innerModels=this._collectInnerModels(a,n);var m=t.VA.Core.Utils.NestedFlowUtils.isProcessFunction,g=_.negate(m);return function(i,o){var n=o.reduce(function(t,e){return _.merge(t,_.set({},e,!0))},{}),a=function(t,e){return _.set({},t,e)},r=_.partial(_.has,n),s=_.partial(_.filter,_,r),l=[];i.functions=i.functions.map(function(o){if(!g(o)&&e.isThirdPartyFunction(o)||!o[IN_DATA]){if(m(o)||e.isThirdPartyFunction(o)){var n=_.clone(o),d=_.clone(s(o[IN_DATA])),c=_.clone(s(o[OUT_DATA]));return _.merge({},_.omit(n,[IN_DATA,OUT_DATA]),a(IN_DATA,d),a(OUT_DATA,c))}}else{var p=_.reject(_.map(o[IN_DATA],function(t,e){return r(t)?-1:e},_.partial(_.isEqual,-1))),h=function(t){return _.reject(t,function(t,e){return _.indexOf(p,e)>=0})},u=_.map(t.VA.Core.Utils.NestedFlowUtils.getSubModels(i,o),IN_DATA);_.forEach(u,function(t){t[IN_DATA]=h(t[IN_DATA])}),o[IN_DATA]=h(o[IN_DATA])}return l=_.union(l,e.getOutData(o)),o}),i.functions=i.functions.map(function(t){if((g(t)||!e.isThirdPartyFunction(t))&&e.hasInput(t)&&e.hasMeta(t)){var i=e.getInData(t);for(var o in i){var n=i[o],a=e.getTypeByTableId(t,n);_.indexOf(l,n)<0&&e.removeInData(t,a,n)}}return t})}(n=t.VA.Core.Utils.ModelUtils.extendModel(n,!0),_.flatten(_.map(_.filter(n.functions,g),t=>e.getOutData(t)))),n},n.prototype.createNewFnUnitCommand=function(e,i,o){e.attributes.fid=i.fid;var n=this,a=[];"DataViewer"!==i[FUNCTION_NAME]&&i.skip&&(i.skip=!1),a.push(new t.VA.Core.Editors.Diagram.Commands.NewFnUnitCommand(this,{fnUnit:i}));var r=function(t){var e=[];return"if"===t.func?(e.push({mid:t.param.if.mid,type:t.func,conditionType:"if"}),(e=e.concat(_.map(t.param.elseif,function(e){return{mid:e.mid,type:t.func,conditionType:"elseif"}}))).push({mid:t.param.else.mid,type:t.func,conditionType:"else"})):"forLoop"!==t.func&&"whileLoop"!==t.func||e.push({mid:t.param.mid,type:t.func}),e}(i);return a=a.concat(_.flatten(_.map(r,function(e){var i=function(){if(o){var i=o.getInnerModel(e.mid),n=t.VA.Core.Utils.NestedFlowUtils.getAllSubModelsFromModel(o,i).concat(i);return i[IN_DATA]=[],_.map(n,function(t){return{contents:t,mid:t.mid}})}return[e]}();return _.map(i,function(e){return new t.VA.Core.Editors.Diagram.Commands.NewActivityCommand(n,e)})})))},n.prototype.getActivityModels=function(e){var i=t.VA.Core.Utils.NestedFlowUtils.getSubModels(this.getEditor().getModel(),e);return _.map(i,function(t){return t.mid})},n.prototype.createRemoveFnUnitCommand=function(e){var i=new t.VA.Core.CompoundCommand(this),o=this.getFnUnitById(e.attributes.fid),n=this.getActivityModels(o);return _.map(n,function(e){i.add(new t.VA.Core.Editors.Diagram.Commands.RemoveActivityCommand(this,{mid:e}))}.bind(this)),i.add(new t.VA.Core.Editors.Diagram.Commands.RemoveFnUnitCommand(this,{fid:e.attributes.fid})),i},n.prototype.createSetFnUnitPositionCommand=function(e,i,o){return new t.VA.Core.Editors.Diagram.Commands.SetFnUnitPositionCommand(this,{fid:e.attributes.fid,position:{x:i,y:o}})},n.prototype.createShiftLeftCommand=function(e){return new t.VA.Core.Editors.Diagram.Commands.ShiftLeftCommand(this,{fid:e.attributes.fid})},n.prototype.createShiftRightCommand=function(e){return new t.VA.Core.Editors.Diagram.Commands.ShiftRightCommand(this,{fid:e.attributes.fid})},n.prototype.createSwitchFnUnitCommand=function(e,i,o){return new t.VA.Core.Editors.Diagram.Commands.SwitchFnUnitCommand(this,{modelType:this.getModel().type,fid:e.attributes.fid,fnUnit:i,prvFnUnit:o})},n.prototype.createConnectFnUnitCommand=function(e,i){var o=new t.VA.Core.CompoundCommand(this,{label:"Connect a Function"}),n={kid:e.prop("kid"),sourceFid:e.prop("sourceFid"),targetFid:e.prop("targetFid")};return!0===i&&(n.isMaintainIntable=i),o.add(new t.VA.Core.Editors.Diagram.Commands.ConnectFnUnitCommand(this,n)),n={kid:e.prop("kid"),sourceFid:e.prop("sourceFid"),targetFid:e.prop("targetFid")},!0===i&&(n.isMaintainIntable=i),o},n.prototype.createDisconnectFnUnitCommand=function(e){return new t.VA.Core.Editors.Diagram.Commands.DisconnectFnUnitCommand(this,{kid:e.prop("kid"),sourceFid:e.prop("sourceFid"),targetFid:e.prop("targetFid")})},n.prototype.createReconnectFnUnitCommand=function(e){return new t.VA.Core.Editors.Diagram.Commands.ReconnectFnUnitCommand(this,{kid:e.prop("kid"),sourceFid:e.prop("sourceFid"),targetFid:e.prop("targetFid")})},n.prototype.fireCommand=function(e){return(e.constructor!==t.VA.Core.CompoundCommand||0!==e.commandList.length)&&t.VA.Core.Utils.WidgetUtils.getModelEditorRef(this.$mainControl).getCommandManager().execute(e)},n.prototype.registerDebugListener=function(){var t=this;this.debugListener=function(e,i){t.$mainControl.closest(".brtc-va-editor-wrapper").hasClass("selected")&&i.mid===t.getModel().mid&&("BEGIN-PROCESS"===i.eventType&&"unit"!==i.launchOptions.mode?(t._unselectAllElements(),t.hideSelectionBox(),t._triggerFnUnitSelect()):"BEGIN-UNIT"===i.eventType?t.getFigureByFnUnitId(i.fid):"END-UNIT"===i.eventType&&t.renderCompletedFnUnit(i))},Studio.getInstance().addDebugListener(this.debugListener)},n.prototype.registerCommandEventListener=function(){t.VA.Core.Utils.WidgetUtils.getModelEditorRef(this.$mainControl).addCommandListener(this.onCommand.bind(this))},n.prototype.onCommand=function(e){"link"===this.behaviorMode?this._setBehaviorModeToDefault():this._unselectAllLinkViews(),e instanceof t.VA.Core.Editors.Diagram.Commands.AppendNewFnUnitCommand?this.onAppendNewFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.PrependNewFnUnitCommand?this.onPrependNewFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.NewFnUnitCommand?this.onNewFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.RemoveFnUnitCommand?this.onRemoveFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ConnectFnUnitCommand?this.onConnectFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.DisconnectFnUnitCommand?this.onDisconnectFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ReconnectFnUnitCommand?this.onReconnectFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.SetFnUnitCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.SetFnUnitParameterValueCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ChangeIntableCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ChangeInputsCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.AddFnUnitParameterCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.RemoveFnUnitParameterCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ReplaceFnUnitParamCommand?this.onSetFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.SetFnUnitPositionCommand?this.onSetFnUnitPositionCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ShiftLeftCommand?this.onShiftCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.ShiftRightCommand?this.onShiftCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.RenameFnUnitCommand?this.onRenameFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.SetDialogFnUnitCommand?this.onSetDialogFnUnitCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.NewOptModelCommand?this.onNewOptModelCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.SetOptModelCommand?this.onSetOptModelCommand(e):e instanceof t.VA.Core.Editors.Diagram.Commands.RemoveOptModelCommand?this.onRemoveOptModelCommand(e):e instanceof t.VA.Core.CompoundCommand&&this.onCompoundCommand(e),this.hideGuideMessage()},n.prototype.onCompoundCommand=function(t){var e;if("REDO"===t.event.type||"EXECUTE"===t.event.type)for(e in t.commandList)this.onCommand(t.commandList[e]);else if("UNDO"===t.event.type)for(e=t.commandList.length-1;e>-1;e--)this.onCommand(t.commandList[e])},n.prototype.onAppendNewFnUnitCommand=function(t){if(this.onCompoundCommand(t),"EXECUTE"===t.event.type){var e=this.getFigureByFnUnitId(t.options.fnUnit.fid);this._selectElement(e),this.showSelectionBox(),this._triggerFnUnitSelect()}},n.prototype.onPrependNewFnUnitCommand=function(t){if(this.onCompoundCommand(t),"EXECUTE"===t.event.type){var e=this.getFigureByFnUnitId(t.options.fnUnit.fid);this._selectElement(e),this.showSelectionBox(),this._triggerFnUnitSelect()}},n.prototype.onNewFnUnitCommand=function(t){var e,i;"REDO"===t.event.type||"EXECUTE"===t.event.type&&t.event.source!==this?(this._unselectAllElements(),this._unselectAllLinkViews(),i=t.options.fnUnit,e=this.createFnUnitFigure(i),this.graph.addCells([e]),this.ensureVisible(e),this._selectElement(e),this.showSelectionBox(),this.showTools(e),this._triggerFnUnitSelect()):"UNDO"===t.event.type&&(i=t.options.fnUnit,e=this.getFigureByFnUnitId(i.fid),this._removeFigure(e),this._unselectAllElements(),this._unselectAllLinkViews(),this.hideSelectionBox(),this._triggerFnUnitSelect(),this.hideTools(!0))},n.prototype.onRemoveFnUnitCommand=function(e){var i,o;"REDO"===e.event.type||"EXECUTE"===e.event.type&&e.event.source!==this?(i=this.getFigureByFnUnitId(e.options.fid),this._unselectElement(i),this._removeFigure(i),this.showSelectionBox()):"UNDO"===e.event.type&&(o=this.getFnUnitById(e.options.fid),i=this.createFnUnitFigure(o),this.graph.addCells([i]),this.showSelectionBox(),this.fitToContent(),this.ensureVisible(i)),setTimeout(function(){t.OptModelManager.renderOptModels()},600)},n.prototype.onConnectFnUnitCommand=function(t){var e;if("REDO"===t.event.type||"EXECUTE"===t.event.type&&t.event.source!==this){var i=this.getLinkUnitById(t.options.kid);(e=this.createLinkFigure(i))&&this.graph.addCells([e])}else"UNDO"===t.event.type&&(e=this.getLinkFigureByLinkUnitId(t.options.kid),this._removeLink(e))},n.prototype.onDisconnectFnUnitCommand=function(t){var e;if("REDO"===t.event.type||"EXECUTE"===t.event.type&&t.event.source!==this)e=this.getLinkFigureByLinkUnitId(t.options.kid),this._removeLink(e);else if("UNDO"===t.event.type){var i=this.getLinkUnitById(t.options.kid);(e=this.createLinkFigure(i))&&this.graph.addCells([e])}},n.prototype.onReconnectFnUnitCommand=function(t){var e,i,o,n;("REDO"===t.event.type||"UNDO"===t.event.type||"EXECUTE"===t.event.type&&t.event.source!==this)&&(i=this.getModel().getLinkUnitById(t.options.kid),o=this.getFigureByFnUnitId(i[SOURCE_FID]),n=this.getFigureByFnUnitId(i[TARGET_FID]),(e=this.getLinkFigureByLinkUnitId(i.kid)).set("source",{id:o.id,port:"out-right"}),e.set("target",{id:n.id,port:"in-left"}))},n.prototype.onSetFnUnitCommand=function(t){var e;"REDO"!==t.event.type&&"UNDO"!==t.event.type||(e=this.getFigureByFnUnitId(t.options.fnUnit.fid))&&(this._unselectAllElements(),this._selectElement(e),this.showSelectionBox(),this._triggerFnUnitSelect())},n.prototype.onSetDialogFnUnitCommand=function(t){"REDO"===t.event.type||t.event.type},n.prototype.onNewOptModelCommand=function(e){t.OptModelManager.renderOptModels()},n.prototype.onSetOptModelCommand=function(e){t.OptModelManager.renderOptModels()},n.prototype.onRemoveOptModelCommand=function(e){t.OptModelManager.renderOptModels()},n.prototype.onSetFnUnitPositionCommand=function(e){var i,o;("REDO"===e.event.type||"UNDO"===e.event.type||"EXECUTE"===e.event.type&&e.event.source!==this)&&(i=this.getFigureByFnUnitId(e.options.fid),(o=this.getFnUnitById(e.options.fid))&&i.position(o.display.diagram.position.x,o.display.diagram.position.y),this._rerouteLink(),this.showSelectionBox()),t.OptModelManager.renderOptModels()},n.prototype.onShiftCommand=function(e){var i,o,n;for(var a in e.options.changed)i=e.options.changed[a],n=this.getFnUnitById(i),o=this.getFigureByFnUnitId(i),n&&o&&o.position(n.display.diagram.position.x,n.display.diagram.position.y);this.hideSelectionBox(),this.hideTools(!0),this.showSelectionBox(),t.OptModelManager.renderOptModels()},n.prototype.onRenameFnUnitCommand=function(t){var e=this.getFigureByFnUnitId(t.options.fid),i=this.getFnUnitById(t.options.fid);i&&(e.label(i.display.label,this.options.scale),this._hasDescription(i)?e.showToolTipIcon():e.hideToolTipIcon())},n.prototype.getFnUnitById=function(t){return this.getModel().getFnUnitById(t)},n.prototype.getLinkUnitById=function(t){return this.getModel().getLinkUnitById(t)},n.prototype.getFigureByFnUnitId=function(t){var e=this.graph.getElements();for(var i in e)if(e[i].attributes.fid===t)return e[i]},n.prototype.getLinkFigureByLinkUnitId=function(t){var e=this.graph.getLinks();for(var i in e)if(e[i].attributes.kid===t)return e[i]},n.prototype.getSelectedFigureElements=function(){return _.toArray(this.$paperElement[0].querySelectorAll(".brtc-va-editors-diagram-diagrameditorpage-function-selected"))},n.prototype.getSelectedFigures=function(){return this._selectedElements},n.prototype.getSelectedFigureIds=function(){return this.getSelectedFigures().map(_.property("cid")).sort()},n.prototype.selectFunction=function(t){var e=this;"link"===e.behaviorMode&&e._setBehaviorModeToDefault();var i=this.getFigureByFnUnitId(t);this._unselectAllElements(),this._selectElement(i),this.showSelectionBox(),this._triggerFnUnitSelect(),setTimeout(function(){e.ensureCenter(i)},100)},n.prototype.isReadOnlyFigure=function(t){return"brightics"===t.attributes.attrs.category},n.prototype.calcGuidePosition=function(t){return this.calcGuideLocation(t.attributes.position.x,t.attributes.position.y)},n.prototype.calcGuideLocation=function(e,i){var o=this.GAP_WIDTH||t.VA.Env.Diagram.GAP_WIDTH,n=this.GAP_HEIGHT||t.VA.Env.Diagram.GAP_HEIGHT,a=t.VA.Env.Diagram.FIGURE_WIDTH+o,r=t.VA.Env.Diagram.FIGURE_HEIGHT+n,s=e-t.VA.Env.Diagram.PAPER_MARGIN_LEFT,l=Math.floor(s/a)*a;s=s>l+a/2?l+a:l,s+=t.VA.Env.Diagram.PAPER_MARGIN_LEFT;var d=i-t.VA.Env.Diagram.PAPER_MARGIN_TOP,c=Math.floor(d/r)*r;return d=d>c+r/2?c+r:c,{x:s,y:d+=t.VA.Env.Diagram.PAPER_MARGIN_TOP}},n.prototype.showGuideBox=function(t){if(this.options.scale<.6)this.hideGuideBox();else{var e=this.calcGuidePosition(t);this.$guideBox.css({top:e.y*this.options.scale,left:e.x*this.options.scale,display:"block"})}},n.prototype.updateGuideBox=function(t){var e=this.calcGuidePosition(t);this.$guideBox.css({top:e.y*this.options.scale,left:e.x*this.options.scale})},n.prototype.hideGuideBox=function(){this.$guideBox&&this.$guideBox.hide()},n.prototype.showGuideMessage=function(e,i){if(this.options.scale<.6)this.hideGuideMessage();else{var o=e.attributes.position.x,n=e.attributes.position.y+t.VA.Env.Diagram.FIGURE_HEIGHT;this.guideMessage=i,this.$guideMessageBox.text(i),this.$guideMessageBox.css({top:Math.max(0,n*this.options.scale),left:Math.max(0,o*this.options.scale),display:"block"})}},n.prototype.hideGuideMessage=function(){this.guideMessage=null,this.$guideMessageBox&&this.$guideMessageBox.hide()},n.prototype.renderStartedFnUnit=function(t){this.ensureCenter(t)},n.prototype._getRunningTime=function(t){let e="(-)";return"number"!=typeof t||t<0?e:"("+(e=t<1e3?(t/1e3).toFixed(1)+"s":t<1e4?(t/1e3).toFixed(1)+"s":t<12e4?(t/1e3).toFixed(0)+"s":t<6e6?(t/1e3/60).toFixed(1)+"m":(t/1e3/60/60).toFixed(1)+"h")+")"},n.prototype.renderCompletedFnUnit=function(t){var e=this.getFigureByFnUnitId(t.fid),i=t.end?new Date(parseInt(t.end)):Date.now();let o=t.end-t.begin;e&&e.lastRuntime(i.getHours()+":"+i.getMinutes()+":"+i.getSeconds()+this._getRunningTime(o));var n=$.extend(!0,{},t);delete n.launchOptions,delete n.originalResponse,window.sessionStorage&&sessionStorage.setItem(n.fid,JSON.stringify(n))},n.prototype.render=function(t){var e=t||this.getModel(),i=[];for(let t in e.functions){let a=e.functions[t],r=this.createFnUnitFigure(a);if(sessionStorage){var o=JSON.parse(sessionStorage.getItem(a.fid)||"{}");if(o&&o.end){var n=new Date(parseInt(o.end));let t=o.end-o.begin;r.lastRuntime(n.getHours()+":"+n.getMinutes()+":"+n.getSeconds()+this._getRunningTime(t))}}i.push(r)}var a=_.zipObject(i.map(t=>[t.attributes.fid,t]));for(let t in e.links){let o=e.links[t],n=o[SOURCE_FID],r=o[TARGET_FID],s=this.createLinkFigure(o,a[n],a[r]);s&&i.push(s)}this.graph.resetCells(i),this.fitToContent()},n.prototype.findError=function(t){var e=this,i=[],o=[],n=[];return t&&(n=t.constructor===Array?t:[t],$.each(n,function(t,n){var a=e.getFigureByFnUnitId(n.fid);$.inArray(n.fid,i)<0&&a&&(i.push(n.fid),o.push(a))})),o},n.prototype.onActivated=function(){},n.prototype.getPaperSize=function(){var t={},e=this.graph.getBBox(this.graph.getElements());return e?(t.width=e.x+e.width+900,t.width=t.width+(900-t.width%900),t.width=Math.max(t.width,this.$mainControl.width()),t.height=e.y+e.height+50,t.height=t.height+(50-t.height%50),t.height=Math.max(t.height,this.$mainControl.height()-4)):(t.width=this.$mainControl.width(),t.height=this.$mainControl.height()-4),t},n.prototype.fitToContent=function(){this.paper.fitToContent({gridWidth:10,gridHeight:10,padding:{top:0,right:900,bottom:700,left:0},minWidth:1840,minHeight:830}),this.updateMiniMapWindow(),this.$mainControl.perfectScrollbar("update")},n.prototype.updateMiniMapWindow=function(){this.minimap.updateMiniMapWindow()},n.prototype.checkInputtable=function(t){return e.getTotalInRangeCount(t).min>0||e.isBluffNode(t)},n.prototype.createFnUnitFigure=function(i){var o=this.getModel().type,n=new t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.FnUnitFigure({colorSet:this.options.editor.getColorSet(),position:i.display.diagram.position,fid:i.fid,inputtable:e.isInputtable(i),outputtable:e.isOutputtable(i),connectableFunctions:t.VA.Core.Utils.WidgetUtils.getFunctionLibrary(o,i.func)["connectable-functions"],acceptableFunctions:t.VA.Core.Utils.WidgetUtils.getFunctionLibrary(o,i.func)["acceptable-functions"]});n.label(i.display.label,this.options.scale);var a=t.VA.Core.Utils.WidgetUtils.getFunctionLibrary(o,i.func);return a&&(n.category(a),a.deprecated&&n.setDeprecated(a["deprecated-message"])),this._hasDescription(i)?n.showToolTipIcon():n.hideToolTipIcon(),n},n.prototype._hasDescription=function(t){return t.display.description&&""!==t.display.description&&t.display.description&&"<p><br></p>"!==t.display.description},n.prototype.createLinkFigure=function(e,i,o){var n=i||this.getFigureByFnUnitId(e[SOURCE_FID]),a=o||this.getFigureByFnUnitId(e[TARGET_FID]);if(n&&a)return new t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.LinkFigure({source:{id:n.id,port:"out-right"},target:{id:a.id,port:"in-left"},kid:e.kid,sourceFid:e[SOURCE_FID],targetFid:e[TARGET_FID]})},n.prototype._createLinkFigure=function(e,i,o){var n={source:{id:i.id,port:"out-right"},target:{id:o.id,port:"in-left"},kid:e};return i.prop&&(n.sourceFid=i.prop("fid")),o.prop&&(n.targetFid=o.prop("fid")),i.x&&i.y&&(n.source={x:i.x,y:i.y}),o.x&&o.y&&(n.target={x:o.x,y:o.y}),new t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.LinkFigure(n)},n.prototype.addLinkTools=function(t){var e=joint.linkTools.SourceArrowhead.extend({tagName:"circle",attributes:{cx:4,r:8,fill:"#8993DE",stroke:"#8993DE","stroke-width":1,cursor:"move"}}),i=joint.linkTools.TargetArrowhead.extend({tagName:"circle",attributes:{cx:-8,r:8,fill:"#8993DE",stroke:"#8993DE","stroke-width":1,cursor:"move"}}),o=joint.linkTools.Remove.extend({children:[{tagName:"circle",selector:"button",attributes:{r:9,fill:"#f6f6f6",stroke:"#8993DE","stroke-width":2,cursor:"pointer"}},{tagName:"path",selector:"icon",attributes:{d:"M -4 -4 4 4 M -4 4 4 -4",fill:"none",stroke:"#5755a1","stroke-width":4,"pointer-events":"none"}}]}),n=[new e,new i];if(t.getConnectionLength()>100){var a=new o({distance:33}),r=new o({distance:t.getConnectionLength()-38});n.push(a),n.push(r)}else{var s=new o({distance:"50%"});n.push(s)}var l=new joint.dia.ToolsView({tools:n});t.addTools(l),t.showTools()},n.prototype.showTools=function(e){var i=this;if(this.options.scale<.6)this.hideTools();else{var o=e.attributes.position;o&&e instanceof t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.FnUnitFigure&&!e.attributes.dummy&&(this.clearHideToolsTimer(),this.clearShowToolsTimer(),this.showToolsTimer=setTimeout(function(){var t=e.attributes.fid,n=i.options.editor.getActiveModel().getFnUnitById(t);n&&(i.$tools.attr("has-model",i.hasModel(e.attributes.attrs.category,n)),i.$tools.attr("cid",e.cid),i.$tools.attr("category",e.attributes.attrs.category),i.$tools.attr("select","#FFFFFF"!==e.attributes.attrs[".brtc-va-outer"].fill),i.$tools.css({top:o.y*i.options.scale,left:o.x*i.options.scale,display:"block"}))},50)),this.setConnectToolItemVisible(e.attributes.outputtable)}},n.prototype.updateToolsPosition=function(t){var e=t.attributes.position;this.$tools.css({top:e.y*this.options.scale,left:e.x*this.options.scale})},n.prototype.clearShowToolsTimer=function(){this.showToolsTimer&&(clearTimeout(this.showToolsTimer),this.showToolsTimer=null)},n.prototype.hideTools=function(e){var i=this;this.$tools&&(e?(t.OptModelManager.renderOptModels(i),this.$tools.hide()):(this.clearShowToolsTimer(),this.clearHideToolsTimer(),this.hideToolsTimer=setTimeout(function(){t.OptModelManager.renderOptModels(i),i.$tools.hide()},200)))},n.prototype.clearHideToolsTimer=function(){this.hideToolsTimer&&(clearTimeout(this.hideToolsTimer),this.hideToolsTimer=null)},n.prototype.showToolTip=function(e){if(this.options.scale<.6)this.hideToolTip();else{var i,o=this,n=this.getModel().type,a=e.attributes.position;if(a&&e instanceof t.VA.Implementation.DataFlow.Editors.Diagram.Shapes.FnUnitFigure&&!e.attributes.dummy&&this.getEditor().getEditorState("tooltip-enabled")){var r=o.getFnUnitById(e.attributes.fid),s=t.VA.Core.Utils.WidgetUtils.getFunctionLibrary(n,r.func);i=e.getColor(),o.$toolTip.empty();var l=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-header-func"> <label class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-header-func-label" style="background-color:'+i+'"></label></div>');"udf"===s.category?l.find(".brtc-va-editors-diagram-diagrameditorpage-function-tooltip-header-func-label").text("UDF"):l.find(".brtc-va-editors-diagram-diagrameditorpage-function-tooltip-header-func-label").text(s.defaultFnUnit.display.label),o.$toolTip.append(l);var d,c,p,h=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-header"><p></p></div>');h.find("p").text(r.display.label),o.$toolTip.append(h),o.$toolTip.addClass("brtc-va-editors-visible"),o.$toolTip.css({top:(a.y+t.VA.Env.Diagram.FIGURE_HEIGHT)*o.options.scale,left:a.x*o.options.scale}),o._hasDescription(r)?(d=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-contents-container"></div>'),c=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-contents">'+r.display.description+"</div>"),p=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-contents-edit"></div>'),o.$toolTip.append(d),d.append(c),d.append(p),c.perfectScrollbar()):(d=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-contents-empty-container"></div>'),p=$('<div class="brtc-va-editors-diagram-diagrameditorpage-function-tooltip-contents-edit"></div>'),o.$toolTip.append(d),d.append(p),d.append(p)),p.click(function(e){var i={title:"Edit Function",label:r.display.label,description:r.display.description||"",close:function(t){t.OK&&o.doEditFunction(r.fid,t.label,t.description)}};new t.VA.Core.Dialogs.EditResourceDialog(o.$mainControl,i)})}}},n.prototype.hideToolTip=function(){this.$toolTip&&this.$toolTip.removeClass("brtc-va-editors-visible")},n.prototype.doEditFunction=function(e,i,o){var n=new t.VA.Core.Editors.Diagram.Commands.RenameFnUnitCommand(this,{fid:e,name:i,description:o});this.fireCommand(n)},n.prototype.removeFnUnitFigure=function(e){var i=Studio.getEditorContainer().getActiveModelEditor(),o=i.getEditorInput().getProjectId(),n=i.getEditorInput().getFileId(),a=this.getFnUnitById(e.attributes.fid),r=a.display.label;this.notification("success","The function ["+r+"] was removed.");var s=new t.VA.Core.CompoundCommand(this,{label:"Remove a Function"});for(var l in a.param){var d=a.parent().getVariable(a.fid,l);d&&s.add(new t.VA.Core.Editors.Diagram.Commands.UnBindVariableCommand(this,{fid:a.fid,paramKey:l,variable:d}))}var c=this.graph.getConnectedLinks(e);for(var p in c)this._removeLink(c[p]),s.add(this.createDisconnectFnUnitCommand(c[p]));this._removeFigure(e),s.add(this.createRemoveFnUnitCommand(e)),s.add(this.createRemoveConnectedOutDataCommand([e]));var h=t.OptModelManager.getTargetOptModelId(o,n,a.fid);h&&s.add(t.OptModelManager.createRemoveOptModelCommand(o,n,h)),this.fireCommand(s)},n.prototype.removeFnUnitFigures=function(e){var i,o,n,a=Studio.getEditorContainer().getActiveModelEditor(),r=a.getEditorInput().getProjectId(),s=a.getEditorInput().getFileId(),l=new t.VA.Core.CompoundCommand(this,{label:"Remove functions"}),d=[],c=[],p=[];for(o in e){i=this.getFnUnitById(e[o].attributes.fid),d.push(i);var h=this.graph.getConnectedLinks(e[o]);for(n in h)p.indexOf(h[n].attributes.kid)<0&&(p.push(h[n].attributes.kid),c.push(h[n]))}for(o in c)this._removeLink(c[o]),l.add(this.createDisconnectFnUnitCommand(c[o]));var u={};for(o in e){e[o].remove(),l.add(this.createRemoveFnUnitCommand(e[o]));var m=d[o].parent().getVariables(d[o].fid);for(var g in m)l.add(new t.VA.Core.Editors.Diagram.Commands.UnBindVariableCommand(this,{fid:d[o].fid,paramKey:g,variable:m[g]}));var f=t.OptModelManager.getTargetOptModelId(r,s,d[o].fid);f&&(u[f]=!0)}for(var v in u)l.add(t.OptModelManager.createRemoveOptModelCommand(r,s,v));l.add(this.createRemoveConnectedOutDataCommand(e)),this.notification("success",e.length+" functions were removed."),this.fireCommand(l)},n.prototype.removeFnUnitLink=function(e){var i=this.graph.getConnectedLinks(e);if(i.length>0){var o=this.getFnUnitById(e.attributes.fid).display.label;this.notification("success","All associated connections to ["+o+"] was removed.");var n=new t.VA.Core.CompoundCommand(this,{});for(var a in i)this._removeLink(i[a]),n.add(this.createDisconnectFnUnitCommand(i[a]));this.fireCommand(n)}else this.notification("info","Already removed all the associated connections to the function")},n.prototype._removeFigure=function(t){if(t){var e={duration:200,timingFunction:joint.util.timing.inout,valueFunction:function(t,e){return function(t){return 1-(e+t)}}};t.on("transition:end",function(){t.remove()}),t.transition("attrs/rect.outer/opacity",.2,e),t.transition("attrs/text/opacity",.2,e),t.attributes.dummy=!0,t.cid===this.$tools.attr("cid")&&this.hideTools(!0)}},n.prototype._revertPosition=function(t){var e=this.getFnUnitById(t.attributes.fid).display.diagram.position,i=t.position();e.x===i.x&&e.y===i.y||t.position(e.x,e.y)},n.prototype._revertLink=function(t){var e=this.getLinkUnitById(t.attributes.kid),i=this.getFigureByFnUnitId(e[SOURCE_FID]),o=this.getFigureByFnUnitId(e[TARGET_FID]);t.set({source:{id:i.id,port:"out-right"},target:{id:o.id,port:"in-left"},sourceFid:i.prop("fid"),targetFid:o.prop("fid")})},n.prototype._removeLink=function(t){if(t){var e={duration:200,timingFunction:joint.util.timing.inout,valueFunction:function(t,e){return function(t){return 1-(e+t)}}};t.on("transition:end",function(){t.remove()}),t.transition("attrs/path/opacity",.2,e)}},n.prototype.connectSmartly=function(e){var i,o,n,a=[],r=e.attributes.position.x,s=e.attributes.position.y,l=this.GAP_WIDTH||t.VA.Env.Diagram.GAP_WIDTH,d=this.graph.findModelsFromPoint({x:r-l,y:s}),c=this.graph.findModelsFromPoint({x:r+t.VA.Env.Diagram.FIGURE_WIDTH+l,y:s});0===this.graph.getConnectedLinks(e,{inbound:!0}).length&&d.length>0&&!d[0].attributes.connectableFunctions&&e.attributes.inputtable&&d[0].attributes.outputtable&&d[0].attributes.position.y===s&&(i={kid:t.VA.Core.Utils.IDGenerator.link.id(),sourceFid:d[0].attributes.fid,targetFid:e.attributes.fid},(o=this.createLinkFigure(i))&&a.push(o));var p=this.graph.getConnectedLinks(e,{outbound:!0});return!e.attributes.connectableFunctions&&0===p.length&&c.length>0&&c[0].attributes.inputtable&&e.attributes.outputtable&&c[0].attributes.position.y===s&&(i={kid:t.VA.Core.Utils.IDGenerator.link.id(),sourceFid:e.attributes.fid,targetFid:c[0].attributes.fid},(n=this.createLinkFigure(i))&&a.push(n)),a.length&&this.graph.addCells(a),a},n.prototype.checkOverPosition=function(t){var e=this.calcGuidePosition(t),i=this.graph.findModelsFromPoint(e);for(var o in i)if(i[o]!==t&&i[o].position().x===e.x&&i[o].position().y===e.y)return!1;return!0},n.prototype.checkPreviousPosition=function(t){var e=this.calcGuidePosition(t),i=this.graph.getConnectedLinks(t,{inbound:!0});for(var o in i)if(i[o].getSourceElement().position().x>=e.x)return!1;return!0},n.prototype.checkNextPosition=function(t){var e=this.calcGuidePosition(t),i=this.graph.getConnectedLinks(t,{outbound:!0});for(var o in i)if(i[o].getTargetElement().position().x<=e.x)return!1;return!0},n.prototype.checkOutRangePosition=function(t){var e=this.calcGuidePosition(t);return e.x>0&&e.y>0},n.prototype.checkConnectedLink=function(t){return null!=t.getSourceElement()&&null!=t.getTargetElement()},n.prototype.checkLoopLink=function(t){var e=t.prop("sourceFid"),i=t.prop("targetFid");return this._getConnectableFids(e).indexOf(i)>=0},n.prototype._getConnectableFids=function(e){var i=this,o=this.options.editor.getActiveModel().links,n=[];this.options.editor.getActiveModel().functions.forEach(function(t){n.push(t.fid)});var a,r={},s=n.length,l=o.length;for(a=0;a<s;a++)r[n[a]]=[];for(a=0;a<l;a++)r[o[a].targetFid].push(o[a].sourceFid);var d={},c=function(t){d[t]=!0;for(var e=0;e<r[t].length;e++){var i=r[t][e];d[i]||c(i)}};c(e);var p=[];for(a=0;a<s;a++)d[n[a]]||p.push(n[a]);var h=this.getFnUnitById(e);return p=p.filter(function(e){var o=i.getFnUnitById(e),n=t.VA.Core.Utils.WidgetUtils.getFunctionLibrary("data",o.func);return!n["acceptable-functions"]||n["acceptable-functions"].indexOf(h.func)>=0})},n.prototype.checkLinkPosition=function(t){var e=t.getSourceElement(),i=t.getTargetElement();if("function"==typeof e.position&&"function"==typeof i.position){var o=e.position();return i.position().x>o.x}return!0},n.prototype.checkAlreadyExistLink=function(t){for(var e=t.prop("sourceFid"),i=t.prop("targetFid"),o=this.getModel().links,n=0;n<o.length;n++)if(o[n][SOURCE_FID]===e&&o[n][TARGET_FID]===i)return!1;return!0},n.prototype.checkAlreadyExistLinkByTableId=function(t){var i=t.prop("sourceFid"),o=t.prop("targetFid"),n=this.getFnUnitById(i),a=this.getFnUnitById(o),r=e.getOutData(n),s=e.getInData(a);for(var l in r)if(s&&s.indexOf(r[l])>-1)return!1;return!0},n.prototype.registerGoHistoryEventListener=function(){var e=this,i=t.VA.Core.Utils.WidgetUtils.getModelEditorRef(this.$mainControl);this.onGoHistoryCommand=function(t){e.hideSelectionBox(),e._triggerFnUnitSelect(),e.render();var i=[],o=[];for(var n in e.problems)void 0===i[e.problems[n].fid]&&(i.push(e.problems[n].fid),o.push(e.getFigureByFnUnitId(e.problems[n].fid)));e.hideErrorBox(),e.showErrorBox(o)},i.addGoHistoryListener(this.onGoHistoryCommand)},n.prototype.updateStatus=function(t){var e=this.getFigureByFnUnitId(t.fid);e&&e.updateStatus(t.status)},n.prototype.destroy=function(){Studio.getInstance().removeProblemListener(this.problemsListener),Studio.getInstance().removeDebugListener(this.debugListener)},n.prototype.setModel=function(t){this.render(),this.hideAdditionalItems()},n.prototype.hideAdditionalItems=function(t){this.hideValidationToolTip(),this.hideSelectionBox(),this.hideErrorBox(),this.hideGuideBox(),this.hideGuideMessage(),this.hideTools(!0),this.hideToolTip()},n.prototype.createNewActivityCommand=function(e){var i=t.VA.Core.Utils.NestedFlowUtils.getNewActivityCommandOptions(e);return _.map(i,function(e){return new t.VA.Core.Editors.Diagram.Commands.NewActivityCommand(this,e)}.bind(this))},n.prototype.createRemoveConnectedOutDataCommand=function(i){var o=this,n=[],a=[],r=this.getEditor().getActiveModel();_.forEach(i,function(t){for(var i=o.getFnUnitById(t.attributes.fid),n=e.getOutData(i),s=0;n&&s<n.length;s++){var l=_.indexOf(r[OUT_DATA],n[s]);l>-1&&a.push(l)}}),a.sort(function(t,e){return e-t});for(var s=0;s<a.length;s++)n.push(new t.VA.Core.Editors.Diagram.Commands.RemoveOperationCommand(this,{target:r,path:[OUT_DATA,a[s]]}));if(this.isNestedFlow()){var l=t.VA.Core.Utils.NestedFlowUtils.calcNextFnUnitOutTableSize(this.getEditor().getModel(),this.getEditor().getActiveFnUnit(),r.mid,-a.length);n.push(t.VA.Core.Utils.NestedFlowUtils.createAdjustOutTableCommand(this,this.getEditor().getModel(),this.getEditor().getActiveFnUnit(),l))}return _.flatten(n)},n.prototype.getEditorInput=function(){return this.getEditor().getEditorInput()},n.prototype.getEditor=function(){return this.options.editor},n.prototype.getModel=function(){return this.options.editor.getActiveModel()},n.prototype.isNestedFlow=function(){var t=this.getEditor().getActiveFnUnit();return t&&("if"===t.func||"forLoop"===t.func||"whileLoop"===t.func)},n.prototype.getOptions=function(){return this.options},n.prototype.hasModel=function(t,e){return["process","control"].indexOf(t)>-1&&"Flow"!==e[FUNCTION_NAME]},n.prototype.changeCursor=function(t,e){var i=V(this.paper.findViewByModel(t).el);["brtc-style-cursor-pointer","brtc-style-cursor-move"].forEach(function(t){i.removeClass(t,!1)}),"pointer"===e?i.addClass("brtc-style-cursor-pointer",!0):"move"===e&&i.addClass("brtc-style-cursor-move",!0)},n.prototype.ensureCenterByFnUnit=function(t){var e=this.getFigureByFnUnitId(t.fid);this.ensureCenter(e)},n.prototype.refresh=function(){var t=this.graph.getElements();for(var e in t)t[e].refresh()},t.VA.Implementation.DataFlow.Editors.Diagram.EditorPage=n}.call(this),function(){"use strict";var t=this.Brightics;function e(){}e.prototype=Object.create(t.VA.Core.Editors.Sheet.PanelFactory.prototype),e.prototype.constructor=e,e.prototype.createInDataPanel=function(e,i){if(i.fnUnit[IN_DATA]){i.title=i.title||"In",i.resizable=!!i.fnUnit[OUT_DATA];var o=i.fnUnit.func,n=t.VA.Core.Editors.Sheet.Panels.DataPanel;return"export"===o&&(n=t.VA.Implementation.DataFlow.Functions[o].DataPanel),new n(e,i)}},e.prototype.createOutDataPanel=function(e,i){if(i.fnUnit[OUT_DATA]){i.title=i.title||"Out",i.resizable=!!i.fnUnit[IN_DATA];var o=i.fnUnit.func,n=t.VA.Implementation.DataFlow.Functions[o].DataPanel||t.VA.Core.Editors.Sheet.Panels.DataPanel;return"eDA"===o&&(n=t.VA.Implementation.DataFlow.Functions[o].DataPanel),new n(e,i)}},t.VA.Implementation.DataFlow.Editors.Sheet.PanelFactory=e}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){this.colorSet=["#FD026C","#4682B8","#A5D22D","#F5CC0A","#FE8C01","#6B9494","#B97C46","#84ACD0","#C2E173","#F9DD5B","#FE569D","#FEB356","#9CB8B8","#D0A884","#2E6072","#6D8C1E","#A48806","#A90148","#A95E01","#476363","#7B532F"],t.VA.Core.Editors.Sheet.Panels.DataPanel.call(this,e,i),this._queryTable()}e.prototype=Object.create(t.VA.Core.Editors.Sheet.Panels.DataPanel.prototype),e.prototype.constructor=e,e.prototype.destroy=function(){this.pagination&&this.pagination.destroy(),this.dataWorksheet&&this.dataWorksheet.destroy(),t.VA.Core.Editors.Sheet.Panels.BasePanel.prototype.destroy.call(this),this.options.modelEditor.removeCommandListener(this.commandListener)},e.prototype._queryTable=function(){var t=this,e=this.display.tableList,i=function(e){if(0===o.length){t.$contentsArea.empty();var i=$('<div class="brtc-va-editors-sheet-controls-dataworksheet brtc-style-interactive-prediction-out-panel"></div>');t.$contentsArea.append(i),i.empty();var n=$('<div class="brtc-va-interactive-prediction-message-wrapper brtc-style-interactive-prediction-message-wrapper"> <div class="brtc-va-interactive-prediction-message brtc-style-interactive-prediction-message">Please run the function for results.</div></div>');i.append(n)}else!1===t._isDisposed()&&(t.createDataWorksheet(o),t.$topArea.attr("has-data","true"))},o=[];9===e.length&&t.options.dataProxy.requestDataForEDA(e[0],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[1],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[2],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[3],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[4],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[5],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[6],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[7],function(n){o.push(n),t.options.dataProxy.requestDataForEDA(e[8],function(e){o.push(e),!1===t._isDisposed()&&(t.createDataWorksheet(o),t.$topArea.attr("has-data","true"))},i)},i)},i)},i)},i)},i)},i)},i)},i)},e.prototype.createDataWorksheet=function(t){this.$contentsArea.empty();var e=void 0!==t,i=$('<div class="brtc-va-editors-sheet-controls-dataworksheet brtc-style-interactive-prediction-out-panel" style="overflow-y: auto"> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-area brtc-style-editors-sheet-controls-dataworksheet-chart-area"> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-scatter brtc-style-editors-sheet-controls-dataworksheet-chart-title">Scatter Matrix</div> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-scatter brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 500px"/> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pie brtc-style-editors-sheet-controls-dataworksheet-chart-title">Summary of Label</div> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pie brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 400px"/> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pietable brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 100px"/> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-histogram-title brtc-style-editors-sheet-controls-dataworksheet-chart-title">Summary of Continuous Features</div> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-histogram brtc-style-editors-sheet-controls-dataworksheet-chart"/> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-histogramtable brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 150px"/> </div></div>');if(this.$contentsArea.append(i),e){if(i.find(".brtc-va-interactive-prediction-message-wrapper").remove(),this._createScatterChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-scatter"),t),this._createPieChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-pie"),t[3]),this._createTableChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-pietable"),t[4]),this._createHistogramChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-histogram"),t[5]),this._createTableChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-histogram"),t[6]),void 0!==t[7]&&void 0!==t[8]&&0!==t[7].count&&0!==t[8].count){var o=$('<div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pie2-title brtc-style-editors-sheet-controls-dataworksheet-chart-title">Summary of Category Features</div><div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pie2 brtc-style-editors-sheet-controls-dataworksheet-chart"/><div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pie2table brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 100px"/>');i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-histogram").append(o),this._createCategoryPieChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-pie2"),t[7]),this._createTableChartControls(i.find(".brtc-va-editors-sheet-controls-dataworksheet-chart-pie2"),t[8])}}else{i.empty();var n=$('<div class="brtc-va-interactive-prediction-message-wrapper brtc-style-interactive-prediction-message-wrapper"> <div class="brtc-va-interactive-prediction-message brtc-style-interactive-prediction-message">Please run the function for results.</div></div>');i.append(n)}},e.prototype._createScatterChartControls=function(t,e){var i=echarts.init(t[1]);this.resizeHandler=function(){i.resize()},$(window).resize(this.resizeHandler);var o=e[0].data,n=e[1].data,a=e[2].data;if(!(_.isEmpty(o)||_.isEmpty(n)||_.isEmpty(a))){var r=[];for(var s in n)if("category"===n[s][1]){for(var l in n[s][2])null==n[s][2][l]&&(n[s][2][l]="(empty)");null==n[s][o[0][4]]&&(a[s][o[0][4]]="(empty)"),r.push(n[s][2])}var d=[];for(var s in a){null==a[s][o[0][4]]&&(a[s][o[0][4]]="(empty)");var c={name:a[s][0],value:a[s][1]};d.push(c)}var p=o[0][1],h=2,u=5,m=10,g=(100-u-h)/p-h,f=(100-m-h)/p-h,v=o[0][4],b=3,y=[];for(s=0;s<n[o[0][4]][2].length;s++)y.push(this.colorSet[s%this.colorSet.length]);var C={animation:!1,visualMap:{type:"piecewise",categories:n[o[0][4]][2],dimension:v,orient:"horizontal",top:0,left:"center",inRange:{color:y},outOfRange:{color:"#ddd"},seriesIndex:[0]},tooltip:{trigger:"item"},grid:[],xAxis:[],yAxis:[],series:[{name:"parallel",type:"parallel",data:a}]};!function(t){for(var e=0,i=0;i<p;i++)for(var o=0;o<p;o++)p-i+o>=p||(t.grid.push({left:u+i*(g+h)+"%",top:m+o*(f+h)+"%",width:g+"%",height:f+"%"}),t.xAxis.push({splitNumber:3,position:"top",axisLine:{show:0===o,onZero:!1},axisTick:{show:0===o,inside:!0},axisLabel:{show:0===o},type:"value",gridIndex:e,scale:!0}),t.yAxis.push({splitNumber:3,position:"right",axisLine:{show:i===p-1,onZero:!1},axisTick:{show:i===p-1,inside:!0},axisLabel:{show:i===p-1},type:"value",gridIndex:e,scale:!0}),t.series.push({type:"scatter",symbolSize:b,xAxisIndex:e,yAxisIndex:e,data:F(a,i,o)}),t.visualMap.seriesIndex.push(t.series.length-1),e++)}(C),i.setOption(C)}function F(t,e,i){for(var o=[],n=0;n<t.length;n++){var a=[t[n][e],t[n][i]];a[v]=t[n][v],o.push(a)}return o}},e.prototype._createPieChartControls=function(t,e){var i=echarts.init(t[1]);this.resizeHandler=function(){i.resize()},$(window).resize(this.resizeHandler);var o=e.data,n=e.columns,a=[],r=[];for(var s in o){null==o[s][0]&&(o[s][0]="(empty)"),a.push(o[s][0]);var l={name:o[s][0],value:o[s][1]};r.push(l)}var d=n[0].name,c=[];for(s=0;s<r.length;s++)c.push(this.colorSet[s%this.colorSet.length]);var p={color:c,tooltip:{trigger:"item",formatter:"{a} <br/>{b} : {c} ({d}%)"},legend:{orient:"horizontal",left:"center",data:a},series:[{name:d,type:"pie",radius:"55%",center:["50%","45%"],data:r,itemStyle:{emphasis:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};i.setOption(p)},e.prototype._createCategoryPieChartControls=function(t,e){var i=e.data;this.PieChartData=[],this.colArray=[];for(var o=1;o<i.length;o++)-1==$.inArray(i[o][0],this.colArray)&&this.colArray.push(i[o][0]);for(o=0;o<this.colArray.length;o++){this.PieChartData[this.colArray[o]]=[];for(var n=0;n<i.length;n++)if(i[n][0]===this.colArray[o]){var a=[];a.push(i[n][1]),a.push(i[n][2]),this.PieChartData[this.colArray[o]].push(a)}}for(var o in this.PieChartData){var r=$('<div class="brtc-va-editors-sheet-controls-dataworksheet-chart-pie-sub brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 400px;"/>');t.append(r);var s=echarts.init(r[0]);this.resizeHandler=function(){s.resize()},$(window).resize(this.resizeHandler);var l=[],d=[];for(var n in this.PieChartData[o]){null==this.PieChartData[o][n][0]&&(this.PieChartData[o][n][0]="(empty)"),l.push(this.PieChartData[o][n][0]);var c={name:this.PieChartData[o][n][0],value:this.PieChartData[o][n][1]};d.push(c)}var p=o,h=[];for(o=0;o<d.length;o++)h.push(this.colorSet[o%this.colorSet.length]);var u={color:h,tooltip:{trigger:"item",formatter:"{a} <br/>{b} : {c} ({d}%)"},legend:{orient:"horizontal",left:"center",data:l},series:[{name:p,type:"pie",radius:"55%",center:["50%","45%"],data:d,itemStyle:{emphasis:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]};s.setOption(u)}},e.prototype._createTableChartControls=function(t,e){var i=e.data,o=e.columns,n=[];for(var a in o){var r={name:o[a].name,type:o[a].type};n.push(r)}var s={chart:{type:"table",padding:"0",height:"100%"},source:{dataType:"local",localData:[{dataType:"rawdata",columns:n,data:i,chartColumns:[]}]}};t.bcharts(s),this.chart=t.bcharts()},e.prototype._createHistogramChartControls=function(t,e){var i=e.data;this.HistogramChartData=[],this.colArray=[];for(var o=0;o<i.length;o++)-1==$.inArray(i[o][0],this.colArray)&&this.colArray.push(i[o][0]);for(o=0;o<this.colArray.length;o++){this.HistogramChartData[this.colArray[o]]=[];for(var n=0;n<i.length;n++)if(i[n][0]===this.colArray[o]){var a=[];a.push((i[n][1]+i[n][2])/2),a.push(i[n][3]),this.HistogramChartData[this.colArray[o]].push(a)}}for(var o in this.HistogramChartData){var r=$('<div class="brtc-va-editors-sheet-controls-dataworksheet-chart-histogram-sub brtc-style-editors-sheet-controls-dataworksheet-chart" style="height: 250px;"/>');t.append(r);var s=echarts.init(r[0]);this.resizeHandler=function(){s.resize()},$(window).resize(this.resizeHandler);var l={title:{text:o,left:"center",top:10},color:["rgb(25, 183, 207)"],grid:{left:"3%",right:"3%",bottom:"3%",containLabel:!0},xAxis:[{type:"value",scale:!0,nameLocation:"center"}],yAxis:[{type:"value"}],series:[{name:"height",type:"bar",barWidth:"99.3%",label:{normal:{show:!0,position:"top",formatter:function(t){return t.value[1]}}},data:this.HistogramChartData[o]}]};s.setOption(l)}},t.VA.Implementation.DataFlow.Functions.eDA&&(t.VA.Implementation.DataFlow.Functions.eDA.DataPanel=e)}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){this.relationFunctionTable=[],this.coefficientFunctionTable=[],this.summaryTable=[],this.summaryKey={},this.values={},this.ycolumnSummaryData=[],this.xcolumnsSummaryData=[],t.VA.Core.Editors.Sheet.Panels.DataPanel.call(this,e,i),this._queryTable()}e.prototype=Object.create(t.VA.Core.Editors.Sheet.Panels.DataPanel.prototype),e.prototype.constructor=e,e.prototype.registerCommandListener=function(){var e=this;this.commandListener=function(i){i instanceof t.VA.Core.Editors.Diagram.Commands.SetDataWorksheetPanelCommand&&e.options.fnUnit.fid===i.event.source.options.fnUnit.fid&&e.handleSetDataWorksheetPanelCommand(i)},this.options.modelEditor.addCommandListener(this.commandListener)},e.prototype.handleSetDataWorksheetPanelCommand=function(t){this._initSlideBarData(),this._setAllSliderControlsValue(),"UNDO"==t.event.type?this._updateChartControls(t.options.oldPanel[0].data[0].label,t.options.oldPanel[0].data[0].value):"REDO"==t.event.type&&this._updateChartControls(t.options.newPanel[0].data[0].label,t.options.newPanel[0].data[0].value)},e.prototype.createSetDataWorksheetPanelCommand=function(e){return new t.VA.Core.Editors.Diagram.Commands.SetDataWorksheetPanelCommand(this,{panel:this.options.fnUnit.display.sheet[this.display.panelType].partial[0].panel,newPanel:e})},e.prototype.destroy=function(){this.pagination&&this.pagination.destroy(),this.dataWorksheet&&this.dataWorksheet.destroy(),t.VA.Core.Editors.Sheet.Panels.BasePanel.prototype.destroy.call(this),this.options.modelEditor.removeCommandListener(this.commandListener)},e.prototype.createTopAreaHeaderTitle=function(t){this.$header=$('<div class="brtc-va-editors-sheet-panels-basepanel-header brtc-va-editors-sheet-panels-datapanel-header"> <div class="brtc-va-editors-sheet-panels-basepanel-header-container brtc-interactive-prediction-out-panel"> <div class="brtc-va-editors-sheet-panels-basepanel-header-title" /> </div></div>'),t.append(this.$header)},e.prototype.refreshHeaderTitle=function(){var t=this.$mainControl.find(".brtc-va-editors-sheet-panels-basepanel-header-title");"out"===this.display.panelType&&(t.text(this.options.title),t.attr("title",this.options.title))},e.prototype.createTopAreaHeaderToolbar=function(){var t=$('<div class="brtc-va-editors-sheet-panels-datapanel-toolbar"/>');this.$header.append(t),this.createMinMaxToolItem(t)},e.prototype.createBottomArea=function(){this.$bottomArea=$('<div class="brtc-va-editors-sheet-panels-basepanel-bottom-area"></div>'),this.$mainControl.append(this.$bottomArea)},e.prototype.createBottomAreaControls=function(t){},e.prototype._queryTable=function(){var t=this,e=this.display.tableList,i=function(e){t.$contentsArea.empty();var i=$('<div class="brtc-va-editors-sheet-controls-dataworksheet brtc-style-interactive-prediction-out-panel"></div>');t.$contentsArea.append(i),i.empty();var o=$('<div class="brtc-va-interactive-prediction-message-wrapper brtc-style-interactive-prediction-message-wrapper"> <div class="brtc-va-interactive-prediction-message brtc-style-interactive-prediction-message">Please run the function for results.</div></div>');i.append(o)},o=[];3===e.length&&t.options.dataProxy.requestData(e[0],function(n){o.push(n),t.options.dataProxy.requestData(e[1],function(n){o.push(n),t.options.dataProxy.requestData(e[2],function(e){o.push(e),!1===t._isDisposed()&&(t.createDataWorksheet(o),t.$topArea.attr("has-data","true"))},i)},i)},i)},e.prototype.createDataWorksheet=function(t){this.$contentsArea.empty();var e=void 0!==t;for(var i in t)if(0===t[i].data.length&&0===t[i].columns.length){e=!1;break}var o=$('<div class="brtc-va-editors-sheet-controls-dataworksheet brtc-style-interactive-prediction-out-panel"> <div class="brtc-va-editors-sheet-controls-dataworksheet-slider-area brtc-style-editors-sheet-controls-dataworksheet-slider-area"></div> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart-area brtc-style-editors-sheet-controls-dataworksheet-chart-area"> <div class="brtc-va-editors-sheet-controls-dataworksheet-chart brtc-style-editors-sheet-controls-dataworksheet-chart"> </div></div>');if(this.$contentsArea.append(o),e)o.find(".brtc-va-interactive-prediction-message-wrapper").remove(),this._initDataArray(t),this._initChartData(),this._initSlideBarData(),this._createSliderControls(o.find(".brtc-va-editors-sheet-controls-dataworksheet-slider-area")),this._createChartControls(o.find(".brtc-va-editors-sheet-controls-dataworksheet-chart"));else{o.empty();var n=$('<div class="brtc-va-interactive-prediction-message-wrapper brtc-style-interactive-prediction-message-wrapper"> <div class="brtc-va-interactive-prediction-message brtc-style-interactive-prediction-message">Please run the function for results.</div></div>');o.append(n)}},e.prototype._initDataArray=function(t){if(t&&t.length){for(var e in this.relationFunctionTable=t[0],this.coefficientFunctionTable=t[1],this.summaryTable=t[2],this.summaryKey={},this.summaryTable.columns)this.summaryKey[this.summaryTable.columns[e].name]=e;this.values={},this.ycolumnSummaryData=[],this.xcolumnsSummaryData=[],this._initValuesObject()}},e.prototype._initValuesObject=function(){var t=this.summaryTable.data[0][0];for(var e in this.summaryTable.data){var i=this.summaryTable.data[e][0];i==t?this.ycolumnSummaryData=this.summaryTable.data[e]:this.xcolumnsSummaryData.push(this.summaryTable.data[e]),this.values[i]=null}},e.prototype._initChartData=function(){for(i in this.chartData={},this.xcolumnsSummaryData){var t=this.xcolumnsSummaryData[i][0],e=this.xcolumnsSummaryData[i][this.summaryKey.min],o=this.xcolumnsSummaryData[i][this.summaryKey.max];this.chartData[t]=[];for(var n=1e4*e;n<1e4*o;n+=100){var a=n/1e4;this._changeXColumnValue(t,a),this._calcYColumnValue(),this.chartData[t].push([a,this.values[this.summaryTable.data[0][0]]])}}},e.prototype._getLastChangedXColumnLabel=function(){var t;return this.options.fnUnit.display.sheet.out.partial[0].panel.length&&this.options.fnUnit.display.sheet.out.partial[0].panel[0]&&(t=this.options.fnUnit.display.sheet.out.partial[0].panel[0].data[0].label),t||this.xcolumnsSummaryData[0][0]},e.prototype._getLastChangedXColumnValue=function(){var t;return this.options.fnUnit.display.sheet.out.partial[0].panel.length&&this.options.fnUnit.display.sheet.out.partial[0].panel[0]&&(t=this.options.fnUnit.display.sheet.out.partial[0].panel[0].data[0].value),t||this.xcolumnsSummaryData[0][this.summaryKey.mean]},e.prototype._initSlideBarData=function(){var t=this._getLastChangedXColumnLabel(),e=this._getLastChangedXColumnValue();this._changeXColumnValue(t,e),this._calcYColumnValue()},e.prototype._changeXColumnValue=function(t,e){e&&(this.values[t]=Number(e));var i=this.values[t];for(var o in this.relationFunctionTable.data){var n=this.relationFunctionTable.data[o],a=n[0],r=n[1];if(a!==r&&r===t){var s=Number(n[2]),l=Number(n[3]),d=Number(n[4]),c=Number(n[5]);this.values[a]=s*Math.pow(i,3)+l*Math.pow(i,2)+d*i+c}}},e.prototype._calcYColumnValue=function(){var t,e=this.summaryTable.data[0][0];for(var i in this.coefficientFunctionTable.data)if("_intercept"==this.coefficientFunctionTable.data[i][0]&&"_"==this.coefficientFunctionTable.data[i][1]){t=this.coefficientFunctionTable.data[i][2];break}this.values[e]=Number(t);for(var o=0;o<this.coefficientFunctionTable.data.length;o++){var n=this.coefficientFunctionTable.data[o][0],a=this.coefficientFunctionTable.data[o][1];if("_intercept"!==n&&"_"!==a){var r=this.values[n]||1,s=this.values[a]||1,l=Number(this.coefficientFunctionTable.data[o][2]);this.values[e]+=l*r*s}}},e.prototype._createSliderControls=function(t){var e=this.summaryTable.data[0][0],i=this.ycolumnSummaryData[this.summaryKey.min],o=this.ycolumnSummaryData[this.summaryKey.max];for(var n in this._createSliderBar(t,e,i,o,this.values[e],!0),this.xcolumnsSummaryData){var a=this.xcolumnsSummaryData[n][0],r=this.xcolumnsSummaryData[n][this.summaryKey.min],s=this.xcolumnsSummaryData[n][this.summaryKey.max];this._createSliderBar(t,a,r,s,this.values[a])}},e.prototype._createSliderBar=function(e,i,o,n,a,r){var s=this,l=$('<div class="brtc-va-slider-item brtc-style-slider-item"> <div class="brtc-va-slider-item-info-row brtc-style-slider-item-info-row"> <div class="brtc-va-slider-label brtc-style-slider-label"></div> <div class="brtc-va-slider-value-wrapper brtc-style-slider-value-wrapper"> <div class="brtc-va-slider-value-viewer brtc-style-slider-value-viewer"></div> </div> </div> <div class="brtc-va-interactive-prediction-slider-element brtc-style-interactive-prediction-slider-element"> <div class="brtc-va-slider-min brtc-style-slider-min"></div> <div class="brtc-va-interactive-prediction-slider-wrapper brtc-style-interactive-prediction-slider-wrapper"> <div class="brtc-va-interactive-prediction-slider"></div> </div> <div class="brtc-va-slider-max brtc-style-slider-max"></div> </div></div>');e.append(l),l.find(".brtc-va-slider-label").attr("title",i),l.find(".brtc-va-slider-label").text(i),l.find(".brtc-va-slider-min").text(o),l.find(".brtc-va-slider-max").text(n),l.find(".brtc-va-slider-value-viewer").text(Number(a).toFixed(4));var d=l.find(".brtc-va-interactive-prediction-slider");d.jqxSlider({theme:t.VA.Env.Theme,showTicks:!1,showTickLabels:!1,tooltip:!1,showButtons:!1,mode:"default",height:20,width:"100%",step:.05,min:Number(o),max:Number(n),value:Number(a),disabled:r}),d.on("slideStart",function(t){d.on("slide",function(t){var e=l.find(".brtc-va-slider-label").text(),i=t.args.value;s._changeXColumnValue(e,i),s._calcYColumnValue(),s._setSliderControlsValue(l),s._updateChartControls(e,i)})}),d.on("slideEnd",function(t){var e=l.find(".brtc-va-slider-label").text(),i=t.args.value;d.off("slide");var o=s.createSetDataWorksheetPanelCommand([{data:[{label:e,value:i}]}]);s.executeCommand(o)})},e.prototype._setSliderControlsValue=function(t){var e=this;this.$contentsArea.find(".brtc-va-slider-item").each(function(i,o){var n=$(o).find(".brtc-va-slider-label").text();($(o).find(".brtc-va-slider-value-viewer").text(Number(e.values[n]).toFixed(4)),t&&!t.is($(o)))&&$(o).find(".brtc-va-interactive-prediction-slider").jqxSlider("setValue",e.values[n])})},e.prototype._setAllSliderControlsValue=function(){var t=this;this.$contentsArea.find(".brtc-va-slider-item").each(function(e,i){var o=$(i).find(".brtc-va-slider-label").text();$(i).find(".brtc-va-slider-value-viewer").text(Number(t.values[o]).toFixed(4)),$(i).find(".brtc-va-interactive-prediction-slider").jqxSlider("setValue",t.values[o])})},e.prototype._createChartControls=function(t){var e=this._createChartOptions(this._getLastChangedXColumnLabel(),this._getLastChangedXColumnValue(),!0);t.bcharts(e),this.chart=t.bcharts()},e.prototype._updateChartControls=function(t,e){var i=this._createChartOptions(t,e,this.chart.getOptions().xAxis[0].selected[0].name!==t);this.chart.setOptions(i)},e.prototype._createChartOptions=function(t,e,i){var o=t,n=e,a=this.summaryTable.data[0][0],r={colorSet:["#FD026C","#4682B8","#A5D22D","#F5CC0A","#FE8C01","#6B9494","#B97C46","#84ACD0","#C2E173","#F9DD5B","#FE569D","#FEB356","#9CB8B8","#D0A884","#2E6072","#6D8C1E","#A48806","#A90148","#A95E01","#476363","#7B532F"],tooltip:{trigger:"axis",axisPointer:{animation:!1}},xAxis:[{selected:[{name:o}],title:{visible:!0,left:"50%",bottom:"8px"},axisTick:{alignWithLabel:!0},axisLabel:{formatter:function(t){return Number(t).toFixed(2)}}}],yAxis:[{selected:[{name:a}],title:{left:"8px",top:"50%",rotate:-90},axisLabel:{formatter:function(t){return Number(t).toFixed(2)}}}],plotOptions:{line:{smooth:!0,marker:{symbol:"none"},markLine:{data:[{xAxis:n,lineStyle:{normal:{color:"#000",type:"solid"}}},{type:"max",name:"max"},{type:"average",name:"average"},{type:"min",name:"min"}]}}}};return i&&(r.chart={type:"line",border:"solid 1px #d3d3d3",padding:"0",background:"#efefef",height:"100%"},r.source={dataType:"local",localData:[{dataType:"rawdata",columns:[{name:o,type:"number"},{name:a,type:"number"}],data:$.extend(!0,[],this.chartData[o])}]}),r},t.VA.Implementation.DataFlow.Functions.interactivePrediction&&(t.VA.Implementation.DataFlow.Functions.interactivePrediction.DataPanel=e)}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){i.title="Browse Repository",t.VA.Core.Editors.Sheet.Panels.BasePanel.call(this,e,i),this.$mainControl.addClass("repository-viewer")}e.prototype=Object.create(t.VA.Core.Editors.Sheet.Panels.BasePanel.prototype),e.prototype.constructor=e,e.prototype.createContentsAreaControls=function(t){this.options.filePath=this.options.filePath||"",t.empty(),this.createDialogContentsArea(t)},e.prototype.createDialogContentsArea=function(t){t.addClass("brtc-va-dialogs-repository-browser-contents"),t.append('<div class="brtc-va-dialogs-repository-browser-tree"></div><div class="brtc-va-dialogs-repository-browser-file-layout"> <div class="brtc-va-dialogs-repository-browser-file-label">File Path</div> <div class="brtc-va-dialogs-repository-browser-file-input"><textarea></textarea></div></div><div class="brtc-va-dialogs-repository-browser-setting-option"> <div class="brtc-va-dialogs-repository-browser-radio" value="static">Set a static file path for users repository.</div> <div class="brtc-va-dialogs-repository-browser-radio" value="dynamic">Set a dynamic file path for users repository.</div></div>'),this.createRepositoryTree(t.find(".brtc-va-dialogs-repository-browser-tree")),this.createSettingOptionControl(t.find(".brtc-va-dialogs-repository-browser-setting-option")),this.createFilePathControl(t.find(".brtc-va-dialogs-repository-browser-file-input > textarea"))},e.prototype.createRepositoryTree=function(e){var i=this;this.repositoryViewer=new t.VA.Core.Controls.RepositoryViewer(e),this.repositoryViewer.$tree.on("select",function(t){var e=i.repositoryViewer.getSelectedPath();i._setFilePath(e)})},e.prototype.createSettingOptionControl=function(e){var i=this,o=e.find(".brtc-va-dialogs-repository-browser-radio");this.$settingOptionGroup=e,o.jqxRadioButton({theme:t.VA.Env.Theme,groupName:"repository-browser-setting-option"}),o.on("checked",function(){var t=i.repositoryViewer.getSelectedPath()||i.options.filePath;i._setFilePath(t)}),this.options.filePath.match(/\/users\/\$\{sys.user\}\//g)?this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio[value=dynamic]").jqxRadioButton("check"):this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio[value=static]").jqxRadioButton("check"),this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio").hide()},e.prototype.createFilePathControl=function(e){this.fileName=CodeMirror.fromTextArea(e[0],{mode:"text",theme:"default",indentWithTabs:!1,smartIndent:!1,lineNumbers:!1,matchBrackets:!0,scrollbarStyle:"null",autofocus:!1,readOnly:!0}),this.fileName.on("beforeChange",function(t,e){var i=e.text.join("").replace(/\n/g,"");return e.update&&e.update(e.from,e.to,[i]),!0}),this.fileName.setSize("100%","100%"),this.options.filePath&&this._setFilePath(this.options.filePath);t.VA.Core.Utils.WidgetUtils.changeCodeMirrorLineToSingle(this.fileName,{"valid-type":"fileNameType","valid-message-position":"bottom"})},e.prototype._setFilePath=function(e){if(e){var i=e.match(/^\/brtc\/repo\/shared\/[^\/]*/),o=e.match(/^\/brtc\/repo\/users\/[^\/]+\/[^\/]*/);if(this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio").hide(),i)this.fileName.setValue(e),this.fileName.markText({line:0,ch:0},{line:0,ch:18},{readOnly:!0,inclusiveLeft:!0,css:"color: #b4b4b4"});else if(o){this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio").show();var n=0,a=e,r=(a=this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio[value=dynamic]").val()?a.replace(/\/users\/\S*\//g,"/users/${sys.user}/"):a.replace(/\/users\/\$\{sys\.user\}\//g,"/users/"+t.VA.Env.Session.userId+"/")).split("/");this.fileName.setValue(a);for(var s=0;s<5;s++)n+=r[s].length,n++;this.fileName.markText({line:0,ch:0},{line:0,ch:n},{readOnly:!0,inclusiveLeft:!0,css:"color: #b4b4b4"})}else a=e+"/",a=this.$settingOptionGroup.find(".brtc-va-dialogs-repository-browser-radio[value=dynamic]").val()?a.replace(/\/users\/\S*\//g,"/users/${sys.user}/"):a.replace(/\/users\/\$\{sys\.user\}\//g,"/users/"+t.VA.Env.Session.userId+"/"),this.fileName.setValue(a),this.fileName.markText({line:0,ch:0},{line:0,ch:a.length+1},{readOnly:!0,inclusiveLeft:!0,css:"color: #b4b4b4"})}},t.VA.Implementation.DataFlow.Functions.import&&(t.VA.Implementation.DataFlow.Functions.import.DataPanel=e),t.VA.Implementation.DataFlow.Functions.export&&(t.VA.Implementation.DataFlow.Functions.export.DataPanel=e)}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){this._propertiesPanelParams=this._getParams(),t.VA.Core.Editors.Sheet.Panels.PropertiesPanel.call(this,e,i)}e.prototype=Object.create(t.VA.Core.Editors.Sheet.Panels.PropertiesPanel.prototype),e.prototype.constructor=e,e.prototype.createControls=function(){t.VA.Core.Editors.Sheet.Panels.PropertiesPanel.prototype.createControls.call(this),this.retrieveTableInfo(this.FnUnitUtils.getInTable(this.options.fnUnit))},e.prototype.createContentsAreaControls=function(e){t.VA.Core.Editors.Sheet.Panels.PropertiesPanel.prototype.createContentsAreaControls.call(this,e),this.$elements={},this.controls={},this.visibleOptionMap={},this._controlCreator=new t.VA.Implementation.DataFlow.UdfInvokeControlCreator(this),this._renderCreateor=new t.VA.Implementation.DataFlow.UdfInvokeControlRenderer(this),this._columnSelectorList=[],this.createControlsBySpec(this._propertiesPanelParams),this.render=this._createRenderer()},e.prototype._createRenderer=function(){var t=this.createRendererBySpec(this._propertiesPanelParams);return Object.keys(this.visibleOptionMap).length>0&&(t.$$VisibleOptionRenderer$$=this._renderVisibleOption.bind(this)),t},e.prototype.createControlsBySpec=function(t){var e;for(var i in t)e=t[i],this._controlCreator.createInvokeControl(e),this._initVisibleOption(e)},e.prototype.createRendererBySpec=function(t){var e,i={};for(var o in t)i[(e=t[o]).id]=this._renderCreateor.createInvokeRenderer(e);return i},e.prototype.fillControlValues=function(){for(var t=this,e=0;e<this._columnSelectorList.length;e++){var i=this._columnSelectorList[e].spec;!function(e){var o=t._getTargetColumns(i);t._columnSelectorList[e].control.setItems(o)}(e)}},e.prototype._getTargetColumns=function(t){var e,i=[],o=t.targetTable,n=t.columnType;if(void 0===(e=o&&o.length>0?this.FnUnitUtils.getInTableByKeys(this.options.fnUnit,o):this.FnUnitUtils.getInTable(this.options.fnUnit)))return i;for(var a=0;a<e.length;a++)i=i.concat(this.dataMap&&e[a]?this.dataMap[e[a]].columns:[]);return n&&n.length>0?i=i.filter(function(t){return n.indexOf(t.internalType)>=0}):n&&0===n.length&&(i=i.filter(function(t){return"Image"!==t.internalType})),i},e.prototype.renderValidation=function(){for(var t in this.problems)this.problems[t].param&&this.createValidationContent(this.$elements[this.problems[t].param],this.problems[t])},e.prototype._initVisibleOption=function(t){t.visibleOption&&t.visibleOption.length>0&&(this.visibleOptionMap[t.id]=t.visibleOption)},e.prototype._getPropertyControlById=function(t){return this.$elements[t].closest(".brtc-va-editors-sheet-controls-propertycontrol")},e.prototype.createColumnsCommand=function(e,i){var o={fnUnit:this.options.fnUnit,ref:{param:{}}};return o.ref.param[e]=[i],new t.VA.Core.Editors.Diagram.Commands.SetFnUnitParameterValueCommand(this,o)},e.prototype._renderVisibleOption=function(){var t,e;for(var i in this.visibleOptionMap)t=this.visibleOptionMap[i],e=this._getPropertyControlById(i),this._checkVisibleOption(t)?e.show():e.hide()},e.prototype._checkVisibleOption=function(t){for(var e,i,o=0;o<t.length;o++)if((e=t[o]).script)try{let t=e.script.replace(/#(.*?)#/g,"this.options.fnUnit.param['$1']");return new Function(t).call(this)}catch(t){return console.error(t),!1}else{if(i=e.value,_.isArray(this.options.fnUnit.param[e.id])&&this.options.fnUnit.param[e.id].every(t=>t!==i))return!1;if(!_.isArray(this.options.fnUnit.param[e.id])&&this.options.fnUnit.param[e.id]!==i)return!1}return!0},e.prototype.executeCommand=function(e){t.VA.Core.Editors.Sheet.Panels.PropertiesPanel.prototype.executeCommand.call(this,e),this._renderVisibleOption()},e.prototype.handleSetFnUnitParameterValueCommand=function(e){t.VA.Core.Editors.Sheet.Panels.PropertiesPanel.prototype.handleSetFnUnitParameterValueCommand.call(this,e),this.options.fnUnit.fid!=e.options.fnUnit.fid||"UNDO"!==e.event.type&&"REDO"!==e.event.type||this._renderVisibleOption()},t.VA.Implementation.DataFlow.Functions.BaseInvokeProperties=e}.call(this),function(){"use strict";var t=this.Brightics,e=["Double","Integer","Long"];function i(t){this._super=t}i.prototype.createInvokeControl=function(t){var e,i,o=!1;if("ColumnSelector"===t.control)i=this.createColumnSelectorControl(t),e=t.multiple?"array":"string";else if("InputBox"===t.control)i=this.createInputBoxControl(t),e="string"===t.type.toLowerCase()?"string":"number",o=!0;else if("DropDownList"===t.control)i=this.createDropDownListControl(t),e="string";else if("RadioButton"===t.control)i=this.createRadioButtonControl(t),e="string";else if("BooleanRadio"===t.control)i=this.createBooleanRadioButtonControl(t),e="boolean";else if("CheckBox"===t.control)i=this.createCheckBoxControl(t),e="array";else if("ArrayInput"===t.control)i=this.createArrayInputControl(t),e="array["+("string"===t.type.toLowerCase()?"string":"number")+"]",o=!0;else if("Expression"===t.control)i=this.createExpressionControl(t),e="string",o=!0;else{if("FileSelector"!==t.control)return void console.error(t.control+" is unsupported control in toolkit spec.");i=this.createLocalFileSelector(t),e="array",o=!0}if(o){var n=i.find(".brtc-va-editors-sheet-controls-propertycontrol-label");this._super.addGlobalVariableControl(n,{},t.id,t.label,{type:e})}},i.prototype.createLocalFileSelector=function(e){var i=this,o=e.id;return this._super.$elements[o]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-contents"/>'),this._super.addPropertyControl(e.label,function(n){var a=$('<input type="text" class="brtc-va-editors-sheet-controls-propertycontrol-input-readonly"/>');i._super.createInput(a,{placeHolder:t.VA.Core.Utils.WidgetUtils.convertInequalitySign(e.placeHolder)},"brtc-va-editors-sheet-controls-margin-bottom"),a.prop("readonly",!0),n.append(a.parent()),a.click(function(){new t.VA.Core.Dialogs.RepositoryBrowserDialog(i._super.$mainControl,{pathLabel:e.label,filePath:a.val(),close:function(e){e.OK&&e.selectedFile&&function(e,i){var o=a.val(),n=e[0]||"";if(o!==n){var r=function(e){var o={fnUnit:this._super.options.fnUnit,ref:{param:{}}};return o.ref.param[i]=[e],new t.VA.Core.Editors.Diagram.Commands.SetFnUnitCommand(this,o)}.bind(this)(n);this._super.executeCommand(r)}a.val(n),a.attr("title",n)}.bind(i)([e.selectedFile],o)},resizable:!1,title:"Setting "+e.label})}),i._super.controls[o]=a,i._super.$elements[o].on("change",function(t){if(i._super.isInputValueChanged(o,$(this).val())){var e=i._super.createSetParameterValueCommand(o,$(this).val());i._super.executeCommand(e)}})},{mandatory:!!e.mandatory})},i.prototype.createColumnSelectorControl=function(t){var e=this,i=t.id;return this._super.$elements[i]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-columnlist"/>'),this._super.addPropertyControl(t.label,function(o){o.append(e._super.$elements[i]);var n={multiple:t.multiple,maxRowCount:t.rowCount};t.multiple?n.changed=function(t,o){var n=e._super.createSetParameterValueCommand(i,o.items);e._super.executeCommand(n)}:n.changed=function(t,o){var n=e._super.createSetParameterValueCommand(i,o.items[0]||"");e._super.executeCommand(n)},e._super.controls[i]=e._super.createColumnList(e._super.$elements[i],n);var a={control:e._super.controls[i],spec:t};t.columnType&&(a.columnType=t.columnType),e._super._columnSelectorList.push(a)},{mandatory:t.mandatory})},i.prototype.createArrayInputControl=function(i){var o=this,n=i.id;return this._super.$elements[n]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-numberinput"/>'),this._super.addPropertyControl(i.label,function(a){a.append(o._super.$elements[n]);var r={placeholder:t.VA.Core.Utils.WidgetUtils.convertInequalitySign(i.placeHolder)||""};e.indexOf(i.type)>=0?r.type="number":r.type="string",r.onChangeCallback=function(t){var e=o._super.createSetParameterValueCommand(n,t);o._super.executeCommand(e)},o._super.controls[n]=o._super.createArrayInput(o._super.$elements[n],r)},{mandatory:i.mandatory})},i.prototype.createInputBoxControl=function(t){return e.indexOf(t.type)>=0?this.createNumericInputBoxControl(t):this.createStringInputBoxControl(t)},i.prototype.createNumericInputBoxControl=function(e){var i=this,o=e.id;return this._super.$elements[o]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-numberinput"/>'),this._super.addPropertyControl(e.label,function(n){n.append(i._super.$elements[o]);var a={placeholder:t.VA.Core.Utils.WidgetUtils.convertInequalitySign(e.placeHolder)||""};void 0!==e.min&&(a.min=e.min),void 0!==e.max&&(a.max=e.max),"Integer"===e.type?a.numberType="int":a.numberType="double",i._super.controls[o]=i._super.createNumericInput(i._super.$elements[o],a),i._super.controls[o].onChange(function(){var t=i._super.controls[o].getValue();t=""===t?"":Number(t);var e=i._super.createSetParameterValueCommand(o,t);i._super.executeCommand(e)})},{mandatory:e.mandatory})},i.prototype.createStringInputBoxControl=function(e){var i=this,o=e.id;return this._super.$elements[o]=$('<input type="text" class="brtc-va-editors-sheet-controls-propertycontrol-input"/>'),this._super.addPropertyControl(e.label,function(n){n.append(i._super.$elements[o]);var a={placeHolder:t.VA.Core.Utils.WidgetUtils.convertInequalitySign(e.placeHolder)||""};i._super.controls[o]=i._super.createInput(i._super.$elements[o],a),i._super.$elements[o].on("change",function(t){if(i._super.isInputValueChanged(o,$(this).val())){var e=i._super.createSetParameterValueCommand(o,$(this).val());i._super.executeCommand(e)}})},{mandatory:e.mandatory})},i.prototype.createDropDownListControl=function(t){var e=this,i=t.id;return this._super.$elements[i]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-combobox"/>'),this._super.addPropertyControl(t.label,function(o){o.append(e._super.$elements[i]);var n={source:t.items};e._super.controls[i]=e._super.createDropDownList(e._super.$elements[i],n),e._super.controls[i].on("change",function(t){if(null!==t.args.item){var o=e._super.createSetParameterValueCommand(i,t.args.item.value);e._super.executeCommand(o)}})},{mandatory:t.mandatory})},i.prototype.createBooleanRadioButtonControl=function(t){var e=this,i=t.items,o=t.id;i||(i=[]),0===i.length&&(i.push({value:!0,label:"True",default:t.defaultValue}),i.push({value:!1,label:"False",default:!t.defaultValue})),this._super.controls[o]={};var n=this._super.controls[o];return this._super.addPropertyControl(t.label,function(t){for(var a in e._super.$elements[o]=t,i){var r=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-radiobutton" value="'+i[a].value+'">'+i[a].label+"</div>");t.append(r),n[i[a].value]=e._super.createRadioButton(r,{width:"undefined",groupName:o,checked:i[a].default}),n[i[a].value].on("checked",function(t){var i=!0===this.getAttribute("value")||"true"===this.getAttribute("value"),n=e._super.createSetParameterValueCommand(o,i);e._super.executeCommand(n)})}},{mandatory:t.mandatory})},i.prototype.createRadioButtonControl=function(t){var e=this,i=t.items,o=t.id;this._super.controls[o]={};var n=this._super.controls[o];return this._super.addPropertyControl(t.label,function(t){for(var a in e._super.$elements[o]=t,i){var r=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-radiobutton" value="'+i[a].value+'">'+i[a].label+"</div>");t.append(r),n[i[a].value]=e._super.createRadioButton(r,{width:"undefined",groupName:o,checked:i[a].default}),n[i[a].value].on("checked",function(t){var i=e._super.createSetParameterValueCommand(o,this.getAttribute("value"));e._super.executeCommand(i)})}},{mandatory:t.mandatory})},i.prototype.createCheckBoxControl=function(t){var e=this,i=t.items,o=t.id;this._super.controls[o]={};var n=this._super.controls[o],a=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-checkbox-container"></div>'),r=$('<input type="button" value="Select All" style="width: 100%; float:left; margin-left: 0px;"/>'),s=$('<input type="button" value="Unselect All" style="width: 100%; float:left; margin-left: 2px; margin-bottom: 2px;"/>');for(var l in a.append(r),a.append(s),this._super.$elements[o]=a,i)n[i[l].value]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-radiobutton" value="'+i[l].value+'">'+i[l].label+"</div>");return this._super.addPropertyControl(t.label,function(i){i.append(a),e._super.createButton(r,{height:23},"brtc-va-editors-sheet-controls-width-6"),e._super.createButton(s,{height:23},"brtc-va-editors-sheet-controls-width-6");var l,d=t.items,c=function(){$(window).trigger("mousedown");var t=[];for(var i in d)l=d[i].value,!0===n[l].val()&&t.push(n[l].data("tag"));var a=e._super.createSetParameterValueCommand(o,t);e._super.executeCommand(a)};for(var p in d){l=d[p].value;var h=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-checkbox"></div>');h.text(d[p].label),h.data("tag",d[p].value),a.append(h),n[l]=e._super.createCheckBox(h,{},"brtc-va-editors-sheet-controls-width-12"),n[l].on("change",c)}r.on("click",function(t){for(let t in d)l=d[t].value,n[l].off("change",c),n[l].jqxCheckBox({checked:!0}),n[l].on("change",c);var i=[];for(let t in d)l=d[t].value,i.push(n[l].data("tag"));var a=e._super.createSetParameterValueCommand(o,i);e._super.executeCommand(a)}),s.on("click",function(t){for(var i in d)l=d[i].value,n[l].off("change",c),n[l].jqxCheckBox({checked:!1}),n[l].on("change",c);var a=e._super.createSetParameterValueCommand(o,[]);e._super.executeCommand(a)})},{mandatory:t.mandatory})},i.prototype.createExpressionControl=function(e){var i=this,o=e.id;return this._super.$elements[o]=$('<div class="brtc-va-editors-sheet-controls-propertycontrol-expression"/>'),this._super.addPropertyControl(e.label,function(e){e.append(i._super.$elements[o]);i._super.controls[o]=t.VA.Core.Widget.Factory.aceEditorControl(i._super.$elements[o],{mode:"scala",commands:[],events:[],value:"",editorOptions:{showLineNumbers:!1,showGutter:!1}});var n=i._super.controls[o].getEditor();n.on("blur",function(t){if(i._super.isInputValueChanged(o,n.getValue())){var e=i._super.createSetParameterValueCommand(o,n.getValue());i._super.executeCommand(e)}})},{mandatory:e.mandatory})},t.VA.Implementation.DataFlow.UdfInvokeControlCreator=i}.call(this),function(){"use strict";var t=this.Brightics;function e(t){this._super=t}e.prototype.createInvokeRenderer=function(t){return"ColumnSelector"===t.control?this.createColumnSelectorRenderer(t):"InputBox"===t.control?this.createInputBoxRenderer(t):"DropDownList"===t.control?this.createDropDownListRenderer(t):"RadioButton"===t.control||"BooleanRadio"===t.control?this.createRadioButtonRenderer(t):"CheckBox"===t.control?this.createCheckBoxRenderer(t):"ArrayInput"===t.control?this.createArrayInputRenderer(t):"Expression"===t.control?this.createExpressionRenderer(t):"FileSelector"===t.control?this.createLocalFileSelectorRenderer(t):void 0},e.prototype._getValueByParamId=function(t){return this._super.options.fnUnit.param[t]},e.prototype._getControlByParamId=function(t){return this._super.controls[t]},e.prototype.createColumnSelectorRenderer=function(t){var e=this,i=t.id;if(t.multiple)var o=function(){var t=e._getValueByParamId(i)||[];e._getControlByParamId(i).setSelectedItems(t)};else o=function(){var t=e._getValueByParamId(i)||"";e._getControlByParamId(i).setSelectedItems([t])};return o},e.prototype.createArrayInputRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i)||[];e._getControlByParamId(i).setValue(t)}},e.prototype.createInputBoxRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i),o=e._getControlByParamId(i);"function"==typeof o.val?o.val(t||""):o.setValue(t||"")}},e.prototype.createLocalFileSelectorRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i),o=e._getControlByParamId(i),n=Array.isArray(t)?t[0]:t;"function"==typeof o.val?o.val(n||""):o.setValue(n||"")}},e.prototype.createDropDownListRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i),o=e._getControlByParamId(i);void 0===t||""===t?o.jqxDropDownList("selectIndex",-1):o.jqxDropDownList("selectItem",t)}},e.prototype.createRadioButtonRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i),o=e._getControlByParamId(i);o[t]&&o[t].jqxRadioButton({checked:!0})}},e.prototype.createCheckBoxRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i),o=e._getControlByParamId(i);if(void 0!==t)for(var n in o)$.inArray(o[n].data("tag"),t)>-1?o[n].jqxCheckBox({checked:!0}):o[n].jqxCheckBox({checked:!1});else for(var n in o)o[n].jqxCheckBox({checked:!1})}},e.prototype.createExpressionRenderer=function(t){var e=this,i=t.id;return function(){var t=e._getValueByParamId(i)||"";e._getControlByParamId(i).setValue(t)}},t.VA.Implementation.DataFlow.UdfInvokeControlRenderer=e}.call(this),function(){"use strict";var t=this.Brightics,e=t.VA.Implementation.DataFlow.Editors,i=this.__module__.EventEmitter,o=this.__module__.ClassUtils,n=this.__module__._,a={count:{start:"${=}",end:"${=}","index-variable":""},collection:{collection:"${=}","element-variable":"","index-variable":""},while:{expression:"${=}","index-variable":""}};function r(t,e){var i=e||{};this.$parent=t,this.conditionHeader=i.conditionHeader,this.loopHeader=i.loopHeader,this.editor=i.editor,this.conditionContext=[],this.activeHeader=void 0,this.init()}o.inherits(r,i),r.prototype.getHeader=function(){return this.header},r.prototype.init=function(e){this.editor.getCommandManager().registerCallback(function(t){if("Add Condition"!==t.options.label&&"Remove Condition"!==t.options.label||"header"!==t.options.view)"header"===t.options.view&&this.model&&this._setHeader(this.model,this.fnUnit);else if(this.model)this._setHeader(this.model,this.fnUnit);else{var e=this.fnUnit.param.if.mid;this.editor.getModelLayoutManager().changeEditorModel(e)}}.bind(this)),this.editor.getCommandManager().registerGoHistoryCallback(function(t){n.findIndex(t.options.commands,function(t){return"Add Condition"===t.options.label||"Remove Condition"===t.options.label})>-1&&this._setHeader(this.model,this.fnUnit)}.bind(this)),this.conditionHeader.on("tab-add-click",function(e){var i=t.VA.Core.Utils.IDGenerator.model.id(),o=new t.VA.Core.CompoundCommand(this,{label:"Add Condition",view:"header"});o.add(this.createAddParameterCommand(this.fnUnit,{mid:i,conditionType:"elseif"})),o.add(this.createNewActivityCommand(this.fnUnit,{mid:i,conditionType:"elseif"})),this.editor.getCommandManager().execute(o)}.bind(this)),this.conditionHeader.on("tab-close-click",function(e){if("elseif"===e.data.getType()){var i=new t.VA.Core.CompoundCommand(this,{label:"Remove Condition",view:"header"});i.add(this.createRemoveActivityCommand(this.fnUnit,{mid:e.data.getId()})),i.add(this.createRemoveParameterCommand(this.fnUnit,{mid:e.data.getId(),conditionType:"elseif"})),this.editor.getCommandManager().execute(i)}}.bind(this)),this.conditionHeader.on("tab-click",function(t){this.emit("tab-click",t)}.bind(this)),this.conditionHeader.on("field-change",function(t){this.editor.getCommandManager().execute(this.createConditionFieldChangeCommand(t))}.bind(this)),this.loopHeader.on("input-change",function(t){var e={val:t.value,path:t.path};this.editor.getCommandManager().execute(this.createLoopFieldChangeCommand(this.fnUnit,e))}.bind(this)),this.loopHeader.on("type-change",function(t){var e={loopType:t};this.editor.getCommandManager().execute(this.createLoopTypeChangeCommand(this.fnUnit,e))}.bind(this))},r.prototype.setModel=function(t,e,i){this.editor.getDiagramEditorPage().setModel(t),this._setHeader(t,e,i),this.model=t,this.fnUnit=e,e&&(this.conditionContext=e.param),Studio.getInstance().doValidate(t)},r.prototype._setHeader=function(t,e){if(!e)return this.conditionHeader.hide(),this.loopHeader.hide(),this.editor.getHeaderArea().hide(),void(this.activeHeader=void 0);var i=t.mid;if("If"===e[FUNCTION_NAME])this.editor.getHeaderArea().show(),this.conditionHeader.setData(e.param),this.conditionHeader.show(),this.conditionHeader.render(),this.conditionHeader.selectTab(i),this.loopHeader.hide(),this.activeHeader=this.conditionHeader;else{if("ForLoop"!==e[FUNCTION_NAME]&&"WhileLoop"!==e[FUNCTION_NAME])throw this.activeHeader=void 0,new Error("unexpected fnunit");this.editor.getHeaderArea().show(),this.loopHeader.setData(e),this.loopHeader.render(!0),this.conditionHeader.hide(),this.loopHeader.hide(),this.activeHeader=this.loopHeader}},r.prototype.createConditionFieldChangeCommand=function(e){var i=["param"];if("if"===e.type)i.push("if");else{if("elseif"!==e.type)return;i.push("elseif");var o=n.findIndex(this.fnUnit.param.elseif,function(t){return t.mid===e.id});if(-1===o)return;i.push(o)}i.push("expression");var a={fnUnit:this.fnUnit,label:"Condition Field Update",path:i,value:e.field,view:"header"};return new t.VA.Core.Editors.Diagram.Commands.UpdateOperationCommand(this,a)},r.prototype.createNewActivityCommand=function(e,i){var o=function(t,e){return"if"===t.func?{mid:e.mid,type:t.func,conditionType:e.conditionType}:"forLoop"===t.func||"whileLoop"===t.func?{mid:t.param.mid,type:"loop"}:void 0}(e,i);return new t.VA.Core.Editors.Diagram.Commands.NewActivityCommand(this,o)},r.prototype.createAddParameterCommand=function(e,i){var o=i._conditionType||"elseif",n=i.mid,a=["param",o],r={expression:"true",mid:n},s=function(){if("elseif"===o){if(!e.param.elseif)return[r];a.push(e.param.elseif.length)}return r}();return new t.VA.Core.Editors.Diagram.Commands.AddOperationCommand(this,{fnUnit:e,path:a,value:s})},r.prototype.createRemoveActivityCommand=function(e,i){return new t.VA.Core.Editors.Diagram.Commands.RemoveActivityCommand(this,{mid:i.mid})},r.prototype.createRemoveParameterCommand=function(e,i){var o=i._conditionType||"elseif";if("elseif"===o){var a=["param",o],r=n.findIndex(e.param.elseif,function(t){return t.mid===i.mid});if(-1!==r)return a.push(r),new t.VA.Core.Editors.Diagram.Commands.RemoveOperationCommand(this,{fnUnit:e,path:a})}},r.prototype.getHeaderHeight=function(){return this.activeHeader?this.activeHeader.getHeight():0},r.prototype.setLayoutManager=function(t){this.layoutManager=t},r.prototype.createLoopFieldChangeCommand=function(e,i){var o={label:"Loop Field Update",fnUnit:e,path:["param"].concat(i.path),value:i.val,view:"header"};return new t.VA.Core.Editors.Diagram.Commands.UpdateOperationCommand(this,o)},r.prototype.createLoopTypeChangeCommand=function(e,i){var o=new t.VA.Core.CompoundCommand(this,{label:"Loop Type Changed",view:"header"});return o.add(new t.VA.Core.Editors.Diagram.Commands.UpdateOperationCommand(this,{fnUnit:e,path:["param","type"],value:i.loopType})),o.add(new t.VA.Core.Editors.Diagram.Commands.UpdateOperationCommand(this,{fnUnit:e,path:["param","prop"],value:n.cloneDeep(a[i.loopType])})),o},e.Diagram.DiagramEditorWrapper=r}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=this.__module__.EventEmitter;function o(){}e.inherits(o,i),o.prototype.show=function(){this.$el.show(),this.onShow()},o.prototype.hide=function(){this.$el.hide()},o.prototype.getHeight=function(){return this.$el.outerHeight()},o.prototype.onShow=function(){},t.VA.Implementation.DataFlow.Editors.Header.Header=o}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=this.__module__.EventEmitter,o={field:"brtc-condition-header-field",labelWrapper:"brtc-condition-header-field-label-wrapper",textareaWrapper:"brtc-condition-header-field-textarea-wrapper",textarea:"brtc-condition-header-field-textarea",hide:"brtc-condition-header-field-hide",textareaLabel:"brtc-condition-header-field-textarea-label"};function n(t,e){var i=e||{},n=this;this.$parent=t,this.fieldContext=i.context,this.prvVal=this.fieldContext?this.fieldContext.getField():"${=}",this.$expandArrow=$(crel("i",{class:"fa fa-chevron-down brtc-condition-header-field-expand-arrow","aria-hidden":"true"})),this.isExpanded=!1,this.$expandArrow.click(function(){n.isExpanded=!n.isExpanded,n.render()}),this.$el=$(crel("div",{class:o.field},this.$expandArrow[0],crel("div",{class:o.labelWrapper},crel("label",{class:o.textareaLabel},"Condition")),crel("div",{class:o.textareaWrapper},crel("textarea",{class:o.textarea})))),this.$textArea=this.$el.find("."+o.textarea),this.wrappedTextArea=this.createWrappedTextArea(this.$textArea),this.wrappedTextArea.change(function(t){this.prvVal!==t&&(this.prvVal=t,this.fieldContext.setField(t),this.emit("field-change",{id:this.fieldContext.getId(),type:this.fieldContext.getType(),field:t}))}.bind(this)),this.$parent.append(this.$el)}e.inherits(n,i),n.prototype.setContext=function(t){return this.fieldContext=t,this},n.prototype.getContext=function(){return this.fieldContext},n.prototype.render=function(){this.wrappedTextArea.setValue(this.fieldContext?this.fieldContext.getField():"${=}"),this.isExpanded?(this.$textArea.removeClass("brtc-condition-header-field-textarea-unexpanded"),this.$el.addClass("brtc-condition-header-field-expanded"),this.$expandArrow.removeClass("fa-chevron-down"),this.$expandArrow.addClass("fa-chevron-up")):(this.$textArea.addClass("brtc-condition-header-field-textarea-unexpanded"),this.$el.removeClass("brtc-condition-header-field-expanded"),this.$expandArrow.removeClass("fa-chevron-up"),this.$expandArrow.addClass("fa-chevron-down")),this.wrappedTextArea.expand(this.isExpanded),this.wrappedTextArea.refresh()},n.prototype.show=function(){this.$el.removeClass(o.hide),this.wrappedTextArea.refresh()},n.prototype.hide=function(){this.$el.addClass(o.hide)},n.prototype.createWrappedTextArea=function(t){var e,i=_.merge({},{mode:"brtc-control",scrollbarStyle:"null",lineWrapping:!1,matchBrackets:!1,extraKeys:{"Ctrl-Space":"autocomplete",Tab:!1,"Shift-Tab":!1},showTrailingSpace:!0}),o=CodeMirror.fromTextArea(t[0],i),n=this,a=(e=o,{setValue:function(t){var i=function(t){var e=_.isUndefined(t)?"":t;return n.test(e)?e.substring(3,e.length-1):e}(t);e.setValue(i),e.refresh()},getValue:function(){return"${="+e.getValue()+"}"},change:function(t){e.on("blur",function(e){e.state.focused&&t(a.getValue())})},expand:function(t){t?e.setSize(null,"200px"):(e.setSize(null,"30px"),e.setCursor(1),e.scrollTo(null,0)),e.refresh()},refresh:function(){e.refresh()}});return a},n.prototype.wrap=function(t){return"${="+(t||"")+"}"},n.prototype.test=function(t){return _.startsWith(t,"${=")&&_.endsWith(t,"}")},t.VA.Implementation.DataFlow.Editors.Header.ConditionHeaderField=n}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=this.__module__.EventEmitter,o=this.__module__._,n=t.VA.Implementation.DataFlow.Editors.Header;function a(t,e){var i=e||{};this.$template=$(['<div class="brtc-condition-header-tab-bar">',' <div class="brtc-condition-header-tab-bar-list">'," </div>",' <div class="brtc-condition-header-tab-bar-add">',"+"," </div>","</div>"].join("\n")),this.$tabListArea=this.$template.find(".brtc-condition-header-tab-bar-list"),this.$addBtn=this.$template.find(".brtc-condition-header-tab-bar-add"),this.$addBtn.click(this._handleAddClick.bind(this)),this.$parent=t,this.$parent.append(this.$template),this.tabContextList=i.tabContextList||[],this.uselectedTabId=0}e.inherits(a,i),a.prototype.addTabContext=function(t){this.tabContextList.push(t)},a.prototype.removeTabContext=function(t){this.tabContextList.splice(t,1)},a.prototype.setTabContextList=function(t){this.tabContextList=t},a.prototype.getTabContextList=function(){return this.tabContextList},a.prototype.render=function(){var t=this;this.$tabListArea.empty(),this.tabRefList=o.map(this.tabContextList,function(e){return t._newTab(t.$tabListArea,e,t.selectedTabId==e.getId())})},a.prototype._getTabById=function(t){var e=o.findIndex(this.tabContextList,function(e){return e.getId()==t});return e>-1?this.tabRefList[e]:null},a.prototype.selectTab=function(t){if(t!=this.selectedTabId){o.forEach(this.tabRefList,function(t){return t.unselect()}),this.unselectTab();var e=this._getTabById(t);return e&&(this.selectedTabId=t,e.select()),!0}},a.prototype.closeTab=function(t){if(!this._isValidIndex(t))return!1;this.removeTabContext(t);var e=this.tabContextList.length>t?t:this.tabContextList.length-1;return-1==e?this.unselectTab():this.selectTab(e),!0},a.prototype.unselectTab=function(){return this.selectedTabId=-1,!0},a.prototype._newTab=function(t,e,i){var o=this,a=new n.ConditionHeaderTab(t,{tabContext:e,selected:i});return a.on("tab-click",function(t){o.selectTab(t.data.getId()),o.emit("tab-click",t)}),a.on("tab-close-click",function(t){o.emit("tab-close-click",t)}),a},a.prototype._handleAddClick=function(t){this.emit("tab-add-click",t)},n.ConditionHeaderTabBar=a}.call(this),function(){"use strict";var t=this.Brightics.VA.Implementation.DataFlow.Editors.Header;function e(t){var e=t||{};this.id=e.id,this.title=e.title||"untitled",this.field=e.field||"true",this.type=e.type}e.prototype.getId=function(){return this.id},e.prototype.getTitle=function(){return this.title},e.prototype.setTitle=function(t){return this.title=t,this},e.prototype.getField=function(){return this.field},e.prototype.setField=function(t){return this.field=t,this},e.prototype.getType=function(){return this.type},t.ConditionHeaderTabContext=e}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=this.__module__.EventEmitter,o={tab:"brtc-condition-header-tab",title:"brtc-condition-header-tab-title",closeBtn:"brtc-condition-header-tab-close-btn",tabSelected:"brtc-condition-header-tab-selected"};function n(t,e){var i=e||{};this.$parent=t,this.tabContext=i.tabContext,this.selected=i.selected||!1,this.$el=$("<div/>",{class:o.tab}),this.$titleArea=$("<div/>",{class:o.title}),this.$closeButton=$("<div/>",{class:o.closeBtn}),this.$el.append(this.$titleArea),this.selected&&this.select(),this.$titleArea.html(this.tabContext.getTitle()),this.$titleArea.click(function(t){this.emit("tab-click",{data:this.tabContext})}.bind(this)),"elseif"==this.tabContext.getType()&&(this.$el.append(this.$closeButton),this.$closeButton.click(function(t){t.stopPropagation(),this.emit("tab-close-click",{data:this.tabContext})}.bind(this))),this.$parent.append(this.$el)}e.inherits(n,i),n.prototype.select=function(){this.$el.addClass(o.tabSelected)},n.prototype.unselect=function(t){this.$el.removeClass(o.tabSelected)},t.VA.Implementation.DataFlow.Editors.Header.ConditionHeaderTab=n}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=t.VA.Implementation.DataFlow.Editors.Header,o=this.__module__._;function n(t,e){var o=e||{};i.Header.call(this,t,o),this.$parent=t,this.$el=$("<div/>",{class:"brtc-condition-header"}),this.$el.hide(),this.$tabBarArea=$("<div/>",{class:"brtc-condition-header-tab-bar-area"}),this.$el.append(this.$tabBarArea),this.conditionTabBar=new i.ConditionHeaderTabBar(this.$tabBarArea,{tabContextList:this.tabContextList}),this.conditionTabBar.on("tab-add-click",this._handleAddTabClick.bind(this)),this.conditionTabBar.on("tab-close-click",this._handleCloseTabClick.bind(this)),this.conditionTabBar.on("tab-click",this._handleTabClick.bind(this)),this.$parent.append(this.$el),this.hide()}e.inherits(n,i.Header),n.prototype.render=function(){this.conditionTabBar.setTabContextList(this.tabContextList),this.conditionTabBar.render()},n.prototype.selectTab=function(t){this.conditionTabBar.selectTab(t),this.selectedTabId=t},n.prototype.unselectTab=function(){this.getSelectedTabContext().unselect()},n.prototype._handleTabClick=function(t){return this.selectedTabId=t.data.getId(),this.emit("tab-click",t),!0},n.prototype._handleAddTabClick=function(t){return this.emit("tab-add-click",t),!0},n.prototype._handleCloseTabClick=function(t){return this.emit("tab-close-click",t),!0},n.prototype._handleFieldChange=function(t){this.emit("field-change",t)},n.prototype.setData=function(t){this.data=t,this.tabContextList=this._toTabContext(t)},n.prototype._toTabContext=function(t){var e=[];return e.push(new i.ConditionHeaderTabContext({id:t.if.mid,title:"If",type:"if",field:t.if.expression})),e=e.concat(o.map(t.elseif,function(t,e){return new i.ConditionHeaderTabContext({id:t.mid,title:"Else-If("+e+")",type:"elseif",field:t.expression})})),t.else&&e.push(new i.ConditionHeaderTabContext({id:t.else.mid,title:"Else",type:"else"})),e},n.prototype._getTabContextById=function(t){var e=o.findIndex(this.tabContextList,function(e){return e.getId()===t});return e>-1?this.tabContextList[e]:null},n.prototype.getSelectedTabContext=function(){return this._getTabContextById(this.selectedTabId)},n.prototype.getSelectedConditionId=function(){return this.selectedTabId},i.ConditionHeader=n}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=this.__module__.EventEmitter,o={HEADER_FIELD:"brtc-loop-header-field",LOOP_CONDITION_WRAPPER:"brtc-loop-header-loop-condition",LABEL_INPUT_PAIR_WRAPPER:"brtc-loop-header-label-input-pair-wrapper",READONLY_LABEL:"brtc-loop-header-readonly-label",READONLY_INPUT:"brtc-loop-header-readonly-input",READONLY_LABEL_INPUT_PAIR_WRAPPER:"brtc-loop-header-readonly-label-input-pair-wrapper",EXPAND:"brtc-loop-header-expand",LABEL_DIV:"brtc-loop-header-label-div",FLEX_VERTICAL_CENTER:"brtc-style-display-flex brtc-style-align-items-center"},n={forLoop:["count","collection"],whileLoop:["while"]};function a(t){var e=this;this.$parent=t,this.loopType="",this.valueMap={},this.$wrapper={},this.$radio={},this.$input={},this.isExpanded=!0,this.$expand=$(crel("div",{class:o.EXPAND})),this.$expandArrow=$(crel("i",{class:"fa fa-chevron-up brtc-loop-header-expand-arrow","aria-hidden":"true"})),this.$expand.append(this.$expandArrow),this.$expand.click(function(){e.isExpanded=!e.isExpanded,e.render()}),this.$radioArea=$(crel("div",{class:o.LABEL_INPUT_PAIR_WRAPPER},crel("div",{class:o.LABEL_DIV},"Loop Type",crel("div",{class:"brtc-va-editors-sheet-controls-propertycontrol-mandatory"},"*")),crel("div",{class:o.FLEX_VERTICAL_CENTER},this._createRadioButton("Count","count"),this._createRadioButton("Collection","collection"),this._createRadioButton("While","while")))),this.$expandedDiv=$(crel("div",{class:"brtc-loop-header-expanded"},this.$radioArea[0])),this.$unexpandedDiv=$(crel("div",{class:"brtc-loop-header-unexpanded"})),this.$el=$(crel("div",{class:o.HEADER_FIELD},this.$expand[0],this.$expandedDiv[0],this.$unexpandedDiv[0])),this.$wrapper.count=$(crel("div",this._createLabelInputPair("Start","brtc-loop-header-count-start","start",!0,"count",!0),this._createLabelInputPair("End","brtc-loop-header-count-end","end",!0,"count",!0),this._createLabelInputPair("Index Variable","brtc-loop-header-count-index-variable","index-variable",!1,"count"))),this.$wrapper.collection=$(crel("div",this._createLabelInputPair("Collection","brtc-loop-header-collection-collection","collection",!0,"collection",!0),this._createLabelInputPair("Element Variable","brtc-loop-header-collection-element-variable","element-variable",!1,"collection"),this._createLabelInputPair("Index Variable","brtc-loop-header-collection-index-variable","index-variable",!1,"collection"))),this.$wrapper.while=$(crel("div",this._createLabelInputPair("Expression","brtc-loop-header-while-expression","expression",!0,"while",!0),this._createLabelInputPair("Index Variable","brtc-loop-header-while-index-variable","index-variable",!1,"while"))),_.forIn(this.$wrapper,function(t){this.$expandedDiv.append(t)}.bind(this)),this.$parent.append(this.$el),this.changeLayout()}e.inherits(a,i),a.prototype.setData=function(t){var e=this;this.fnUnit=t;var i=t.param;this.props=i,this.loopType=i.type,this.valueMap={},_.forIn(i.prop,function(t,i){e.valueMap[e.getKey(e.loopType,i)]=t}),this.changeLayout()},a.prototype.changeLayout=function(){var t=this;_.forIn(this.$radio,function(t){t.hide()}),_.forIn(this.$wrapper,function(t){t.hide()});var e=this.getLoopFunc(),i=0;_.forEach(n[e],function(e){t.$radio[e].show(),t.$wrapper[e].show(),++i}),1===i?t.$radioArea.hide():t.$radioArea.show(),this.refresh()},a.prototype.render=function(t){var e=this;if(this.$radio[this.loopType].jqxRadioButton({checked:!0}),this._showWrapper(this.loopType),_.forIn(this.props.prop,function(t,i){var o=e.getKey(e.loopType,i);_.has(e.$input,o)&&e.$input[o].setValue(t)}),this.isExpanded)this.$expandedDiv.show(),this.$unexpandedDiv.hide(),this.$expandArrow.removeClass("fa-chevron-down"),this.$expandArrow.addClass("fa-chevron-up");else{this.$unexpandedDiv.empty();var i={count:{label:"Count",props:[{label:"Start",key:"start",exp:!0},{label:"End",key:"end",exp:!0},{label:"Index Variable",key:"index-variable",exp:!1}]},collection:{label:"Collection",props:[{label:"Collection",key:"collection",exp:!0},{label:"Element Variable",key:"element-variable",exp:!1},{label:"Index Variable",key:"index-variable",exp:!1}]},while:{label:"While",props:[{label:"Expression",key:"expression",exp:!0},{label:"Index Variable",key:"index-variable",exp:!1}]}},o=this.loopType,n=[e._createLabelInputPairReadOnly("Loop Type",i[o].label)];n=n.concat(_.map(i[o].props,function(t){return e._createLabelInputPairReadOnly(t.label,e.props.prop[t.key],t.exp)})),this.$unexpandedDiv.append(n),this.$expandedDiv.hide(),this.$unexpandedDiv.show(),this.$expandArrow.removeClass("fa-chevron-up"),this.$expandArrow.addClass("fa-chevron-down")}this.refresh()},a.prototype.createCodeMirrorInput=function(e,i,o,n){var a,r,s=this,l=_.merge({},{mode:"brtc-control",scrollbarStyle:"null",lineWrapping:!1,matchBrackets:!1,extraKeys:{"Ctrl-Space":"autocomplete",Tab:!1,"Shift-Tab":!1},showTrailingSpace:!0},i),d=CodeMirror.fromTextArea(e[0],l),c=(a=n,r=d,{setValue:function(t){var e=function(t,e){var i=t||"";return a&&s.test(i)?i.substring(3,i.length-1):i}(t);r.setValue(e),o(c.getValue())},getValue:function(){var t=r.getValue();return a?"${="+t+"}":t},refresh:function(){r.refresh()}});return t.VA.Core.Utils.WidgetUtils.changeCodeMirrorLineToSingle(d),d.on("blur",function(){o(c.getValue())}),c},a.prototype._createLabelInputPairReadOnly=function(e,i,n){var a=i||"";n&&this.test(a)&&(a=a.substring(3,a.length-1));var r=$(crel("input",{class:o.READONLY_INPUT,value:a,title:a})).jqxInput({theme:t.VA.Env.Theme,readOnly:!0});return crel("div",{class:o.READONLY_LABEL_INPUT_PAIR_WRAPPER},crel("label",{class:o.READONLY_LABEL},e),r[0])},a.prototype._createLabelInputPair=function(t,e,i,n,a,r){var s=n?"Enter Expression":"Enter Variable",l=n?"100%":"97%",d=$(crel("textarea",{class:e+" brtc-va-widget-contents-input-control"})),c=this,p=crel("div",{class:o.LABEL_INPUT_PAIR_WRAPPER},crel("div",{class:o.LABEL_DIV},t,r?crel("div",{class:"brtc-va-editors-sheet-controls-propertycontrol-mandatory"},"*"):""),crel("span",d[0])),h=$(crel("div",{class:"brtc-va-editors-sheet-panels-validation-tooltip-wrapper"},crel("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"}),crel("div",{class:"brtc-va-editors-sheet-panels-validation-tooltip"},"'"+t+"' is required parameter.")));return this.$input[c.getKey(a,i)]=this.createCodeMirrorInput(d,{placeholder:s,width:l,height:"25px"},function(t){var e=t,o=n?c.strip(e):e;""===_.trim(o)&&r?($(p).after(h),h.show()):($(p).after(h),h.hide()),e!==(c.valueMap[c.getKey(a,i)]||"")&&(c.valueMap[c.getKey(a,i)]=e,c.emit("input-change",{value:e,path:["prop",i]}))},n),p},a.prototype._createRadioButton=function(e,i){var o=this;return this.$radio[i]=$(crel("div",{class:"brtc-loop-header-field-radiobutton"},e)).jqxRadioButton({theme:t.VA.Env.Theme,groupName:"type"}),this.$radio[i].bind("checked",function(t){o.loopType!==i&&(o._showWrapper(i),o.valueMap={},o.loopType=i,_.forIn(o.$input,function(t){t.setValue("")}),o.emit("type-change",i))}),this.$radio[i][0]},a.prototype._showWrapper=function(t){_.forIn(this.$wrapper,function(t){t.hide()}),this.$wrapper[t].show(),this.refresh()},a.prototype.getLoopFunc=function(){return this.fnUnit?this.fnUnit.func:"forLoop"},a.prototype.refresh=function(){var t=this,e=this.loopType;this.props&&_.forIn(this.props.prop,function(i,o){var n=t.getKey(e,o);_.has(t.$input,n)&&t.$input[n].refresh()})},a.prototype.getKey=function(t,e){return t+"_"+e},a.prototype.test=function(t){return _.startsWith(t,"${=")&&_.endsWith(t,"}")},a.prototype.strip=function(t){var e=t||"";return this.test(e)?e.substring(3,e.length-1):e},t.VA.Implementation.DataFlow.Editors.Header.LoopHeaderField=a}.call(this),function(){"use strict";var t=this.Brightics,e=this.__module__.ClassUtils,i=t.VA.Implementation.DataFlow.Editors.Header;function o(t,e){this.$parent=t,this.$el=$(['<div class="brtc-loop-header">',' <div class="brtc-loop-header-field-wrapper">'," </div>","</div>"].join("")),this.data={},this.$loopHeaderField=this.$el.find(".brtc-loop-header-field-wrapper"),this.createField(this.$loopHeaderField),this.$parent.append(this.$el),this.hide()}e.inherits(o,i.Header),o.prototype.createField=function(t){var e=this;this.field=new i.LoopHeaderField(t,{}),this.field.on("input-change",function(t){e.emit("input-change",t)}),this.field.on("type-change",function(t){e.emit("type-change",t)})},o.prototype.setData=function(t){this.data=t,this.field.setData(t)},o.prototype.render=function(){this.field.render()},o.prototype.onShow=function(){this.field.render()},i.LoopHeader=o}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){t.VA.Core.Editors.Toolbar.call(this,e,i)}e.prototype=Object.create(t.VA.Core.Editors.Toolbar.prototype),e.prototype.constructor=e,e.prototype.registerItems=function(){var e=t.VA.Implementation.DataFlow.Toolbar.ItemsTemplate;for(var i in e)this.addItem(e[i])},t.VA.Implementation.DataFlow.Toolbar=e}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){t.VA.Core.Editors.Toolbar.FunctionhelpItem.call(this,e,i)}e.prototype=Object.create(t.VA.Core.Editors.Toolbar.FunctionhelpItem.prototype),e.prototype.constructor=e,e.prototype.handleOnClick=function(e){t.VA.Core.Utils.ModelUtils.openFunctionReferencePopup("data")},t.VA.Implementation.DataFlow.Toolbar.FunctionhelpItem=e}.call(this),function(){"use strict";var t=this.Brightics;function e(e,i){t.VA.Core.Editors.Toolbar.RunItem.call(this,e,i)}e.prototype=Object.create(t.VA.Core.Editors.Toolbar.RunItem.prototype),e.prototype.constructor=e,e.prototype.handleOnClick=function(e){var i=Studio.getEditorContainer().getActiveModelEditor(),o=i.getModel(),n=function(t){t.OK&&i.preProcess().then(function(e){Studio.getJobExecutor().launchModel(o,t.args,{runnable:e})})};if("true"===t.VA.SettingStorage.getValue("editor.variable.visible")&&Object.keys(o.variables).length>0)new t.VA.Core.Dialogs.RunDataDialog(this.$mainControl,{close:n,analyticsModel:o});else{var a={};for(var r in o.variables){var s,l=o.variables[r];s=_.isArray(l.value)&&1===l.value.length?l.value[0]:l.value,_.isUndefined(s)||(a[r]=l.value)}n({OK:!0,args:a})}},t.VA.Implementation.DataFlow.Toolbar.RunItem=e}.call(this),function(){"use strict";var t=this.Brightics;t.VA.Implementation.DataFlow.Toolbar.ItemsTemplate=[{class:t.VA.Implementation.DataFlow.Toolbar.RunItem},{class:t.VA.Core.Editors.Toolbar.Separator},{class:t.VA.Core.Editors.Toolbar.VariableItem},{class:t.VA.Core.Editors.Toolbar.Separator},{class:t.VA.Core.Editors.Toolbar.ClipboardItem},{class:t.VA.Core.Editors.Toolbar.HistoryItem},{class:t.VA.Core.Editors.Toolbar.RedoItem},{class:t.VA.Core.Editors.Toolbar.UndoItem},{class:t.VA.Core.Editors.Toolbar.Separator},{class:t.VA.Core.Editors.Toolbar.ZoomItem},{class:t.VA.Core.Editors.Toolbar.Separator},{class:t.VA.Core.Editors.Toolbar.MoveModeItem},{class:t.VA.Core.Editors.Toolbar.TooltipItem},{class:t.VA.Core.Editors.Toolbar.Separator},{class:t.VA.Core.Editors.Toolbar.DatasourceItem},{class:t.VA.Core.Editors.Toolbar.ScheduleItem},{class:t.VA.Core.Editors.Toolbar.VersionItem},{class:t.VA.Core.Editors.Toolbar.Separator},{class:t.VA.Implementation.DataFlow.Toolbar.FunctionhelpItem},{class:t.VA.Core.Editors.Toolbar.ModelInfoItem}]}.call(this),function(){"use strict";var t=this.Brightics;this.Brightics.VA.Implementation.DataFlow.Utils.AddonFunctionUtil={addFunction:function(e){var i="string"==typeof e.contents?JSON.parse(e.contents):e.contents,o=e.id;if(!1!==i.isFunction&&!t.VA.Implementation.DataFlow.Functions[o]){var n={category:i.category,defaultFnUnit:{func:o,name:i.name,param:{},display:{label:i.label,diagram:{position:{x:20,y:10}},sheet:{}},meta:i.meta},description:i.description,tags:i.tags,"in-range":i.inrange,"out-range":i.outrange,summary:i.summary},a={partial:[{panel:[],layout:{}}],full:[{panel:[],layout:{}}]};e.script_id&&(n.defaultFnUnit.param.script={metadata:"script",scriptId:e.script_id}),i.context&&(n.defaultFnUnit.context=i.context),i.version&&(n.defaultFnUnit.version=i.version),"3.6"===i.version&&i.inputs&&JSON.stringify(i.inputs)!==JSON.stringify({})?(n.defaultFnUnit.display.sheet.in=a,n.defaultFnUnit.inputs=i.inputs,n.defaultFnUnit.meta=i.meta):i.inrange&&0!==i.inrange.min&&0!==i.inrange.max&&(n.defaultFnUnit.display.sheet.in=a,i.inputs?n.defaultFnUnit.inputs=$.extend(!0,{},i.inputs):n.defaultFnUnit.inData=[]),"3.6"===i.version&&i.outputs&&JSON.stringify(i.outputs)!==JSON.stringify({})?(n.defaultFnUnit.display.sheet.out=a,n.defaultFnUnit.outputs=i.outputs,n.defaultFnUnit.meta=i.meta):i.outrange&&0!==i.outrange.min&&0!==i.outrange.max&&(n.defaultFnUnit.display.sheet.out=a,i.outputs?n.defaultFnUnit.outputs=$.extend(!0,{},i.outputs):n.defaultFnUnit.outData=[]),i.deprecated&&(n.deprecated=i.deprecated,n["deprecated-message"]=i["deprecated-message"]||"");var r=(i.specJson?i.specJson.params:i.params)||[];n=this._setDefaultValues(n,r),t.VA.Core.Functions.Library[o]=$.extend(!0,{},n),t.VA.Implementation.DataFlow.Functions[o]=$.extend(!0,{},n),t.VA.Implementation.DataFlow.Functions[o].propertiesPanel=this.createPropertiesPanel(i.params),t.VA.Implementation.DataFlow.Functions[o].validator=this.createValidator(i)}},_setDefaultValues:function(t,e){var i;if(e)for(var o=0;o<e.length;o++)if(void 0!==(i=e[o]).defaultValue)t.defaultFnUnit.param[i.id]=i.defaultValue;else if(i.items&&i.items.length>0){const e=i.items.filter(t=>!!t.default).reduce((t,e)=>[...t,e.value],[]);1===e.length&&["BooleanRadio","RadioButton"].some(t=>t===i.control)?t.defaultFnUnit.param[i.id]=e[0]:"CheckBox"===i.control&&e.length>0?t.defaultFnUnit.param[i.id]=e:e.length>1&&(t.defaultFnUnit.param[i.id]=e)}return t},createPropertiesPanel:function(e){function i(e,i){t.VA.Implementation.DataFlow.Functions.BaseInvokeProperties.call(this,e,i)}return i.prototype=Object.create(t.VA.Implementation.DataFlow.Functions.BaseInvokeProperties.prototype),i.prototype.constructor=i,i.prototype._getParams=function(){return e},i},createValidator:function(e){function i(e,i){t.VA.Implementation.DataFlow.Functions.InvokeValidator.call(this,e,i)}return i.prototype=Object.create(t.VA.Implementation.DataFlow.Functions.InvokeValidator.prototype),i.prototype.constructor=i,i.prototype._getContents=function(){return e},i.prototype._hasInData=function(){return!!(e.inrange&&e.inrange.min&&e.inrange.min>0)||!!_.isEmpty(e.inputs)},i}}}.call(this),function(){"use strict";var t,e,i=this.Brightics;this.Brightics.VA.Implementation.DataFlow.Utils.RunnableFactory=(t=function(t,e){var o=function(t){"Subflow"===t[FUNCTION_NAME]&&(t.param.functions=_.map(t.param.functions,o));var i=_.filter(e,function(e){return e.fid===t.fid});return _.forEach(i,function(e){_.forIn(e.param,function(e,i){t.param[i]="${="+e+"}"})}),t},n=function(e){e.functions=_.map(e.functions,o);var a=i.VA.Core.Utils.NestedFlowUtils.getChildModels(t,e);_.forEach(a,n)};return n(t)},e=function(t){var e=function(t){t.functions=_.map(t.functions,function(t){var e=i.VA.Core.Utils.WidgetUtils.getFunctionLibrary("data",t.func).category;return t.skip="brightics"===e&&t.skip,t})};e(t),_.forIn(t.innerModels,e)},{createForUnit:function(o,n,a,r,s){var l=$.extend(!0,{},o);i.VA.Core.Utils.ModelUtils.checkAndRemoveOptionalInputs(l),i.VA.Core.Utils.ModelUtils.carvePersist(l,!0),i.VA.Core.Utils.ModelUtils.deleteEmptyArray(l);var d=o.parent(),c=d.mid,p=d.getMainModel(),h=_.cloneDeep(p.variables),u=_.cloneDeep(p.variableRef),m=i.VA.Core.Utils.NestedFlowUtils.getAllSubModelsFromFnUnit(p,o).map(function(t){var e={};return e[t.mid]=t,e}),g=_.cloneDeep(_.reduce(m,_.merge,{})),f=_.cloneDeep(p.optModels),v={mid:c,type:"data",variables:h,functions:[l],links:[],innerModels:g,optModels:f,title:d.title};return i.VA.Core.Utils.ModelUtils.extendModel(v),i.VA.Core.Utils.ModelUtils.exportAsRunnablePromise(p,v).then(function(o){var n=i.VA.Core.Utils.ModelUtils.exportAsRunnable(v);return o.models[v.mid]=n,_.forIn(r,function(t,e){n.variables[e]&&(n.variables[e].value=t)}),n.variableRef=u,_.forIn(o.models,function(e){t(e,e.variableRef)}),e(n),o.main=c,i.OptModelManager.buildOptRunnable(o)}).catch(console.error)},createForFlow:function(o,n,a,r,s){var l=_.cloneDeep(o),d=l.getMainModel(),c=_.cloneDeep(d.variables),p=_.cloneDeep(d.variableRef);return i.VA.Core.Utils.ModelUtils.exportAsRunnablePromise(d,l).then(function(o){(l=o.models[o.main]).variables=c;var n=i.VA.Core.Utils.ModelUtils.exportAsRunnable(l);return o.models[o.main]=n,e(n),n.variableRef=p,_.forIn(o.models,function(e){t(e,e.variableRef)}),_.forIn(r,function(t,e){n.variables[e]&&(n.variables[e].value=t)}),i.OptModelManager.buildOptRunnable(o)}).catch(console.error)}})}.call(this),function(){"use strict";var t=this.Brightics;function e(e){t.VA.Core.Tools.Manager.SideBarManager.call(this,e)}e.prototype=Object.create(t.VA.Core.Tools.Manager.SideBarManager.prototype),e.prototype.constructor=e,e.prototype.configureLayout=function(){this.layout={variables:{id:"variables",label:"Variables",position:"left",width:330,manager:this},palette:{id:"palette",label:"Palette",position:"right",width:440,manager:this},returnTable:{id:"returnTable",label:"Return Data",position:"right",width:330,manager:this},inputTable:{id:"inputTable",label:"Input Data",position:"left",width:330,manager:this},outline:{id:"outline",label:"Outline",position:"left",width:330,manager:this},optSetting:{id:"optSetting","description-label":"Optimization",label:"Optimization Setting",position:"right",width:367,manager:this}}},e.prototype.createControls=function(){this.sideBar.variables=new t.VA.Core.Tools.SideBar.VariablesSideBar(this.$parent.find(".brtc-va-studio-sidebar[name=variables]"),this.layout.variables),this.sideBar.palette=new t.VA.Core.Tools.SideBar.PaletteSideBar(this.$parent.find(".brtc-va-studio-sidebar[name=palette]"),this.layout.palette),this.sideBar.returnTable=new t.VA.Core.Tools.SideBar.ReturnTableSideBar(this.$parent.find(".brtc-va-studio-sidebar[name=returnTable]"),this.layout.returnTable),this.sideBar.inputTable=new t.VA.Core.Tools.SideBar.InputTableSideBar(this.$parent.find(".brtc-va-studio-sidebar[name=inputTable]"),this.layout.inputTable),this.sideBar.outline=new t.VA.Core.Tools.SideBar.OutlineSideBar(this.$parent.find(".brtc-va-studio-sidebar[name=outline]"),this.layout.outline),this.sideBar.optSetting=new t.VA.Core.Tools.SideBar.OptSettingSideBar(this.$parent.find(".brtc-va-studio-sidebar[name=optSetting]"),this.layout.optSetting)},e.prototype.onActivated=function(){this.sideBar.palette.onActivated()},e.prototype.refresh=function(){this.sideBar.outline.refresh()},e.prototype.updateStatus=function(t){this.sideBar.outline.updateStatus(t)},t.VA.Implementation.DataFlow.Tools.Manager.SideBarManager=e}.call(this),function(){"use strict";var t=this.Brightics.VA.Implementation.DataFlow,e=t.Clazz,i=this.Brightics.VA.Core.Interface;i.Clazz[e]=e,i.Label[e]=t.Label,i.Validator[e]=t.Validator,i.Editor[e]=t.Editor,i.Toolbar[e]=t.Toolbar,i.SideBarManager[e]=t.Tools.Manager.SideBarManager,i.Launcher[e]=t.DataFlowLauncher,i.Functions[e]=t.Functions,i.WidgetUtils[e]=t.Utils.WidgetUtils,i.DefaultModel[e]=t.defaultModel,i.AddonFunctionUtil[e]=t.Utils.AddonFunctionUtil,i.ProjectContextMenuList[e]=["duplicate","export","deploy","exportAsRunnable","version"],i.Clipboard[e]=!0,i.ModelLayoutManager[e]=t.ModelLayoutManager,i.RunnableFactory[e]=t.Utils.RunnableFactory}.call(this);