| `);if(y.css({"word-wrap":"break-word"}),y.html(" "),g.append(y),i.forEach(t=>{const e=this.reportHelper.formatColumn(t,this.result),i=$(` | `).html(e);i.addClass("text-soft"),i.css({"word-wrap":"break-word"}),i.css({"font-weight":"600"}),g.append(i)}),this.result.grouping[0].forEach(t=>{const e=Handlebars.Utils.escapeExpression(t),i=$(`${this.formatGroup(0,t)}`),s=$(` | `).html(i);s.css({"word-wrap":"break-word"}),g.append(s)}),this.result.group2Sums){const t=this.translate("Total","labels","Report"),e=$(' | ').css({"font-weight":"600"}).html(t);g.append(e)}f.append(g),e.length&&e.forEach(e=>{const s=$(' |
|---|---|---|---|
| ").html(a);n.addClass("text-soft"),n.css({"font-weight":"600"}),s.append(n),n.addClass("accented"),i.forEach(()=>{s.append(' | ')}),this.result.grouping[0].forEach(i=>{const n=this.formatGroup(0,i);let o=null;const l=t.nonSummaryData[t.groupByList[0]];i in l&&e in l[i]&&(o=l[i][e]);const r=this.reportHelper.isColumnNumeric(e,t)?"right":"",d=$(` | `).html(this.formatCellValue(o,e));this.reportHelper.isColumnNumeric(e,t)&&d.addClass("numeric-text");const h=this.unescapeString(n)+"\n"+this.unescapeString(a);d.attr("title",h),d.css({"word-wrap":"break-word"}),s.append(d)}),this.result.group2Sums&&s.append(' | '),f.append(s)}),this.result.grouping[1].forEach(e=>{const s=$(" |
| ").html(n);if(o.addClass("accented"),o.css({"word-wrap":"break-word"}),s.append(o),i.forEach(i=>{let n=null;const o=this.reportHelper.formatColumn(i,this.result),l=t.nonSummaryData[t.groupByList[1]];e in l&&i in l[e]&&(n=l[e][i]);const r=this.reportHelper.isColumnNumeric(i,t)?"right":"",d=$(` | `).html(this.formatCellValue(n,i));this.reportHelper.isColumnNumeric(i,t)&&d.addClass("numeric-text");const h=this.unescapeString(a)+"\n"+this.unescapeString(o);d.attr("title",h),d.css({"word-wrap":"break-word"}),s.append(d)}),this.result.grouping[0].forEach(i=>{const n=this.formatGroup(0,i);let o=0;i in t.reportData&&e in t.reportData[i]&&(o=t.reportData[i][e][this.column]);const l=this.unescapeString(n)+"\n"+this.unescapeString(a),r=$(` | `).addClass("numeric-text").html(this.formatCellValue(o,this.column));r.attr("title",l),r.css({"word-wrap":"break-word"}),s.append(r)}),this.result.group2Sums){let i=0;e in t.group2Sums&&(i=t.group2Sums[e][this.column]);const n=$(' | ').addClass("numeric-text").css("font-weight","600"),o=this.formatCellValue(i,this.column,!0);n.html(o);const l=this.unescapeString(a);n.attr("title",l),n.addClass("text-soft"),s.append(n)}f.append(s)}),g=$(' |
| ").html(w)),i.forEach(()=>{g.append(" | ")}),this.result.grouping[0].forEach(e=>{const i=this.formatGroup(0,e);let s=0;e in t.group1Sums&&(s=t.group1Sums[e][this.column]);const a=this.unescapeString(i),n=$(""+this.formatCellValue(s,this.column,!0)+""),o=$(' | ').html(n);o.css({"word-wrap":"break-word"}),o.addClass("text-soft"),o.addClass("numeric-text"),o.attr("title",a),g.append(o)}),this.result.group2Sums){const e=$(' | ').addClass("numeric-text").css("font-weight","600");let i=0;this.column in t.sums&&(i=t.sums[this.column]);const s=this.formatCellValue(i,this.column,!0);e.html(s),g.append(e)}f.append(g),this.$tableContainer=this.$el.find(".table-container"),this.$tableContainer.append(u),s>7&&(this.$tableContainer.css("overflow-y","auto"),this.$tableContainer.addClass("with-horizontal-scroll"))},unescapeString:function(t){return $(" ").html(t).text()}})}),define("modules/advanced/views/report/reports/charts/grid2bar-horizontal",["exports","modules/advanced/views/report/reports/charts/grid2bar-vertical"],function(t,e){"use strict";var i;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,e=(i=e)&&i.__esModule?i:{default:i};class s extends e.default{rowHeight=25;zooming=!1;isGrouped=!1;chartType="barHorizontal";prepareData(){const t=this.result,e=this.firstList=Espo.Utils.clone(t.grouping[0]),i=this.secondList=t.grouping[1];e.reverse(),i.length<=5&&(this.colorList=this.colorListAlt);const s=[];this.max=0,this.min=0,this.sumList=[],e.forEach(e=>{const a={};let n;i.forEach(i=>{if(t.reportData[e]&&t.reportData[e][i]){const s=t.reportData[e][i][this.column]||0;a[i]=s,s>this.max&&(this.max=s),s ',backdrop:!0,setup:function(){this.headerText=this.translate("Add Field","labels","Workflow");const t=this.scope=this.options.scope,e=this.options.fieldList;this.wait(!0),this.getModelFactory().create("Workflow",i=>{i.targetEntityType=t,this.createView("field","advanced:views/workflow/fields/action-field",{selector:'.field[data-name="field"]',model:i,mode:"edit",name:"field",params:{options:["",...this.options.fieldList],isSorted:!0},translatedOptions:e.reduce((e,i)=>(e[i]=this.translate(i,"fields",t),e),{})},t=>{this.listenTo(t,"change",()=>{this.trigger("add",i.get("field")),this.close()})}),this.wait(!1)})}})}),define("advanced:views/workflow/modals/add-condition",["views/modal"],function(t){return t.extend({templateContent:'"+t.series.label+' '+this.formatCellValue(s,i)+""}}}),this.adjustLegend(),Flotr.EventAdapter.observe(this.$container.get(0),"flotr:click",t=>{t.hit&&"index"in t.hit&&this.trigger("click-group",this.firstList[t.hit.index],null,this.secondList[t.hit.seriesIndex])})}}t.default=s}),define("modules/advanced/views/report/reports/charts/grid1bar-horizontal",["exports","modules/advanced/views/report/reports/charts/grid1bar-vertical"],function(t,e){"use strict";var i;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,e=(i=e)&&i.__esModule?i:{default:i};class s extends e.default{noLegend=!0;rowHeight=25;zooming=!1;chartType="barHorizontal";calculateHeight(){let t=this.grList.length;return this.columnList&&this.columnList.length>1&&(t*=this.columnList.length),t*this.rowHeight*this.getFontSizeFactor()}prepareData(){const t=this.result,e=this.grList=Espo.Utils.clone(t.grouping[0]);e.reverse(),this.options.color&&(this.colorList=Espo.Utils.clone(this.colorList),this.colorList[0]=this.options.color);const i=this.columnList=this.columnList||[this.column];let s,a=1;this.columnList&&(this.columnList.length>1&&(this.barWidth=1/this.columnList.length*.65),a=1/this.columnList.length,s=Math.ceil(this.columnList.length/2)-1,this.columnList.length>1&&(this.noLegend=!1));let n=0,o=0,l=0,r=0;const d=[];i.forEach((t,i)=>{const h={data:[],label:this.reportHelper.formatColumn(t,this.result),column:t};let c=0;if(this.columnList){c=a*(i-s),this.columnList.length%2==0&&(c-=a/2),c*=.75,this.secondColumnList&&~this.secondColumnList.indexOf(t)&&(h.xaxis=2)}h.value=0,e.forEach((e,i)=>{const s=(this.result.reportData[e]||{})[t]||0;this.secondColumnList&&~this.secondColumnList.indexOf(t)?(s>o&&(o=s),s "),s+=t.series.label),s&&(s+=" "),s+=this.formatCellValue(t.x,i),s}},legend:{show:!this.noLegend,noColumns:this.getLegendColumnNumber(),container:this.$el.find(".legend-container"),labelBoxMargin:0,labelFormatter:this.labelFormatter.bind(this),labelBoxBorderColor:"transparent",backgroundOpacity:0}}),Flotr.EventAdapter.observe(this.$container.get(0),"flotr:click",t=>{if(!t.hit)return;if(!("index"in t.hit))return;let e=null;this.result.isJoint&&(e=this.columnList?this.columnList[t.hit.seriesIndex]:this.column),this.trigger("click-group",this.grList[t.hit.index],void 0,void 0,e)}),this.noLegend||this.adjustLegend()}}t.default=s}),define("advanced:views/report/record/detail",["views/record/detail"],function(t){return t.extend({editModeDisabled:!0,printPdfAction:!1,setup:function(){t.prototype.setup.call(this),!this.getMetadata().get(["scopes","ReportCategory","disabled"])&&this.getAcl().checkScope("ReportCategory","read")||this.hideField("category"),"JointGrid"===this.model.attributes.type&&this.hideField("entityType"),this.getUser().isPortal()||this.setupEmailSendingFieldsVisibility(),this.hidePanel("emailSending"),this.getUser().isPortal()||(this.model.has("emailSendingInterval")?this.controlEmailSendingPanelVisibility():this.listenToOnce(this.model,"sync",this.controlEmailSendingPanelVisibility,this)),this.getUser().isPortal()&&this.hidePanel("default"),this.controlPortalsFieldVisibility(),this.listenTo(this.model,"sync",this.controlPortalsFieldVisibility),this.controlDescriptionFieldVisibility(),this.listenTo(this.model,"sync",this.controlDescriptionFieldVisibility)},controlPortalsFieldVisibility:function(){"no"!==this.getAcl().get("portalPermission")&&this.model.getLinkMultipleIdList("portals").length?this.showField("portals"):this.hideField("portals")},controlDescriptionFieldVisibility:function(){this.model.get("description")?this.showField("description"):this.hideField("description")},controlEmailSendingPanelVisibility:function(){this.model.get("emailSendingInterval")?this.showPanel("emailSending"):this.hidePanel("emailSending")},setupEmailSendingFieldsVisibility:function(){this.controlEmailSendingIntervalField(),this.listenTo(this.model,"change:emailSendingInterval",()=>{this.controlEmailSendingIntervalField()})},controlEmailSendingIntervalField:function(){const t=this.model.get("emailSendingInterval");"List"===this.model.get("type")&&""!==t&&t?this.showField("emailSendingDoNotSendEmptyReport"):this.hideField("emailSendingDoNotSendEmptyReport"),"Daily"===t?(this.showField("emailSendingTime"),this.showField("emailSendingUsers"),this.hideField("emailSendingSettingMonth"),this.hideField("emailSendingSettingDay"),this.hideField("emailSendingSettingWeekdays")):"Monthly"===t?(this.showField("emailSendingTime"),this.showField("emailSendingUsers"),this.hideField("emailSendingSettingMonth"),this.showField("emailSendingSettingDay"),this.hideField("emailSendingSettingWeekdays")):"Weekly"===t?(this.showField("emailSendingTime"),this.showField("emailSendingUsers"),this.hideField("emailSendingSettingMonth"),this.hideField("emailSendingSettingDay"),this.showField("emailSendingSettingWeekdays")):"Yearly"===t?(this.showField("emailSendingTime"),this.showField("emailSendingUsers"),this.showField("emailSendingSettingMonth"),this.showField("emailSendingSettingDay"),this.hideField("emailSendingSettingWeekdays")):(this.hideField("emailSendingTime"),this.hideField("emailSendingUsers"),this.hideField("emailSendingSettingMonth"),this.hideField("emailSendingSettingDay"),this.hideField("emailSendingSettingWeekdays"))},handleShortcutKeyCtrlEnter:function(e){if(!this.inlineEditModeIsOn&&this.mode===this.MODE_DETAIL)return this.recordHelper.trigger("run-report"),void e.stopPropagation();t.prototype.handleShortcutKeyCtrlEnter.call(this,e)}})}),define("advanced:views/report/fields/filters",["views/fields/multi-enum"],function(t){return t.extend({getFilterList:function(){const t=this.model.get("entityType"),e=this.getMetadata().get(`entityDefs.${t}.fields`),i=Object.keys(e).filter(i=>{if((!this.options.skipLinkMultiple||"linkMultiple"!==e[i].type)&&"map"!==e[i].type&&!e[i].disabled&&!e[i].utility&&!e[i].reportDisabled&&!e[i].reportFilterDisabled&&(!e[i].directAccessDisabled||e[i].filtersEnabled)&&this.getFieldManager().isEntityTypeFieldAvailable(t,i))return this.getFieldManager().checkFilter(e[i].type)});i.sort((e,i)=>this.translate(e,"fields",t).localeCompare(this.translate(i,"fields",t)));const s=this.getMetadata().get(`entityDefs.${t}.links`)||{};return Object.keys(s).sort((e,i)=>this.translate(e,"links",t).localeCompare(this.translate(i,"links",t))).forEach(t=>{const e=s[t].type;if("belongsTo"!==e&&"hasMany"!==e&&"hasChildren"!==e)return;const a=s[t].entity;if(!a)return;if(s[t].disabled||s[t].utility)return;const n=this.getMetadata().get(`entityDefs.${a}.fields`)||{},o=Object.keys(n).filter(t=>{const e=n[t].type;if(!["linkMultiple","linkParent","personName","foreign"].includes(e)&&!n[t].reportDisabled&&!n[t].reportFilterDisabled&&(!n[t].directAccessDisabled||n[t].filtersEnabled)&&!n[t].foreignAccessDisabled&&this.getFieldManager().isEntityTypeFieldAvailable(a,t))return this.getFieldManager().checkFilter(n[t].type)&&!n[t].disabled});o.sort((t,e)=>this.translate(t,"fields",a).localeCompare(this.translate(e,"fields",a))),o.forEach(e=>{i.push(t+"."+e)})}),i},setupTranslatedOptions:function(){this.translatedOptions={};const t=this.model.get("entityType");this.params.options.forEach(e=>{const i=e.split(".")[0];let s=e,a=t,n=!1;~e.indexOf(".")&&(n=!0,s=e.split(".")[1],a=this.getMetadata().get(`entityDefs.${t}.links.${i}.entity`)),this.translatedOptions[e]=this.translate(s,"fields",a),n&&(this.translatedOptions[e]=this.translate(i,"links",t)+" . "+this.translatedOptions[e])})},setupOptions:function(){t.prototype.setupOptions.call(this),this.params.options=this.getFilterList(),this.setupTranslatedOptions()},afterRender:function(){t.prototype.afterRender.call(this),this.$element&&this.$element[0]&&this.$element[0].selectize&&this.$element[0].selectize.focus()}})}),define("modules/advanced/views/report/fields/columns",["exports","views/fields/multi-enum","modules/advanced/views/report/fields/group-by"],function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,e=s(e),i=s(i);class a extends e.default{fieldTypeList;numericFieldTypeList;setup(){this.fieldTypeList=this.getMetadata().get("app.advancedReport.fieldTypeList")??[],this.numericFieldTypeList=this.getMetadata().get("app.advancedReport.numericFieldTypeList")??[],super.setup(),this.setupOptions(),this.setupTranslatedOptions(),this.listenTo(this.model,"change",t=>{t.hasChanged("groupBy")&&(this.setupOptions(),this.setupTranslatedOptions(),this.reRender())}),this.addActionHandler("editColumns",()=>this.actionEditColumns())}setupOptions(){const t=this.model.get("entityType"),e=this.getMetadata().get(["entityDefs",t,"fields"])||{};let i=!1;const s=this.getConfig().get("version")||"",a=s.split(".");"dev"!==s&&a.length>2&&100*parseInt(a[0])+parseInt(a[1])<506&&(i=!0);let n=!1;"dev"!==s&&a.length>2&&100*parseInt(a[0])+10*parseInt(a[1])+parseInt(a[2])<562&&(n=!0);const o=[];o.push("COUNT:id");let l=Object.keys(e)||[];l=l.sort((e,i)=>this.translate(e,"fields",t).localeCompare(this.translate(i,"fields",t))),l.forEach(i=>{e[i].disabled||e[i].directAccessDisabled||e[i].reportDisabled||this.getFieldManager().isEntityTypeFieldAvailable&&!this.getFieldManager().isEntityTypeFieldAvailable(t,i)||~this.numericFieldTypeList.indexOf(e[i].type)&&(o.push(`SUM:${i}`),o.push(`MAX:${i}`),o.push(`MIN:${i}`),o.push(`AVG:${i}`))});const r=this.model.get("groupBy")||[];r.forEach(e=>{if(!i){const i=this.getMetadata().get(["entityDefs",t,"links"])||{},s=Object.keys(i);s.sort((e,i)=>this.translate(e,"links",t).localeCompare(this.translate(i,"links",t))),s.forEach(t=>{if("belongsTo"!==i[t].type)return;if(t!==e)return;const s=i[t].entity;if(!s)return;if(i[t].disabled||i[t].utility)return;const a=this.getMetadata().get(["entityDefs",s,"fields"])||{},l=Object.keys(a);l.sort((t,e)=>this.translate(t,"fields",s).localeCompare(this.translate(e,"fields",s))),l.forEach(e=>{if(!a[e].disabled&&!a[e].utility&&!a[e].directAccessDisabled&&!a[e].reportDisabled&&(!this.getFieldManager().isEntityTypeFieldAvailable||this.getFieldManager().isEntityTypeFieldAvailable(s,e))&&~this.fieldTypeList.indexOf(a[e].type)){if("enum"===a[e].type&&"Currency"===e.substr(-8))return;if(n&&"email"===a[e].type)return;if(n&&"phone"===a[e].type)return;if("name"===e)return;o.push(t+"."+e)}})})}}),l.forEach(i=>{r.length>1||e[i].disabled||e[i].reportDisabled||e[i].directAccessDisabled||this.getFieldManager().isEntityTypeFieldAvailable&&!this.getFieldManager().isEntityTypeFieldAvailable(t,i)||~this.fieldTypeList.indexOf(e[i].type)&&o.push(i)});const d=this.getMetadata().get(["entityDefs",t,"links"])||{},h=Object.keys(d);h.sort((e,i)=>this.translate(e,"links",t).localeCompare(this.translate(i,"links",t))),h.forEach(t=>{if("belongsTo"!==d[t].type&&"hasOne"!==d[t].type)return;if(d[t].disabled||d[t].utility)return;const e=d[t].entity;if(!e)return;const i=this.getMetadata().get(["entityDefs",e,"fields"])||{};let s=Object.keys(i)||[];s=s.sort((t,i)=>this.translate(t,"fields",e).localeCompare(this.translate(i,"fields",e))),s.forEach(s=>{i[s].disabled||i[s].utility||i[s].directAccessDisabled||i[s].reportDisabled||this.getFieldManager().isEntityTypeFieldAvailable&&!this.getFieldManager().isEntityTypeFieldAvailable(e,s)||~this.numericFieldTypeList.indexOf(i[s].type)&&(o.push(`SUM:${t}.${s}`),o.push(`MAX:${t}.${s}`),o.push(`MIN:${t}.${s}`),o.push(`AVG:${t}.${s}`))})}),this.params.options=o}setupTranslatedOptions(t){i.default.prototype.setupTranslatedOptions.call(this,t),this.params.options.forEach(t=>{"COUNT:id"===t&&(this.translatedOptions[t]=this.translate("COUNT","functions","Report").toUpperCase())})}afterRender(){if(super.afterRender(),this.isEditMode()&&"columns"===this.name){const t=$('');this.$el.prepend(t);const e=t.outerWidth()+8;this.$el.find(".selectize-control").css("width","calc(100% - "+e+"px)")}}actionEditColumns(){const t=this.model.get(this.name)||[],e=this.model.get("columnsData")||{},i=t.map(t=>(e[t]||{}).label||null),s=t.map(t=>(e[t]||{}).type||null),a=t.map(t=>{const i=(e[t]||{}).decimalPlaces;return void 0===i?null:i});this.createView("dialog","advanced:views/report/modals/edit-columns",{expressions:t,labels:i,types:s,decimals:a,entityType:this.model.attributes.entityType},t=>{t.render(),this.listenToOnce(t,"apply",(t,e,i,s)=>{const a=t.reduce((t,a,n)=>{const o=e[n]||null,l=i[n]||null,r=s[n];return t[a]={label:o,type:l,decimalPlaces:r},t},{});this.model.set({[this.name]:t,columnsData:a},{ui:!0}),this.clearView("dialog"),this.reRender()})})}}t.default=a}),define("advanced:views/bpmn-process/record/edit","views/record/edit",function(t){return t.extend({setup:function(){t.prototype.setup.call(this),this.setupFlowchartDependency()},setupFlowchartDependency:function(){this.listenTo(this.model,"change:flowchartId",function(t,e,i){i.ui&&(this.model.set({targetId:null,targetName:null}),e||this.model.set("startElementIdList",[]),this.model.set("name",this.model.get("flowchartName")))},this),this.model.has("startElementIdList")?(this.showField("startElementId"),this.setStartElementIdList(this.model.get("startElementIdList"))):this.hideField("startElementId"),this.listenTo(this.model,"change:startElementIdList",function(t,e,i){this.setStartElementIdList(e)},this)},setStartElementIdList:function(t){t=t||[],this.setFieldOptionList("startElementId",t),t.length?this.model.set("startElementId",t[0]):this.model.set("startElementId",null),t.length>0?this.showField("startElementId"):this.hideField("startElementId")}})}),define("advanced:views/bpmn-flowchart-element/record/task-user-detail",["advanced:views/bpmn-flowchart-element/record/detail"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this),this.controlFieldsVisibility()},controlFieldsVisibility:function(){this.hideField("targetUser"),this.hideField("targetUser"),this.hideField("targetUserPosition"),this.setFieldNotRequired("targetUser"),this.setFieldNotRequired("targetTeam"),"specifiedUser"===this.model.get("assignmentType")?(this.showPanel("assignmentRule"),this.showField("targetUser"),this.setFieldRequired("targetUser")):0===(this.model.get("assignmentType")||"").indexOf("rule:")&&(this.showPanel("assignmentRule"),this.showField("targetTeam"),this.showField("targetUserPosition"),this.setFieldRequired("targetTeam"))}})}),define("advanced:views/bpmn-flowchart-element/record/task-send-message-detail",["advanced:views/bpmn-flowchart-element/record/detail"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this),this.controlFieldsVisibility()},controlFieldsVisibility:function(){this.hideField("fromEmailAddress"),this.hideField("toEmailAddress"),this.hideField("replyToEmailAddress"),this.hideField("ccEmailAddress"),this.hideField("toSpecifiedTeams"),this.hideField("toSpecifiedUsers"),this.hideField("toSpecifiedContacts"),"specifiedEmailAddress"===this.model.get("from")&&this.showField("fromEmailAddress"),"specifiedEmailAddress"===this.model.get("to")&&this.showField("toEmailAddress"),"specifiedEmailAddress"===this.model.get("replyTo")&&this.showField("replyToEmailAddress"),"specifiedEmailAddress"===this.model.get("cc")&&this.showField("ccEmailAddress"),"specifiedUsers"===this.model.get("to")&&this.showField("toSpecifiedUsers"),"specifiedTeams"===this.model.get("to")&&this.showField("toSpecifiedTeams"),"specifiedContacts"===this.model.get("to")&&this.showField("toSpecifiedContacts")}})}),define("advanced:views/bpmn-flowchart-element/record/gateway-exclusive-detail",["advanced:views/bpmn-flowchart-element/record/detail"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this),this.isDivergent()?this.showPanel("divergent"):(this.hideField("flowsConditions"),this.hidePanel("flowsConditions"),this.hideField("defaultFlowId"),this.hidePanel("divergent"))},isConvergent:function(){var t=this.model.dataHelper.getAllDataList(),e=this.model.id,i=0;return t.forEach(t=>{"flow"===t.type&&t.endId===e&&i++}),i>1},isDivergent:function(){var t=this.model.dataHelper.getAllDataList(),e=this.model.id,i=0;return t.forEach(t=>{"flow"===t.type&&t.startId===e&&i++}),i>1}})}),define("advanced:views/bpmn-flowchart-element/record/event-start-edit",["advanced:views/bpmn-flowchart-element/record/edit"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this),this.model.isInSubProcess?this.showField("isInterrupting"):this.hideField("isInterrupting")}})}),define("advanced:views/bpmn-flowchart-element/record/event-start-detail",["advanced:views/bpmn-flowchart-element/record/detail"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this),this.model.isInSubProcess?this.showField("isInterrupting"):this.hideField("isInterrupting")}})}),define("advanced:views/bpmn-flowchart-element/fields/task-send-message-from",["views/fields/enum"],function(t){return t.extend({setupOptions:function(){t.prototype.setupOptions.call(this),this.params.options=Espo.Utils.clone(this.params.options);this.getLinkOptionList(!0,!0).forEach(t=>{this.params.options.push(t)}),this.translateOptions()},translateOptions:function(){this.translatedOptions={};const t=this.model.targetEntityType;this.params.options.forEach(e=>{if(0===e.indexOf("link:")){let i=e.substring(5);if(~i.indexOf(".")){const s=i.split(".");i=s[0];const a=s[1];if("followers"===a)return void(this.translatedOptions[e]=this.translate("Related","labels","Workflow")+" · "+this.translate(i,"links",t)+" . "+this.translate("Followers"));const n=this.getMetadata().get(["entityDefs",t,"links",i,"entity"]);return void(this.translatedOptions[e]=this.translate("Related","labels","Workflow")+" · "+this.translate(i,"links",t)+" . "+this.translate(a,"links",n))}return void(this.translatedOptions[e]=this.translate("Related","labels","Workflow")+" · "+this.translate(i,"links",t))}this.translatedOptions[e]=this.getLanguage().translateOption(e,"emailAddress","BpmnFlowchartElement")}),this.translatedOptions.targetEntity=this.getLanguage().translateOption("targetEntity","emailAddress","BpmnFlowchartElement")+" · "+this.translate(t,"scopeNames")},getLinkOptionList:function(t,e){const i=[],s=this.model.targetEntityType;return Object.keys(this.getMetadata().get(["entityDefs",s,"links"])||{}).forEach(a=>{const n=this.getMetadata().get(["entityDefs",s,"links",a])||{};if("belongsTo"===n.type||"hasMany"===n.type){const o=n.entity;if(!o)return;if("hasMany"===n.type){if(e)return;if("linkMultiple"!==this.getMetadata().get(["entityDefs",s,"fields",a,"type"]))return}if(t&&"User"!==o)return;const l=this.getMetadata().get(["entityDefs",o,"fields"])||{};"emailAddress"in l&&"email"===l.emailAddress.type&&i.push("link:"+a)}else if("belongsToParent"===n.type){if(t)return;i.push("link:"+a)}}),Object.keys(this.getMetadata().get(["entityDefs",s,"links"])||{}).forEach(a=>{if("belongsTo"!==(this.getMetadata().get(["entityDefs",s,"links",a])||{}).type)return;const n=this.getMetadata().get(["entityDefs",s,"links",a,"entity"]);n&&"User"!==n&&(e||this.getMetadata().get(["scopes",n,"stream"])&&i.push("link:"+a+".followers"),Object.keys(this.getMetadata().get(["entityDefs",n,"links"])||{}).forEach(e=>{const s=this.getMetadata().get(["entityDefs",n,"links",e])||{};if("belongsTo"===s.type||"hasMany"===s.type){const n=s.entity;if(!n)return;if("hasMany"===s.type&&"linkMultiple"!==this.getMetadata().get(["entityDefs",n,"fields",e,"type"]))return;if(t&&"User"!==n)return;const o=this.getMetadata().get(["entityDefs",n,"fields"])||{};"emailAddress"in o&&"email"===o.emailAddress.type&&i.push(`link:${a}.${e}`)}}))}),Object.keys(this.getMetadata().get(["entityDefs",s,"links"])||{}).forEach(e=>{"belongsToParent"===this.getMetadata().get(["entityDefs",s,"links",e,"type"])&&(i.push(`link:${e}.assignedUser`),t||i.push(`link:${e}.followers`))}),i}})}),define("advanced:views/bpmn-flowchart-element/fields/call-activity-target",["views/fields/enum"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this);const e=this.getTargetOptionsData();this.params.options=e.itemList,this.translatedOptions=e.translatedOptions},getTargetOptionsData:function(){const t=[""],e={};e[""]=this.translate("Current","labels","Workflow")+" · "+this.translate(this.model.targetEntityType,"scopeNames");this.model.elementHelper.getTargetCreatedList().forEach(i=>{t.push(i),e[i]=this.model.elementHelper.translateTargetItem(i)});return this.model.elementHelper.getTargetLinkList(2,!1,this.skipParent).forEach(i=>{t.push(i),e[i]=this.model.elementHelper.translateTargetItem(i)}),{itemList:t,translatedOptions:e}}})}),define("modules/advanced/views/bpmn-flowchart/fields/flowchart",["exports","views/fields/base","underscore","jquery"],function(t,e,i,s){"use strict";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,e=a(e),i=a(i),s=a(s);class n extends e.default{detailTemplate="advanced:bpmn-flowchart/fields/flowchart/detail";editTemplate="advanced:bpmn-flowchart/fields/flowchart/edit";height=500;inlineEditDisabled=!0;dataAttribute="data";undoStackLength=30;undoStack;redoStack;createdEntitiesData;events={'click .action[data-action="setStateCreateFigure"]':function(t){const e=(0,s.default)(t.currentTarget).data("name");this.setStateCreateFigure(e)},'click .action[data-action="resetState"]':function(){this.resetState(!0)},'click .action[data-action="setStateCreateFlow"]':function(){this.setStateCreateFlow()},'click .action[data-action="setStateRemove"]':function(){this.setStateRemove()},'click .action[data-action="apply"]':function(){this.apply()},'click .action[data-action="zoomIn"]':function(){this.zoomIn()},'click .action[data-action="zoomOut"]':function(){this.zoomOut()},'click .action[data-action="switchFullScreenMode"]':function(t){t.preventDefault(),this.isFullScreenMode?this.unsetFullScreenMode():this.setFullScreenMode()}};getAttributeList(){return[this.dataAttribute]}data(){const t=super.data();return t.heightString=this.height.toString()+"px","edit"===this.mode&&(t.elementEventDataList=this.elementEventDataList,t.elementGatewayDataList=this.elementGatewayDataList,t.elementTaskDataList=this.elementTaskDataList,t.currentElement=this.currentElement),t}setup(){super.setup(),this.undoStack=[],this.redoStack=[],this.addActionHandler("moveToCenter",()=>this.moveToCenter()),this.addActionHandler("undo",()=>this.undo()),this.addActionHandler("redo",()=>this.redo());const t="#69a345",e="#5d86b0",i="#b34646";this.elementEventList=["eventStart","eventStartConditional","eventStartTimer","eventStartError","eventStartEscalation","eventStartSignal","eventStartCompensation","eventIntermediateConditionalCatch","eventIntermediateTimerCatch","eventIntermediateSignalCatch","eventIntermediateMessageCatch","eventIntermediateEscalationThrow","eventIntermediateSignalThrow","eventIntermediateCompensationThrow","eventEnd","eventEndTerminate","eventEndError","eventEndEscalation","eventEndSignal","eventEndCompensation","eventIntermediateErrorBoundary","eventIntermediateConditionalBoundary","eventIntermediateTimerBoundary","eventIntermediateEscalationBoundary","eventIntermediateSignalBoundary","eventIntermediateMessageBoundary","eventIntermediateCompensationBoundary"],this.elementGatewayList=["gatewayExclusive","gatewayInclusive","gatewayParallel","gatewayEventBased"],this.elementTaskList=["task","taskSendMessage","taskUser","taskScript","_divider","subProcess","eventSubProcess","callActivity"],this.elementEventDataList=[{name:"eventStart",color:t},{name:"eventStartConditional",color:t},{name:"eventStartTimer",color:t},{name:"eventStartError",color:t},{name:"eventStartEscalation",color:t},{name:"eventStartSignal",color:t},{name:"eventStartCompensation",color:t},{name:"_divider",color:null},{name:"eventIntermediateConditionalCatch",color:e},{name:"eventIntermediateTimerCatch",color:e},{name:"eventIntermediateSignalCatch",color:e},{name:"eventIntermediateMessageCatch",color:e},{name:"_divider",color:null},{name:"eventIntermediateEscalationThrow",color:e},{name:"eventIntermediateSignalThrow",color:e},{name:"eventIntermediateCompensationThrow",color:e},{name:"_divider",color:null},{name:"eventEnd",color:i},{name:"eventEndTerminate",color:i},{name:"eventEndError",color:i},{name:"eventEndEscalation",color:i},{name:"eventEndSignal",color:i},{name:"eventEndCompensation",color:i},{name:"_divider",color:null},{name:"eventIntermediateErrorBoundary",color:e},{name:"eventIntermediateConditionalBoundary",color:e},{name:"eventIntermediateTimerBoundary",color:e},{name:"eventIntermediateEscalationBoundary",color:e},{name:"eventIntermediateSignalBoundary",color:e},{name:"eventIntermediateMessageBoundary",color:e},{name:"eventIntermediateCompensationBoundary",color:e}],this.elementGatewayDataList=[],this.elementGatewayList.forEach(t=>{this.elementGatewayDataList.push({name:t,color:"var(--state-warning-text)"})}),this.elementTaskDataList=[],this.elementTaskList.forEach(t=>{this.elementTaskDataList.push({name:t,color:"var(--gray-soft)"})}),this.dataHelper={getAllDataList:()=>this.getAllDataList(),getElementData:t=>this.getElementData(t)};const s=(t,e)=>{const i=EspoBpmn.Icons[t];if(!i)return null;const s=document.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("height",i.height.toString()),s.setAttribute("width",i.width.toString()),s.setAttribute("viewBox",i.viewBox);const a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",i.icon),a.setAttribute("fill",e),s.appendChild(a),s.outerHTML};this.wait((async()=>{await Espo.loader.requirePromise("lib!client/custom/modules/advanced/lib/espo-bpmn.js"),this.elementEventDataList.forEach(t=>{if("_divider"===t.name)return;let e;if(t.name.startsWith("eventStart"))e=t.name.replace("eventStart","event")+"Catch";else if(t.name.startsWith("eventEnd"))e=t.name.replace("eventEnd","event")+"Throw";else{if(!t.name.startsWith("eventIntermediate"))return;e=t.name.replace("eventIntermediate","event"),t.name.endsWith("Boundary")&&(e=e.slice(0,-8)+"Catch")}"eventStart"!==t.name&&"eventEnd"!==t.name||(e="gatewayInclusive");const i=s(e,t.color);i&&(t.iconHtml=i)}),this.elementGatewayDataList.forEach(t=>{if("gatewayExclusive"===t.name){const e=document.createElement("span");return e.classList.add("fas","fa-diamond"),e.style.color=t.color,void(t.iconHtml=e.outerHTML)}if("gatewayEventBased"===t.name){const e=document.createElement("span");return e.classList.add("far","fa-circle-dot"),e.style.color=t.color,void(t.iconHtml=e.outerHTML)}const e=s(t.name,t.color);e&&(t.iconHtml=e)});const t={taskSendMessage:"taskSendMessage",taskUser:"taskUser",taskScript:"taskScript"};this.elementTaskDataList.forEach(e=>{if("task"===e.name){const t=document.createElement("span");return t.classList.add("fas","fa-square","fa-sm"),t.style.color=e.color,t.style.transform="translate(var(--minus-1px), 0)",void(e.iconHtml=t.outerHTML)}if("taskScript"===e.name){const t=document.createElement("span");return t.classList.add("fas","fa-code","fa-sm"),t.style.color=e.color,void(e.iconHtml=t.outerHTML)}const i=t[e.name];if(!i)return;const a=s(i,e.color);a&&(e.iconHtml=a)})})()),this.on("inline-edit-off",()=>{this.currentState=null,this.currentElement=null});const a=Espo.Utils.cloneDeep(this.model.get(this.dataAttribute)||{});this.dataList=a.list||[],this.createdEntitiesData=a.createdEntitiesData||{},this.listenTo(this.model,"change:"+this.dataAttribute,(t,e,i)=>{if(i.ui)return;const s=Espo.Utils.cloneDeep(this.model.get(this.dataAttribute)||{});this.dataList=s.list||[]}),this.on("render",()=>{this.canvas&&(this.offsetX=this.canvas.offsetX,this.offsetY=this.canvas.offsetY,this.scaleRatio=this.canvas.scaleRatio)}),this.offsetX=null,this.offsetY=null,this.scaleRatio=null}prepare(){return this.mode===this.MODE_EDIT&&(this.undoStack=[],this.redoStack=[],this.addDataToUndoStack()),super.prepare()}afterRender(){this.$groupContainer=this.$el.find(".flowchart-group-container"),this.$container=this.$el.find(".flowchart-container"),this.isFullScreenMode&&this.setFullScreenMode(),this.isEditMode()&&this.controlUndoActions();const t={},e=this.getMetadata().get(["clientDefs","BpmnFlowchart","elements"])||{};for(const i in e)"defaults"in e[i]&&(t[i]=Espo.Utils.cloneDeep(e[i].defaults));t.subProcess=t.subProcess||{},t.subProcess.targetType=this.model.get("targetType"),t.eventSubProcess=t.eventSubProcess||{},t.eventSubProcess.targetType=this.model.get("targetType");const i={canvasWidth:"100%",canvasHeight:"100%",dataDefaults:t,events:{change:()=>{this.mode===this.MODE_EDIT&&(this.trigger("change"),this.addDataToUndoStack())},resetState:()=>{this.currentElement=null,this.currentState=null,this.resetTool(!0)},figureLeftClick:t=>{const e=t.figureId;e&&this.openElement(e)},removeFigure:t=>{this.onRemoveElement(t.figureId),this.trigger("change"),this.addDataToUndoStack()},createFigure:t=>{this.onCreateElement(t.figureId),this.addDataToUndoStack()}},isReadOnly:this.mode!==this.MODE_EDIT,scaleDisabled:!0,isEventSubProcess:this.isEventSubProcess};this.getThemeManager().getParam("isDark")&&this.applyDarkColorsToCanvasOptions(i),null!==this.offsetX&&(i.offsetX=this.offsetX),null!==this.offsetY&&(i.offsetY=this.offsetY),null!==this.scaleRatio&&(i.scaleRatio=this.scaleRatio);const s=this.$container.get(0);if(this.canvas=new window.EspoBpmn.Canvas(s,i,this.dataList),this.mode===this.MODE_EDIT)if(this.currentState)if("createFigure"===this.currentState)this.setStateCreateFigure(this.currentElement);else{this["setState"+Espo.Utils.upperCaseFirst(this.currentState)]()}else this.resetTool(!0)}openElement(t){const e=this.getElementData(t);if(!e)return;const i=this.getParentSubProcessData(t);let s=this.model.get("targetType");i&&(s=i.targetType||s);let a=this.isSubProcess;a||(a=!!i),a||(a=!!this.model.get("parentProcessId")),this.mode!==this.MODE_DETAIL?this.mode===this.MODE_EDIT&&this.createView("dialog","advanced:views/bpmn-flowchart/modals/element-edit",{elementData:e,targetType:s,flowchartDataList:this.dataList,flowchartModel:this.model,flowchartCreatedEntitiesData:this.createdEntitiesData,dataHelper:this.dataHelper,isInSubProcess:a},a=>{a.render(),this.listenTo(a,"apply",n=>{for(const t in n)e[t]=n[t];"defaultFlowId"in n&&this.updateDefaultFlow(t),"actionList"in n?this.updateCreatedEntitiesData(t,n.actionList,s):"taskUser"===e.type?this.updateCreatedEntitiesDataUserTask(t,n):"taskSendMessage"===e.type&&this.updateCreatedEntitiesDataSendMessageTask(t,n),i&&"eventSubProcess"===i.type&&0===(e.type||"").indexOf("eventStart")&&this.updateEventSubProcessStartData(i.id,n),this.trigger("change"),this.addDataToUndoStack(),a.remove(),this.reRender()}),this.listenToOnce(a,"remove",()=>{this.clearView("dialog")})}):this.createView("dialog","advanced:views/bpmn-flowchart/modals/element-detail",{elementData:e,targetType:s,flowchartDataList:this.dataList,flowchartModel:this.model,flowchartCreatedEntitiesData:this.createdEntitiesData,dataHelper:this.dataHelper,isInSubProcess:a,isInSubProcess2:!!i},t=>{t.render(),this.listenToOnce(t,"remove",()=>{this.clearView("dialog")})})}updateCreatedEntitiesDataUserTask(t,e){const i=t in this.createdEntitiesData?this.createdEntitiesData[t].numberId:this.getNextCreatedEntityNumberId("BpmnUserTask");this.createdEntitiesData[t]={elementId:t,actionId:null,entityType:"BpmnUserTask",numberId:i,text:e.text||null}}updateCreatedEntitiesDataSendMessageTask(t,e){if("Email"===e.messageType&&!e.doNotStore){const i=t in this.createdEntitiesData?this.createdEntitiesData[t].numberId:this.getNextCreatedEntityNumberId("Email");return void(this.createdEntitiesData[t]={elementId:t,actionId:null,entityType:"Email",numberId:i,text:e.text||null})}delete this.createdEntitiesData[t]}removeCreatedEntitiesDataUserTask(t){delete this.createdEntitiesData[t]}updateCreatedEntitiesData(t,e,i){const s=[];for(const i in this.createdEntitiesData){const a=this.createdEntitiesData[i];if(a.elementId===t){let t=!1;e.forEach(e=>{a.actionId===e.id&&(t=!0)}),t||s.push(i)}}s.forEach(t=>{delete this.createdEntitiesData[t]}),e.forEach(e=>{if(!~["createRelatedEntity","createEntity"].indexOf(e.type))return;const s=t+"_"+e.id;let a,n=null;if("createEntity"===e.type?a=e.entityType:"createRelatedEntity"===e.type&&(n=e.link,i=i||this.model.get("targetType"),a=this.getMetadata().get(["entityDefs",i,"links",e.link,"entity"])),!a)return;const o=s in this.createdEntitiesData?this.createdEntitiesData[s].numberId:this.getNextCreatedEntityNumberId(a);this.createdEntitiesData[s]={elementId:t,actionId:e.id,link:n,entityType:a,numberId:o}})}getNextCreatedEntityNumberId(t){let e=0;for(const i in this.createdEntitiesData){const s=this.createdEntitiesData[i];t===s.entityType&&"numberId"in s&&(e=s.numberId+1)}return e}updateDefaultFlow(t){const e=this.getElementData(t);this.getElementFlowIdList(t).forEach(t=>{const i=this.getElementData(t);i&&(i.isDefault=e.defaultFlowId===t)})}getElementFlowIdList(t){const e=[];return this.getAllDataList().forEach(i=>{if("flow"===i.type&&i.startId===t&&i.endId){if(!this.getElementData(i.endId))return;e.push(i.id)}}),e}getElementData(t){const e={};return this._findElementData(t,this.dataList,e),e.data||null}_findElementData(t,e,i){for(let s=0;s {{{field}}} ',backdrop:!0,events:{'click a[data-action="addField"]':function(t){this.trigger("add-field",$(t.currentTarget).data().name)}},setup:function(){this.headerText=this.translate("Add Condition","labels","Workflow");const t=this.scope=this.options.scope;this.wait(!0),this.getModelFactory().create("Workflow",e=>{e.targetEntityType=t,this.createView("field","advanced:views/workflow/fields/condition-fields",{selector:".field",model:e,mode:"edit",createdEntitiesData:this.options.createdEntitiesData,defs:{name:"conditionFields",params:{}}},t=>{this.listenTo(t,"change",()=>{const t=e.get("conditionFields")||[];t.length&&this.trigger("add-field",t[0])})}),this.wait(!1)})}})}),define("advanced:views/workflow/modals/add-action",["views/modal"],t=>class extends t{templateContent='\n \n \n \n
\n \n ',setup:function(){this.subModel=new e,this.subModel.setDefs({fields:{unit:{type:"enum",options:["m","h","d"],translation:"Global.options.durationUnits"},value:{type:"int",min:0}}}),this.syncModels(),this.listenTo(this.model,"change:duration",(t,e,i)=>{i.ui||this.syncModels()}),this.listenTo(this.subModel,"change",(t,e)=>{e.ui&&this.trigger("change")})},prepare:function(){const t=this.createView("unitField","views/fields/enum",{name:"unit",model:this.subModel,mode:this.mode,selector:'[data-name="unit"]',readOnly:"detail"===this.mode}),e=this.createView("valueField","views/fields/int",{name:"value",model:this.subModel,mode:this.mode,selector:'[data-name="value"]',readOnly:"detail"===this.mode});return Promise.all([t,e])},syncModels:function(){let t,e=this.model.attributes.duration||0;e%86400==0?(t="d",e=Math.floor(e/86400)):e%3600==0?(t="h",e=Math.floor(e/3600)):(t="m",e=Math.floor(e/60)),this.subModel.set({value:e,unit:t})},fetch:function(){let t=this.subModel.attributes.value;t||(t=0);const e=this.subModel.attributes.unit;return t*="d"===e?86400:"h"===e?3600:60,{[this.name]:t}}})}),define("advanced:views/workflow/conditions/varchar",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/base",defaultConditionData:{comparison:"equals",subjectType:"value"},comparisonList:["equals","notEquals","wasEqual","wasNotEqual","isEmpty","notEmpty","changed","notChanged","contains","notContains"],data:function(){return _.extend({},t.prototype.data.call(this))}})}),define("advanced:views/workflow/conditions/text",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/base",defaultConditionData:{comparison:"notEmpty"},comparisonList:["notEmpty","isEmpty","changed","notChanged","contains","notContains"],data:function(){return _.extend({},t.prototype.data.call(this))}})}),define("advanced:views/workflow/conditions/multi-enum",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/base",defaultConditionData:{comparison:"true"},comparisonList:["true","false","changed","notChanged"],data:function(){return _.extend({},t.prototype.data.call(this))}})}),define("advanced:views/workflow/conditions/link",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/base",defaultConditionData:{comparison:"notEmpty"},comparisonList:["notEmpty","isEmpty","equals","notEquals","changed","notChanged"],setupComparisonList:function(){if(t.prototype.setupComparisonList.call(this),"image"===this.fieldType||"file"===this.fieldType){const t=[];Espo.Utils.clone(this.comparisonList).forEach(e=>{~["equals","notEquals","wasEqual","wasNotEqual"].indexOf(e)||t.push(e)}),this.comparisonList=t}},data:function(){return _.extend({},t.prototype.data.call(this))},getSubjectInputViewName:function(t){return"advanced:views/workflow/condition-fields/subjects/link"}})}),define("advanced:views/workflow/conditions/link-parent",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/base",defaultConditionData:{comparison:"notEmpty"},comparisonList:["notEmpty","isEmpty","equals","notEquals","changed","notChanged"],data:function(){return _.extend({},t.prototype.data.call(this))},fetch:function(){return delete this.conditionData.fieldValueMap,delete this.conditionData.valueName,delete this.conditionData.valueType,t.prototype.fetch.call(this)},getSubjectInputViewName:function(t){return"advanced:views/workflow/condition-fields/subjects/link-parent"},handleSubjectType:function(e,i){i||this.clearView("subject"),"typeOf"!==e?t.prototype.handleSubjectType.call(this,e,i):this.createView("subject","advanced:views/workflow/condition-fields/subjects/link-parent-is-type-of",{selector:".subject",entityType:this.entityType,field:this.field,value:this.getSubjectValue(),conditionData:this.conditionData,readOnly:this.readOnly},t=>{t.render(()=>{i||this.fetch()})})},handleComparison:function(e,i){if(i||this.clearView("subjectType"),"equals"===e||"notEquals"===e)return this.$el.find(".subject").empty(),void this.createView("subjectType","advanced:views/workflow/condition-fields/subject-type-parent",{selector:".subject-type",value:this.conditionData.subjectType,readOnly:this.readOnly},t=>{t.render().then(()=>{i||this.fetch(),this.handleSubjectType(this.conditionData.subjectType,i)}),this.listenTo(t,"change",t=>{this.setSubjectType(t),this.handleSubjectType(t)})});t.prototype.handleComparison.call(this,e,i)}})}),define("advanced:views/workflow/conditions/enum",["advanced:views/workflow/conditions/base"],t=>class extends t{template="advanced:workflow/conditions/enum";defaultConditionData={comparison:"equals",subjectType:"value"};comparisonList=["equals","notEquals","anyOf","noneOf","wasEqual","wasNotEqual","isEmpty","notEmpty","changed","notChanged"];setupComparisonList(){super.setupComparisonList(),"enum"!==this.fieldType&&(this.comparisonList=this.comparisonList.filter(t=>!["anyOf","noneOf"].includes(t)))}getSubjectInputViewName(){return"enum"===this.fieldType&&["anyOf","noneOf"].includes(this.conditionData.comparison)?"advanced:views/workflow/condition-fields/subjects/enum-multiple":"advanced:views/workflow/condition-fields/subjects/enum-input"}}),define("advanced:views/workflow/conditions/decimal",["advanced:views/workflow/conditions/int"],function(t){return t.extend({template:"advanced:workflow/conditions/base",comparisonList:["equals","notEquals","greaterThan","lessThan","greaterThanOrEquals","lessThanOrEquals","wasEqual","wasNotEqual","isEmpty","notEmpty","changed","notChanged"],fetchSubject:function(){switch(delete this.conditionData.value,delete this.conditionData.field,this.conditionData.subjectType){case"field":this.fetchSubjectField();break;case"value":const t=this.getView("subject");t&&(this.conditionData.value=t.fetch().value)}},getSubjectInputViewName:function(){return"advanced:views/workflow/condition-fields/subjects/decimal"}})}),define("advanced:views/workflow/conditions/date",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/date",comparisonList:["on","before","after","today","beforeToday","afterToday","isEmpty","notEmpty","changed","notChanged"],defaultConditionData:{comparison:"on",subjectType:"today",shiftDays:0},afterRender:function(){t.prototype.afterRender.call(this),this.handleShiftDays(this.conditionData.shiftDays,!0)},handleComparison:function(e,i){switch(t.prototype.handleComparison.call(this,e,i),e){case"on":case"before":case"after":this.$el.find(".subject").empty(),this.createView("subjectType","advanced:views/workflow/condition-fields/subject-type-date",{selector:".subject-type",value:this.conditionData.subjectType,readOnly:this.readOnly},t=>{t.render().then(()=>{i||this.fetch(),this.handleSubjectType(this.conditionData.subjectType,i)}),this.listenTo(t,"change",t=>{this.setSubjectType(t),this.handleSubjectType(t)})}),this.createView("shiftDays","advanced:views/workflow/condition-fields/shift-days",{selector:".shift-days",entityType:this.entityType,field:this.field,value:this.conditionData.shiftDays||0,readOnly:this.readOnly},t=>{t.render(()=>{i||(this.fetch(),this.handleShiftDays(this.conditionData.subject))})});break;default:this.$el.find(".shift-days").empty()}},fetch:function(){return t.prototype.fetch.call(this),this.fetchShiftDays(),this.conditionData},fetchShiftDays:function(){const t=this.getView("shiftDays");if(!t)return;const e=t.fetch();this.conditionData.shiftDays=e.value},handleShiftDays:function(t,e){e||this.fetch()}})}),define("advanced:views/workflow/conditions/currency",["advanced:views/workflow/conditions/float"],function(t){return t.extend({template:"advanced:workflow/conditions/base",fetchSubject:function(){switch(delete this.conditionData.value,delete this.conditionData.field,this.conditionData.subjectType){case"field":this.fetchSubjectField();break;case"value":const t=this.getView("subject");t&&(this.conditionData.value=t.fetch().value)}},getSubjectInputViewName:function(){return"advanced:views/workflow/condition-fields/subjects/currency"}})}),define("advanced:views/workflow/conditions/bool",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/base",defaultConditionData:{comparison:"true"},comparisonList:["true","false","changed","notChanged"],data:function(){return _.extend({},t.prototype.data.call(this))}})}),define("advanced:views/workflow/conditions/attachment-multiple",["advanced:views/workflow/conditions/link-multiple"],function(t){return t.extend({defaultConditionData:{comparison:"notEmpty"},comparisonList:["notEmpty","isEmpty","changed","notChanged"]})}),define("advanced:views/workflow/conditions/array",["advanced:views/workflow/conditions/base"],function(t){return t.extend({template:"advanced:workflow/conditions/enum",defaultConditionData:{comparison:"notEmpty",subjectType:"value"},comparisonList:["notEmpty","isEmpty","has","notHas","changed","notChanged"],data:function(){return _.extend({},t.prototype.data.call(this))},getSubjectInputViewName:function(t){return(this.getMetadata().get(["entityDefs",this.options.actualEntityType,"fields",this.options.actualField,"options"])||[]).length?"advanced:views/workflow/condition-fields/subjects/enum-input":"advanced:views/workflow/condition-fields/subjects/text-input"}})}),define("advanced:views/workflow/condition-fields/subject-type-parent",["advanced:views/workflow/condition-fields/subject-type"],function(t){return t.extend({list:["value","field","typeOf"]})}),define("advanced:views/workflow/condition-fields/subject-type-date",["advanced:views/workflow/condition-fields/subject-type"],function(t){return t.extend({list:["today","field"]})}),define("advanced:views/workflow/condition-fields/shift-days",["view","model"],function(t,e){return t.extend({template:"advanced:workflow/condition-fields/shift-days",data:function(){return{shiftDaysOperator:this.shiftDaysOperator,value:this.value,readOnly:this.readOnly}},setup:function(){this.value=this.options.value,this.readOnly=this.options.readOnly;const t=this.value;this.value<0?(this.shiftDaysOperator="minus",this.value=-1*this.value):this.shiftDaysOperator="plus",this.readOnly||(this.formModel=new e,this.formModel.name="Dummy",this.formModel.set({operator:t<0?"minus":"plus",value:t<0?-1*t:t}),this.createView("operatorField","views/fields/enum",{name:"operator",selector:'[data-field="operator"]',model:this.formModel,mode:"edit",params:{options:["plus","minus"]},translatedOptions:{plus:"+",minus:"-"}}),this.createView("valueField","views/fields/int",{name:"value",selector:'[data-field="value"]',model:this.formModel,mode:"edit",min:0}))},fetch:function(){let t=this.formModel.attributes.value;return"minus"===this.formModel.attributes.operator&&(t*=-1),{value:t,unit:"days"}},afterRender:function(){this.$el.find(".selectize-control").addClass("input-sm").addClass("radius-left"),this.$el.find("input.main-element").addClass("input-sm"),this.$el.find(".input-group-addon").addClass("input-sm").css({userSelect:"none",overflow:"hidden",textOverflow:"ellipsis"})}})}),define("advanced:views/workflow/condition-fields/subjects/text-input",["view"],function(t){return t.extend({template:"advanced:workflow/condition-fields/subjects/text-input",data:function(){return{value:this.options.value,readOnly:this.options.readOnly}}})}),define("advanced:views/workflow/condition-fields/subjects/link",["view","advanced:workflow-helper"],(t,e)=>class extends t{templateContent='\n {{{valueField}}} \n {{{unitField}}} \n {{{field}}} \n ';data(){return{field:this.options.field,value:this.options.value,entityType:this.options.entityType,readOnly:this.options.readOnly}}setup(){this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{},this.wait(!0);const t=new e(this.getMetadata()),i=t.getComplexFieldEntityType(this.field,this.entityType);this.realField=t.getComplexFieldFieldPart(this.field),this.idName=this.realField+"Id",this.nameName=this.realField+"Name",this.getModelFactory().create(i,t=>{t.set(this.idName,this.conditionData.value||null),t.set(this.nameName,this.conditionData.valueName||null),this.createView("field","views/fields/link",{selector:".field-container",mode:"edit",model:t,readOnly:this.options.readOnly,readOnlyDisabled:!this.options.readOnly,inlineEditDisabled:this.options.readOnly,name:this.realField}).then(t=>{!this.options.readOnly&&t.readOnly&&(t.readOnlyLocked=!1,t.readOnly=!1,t.setMode("edit"),t.reRender()),this.wait(!1)})})}afterRender(){this.$el.find("input").addClass("input-sm"),this.$el.find(".btn").addClass("btn-sm")}fetch(){const t=this.getView("field").fetch();return{value:t[this.idName],valueName:t[this.nameName]}}}),define("advanced:views/workflow/condition-fields/subjects/link-parent",["view","advanced:workflow-helper"],(t,e)=>class extends t{templateContent='{{{field}}} ';data(){return{field:this.options.field,value:this.options.value,entityType:this.options.entityType,readOnly:this.options.readOnly}}setup(){this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const t=new e(this.getMetadata()),i=t.getComplexFieldEntityType(this.field,this.entityType),s=t.getComplexFieldFieldPart(this.field);this.realField=s,this.idName=this.realField+"Id",this.nameName=this.realField+"Name",this.typeName=this.realField+"Type",this.wait(!0),this.getModelFactory().create(i,t=>{t.set(this.idName,this.conditionData.value||null),t.set(this.nameName,this.conditionData.valueName||null),t.set(this.typeName,this.conditionData.valueType||null);let e=this.getMetadata().get(["entityDefs",i,"fields",s,"entityList"])||[];e.length||(e=Object.keys(this.getMetadata().get(["scopes"])).filter(t=>!!this.getMetadata().get(["scopes",t,"object"])),e.push("CampaignTrackingUrl"),e=e.sort((t,e)=>this.translate(t,"scopeNames").localeCompare(this.translate(e,"scopeNames")))),this.createView("field","views/fields/link-parent",{selector:" .field-container",mode:"edit",model:t,readOnly:this.options.readOnly,readOnlyDisabled:!this.options.readOnly,inlineEditDisabled:this.options.readOnly,name:this.realField,foreignScopeList:e}).then(t=>{!this.options.readOnly&&t.readOnly&&(t.readOnlyLocked=!1,t.readOnly=!1,t.setMode("edit"),t.reRender()),this.wait(!1)})})}afterRender(){this.$el.find("input.form-control").addClass("input-sm"),this.$el.find("select").addClass("input-sm"),this.$el.find(".btn").addClass("btn-sm"),this.$el.find(".selectize-control").addClass("input-sm")}fetch(){const t=this.getView("field").fetch(),e={};return e[this.idName]=t[this.idName],e[this.typeName]=t[this.typeName],{value:t[this.idName],valueName:t[this.nameName],valueType:t[this.typeName],fieldValueMap:e}}}),define("advanced:views/workflow/condition-fields/subjects/link-parent-is-type-of",["view","advanced:workflow-helper"],function(t,e){return t.extend({templateContent:'\n {{{field}}} \n ',data:function(){return{list:this.getMetadata().get(`entityDefs.${this.options.entityType}.fields.${this.options.field}.options`)||[],field:this.options.field,value:this.options.value,entityType:this.options.entityType,readOnly:this.options.readOnly}},setup:function(){t.prototype.setup.call(this),this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const i=new e(this.getMetadata()),s=i.getComplexFieldEntityType(this.field,this.entityType),a=i.getComplexFieldFieldPart(this.field);this.realField=a,this.typeName=this.realField+"Type";let n=this.getMetadata().get(["entityDefs",s,"fields",a,"entityList"])||[];this.wait(!0),this.getModelFactory().create(s,t=>{t.set(this.typeName,this.conditionData.valueType),n.length||(n=Object.keys(this.getMetadata().get(["scopes"])).filter(t=>!!this.getMetadata().get(["scopes",t,"object"])),n.push("CampaignTrackingUrl"),n=n.sort((t,e)=>this.translate(t,"scopeNames").localeCompare(this.translate(e,"scopeNames")))),this.createView("field","views/fields/enum",{selector:".field-container",mode:"edit",model:t,readOnly:this.options.readOnly,readOnlyDisabled:!this.options.readOnly,inlineEditDisabled:this.options.readOnly,defs:{name:this.typeName},params:{options:n,translation:"Global.scopeNames"}},t=>{!this.options.readOnly&&t.readOnly&&(t.readOnlyLocked=!1,t.readOnly=!1,t.setMode("edit"),t.reRender()),this.wait(!1)})})},afterRender:function(){t.prototype.afterRender.call(this),this.$el.find("select").addClass("input-sm"),this.$el.find(".selectize-control").addClass("input-sm")},fetch:function(){const t=this.getView("field").fetch(),e={};return e[this.typeName]=t[this.typeName],{valueId:null,valueName:null,valueType:t[this.typeName],fieldValueMap:e}}})}),define("advanced:views/workflow/condition-fields/subjects/int",["view","model"],function(t,e){return t.extend({templateContent:'{{{valueField}}}',setup:function(){this.readOnly=this.options.readOnly,this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const t=this.formModel=new e;t.name="Dummy",t.set({value:this.conditionData.value}),this.createView("valueField","views/fields/int",{selector:'[data-field="value"]',mode:this.readOnly?"detail":"edit",model:t,name:"value"})},afterRender:function(){this.$el.find("input").addClass("input-sm")},fetch:function(){return{value:this.formModel.attributes.value}}})}),define("advanced:views/workflow/condition-fields/subjects/float",["view","model"],function(t,e){return t.extend({templateContent:'{{{valueField}}}',setup:function(){this.readOnly=this.options.readOnly,this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const t=this.formModel=new e;t.name="Dummy",t.set({value:this.conditionData.value}),this.createView("valueField","views/fields/float",{selector:'[data-field="value"]',mode:this.readOnly?"detail":"edit",model:t,name:"value"})},afterRender:function(){this.$el.find("input").addClass("input-sm")},fetch:function(){return{value:this.formModel.attributes.value}}})}),define("advanced:views/workflow/condition-fields/subjects/field",["view","advanced:workflow-helper","model"],function(t,e,i){return t.extend({template:"advanced:workflow/condition-fields/subjects/field",data:function(){return{value:this.options.value,entityType:this.options.entityType,listHtml:this.listHtml,readOnly:this.readOnly}},setup:function(){this.readOnly=this.options.readOnly,this.fieldType=this.options.fieldType,this.field=this.options.field;const t=this.entityType=this.options.entityType;let e=this.value=this.options.value;if(this.readOnly){if(~e.indexOf(".")){const i=e.split("."),s=this.getMetadata().get(`entityDefs.${t}.links.${i[0]}.entity`)||t;this.listHtml=this.translate(i[0],"links",t)+" . "+this.translate(i[1],"fields",s)}else this.listHtml=this.translate(e,"fields",t);return}const s=this.formModel=new i;s.name="Dummy";const a=this.getFieldOptions();!e&&a.length&&(e=a[0][0]),s.set({value:e}),this.createView("valueField","views/fields/enum",{selector:'[data-field="value"]',model:s,name:"value",mode:"edit",params:{options:a.map(t=>t[0])},translatedOptions:Object.fromEntries(a)})},fetchValue:function(){return this.formModel.attributes.value},getFieldOptions:function(){const t=[],i=this.fieldType,s=this.entityType,a=this.field,n=this.getMetadata().get(`entityDefs.Workflow.fieldTypeComparison.${i}`)||[],o=[],l=this.getMetadata().get(`entityDefs.${s}.fields`)||{},r=Object.keys(l);r.sort((t,e)=>this.translate(t,"fields",s).localeCompare(this.translate(e,"fields",s))),n.includes("id")&&"linkParent"===i&&o.unshift("id");let d=null;const h=new e(this.getMetadata());"link"!==i&&"linkMultiple"!==i||(d=h.getComplexFieldForeignEntityType(a,s)),r.forEach(t=>{if(!l[t].utility&&(l[t].type===i||~n.indexOf(l[t].type))&&t!==a){if("link"===i||"linkMultiple"===i){if(this.getMetadata().get(["entityDefs",s,"links",t,"entity"])!==d)return}o.push(t)}}),o.forEach(e=>{const i=this.translate(e,"fields",s);t.push([e,i])});const c={},p=this.getMetadata().get(`entityDefs.${s}.links`)||{},u=Object.keys(p);u.sort((t,e)=>this.translate(t,"links",s).localeCompare(this.translate(e,"links",s))),u.forEach(t=>{const e=[];if("belongsTo"!==p[t].type)return;const s=p[t].entity;if(!s)return;const o=this.getMetadata().get(`entityDefs.${s}.fields`)||{},l=Object.keys(o);l.sort((t,e)=>this.translate(t,"fields",s).localeCompare(this.translate(e,"fields",s))),l.forEach(l=>{if(a!==`${t}.${l}`&&!o[l].utility&&(o[l].type===i||~n.indexOf(o[l].type))){if("link"===i||"linkMultiple"===i){if(this.getMetadata().get(["entityDefs",s,"links",l,"entity"])!==d)return}e.push(l)}}),c[t]=e});for(const e in c)c[e].forEach(i=>{const a=this.translate(e,"links",s)+" . "+this.translate(i,"fields",p[e].entity);t.push([`${e}.${i}`,a])});return t},afterRender:function(){this.readOnly||this.$el.find(".selectize-control").addClass("input-sm")}})}),define("advanced:views/workflow/condition-fields/subjects/enum-multiple",["view","advanced:workflow-helper","model"],function(t,e,i){return class extends t{templateContent='\n {{#if readOnly}}\n \n {{/if}}\n \n {{/if}}\n ';data(){return{readOnly:this.options.readOnly}}setup(){this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const t=new e(this.getMetadata()),s=t.getComplexFieldEntityType(this.field,this.entityType),a=t.getComplexFieldFieldPart(this.field),n=this.getOptionItems(s,a);this.formModel=new i,this.formModel.set("field",this.conditionData.value);const o=n.reduce((t,e)=>(t[e[0]]=e[1],t),{}),l=n.reduce((t,e)=>(t[e[0]]=e[2],t),{});this.wait(!0),this.createView("field","views/fields/multi-enum",{name:"field",selector:".field-container",mode:"edit",model:this.formModel,readOnly:this.options.readOnly,params:{options:n.map(t=>t[0]),style:l},translatedOptions:o}).then(t=>{!this.options.readOnly&&t.readOnly&&(t.readOnlyLocked=!1,t.readOnly=!1,t.setMode("edit"),t.reRender()),this.wait(!1)})}getOptionItems(t,e){let i=this.getMetadata().get(`entityDefs.${t}.fields.${e}`)||{};i.optionsReference&&i.optionsReference.includes(".")&&(t=i.optionsReference.split(".")[0]??null,e=i.optionsReference.split(".")[1]??null,i=this.getMetadata().get(`entityDefs.${t}.fields.${e}`)||{});const s=i.style||{};return(i.options||[]).map(i=>[i,this.getLanguage().translateOption(i,e,t),s[i]||null])}afterRender(){this.$el.find(".selectize-control").addClass("input-sm").addClass("form-control")}fetch(){return{value:Espo.Utils.clone(this.formModel.attributes.field||[])}}}}),define("advanced:views/workflow/condition-fields/subjects/enum-input",["view","advanced:workflow-helper"],function(t,e){return t.extend({template:"advanced:workflow/condition-fields/subjects/enum-input",data:function(){return{readOnly:this.options.readOnly}},setup:function(){t.prototype.setup.call(this),this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{},this.wait(!0);const i=new e(this.getMetadata()),s=i.getComplexFieldEntityType(this.field,this.entityType),a=i.getComplexFieldFieldPart(this.field);this.realField=a,this.getModelFactory().create(s,t=>{t.set(this.realField,this.conditionData.value);const e=this.getMetadata().get(`entityDefs.${s}.fields.${a}.view`)||"views/fields/enum";this.createView("field",e,{selector:".field-container",mode:"edit",model:t,readOnly:this.options.readOnly,defs:{name:this.realField}},t=>{!this.options.readOnly&&t.readOnly&&(t.readOnlyLocked=!1,t.readOnly=!1,t.setMode("edit"),t.reRender()),this.wait(!1)})})},afterRender:function(){t.prototype.afterRender.call(this),this.$el.find("select").addClass("input-sm"),this.$el.find(".selectize-control").addClass("input-sm")},fetch:function(){return{value:this.getView("field").fetch()[this.realField]}}})}),define("modules/advanced/views/workflow/condition-fields/subjects/decimal",["exports","view","model"],function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,e=s(e),i=s(i);class a extends e.default{templateContent='{{{valueField}}}';setup(){this.readOnly=this.options.readOnly,this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const t=this.formModel=new i.default;t.name="Dummy",t.set({value:this.conditionData.value}),this.createView("valueField","views/fields/decimal",{selector:'[data-field="value"]',mode:this.readOnly?"detail":"edit",model:t,name:"value"})}afterRender(){var t;const e=null===(t=this.element)||void 0===t?void 0:t.querySelector("input");e instanceof HTMLInputElement&&e.classList.add("input-sm")}fetch(){return{value:this.formModel.attributes.value}}}t.default=a}),define("advanced:views/workflow/condition-fields/subjects/currency",["view","model"],function(t,e){return t.extend({templateContent:'{{{valueField}}}',setup:function(){this.readOnly=this.options.readOnly,this.field=this.options.field,this.entityType=this.options.entityType,this.conditionData=this.options.conditionData||{};const t=this.formModel=new e;t.name="Dummy",t.set({value:this.conditionData.value,valueCurrency:this.getConfig().get("defaultCurrency")}),this.createView("valueField","views/fields/currency",{selector:'[data-field="value"]',mode:this.readOnly?"detail":"edit",model:t,name:"value",params:{onlyDefaultCurrency:!0}})},afterRender:function(){this.$el.find("input").addClass("input-sm"),this.$el.find(".input-group-addon").addClass("input-sm")},fetch:function(){return{value:this.formModel.attributes.value}}})}),define("advanced:views/workflow/actions/update-related-entity",["advanced:views/workflow/actions/base"],function(t){return t.extend({template:"advanced:workflow/actions/update-related-entity",type:"updateRelatedEntity",defaultActionData:{link:!1,fieldList:[],fields:{}},data:function(){var e=t.prototype.data.call(this);return this.actionData.link&&(e.linkTranslated=this.translate(this.actionData.link,"links",this.entityType)),this.actionData.parentEntityType&&(e.parentEntityTypeTranslated=this.translate(this.actionData.parentEntityType,"scopeNames")),e},additionalSetup:function(){if(t.prototype.additionalSetup.call(this),this.actionData.link){var e=this.getMetadata().get("entityDefs."+this.entityType+".links."+this.actionData.link);this.linkedEntityName=e.entity||this.entityType,this.displayedLinkedEntityName=null,"belongsToParent"===e.type&&(this.linkedEntityName=this.actionData.parentEntityType||this.linkedEntityName,this.displayedLinkedEntityName=this.translate(this.actionData.link,"links",this.entityType)+' '+this.translate(this.actionData.parentEntityType,"scopeNames"))}}})}),define("advanced:views/workflow/actions/update-process-entity",["advanced:views/workflow/actions/base"],function(t){return t.extend({type:"updateProcessEntity",linkedEntityName:"BpmnProcess",defaultActionData:{fieldList:[],fields:{}},data:function(){const e=t.prototype.data.call(this);return e.noEntityName=!0,e},additionalSetup:function(){t.prototype.additionalSetup.call(this),this.displayedLinkedEntityName=this.translate("BpmnProcess","scopeNames")}})}),define("advanced:views/workflow/actions/update-entity",["advanced:views/workflow/actions/base"],function(t){return t.extend({type:"updateEntity",defaultActionData:{fieldList:[],fields:{}},additionalSetup:function(){t.prototype.additionalSetup.call(this),this.displayedLinkedEntityName=this.translate(this.entityType,"scopeNames")}})}),define("advanced:views/workflow/actions/update-created-entity",["advanced:views/workflow/actions/base"],function(t){return t.extend({template:"advanced:workflow/actions/update-created-entity",type:"updateCreatedEntity",defaultActionData:{target:null,fieldList:[],fields:{}},data:function(){const e=t.prototype.data.call(this);if(this.actionData.target){const t=this.actionData.target.substr(8);if(this.options.flowchartCreatedEntitiesData[t]){const i=this.options.flowchartCreatedEntitiesData[t].link,s=this.options.flowchartCreatedEntitiesData[t].entityType,a=this.options.flowchartCreatedEntitiesData[t].numberId,n=this.options.flowchartCreatedEntitiesData[t].text;i&&(e.linkTranslated=this.translate(i,"links",this.entityType)),e.entityTypeTranslated=this.translate(s,"scopeNames"),e.numberId=a,e.text=n}}return e},additionalSetup:function(){if(t.prototype.additionalSetup.call(this),this.actionData.target){let t=this.actionData.target;0===t.indexOf("created:")&&(t=t.substr(8)),this.options.flowchartCreatedEntitiesData[t]&&(this.linkedEntityName=this.options.flowchartCreatedEntitiesData[t].entityType)}}})}),define("advanced:views/workflow/actions/unrelate-from-entity",["advanced:views/workflow/actions/relate-with-entity"],function(t){return t.extend({type:"unrelateFromEntity"})}),define("advanced:views/workflow/actions/trigger-workflow",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({template:"advanced:workflow/actions/trigger-workflow",type:"triggerWorkflow",defaultActionData:{execution:{type:"immediately",field:!1,shiftDays:0,shiftUnit:"days"}},data:function(){var e=t.prototype.data.call(this);return e.targetTranslated=this.getTargetTranslated(),e},setup:function(){t.prototype.setup.call(this),this.createView("executionTime","advanced:views/workflow/action-fields/execution-time",{selector:" .execution-time-container",executionData:this.actionData.execution||{},entityType:this.entityType,readOnly:!0});var i=new e;i.name="Workflow",i.set({workflowId:this.actionData.workflowId,workflowName:this.actionData.workflowName}),this.createView("workflow","views/fields/link",{selector:" .field-workflow",model:i,mode:"edit",foreignScope:"Workflow",defs:{name:"workflow",params:{required:!0}},readOnly:!0})},render:function(e){this.getView("executionTime").reRender();var i=this.getView("workflow");i.model.set({workflowId:this.actionData.workflowId,workflowName:this.actionData.workflowName}),i.reRender(),t.prototype.render.call(this,e)},getTargetTranslated:function(){return this.translateTargetItem(this.actionData.target)}})}),define("advanced:views/workflow/actions/start-bpmn-process",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({template:"advanced:workflow/actions/start-bpmn-process",type:"startBpmnProcess",defaultActionData:{},data:function(){const e=t.prototype.data.call(this);return e.targetTranslated=this.getTargetTranslated(),e},setup:function(){t.prototype.setup.call(this);const i=this.model2=new e;i.name="BpmnFlowchart",i.set({flowchartId:this.actionData.flowchartId,flowchartName:this.actionData.flowchartName,elementId:this.actionData.elementId,target:this.actionData.target,startElementIdList:this.actionData.startElementIdList,startElementNames:this.actionData.startElementNames}),this.createView("flowchart","views/fields/link",{selector:'.field[data-name="flowchart"]',model:i,foreignScope:"BpmnFlowchart",name:"flowchart",mode:"detail",readOnly:!0}),this.createView("elementId","advanced:views/workflow/fields/process-start-element-id",{selector:'.field[data-name="elementId"]',model:i,readOnly:!0,mode:"detail",name:"elementId",options:this.actionData.startElementIdList||[],translatedOptions:this.actionData.startElementNames||{}})},afterEdit:function(){this.model2.set({flowchartId:this.actionData.flowchartId,flowchartName:this.actionData.flowchartName,elementId:this.actionData.elementId,target:this.actionData.target,startElementIdList:this.actionData.startElementIdList,startElementNames:this.actionData.startElementNames})},getTargetTranslated:function(){return this.translateTargetItem(this.actionData.target)}})}),define("advanced:views/workflow/actions/send-request",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({type:"sendRequest",template:"advanced:workflow/actions/send-request",defaultActionData:{requestType:"POST",contentType:null,content:"{}",requestUrl:null,headers:null,contentVariable:null},setModel:function(){this.model.set({requestType:this.actionData.requestType||null,contentType:this.actionData.contentType||null,content:this.actionData.content||null,requestUrl:this.actionData.requestUrl||null,headers:this.actionData.headers||null,contentVariable:this.actionData.contentVariable||null})},setup:function(){t.prototype.setup.call(this);const i=this.model=new e;i.name="Workflow",this.setModel(),this.on("change",()=>{this.setModel()}),this.createView("requestType","views/fields/enum",{mode:"detail",model:i,selector:'.field[data-name="requestType"]',defs:{name:"requestType",params:{options:["POST","PUT","PATCH","DELETE","GET"]}},readOnly:!0}),this.createView("contentType","views/fields/enum",{mode:"detail",model:i,selector:'.field[data-name="contentType"]',defs:{name:"contentType",params:{options:["application/json","application/x-www-form-urlencoded"]}},readOnly:!0}),this.createView("requestUrl","views/fields/varchar",{mode:"detail",model:i,selector:'.field[data-name="requestUrl"]',defs:{name:"requestUrl",params:{required:!0}},readOnly:!0}),this.createView("content","views/fields/formula",{mode:"detail",model:i,selector:'.field[data-name="content"]',defs:{name:"content"},insertDisabled:!0,height:30,readOnly:!0,smallFont:!0}),this.createView("headers","views/fields/array",{mode:"detail",model:i,selector:'.field[data-name="headers"]',defs:{name:"headers",params:{displayAsList:!0}},readOnly:!0}),this.createView("contentVariable","views/fields/varchar",{mode:"detail",model:i,selector:' .field[data-name="contentVariable"]',defs:{name:"contentVariable",params:{}},readOnly:!0})}})}),define("advanced:views/workflow/actions/send-email",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({template:"advanced:workflow/actions/send-email",type:"sendEmail",defaultActionData:{execution:{type:"immediately",field:!1,shiftDays:0,shiftUnit:"days"},from:"system",to:"",optOutLink:!1,attachmentsVariable:null},data:function(){const e=t.prototype.data.call(this);return e.fromLabel=this.translateEmailOption(this.actionData.from),e.toLabel=this.translateEmailOption(this.actionData.to),e.replyToLabel=this.translateEmailOption(this.actionData.replyTo),e.ccLabel=this.translateEmailOption(this.actionData.cc),e},setModel:function(){this.model.set({emailTemplateId:this.actionData.emailTemplateId,emailTemplateName:this.actionData.emailTemplateName,doNotStore:this.actionData.doNotStore||!1,optOutLink:this.actionData.optOutLink||!1,attachmentsVariable:this.actionData.attachmentsVariable||null})},setup:function(){t.prototype.setup.call(this),this.createView("executionTime","advanced:views/workflow/action-fields/execution-time",{selector:".execution-time-container",executionData:this.actionData.execution||{},entityType:this.entityType,readOnly:!0});const i=this.model=new e;i.name="Workflow",this.setModel(),this.on("change",()=>{this.setModel()}),this.createView("emailTemplate","views/fields/link",{selector:".field-emailTemplate",model:i,mode:"edit",foreignScope:"EmailTemplate",defs:{name:"emailTemplate",params:{required:!0}},readOnly:!0}),this.createView("toSpecifiedTeams","views/fields/link-multiple",{selector:".toSpecifiedTeams-container .field-toSpecifiedTeams",model:i,mode:"edit",foreignScope:"Team",defs:{name:"toSpecifiedTeams"},readOnly:!0}),this.createView("toSpecifiedUsers","views/fields/link-multiple",{selector:".toSpecifiedUsers-container .field-toSpecifiedUsers",model:i,mode:"edit",foreignScope:"User",defs:{name:"toSpecifiedUsers"},readOnly:!0}),this.createView("toSpecifiedContacts","views/fields/link-multiple",{selector:".toSpecifiedContacts-container .field-toSpecifiedContacts",model:i,mode:"edit",foreignScope:"Contact",defs:{name:"toSpecifiedContacts"},readOnly:!0}),this.createView("doNotStore","views/fields/bool",{selector:".field-doNotStore",model:i,mode:"edit",defs:{name:"doNotStore"},readOnly:!0}),this.createView("optOutLink","views/fields/bool",{selector:'.field[data-name="optOutLink"]',model:i,mode:"edit",defs:{name:"optOutLink"},readOnly:!0}),this.createView("attachmentsVariable","views/fields/varchar",{selector:'.field[data-name="attachmentsVariable"]',model:i,mode:"edit",name:"attachmentsVariable",readOnly:!0})},render:function(e){this.getView("executionTime").reRender();const i=this.getView("emailTemplate");if(i.model.set({emailTemplateId:this.actionData.emailTemplateId,emailTemplateName:this.actionData.emailTemplateName}),i.reRender(),this.actionData.toSpecifiedEntityIds){const t="to"+this.actionData.to.charAt(0).toUpperCase()+this.actionData.to.slice(1),e=this.getView(t);if(e){const i={};i[t+"Ids"]=this.actionData.toSpecifiedEntityIds,i[t+"Names"]=this.actionData.toSpecifiedEntityNames,e.model.set(i),e.reRender()}}const s=this.getView("doNotStore");s.model.set({doNotStore:this.actionData.doNotStore}),s.reRender(),t.prototype.render.call(this,e)},renderFields:function(){},translateEmailOption:function(t){if(this.getMetadata().get(`entityDefs.${this.entityType}.links.${t}`))return this.translate(t,"links",this.entityType);if(t&&0===t.indexOf("link:")){let e=t.substring(5);if(~e.indexOf(".")){const t=e.split(".");e=t[0];const i=t[1];if("followers"===i)return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)+" . "+this.translate("Followers");const s=this.getMetadata().get(["entityDefs",this.entityType,"links",e,"entity"]);return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)+" . "+this.translate(i,"links",s)}return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)}let e=this.translate(t,"emailAddressOptions","Workflow");return"targetEntity"===t&&(e+=" · "+this.translate(this.entityType,"scopeNames")),e}})}),define("advanced:views/workflow/actions/run-service",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({type:"runService",template:"advanced:workflow/actions/run-service",data:function(){return _.extend({methodName:this.translatedOption||this.getLabel(this.actionData.methodName,"serviceActions"),additionalParameters:this.actionData.additionalParameters,targetTranslated:this.getTargetTranslated()},t.prototype.data.call(this))},setup:function(){t.prototype.setup.call(this);var i=this.actionData.methodName||null,s=new e;s.name="Workflow",s.set({methodName:i,additionalParameters:this.actionData.additionalParameters}),this.translatedOption=this.getLabel(i,"serviceActions")},getTargetTranslated:function(){var t=this.actionData.target;if("targetEntity"===t||!t)return this.translate("Target Entity","labels","Workflow");if(0===t.indexOf("link:")){var e=t.substr(5);return this.translate("Related","labels","Workflow")+" · "+this.getLanguage().translate(e,"links",this.entityType)}return 0===t.indexOf("created:")?this.translateCreatedEntityAlias(t):void 0},getLabel:function(t,e,i){if(t){var s=this.actionData.targetEntityType+t.charAt(0).toUpperCase()+t.slice(1);return this.getLanguage().has(s,e,"Workflow")?this.translate(s,e,"Workflow"):null==i||this.getLanguage().has(t,e,"Workflow")?this.translate(t,e,"Workflow"):i}return""}})}),define("advanced:views/workflow/actions/make-followed",["advanced:views/workflow/actions/base","model","advanced:views/workflow/action-modals/make-followed"],function(t,e,i){return t.extend({type:"makeFollowed",template:"advanced:workflow/actions/make-followed",setModel:function(){this.model.set({usersToMakeToFollowIds:this.actionData.userIdList,usersToMakeToFollowNames:this.actionData.userNames,whatToFollow:this.actionData.whatToFollow,recipient:this.actionData.recipient||"specifiedUsers",specifiedTeamsIds:this.actionData.specifiedTeamsIds,specifiedTeamsNames:this.actionData.specifiedTeamsNames})},setup:function(){t.prototype.setup.call(this),i.prototype.setupRecipientOptions.call(this);const s=this.model=new e;s.name="Workflow",this.setModel(),this.on("change",()=>{this.setModel()}),this.createView("recipient","views/fields/enum",{mode:"edit",model:s,selector:' .field[data-name="recipient"]',defs:{name:"recipient",params:{options:this.recipientOptionList,required:!0,translatedOptions:this.recipientTranslatedOptions}},readOnly:!0}),this.createView("whatToFollow","views/fields/enum",{mode:"edit",model:s,selector:' .field[data-name="whatToFollow"]',defs:{name:"whatToFollow",params:{options:this.targetOptionList,required:!0,translatedOptions:this.targetTranslatedOptions}},readOnly:!0}),this.createView("usersToMakeToFollow","views/fields/link-multiple",{mode:"detail",model:s,selector:' .field[data-name="usersToMakeToFollow"]',foreignScope:"User",defs:{name:"usersToMakeToFollow"},readOnly:!0}),this.createView("specifiedTeams","views/fields/link-multiple",{selector:' .field[data-name="specifiedTeams"]',model:s,mode:"edit",foreignScope:"Team",defs:{name:"specifiedTeams"},readOnly:!0})},data:function(){var e=t.prototype.data.call(this);return e.targetTranslated=this.getTargetTranslated(),e},afterRender:function(){this.handleRecipient()},handleRecipient:function(){this.actionData.recipient&&"specifiedUsers"!==this.actionData.recipient?this.$el.find('.cell[data-name="usersToMakeToFollow"]').addClass("hidden"):this.$el.find('.cell[data-name="usersToMakeToFollow"]').removeClass("hidden"),"specifiedTeams"===this.actionData.recipient?this.$el.find('.cell[data-name="specifiedTeams"]').removeClass("hidden"):this.$el.find('.cell[data-name="specifiedTeams"]').addClass("hidden")},getTargetTranslated:function(){const t=this.actionData.whatToFollow;if(!t)return"";if("targetEntity"===t)return this.translate("Target Entity","labels","Workflow");if(0===t.indexOf("created:"))return this.translateCreatedEntityAlias(t);let e=t;return 0===e.indexOf("link:")&&(e=e.substr(5)),this.translate("Related","labels","Workflow")+" · "+this.getLanguage().translate(e,"links",this.entityType)},translateRecipientOption:function(t){if(t&&0===t.indexOf("link:")){let e=t.substring(5);if(~e.indexOf(".")){const t=e.split(".");e=t[0];const i=t[1];if("followers"===i)return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)+" . "+this.translate("Followers");const s=this.getMetadata().get(["entityDefs",this.entityType,"links",e,"entity"]);return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)+" . "+this.translate(i,"links",s)}return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)}let e=this.translate(t,"emailAddressOptions","Workflow");return"targetEntity"===t&&(e+=" · "+this.translate(this.entityType,"scopeNames")),e}})}),define("advanced:views/workflow/actions/execute-formula",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({type:"executeFormula",template:"advanced:workflow/actions/execute-formula",defaultActionData:{formula:null},afterRender:function(){this.$formulaField=this.$el.find('.field[data-name="formula"]'),this.renderFormula()}})}),define("advanced:views/workflow/actions/create-related-entity",["advanced:views/workflow/actions/base"],function(t){return t.extend({type:"createRelatedEntity",defaultActionData:{link:!1,fieldList:[],fields:{}},data:function(){const e=t.prototype.data.call(this);return this.actionData.link&&(e.linkTranslated=this.translate(this.actionData.link,"links",this.entityType)),e.numberId=this.numberId,e.aliasId=this.aliasId,e},setup:function(){if(t.prototype.setup.call(this),this.numberId=null,this.options.flowchartElementId&&this.options.flowchartCreatedEntitiesData){const t=this.options.flowchartElementId+"_"+this.actionData.id;t in this.options.flowchartCreatedEntitiesData&&(this.numberId=this.options.flowchartCreatedEntitiesData[t].numberId),this.aliasId=t}},additionalSetup:function(){t.prototype.additionalSetup.call(this),this.actionData.link&&(this.linkedEntityName=this.getMetadata().get(`entityDefs.${this.entityType}.links.${this.actionData.link}.entity`),this.displayedLinkedEntityName=this.translate(this.linkedEntityName,"scopeNames"))}})}),define("advanced:views/workflow/actions/create-notification",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({template:"advanced:workflow/actions/create-notification",type:"createNotification",defaultActionData:{recipient:"specifiedUsers",userIdList:[],userNames:{}},data:function(){const e=t.prototype.data.call(this);return e.recipientLabel=this.translateRecipientOption(this.actionData.recipient),e.messageTemplate=this.actionData.messageTemplate,e},afterRender:function(){t.prototype.afterRender.call(this);const i=new e;i.name="Workflow",i.set({recipient:this.actionData.recipient,messageTemplate:this.actionData.messageTemplate,usersIds:this.actionData.userIdList,usersNames:this.actionData.userNames,specifiedTeamsIds:this.actionData.specifiedTeamsIds,specifiedTeamsNames:this.actionData.specifiedTeamsNames}),"specifiedUsers"===this.actionData.recipient&&this.createView("users","views/fields/link-multiple",{mode:"detail",model:i,selector:".field-recipient",foreignScope:"User",defs:{name:"users"},readOnly:!0},t=>{t.render()}),"specifiedTeams"===this.actionData.recipient&&this.createView("specifiedTeams","views/fields/link-multiple",{mode:"detail",model:i,selector:".field-recipient",foreignScope:"Team",defs:{name:"specifiedTeams"},readOnly:!0},t=>{t.render()})},translateRecipientOption:function(t){if(this.getMetadata().get(`entityDefs.${this.entityType}.links.${t}`))return this.translate(t,"links",this.entityType);if(t&&0===t.indexOf("link:")){let e=t.substring(5);if(~e.indexOf(".")){const t=e.split(".");e=t[0];const i=t[1];if("followers"===i)return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)+" . "+this.translate("Followers");const s=this.getMetadata().get(["entityDefs",this.entityType,"links",e,"entity"]);return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)+" . "+this.translate(i,"links",s)}return this.translate("Related","labels","Workflow")+" · "+this.translate(e,"links",this.entityType)}let e=this.translate(t,"emailAddressOptions","Workflow");return"targetEntity"===t&&(e+=" · "+this.translate(this.entityType,"scopeNames")),e}})}),define("advanced:views/workflow/actions/create-entity",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({type:"createEntity",defaultActionData:{link:!1,fieldList:[],fields:{}},data:function(){const e=t.prototype.data.call(this);return e.numberId=this.numberId,e.aliasId=this.aliasId,e},setup:function(){if(t.prototype.setup.call(this),this.numberId=null,this.options.flowchartElementId&&this.options.flowchartCreatedEntitiesData){const t=this.options.flowchartElementId+"_"+this.actionData.id;t in this.options.flowchartCreatedEntitiesData&&(this.numberId=this.options.flowchartCreatedEntitiesData[t].numberId),this.aliasId=t}},additionalSetup:function(){t.prototype.additionalSetup.call(this),this.displayedLinkedEntityName=this.translate(this.actionData.link,"scopeNames")},afterRender:function(){if(t.prototype.afterRender.call(this),"createEntity"===this.type){const t=new e;t.set("linkList",this.actionData.linkList);const i={};(this.actionData.linkList||[]).forEach(t=>{i[t]=this.getLanguage().translate(t,"links",this.actionData.link)}),this.createView("linkList","views/fields/multi-enum",{model:t,selector:'.field[data-name="linkList"]',mode:"detail",name:"linkList",inlineEditDisabled:!0,translatedOptions:i},t=>{t.render()})}}})}),define("advanced:views/workflow/actions/apply-assignment-rule",["advanced:views/workflow/actions/base","model"],function(t,e){return t.extend({template:"advanced:workflow/actions/apply-assignment-rule",type:"applyAssignmentRule",defaultActionData:{assignmentRule:"Round-Robin",targetTeamId:null,targetTeamName:null,targetUserPosition:null,listReportId:null,listReportName:null},data:function(){var e=t.prototype.data.call(this);return e.hasListReport=this.actionData.listReportId,e.hasTarget=!!this.options.flowchartCreatedEntitiesData,e.hasTarget&&(e.targetTranslated=this.getTargetTranslated()),e},getTargetTranslated:function(){var t=this.actionData.target;return t?"process"===t?this.translate("Process","labels","Workflow"):0===t.indexOf("created:")?this.translateCreatedEntityAlias(t):void 0:this.translate("Target Entity","labels","Workflow")},afterRender:function(){t.prototype.afterRender.call(this);var i=new e;i.name="Workflow",i.set({assignmentRule:this.actionData.assignmentRule,targetTeamId:this.actionData.targetTeamId,targetTeamName:this.actionData.targetTeamName,targetUserPosition:this.actionData.targetUserPosition,listReportId:this.actionData.listReportId,listReportName:this.actionData.listReportName}),this.createView("assignmentRule","views/fields/enum",{mode:"detail",model:i,selector:' .field[data-name="assignmentRule"]',defs:{name:"assignmentRule",params:{options:this.getMetadata().get("entityDefs.Workflow.assignmentRuleList")||[]}},readOnly:!0},t=>{t.render()}),this.createView("targetTeam","views/fields/link",{mode:"detail",model:i,selector:' .field[data-name="targetTeam"]',foreignScope:"Team",defs:{name:"targetTeam"},readOnly:!0},t=>{t.render()}),this.createView("targetUserPosition","advanced:views/workflow/fields/target-user-position",{mode:"detail",model:i,selector:' .field[data-name="targetUserPosition"]',foreignScope:"Report",defs:{name:"targetUserPosition"},readOnly:!0},t=>{t.render()}),this.createView("listReport","advanced:views/workflow/fields/list-report",{mode:"detail",model:i,selector:' .field[data-name="listReport"]',foreignScope:"Report",entityType:this.model.get("entityType"),defs:{name:"listReport"},readOnly:!0},t=>{t.render()})}})}),define("advanced:views/workflow/action-modals/update-related-entity",["advanced:views/workflow/action-modals/create-entity","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/update-related-entity",permittedLinkTypes:["belongsTo","hasMany","hasChildren","belongsToParent","hasOne"],getLinkOptions:function(){const t=Object.keys(this.getMetadata().get(`entityDefs.${this.entityType}.links`)),e=[[""]];return t.forEach(t=>{const i=this.getMetadata().get(`entityDefs.${this.entityType}.links.${t}`);if(!i.disabled&&this.permittedLinkTypes.includes(i.type)){const i=this.translate(t,"links",this.entityType);e.push([t,i])}}),e},setup:function(){t.prototype.setup.call(this);const i=new e;i.name="Workflow",this.modelForParentEntityType=i,this.actionModel=i,i.set({assignmentRule:this.actionData.assignmentRule,targetTeamId:this.actionData.targetTeamId,targetTeamName:this.actionData.targetTeamName,targetUserPosition:this.actionData.targetUserPosition,listReportId:this.actionData.listReportId,listReportName:this.actionData.listReportName,link:this.actionData.link});let s=[];this.isParentLink()&&(s=this.getParentEntityTypeList(this.actionData.link)),this.actionData.parentEntityType&&i.set("parentEntityType",this.actionData.parentEntityType),this.createView("parentEntityType","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="parentEntityType"]',defs:{name:"parentEntityType",params:{options:s,translation:"Global.scopeNames"}},readOnly:this.readOnly}),this.listenTo(i,"change",(t,e)=>{e.ui&&this.onParentEntityTypeChange()});const a=this.getLinkOptions();this.createView("link","views/fields/enum",{name:"link",model:i,mode:"edit",selector:' .field[data-name="link"]',params:{options:a.map(t=>t[0]),required:!0},translatedOptions:Object.fromEntries(a),labelText:this.translate("Field")}),this.listenTo(i,"change:link",()=>this.changeLinkAction())},afterRender:function(){t.prototype.afterRender.call(this),this.controlParentEntityType()},controlParentEntityType:function(){const t=this.$el.find('.cell[data-name="parentEntityType"]');if(this.isParentLink()){const e=this.getParentEntityTypeList(this.actionData.link);this.getView("parentEntityType").setOptionList(e),t.removeClass("hidden")}else t.addClass("hidden")},isParentLink:function(){return this.actionData.link&&"belongsToParent"===this.getMetadata().get(["entityDefs",this.entityType,"links",this.actionData.link,"type"])},setupScope:function(t){if(this.actionData.link){let e;if(e=this.isParentLink()?this.actionData.parentEntityType:this.getMetadata().get(`entityDefs.${this.entityType}.links.${this.actionData.link}.entity`),this.scope=e,!e)throw new Error;this.wait(!0),this.getModelFactory().create(e,e=>{this.model=e,(this.actionData.fieldList||[]).forEach(t=>{const i=(this.actionData.fields[t]||{}).attributes||{};e.set(i,{silent:!0})}),t()})}else this.model=null,t()},onParentEntityTypeChange:function(){this.actionData.fieldList.forEach(t=>{this.$el.find('.field-row[data-field="'+t+'"]').remove(),this.clearView("field-"+t)}),this.actionData.fieldList=[],this.actionData.fields={},this.actionData.parentEntityType=this.modelForParentEntityType.get("parentEntityType"),this.handleLink()},changeLinkAction:function(t){if(this.actionData.link=this.actionModel.attributes.link,this.actionData.parentEntityType=null,this.isParentLink()&&this.isParentLink()){const t=this.getParentEntityTypeList(this.actionData.link);t.length&&(this.actionData.parentEntityType=t[0])}this.modelForParentEntityType.set("parentEntityType",this.actionData.parentEntityType),this.actionData.fieldList.forEach(t=>{this.$el.find('.field-row[data-field="'+t+'"]').remove(),this.clearView("field-"+t)}),this.actionData.fieldList=[],this.actionData.fields={},this.controlParentEntityType(),this.handleLink()},setupFormulaView:function(){const t=new e,i=this.element.querySelector('[data-name="formula"] .field-info');i&&i.parentNode.removeChild(i),this.hasFormulaAvailable&&(t.set("formula",this.actionData.formula||null),this.createView("formula","views/fields/formula",{name:"formula",model:t,mode:this.readOnly?"detail":"edit",height:100,selector:'.field[data-name="formula"]',inlineEditDisabled:!0,targetEntityType:this.scope,params:{tooltip:!0},tooltipText:this.translate("createEntityFormula","tooltips","Workflow")},t=>{t.render()}))},getParentEntityTypeList:function(t){return this.getMetadata().get(["entityDefs",this.entityType,"fields",t,"entityList"])||this.getAllEntityList()||[]},getAllEntityList:function(){return Object.keys(this.getMetadata().get("scopes")).filter(t=>{if(!this.getMetadata().get("scopes."+t+".disabled"))return this.getMetadata().get("scopes."+t+".entity")&&this.getMetadata().get("scopes."+t+".object")}).sort((t,e)=>this.translate(t,"scopeNamesPlural").localeCompare(this.translate(e,"scopeNamesPlural")))}})}),define("advanced:views/workflow/action-modals/update-process-entity",["advanced:views/workflow/action-modals/update-entity"],function(t){return t.extend({template:"advanced:workflow/action-modals/update-entity",ignoreFieldList:["endedAt","status","targetType","target","flowchartData","flowchart","flowchartElementsDataHash","flowchartVisualization","createdEntitiesData","variables","modifiedAt","endedAt","createdBy","modifiedBy","createdAt","workflowId","startElementId","rootProcess","parentProcessFlowNode","parentProcess"],setupScope:function(t){this.scope="BpmnProcess",this.getModelFactory().create(this.scope,e=>{this.model=e,(this.actionData.fieldList||[]).forEach(t=>{const i=(this.actionData.fields[t]||{}).attributes||{};e.set(i,{silent:!0})}),t()})},setup:function(){t.prototype.setup.call(this),this.hasFormulaAvailable=!!this.getMetadata().get("app.formula.functionList"),this.wait(!0),this.setupScope(()=>{this.createView("addField","advanced:views/workflow/action-fields/add-field",{selector:".add-field-container",scope:this.scope,fieldList:this.getFieldList(),addedFieldList:this.actionData.fieldList,onAdd:t=>{this.actionData.fieldList.includes(t)||(this.actionData.fieldList.push(t),this.actionData.fields[t]={},this.addField(t,!1,!0))}},t=>{t.render()}),this.wait(!1)})},getFieldList:function(){const t=this.getMetadata().get("entityDefs."+this.scope+".fields")||{};return Object.keys(t).filter(e=>!t[e].disabled&&(!~this.ignoreFieldList.indexOf(e)||void 0)).sort((t,e)=>this.translate(t,"fields",this.scope).localeCompare(this.translate(e,"fields",this.scope)))}})}),define("advanced:views/workflow/action-modals/update-created-entity",["advanced:views/workflow/action-modals/create-entity","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/update-created-entity",data:function(){return _.extend({target:this.actionData.target,scope:this.scope})},setup:function(){t.prototype.setup.call(this);const i=new e;i.name="Workflow",this.modelForParentEntityType=i,this.actionModel=i;let s=Object.keys(this.options.flowchartCreatedEntitiesData).map(t=>"created:"+t);s=Espo.Utils.clone(s),s.unshift(""),this.actionData.target&&i.set("target",this.actionData.target);const a={};Object.keys(this.options.flowchartCreatedEntitiesData).forEach(t=>{const e=this.options.flowchartCreatedEntitiesData[t].link,i=this.options.flowchartCreatedEntitiesData[t].entityType,s=this.options.flowchartCreatedEntitiesData[t].numberId,n=this.options.flowchartCreatedEntitiesData[t].text;let o=this.translate("Created","labels","Workflow")+" · ";e&&(o+=this.translate(e,"links",this.entityType)+" - "),o+=this.translate(i,"scopeNames"),n?o+=" '"+n+"'":s&&(o+=" #"+s.toString()),a["created:"+t]=o}),this.createView("target","views/fields/enum",{name:"target",mode:"edit",model:i,selector:'.field[data-name="target"]',translatedOptions:a,readOnly:this.readOnly,labelText:this.translate("Field"),params:{options:s,required:!0}}),this.listenTo(i,"change:target",()=>{this.setTarget(this.actionModel.get("target"))})},afterRender:function(){t.prototype.afterRender.call(this)},setupScope:function(t){if(this.actionData.target){let e=this.scope=null;const i=this.actionData.target.substr(8);if(!this.options.flowchartCreatedEntitiesData[i])return void t();if(e=this.options.flowchartCreatedEntitiesData[i].entityType,this.scope=e,!e)throw new Error;this.wait(!0),this.getModelFactory().create(e,e=>{this.model=e,(this.actionData.fieldList||[]).forEach(t=>{const i=(this.actionData.fields[t]||{}).attributes||{};e.set(i,{silent:!0})}),t()})}else this.model=null,t()},setTarget:function(t){this.actionData.target=t,this.actionData.fieldList.forEach(t=>{this.$el.find('.field-row[data-field="'+t+'"]').remove(),this.clearView("field-"+t)}),this.actionData.fieldList=[],this.actionData.fields={},this.handleLink()},handleLink:function(){if(!this.actionData.target)return this.clearView("addField"),this.clearView("formula"),void this.$formulaCell.addClass("hidden");this.hasFormulaAvailable&&this.$formulaCell.removeClass("hidden"),this.setupScope(()=>{this.createView("addField","advanced:views/workflow/action-fields/add-field",{selector:".add-field-container",scope:this.scope,fieldList:this.getFieldList(),addedFieldList:this.actionData.fieldList,onAdd:t=>{this.actionData.fieldList.includes(t)||(this.actionData.fieldList.push(t),this.actionData.fields[t]={},this.addField(t,!1,!0))}},t=>{t.render()})}),this.setupFormulaView()},setupFormulaView:function(){const t=new e,i=this.element.querySelector('[data-name="formula"] .field-info');i&&i.parentNode.removeChild(i),this.hasFormulaAvailable&&(t.set("formula",this.actionData.formula||null),this.createView("formula","views/fields/formula",{name:"formula",model:t,mode:this.readOnly?"detail":"edit",height:100,selector:'.field[data-name="formula"]',inlineEditDisabled:!0,targetEntityType:this.scope,params:{tooltip:!0},tooltipText:this.translate("createEntityFormula","tooltips","Workflow")},t=>{t.render()}))},fetch:function(){let t,e=!0;if(t=this.getView("target").validate(),(this.actionData.fieldList||[]).forEach(t=>{e=this.getView("field-"+t).fetch(),this.actionData.fields[t]=this.getView("field-"+t).fieldData}),this.hasFormulaAvailable&&this.actionData.target){const t=this.getView("formula");t&&(this.actionData.formula=t.fetch().formula)}return!t&&e}})}),define("advanced:views/workflow/action-modals/unrelate-from-entity",["advanced:views/workflow/action-modals/relate-with-entity"],function(t){return t.extend({})}),define("advanced:views/workflow/action-modals/trigger-workflow",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/trigger-workflow",data:function(){return _.extend({},t.prototype.data.call(this))},setup:function(){t.prototype.setup.call(this),this.setupTargetOptions(),this.createView("executionTime","advanced:views/workflow/action-fields/execution-time",{selector:".execution-time-container",executionData:this.actionData.execution||{},entityType:this.entityType});const i=this.model2=new e;i.name="Workflow",i.set({workflowId:this.actionData.workflowId,workflowName:this.actionData.workflowName,target:this.actionData.target}),this.createView("target","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="target"]',defs:{name:"target",params:{options:this.targetOptionList,translatedOptions:this.targetTranslatedOptions}},readOnly:this.readOnly}),this.createView("workflow","advanced:views/workflow/fields/workflow",{selector:".field-workflow",model:i,mode:"edit",foreignScope:"Workflow",entityType:this.getTargetEntityType(),defs:{name:"workflow",params:{required:!0}},labelText:this.translate("Workflow Rule","labels","Workflow")}),this.listenTo(this.model2,"change:target",(t,e,s)=>{if(!s.ui)return;i.set("workflowId",null),i.set("workflowName",null);const a=this.getView("workflow");a&&(a.options.entityType=this.getTargetEntityType())})},getTargetEntityType:function(){return this.getEntityTypeFromTarget(this.model2.get("target"))},setupTargetOptions:function(){const t=[""],e={};e[""]=this.translate("Current","labels","Workflow")+" · "+this.translate(this.entityType,"scopeNames"),this.options.flowchartCreatedEntitiesData&&Object.keys(this.options.flowchartCreatedEntitiesData).forEach(i=>{t.push("created:"+i),e["created:"+i]=this.translateCreatedEntityAlias(i,!0)});const i=[],s=this.getMetadata().get(["entityDefs",this.entityType,"links"])||{};Object.keys(s).forEach(a=>{const n=s[a]||{},o=n.type;if(n.utility||"belongsTo"!==o&&"belongsToParent"!==o&&"hasMany"!==o)return;const l="link:"+a;t.push(l),e[l]=this.translateTargetItem(l,!0),"belongsTo"!==o&&"belongsToParent"!==o||i.push(a)}),i.forEach(i=>{const a=s[i].entity;if(a){const s=this.getMetadata().get(["entityDefs",a,"links"])||{};Object.keys(s).forEach(a=>{const n=s[a]||{},o=n.type;if(n.utility||"belongsTo"!==o&&"belongsToParent"!==o&&"hasMany"!==o)return;const l=`link:${i}.${a}`;t.push(l),e[l]=this.translateTargetItem(l,!0)})}}),this.targetOptionList=t,this.targetTranslatedOptions=e},fetch:function(){const t=this.getView("workflow");if(t.fetchToModel(),t.validate())return;const e=t.fetch();this.actionData.workflowId=e.workflowId,this.actionData.workflowName=e.workflowName,this.actionData.target=this.getView("target").fetch().target||null;const i=this.getView("executionTime").fetch();return this.actionData.execution=this.actionData.execution||{},this.actionData.execution.type=i.type,delete this.actionData.execution.field,delete this.actionData.execution.shiftDays,delete this.actionData.execution.shiftUnit,"immediately"!==i.type&&(this.actionData.execution.field=i.field,this.actionData.execution.shiftDays=i.shiftValue,this.actionData.execution.shiftUnit=i.shiftUnit),!0}})}),define("advanced:views/workflow/action-modals/start-bpmn-process",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/start-bpmn-process",afterRender:function(){t.prototype.afterRender.call(this)},setup:function(){t.prototype.setup.call(this),this.setupTargetOptions();const i=this.model2=new e;i.name="BpmnFlowchart",i.set({flowchartId:this.actionData.flowchartId,flowchartName:this.actionData.flowchartName,elementId:this.actionData.elementId,target:this.actionData.target,startElementIdList:this.actionData.startElementIdList,startElementNames:this.actionData.startElementNames}),this.createView("target","views/fields/enum",{mode:"edit",model:i,selector:' .field[data-name="target"]',defs:{name:"target",params:{options:this.targetOptionList,translatedOptions:this.targetTranslatedOptions}},readOnly:this.readOnly}),this.createView("flowchart","advanced:views/workflow/fields/flowchart",{selector:'.field[data-name="flowchart"]',model:i,mode:"edit",foreignScope:"BpmnFlowchart",entityType:this.getTargetEntityType(),defs:{name:"flowchart",params:{required:!0}},targetEntityType:this.getTargetEntityType(),labelText:this.translate("BpmnFlowchart","scopeNames")}),this.listenTo(i,"change:target",()=>{i.trigger("change-target-entity-type",this.getTargetEntityType())}),this.createView("elementId","advanced:views/workflow/fields/process-start-element-id",{selector:'.field[data-name="elementId"]',model:i,mode:"edit",defs:{name:"elementId",params:{required:!0,options:this.actionData.startElementIdList||[]}},translatedOptions:this.actionData.startElementNames||{}}),this.listenTo(i,"change:target",(t,e,s)=>{s.ui&&(i.set("flowchartId",null),i.set("flowchartName",null),i.set("elementId",null))})},getTargetEntityType:function(){return this.getEntityTypeFromTarget(this.model2.get("target"))},setupTargetOptions:function(){const t=[""],e={};e[""]=this.translate("Current","labels","Workflow")+" · "+this.translate(this.entityType,"scopeNames"),this.options.flowchartCreatedEntitiesData&&Object.keys(this.options.flowchartCreatedEntitiesData).forEach(i=>{t.push("created:"+i),e["created:"+i]=this.translateCreatedEntityAlias(i,!0)});const i=[],s=this.getMetadata().get(["entityDefs",this.entityType,"links"])||{};Object.keys(s).forEach(a=>{const n=s[a].type;if("belongsTo"!==n&&"belongsToParent"!==n)return;const o=s[a].entity;if("belongsToParent"!==n){if(!o)return;if(!this.getMetadata().get(["scopes",o,"object"]))return}const l=`link:${a}`;t.push(l),e[l]=this.translateTargetItem(l,!0),i.push(a)}),i.forEach(i=>{const a=s[i].entity;if(a){const s=this.getMetadata().get(["entityDefs",a,"links"])||{};Object.keys(s).forEach(a=>{const n=s[a].type;if("belongsTo"!==n&&"belongsToParent"!==n)return;const o=s[a].entity;if("belongsToParent"!==n){if(!o)return;if(!this.getMetadata().get(["scopes",o,"object"]))return}const l=`link:${i}.${a}`;t.push(l),e[l]=this.translateTargetItem(l,!0)})}}),this.targetOptionList=t,this.targetTranslatedOptions=e},fetch:function(){const t=this.getView("flowchart");if(t.fetchToModel(),t.validate())return;const e=this.getView("elementId");if(e.fetchToModel(),e.validate())return;const i=t.fetch();return this.actionData.flowchartName=i.flowchartName,this.actionData.flowchartId=i.flowchartId,this.actionData.target=this.getView("target").fetch().target||null,this.actionData.startElementIdList=this.model2.get("startElementIdList")||[],this.actionData.startElementNames=this.model2.get("startElementNames")||{},this.actionData.elementId=this.getView("elementId").fetch().elementId||null,!0}})}),define("advanced:views/workflow/action-modals/send-request",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/send-request",setModel:function(){this.model.set({requestType:this.actionData.requestType||null,contentType:this.actionData.contentType||null,content:this.actionData.content||null,requestUrl:this.actionData.requestUrl||null,headers:this.actionData.headers||null,contentVariable:this.actionData.contentVariable||null})},setup:function(){t.prototype.setup.call(this);const i=this.model=new e;i.name="Workflow",this.setModel(),this.on("apply-change",()=>{this.setModel()}),this.createView("requestType","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="requestType"]',defs:{name:"requestType",params:{options:["POST","PUT","PATCH","DELETE","GET"]}},readOnly:this.readOnly}),this.createView("contentType","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="contentType"]',defs:{name:"contentType",params:{options:["","application/json","application/x-www-form-urlencoded"]}},translatedOptions:{"":this.translate("None")},readOnly:this.readOnly},t=>{t.fetchEmptyValueAsNull=!0}),this.createView("contentVariable","views/fields/varchar",{mode:"edit",model:i,selector:'.field[data-name="contentVariable"]',defs:{name:"contentVariable",params:{maxLength:100,noSpellCheck:!0}},readOnly:this.readOnly,tooltip:"requestContentVariable"}),this.createView("requestUrl","views/fields/varchar",{mode:"edit",model:i,selector:'.field[data-name="requestUrl"]',defs:{name:"requestUrl",params:{required:!0}},readOnly:this.readOnly,tooltip:"requestUrl"}),this.createView("content","views/fields/formula",{mode:"edit",model:i,selector:'.field[data-name="content"]',defs:{name:"content"},insertDisabled:!0,checkSyntaxDisabled:!0,height:60,readOnly:this.readOnly,tooltip:"requestContent"},t=>{t.validations=["json"],t.validateJson=function(){let t=this.model.get(this.name)||"";if(t=t.trim(),!t)return;t=t.replace(/\{\$[a-zA-Z0-9_]+\}/g,"1"),t=t.replace(/\{\$\$[a-zA-Z0-9_]+\}/g,"1");try{return JSON.parse(t),!1}catch(t){}const e=this.translate("jsonInvalid","messages","Workflow");return this.showValidationMessage(e,".ace_editor"),!0}}),this.createView("headers","advanced:views/workflow/fields/request-headers",{mode:"edit",model:i,selector:'.field[data-name="headers"]',defs:{name:"headers",params:{noEmptyString:!0,itemsEditable:!0,maxItemLength:1e4}},readOnly:this.readOnly,tooltip:"requestHeaders"}),this.controlFieldVisibility(),this.listenTo(i,"change:requestType change:contentVariable",()=>this.controlFieldVisibility())},fetch:function(){this.getView("requestType").fetchToModel(),this.getView("contentType").fetchToModel(),this.getView("requestUrl").fetchToModel(),this.getView("content").fetchToModel(),this.getView("headers").fetchToModel(),this.getView("contentVariable").fetchToModel();let t=!1;if(t=t||this.getView("content").validate(),t=t||this.getView("requestUrl").validate(),!t)return this.actionData.requestType=(this.getView("requestType").fetch()||{}).requestType,this.actionData.contentType=(this.getView("contentType").fetch()||{}).contentType,this.actionData.requestUrl=(this.getView("requestUrl").fetch()||{}).requestUrl,this.actionData.content=(this.getView("content").fetch()||{}).content,this.actionData.headers=(this.getView("headers").fetch()||{}).headers,this.actionData.contentVariable=(this.getView("contentVariable").fetch()||{}).contentVariable,!0},async controlFieldVisibility(){if(await this.whenRendered(),!this.element)return;const t=this.element.querySelector('.cell[data-name="content"]'),e=this.element.querySelector('.cell[data-name="contentVariable"]');t&&e&&(this.model.attributes.contentVariable?t.classList.add("hidden"):t.classList.remove("hidden"))}})}),define("advanced:views/workflow/action-modals/send-email",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/send-email",afterRender:function(){t.prototype.afterRender.call(this),this.handleFrom(),this.handleTo(),this.handleReplyTo(),this.handleCc()},setup:function(){t.prototype.setup.call(this),this.createView("executionTime","advanced:views/workflow/action-fields/execution-time",{selector:".execution-time-container",executionData:this.actionData.execution||{},entityType:this.entityType});const i=this.formModel=new e;if(i.name="Workflow",i.set({from:this.actionData.from,to:this.actionData.to||"currentUser",replyTo:this.actionData.replyTo,cc:this.actionData.cc,emailTemplateId:this.actionData.emailTemplateId,emailTemplateName:this.actionData.emailTemplateName,doNotStore:this.actionData.doNotStore,optOutLink:this.actionData.optOutLink,fromEmailAddress:this.actionData.fromEmail,toEmailAddress:this.actionData.toEmail,replyToEmailAddress:this.actionData.replyToEmail,ccEmailAddress:this.actionData.ccEmail,attachmentsVariable:this.actionData.attachmentsVariable}),this.actionData.toSpecifiedEntityIds){const t="to"+this.actionData.to.charAt(0).toUpperCase()+this.actionData.to.slice(1);i.set(t+"Ids",this.actionData.toSpecifiedEntityIds),i.set(t+"Names",this.actionData.toSpecifiedEntityNames)}const s=this.getFromOptions(),a=this.getToOptions(),n=this.getReplyToOptions();this.createView("from","views/fields/enum",{selector:".field-from",model:i,mode:"edit",name:"from",params:{options:s.map(t=>t[0])},translatedOptions:Object.fromEntries(s)}),this.createView("to","views/fields/enum",{selector:".field-to",model:i,mode:"edit",name:"to",params:{options:a.map(t=>t[0])},translatedOptions:Object.fromEntries(a)}),this.createView("replyTo","views/fields/enum",{selector:".field-replyTo",model:i,mode:"edit",name:"replyTo",params:{options:n.map(t=>t[0])},translatedOptions:Object.fromEntries(n),labelText:this.translate("Reply-To","labels","Workflow")}),this.createView("cc","views/fields/enum",{selector:'[data-name="cc"]',model:i,mode:"edit",name:"cc",params:{options:n.map(t=>t[0])},translatedOptions:Object.fromEntries(n),labelText:this.translate("CC","labels","Workflow")}),this.createView("fromEmailAddress","advanced:views/fields/email-address-for-send-email",{selector:'.field[data-name="fromEmailAddress"]',model:i,mode:"edit",name:"fromEmailAddress",labelText:this.translate("Email Address","labels","Workflow")}),this.createView("toEmailAddress","advanced:views/fields/email-address-for-send-email",{selector:'.field[data-name="toEmailAddress"]',model:i,mode:"edit",name:"toEmailAddress",labelText:this.translate("Email Address","labels","Workflow"),params:{tooltip:!0},tooltipText:this.translate("toEmailAddress","tooltips","Workflow")}),this.createView("replyToEmailAddress","advanced:views/fields/email-address-for-send-email",{selector:'.field[data-name="replyToEmailAddress"]',model:i,mode:"edit",name:"replyToEmailAddress",labelText:this.translate("Email Address","labels","Workflow"),params:{tooltip:!0},tooltipText:this.translate("toEmailAddress","tooltips","Workflow")}),this.createView("ccEmailAddress","advanced:views/fields/email-address-for-send-email",{selector:'.field[data-name="ccEmailAddress"]',model:i,mode:"edit",name:"ccEmailAddress",labelText:this.translate("Email Address","labels","Workflow"),params:{tooltip:!0},tooltipText:this.translate("toEmailAddress","tooltips","Workflow")}),this.createView("emailTemplate","views/fields/link",{selector:".field-emailTemplate",model:i,mode:"edit",foreignScope:"EmailTemplate",defs:{name:"emailTemplate",params:{required:!0}},labelText:this.translate("Email Template","labels","Workflow")}),this.createView("toSpecifiedTeams","views/fields/link-multiple",{selector:".toSpecifiedTeams-container .field-toSpecifiedTeams",model:i,mode:"edit",foreignScope:"Team",defs:{name:"toSpecifiedTeams"}}),this.createView("toSpecifiedUsers","views/fields/link-multiple",{selector:".toSpecifiedUsers-container .field-toSpecifiedUsers",model:i,mode:"edit",foreignScope:"User",defs:{name:"toSpecifiedUsers"}}),this.createView("toSpecifiedContacts","views/fields/link-multiple",{selector:".toSpecifiedContacts-container .field-toSpecifiedContacts",model:i,mode:"edit",foreignScope:"Contact",defs:{name:"toSpecifiedContacts"}}),this.createView("doNotStore","views/fields/bool",{selector:".doNotStore-container .field-doNotStore",model:i,mode:"edit",defs:{name:"doNotStore"}}),this.createView("optOutLink","views/fields/bool",{selector:'.field[data-name="optOutLink"]',model:i,mode:"edit",defs:{name:"optOutLink"}}),this.createView("attachmentsVariable","views/fields/varchar",{selector:'.field[data-name="attachmentsVariable"]',model:i,mode:"edit",name:"attachmentsVariable",params:{maxLength:64,noSpellCheck:!0,tooltip:!0},labelText:this.translate("attachmentsVariable","fields","Workflow"),tooltipText:this.translate("attachmentsVariable","tooltips","Workflow")}),this.listenTo(this.formModel,"change:from",()=>this.handleFrom()),this.listenTo(this.formModel,"change:to",()=>this.handleTo()),this.listenTo(this.formModel,"change:replyTo",()=>this.handleReplyTo()),this.listenTo(this.formModel,"change:cc",()=>this.handleCc())},handleFrom:function(){"specifiedEmailAddress"===this.formModel.attributes.from?this.$el.find(".from-email-container").removeClass("hidden"):this.$el.find(".from-email-container").addClass("hidden")},handleReplyTo:function(){"specifiedEmailAddress"===this.formModel.attributes.replyTo?this.$el.find(".reply-to-email-container").removeClass("hidden"):this.$el.find(".reply-to-email-container").addClass("hidden")},handleCc:function(){"specifiedEmailAddress"===this.formModel.attributes.cc?this.$el.find(".cc-email-container").removeClass("hidden"):this.$el.find(".cc-email-container").addClass("hidden")},handleTo:function(){const t=this.formModel.attributes.to;"specifiedEmailAddress"===t?this.$el.find(".to-email-container").removeClass("hidden"):this.$el.find(".to-email-container").addClass("hidden");const e=["specifiedTeams","specifiedUsers","specifiedContacts"];e.forEach(t=>{const e=this.$el.find(".to"+Espo.Utils.upperCaseFirst(t)+"-container");e.hasClass("hidden")||e.addClass("hidden")}),e.includes(t)&&this.$el.find(".to"+Espo.Utils.upperCaseFirst(t)+"-container").removeClass("hidden")},getFromOptions:function(){const t=[],e=this.actionData.from,i=["system","specifiedEmailAddress"];return this.options.flowchartCreatedEntitiesData||i.push("currentUser"),i.forEach(e=>{const i=this.translate(e,"emailAddressOptions","Workflow");t.push([e,i])}),this.getLinkOptions(e,!0,!0).forEach(e=>t.push(e)),t},getReplyToOptions:function(){const t=[];return["","system","currentUser","specifiedEmailAddress"].forEach(e=>{const i=this.translate(e,"emailAddressOptions","Workflow");t.push([e,i])}),this.getLinkOptions(void 0,!1,!0).forEach(e=>t.push(e)),t},getToOptions:function(){const t=[],e=this.actionData.to,i=["currentUser","teamUsers","specifiedTeams","specifiedUsers","specifiedContacts","specifiedEmailAddress","followers","followersExcludingAssignedUser"];"Email"===this.entityType&&i.push("fromOrReplyTo");if("emailAddress"in(this.getMetadata().get(`entityDefs.${this.entityType}.fields`)||{})&&"Email"!==this.entityType){const e="targetEntity",i=this.translate(e,"emailAddressOptions","Workflow")+" · "+this.translate(this.entityType,"scopeNames");t.push([e,i])}return i.forEach(e=>{const i=this.translate(e,"emailAddressOptions","Workflow");t.push([e,i])}),this.getLinkOptions(e).forEach(e=>t.push(e)),t},getLinkOptions:function(t,e,i){const s=[],a=this.getMetadata().get(`entityDefs.${this.entityType}.links`)||{};return Object.keys(a).forEach(t=>{if("belongsTo"===a[t].type||"hasMany"===a[t].type){const n=a[t].entity;if(!n)return;if("hasMany"===a[t].type){if(i)return;if("linkMultiple"!==this.getMetadata().get(["entityDefs",this.entityType,"fields",t,"type"]))return}const o=this.getMetadata().get(`entityDefs.${n}.fields`)||{};if(e&&"User"!==n)return;if("emailAddress"in o&&"email"===o.emailAddress.type){const e=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType);s.push([`link:${t}`,e])}}else if("belongsToParent"===a[t].type){if(e)return;const i=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType);s.push([`link:${t}`,i])}}),Object.keys(a).forEach(t=>{if("belongsTo"!==a[t].type)return;const n=this.getMetadata().get(["entityDefs",this.entityType,"links",t,"entity"]);if(!n)return;if("User"===n)return;if(!i&&this.getMetadata().get(["scopes",n,"stream"])){const e=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate("Followers");s.push([`link:${t}.followers`,e])}const o=this.getMetadata().get(`entityDefs.${n}.links`)||{};Object.keys(o).forEach(i=>{let a;if(("belongsTo"===o[i].type||"hasMany"===o[i].type)&&(a=o[i].entity,!a))return;if("hasMany"===o[i].type&&"linkMultiple"!==this.getMetadata().get(["entityDefs",a,"fields",i,"type"]))return;const l=this.getMetadata().get(["entityDefs",a,"fields"])||{};if((!e||"User"===a)&&"emailAddress"in l&&"email"===l.emailAddress.type){const e=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate(i,"links",n);s.push([`link:${t}.${i}`,e])}})}),Object.keys(this.getMetadata().get(["entityDefs",this.entityType,"links"])||{}).forEach(t=>{if("belongsToParent"===this.getMetadata().get(["entityDefs",this.entityType,"links",t,"type"])){let e="assignedUser",a=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate(e,"links");if(s.push([`link:${t}.${e}`,a]),i)return;e="followers",a=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate("Followers"),s.push([`link:${t}.${e}`,a]),e="contacts",a=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate("Contact","scopeNamesPlural"),s.push([`link:${t}.${e}`,a])}}),s},fetch:function(){let t=!1;const e=this.getView("emailTemplate");e.fetchToModel(),e.validate()&&(t=!0);const i=e.fetch();if("specifiedEmailAddress"===this.formModel.attributes.from&&this.getView("fromEmailAddress").validate()&&(t=!0),"specifiedEmailAddress"===this.formModel.attributes.to&&this.getView("toEmailAddress").validate()&&(t=!0),"specifiedEmailAddress"===this.formModel.attributes.replyTo&&this.getView("replyToEmailAddress").validate()&&(t=!0),"specifiedEmailAddress"===this.formModel.attributes.cc&&this.getView("ccEmailAddress").validate()&&(t=!0),t)return;this.actionData.attachmentsVariable=this.formModel.attributes.attachmentsVariable,this.actionData.emailTemplateId=i.emailTemplateId,this.actionData.emailTemplateName=i.emailTemplateName,this.actionData.from=this.formModel.attributes.from,this.actionData.to=this.formModel.attributes.to,this.actionData.replyTo=this.formModel.attributes.replyTo,this.actionData.cc=this.formModel.attributes.cc,["specifiedTeams","specifiedUsers","specifiedContacts"].includes(this.actionData.to)&&(this.actionData=_.extend(this.actionData,this.getSpecifiedEntityData(this.actionData.to,"to"))),this.actionData.fromEmail=this.formModel.attributes.fromEmailAddress,this.actionData.toEmail=this.formModel.attributes.toEmailAddress,this.actionData.replyToEmail=this.formModel.attributes.replyToEmailAddress,this.actionData.ccEmail=this.formModel.attributes.ccEmailAddress,this.actionData.doNotStore=this.getViewData("doNotStore").doNotStore||!1,this.actionData.optOutLink=this.getViewData("optOutLink").optOutLink||!1;const s=this.getView("executionTime").fetch();return this.actionData.execution=this.actionData.execution||{},this.actionData.execution.type=s.type,delete this.actionData.execution.field,delete this.actionData.execution.shiftDays,delete this.actionData.execution.shiftUnit,"immediately"!==s.type&&(this.actionData.execution.field=s.field,this.actionData.execution.shiftDays=s.shiftValue,this.actionData.execution.shiftUnit=s.shiftUnit),!0},getViewData:function(t){const e=this.getView(t);return e?(e.fetchToModel(),e.fetch()):{}},getSpecifiedEntityData:function(t,e){const i=e+t.charAt(0).toUpperCase()+t.slice(1),s=this.getView(i),a={};if(s){s.fetchToModel();const t=s.fetch();a[e+"SpecifiedEntityName"]=s.foreignScope,a[e+"SpecifiedEntityIds"]=t[s.idsName],a[e+"SpecifiedEntityNames"]=t[s.nameHashName]}return a}})}),define("advanced:views/workflow/action-modals/run-service",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/run-service",data:function(){return _.extend({},t.prototype.data.call(this))},setup:function(){t.prototype.setup.call(this);var i=new e;i.name="Workflow",this.actionModel=i,this.actionData.methodName&&i.set({methodName:this.actionData.methodName,additionalParameters:this.actionData.additionalParameters,helpText:this.getHelperText(this.actionData.methodName),target:this.actionData.target||"targetEntity"}),this.controlTargetEntity(),this.listenTo(i,"change:target",()=>{this.actionData.target=i.get("target")||null,i.set({methodName:null}),this.controlTargetEntity();var t=this.getView("methodName");t&&(t.translatedOptions=this.methodTranslatedOptions,t.setOptionList(this.methodOptionList))}),this.setupTargetOptions(),this.createView("target","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="target"]',defs:{name:"target",params:{options:this.targetOptionList}},readOnly:this.readOnly,translatedOptions:this.targetTranslatedOptions}),this.createView("methodName","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="methodName"]',defs:{name:"methodName",params:{options:this.methodOptionList,required:!0,translatedOptions:this.methodTranslatedOptions}},readOnly:this.readOnly}),this.createView("additionalParameters","views/fields/formula",{mode:"edit",model:i,selector:'.field[data-name="additionalParameters"]',defs:{name:"additionalParameters"},readOnly:this.readOnly,height:60,insertDisabled:!0,checkSyntaxDisabled:!0},t=>{t.validations=["json"],t.validateJson=function(){var t=this.model.get(this.name);if(t&&(t=t.trim())){try{return JSON.parse(t),!1}catch(t){}var e=this.translate("jsonInvalid","messages","Workflow");return this.showValidationMessage(e,".ace_editor"),!0}}});this.createView("helpText","advanced:views/workflow/fields/help-text",{mode:"detail",model:i,selector:'.field[data-name="helpText"]',defs:{name:"helpText"},readOnly:!0});this.listenTo(i,"change:methodName",()=>{var t=this.getHelperText(i.get("methodName")).toString();i.set("helpText",t)})},controlTargetEntity:function(){this.setupMethodOptionList()},setupMethodOptionList:function(){var t=[""],e={},i=this.entityType,s=this.actionData.target||"targetEntity";if(0===s.indexOf("link:")){var a=s.substr(5);i=this.getMetadata().get(["entityDefs",this.entityType,"links",a,"entity"])}else if(0===s.indexOf("created:")){var n=s.substr(8);i=this.options.flowchartCreatedEntitiesData[n].entityType}if(i){const s=this.getMetadata().get(["entityDefs","Workflow","serviceActions",i]);if(s&&Array.isArray(s))s.forEach(i=>{t.push(i),e[i]=this.getLabel(i,"serviceActions")});else if(s)for(const i in s)t.push(i),e[i]=this.getLabel(i,"serviceActions");[...Object.keys(this.getMetadata().get("app.workflow.serviceActions.Global")||{}),...Object.keys(this.getMetadata().get(`app.workflow.serviceActions.${i}`)||{})].forEach(i=>{t.includes(i)||(t.push(i),e[i]=this.getLabel(i,"serviceActions"))})}this.targetEntityType=i,this.methodOptionList=t,this.methodTranslatedOptions=e},setupTargetOptions:function(){const t=[],e={targetEntity:this.translateTargetItem("targetEntity",!0)};t.push("targetEntity");const i=this.getMetadata().get(["entityDefs",this.entityType,"links"])||{};Object.keys(i).forEach(s=>{if("belongsTo"!==i[s].type)return;const a="link:"+s;t.push(a),e[a]=this.translateTargetItem(a,!0)}),this.options.flowchartCreatedEntitiesData&&Object.keys(this.options.flowchartCreatedEntitiesData).forEach(i=>{const s="created:"+i;t.push(s),e[s]=this.translateTargetItem(s,!0)}),this.targetOptionList=t,this.targetTranslatedOptions=e},fetch:function(){const t=this.actionModel;this.getView("methodName").fetchToModel(),this.getView("additionalParameters").fetchToModel();let e=!1;if(e=e||this.getView("methodName").validate(),e=e||this.getView("additionalParameters").validate(),!e)return this.actionData.target=t.get("target")||null,this.actionData.targetEntityType=this.targetEntityType,this.actionData.methodName=this.getView("methodName").fetch().methodName,this.actionData.additionalParameters=this.getView("additionalParameters").fetch().additionalParameters,!0},getLabel:function(t,e,i){if(!t)return i;const s=this.targetEntityType+t.charAt(0).toUpperCase()+t.slice(1);return this.getLanguage().has(s,e,"Workflow")?this.translate(s,e,"Workflow"):null==i||this.getLanguage().has(t,e,"Workflow")?this.translate(t,e,"Workflow"):i},getHelperText:function(t){let e=this.getLabel(t,"serviceActionsHelp","");return this.getHelper().transformMarkdownText&&(e=e.replace(/"/g,'"'),e=this.getHelper().transformMarkdownText(e,{})),e}})}),define("advanced:views/workflow/action-modals/execute-formula",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/execute-formula",setup:function(){t.prototype.setup.call(this);var i=new e;i.set("formula",this.actionData.formula||null),this.createView("formula","views/fields/formula",{name:"formula",model:i,mode:this.readOnly?"detail":"edit",height:200,selector:'.field[data-name="formula"]',inlineEditDisabled:!0,targetEntityType:this.entityType})},fetch:function(){var t=this.getView("formula");return this.actionData.formula=t.fetch().formula,!0}})}),define("advanced:views/workflow/action-modals/create-related-entity",["advanced:views/workflow/action-modals/create-entity","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/create-related-entity",permittedLinkTypes:["belongsTo","hasMany","hasChildren"],getLinkOptions:function(){const t=[[""]];return Object.keys(this.getMetadata().get(`entityDefs.${this.entityType}.links`)||[]).sort((t,e)=>this.translate(t,"links",this.scope).localeCompare(this.translate(e,"links",this.scope))).forEach(e=>{const i=this.getMetadata().get(`entityDefs.${this.entityType}.links.${e}`);if(!i.disabled&&this.permittedLinkTypes.includes(i.type)){const i=this.translate(e,"links",this.entityType);t.push([e,i])}}),t},setupScope:function(t){if(this.actionData.link){const e=this.getMetadata().get(`entityDefs.${this.entityType}.links.${this.actionData.link}.entity`);if(this.scope=e,!e)throw new Error;this.wait(!0),this.getModelFactory().create(e,e=>{this.model=e,(this.actionData.fieldList||[]).forEach(t=>{const i=(this.actionData.fields[t]||{}).attributes||{};e.set(i,{silent:!0})}),t()})}else this.model=null,t()},setupFormulaView:function(){const t=new e,i=this.element.querySelector('[data-name="formula"] .field-info');i&&i.parentNode.removeChild(i),this.hasFormulaAvailable&&(t.set("formula",this.actionData.formula||null),this.createView("formula","views/fields/formula",{name:"formula",model:t,mode:this.readOnly?"detail":"edit",height:100,selector:'.field[data-name="formula"]',inlineEditDisabled:!0,targetEntityType:this.scope,params:{tooltip:!0},tooltipText:this.translate("createEntityFormula","tooltips","Workflow")},t=>{t.render()}))}})}),define("advanced:views/workflow/action-modals/create-notification",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/create-notification",data:function(){return _.extend({messageTemplateHelpText:this.translate("messageTemplateHelpText","messages","Workflow")},t.prototype.data.call(this))},afterRender:function(){t.prototype.afterRender.call(this),this.handleRecipient()},setup:function(){t.prototype.setup.call(this);const i=this.formModel=new e;i.name="Workflow",i.set({recipient:this.actionData.recipient,messageTemplate:this.actionData.messageTemplate,usersIds:this.actionData.userIdList,usersNames:this.actionData.userNames,specifiedTeamsIds:this.actionData.specifiedTeamsIds,specifiedTeamsNames:this.actionData.specifiedTeamsNames});const s=this.getRecipientOptions();this.createView("recipient","views/fields/enum",{selector:".field-recipient",model:i,mode:"edit",defs:{name:"recipient"},params:{options:s.map(t=>t[0])},translatedOptions:Object.fromEntries(s)}),this.createView("messageTemplate","views/fields/text",{selector:".field-messageTemplate",model:i,mode:"edit",defs:{name:"messageTemplate",params:{required:!1}}}),this.createView("users","views/fields/link-multiple",{mode:"edit",model:i,selector:".field-users",foreignScope:"User",defs:{name:"users"},readOnly:this.readOnly}),this.createView("specifiedTeams","views/fields/link-multiple",{selector:".field-specifiedTeams",model:i,mode:"edit",foreignScope:"Team",defs:{name:"specifiedTeams"},readOnly:this.readOnly}),this.listenTo(this.formModel,"change:recipient",()=>this.handleRecipient())},handleRecipient:function(){const t=this.formModel.attributes.recipient;"specifiedUsers"===t?this.$el.find(".cell-users").removeClass("hidden"):this.$el.find(".cell-users").addClass("hidden"),"specifiedTeams"===t?this.$el.find(".cell-specifiedTeams").removeClass("hidden"):this.$el.find(".cell-specifiedTeams").addClass("hidden")},getRecipientOptions:function(){const t=["specifiedUsers","teamUsers","specifiedTeams","followers","followersExcludingAssignedUser"];this.options.flowchartCreatedEntitiesData||t.push("currentUser");const e=[];return t.forEach(t=>{const i=this.translate(t,"emailAddressOptions","Workflow");e.push([t,i])}),this.getLinkOptions().forEach(t=>e.push(t)),e},getLinkOptions:function(){const t=this.getMetadata().get(`entityDefs.${this.entityType}.links`)||{},e=[];return Object.keys(t).forEach(i=>{if("belongsTo"===t[i].type||"hasMany"===t[i].type){if("User"!==t[i].entity)return;const s=this.translate("Related","labels","Workflow")+" · "+this.translate(i,"links",this.entityType);e.push([`link:${i}`,s])}}),Object.keys(t).forEach(i=>{const s=t[i].type;if("belongsTo"!==s&&"hasMany"!==s)return;const a=this.getMetadata().get(["entityDefs",this.entityType,"links",i,"entity"]);if(!a||"User"===a)return;if(this.getMetadata().get(["scopes",a,"stream"])){const t=this.translate("Related","labels","Workflow")+" · "+this.translate(i,"links",this.entityType)+" . "+this.translate("Followers");e.push([`link:${i}.followers`,t])}const n=this.getMetadata().get(`entityDefs.${a}.links`)||{};Object.keys(n).forEach(t=>{let o;const l=n[t].type;if("belongsTo"!==s&&"hasMany"===l)return;if("belongsTo"!==l&&"hasMany"!==l||(o=n[t].entity),"User"!==o)return;const r=this.translate("Related","labels","Workflow")+" · "+this.translate(i,"links",this.entityType)+" . "+this.translate(t,"links",a);e.push([`link:${i}.${t}`,r])})}),Object.keys(this.getMetadata().get(["entityDefs",this.entityType,"links"])||{}).forEach(t=>{if("belongsToParent"!==this.getMetadata().get(["entityDefs",this.entityType,"links",t,"type"]))return;let i=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate("assignedUser","links");e.push([`link:${t}.assignedUser`,i]),i=this.translate("Related","labels","Workflow")+" · "+this.translate(t,"links",this.entityType)+" . "+this.translate("Followers"),e.push([`link:${t}.followers`,i])}),e},fetch:function(){if(this.actionData.messageTemplate=(this.getView("messageTemplate").fetch()||{}).messageTemplate,this.actionData.recipient=this.formModel.attributes.recipient,"specifiedUsers"===this.actionData.recipient){const t=this.getView("users").fetch()||{};this.actionData.userIdList=t.usersIds,this.actionData.userNames=t.usersNames}else this.actionData.userIdList=[],this.actionData.userNames={};if(this.actionData.specifiedTeamsIds=[],this.actionData.specifiedTeamsNames={},"specifiedTeams"===this.actionData.recipient){const t=this.getView("specifiedTeams").fetch()||{};this.actionData.specifiedTeamsIds=t.specifiedTeamsIds,this.actionData.specifiedTeamsNames=t.specifiedTeamsNames}return!0}})}),define("advanced:views/workflow/action-modals/apply-assignment-rule",["advanced:views/workflow/action-modals/base","model"],function(t,e){return t.extend({template:"advanced:workflow/action-modals/apply-assignment-rule",data:function(){return _.extend({},t.prototype.data.call(this))},events:{},afterRender:function(){t.prototype.afterRender.call(this),this.controlVisibility()},setup:function(){t.prototype.setup.call(this);var i=new e;if(i.name="Workflow",this.actionModel=i,this.actionModel.targetEntityType=this.options.entityType,i.set({assignmentRule:this.actionData.assignmentRule,targetTeamId:this.actionData.targetTeamId,targetTeamName:this.actionData.targetTeamName,targetUserPosition:this.actionData.targetUserPosition,listReportId:this.actionData.listReportId,listReportName:this.actionData.listReportName,target:this.actionData.target||""}),this.createView("assignmentRule","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="assignmentRule"]',defs:{name:"assignmentRule",params:{options:this.getMetadata().get("entityDefs.Workflow.assignmentRuleList")||[]}},readOnly:this.readOnly}),this.createView("targetTeam","views/fields/link",{mode:"edit",model:i,selector:'.field[data-name="targetTeam"]',foreignScope:"Team",defs:{name:"targetTeam",params:{required:!0}},readOnly:this.readOnly}),this.createView("targetUserPosition","advanced:views/workflow/fields/target-user-position",{mode:"edit",model:i,selector:'.field[data-name="targetUserPosition"]',defs:{name:"targetUserPosition"},readOnly:this.readOnly}),this.createView("listReport","advanced:views/workflow/fields/list-report",{mode:"edit",model:i,selector:'.field[data-name="listReport"]',entityType:this.options.entityType,foreignScope:"Report",defs:{name:"listReport"},readOnly:this.readOnly}),this.options.flowchartCreatedEntitiesData){this.controlTargetEntity();const t=["","process"],e={"":this.translate("Target Entity","labels","Workflow")+" · "+this.translate(this.entityType,"scopeName"),process:this.translate("Process","labels","Workflow")};Object.keys(this.options.flowchartCreatedEntitiesData).forEach(function(i){t.push("created:"+i);const s=this.options.flowchartCreatedEntitiesData[i].link,a=this.options.flowchartCreatedEntitiesData[i].entityType,n=this.options.flowchartCreatedEntitiesData[i].numberId,o=this.options.flowchartCreatedEntitiesData[i].text;let l=this.translate("Created","labels","Workflow")+" · ";s&&(l+=this.translate(s,"links",this.entityType)+" - "),l+=this.translate(a,"scopeNames"),o?l+=" '"+o+"'":n&&(l+=" #"+n.toString()),e["created:"+i]=l},this),this.createView("target","views/fields/enum",{mode:"edit",model:i,selector:'.field[data-name="target"]',defs:{name:"target",params:{options:t}},readOnly:this.readOnly,translatedOptions:e}),this.listenTo(i,"change:target",function(){this.actionData.target=i.get("target")||null,i.set({listReportId:null,listReportName:null}),this.controlTargetEntity(),this.controlVisibility()},this)}this.listenTo(i,"change:assignmentRule",function(){this.controlVisibility()},this)},controlTargetEntity:function(){if(this.actionModel.targetEntityType=this.options.entityType,this.actionData.target)if(0===this.actionData.target.indexOf("created:")){this.actionModel.targetEntityType=null;var t=this.actionData.target.substr(8);this.options.flowchartCreatedEntitiesData[t]&&(this.actionModel.targetEntityType=this.options.flowchartCreatedEntitiesData[t].entityType)}else"process"===this.actionData.target&&(this.actionModel.targetEntityType=null)},controlVisibility:function(){if(this.isRendered()){var t=this.getView("listReport").$el.closest(".cell");"process"===this.actionData.target||"Least-Busy"!==this.actionModel.get("assignmentRule")?t.addClass("hidden"):t.removeClass("hidden")}},fetch:function(){var t=this.actionModel;this.getView("assignmentRule").fetchToModel(),this.getView("targetTeam").fetchToModel(),this.getView("targetUserPosition").fetchToModel(),this.getView("listReport").fetchToModel(),this.options.flowchartCreatedEntitiesData&&this.getView("target").fetchToModel();var e=!1;if(e=this.getView("assignmentRule").validate()||e,e=this.getView("targetTeam").validate()||e,e=this.getView("targetUserPosition").validate()||e,!(e=this.getView("listReport").validate()||e))return this.actionData.assignmentRule=t.get("assignmentRule"),this.actionData.targetTeamId=t.get("targetTeamId"),this.actionData.targetTeamName=t.get("targetTeamName"),this.actionData.targetUserPosition=t.get("targetUserPosition"),this.actionData.listReportId=t.get("listReportId"),this.actionData.listReportName=t.get("listReportName"),"Least-Busy"!==this.actionData.assignmentRule&&(this.actionData.listReportId=null,this.actionData.listReportName=null),this.options.flowchartCreatedEntitiesData&&(this.actionData.target=t.get("target")||null),!0}})}),define("advanced:views/workflow/action-fields/shift-days",["view","model"],function(t,e){return t.extend({template:"advanced:workflow/action-fields/shift-days",data:function(){return{shiftDaysOperator:this.shiftDaysOperator,value:this.value,unitValue:this.options.unitValue,readOnly:this.readOnly}},setup:function(){this.value=this.options.value,this.readOnly=this.options.readOnly;const t=this.options.value||0;this.value<0?(this.shiftDaysOperator="minus",this.value=-1*this.value):this.shiftDaysOperator="plus";let i=["minutes","hours","days","months"];this.options.isDate&&(i=["days","months"]),this.formModel=new e,this.formModel.name="Dummy",this.formModel.set({operator:t<0?"minus":"plus",value:t<0?-1*t:t,unit:this.options.unitValue||i[0]}),this.readOnly||(this.createView("operatorField","views/fields/enum",{name:"operator",selector:'[data-field="operator"]',model:this.formModel,mode:"edit",params:{options:["plus","minus"]},translatedOptions:{plus:this.translate("plus","labels","Workflow"),minus:this.translate("minus","labels","Workflow")}}),this.createView("valueField","views/fields/int",{name:"value",selector:'[data-field="value"]',model:this.formModel,mode:"edit",min:0}),this.createView("unitField","views/fields/enum",{name:"unit",selector:'[data-field="unit"]',model:this.formModel,mode:"edit",params:{options:i},translatedOptions:{minutes:this.translate("minutes","labels","Workflow"),hours:this.translate("hours","labels","Workflow"),days:this.translate("days","labels","Workflow"),months:this.translate("months","labels","Workflow")}}))},fetch:function(){let t=this.formModel.attributes.value;return"minus"===this.formModel.attributes.operator&&(t*=-1),{value:t,unit:this.formModel.attributes.unit}}})}),define("advanced:views/workflow/action-fields/execution-time",["view","model"],function(t,e){return t.extend({template:"advanced:workflow/action-fields/execution-time",data:function(){return{type:this.executionData.type,field:this.executionData.field,shiftDays:this.executionData.shiftDays,shiftUnit:this.executionData.shiftUnit,readOnly:this.readOnly}},setup:function(){this.executionData=this.options.executionData||{},this.readOnly=this.options.readOnly||!1,this.formModel=new e,this.formModel.name="Dummy",this.formModel.set({type:this.executionData.type||"immediately"}),this.readOnly||(this.createView("typeField","views/fields/enum",{model:this.formModel,selector:'[data-field="type"]',name:"type",mode:"edit",params:{options:["immediately","later"]},translatedOptions:{immediately:this.translate("immediately","labels","Workflow"),later:this.translate("later","labels","Workflow")}}),this.listenTo(this.formModel,"change:type",()=>this.handleType())),this.createFieldView(),this.createShiftDaysView()},afterRender:function(){this.handleType()},reRender:function(){return this.createFieldView(),this.createShiftDaysView(),t.prototype.reRender.call(this)},handleType:function(){if("later"!==(this.readOnly?this.executionData.type:this.formModel.attributes.type))return this.$el.find(".field-container").addClass("hidden"),void this.$el.find(".shift-days-container").addClass("hidden");this.$el.find(".field-container").removeClass("hidden"),this.$el.find(".shift-days-container").removeClass("hidden")},createFieldView:function(){this.createView("field","advanced:views/workflow/action-fields/date-field",{selector:".field-container",value:this.executionData.field,entityType:this.options.entityType,readOnly:this.readOnly})},createShiftDaysView:function(){this.createView("shiftDays","advanced:views/workflow/action-fields/shift-days",{selector:".shift-days-container",value:this.executionData.shiftDays||0,unitValue:this.executionData.shiftUnit||"days",readOnly:this.readOnly})},fetch:function(){const t=this.getView("shiftDays").fetch();return{field:this.getView("field").fetchValue(),type:this.formModel.attributes.type,shiftValue:t.value,shiftUnit:t.unit}}})}),define("advanced:views/workflow/action-fields/date-field",["view","model"],function(t,e){return t.extend({template:"advanced:workflow/action-fields/date-field",data:function(){return{value:this.options.value,entityType:this.entityType,stringValue:this.stringValue,readOnly:this.readOnly}},setup:function(){if(this.entityType=this.options.entityType,this.readOnly=this.options.readOnly,this.readOnly)this.buildStringValue();else{this.formModel=new e,this.formModel.name="Dummy",this.formModel.set({executionField:this.options.value});const t=this.getOptions();this.createView("executionField","views/fields/enum",{name:"executionField",selector:'[data-field="executionField"]',model:this.formModel,mode:"edit",params:{options:t.map(t=>t[0])},translatedOptions:Object.fromEntries(t)})}},getOptions:function(){const t=[],e=["date","datetime"],i=[],s=this.getMetadata().get(`entityDefs.${this.entityType}.fields`)||{};Object.keys(s).forEach(t=>{s[t].utility||s[t].directAccessDisabled&&!s[t].loaderClassName||e.includes(s[t].type)&&i.push(t)}),t.push(["",this.translate("now","labels","Workflow")]),i.forEach(e=>{t.push([e,this.translate(e,"fields",this.entityType)])});const a={},n=this.getMetadata().get(`entityDefs.${this.entityType}.links`);Object.keys(n).forEach(t=>{const i=[];if("belongsTo"===n[t].type){const s=n[t].entity;if(!s)return;const o=this.getMetadata().get(`entityDefs.${s}.fields`)||{};Object.keys(o).forEach(t=>{o[t].utility||o[t].directAccessDisabled||e.includes(o[t].type)&&i.push(t)}),a[t]=i}});for(const e in a)a[e].forEach(i=>{const s=this.translate(e,"links",this.entityType)+" . "+this.translate(i,"fields",n[e].entity);t.push([`${e}.${i}`,s])});return t},buildStringValue:function(){const t=this.options.value;if(t){const e=this.entityType;if(t.includes(".")){const[i,s]=t.split("."),a=this.getMetadata().get(`entityDefs.${this.entityType}.links.${i}.entity`);return void(this.stringValue=this.translate(i,"links",e)+" . "+this.translate(s,"fields",a))}return void(this.stringValue=this.translate(t,"fields",e))}this.stringValue=this.translate("now","labels","Workflow")},fetchValue:function(){return this.formModel.attributes.executionField}})}),define("advanced:views/workflow/action-fields/add-field",["view"],function(t){return t.extend({templateContent:'\n \n ',setup:function(){this.addActionHandler("showAddField",()=>{const t=this.options.fieldList.filter(t=>!this.options.addedFieldList.includes(t));this.createView("modal","advanced:views/workflow/modals/add-field",{fieldList:t,scope:this.options.scope}).then(t=>{t.render(),this.listenToOnce(t,"add",t=>{this.options.onAdd(t)})})})}})}),define("advanced:views/workflow/action-fields/subjects/field",["view","model"],function(t,e){return t.extend({template:"advanced:workflow/action-fields/subjects/field",data:function(){return{value:this.options.value,entityType:this.entityType,listHtml:this.listHtml,readOnly:this.readOnly}},setup:function(){const t=this.entityType=this.options.entityType,i=this.options.scope,s=this.options.field;this.readOnly=this.options.readOnly,this.foreignScope=null;let a=this.options.value;const n=this.fieldType=this.getMetadata().get(`entityDefs.${i}.fields.${s}.type`)||"base";if("link"!==n&&"linkMultiple"!==n||(this.foreignScope=this.getMetadata().get(`entityDefs.${i}.links.${s}.entity`)),this.readOnly){if(a&&~a.indexOf(".")){const e=a.split("."),i=this.getMetadata().get(`entityDefs.${t}.links.${e[0]}.entity`);this.listHtml=this.translate("Field","labels","Workflow")+" · "+this.translate(e[0],"links",t)+" . "+this.translate(e[1],"fields",i)}else this.listHtml=this.translate("Field","labels","Workflow")+" · "+this.translate(a,"fields",t);return}const o=this.formModel=new e;o.name="Dummy";const l=this.getFieldOptions();!a&&l.length&&(a=l[0][0]),o.set({value:a}),this.createView("valueField","views/fields/enum",{selector:'[data-field="value"]',model:o,name:"value",mode:"edit",params:{options:l.map(t=>t[0])},translatedOptions:Object.fromEntries(l)})},getFieldOptions:function(){const t=[],e=this.fieldType,i=this.entityType,s=[],a=this.getMetadata().get(`entityDefs.${i}.fields`),n=this.getMetadata().get(`entityDefs.Workflow.fieldTypeComparison.${e}`)||[];Object.keys(a).sort((t,e)=>this.translate(t,"fields",i).localeCompare(this.translate(e,"fields",i))).forEach(t=>{if((a[t].type===e||n.includes(a[t].type))&&!(a[t].directAccessDisabled&&!a[t].loaderClassName||a[t].disabled||a[t].utility)){if("link"===e||"linkMultiple"===e){if(this.getMetadata().get(`entityDefs.${i}.links.${t}.entity`)!==this.foreignScope)return}s.push(t)}}),n.includes("id")&&"linkParent"===e&&s.unshift("id"),s.forEach(e=>{const s=this.translate(e,"fields",i);t.push([e,s])});const o={},l=this.getMetadata().get(`entityDefs.${i}.links`);Object.keys(l).sort().forEach(t=>{const i=[];if("belongsTo"!==l[t].type)return;if(l[t].disabled||l[t].utility)return;const s=l[t].entity;if(!s)return;const a=this.getMetadata().get(`entityDefs.${s}.fields`);Object.keys(a).sort((t,e)=>this.translate(t,"fields",s).localeCompare(this.translate(e,"fields",s))).forEach(t=>{if((a[t].type===e||n.includes(a[t].type))&&!(a[t].directAccessDisabled&&!a[t].loaderClassName||a[t].disabled||a[t].utility)){if("link"===e||"linkMultiple"===e){if(this.getMetadata().get(`entityDefs.${s}.links.${t}.entity`)!==this.foreignScope)return}i.push(t)}}),o[t]=i});for(const e in o)o[e].forEach(s=>{const a=this.translate(e,"links",i)+" . "+this.translate(s,"fields",l[e].entity);t.push([`${e}.${s}`,a])});return t},fetchValue:function(){return this.formModel.attributes.value}})}),define("advanced:views/target-list/record/panels/sync-with-reports",["views/record/panels/side"],function(t){return t.extend({fieldList:["syncWithReportsEnabled","syncWithReports","syncWithReportsUnlink"],actionList:[{name:"syncWithReport",label:"Sync Now",acl:"edit",action:"syncWithReports"}],setup:function(){t.prototype.setup.call(this)},actionSyncWithReports:function(){this.model.get("syncWithReportsEnabled")&&(Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("Report/action/syncTargetListWithReports",{targetListId:this.model.id}).then(()=>{Espo.Ui.success(this.translate("Done")),this.model.trigger("after:relate")}))}})}),define("advanced:views/target-list/record/panels/relationship",["crm:views/target-list/record/panels/relationship"],function(t){return t.extend({actionPopulateFromReport:function(t){let e=t.link,i="list"+Espo.Utils.upperCaseFirst(e);Espo.Ui.notify(" ... "),this.createView("dialog","views/modals/select-records",{scope:"Report",multiple:!1,createButton:!1,primaryFilterName:i},t=>{t.render(),Espo.Ui.notify(!1),this.listenToOnce(t,"select",t=>{Espo.Ajax.postRequest("Report/action/populateTargetList",{id:t.id,targetListId:this.model.id}).then(()=>{Espo.Ui.success(this.translate("Linked")),this.collection.fetch()})})})}})}),define("advanced:views/target-list/fields/sync-with-reports",["views/fields/link-multiple"],function(t){return t.extend({getSelectPrimaryFilterName:function(){return"listTargets"}})}),define("advanced:views/report-panel/list",["views/list"],function(t){return t.extend({actionRebuildPanels:function(){Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("ReportPanel/action/rebuild",{}).then(()=>{Espo.Ui.success(this.translate("Done"))})}})}),define("advanced:views/report-panel/record/list","views/record/list",function(t){return t.extend({massActionList:[]})}),define("advanced:views/report-panel/record/edit",["views/record/edit"],function(t){return t.extend({sideDisabled:!0})}),define("advanced:views/report-panel/record/edit-small",["views/record/edit-small"],function(t){return t.extend({sideDisabled:!0})}),define("advanced:views/report-panel/record/panels/report-panel-bottom",["advanced:views/report-panel/record/panels/report-panel-side"],function(t){return t.extend({})}),define("advanced:views/report-panel/fields/report",["views/fields/link","advanced:report-helper"],function(t,e){return t.extend({createDisabled:!0,setup:function(){t.prototype.setup.call(this),this.reportHelper=new e(this.getMetadata(),this.getLanguage(),this.getDateTime(),this.getConfig(),this.getPreferences())},select:function(e){if(this.model.set("reportType",e.get("type"),{isManual:!0}),this.model.set("reportEntityType",e.get("entityType")),"Grid"!==e.get("type"))"List"===e.get("type")&&this.model.set("displayTotal",!1),this.model.set("column",null);else{let t=null,i=e.get("columns")||[];i.length&&(t=i[0]),i=i.filter(t=>this.reportHelper.isColumnNumeric(t,e)),(e.get("groupBy")||[]).length<2&&i.length>1&&i.unshift(""),this.model.set("column",t),this.model.set("columnsData",e.get("columnsData")),this.model.trigger("update-columns",i)}t.prototype.select.call(this,e)},clearLink:function(){t.prototype.clearLink.call(this),this.model.set("reportType",null,{isManual:!0}),this.model.set("displayTotal",!1)}})}),define("advanced:views/report-panel/fields/entity-type",["views/fields/entity-type"],function(t){return t.extend({setupOptions:function(){var t=this.scopesMetadataDefs=this.getMetadata().get("scopes");this.params.options=Object.keys(t).filter(t=>{if(this.checkAvailability(t))return!0}),this.params.options.push("Team"),this.params.options.sort((t,e)=>this.translate(t,"scopeNames").localeCompare(this.translate(e,"scopeNames"))),this.params.options.unshift("")}})}),define("advanced:views/report-panel/fields/dynamic-logic-visible",["views/admin/field-manager/fields/dynamic-logic-conditions"],function(t){return t.extend({setupEntityType:function(){this.options.scope=this.scope=this.model.get("entityType"),this.listenTo(this.model,"change:entityType",()=>{this.options.scope=this.scope=this.model.get("entityType"),this.scope&&this.createStringView()})},setup:function(){this.addActionHandler("editConditions",()=>this.edit()),this.setupEntityType(),this.conditionGroup=Espo.Utils.cloneDeep((this.model.get(this.name)||{}).conditionGroup||[]),this.createStringView()}})}),define("advanced:views/report-panel/fields/column",["views/fields/enum","advanced:views/report/fields/columns"],function(t,e){return t.extend({setup:function(){t.prototype.setup.call(this),this.listenTo(this.model,"update-columns",t=>{this.params.options=t,e.prototype.setupTranslatedOptions.call(this,this.model.get("reportEntityType")),this.translatedOptions[""]=this.translate("All"),this.setupColumnLabelTranslation(),this.reRender()}),this.listenTo(this.model,"change:columnList",()=>{this.model.trigger("update-columns",this.model.get("columnList")||[])})},setupOptions:function(){this.params.options=Espo.Utils.clone(this.model.get("columnList")),this.model.isNew||"Grid"!==this.model.get("reportType")||this.params.options||this.listenToOnce(this.model,"sync",()=>{this.model.get("columnList")&&(this.params.options=Espo.Utils.clone(this.model.get("columnList")),e.prototype.setupTranslatedOptions.call(this,this.model.get("reportEntityType")),this.translatedOptions[""]=this.translate("All"),this.setupColumnLabelTranslation(),this.reRender())}),!this.params.options&&this.model.get("column")&&(this.params.options=[this.model.get("column")]),this.params.options||(this.params.options=[]),e.prototype.setupTranslatedOptions.call(this,this.model.get("reportEntityType")),this.translatedOptions[""]=this.translate("All"),this.setupColumnLabelTranslation()},setupColumnLabelTranslation:function(){const t=this.model.get("columnsData")||{};this.params.options.forEach(e=>{const i=t[e]||{};i.label&&(this.translatedOptions[e]=i.label)})}})}),define("advanced:views/report-filter/list",["views/list"],function(t){return t.extend({actionRebuildFilters:function(){Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("ReportFilter/action/rebuild",{}).then(()=>{Espo.Ui.success(this.translate("Done"))})}})}),define("advanced:views/report-filter/record/list","views/record/list",function(t){return t.extend({massActionList:[]})}),define("advanced:views/report-filter/record/edit",["views/record/edit"],function(t){return t.extend({sideDisabled:!0})}),define("advanced:views/report-filter/record/edit-small",["views/record/edit-small"],function(t){return t.extend({sideDisabled:!0})}),define("advanced:views/report-filter/fields/report",["views/fields/link"],function(t){return t.extend({selectPrimaryFilterName:"list",createDisabled:!0,getSelectFilters:function(){var t=this.model.get("entityType");if(t)return{entityType:{type:"equals",value:[t]}}}})}),define("advanced:views/report/runtime-filters",["view"],t=>class extends t{template="advanced:report/runtime-filters";data(){return{filterDataList:this.getFilterDataList()}}setup(){this.wait(!0),this.filterList=this.options.filterList,this.filtersData=this.options.filtersData||{},this.ignoreFilterList=[],this.getModelFactory().create(this.options.entityType,t=>{this.model=t,this.getCollectionFactory().create(this.options.entityType).then(t=>{Espo.loader.require("search-manager",e=>{this.searchManager=new e(t,"report",null,this.getDateTime()),"setTimeZone"in this.searchManager&&this.searchManager.setTimeZone(null),this.createFilters(),this.wait(!1)})})})}createFilters(){this.options.filterList.forEach(t=>{const e=this.filtersData[t]||this.getFilterDefaultData(t)||null;this.createFilter(t,e)})}getFilterDefaultData(t){const e=this.getMetadata().get(["entityDefs",this.model.name,"fields",t,"type"]);if(["date","datetime","datetimeOptional"].includes(e))return{type:"currentYear",field:t}}getFilterDataList(){const t=[];return this.options.filterList.forEach(e=>{~this.ignoreFilterList.indexOf(e)||t.push({key:`filter-${e}`,name:e})}),t}createFilter(t,e,i){e=e||{};let s,a=this.model.name,n=t;~t.indexOf(".")&&(s=t.split(".")[0],n=t.split(".")[1],a=this.getMetadata().get(`entityDefs.${this.model.name}.links.${s}.entity`)),a&&n&&(this.getMetadata().get(["entityDefs",a,"fields",n])?this.getModelFactory().create(a,o=>{this.createView("filter-"+t,"views/search/filter",{name:n,model:o,params:e,selector:`.filter[data-name="${t}"]`,notRemovable:!0},e=>{e.once("after:render",()=>{if(~t.indexOf(".")){const t=this.translate(s,"links",this.options.entityType)+" . "+this.translate(n,"fields",a);e.$el.find(".control-label").html(t)}"function"==typeof i&&i()})})}):this.ignoreFilterList.push(t))}fetchRaw(){const t={};return this.filterList.forEach(e=>{if(!this.hasView(`filter-${e}`))return;const i=this.getView(`filter-${e}`).getView("field");if(!i)return;let s=i.fetchSearch();const a=(t,e)=>{const i=t.type;if("or"===i||"and"===i)return void(t.value||[]).forEach(t=>a(t,e));let s=t.attribute||t.field||e;if(e.includes(".")&&!s.includes(".")){s=e.split(".")[0]+"."+s}t.field=s,t.attribute=s};s=s||null,s&&a(s,e),t[e]=s}),t}fetch(){const t=this.fetchRaw();return this.searchManager.setAdvanced(t),this.searchManager.getWhere()}}),define("advanced:views/report/result",["views/main","advanced:report-helper"],function(t,e){return t.extend({template:"advanced:report/result",name:"result",shortcutKeys:{"Control+Enter":function(t){this.getReportView().run(),t.preventDefault(),t.stopPropagation()}},setup:function(){const t=new e(this.getMetadata(),this.getLanguage(),this.getDateTime(),this.getConfig(),this.getPreferences()),i=t.getReportView(this.model);this.setupHeader(),this.createView("report",i,{selector:".report-container",model:this.model,reportHelper:t,showChartFirst:!0,isLargeMode:!0})},getReportView:function(){return this.getView("report")},setupHeader:function(){this.createView("header","views/header",{model:this.model,fullSelector:"#main > .header",scope:this.scope})},getHeader:function(){let t=this.getHelper().escapeString(this.model.get("name"));""===t&&(t=this.model.id);const e=this.options.rootUrl||this.options.params.rootUrl||`#${this.scope}`,i=this.getHeaderIconHtml();return this.buildHeaderHtml([`${i}${this.getLanguage().translate(this.scope,"scopeNamesPlural")}`,`${t}`])},actionBackToView:function(){const t={id:this.model.id,model:this.model};t.rootUrl=this.options.rootUrl||this.options.params.rootUrl,this.getRouter().navigate(`#${this.scope}/view/${this.model.id}`,{trigger:!1}),this.getRouter().dispatch(this.scope,"view",t)}})}),define("advanced:views/report/list","views/list-with-categories",function(t){return t.extend({createButton:!1,quickCreate:!1,currentCategoryId:null,currentCategoryName:"",categoryScope:"ReportCategory",categoryField:"category",categoryFilterType:"inCategory",getCreateAttributes:function(){return{categoryId:this.currentCategoryId,categoryName:this.currentCategoryName}},setup:function(){t.prototype.setup.call(this),this.addMenuItem("buttons",{action:"create",html:' '+this.translate("Create "+this.scope,"labels",this.scope),style:"default",acl:"create",aclScope:"Report"},!0)},actionCreate:function(){this.createView("createModal","advanced:views/report/modals/create",{},function(t){t.render(),this.listenToOnce(t,"create",function(e){t.close(),this.getRouter().dispatch("Report","create",{entityType:e.entityType,type:e.type,categoryId:this.currentCategoryId,categoryName:this.currentCategoryName,returnUrl:this.lastUrl||"#"+this.scope,returnDispatchParams:{controller:this.scope,action:null,options:{isReturn:!0}}}),this.getRouter().navigate("#Report/create/entityType="+e.entityType+"&type="+e.type,{trigger:!1})},this)})}})}),define("advanced:views/report/detail",["views/detail"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this);const e=this.getConfig().get("version")||"",i=e.split(".");if("dev"===e||i.length>2&&100*parseInt(i[0])+parseInt(i[1])>=506||"@@version"===e){let t;t=["Grid","JointGrid"].includes(this.model.attributes.type)?'':'',this.addMenuItem("buttons",{action:"show",link:`#Report/show/${this.model.id}`,iconHtml:t,text:this.translate("Results View","labels","Report")})}},actionShow:function(){const t={id:this.model.id,model:this.model},e=this.options.rootUrl||this.options.params.rootUrl;e&&(t.rootUrl=e),this.getRouter().navigate(`#Report/show/${this.model.id}`,{trigger:!1}),this.getRouter().dispatch("Report","show",t)}})}),define("advanced:views/report/reports/list",["advanced:views/report/reports/base"],t=>class extends t{setup(){this.initReport()}getListLayout(t){const e=this.model.get("entityType"),i=[],s=Espo.Utils.cloneDeep(this.model.get("columnsData")||{});return(this.model.get("columns")||[]).forEach(a=>{const n=s[a]||{};if(n.name=a,t||!n.exportOnly){if(~a.indexOf(".")){const t=a.split(".");n.name=a.replace(".","_"),n.notSortable=!0;const i=t[0],s=t[1],o=this.getMetadata().get(`entityDefs.${e}.links.${i}.entity`);n.customLabel=this.translate(i,"links",e)+" . "+this.translate(s,"fields",o);const l=this.getMetadata().get(`entityDefs.${o}.fields.${s}.type`);"enum"===l?(n.view="views/fields/foreign-enum",n.options={params:{link:i,field:s}}):"image"===l?(n.view="views/fields/image",n.options={foreignScope:o}):"file"===l?(n.view="views/fields/file",n.options={foreignScope:o}):"date"===l?(n.view="views/fields/foreign-date",n.notSortable=!1,n.options={params:{link:i,field:s}}):"datetime"===l?(n.view="views/fields/foreign-datetime",n.options={params:{link:i,field:s}},n.notSortable=!1):"link"===l?n.view="advanced:views/fields/foreign-link":"email"===l?(n.view="views/fields/email",n.notSortable=!1):"phone"===l?(n.view="views/fields/phone",n.notSortable=!1):"array"===l?(n.view="views/fields/foreign-array",n.options={params:{link:i,field:s}}):"multiEnum"===l?(n.view="views/fields/foreign-multi-enum",n.options={params:{link:i,field:s}}):"checklist"===l?(n.view="views/fields/foreign-checklist",n.options={params:{link:i,field:s}}):"urlMultiple"===l?(n.view="views/fields/foreign-url-multiple",n.options={params:{link:i,field:s}}):"varchar"===l?(n.view="views/fields/varchar",n.notSortable=!1):"bool"===l?(n.view="views/fields/bool",n.notSortable=!1):"currencyConverted"===l&&(n.view="views/fields/currency-converted",n.notSortable=!1)}else{const t=this.getMetadata().get(["entityDefs",e,"fields",a,"type"]);("linkMultiple"===t||"attachmentMultiple"===t)&&(n.notSortable=!0)}i.push(n)}}),i}export(){const t=this.getRuntimeFilters(),e={id:this.model.id},i=[];this.getListLayout(!0).forEach(t=>{i.push(t.name)});const s={fieldList:i,scope:this.model.get("entityType")};this.createView("dialogExport","views/export/modals/export",s,i=>{i.render(),this.listenToOnce(i,"proceed",i=>{i.exportAllFields||(e.attributeList=i.attributeList,e.fieldList=i.fieldList),e.where=t,e.format=i.format,e.params=i.params,Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("Report/action/exportList",e,{timeout:0}).then(t=>{Espo.Ui.notify(!1),"id"in t&&(window.location=this.getBasePath()+"?entryPoint=download&id="+t.id)})})})}prepareBeforeRun(){this.resultContainerElement=this.element.querySelector(".report-results-container");const t=!!this.resultContainerElement.querySelector(".report-list .no-data");this.resultContainerElement.innerHTML="",this.listContainerElement=document.createElement("div"),this.listContainerElement.classList.add("report-list"),t||(this.element.classList.add("no-bottom-margin"),this.resultContainerElement.classList.add("no-bottom-margin"),this.listContainerElement.classList.add("no-bottom-margin")),this.resultContainerElement.append(this.listContainerElement)}async run(){Espo.Ui.notify(" ... "),this.prepareBeforeRun();const t=await this.getCollectionFactory().create(this.model.get("entityType"));let e=`Report/action/runList?id=${this.model.id}`;if(this.isPreview){e="Report/runListPreview?data="+encodeURIComponent(JSON.stringify(this.model.attributes))}t.url=e,t.where=this.getRuntimeFilters();const i=this.model.get("orderByList");if(i){const e=i.split(":");t.setOrder&&t.setOrder(e[1],"ASC"===e[0]?"asc":"desc",!0)}return t.maxSize=this.getConfig().get("recordsPerPage")||20,this.listenToOnce(t,"sync",()=>{this.storeRuntimeFilters(),this.createView("list","advanced:views/record/list-for-report",{selector:".report-list",collection:t,listLayout:this.getListLayout(),displayTotalCount:!0,reportId:this.model.id,runtimeWhere:t.where,pagination:this.options.isLargeMode,isPreview:this.isPreview},async t=>{Espo.Ui.notify(!1),this.listenTo(t,"after:render",()=>{t.$el.find("> .list").addClass("no-side-margin").addClass("no-bottom-margin").addClass("bottom-border-radius"),t.$el.find(".list-buttons-container").addClass("margin-bottom")}),this.element.classList.remove("no-bottom-margin"),this.resultContainerElement.classList.remove("no-bottom-margin"),this.listContainerElement.classList.remove("no-bottom-margin"),await t.render();!!this.resultContainerElement.querySelector(".report-list .no-data")||this.listContainerElement.classList.add("no-bottom-margin")})}),t.fetch()}}),define("advanced:views/report/reports/grid2",["advanced:views/report/reports/base"],t=>class extends t{setup(){this.initReport()}export(){const t=this.getRuntimeFilters(),e={},i=this.model.get("entityType"),s=(this.model.get("columns")||[]).filter(t=>this.options.reportHelper.isColumnSummary(t));s.forEach(t=>{e[t]=this.options.reportHelper.translateGroupName(t,i)});const a={scope:i,reportType:"Grid",columnList:s,columnsTranslation:e};let n;const o={id:this.model.id,where:t};this.createView("dialogExport","advanced:views/report/modals/export-grid",a,t=>{t.render(),this.listenToOnce(t,"proceed",t=>{o.column=t.column,"csv"===t.format?(n="Report/action/exportGridCsv",o.column=t.column):"xlsx"===t.format&&(n="Report/action/exportGridXlsx"),Espo.Ui.notify(" ... "),Espo.Ajax.postRequest(n,o,{timeout:0}).then(t=>{Espo.Ui.notify(!1),"id"in t&&(window.location=this.getBasePath()+"?entryPoint=download&id="+t.id)})})})}async run(){Espo.Ui.notify(" ... ");const t=this.$el.find(".report-results-container");t.empty();const e=this.getRuntimeFilters();let i;const s=this.isPreview?this.model.attributes:null;i=this.isPreview?await Espo.Ajax.postRequest("Report/runGridPreview",{where:e,data:s},{timeout:0}):await Espo.Ajax.getRequest("Report/action/run",{id:this.model.id,where:e,data:s},{timeout:0}),Espo.Ui.notify(!1),this.result=i,this.storeRuntimeFilters(),this.processInformation();const a=this.options.isLargeMode?"h4":"h5",n=this.options.isLargeMode?60:50,o=i.summaryColumnList||i.columnList;o.forEach((e,s)=>{const o=$("").addClass("column-"+s).addClass("section").addClass("sections-container"),l=$("<"+a+' style="margin-bottom: 25px">'+this.options.reportHelper.formatColumn(e,i)+""+a+">");this.options.isLargeMode||l.addClass("text-soft"),n&&s&&l.css("marginTop",n);const r=$(" ").addClass("report-table clearfix").addClass("report-table-"+s).addClass("section"),d=$(" ").addClass("report-chart").addClass("report-chart-"+s).addClass("section");this.chartType&&r.addClass("margin-bottom"),o.append(l),this.options.showChartFirst||o.append(r),this.chartType&&o.append(d),this.options.showChartFirst&&o.append(r),t.append(o)}),o.forEach((t,e)=>{if(this.createView(`reportTable${e}`,"advanced:views/report/reports/tables/grid2",{selector:`.report-results-container .column-${e} .report-table`,column:t,result:i,reportHelper:this.options.reportHelper,hasChart:!!this.chartType,isLargeMode:this.options.isLargeMode,showChartFirst:this.options.showChartFirst},t=>{t.render()}),this.chartType){const s="advanced:views/report/reports/charts/grid2"+Espo.Utils.camelCaseToHyphen(this.chartType);this.createView("reportChart"+e,s,{selector:`.report-results-container .column-${e} .report-chart`,column:t,result:i,reportHelper:this.options.reportHelper,colors:i.chartColors||{},color:i.chartColor||null},t=>{t.render(),this.listenTo(t,"click-group",(t,e,i)=>{this.showSubReport(t,e,i)})})}})}processInformation(){this.result.emptyStringGroupExcluded?this.$information.removeClass("hidden").text(this.translate("emptyStringGroupExcluded","messages","Report")):this.$information.addClass("hidden").text("")}}),define("advanced:views/report/reports/grid0",["advanced:views/report/reports/grid1"],t=>class extends t{}),define("advanced:views/report/reports/tables/grid1",["view","advanced:views/report/reports/tables/grid2"],function(t,e){return t.extend({templateContent:'\n \n ',columnWidthPx:130,STUB_KEY:"__STUB__",setup:function(){this.column=this.options.column,this.result=this.options.result,this.reportHelper=this.options.reportHelper},events:{'click [data-action="showSubReport"]':function(t){const e=$(t.currentTarget).attr("data-group-value");this.trigger("click-group",e)}},formatCellValue:function(t,i,s){return e.prototype.formatCellValue.call(this,t,i,s)},formatNumber:function(t,i){return e.prototype.formatNumber.call(this,t,i)},calculateColumnWidth:function(){const t=this.result.columnList.length+1;let e;return e=this.options.isLargeMode?2===t||3===t?22:4===t?20:100/t:2===t?35:3===t?30:100/t,e},afterRender:function(){const t=this.result;let e=this.result.groupByList[0],i=!1;0===this.result.groupByList.length&&(i=!0,e=this.STUB_KEY);const s=this.result.columnList.length+1,a=this.calculateColumnWidth(),n=$(' |