소재지 ₍₍◝(・'ω'・)◟⁾⁾ 🐟️?看XM(^_−)☆哈先看看刚看过卡卡国看过了回来冷藏柜好极过估计 PNG %k25u25%fgd5n!/*! espocrm 2023-11-08 */ define("views/email/record/detail",["exports","views/record/detail"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{sideView="views/email/record/detail-side";duplicateAction=!1;shortcutKeyCtrlEnterAction="send";layoutNameConfigure(){if(!this.model.isNew()){var t=this.model.get("status");if("Draft"!==t){let e="Sent"===t?!0:!1;"Archived"===t&&(this.model.get("createdById")!==this.getHelper().getAppParam("systemUserId")&&this.model.get("createdById")&&!this.model.get("isImported")||(e=!0)),e&&(this.layoutName+="Restricted"),this.isRestricted=e}else this.layoutName="composeSmall"}}init(){super.init(),this.layoutNameConfigure()}setup(){super.setup(),["Archived","Sent"].includes(this.model.get("status"))&&(this.shortcutKeyCtrlEnterAction="save"),this.addButtonEdit({name:"send",action:"send",label:"Send",style:"primary",title:"Ctrl+Enter"},!0),this.addButtonEdit({name:"saveDraft",action:"save",label:"Save Draft",title:"Ctrl+S"},!0),this.addButton({name:"sendFromDetail",label:"Send",hidden:!0}),this.controlSendButton(),this.listenTo(this.model,"change:status",()=>this.controlSendButton()),"Draft"!==this.model.get("status")&&this.model.has("isRead")&&!this.model.get("isRead")&&this.model.set("isRead",!0),this.listenTo(this.model,"sync",()=>{this.model.get("isRead")||"Draft"===this.model.get("status")||this.model.set("isRead",!0)}),this.model.get("isHtml")&&this.model.get("bodyPlain")||this.listenToOnce(this.model,"sync",()=>{this.model.get("isHtml")&&this.model.get("bodyPlain")&&this.showActionItem("showBodyPlain")}),this.model.get("isUsers")&&(this.addDropdownItem({label:"Mark as Important",name:"markAsImportant",hidden:this.model.get("isImportant")}),this.addDropdownItem({label:"Unmark Importance",name:"markAsNotImportant",hidden:!this.model.get("isImportant")}),this.addDropdownItem({label:"Move to Trash",name:"moveToTrash",hidden:this.model.get("inTrash")}),this.addDropdownItem({label:"Retrieve from Trash",name:"retrieveFromTrash",hidden:!this.model.get("inTrash")}),this.addDropdownItem({label:"Move to Folder",name:"moveToFolder"})),this.addDropdownItem({label:"Show Plain Text",name:"showBodyPlain",hidden:!(this.model.get("isHtml")&&this.model.get("bodyPlain"))}),this.addDropdownItem({label:"Print",name:"print"}),this.listenTo(this.model,"change:isImportant",()=>{this.model.get("isImportant")?(this.hideActionItem("markAsImportant"),this.showActionItem("markAsNotImportant")):(this.hideActionItem("markAsNotImportant"),this.showActionItem("markAsImportant"))}),this.listenTo(this.model,"change:inTrash",()=>{this.model.get("inTrash")?(this.hideActionItem("moveToTrash"),this.showActionItem("retrieveFromTrash")):(this.hideActionItem("retrieveFromTrash"),this.showActionItem("moveToTrash"))}),this.handleTasksField(),this.listenTo(this.model,"change:tasksIds",()=>this.handleTasksField()),this.getUser().isAdmin()&&this.addDropdownItem({label:"View Users",name:"viewUsers"}),this.setFieldReadOnly("replied"),"Draft"===this.model.get("status")&&(this.setFieldReadOnly("dateSent"),this.controlSelectTemplateField(),this.on("after:mode-change",()=>this.controlSelectTemplateField())),this.isRestricted&&(this.handleAttachmentField(),this.listenTo(this.model,"change:attachmentsIds",()=>this.handleAttachmentField()),this.handleCcField(),this.listenTo(this.model,"change:cc",()=>this.handleCcField()),this.handleBccField(),this.listenTo(this.model,"change:bcc",()=>this.handleBccField()))}controlSelectTemplateField(){this.mode,this.MODE_EDIT,this.hideField("selectTemplate")}controlSendButton(){if("Draft"===this.model.get("status"))return this.showActionItem("send"),this.showActionItem("saveDraft"),this.showActionItem("sendFromDetail"),this.hideActionItem("save"),void this.hideActionItem("saveAndContinueEditing");this.hideActionItem("sendFromDetail"),this.hideActionItem("send"),this.hideActionItem("saveDraft"),this.showActionItem("save"),this.showActionItem("saveAndContinueEditing")}actionSaveDraft(){this.actionSaveAndContinueEditing()}actionMarkAsImportant(){Espo.Ajax.postRequest("Email/inbox/important",{id:this.model.id}),this.model.set("isImportant",!0)}actionMarkAsNotImportant(){Espo.Ajax.deleteRequest("Email/inbox/important",{id:this.model.id}),this.model.set("isImportant",!1)}actionMoveToTrash(){Espo.Ajax.postRequest("Email/inbox/inTrash",{id:this.model.id}).then(()=>{Espo.Ui.warning(this.translate("Moved to Trash","labels","Email"))}),this.model.set("inTrash",!0),this.model.collection&&this.model.collection.trigger("moving-to-trash",this.model.id)}actionRetrieveFromTrash(){Espo.Ajax.deleteRequest("Email/inbox/inTrash",{id:this.model.id}).then(()=>{Espo.Ui.warning(this.translate("Retrieved from Trash","labels","Email"))}),this.model.set("inTrash",!1),this.model.collection&&this.model.collection.trigger("retrieving-from-trash",this.model.id)}actionMoveToFolder(){this.createView("dialog","views/email-folder/modals/select-folder",{},e=>{e.render(),this.listenToOnce(e,"select",e=>{this.clearView("dialog"),Espo.Ajax.postRequest("Email/inbox/folders/"+e,{id:this.model.id}).then(()=>{"inbox"===e&&(e=null),this.model.set("folderId",e),Espo.Ui.success(this.translate("Done"))})})})}actionShowBodyPlain(){this.createView("bodyPlain","views/email/modals/body-plain",{model:this.model},e=>{e.render()})}handleAttachmentField(){0===(this.model.get("attachmentsIds")||[]).length?this.hideField("attachments"):this.showField("attachments")}handleCcField(){this.model.get("cc")?this.showField("cc"):this.hideField("cc")}handleBccField(){this.model.get("bcc")?this.showField("bcc"):this.hideField("bcc")}send(){var e=this.model;let t=e.get("status");e.set("status","Sending"),this.isSending=!0;var i=()=>{e.trigger("after:send"),this.trigger("after:send"),this.isSending=!1};return this.once("after:save",i,this),this.once("cancel:save",()=>{this.off("after:save",i),this.isSending=!1,e.set("status",t)}),this.once("before:save",()=>{Espo.Ui.notify(this.translate("Sending...","labels","Email"))}),this.save()}actionSendFromDetail(){this.setEditMode().then(()=>this.send()).then(()=>{this.setDetailMode()})}exitAfterDelete(){var e=((this.collection||{}).data||{}).folderId||null,t={isReturn:!0,isReturnThroughLink:!1,folder:e="inbox"===e?null:e},i="#"+this.scope,s=null;return e&&(s="list",i+="/list/folder="+e),this.getRouter().dispatch(this.scope,s,t),this.getRouter().navigate(i,{trigger:!1}),!0}actionViewUsers(e){var t=this.getMetadata().get(["clientDefs",this.model.entityType,"relationshipPanels","users","viewModalView"])||this.getMetadata().get(["clientDefs","User","modalViews","relatedList"])||"views/modals/related-list",i={model:this.model,link:"users",scope:"User",filtersDisabled:!0,url:this.model.entityType+"/"+this.model.id+"/users",createDisabled:!0,selectDisabled:!this.getUser().isAdmin(),rowActionsView:"views/record/row-actions/relationship-view-and-unlink"};if(e.viewOptions)for(var s in e.viewOptions)i[s]=e.viewOptions[s];Espo.Ui.notify(" ... "),this.createView("modalRelatedList",t,i,e=>{Espo.Ui.notify(!1),e.render(),this.listenTo(e,"action",(e,t)=>{Espo.Utils.handleAction(this,e,t)}),this.listenToOnce(e,"close",()=>{this.clearView("modalRelatedList")})})}actionSend(){this.send().then(()=>{this.model.set("status","Sent"),this.mode!==this.MODE_DETAIL&&(this.setDetailMode(),this.setFieldReadOnly("dateSent"),this.setFieldReadOnly("name"),this.setFieldReadOnly("attachments"),this.setFieldReadOnly("isHtml"),this.setFieldReadOnly("from"),this.setFieldReadOnly("to"),this.setFieldReadOnly("cc"),this.setFieldReadOnly("bcc"))})}actionPrint(){let s=this.getFieldView("body");if(s){let i=s.$el.find("iframe").get(0);if(i)i.contentWindow.print();else{var a=s.$el.get(0);let e=this.$el.get(0),t=((i=document.createElement("iframe")).style.display="none",e.append(i),i.contentWindow);t.document.open(),t.document.write(a.innerHTML),t.document.close(),t.focus(),t.print(),t.onafterprint=()=>{e.removeChild(i)}}}}errorHandlerSendingFail(t){this.model.id||(this.model.id=t.id);let i=this.translate("sendingFailed","strings","Email");if(t.message){let e=t.message;this.getLanguage().has(e,"messages","Email")&&(e=this.translate(e,"messages","Email")),i+=": "+e}Espo.Ui.error(i,!0),console.error(i)}handleTasksField(){0!==(this.model.get("tasksIds")||[]).length?this.showField("tasks"):this.hideField("tasks")}handleShortcutKeyCtrlS(e){this.inlineEditModeIsOn||this.buttonsDisabled||(e.preventDefault(),e.stopPropagation(),this.mode===this.MODE_EDIT&&this.saveAndContinueEditingAction&&(this.hasAvailableActionItem("saveDraft")||this.hasAvailableActionItem("saveAndContinueEditing"))&&this.actionSaveAndContinueEditing())}}e.default=s}),define("views/email/fields/email-address",["views/fields/base"],function(e){return e.extend({getAutocompleteMaxCount:function(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")},afterRender:function(){e.prototype.afterRender.call(this),this.$input=this.$el.find("input"),this.mode===this.MODE_SEARCH&&this.getAcl().check("Email","create")&&this.initSearchAutocomplete(),this.mode===this.MODE_SEARCH&&this.$input.on("input",()=>{this.trigger("change")})},initSearchAutocomplete:function(){this.$input=this.$input||this.$el.find("input"),this.$input.autocomplete({serviceUrl:()=>"EmailAddress/search?maxSize="+this.getAutocompleteMaxCount(),paramName:"q",minChars:1,autoSelectFirst:!0,triggerSelectOnValidInput:!1,noCache:!0,formatResult:e=>this.getHelper().escapeString(e.name)+" <"+this.getHelper().escapeString(e.id)+">",transformResult:e=>{let i=(e=JSON.parse(e)).map(e=>({id:e.emailAddress,name:e.entityName,emailAddress:e.emailAddress,entityId:e.entityId,entityName:e.entityName,entityType:e.entityType,data:e.emailAddress,value:e.emailAddress}));if(this.skipCurrentInAutocomplete){let t=this.$input.val();i=i.filter(e=>e.emailAddress!==t)}return{suggestions:i}},onSelect:e=>{this.$input.val(e.emailAddress),this.$input.focus()}}),this.once("render",()=>{this.$input.autocomplete("dispose")}),this.once("remove",()=>{this.$input.autocomplete("dispose")})},fetchSearch:function(){let e=this.$element.val();return(e="function"==typeof e.trim?e.trim():e)?{type:"equals",value:e}:null}})}),define("views/user/record/detail",["exports","views/record/detail"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{sideView="views/user/record/detail-side";bottomView="views/user/record/detail-bottom";editModeDisabled=!0;setup(){super.setup(),this.setupNonAdminFieldsAccess(),this.getUser().isAdmin()&&!this.model.isPortal()&&this.addButton({name:"access",label:"Access",style:"default",onClick:()=>this.actionAccess()});var e=this.model.isPortal()||this.model.id===this.getUser().id&&this.getUser().isPortal();(this.model.id===this.getUser().id||this.getUser().isAdmin())&&this.getConfig().get("auth2FA")&&(this.model.isRegular()||this.model.isAdmin()||e&&this.getConfig().get("auth2FAInPortal"))&&this.addButton({name:"viewSecurity",label:"Security"}),this.model.id!==this.getUser().id||this.model.isApi()||!this.getUser().isAdmin()&&this.getHelper().getAppParam("passwordChangeForNonAdminDisabled")||this.addDropdownItem({name:"changePassword",label:"Change Password",style:"default"}),this.getUser().isAdmin()&&(this.model.isRegular()||this.model.isAdmin()||this.model.isPortal())&&!this.model.isSuperAdmin()&&(this.addDropdownItem({name:"sendPasswordChangeLink",label:"Send Password Change Link",action:"sendPasswordChangeLink",hidden:!this.model.get("emailAddress")}),this.addDropdownItem({name:"generateNewPassword",label:"Generate New Password",action:"generateNewPassword",hidden:!this.model.get("emailAddress")}),this.model.get("emailAddress")||this.listenTo(this.model,"sync",()=>{this.model.get("emailAddress")?(this.showActionItem("generateNewPassword"),this.showActionItem("sendPasswordChangeLink")):(this.hideActionItem("generateNewPassword"),this.hideActionItem("sendPasswordChangeLink"))})),(this.model.isPortal()||this.model.isApi())&&this.hideActionItem("duplicate"),this.model.id===this.getUser().id&&this.listenTo(this.model,"after:save",()=>{this.getUser().set(this.model.getClonedAttributes())}),this.getUser().isAdmin()&&this.model.isRegular()&&!this.getConfig().get("authAnotherUserDisabled")&&this.addDropdownItem({label:"Log in",name:"login",action:"login"}),this.setupFieldAppearance()}setupActionItems(){super.setupActionItems(),this.model.isApi()&&this.getUser().isAdmin()&&this.addDropdownItem({label:"Generate New API Key",name:"generateNewApiKey"})}setupNonAdminFieldsAccess(){if(!this.getUser().isAdmin()){let e=["userName","isActive","teams","roles","password","portals","portalRoles","contact","accounts","type","emailAddress"];(e=e.filter(e=>{if(!this.model.hasField(e))return!0;e=this.getMetadata().get(["entityAcl","User","fields",e]);return!e||!!e.nonAdminReadOnly})).forEach(e=>{this.setFieldReadOnly(e,!0)}),this.getAcl().checkScope("Team")||this.setFieldReadOnly("defaultTeam",!0)}}setupFieldAppearance(){this.controlFieldAppearance(),this.listenTo(this.model,"change",()=>{this.controlFieldAppearance()})}controlFieldAppearance(){"portal"===this.model.get("type")?(this.hideField("roles"),this.hideField("teams"),this.hideField("defaultTeam"),this.showField("portals"),this.showField("portalRoles"),this.showField("contact"),this.showField("accounts"),this.showPanel("portal"),this.hideField("title")):(this.showField("roles"),this.showField("teams"),this.showField("defaultTeam"),this.hideField("portals"),this.hideField("portalRoles"),this.hideField("contact"),this.hideField("accounts"),this.hidePanel("portal"),"api"===this.model.get("type")?(this.hideField("title"),this.hideField("emailAddress"),this.hideField("phoneNumber"),this.hideField("name"),this.hideField("gender"),"Hmac"===this.model.get("authMethod")?this.showField("secretKey"):this.hideField("secretKey")):this.showField("title")),this.model.id!==this.getUser().id&&("admin"===this.model.get("type")||"regular"===this.model.get("type"))?(this.setFieldNotReadOnly("type"),this.setFieldOptionList("type",["regular","admin"])):this.setFieldReadOnly("type"),this.getConfig().get("auth2FA")&&(this.model.isRegular()||this.model.isAdmin())||this.hideField("auth2FA")}actionChangePassword(){Espo.Ui.notify(" ... "),this.createView("changePassword","views/modals/change-password",{userId:this.model.id},e=>{e.render(),Espo.Ui.notify(!1),this.listenToOnce(e,"changed",()=>{setTimeout(()=>{this.getBaseController().logout()},2e3)})})}actionPreferences(){this.getRouter().navigate("#Preferences/edit/"+this.model.id,{trigger:!0})}actionEmailAccounts(){this.getRouter().navigate("#EmailAccount/list/userId="+this.model.id,{trigger:!0})}actionExternalAccounts(){this.getRouter().navigate("#ExternalAccount",{trigger:!0})}actionAccess(){Espo.Ui.notify(" ... "),Espo.Ajax.getRequest(`User/${this.model.id}/acl`).then(e=>{this.createView("access","views/user/modals/access",{aclData:e,model:this.model},e=>{Espo.Ui.notify(!1),e.render()})})}getGridLayout(i){this.getHelper().layoutManager.get(this.model.entityType,this.options.layoutName||this.layoutName,e=>{let t=Espo.Utils.cloneDeep(e);this.getUser().isPortal()||(t.push({label:"Teams and Access Control",name:"accessControl",rows:[[{name:"type"},{name:"isActive"}],[{name:"teams"},{name:"defaultTeam"}],[{name:"roles"},!1]]}),this.model.isPortal()&&(t.push({label:"Portal",name:"portal",rows:[[{name:"portals"},{name:"contact"}],[{name:"portalRoles"},{name:"accounts"}]]}),this.getUser().isAdmin()&&t.push({label:"Misc",name:"portalMisc",rows:[[{name:"dashboardTemplate"},!1]]})),(this.model.isAdmin()||this.model.isRegular())&&t.push({label:"Misc",name:"misc",rows:[[{name:"workingTimeCalendar"},{name:"layoutSet"}]]})),this.getUser().isAdmin()&&this.model.isApi()&&t.push({name:"auth",rows:[[{name:"authMethod"},!1],[{name:"apiKey"},{name:"secretKey"}]]});e={type:"record",layout:this.convertDetailLayout(t)};i(e)})}actionGenerateNewApiKey(){this.confirm(this.translate("confirmation","messages"),()=>{Espo.Ajax.postRequest("UserSecurity/apiKey/generate",{id:this.model.id}).then(e=>{this.model.set(e)})})}actionViewSecurity(){this.createView("dialog","views/user/modals/security",{userModel:this.model},e=>{e.render()})}actionSendPasswordChangeLink(){this.confirm({message:this.translate("sendPasswordChangeLinkConfirmation","messages","User"),confirmText:this.translate("Send","labels","Email")}).then(()=>{Espo.Ui.notify(this.translate("pleaseWait","messages")),Espo.Ajax.postRequest("UserSecurity/password/recovery",{id:this.model.id}).then(()=>{Espo.Ui.success(this.translate("Done"))})})}actionGenerateNewPassword(){this.confirm(this.translate("generateAndSendNewPassword","messages","User")).then(()=>{Espo.Ui.notify(this.translate("pleaseWait","messages")),Espo.Ajax.postRequest("UserSecurity/password/generate",{id:this.model.id}).then(()=>{Espo.Ui.success(this.translate("Done"))})})}actionLogin(){var e=this.model.get("userName"),t=this.getUser().get("userName");this.createView("dialog","views/user/modals/login-as",{model:this.model,anotherUser:e,username:t}).then(e=>e.render())}}e.default=s}),define("views/user/record/detail-side",["views/record/detail-side"],function(t){return t.extend({setupPanels:function(){if(t.prototype.setupPanels.call(this),this.model.isApi()||this.model.isSystem())return this.hidePanel("activities",!0),this.hidePanel("history",!0),this.hidePanel("tasks",!0),void this.hidePanel("stream",!0);var e=this.getAcl().checkUserPermission(this.model);e||"team"===this.getAcl().get("userPermission")&&(this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",function(){this.getAcl().checkUserPermission(this.model)&&this.onPanelsReady(function(){this.showPanel("activities","acl"),this.showPanel("history","acl"),this.model.isPortal()||this.showPanel("tasks","acl")})},this)),e||(this.hidePanel("activities",!1,"acl"),this.hidePanel("history",!1,"acl"),this.hidePanel("tasks",!1,"acl")),this.model.isPortal()&&this.hidePanel("tasks",!0)}})}),define("views/settings/fields/theme",["views/fields/enum","theme-manager","ui/select"],function(i,t,s){return i.extend({editTemplateContent:`
{{#if navbarOptionList.length}}
{{/if}}
`,data:function(){let t=i.prototype.data.call(this);return t.navbarOptionList=this.getNavbarOptionList(),t.navbar=this.getNavbarValue()||this.getDefaultNavbar(),t.navbarTranslatedOptions={},t.navbarOptionList.forEach(e=>{t.navbarTranslatedOptions[e]=this.translate(e,"themeNavbars")}),t},setup:function(){i.prototype.setup.call(this),this.initThemeManager(),this.model.on("change:theme",(e,t,i)=>{this.initThemeManager(),i.ui&&this.reRender().then(()=>s.focus(this.$element,{noTrigger:!0}))})},afterRenderEdit:function(){this.$navbar=this.$el.find('[data-name="themeNavbar"]'),this.$navbar.on("change",()=>this.trigger("change")),s.init(this.$navbar)},getNavbarValue:function(){return(this.model.get("themeParams")||{}).navbar},getNavbarDefs:function(){if(!this.themeManager)return null;var e=this.themeManager.getParam("params");return e&&e.navbar?Espo.Utils.cloneDeep(e.navbar):null},getNavbarOptionList:function(){var e=this.getNavbarDefs();if(!e)return[];e=e.options||[];return e.length&&1!==e.length?e:[]},getDefaultNavbar:function(){return(this.getNavbarDefs()||{}).default||null},initThemeManager:function(){var e=this.model.get("theme");this.themeManager=e?new t(this.getConfig(),this.getPreferences(),this.getMetadata(),e):null},getAttributeList:function(){return[this.name,"themeParams"]},setupOptions:function(){this.params.options=Object.keys(this.getMetadata().get("themes")||{}).sort((e,t)=>"EspoRtl"===t?-1:this.translate(e,"theme").localeCompare(this.translate(t,"theme")))},fetch:function(){let e=i.prototype.fetch.call(this),t={};return this.$navbar.length&&(t.navbar=this.$navbar.val()),e.themeParams=t,e}})}),define("views/settings/fields/tab-list",["exports","views/fields/array"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{addItemModalView="views/settings/modals/tab-list-field-add";noGroups=!1;noDelimiters=!1;setup(){super.setup(),this.selected.forEach(e=>{e&&"object"==typeof e&&(e.id||(e.id=this.generateItemId()))}),this.events['click [data-action="editGroup"]']=e=>{e=$(e.currentTarget).parent().data("value").toString();this.editGroup(e)}}generateItemId(){return Math.floor(1e6*Math.random()+1).toString()}setupOptions(){this.params.options=Object.keys(this.getMetadata().get("scopes")).filter(e=>!this.getMetadata().get("scopes."+e+".disabled")&&(!!this.getAcl().checkScope(e)&&this.getMetadata().get("scopes."+e+".tab"))).sort((e,t)=>this.translate(e,"scopeNamesPlural").localeCompare(this.translate(t,"scopeNamesPlural"))),this.noDelimiters||(this.params.options.push("_delimiter_"),this.params.options.push("_delimiter-ext_")),this.translatedOptions={},this.params.options.forEach(e=>{this.translatedOptions[e]=this.translate(e,"scopeNamesPlural")}),this.translatedOptions._delimiter_=". . .",this.translatedOptions["_delimiter-ext_"]=". . ."}addValue(e){var t;if(e&&"object"==typeof e)return e.id||(e.id=this.generateItemId()),t=this.getItemHtml(e),this.$list.append(t),this.selected.push(e),void this.trigger("change");super.addValue(e)}removeValue(e){var t=this.getGroupIndexById(e);if(~t)return this.$list.children('[data-value="'+e+'"]').remove(),this.selected.splice(t,1),void this.trigger("change");super.removeValue(e)}getItemHtml(e){return e&&"object"==typeof e?this.getGroupItemHtml(e):super.getItemHtml(e)}getGroupItemHtml(e){var t=e.text||"";let i=$("").text(t),s=null,a=("group"===e.type&&(s=$("").addClass("far fa-list-alt").addClass("text-muted")),"divider"===e.type&&i.addClass("text-soft").addClass("text-italic"),$("").append(i));return s&&a.prepend(s," "),$("
").addClass("list-group-item").attr("data-value",e.id).css("cursor","default").append($("").attr("role","button").attr("tabindex","0").attr("data-value",e.id).attr("data-action","editGroup").css("margin-right","7px").append($("").addClass("fas fa-pencil-alt fa-sm")),a," ",$("").addClass("pull-right").attr("role","button").attr("tabindex","0").attr("data-value",e.id).attr("data-action","removeValue").append($("").addClass("fas fa-times"))).get(0).outerHTML}fetchFromDom(){let s=[];this.$el.find(".list-group .list-group-item").each((e,t)=>{var t=$(t).data("value").toString(),i=this.getGroupValueById(t);i?s.push(i):s.push(t)}),this.selected=s}getGroupIndexById(t){for(let e=0;e{i.render(),this.listenToOnce(i,"apply",e=>{for(var t in e)a[s][t]=e[t];this.model.set(this.name,a),i.close()})})}getAddItemModalOptions(){return{...super.getAddItemModalOptions(),noGroups:this.noGroups}}getValueForDisplay(){const t=this.translatedOptions||{},e=this.selected.map(e=>"string"!=typeof e?" - "+(e.text||"?"):t[e]||e);return e.map(e=>$("
").addClass("multi-enum-item-container").text(e).get(0).outerHTML).join("")}}e.default=s}),define("views/settings/fields/quick-create-list",["views/fields/array"],function(e){return e.extend({setup:function(){this.params.options=Object.keys(this.getMetadata().get("scopes")).filter(e=>{if(!this.getMetadata().get("scopes."+e+".disabled"))return this.getMetadata().get("scopes."+e+".entity")&&this.getMetadata().get("scopes."+e+".object")}).sort((e,t)=>this.translate(e,"scopeNamesPlural").localeCompare(this.translate(t,"scopeNamesPlural"))),e.prototype.setup.call(this)}})}),define("views/import/record/panels/imported",["exports","views/record/panels/relationship"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{link="imported";readOnly=!0;rowActionsView="views/record/row-actions/relationship-no-unlink";setup(){this.scope=this.model.get("entityType"),this.title=this.title||this.translate("Imported","labels","Import"),super.setup()}}e.default=s}),define("views/email-template/record/detail",["views/record/detail"],function(e){return e.extend({duplicateAction:!0,saveAndContinueEditingAction:!0,setup:function(){e.prototype.setup.call(this),this.listenToInsertField(),this.hideField("insertField"),this.on("before:set-edit-mode",function(){this.showField("insertField")},this),this.on("before:set-detail-mode",function(){this.hideField("insertField")},this)},listenToInsertField:function(){this.listenTo(this.model,"insert-field",function(e){var t,e="{"+e.entityType+"."+e.field+"}",i=this.getFieldView("body");i&&(this.model.get("isHtml")?$(window.getSelection().anchorNode).closest(".note-editing-area").length&&i.$summernote.summernote("insertText",e):(t=(i=i.$element).val(),i.val(t+=e)))},this)}})}),define("views/email-account/record/detail",["views/record/detail"],function(e){return e.extend({setup:function(){e.prototype.setup.call(this),this.setupFieldsBehaviour(),this.initSslFieldListening(),this.initSmtpFieldsControl(),this.getUser().isAdmin()?this.setFieldNotReadOnly("assignedUser"):this.setFieldReadOnly("assignedUser")},modifyDetailLayout:function(e){e.filter(e=>"$label:SMTP"===e.tabLabel).forEach(e=>{e.rows.forEach(e=>{e.forEach(e=>{let t=this.translate(e.name,"fields","EmailAccount");t&&0===t.indexOf("SMTP ")&&(e.labelText=Espo.Utils.upperCaseFirst(t.substring(5)))})})})},setupFieldsBehaviour:function(){this.controlStatusField(),this.listenTo(this.model,"change:status",(e,t,i)=>{i.ui&&this.controlStatusField()}),this.listenTo(this.model,"change:useImap",(e,t,i)=>{i.ui&&this.controlStatusField()}),this.wasFetched()?this.setFieldReadOnly("fetchSince"):this.setFieldNotReadOnly("fetchSince")},controlStatusField:function(){let e=["username","port","host","monitoredFolders"];"Active"===this.model.get("status")&&this.model.get("useImap")?e.forEach(e=>{this.setFieldRequired(e)}):e.forEach(e=>{this.setFieldNotRequired(e)})},wasFetched:function(){return!this.model.isNew()&&!!(this.model.get("fetchData")||{}).lastUID},initSslFieldListening:function(){this.listenTo(this.model,"change:security",(e,t,i)=>{i.ui&&(t?this.model.set("port",993):this.model.set("port",143))}),this.listenTo(this.model,"change:smtpSecurity",(e,t,i)=>{i.ui&&("SSL"===t?this.model.set("smtpPort",465):"TLS"===t?this.model.set("smtpPort",587):this.model.set("smtpPort",25))})},initSmtpFieldsControl:function(){this.controlSmtpFields(),this.listenTo(this.model,"change:useSmtp",this.controlSmtpFields,this),this.listenTo(this.model,"change:smtpAuth",this.controlSmtpFields,this)},controlSmtpFields:function(){if(this.model.get("useSmtp"))return this.showField("smtpHost"),this.showField("smtpPort"),this.showField("smtpAuth"),this.showField("smtpSecurity"),this.showField("smtpTestSend"),this.setFieldRequired("smtpHost"),this.setFieldRequired("smtpPort"),void this.controlSmtpAuthField();this.hideField("smtpHost"),this.hideField("smtpPort"),this.hideField("smtpAuth"),this.hideField("smtpUsername"),this.hideField("smtpPassword"),this.hideField("smtpAuthMechanism"),this.hideField("smtpSecurity"),this.hideField("smtpTestSend"),this.setFieldNotRequired("smtpHost"),this.setFieldNotRequired("smtpPort"),this.setFieldNotRequired("smtpUsername")},controlSmtpAuthField:function(){if(this.model.get("smtpAuth"))return this.showField("smtpUsername"),this.showField("smtpPassword"),this.showField("smtpAuthMechanism"),void this.setFieldRequired("smtpUsername");this.hideField("smtpUsername"),this.hideField("smtpPassword"),this.hideField("smtpAuthMechanism"),this.setFieldNotRequired("smtpUsername")}})}),define("views/email/detail",["exports","views/detail","email-helper"],function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,t=i(t),o=i(o);class s extends t.default{setup(){super.setup();var e=this.model.get("status");"Draft"===e?this.menu={buttons:[],dropdown:[],actions:[]}:(this.addMenuItem("buttons",{name:"reply",label:"Reply",action:this.getPreferences().get("emailReplyToAllByDefault")?"replyToAll":"reply",style:"danger",className:"btn-s-wide"},!0),this.addMenuItem("dropdown",!1),"Archived"===e&&(this.model.get("parentId")||(this.addMenuItem("dropdown",{label:"Create Lead",action:"createLead",acl:"create",aclScope:"Lead"}),this.addMenuItem("dropdown",{label:"Create Contact",action:"createContact",acl:"create",aclScope:"Contact"}))),this.addMenuItem("dropdown",{label:"Create Task",action:"createTask",acl:"create",aclScope:"Task"}),"Case"===this.model.get("parentType")&&this.model.get("parentId")||this.addMenuItem("dropdown",{label:"Create Case",action:"createCase",acl:"create",aclScope:"Case"}),this.getAcl().checkScope("Document","create")&&(void 0!==this.model.get("attachmentsIds")&&!this.model.getLinkMultipleIdList("attachments").length||(this.addMenuItem("dropdown",{text:this.translate("Create Document","labels","Document"),action:"createDocument",acl:"create",aclScope:"Document",hidden:void 0===this.model.get("attachmentsIds")}),void 0===this.model.get("attachmentsIds")&&this.listenToOnce(this.model,"sync",()=>{this.model.getLinkMultipleIdList("attachments").length&&this.showHeaderActionItem("createDocument")})))),this.listenTo(this.model,"change",()=>{if(this.isRendered()&&(this.model.hasChanged("isImportant")||this.model.hasChanged("inTrash"))){let e=this.getHeaderView();e&&e.reRender()}}),this.shortcutKeys["Control+Delete"]=t=>{if(!$(t.target).hasClass("note-editable")){let e=this.getRecordView();this.model.get("isUsers")&&!this.model.get("inTrash")&&(t.preventDefault(),t.stopPropagation(),e.actionMoveToTrash())}},this.shortcutKeys["Control+KeyI"]=t=>{if(!$(t.target).hasClass("note-editable")){let e=this.getRecordView();this.model.get("isUsers")&&(t.preventDefault(),t.stopPropagation(),this.model.get("isImportant")?e.actionMarkAsNotImportant():e.actionMarkAsImportant())}},this.shortcutKeys["Control+KeyM"]=t=>{if(!$(t.target).hasClass("note-editable")){let e=this.getRecordView();this.model.get("isUsers")&&(t.preventDefault(),t.stopPropagation(),e.actionMoveToFolder())}}}actionCreateLead(){let i={},s=new o.default(this.getLanguage(),this.getUser(),this.getDateTime(),this.getAcl());var a=this.model.get("fromString")||this.model.get("fromName");if(a){let e=s.parseNameFromStringAddress(a);e&&(a=e.split(" ").slice(0,-1).join(" "),n=e.split(" ").slice(-1).join(" "),i.firstName=a,i.lastName=n)}if(this.model.get("replyToString")){let e=this.model.get("replyToString");var a=e.split(";")[0];i.emailAddress=s.parseAddressFromStringAddress(a);let t=s.parseNameFromStringAddress(a);t&&(n=t.split(" ").slice(0,-1).join(" "),a=t.split(" ").slice(-1).join(" "),i.firstName=n,i.lastName=a)}i.emailAddress||(i.emailAddress=this.model.get("from")),i.emailId=this.model.id;var n=this.getMetadata().get("clientDefs.Lead.modalViews.edit")||"views/modals/edit";Espo.Ui.notify(" ... "),this.createView("quickCreate",n,{scope:"Lead",attributes:i},e=>{e.render(),e.notify(!1),this.listenTo(e,"before:save",()=>{this.getRecordView().blockUpdateWebSocket(!0)}),this.listenToOnce(e,"after:save",()=>{this.model.fetch(),this.removeMenuItem("createContact"),this.removeMenuItem("createLead"),e.close()})})}actionCreateCase(){let i={};var e=this.model.get("parentId"),t=this.model.get("parentType"),s=this.model.get("parentName"),a=this.model.get("accountId"),n=this.model.get("accountName");e&&("Account"===t?(i.accountId=e,i.accountName=s):"Contact"===t?(i.contactId=e,i.contactName=s,i.contactsIds=[e],i.contactsNames={},i.contactsNames[e]=s,a&&(i.accountId=a,i.accountName=n||a)):"Lead"===t&&(i.leadId=e,i.leadName=s)),i.emailsIds=[this.model.id],i.emailId=this.model.id,i.name=this.model.get("name"),i.description=this.model.get("bodyPlain")||"";let o=this.getMetadata().get("clientDefs.Case.modalViews.edit")||"views/modals/edit";Espo.Ui.notify(" ... "),new Promise(t=>{(this.model.get("attachmentsIds")||[]).length?Espo.Ajax.postRequest(`Email/${this.model.id}/attachments/copy`,{parentType:"Case",field:"attachments"}).then(e=>{i.attachmentsIds=e.ids,i.attachmentsNames=e.names,t()}):t()}).then(()=>{this.createView("quickCreate",o,{scope:"Case",attributes:i},e=>{e.render(),Espo.Ui.notify(!1),this.listenToOnce(e,"after:save",()=>{this.model.fetch(),this.removeMenuItem("createCase"),e.close()}),this.listenTo(e,"before:save",()=>{this.getRecordView().blockUpdateWebSocket(!0)})})})}actionCreateTask(){let e={};e.parentId=this.model.get("parentId"),e.parentName=this.model.get("parentName"),e.parentType=this.model.get("parentType"),e.emailId=this.model.id;var t=this.model.get("name"),t=(e.description="["+this.translate("Email","scopeNames")+": "+t+"](#Email/view/"+this.model.id+")\n",this.getMetadata().get("clientDefs.Task.modalViews.edit")||"views/modals/edit");Espo.Ui.notify(" ... "),this.createView("quickCreate",t,{scope:"Task",attributes:e},e=>{let t=e.getRecordView();var i=t.getFieldView("name");let s=[];(s=i&&i.params.options?s.concat(i.params.options):s).push(this.translate("replyToEmail","nameOptions","Task")),t.setFieldOptionList("name",s),e.render(),e.notify(!1),this.listenToOnce(e,"after:save",()=>{e.close(),this.model.fetch()})})}actionCreateContact(){let i={},s=new o.default(this.getLanguage(),this.getUser(),this.getDateTime(),this.getAcl());var a=this.model.get("fromString")||this.model.get("fromName");if(a){let e=s.parseNameFromStringAddress(a);e&&(a=e.split(" ").slice(0,-1).join(" "),n=e.split(" ").slice(-1).join(" "),i.firstName=a,i.lastName=n)}if(this.model.get("replyToString")){let e=this.model.get("replyToString");var a=e.split(";")[0];i.emailAddress=s.parseAddressFromStringAddress(a);let t=s.parseNameFromStringAddress(a);t&&(n=t.split(" ").slice(0,-1).join(" "),a=t.split(" ").slice(-1).join(" "),i.firstName=n,i.lastName=a)}i.emailAddress||(i.emailAddress=this.model.get("from")),i.emailId=this.model.id;var n=this.getMetadata().get("clientDefs.Contact.modalViews.edit")||"views/modals/edit";Espo.Ui.notify(" ... "),this.createView("quickCreate",n,{scope:"Contact",attributes:i},e=>{e.render(),e.notify(!1),this.listenToOnce(e,"after:save",()=>{this.model.fetch(),this.removeMenuItem("createContact"),this.removeMenuItem("createLead"),e.close()}),this.listenTo(e,"before:save",()=>{this.getRecordView().blockUpdateWebSocket(!0)})})}actionReply(e,t,i){let s=new o.default(this.getLanguage(),this.getUser(),this.getDateTime(),this.getAcl());e=s.getReplyAttributes(this.model,e,i),Espo.Ui.notify(" ... "),i=this.getMetadata().get("clientDefs.Email.modalViews.compose")||"views/modals/compose-email";this.createView("quickCreate",i,{attributes:e,focusForCreate:!0},e=>{e.render(),e.notify(!1),this.listenTo(e,"after:save",()=>{this.model.fetch()})})}actionReplyToAll(e,t){this.actionReply(e,t,!0)}actionForward(){let s=new o.default(this.getLanguage(),this.getUser(),this.getDateTime(),this.getAcl());Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("Email/action/getDuplicateAttributes",{id:this.model.id}).then(e=>{let t=this.model.clone(),i=(t.set("body",e.body),s.getForwardAttributes(t));i.attachmentsIds=e.attachmentsIds,i.attachmentsNames=e.attachmentsNames,Espo.Ui.notify(" ... ");e=this.getMetadata().get("clientDefs.Email.modalViews.compose")||"views/modals/compose-email";this.createView("quickCreate",e,{attributes:i},e=>{e.render(),e.notify(!1)})})}getHeader(){var e=this.model.get("name"),t=this.model.get("isImportant"),i=this.model.get("inTrash"),s=this.options.rootUrl||this.options.params.rootUrl||"#"+this.scope,a=this.getHeaderIconHtml();let n=$("").attr("href",s).attr("data-action","navigateToRoot").addClass("action").text(this.getLanguage().translate(this.model.name,"scopeNamesPlural"));return a&&(n=$("").append(a,n).get(0).innerHTML),this.buildHeaderHtml([n,$("").addClass("font-size-flexible title").addClass(t?"text-warning":"").addClass(i?"text-muted":"").text(e)])}actionNavigateToRoot(e,t){t.stopPropagation(),this.getRouter().checkConfirmLeaveOut(()=>{var e=this.options.rootUrl||this.options.params.rootUrl||"#"+this.scope;this.getRouter().navigate(e,{trigger:!1}),this.getRouter().dispatch(this.scope,null,{isReturn:!0,isReturnThroughLink:!0})})}actionCreateDocument(){let e=this.model.getLinkMultipleIdList("attachments");if(e.length){let i=this.model.get("attachmentsNames")||{},s=this.model.get("attachmentsTypes")||{},a=e=>{let t={};this.model.get("accountId")&&(t.accountsIds=[this.model.get("accountId")],t.accountsNames={},t.accountsNames[this.model.get("accountId")]=this.model.get("accountName")),Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("Attachment/copy/"+e,{relatedType:"Document",field:"file"}).then(e=>{t.fileId=e.id,t.fileName=e.name,t.name=e.name;e=this.getMetadata().get("clientDefs.Document.modalViews.edit")||"views/modals/edit";this.createView("quickCreate",e,{scope:"Document",attributes:t},e=>{e.render(),Espo.Ui.notify(!1),this.listenToOnce(e,"after:save",()=>{e.close()})})})};if(1!==e.length){let t=[];e.forEach(e=>{t.push({id:e,name:i[e]||e,type:s[e]})}),this.createView("dialog","views/attachment/modals/select-one",{dataList:t,fieldLabel:this.translate("attachments","fields","Email")},e=>{e.render(),this.listenToOnce(e,"select",a.bind(this))})}else a(e[0])}}}e.default=s}),define("views/email/record/list",["exports","views/record/list","helpers/mass-action"],function(e,t,a){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,t=i(t),a=i(a);class s extends t.default{rowActionsView="views/email/record/row-actions/default";massActionList=["remove","massUpdate"];setup(){super.setup(),this.collection.url===this.entityType&&(this.addMassAction("retrieveFromTrash",!1,!0),this.addMassAction("moveToFolder",!0,!0),this.addMassAction("markAsNotImportant",!1,!0),this.addMassAction("markAsImportant",!1,!0),this.addMassAction("markAsNotRead",!1,!0),this.addMassAction("markAsRead",!1,!0),this.addMassAction("moveToTrash",!1,!0),this.dropdownItemList.push({name:"markAllAsRead",label:"Mark all as read"})),this.listenTo(this.collection,"moving-to-trash",e=>{let t=this.collection.get(e);t&&t.set("inTrash",!0),"trash"!==this.collection.selectedFolderId&&"all"!==this.collection.selectedFolderId&&this.removeRecordFromList(e)}),this.listenTo(this.collection,"retrieving-from-trash",e=>{let t=this.collection.get(e);t&&t.set("inTrash",!1),"trash"===this.collection.selectedFolderId&&this.removeRecordFromList(e)})}massActionMarkAsRead(){let e=[];for(var t in this.checkedList)e.push(this.checkedList[t]);Espo.Ajax.postRequest("Email/inbox/read",{ids:e}),e.forEach(e=>{let t=this.collection.get(e);t&&t.set("isRead",!0)})}massActionMarkAsNotRead(){let e=[];for(var t in this.checkedList)e.push(this.checkedList[t]);Espo.Ajax.deleteRequest("Email/inbox/read",{ids:e}),e.forEach(e=>{let t=this.collection.get(e);t&&t.set("isRead",!1)})}massActionMarkAsImportant(){let e=[];for(var t in this.checkedList)e.push(this.checkedList[t]);Espo.Ajax.postRequest("Email/inbox/important",{ids:e}),e.forEach(e=>{let t=this.collection.get(e);t&&t.set("isImportant",!0)})}massActionMarkAsNotImportant(){let e=[];for(var t in this.checkedList)e.push(this.checkedList[t]);Espo.Ajax.deleteRequest("Email/inbox/important",{ids:e}),e.forEach(e=>{let t=this.collection.get(e);t&&t.set("isImportant",!1)})}massActionMoveToTrash(){let e=[];for(var t in this.checkedList)e.push(this.checkedList[t]);Espo.Ajax.postRequest("Email/inbox/inTrash",{ids:e}).then(()=>{Espo.Ui.warning(this.translate("Moved to Trash","labels","Email"))}),"trash"!==this.collection.selectedFolderId&&e.forEach(e=>{this.collection.trigger("moving-to-trash",e,this.collection.get(e)),this.uncheckRecord(e,null,!0)})}massActionRetrieveFromTrash(){let e=[];for(var t in this.checkedList)e.push(this.checkedList[t]);Espo.Ajax.deleteRequest("Email/inbox/inTrash",{ids:e}).then(()=>{Espo.Ui.success(this.translate("Done"))}),"trash"===this.collection.selectedFolderId&&e.forEach(e=>{this.collection.trigger("retrieving-from-trash",e,this.collection.get(e)),this.uncheckRecord(e,null,!0)})}massMoveToFolder(e){var t=this.getMassActionSelectionPostData();let i=new a.default(this);var s=!!t.searchParams&&i.checkIsIdle();Espo.Ui.notify(this.translate("pleaseWait","messages")),Espo.Ajax.postRequest("MassAction",{entityType:this.entityType,action:"moveToFolder",params:t,idle:s,data:{folderId:e}}).then(e=>{Espo.Ui.notify(!1),e.id?i.process(e.id,"moveToFolder").then(e=>{this.listenToOnce(e,"close:success",()=>{this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"))})})}):this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"))})})}massActionMoveToFolder(){this.createView("dialog","views/email-folder/modals/select-folder",{headerText:this.translate("Move to Folder","labels","Email")},e=>{e.render(),this.listenToOnce(e,"select",e=>{this.clearView("dialog"),this.massMoveToFolder(e)})})}actionMarkAsImportant(e){e=(e=e||{}).id;Espo.Ajax.postRequest("Email/inbox/important",{id:e});let t=this.collection.get(e);t&&t.set("isImportant",!0)}actionMarkAsNotImportant(e){e=(e=e||{}).id;Espo.Ajax.deleteRequest("Email/inbox/important",{id:e});let t=this.collection.get(e);t&&t.set("isImportant",!1)}actionMarkAllAsRead(){Espo.Ajax.postRequest("Email/inbox/read",{all:!0}),this.collection.forEach(e=>{e.set("isRead",!0)}),this.collection.trigger("all-marked-read")}actionMoveToTrash(e){let t=e.id;Espo.Ui.notify(" ... "),Espo.Ajax.postRequest("Email/inbox/inTrash",{id:t}).then(()=>{Espo.Ui.warning(this.translate("Moved to Trash","labels","Email")),this.collection.trigger("moving-to-trash",t,this.collection.get(t))})}actionRetrieveFromTrash(e){let t=e.id;Espo.Ui.notify(" ... "),this.retrieveFromTrash(t).then(()=>{Espo.Ui.warning(this.translate("Retrieved from Trash","labels","Email")),this.collection.trigger("retrieving-from-trash",t,this.collection.get(t))})}retrieveFromTrash(e){return Espo.Ajax.deleteRequest("Email/inbox/inTrash",{id:e})}massRetrieveFromTrashMoveToFolder(e){let t=[];for(var i in this.checkedList)t.push(this.checkedList[i]);Espo.Ajax.deleteRequest("Email/inbox/inTrash",{ids:t}).then(()=>(t.forEach(e=>{this.collection.trigger("retrieving-from-trash",e,this.collection.get(e))}),Espo.Ajax.postRequest("Email/inbox/folders/"+e,{ids:t}).then(()=>{Espo.Ui.success(this.translate("Done"))})))}actionRetrieveFromTrashMoveToFolder(e){let t=e.id,i=e.folderId;Espo.Ui.notify(" ... "),this.retrieveFromTrash(t).then(()=>this.moveToFolder(t,i)).then(()=>{this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"))})})}moveToFolder(e,t){return Espo.Ajax.postRequest("Email/inbox/folders/"+t,{id:e})}actionMoveToFolder(e){let t=e.id;e=e.folderId;if(e)return Espo.Ui.notify(" ... "),void this.moveToFolder(t,e).then(()=>{this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"))})});this.createView("dialog","views/email-folder/modals/select-folder",{headerText:this.translate("Move to Folder","labels","Email")},e=>{e.render(),this.listenToOnce(e,"select",e=>{this.clearView("dialog"),Espo.Ui.notify(" ... "),this.moveToFolder(t,e).then(()=>{this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"))})})})})}actionSend(e){let t=e.id;this.confirm({message:this.translate("sendConfirm","messages","Email"),confirmText:this.translate("Send","labels","Email")}).then(()=>{let e=this.collection.get(t);e&&(Espo.Ui.notify(this.translate("Sending...","labels","Email")),e.save({status:"Sending"}).then(()=>{Espo.Ui.success(this.translate("emailSent","messages","Email")),"drafts"===this.collection.selectedFolderId&&(this.removeRecordFromList(t),this.uncheckRecord(t,null,!0),this.collection.trigger("draft-sent"))}))})}toggleMassMarkAsImportant(){this.checkedList.map(e=>this.collection.get(e)).find(e=>!e.get("isImportant"))?this.massActionMarkAsImportant():this.massActionMarkAsNotImportant()}}e.default=s}),define("views/email/record/edit",["exports","views/record/edit","views/email/record/detail"],function(e,t,i){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,t=s(t),i=s(i);class a extends t.default{shortcutKeyCtrlEnterAction="send";init(){super.init(),i.default.prototype.layoutNameConfigure.call(this)}setup(){super.setup(),["Archived","Sent"].includes(this.model.get("status"))&&(this.shortcutKeyCtrlEnterAction="save"),this.addButton({name:"send",label:"Send",style:"primary",title:"Ctrl+Enter"},!0),this.addButton({name:"saveDraft",label:"Save Draft",title:"Ctrl+S"},!0),this.controlSendButton(),"Draft"===this.model.get("status")&&(this.setFieldReadOnly("dateSent"),this.hideField("selectTemplate")),this.handleAttachmentField(),this.handleCcField(),this.handleBccField(),this.listenTo(this.model,"change:attachmentsIds",()=>this.handleAttachmentField()),this.listenTo(this.model,"change:cc",()=>this.handleCcField()),this.listenTo(this.model,"change:bcc",()=>this.handleBccField())}handleAttachmentField(){0!==(this.model.get("attachmentsIds")||[]).length||this.isNew||"Draft"===this.model.get("status")?this.showField("attachments"):this.hideField("attachments")}handleCcField(){this.model.get("cc")||"Draft"===this.model.get("status")?this.showField("cc"):this.hideField("cc")}handleBccField(){this.model.get("bcc")||"Draft"===this.model.get("status")?this.showField("bcc"):this.hideField("bcc")}controlSendButton(){if("Draft"===this.model.get("status"))return this.showActionItem("send"),this.showActionItem("saveDraft"),this.hideActionItem("save"),void this.hideActionItem("saveAndContinueEditing");this.hideActionItem("send"),this.hideActionItem("saveDraft"),this.showActionItem("save"),this.showActionItem("saveAndContinueEditing")}actionSaveDraft(){this.actionSaveAndContinueEditing()}actionSend(){i.default.prototype.send.call(this).then(()=>this.exit()).catch(()=>{})}handleShortcutKeyCtrlS(e){this.inlineEditModeIsOn||this.buttonsDisabled||(e.preventDefault(),e.stopPropagation(),this.mode===this.MODE_EDIT&&this.saveAndContinueEditingAction&&(this.hasAvailableActionItem("saveDraft")||this.hasAvailableActionItem("saveAndContinueEditing"))&&this.actionSaveAndContinueEditing())}}e.default=a}),define("views/email/fields/person-string-data",["views/fields/varchar"],function(t){return t.extend({listTemplate:"email/fields/person-string-data/list",getAttributeList:function(){return["personStringData","isReplied"]},data:function(){var e=t.prototype.data.call(this);return e.isReplied=this.model.get("isReplied"),e}})}),define("views/email/fields/from-address-varchar",["views/fields/base","views/email/fields/email-address","helpers/record-modal"],function(i,e,s){return i.extend({detailTemplate:"email/fields/email-address-varchar/detail",validations:["required","email"],skipCurrentInAutocomplete:!0,setup:function(){i.prototype.setup.call(this),this.erasedPlaceholder="ERASED:",this.on("render",()=>{this.mode!==this.MODE_SEARCH&&this.initAddressList()})},events:{'click [data-action="createContact"]':function(e){e=$(e.currentTarget).data("address");this.createPerson("Contact",e)},'click [data-action="createLead"]':function(e){e=$(e.currentTarget).data("address");this.createPerson("Lead",e)},'click [data-action="addToContact"]':function(e){e=$(e.currentTarget).data("address");this.addToPerson("Contact",e)},'click [data-action="addToLead"]':function(e){e=$(e.currentTarget).data("address");this.addToPerson("Lead",e)},"auxclick a[href][data-scope][data-id]":function(t){if(1===t.button&&(t.ctrlKey||t.metaKey)){let e=$(t.currentTarget);var i=e.attr("data-id"),s=e.attr("data-scope");t.preventDefault(),t.stopPropagation(),this.quickView({id:i,scope:s})}}},data:function(){var e=i.prototype.data.call(this),t=this.model.get(this.name);return!t||t in this.idHash||!this.model.get("parentId")||this.getAcl().check("Contact","edit")&&(e.showCreate=!0),e.valueIsSet=this.model.has(this.name),e},afterRender:function(){i.prototype.afterRender.call(this),this.mode===this.MODE_SEARCH&&this.getAcl().check("Email","create")&&e.prototype.initSearchAutocomplete.call(this),this.mode===this.MODE_EDIT&&this.getAcl().check("Email","create")&&e.prototype.initSearchAutocomplete.call(this),this.mode===this.MODE_SEARCH&&this.$input.on("input",()=>{this.trigger("change")})},getAutocompleteMaxCount:function(){return e.prototype.getAutocompleteMaxCount.call(this)},initAddressList:function(){this.nameHash={},this.typeHash=this.model.get("typeHash")||{},this.idHash=this.model.get("idHash")||{},_.extend(this.nameHash,this.model.get("nameHash")||{})},getAttributeList:function(){var e=i.prototype.getAttributeList.call(this);return e.push("nameHash"),e.push("idHash"),e.push("accountId"),e},getValueForDisplay:function(){var e;return this.mode===this.MODE_DETAIL?(e=this.model.get(this.name),this.getDetailAddressHtml(e)):i.prototype.getValueForDisplay.call(this)},getDetailAddressHtml:function(e){if(!e)return"";var t=this.model.get("fromString")||this.model.get("fromName"),t=this.nameHash[e]||this.parseNameFromStringAddress(t)||null,i=this.typeHash[e]||null,s=this.idHash[e]||null;if(s)return $("
").append($("").attr("href",`#${i}/view/`+s).attr("data-scope",i).attr("data-id",s).text(t)," ",$("").addClass("text-muted chevron-right")," ",$("").text(e)).get(0).outerHTML;let a=$("
");return(this.getAcl().check("Contact","create")||this.getAcl().check("Lead","create"))&&a.append(this.getCreateHtml(e)),t?a.append($("").addClass("email-address-line").text(t).append(" ",$("").addClass("text-muted chevron-right")," ",$("").text(e))):a.append($("").addClass("email-address-line").text(e)),a.get(0).outerHTML},getCreateHtml:function(e){let t=$("
{{#unless itemDataList.length}} {{translate 'None'}} {{/unless}} `,detailTemplateContent:`
{{#each itemDataList}}
{{{var viewKey ../this}}}
{{/each}}
{{#unless itemDataList.length}} {{translate 'None'}} {{/unless}} `,editTemplateContent:`
{{#each itemDataList}}
{{{var viewKey ../this}}}
{{/each}}
`,fetchEmptyAsNull:!1,validations:["required","valid"],events:{"click .add-item":function(){this.addItem()},"click .remove-item":function(e){e=parseInt($(e.currentTarget).attr("data-key"));this.removeItem(e)}},data:function(){let e=t.prototype.data.call(this);return e.itemDataList=this.itemKeyList.map((e,t)=>({key:e.toString(),viewKey:this.composeViewKey(e),isLast:t===this.itemKeyList.length-1})),e},prepare:function(){return this.initItems(),this.createItemViews()},initItems:function(){this.itemKeyList=[],this.getItemListFromModel().forEach((e,t)=>{this.itemKeyList.push(t)})},createItemView:function(e,t){var i=this.isEditMode()?"views/working-time-calendar/fields/time-ranges/item-edit":"views/working-time-calendar/fields/time-ranges/item-detail";return this.createView(this.composeViewKey(t),i,{value:e,selector:'.item[data-key="'+t+'"]',key:t}).then(e=>(this.listenTo(e,"change",()=>{this.trigger("change")}),e))},createItemViews:function(){if(this.itemKeyList.forEach(e=>{this.clearView(this.composeViewKey(e))}),!this.model.has(this.name))return Promise.resolve();let i=this.getItemListFromModel(),s=[];return this.itemKeyList.forEach((e,t)=>{t=i[t],t=this.createItemView(t,e);s.push(t)}),Promise.all(s)},getItemView:function(e){return this.getView(this.composeViewKey(e))},composeViewKey:function(e){return"item-"+e},getItemListFromModel:function(){return Espo.Utils.cloneDeep(this.model.get(this.name)||[])},addItem:function(){let e=this.getItemListFromModel(),t=null;var i=[t=e.length?e[e.length-1][1]:t,null];e.push(i);let s=this.itemKeyList[this.itemKeyList.length-1];void 0===s&&(s=0),s++,this.itemKeyList.push(s),this.$el.find(".item-list").append($("
").addClass("item").attr("data-key",s)),this.createItemView(i,s).then(e=>e.render()).then(()=>{this.trigger("change")})},removeItem:function(t){var i=this.itemKeyList.indexOf(t);if(-1!==t){let e=this.getItemListFromModel();this.itemKeyList.splice(i,1),e.splice(i,1),this.model.set(this.name,e,{ui:!0}),this.clearView(this.composeViewKey(t)),this.$el.find(`.item[data-key="${t}"`).remove(),this.trigger("change")}},fetch:function(){let t=[],e=(this.itemKeyList.forEach(e=>{t.push(this.getItemView(e).fetch())}),{});return e[this.name]=Espo.Utils.cloneDeep(t),0===e[this.name].length&&(e[this.name]=null),e},validateRequired:function(){if(!this.isRequired())return!1;if(this.getItemListFromModel().length)return!1;var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());return this.showValidationMessage(e,".add-item-container"),!0},validateValid:function(){if(!this.isRangesInvalid())return!1;var e=this.translate("fieldInvalid","messages").replace("{field}",this.getLabelText());return this.showValidationMessage(e,".add-item-container"),!0},isRangesInvalid:function(){var t=this.getItemListFromModel();for(let e=0;e
 – 
`,timeFormatMap:{"HH:mm":"H:i","hh:mm A":"h:i A","hh:mm a":"h:i a","hh:mmA":"h:iA","hh:mma":"h:ia"},minuteStep:30,data:function(){let e={};return e.start=this.convertTimeToDisplay(this.value[0]),e.end=this.convertTimeToDisplay(this.value[1]),e.key=this.key,e},setup:function(){this.value=this.options.value||[null,null],this.key=this.options.key},convertTimeToDisplay:function(e){if(!e)return"";let t=i(e,"HH:mm");return t.isValid()?t.format(this.getDateTime().timeFormat):""},convertTimeFromDisplay:function(e){if(!e)return null;let t=i(e,this.getDateTime().timeFormat);return t.isValid()?t.format("HH:mm"):null},afterRender:function(){this.$start=this.$el.find('[data-name="start"]'),this.$end=this.$el.find('[data-name="end"]'),this.initTimepicker(this.$start),this.initTimepicker(this.$end),this.setMinTime(),this.$start.on("change",()=>this.setMinTime())},setMinTime:function(){var e=this.$start.val();this.$end.timepicker("option","maxTime",this.convertTimeToDisplay("23:59")),e?this.$end.timepicker("option","minTime",e):this.$end.timepicker("option","minTime",null)},initTimepicker:function(e){e.timepicker({step:this.minuteStep,timeFormat:this.timeFormatMap[this.getDateTime().timeFormat]}),e.on("change",()=>this.trigger("change")),e.attr("autocomplete","espo-time-range-item")},fetch:function(){return[this.convertTimeFromDisplay(this.$start.val()),this.convertTimeFromDisplay(this.$end.val())]}})}),define("views/working-time-calendar/fields/time-ranges/item-detail",["view","lib!moment"],(e,i)=>{class t extends e{templateContent=` {{start}}  –  {{end}} `;data(){return{start:this.convertTimeToDisplay(this.value[0]),end:this.convertTimeToDisplay(this.value[1])}}setup(){this.value=this.options.value}convertTimeToDisplay(e){if(!e)return"";let t=i(e,"HH:mm");return t.isValid()?t.format(this.getDateTime().timeFormat):""}}return t}),define("views/webhook/record/list",["views/record/list"],function(e){return e.extend({massActionList:["remove","massUpdate","export"]})}),define("views/webhook/fields/user",["views/fields/link"],function(e){return e.extend({selectPrimaryFilterName:"activeApi"})}),define("views/webhook/fields/event",["views/fields/varchar"],function(e){return e.extend({setupOptions:function(){var t=[];this.getMetadata().getScopeObjectList().sort(function(e,t){return e.localeCompare(t)}.bind(this)).forEach(function(e){t.push(e+".create"),t.push(e+".update"),t.push(e+".delete")},this),this.params.options=t}})}),define("views/user-security/modals/two-factor-sms",["views/modal","model"],function(e,i){return e.extend({template:"user-security/modals/two-factor-sms",className:"dialog dialog-record",shortcutKeys:{"Control+Enter":"apply"},events:{'click [data-action="sendCode"]':function(){this.actionSendCode()}},setup:function(){this.buttonList=[{name:"apply",label:"Apply",style:"danger",hidden:!0},{name:"cancel",label:"Cancel"}],this.headerHtml=" ";var e=this.getConfig().get("auth2FASmsCodeLength")||7;let t=new i;t.name="UserSecurity",t.set("phoneNumber",null),t.setDefs({fields:{code:{type:"varchar",required:!0,maxLength:e},phoneNumber:{type:"enum",required:!0}}}),this.internalModel=t,this.wait(Espo.Ajax.postRequest("UserSecurity/action/getTwoFactorUserSetupData",{id:this.model.id,password:this.model.get("password"),auth2FAMethod:this.model.get("auth2FAMethod"),reset:this.options.reset}).then(e=>{this.phoneNumberList=e.phoneNumberList,this.createView("record","views/record/edit-for-modal",{scope:"None",selector:".record",model:t,detailLayout:[{rows:[[{name:"phoneNumber",labelText:this.translate("phoneNumber","fields","User")},!1],[{name:"code",labelText:this.translate("Code","labels","User")},!1]]}]},e=>{e.setFieldOptionList("phoneNumber",this.phoneNumberList),this.phoneNumberList.length&&t.set("phoneNumber",this.phoneNumberList[0]),e.hideField("code")})}))},afterRender:function(){this.$sendCode=this.$el.find('[data-action="sendCode"]'),this.$pInfo=this.$el.find("p.p-info"),this.$pButton=this.$el.find("p.p-button"),this.$pInfoAfter=this.$el.find("p.p-info-after")},actionSendCode:function(){this.$sendCode.attr("disabled","disabled").addClass("disabled"),Espo.Ajax.postRequest("TwoFactorSms/action/sendCode",{id:this.model.id,phoneNumber:this.internalModel.get("phoneNumber")}).then(()=>{this.showButton("apply"),this.$pInfo.addClass("hidden"),this.$pButton.addClass("hidden"),this.$pInfoAfter.removeClass("hidden"),this.getView("record").setFieldReadOnly("phoneNumber"),this.getView("record").showField("code")}).catch(()=>{this.$sendCode.removeAttr("disabled").removeClass("disabled")})},actionApply:function(){var e=this.getView("record").processFetch();e&&(this.model.set("code",e.code),this.hideButton("apply"),this.hideButton("cancel"),Espo.Ui.notify(this.translate("pleaseWait","messages")),this.model.save().then(()=>{Espo.Ui.notify(!1),this.trigger("done")}).catch(()=>{this.showButton("apply"),this.showButton("cancel")}))}})}),define("views/user-security/modals/two-factor-email",["views/modal","model"],function(e,i){return e.extend({template:"user-security/modals/two-factor-email",className:"dialog dialog-record",shortcutKeys:{"Control+Enter":"apply"},events:{'click [data-action="sendCode"]':function(){this.actionSendCode()}},setup:function(){this.buttonList=[{name:"apply",label:"Apply",style:"danger",hidden:!0},{name:"cancel",label:"Cancel"}],this.headerHtml=" ";var e=this.getConfig().get("auth2FAEmailCodeLength")||7;let t=new i;t.entityType=t.name="UserSecurity",t.set("emailAddress",null),t.setDefs({fields:{code:{type:"varchar",required:!0,maxLength:e},emailAddress:{type:"enum",required:!0}}}),this.internalModel=t,this.wait(Espo.Ajax.postRequest("UserSecurity/action/getTwoFactorUserSetupData",{id:this.model.id,password:this.model.get("password"),auth2FAMethod:this.model.get("auth2FAMethod"),reset:this.options.reset}).then(e=>{this.emailAddressList=e.emailAddressList,this.createView("record","views/record/edit-for-modal",{scope:"None",selector:".record",model:t,detailLayout:[{rows:[[{name:"emailAddress",labelText:this.translate("emailAddress","fields","User")},!1],[{name:"code",labelText:this.translate("Code","labels","User")},!1]]}]},e=>{e.setFieldOptionList("emailAddress",this.emailAddressList),this.emailAddressList.length&&t.set("emailAddress",this.emailAddressList[0]),e.hideField("code")})}))},afterRender:function(){this.$sendCode=this.$el.find('[data-action="sendCode"]'),this.$pInfo=this.$el.find("p.p-info"),this.$pButton=this.$el.find("p.p-button"),this.$pInfoAfter=this.$el.find("p.p-info-after")},actionSendCode:function(){this.$sendCode.attr("disabled","disabled").addClass("disabled"),Espo.Ajax.postRequest("TwoFactorEmail/action/sendCode",{id:this.model.id,emailAddress:this.internalModel.get("emailAddress")}).then(()=>{this.showButton("apply"),this.$pInfo.addClass("hidden"),this.$pButton.addClass("hidden"),this.$pInfoAfter.removeClass("hidden"),this.getView("record").setFieldReadOnly("emailAddress"),this.getView("record").showField("code")}).catch(()=>{this.$sendCode.removeAttr("disabled").removeClass("disabled")})},actionApply:function(){var e=this.getView("record").processFetch();e&&(this.model.set("code",e.code),this.hideButton("apply"),this.hideButton("cancel"),Espo.Ui.notify(this.translate("pleaseWait","messages")),this.model.save().then(()=>{Espo.Ui.notify(!1),this.trigger("done")}).catch(()=>{this.showButton("apply"),this.showButton("cancel")}))}})}),define("views/user-security/modals/totp",["views/modal","model"],function(e,i){let s;return e.extend({template:"user-security/modals/totp",className:"dialog dialog-record",shortcutKeys:{"Control+Enter":"apply"},setup:function(){this.buttonList=[{name:"apply",label:"Apply",style:"danger"},{name:"cancel",label:"Cancel"}],this.headerHtml=" ";var t=new i;t.name="UserSecurity",this.wait(Espo.Ajax.postRequest("UserSecurity/action/getTwoFactorUserSetupData",{id:this.model.id,password:this.model.get("password"),auth2FAMethod:this.model.get("auth2FAMethod"),reset:this.options.reset}).then(e=>{this.label=e.label,this.secret=e.auth2FATotpSecret,t.set("secret",e.auth2FATotpSecret)})),t.setDefs({fields:{code:{type:"varchar",required:!0,maxLength:7},secret:{type:"varchar",readOnly:!0}}}),this.createView("record","views/record/edit-for-modal",{scope:"None",selector:".record",model:t,detailLayout:[{rows:[[{name:"secret",labelText:this.translate("Secret","labels","User")},!1],[{name:"code",labelText:this.translate("Code","labels","User")},!1]]}]}),Espo.loader.requirePromise("lib!qrcodejs").then(e=>{s=e})},afterRender:function(){new s(this.$el.find(".qrcode").get(0),{text:"otpauth://totp/"+this.label+"?secret="+this.secret,width:256,height:256,colorDark:"#000000",colorLight:"#ffffff",correctLevel:s.CorrectLevel.H})},actionApply:function(){var e=this.getView("record").processFetch();e&&(this.model.set("code",e.code),this.hideButton("apply"),this.hideButton("cancel"),Espo.Ui.notify(this.translate("pleaseWait","messages")),this.model.save().then(()=>{Espo.Ui.notify(!1),this.trigger("done")}).catch(()=>{this.showButton("apply"),this.showButton("cancel")}))}})}),define("views/user/password-change-request",["view","model"],function(e,i){return e.extend({template:"user/password-change-request",data:function(){return{requestId:this.options.requestId,notFound:this.options.notFound,notFoundMessage:this.notFoundMessage}},events:{"click #btn-submit":function(){this.submit()}},setup:function(){let e=this.model=new i;e.entityType=e.name="User",this.createView("password","views/user/fields/password",{model:e,mode:"edit",selector:'.field[data-name="password"]',defs:{name:"password",params:{required:!0,maxLength:255}},strengthParams:this.options.strengthParams}),this.createView("passwordConfirm","views/fields/password",{model:e,mode:"edit",selector:'.field[data-name="passwordConfirm"]',defs:{name:"passwordConfirm",params:{required:!0,maxLength:255}}}),this.createView("generatePassword","views/user/fields/generate-password",{model:e,mode:"detail",readOnly:!0,selector:'.field[data-name="generatePassword"]',defs:{name:"generatePassword"},strengthParams:this.options.strengthParams}),this.createView("passwordPreview","views/fields/base",{model:e,mode:"detail",readOnly:!0,selector:'.field[data-name="passwordPreview"]',defs:{name:"passwordPreview"}}),this.model.on("change:passwordPreview",()=>this.reRender());var t=this.baseUrl=window.location.href.split("?")[0];this.notFoundMessage=this.translate("passwordChangeRequestNotFound","messages","User").replace("{url}",t)},submit:function(){this.getView("password").fetchToModel(),this.getView("passwordConfirm").fetchToModel();var e=this.getView("password").validate()||this.getView("passwordConfirm").validate(),t=this.model.get("password");if(!e){let e=this.$el.find(".btn-submit");e.addClass("disabled"),Espo.Ajax.postRequest("User/changePasswordByRequest",{requestId:this.options.requestId,password:t}).then(e=>{this.$el.find(".password-change").remove();e=e.url||this.baseUrl,e=this.translate("passwordChangedByRequest","messages","User")+' '+this.translate("Login","labels","User")+".";this.$el.find(".msg-box").removeClass("hidden").html(''+e+"")}).catch(()=>e.removeClass("disabled"))}}})}),define("views/user/list",["views/list"],function(e){return e.extend({storeViewAfterUpdate:!1,setup:function(){e.prototype.setup.call(this)}})}),define("views/user/detail",["views/detail"],function(t){return t.extend({setup:function(){var e;t.prototype.setup.call(this),this.getUser().isPortal()&&(this.rootLinkDisabled=!0),this.model.id!==this.getUser().id&&!this.getUser().isAdmin()||((this.model.isRegular()||this.model.isAdmin()||this.model.isPortal())&&this.addMenuItem("dropdown",{name:"preferences",label:"Preferences",style:"default",action:"preferences",link:"#Preferences/edit/"+this.getUser().id}),(this.model.isRegular()||this.model.isAdmin())&&((this.getAcl().check("EmailAccountScope")&&this.model.id===this.getUser().id||this.getUser().isAdmin())&&this.addMenuItem("dropdown",{name:"emailAccounts",label:"Email Accounts",style:"default",action:"emailAccounts",link:"#EmailAccount/list/userId="+this.model.id+"&userName="+encodeURIComponent(this.model.get("name"))}),this.model.id===this.getUser().id&&this.getAcl().checkScope("ExternalAccount")&&this.menu.buttons.push({name:"externalAccounts",label:"External Accounts",style:"default",action:"externalAccounts",link:"#ExternalAccount"}))),this.getAcl().checkScope("Calendar")&&(this.model.isRegular()||this.model.isAdmin())&&((e=this.getAcl().checkUserPermission(this.model))||"team"===this.getAcl().get("userPermission")&&(this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",function(){this.getAcl().checkUserPermission(this.model)&&this.showHeaderActionItem("calendar")},this)),this.menu.buttons.push({name:"calendar",iconHtml:'',text:this.translate("Calendar","scopeNames"),style:"default",link:"#Calendar/show/userId="+this.model.id+"&userName="+encodeURIComponent(this.model.get("name")),hidden:!e}))},actionPreferences:function(){this.getRouter().navigate("#Preferences/edit/"+this.model.id,{trigger:!0})},actionEmailAccounts:function(){this.getRouter().navigate("#EmailAccount/list/userId="+this.model.id+"&userName="+encodeURIComponent(this.model.get("name")),{trigger:!0})},actionExternalAccounts:function(){this.getRouter().navigate("#ExternalAccount",{trigger:!0})}})}),define("views/user/record/list",["views/record/list"],function(e){return e.extend({quickEditDisabled:!0,rowActionsView:"views/user/record/row-actions/default",massActionList:["remove","massUpdate","export"],checkAllResultMassActionList:["massUpdate","export"],setupMassActionItems:function(){e.prototype.setupMassActionItems.call(this),"ApiUser"===this.scope&&(this.removeMassAction("massUpdate"),this.removeMassAction("export"),this.layoutName="listApi"),"PortalUser"===this.scope&&(this.layoutName="listPortal"),this.getUser().isAdmin()||(this.removeMassAction("massUpdate"),this.removeMassAction("export"))},getModelScope:function(e){return this.collection.get(e).isPortal()?"PortalUser":this.scope}})}),define("views/user/record/edit",["exports","views/record/edit","views/user/record/detail"],function(e,t,i){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,t=s(t),i=s(i);class a extends t.default{sideView="views/user/record/edit-side";setup(){super.setup(),this.setupNonAdminFieldsAccess(),this.model.id===this.getUser().id&&this.listenTo(this.model,"after:save",()=>{this.getUser().set(this.model.getClonedAttributes())}),this.hideField("sendAccessInfo"),this.passwordInfoMessage=this.getPasswordSendingMessage(),this.passwordInfoMessage||this.hideField("passwordInfo");let t=!1;this.listenToOnce(this.model,"change:password",()=>{t=!0,this.model.isNew()?this.controlSendAccessInfoFieldForNew():this.controlSendAccessInfoField()}),this.listenTo(this.model,"change",e=>{(this.model.isNew()||t)&&(e.hasChanged("emailAddress")||e.hasChanged("portalsIds")||e.hasChanged("password"))&&(this.model.isNew()?this.controlSendAccessInfoFieldForNew():this.controlSendAccessInfoField())}),i.default.prototype.setupFieldAppearance.call(this),this.hideField("passwordPreview"),this.listenTo(this.model,"change:passwordPreview",(e,t)=>{(t=t||"").length?this.showField("passwordPreview"):this.hideField("passwordPreview")}),this.listenTo(this.model,"after:save",()=>{this.model.unset("password",{silent:!0}),this.model.unset("passwordConfirm",{silent:!0})})}controlSendAccessInfoField(){this.isPasswordSendable()&&this.model.get("password")?this.showField("sendAccessInfo"):(this.hideField("sendAccessInfo"),this.model.set("sendAccessInfo",!1))}controlSendAccessInfoFieldForNew(){var e=!1===this.recordHelper.getFieldStateParam("sendAccessInfo","hidden");if(this.isPasswordSendable())return this.showField("sendAccessInfo"),void(e||this.model.set("sendAccessInfo",!0));this.hideField("sendAccessInfo"),this.model.set("sendAccessInfo",!1)}isPasswordSendable(){return!(this.model.isPortal()&&!(this.model.get("portalsIds")||[]).length)&&!!this.model.get("emailAddress")}setupNonAdminFieldsAccess(){i.default.prototype.setupNonAdminFieldsAccess.call(this)}controlFieldAppearance(){i.default.prototype.controlFieldAppearance.call(this)}getGridLayout(i){this.getHelper().layoutManager.get(this.model.entityType,this.options.layoutName||this.layoutName,e=>{let t=Espo.Utils.cloneDeep(e);t.push({label:"Teams and Access Control",name:"accessControl",rows:[[{name:"type"},{name:"isActive"}],[{name:"teams"},{name:"defaultTeam"}],[{name:"roles"},!1]]}),t.push({label:"Portal",name:"portal",rows:[[{name:"portals"},{name:"contact"}],[{name:"portalRoles"},{name:"accounts"}]]}),this.getUser().isAdmin()&&this.model.isPortal()&&t.push({label:"Misc",name:"portalMisc",rows:[[{name:"dashboardTemplate"},!1]]}),(this.model.isAdmin()||this.model.isRegular())&&t.push({label:"Misc",name:"misc",rows:[[{name:"workingTimeCalendar"},{name:"layoutSet"}]]}),this.type===this.TYPE_EDIT&&this.getUser().isAdmin()&&!this.model.isApi()&&t.push({label:"Password",rows:[[{name:"password",type:"password",params:{required:!1,readyToChange:!0},view:"views/user/fields/password"},{name:"generatePassword",view:"views/user/fields/generate-password",customLabel:""}],[{name:"passwordConfirm",type:"password",params:{required:!1,readyToChange:!0}},{name:"passwordPreview",view:"views/fields/base",params:{readOnly:!0}}],[{name:"sendAccessInfo"},{name:"passwordInfo",type:"text",customLabel:"",customCode:this.passwordInfoMessage}]]}),this.getUser().isAdmin()&&this.model.isApi()&&t.push({name:"auth",rows:[[{name:"authMethod"},!1]]});e={type:"record",layout:this.convertDetailLayout(t)};i(e)})}getPasswordSendingMessage(){if(this.getConfig().get("outboundEmailFromAddress"))return"";var e=this.translate("setupSmtpBefore","messages","User").replace("{url}","#Admin/outboundEmails");return this.getHelper().transformMarkdownInlineText(e)}fetch(){let e=super.fetch();return this.isNew||"password"in e&&(""===e.password||null==e.password)&&(delete e.password,delete e.passwordConfirm,this.model.unset("password"),this.model.unset("passwordConfirm")),e}exit(e){"create"!==e&&"save"!==e||this.model.unset("sendAccessInfo",{silent:!0}),super.exit(e)}errorHandlerUserNameExists(){Espo.Ui.error(this.translate("userNameExists","messages","User"))}}e.default=a}),define("views/user/record/edit-side",["views/record/edit-side"],function(e){return e.extend({})}),define("views/user/record/edit-quick",["views/record/edit-small","views/user/record/detail"],function(e,t){return e.extend({sideView:"views/user/record/edit-side",setup:function(){e.prototype.setup.call(this),t.prototype.setupNonAdminFieldsAccess.call(this),t.prototype.setupFieldAppearance.call(this)},controlFieldAppearance:function(){t.prototype.controlFieldAppearance.call(this)}})}),define("views/user/record/detail-quick",["views/record/detail-small","views/user/record/detail"],function(e,t){return e.extend({sideView:"views/user/record/detail-quick-side",bottomView:null,editModeEnabled:!1,setup:function(){e.prototype.setup.call(this),t.prototype.setupNonAdminFieldsAccess.call(this),t.prototype.setupFieldAppearance.call(this)},controlFieldAppearance:function(){t.prototype.controlFieldAppearance.call(this)}})}),define("views/user/record/detail-quick-side",["views/record/detail-side","views/user/record/detail-side"],function(e,t){return e.extend({setupPanels:function(){t.prototype.setupPanels.call(this)}})}),define("views/user/record/detail-bottom",["exports","views/record/detail-bottom"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{setupPanels(){super.setupPanels();var e=this.getAcl().checkUserPermission(this.model);e||"team"!==this.getAcl().getPermissionLevel("userPermission")||this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",()=>{this.getAcl().checkUserPermission(this.model)&&this.onPanelsReady(()=>{this.showPanel("stream","acl")})}),this.panelList.push({name:"stream",label:"Stream",view:"views/user/record/panels/stream",sticked:!0,hidden:!e}),e||this.recordHelper.setPanelStateParam("stream","hiddenAclLocked",!0)}}e.default=s}),define("views/user/record/row-actions/relationship-followers",["views/record/row-actions/relationship"],function(e){return e.extend({getActionList:function(){var e=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id}];return(this.getUser().isAdmin()||"no"!==this.getAcl().get("followerManagementPermission")||this.model.isPortal()&&"yes"===this.getAcl().get("portalPermission")||this.model.id===this.getUser().id)&&e.push({action:"unlinkRelated",label:"Unlink",data:{id:this.model.id}}),e}})}),define("views/user/record/row-actions/default",["views/record/row-actions/default"],function(e){return e.extend({getActionList:function(){var e="User",t=(this.model.isPortal()?e="PortalUser":this.model.isApi()&&(e="ApiUser"),[{action:"quickView",label:"View",data:{id:this.model.id,scope:e},link:"#"+e+"/view/"+this.model.id}]);return this.options.acl.edit&&t.push({action:"quickEdit",label:"Edit",data:{id:this.model.id,scope:e},link:"#"+e+"/edit/"+this.model.id}),t}})}),define("views/user/record/panels/stream",["views/stream/panel"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this);let e=this.getAcl().checkPermission("message",this.model);this.model.id===this.getUser().id?this.placeholderText=this.translate("writeMessageToSelf","messages"):this.placeholderText=this.translate("writeMessageToUser","messages").replace("{user}",this.model.get("name")),e||(this.postDisabled=!0,"team"===this.getAcl().getPermissionLevel("message")&&(this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",()=>{(e=this.getAcl().checkUserPermission(this.model))&&(this.postDisabled=!1,this.$el.find(".post-container").removeClass("hidden"))})))},prepareNoteForPost:function(e){var t=[this.model.id],i={};i[t]=this.model.get("name"),e.set("usersIds",t),e.set("usersNames",i),e.set("targetType","users")}})}),define("views/user/record/panels/default-side",["views/record/panels/default-side"],function(e){return e.extend({complexCreatedDisabled:!0,complexModifiedDisabled:!0})}),define("views/user/modals/select-followers",["views/modals/select-records"],function(e){return e.extend({setup:function(){this.filterList=["active"],this.getAcl().getPermissionLevel("portalPermission")&&this.filterList.push("activePortal"),e.prototype.setup.call(this)}})}),define("views/user/modals/security",["exports","views/modal","model"],function(e,t,i){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,t=s(t),i=s(i);class a extends t.default{templateContent='
{{{record}}}
';className="dialog dialog-record";shortcutKeys={"Control+Enter":"apply"};setup(){this.buttonList=[{name:"apply",label:"Apply",hidden:!0,style:"danger",onClick:()=>this.apply()},{name:"cancel",label:"Close"}],this.dropdownItemList=[{name:"reset",text:this.translate("Reset 2FA"),hidden:!0,onClick:()=>this.reset()}],this.userModel=this.options.userModel,this.$header=$("").append($("").text(this.translate("Security")),' ',$("").text(this.userModel.get("userName")));const e=this.model=new i.default;e.name="UserSecurity",e.id=this.userModel.id,e.url="UserSecurity/"+this.userModel.id;var t=this.getConfig().get("auth2FAMethodList")||[];e.setDefs({fields:{auth2FA:{type:"bool",labelText:this.translate("auth2FAEnable","fields","User")},auth2FAMethod:{type:"enum",options:t,translation:"Settings.options.auth2FAMethodList"}}}),this.wait(e.fetch().then(()=>{this.initialAttributes=Espo.Utils.cloneDeep(e.attributes),e.get("auth2FA")&&this.showActionItem("reset"),this.createView("record","views/record/edit-for-modal",{scope:"None",selector:".record",model:this.model,detailLayout:[{rows:[[{name:"auth2FA",labelText:this.translate("auth2FAEnable","fields","User")},{name:"auth2FAMethod",labelText:this.translate("auth2FAMethod","fields","User")}]]}]},e=>{this.controlFieldsVisibility(e),this.listenTo(this.model,"change:auth2FA",()=>{this.controlFieldsVisibility(e)})})})),this.listenTo(this.model,"change",()=>{this.initialAttributes&&(this.isChanged()?this.showActionItem("apply"):this.hideActionItem("apply"))})}controlFieldsVisibility(e){this.model.get("auth2FA")?(e.showField("auth2FAMethod"),e.setFieldRequired("auth2FAMethod")):(e.hideField("auth2FAMethod"),e.setFieldNotRequired("auth2FAMethod"))}isChanged(){return this.initialAttributes.auth2FA!==this.model.get("auth2FA")||this.initialAttributes.auth2FAMethod!==this.model.get("auth2FAMethod")}reset(){this.confirm(this.translate("security2FaResetConfirmation","messages","User"),()=>{this.apply(!0)})}getRecordView(){return this.getView("record")}apply(e){this.getRecordView().processFetch()&&(this.hideActionItem("apply"),new Promise(i=>{this.createView("dialog","views/user/modals/password",{},t=>{t.render(),this.listenToOnce(t,"cancel",()=>this.showActionItem("apply")),this.listenToOnce(t,"proceed",e=>{this.model.set("password",e.password),t.close(),i()})})}).then(()=>this.processApply(e)))}processApply(e){var t;if(this.model.get("auth2FA"))return t=this.model.get("auth2FAMethod"),(t=this.getMetadata().get(["app","authentication2FAMethods",t,"userApplyView"]))?(Espo.Ui.notify(" ... "),void this.createView("dialog",t,{model:this.model,reset:e},e=>{Espo.Ui.notify(!1),e.render(),this.listenToOnce(e,"cancel",()=>{this.close()}),this.listenToOnce(e,"apply",()=>{e.close(),this.processSave()}),this.listenToOnce(e,"done",()=>{Espo.Ui.success(this.translate("Done")),this.trigger("done"),e.close(),this.close()})})):(e&&this.model.set("auth2FA",!1),void this.processSave());this.processSave()}processSave(){this.hideActionItem("apply"),this.model.save().then(()=>{this.close(),Espo.Ui.success(this.translate("Done"))}).catch(()=>this.showActionItem("apply"))}}e.default=a}),define("views/user/modals/password",["views/modal","model"],function(e,t){return e.extend({templateContent:'
{{{record}}}
',className:"dialog dialog-record",shortcutKeys:{"Control+Enter":"apply"},setup:function(){this.buttonList=[{name:"apply",label:"Apply",style:"danger"},{name:"cancel",label:"Cancel"}],this.headerHtml=" ",this.userModel=this.options.userModel;var e=this.model=new t;e.name="UserSecurity",e.setDefs({fields:{password:{type:"password",required:!0}}}),this.createView("record","views/record/edit-for-modal",{scope:"None",selector:".record",model:this.model,detailLayout:[{rows:[[{name:"password",labelText:this.translate("yourPassword","fields","User"),params:{readyToChange:!0}},!1]]}]})},actionApply:function(){var e=this.getView("record").processFetch();e&&this.trigger("proceed",e)}})}),define("views/user/modals/mass-update",["views/modals/mass-update"],function(e){return e.extend({setup:function(){"ApiUser"===this.options.scope?this.layoutName="massUpdateApi":"PortalUser"===this.options.scope&&(this.layoutName="massUpdatePortal"),e.prototype.setup.call(this)}})}),define("views/user/modals/login-as",["views/modal"],function(e){return e.extend({backdrop:!0,templateContent:`
{{translate 'loginAs' category='messages' scope='User'}}
{{translate 'Login Link' scope='User'}} `,setup:function(){this.$header=$("").append($("").text(this.model.get("name"))," ",$("").addClass("chevron-right")," ",$("").text(this.translate("Login"))),this.url="?entryPoint=loginAs"+`&anotherUser=${this.options.anotherUser}&username=`+this.options.username}})}),define("views/user/modals/detail",["views/modals/detail"],function(e){return e.extend({editDisabled:!0,getScope:function(){return this.model.isPortal()?"PortalUser":"User"}})}),define("views/user/modals/access",["views/modal"],function(e){return e.extend({cssName:"user-access",multiple:!1,template:"user/modals/access",backdrop:!0,data:function(){return{valuePermissionDataList:this.getValuePermissionList(),levelListTranslation:this.getLanguage().get("Role","options","levelList")||{}}},getValuePermissionList:function(){var e=this.getMetadata().get(["app","acl","valuePermissionList"],[]),i=[];return e.forEach(function(e){var t={};t.name=e,t.value=this.options.aclData[e],i.push(t)},this),i},setup:function(){this.buttonList=[{name:"cancel",label:"Cancel"}];var e,t=Espo.Utils.cloneDeep(this.options.aclData.fieldTable||{});for(e in t){var i,s=t[e]||{};for(i in s)null!==this.getMetadata().get(["app","acl","mandatory","scopeFieldLevel",e,i])&&delete s[i],s[i]&&this.getMetadata().get(["entityDefs",e,"fields",i,"readOnly"])&&"no"===s[i].edit&&"yes"===s[i].read&&delete s[i]}this.createView("table","views/role/record/table",{acl:{data:this.options.aclData.table,fieldData:t},final:!0}),this.headerText=this.translate("Access")}})}),define("views/user/fields/user-name",["views/fields/varchar"],function(e){return e.extend({setup:function(){e.prototype.setup.call(this),this.validations.push("userName")},afterRender:function(){e.prototype.afterRender.call(this);let i=this.getUserNameRegularExpression();this.isEditMode()&&this.$element.on("change",()=>{let e=this.$element.val();var t=new RegExp(i,"gi");e=e.replace(t,"").replace(/[\s]/g,"_").toLowerCase(),this.$element.val(e),this.trigger("change")})},getUserNameRegularExpression:function(){return this.getConfig().get("userNameRegularExpression")||"[^a-z0-9-@_.s]"},validateUserName:function(){var t=this.model.get(this.name);if(t){var i=this.getUserNameRegularExpression();let e=new RegExp(i,"gi");if(e.test(t))return i=this.translate("fieldInvalid","messages").replace("{field}",this.getLabelText()),this.showValidationMessage(i),!0}}})}),define("views/user/fields/teams",["views/fields/link-multiple-with-role"],function(e){return e.extend({forceRoles:!0,setup:function(){e.prototype.setup.call(this),this.roleListMap={},this.loadRoleList(()=>{this.isEditMode()&&(this.isRendered()||this.isBeingRendered())&&this.reRender()}),this.listenTo(this.model,"change:teamsIds",()=>{let t=!1;this.ids.forEach(e=>{e in this.roleListMap||(t=!0)}),t&&this.loadRoleList(()=>{this.reRender()})})},loadRoleList:function(i,s){if(this.getAcl().checkScope("Team","read")){let t=this.ids||[];0!==t.length&&this.getCollectionFactory().create("Team",e=>{e.maxSize=50,e.where=[{type:"in",field:"id",value:t}],this.listenToOnce(e,"sync",()=>{e.models.forEach(e=>{this.roleListMap[e.id]=e.get("positionList")||[]}),i.call(s)}),e.fetch()})}},getDetailLinkHtml:function(e,t){t=t||this.nameHash[e];var i=(this.columns[e]||{})[this.columnName]||"";let s=$("
").append($("").attr("href","#"+this.foreignScope+"/view/"+e).attr("data-id",e).text(t));return i&&(i=this.getHelper().escapeString(i),s.append($("").text(" "),$("").addClass("text-muted chevron-right"),$("").text(" "),$("").addClass("text-muted").text(i))),s.get(0).outerHTML},getJQSelect:function(e,i){let t=Espo.Utils.clone(this.roleListMap[e]||[]);if(!t.length&&!i)return null;t.unshift(""),i&&-1===t.indexOf(i)&&t.push(i);let s=$("").attr("maxLength",this.maxItemLength).attr("data-name","translatedValue").attr("data-value",e).addClass("role form-control input-sm").attr("value",t).css("width","65%"))).append($("
").css("width","8%").css("display","inline-block").css("vertical-align","top").append($("").attr("role","button").attr("tabindex","0").addClass("pull-right").attr("data-value",e).attr("data-action","removeValue").append($("").addClass("fas fa-times")))).append($("
").css("clear","both")).get(0).outerHTML},validateUniqueLabel:function(){var e,t=this.model.get(this.name)||[],i=this.model.get("translatedOptions")||{};let s=[];for(e of t){var a=i[e];if(!a)return!0;if(-1!==s.indexOf(a))return!0;s.push(a)}return!1},fetch:function(){let i=t.prototype.fetch.call(this);return i.translatedOptions={},(i[this.name]||[]).forEach(e=>{var t=e.replace(/"/g,'\\"');i.translatedOptions[e]=this.$el.find('input[data-name="translatedValue"][data-value="'+t+'"]').val()||e}),i}})}),define("views/preferences/fields/auto-follow-entity-type-list",["views/fields/multi-enum"],function(e){return e.extend({setup:function(){this.params.options=Object.keys(this.getMetadata().get("scopes")).filter(e=>{if(!this.getMetadata().get("scopes."+e+".disabled"))return this.getMetadata().get("scopes."+e+".entity")&&this.getMetadata().get("scopes."+e+".stream")}).sort((e,t)=>this.translate(e,"scopeNamesPlural").localeCompare(this.translate(t,"scopeNamesPlural"))),e.prototype.setup.call(this)}})}),define("views/preferences/fields/assignment-notifications-ignore-entity-type-list",["views/fields/checklist"],function(e){return e.extend({isInversed:!0,setupOptions:function(){this.params.options=Espo.Utils.clone(this.getConfig().get("assignmentNotificationsEntityList"))||[]}})}),define("views/preferences/fields/assignment-email-notifications-ignore-entity-type-list",["views/fields/checklist"],function(e){return e.extend({isInversed:!0,setupOptions:function(){this.params.options=Espo.Utils.clone(this.getConfig().get("assignmentEmailNotificationsEntityList"))||[]}})}),define("views/portal-user/list",["views/list"],function(e){return e.extend({defaultOrderBy:"createdAt",defaultOrder:"desc",setup:function(){e.prototype.setup.call(this)},actionCreate:function(){this.createView("modal","crm:views/contact/modals/select-for-portal-user",{scope:"Contact",primaryFilterName:"notPortalUsers",createButton:!1,mandatorySelectAttributeList:["salutationName","firstName","lastName","accountName","accountId","emailAddress","emailAddressData","phoneNumber","phoneNumberData"]},e=>{e.render(),this.listenToOnce(e,"select",e=>{var t={},i=(t.contactId=e.id,t.contactName=e.get("name"),e.get("accountId")&&((i={})[e.get("accountId")]=e.get("accountName"),t.accountsIds=[e.get("accountId")],t.accountsNames=i),t.firstName=e.get("firstName"),t.lastName=e.get("lastName"),t.salutationName=e.get("salutationName"),t.emailAddress=e.get("emailAddress"),t.emailAddressData=e.get("emailAddressData"),t.phoneNumber=e.get("phoneNumber"),t.phoneNumberData=e.get("phoneNumberData"),t.userName=t.emailAddress,t.type="portal",this.getRouter()),e="#"+this.scope+"/create";i.dispatch(this.scope,"create",{attributes:t}),i.navigate(e,{trigger:!1})}),this.listenToOnce(e,"skip",()=>{var e=this.getRouter(),t="#"+this.scope+"/create";e.dispatch(this.scope,"create",{attributes:{type:"portal"}}),e.navigate(t,{trigger:!1})})})}})}),define("views/portal/record/list",["views/record/list"],function(e){return e.extend({massActionList:["remove"]})}),define("views/portal/fields/tab-list",["views/settings/fields/tab-list"],function(e){return e.extend({noGroups:!0,setupOptions:function(){e.prototype.setupOptions.call(this),this.params.options=this.params.options.filter(e=>"_delimiter_"===e||(!!this.getMetadata().get("scopes."+e+".aclPortal")||void 0))}})}),define("views/portal/fields/quick-create-list",["views/settings/fields/quick-create-list"],function(e){return e.extend({setup:function(){e.prototype.setup.call(this),this.params.options=this.params.options.filter(e=>{if(this.getMetadata().get("scopes."+e+".aclPortal"))return!0})}})}),define("views/portal/fields/custom-id",["views/fields/varchar"],function(e){return e.extend({setup:function(){e.prototype.setup.call(this),this.listenTo(this,"change",()=>{var e=this.model.get("customId");e&&""!==e&&(e=e.replace(/ /i,"-").toLowerCase(),e=encodeURIComponent(e),this.model.set("customId",e))})}})}),define("views/personal-data/record/record",["views/record/base"],function(i){return i.extend({template:"personal-data/record/record",additionalEvents:{"click .checkbox":function(e){var t=$(e.currentTarget).data("name");e.currentTarget.checked?(~this.checkedFieldList.indexOf(t)||this.checkedFieldList.push(t),this.checkedFieldList.length===this.fieldList.length?this.$el.find(".checkbox-all").prop("checked",!0):this.$el.find(".checkbox-all").prop("checked",!1)):(~(e=this.checkedFieldList.indexOf(t))&&this.checkedFieldList.splice(e,1),this.$el.find(".checkbox-all").prop("checked",!1)),this.trigger("check",this.checkedFieldList)},"click .checkbox-all":function(e){e.currentTarget.checked?(this.checkedFieldList=Espo.Utils.clone(this.fieldList),this.$el.find(".checkbox").prop("checked",!0)):(this.checkedFieldList=[],this.$el.find(".checkbox").prop("checked",!1)),this.trigger("check",this.checkedFieldList)}},data:function(){var e={};return e.fieldDataList=this.getFieldDataList(),e.scope=this.scope,e.editAccess=this.editAccess,e},setup:function(){i.prototype.setup.call(this),this.events={...this.additionalEvents,...this.events},this.scope=this.model.entityType,this.fieldList=[],this.checkedFieldList=[],this.editAccess=this.getAcl().check(this.model,"edit");var e,s=this.getMetadata().get(["entityDefs",this.scope,"fields"])||{},t=[];for(e in s)s[e].isPersonalData&&t.push(e);t.forEach(e=>{var t=s[e].type,t=this.getFieldManager().getActualAttributeList(t,e),i=!1,t=(t.forEach(e=>{e=this.model.get(e);e&&("[object Array]"===Object.prototype.toString.call(e)&&e.length||(i=!0))}),!~this.getAcl().getScopeForbiddenFieldList(this.scope,"view").indexOf(e));i&&t&&this.fieldList.push(e)}),this.fieldList=this.fieldList.sort((e,t)=>this.translate(e,"fields",this.scope).localeCompare(this.translate(t,"fields",this.scope))),this.fieldList.forEach(e=>{this.createField(e,null,null,"detail",!0)})},getFieldDataList:function(){var t=this.getAcl().getScopeForbiddenFieldList(this.scope,"edit"),i=[];return this.fieldList.forEach(e=>{i.push({name:e,key:e+"Field",editAccess:this.editAccess&&!~t.indexOf(e)})}),i}})}),define("views/personal-data/modals/personal-data",["views/modal"],function(e){return e.extend({className:"dialog dialog-record",template:"personal-data/modals/personal-data",backdrop:!0,setup:function(){e.prototype.setup.call(this),this.buttonList=[{name:"cancel",label:"Close"}],this.headerText=this.getLanguage().translate("Personal Data"),this.headerText+=": "+this.model.get("name"),this.getAcl().check(this.model,"edit")&&this.buttonList.unshift({name:"erase",label:"Erase",style:"danger",disabled:!0}),this.fieldList=[],this.scope=this.model.entityType,this.createView("record","views/personal-data/record/record",{selector:".record",model:this.model},e=>{this.listenTo(e,"check",e=>{(this.fieldList=e).length?this.enableButton("erase"):this.disableButton("erase")}),e.fieldList.length||this.disableButton("export")})},actionErase:function(){this.confirm({message:this.translate("erasePersonalDataConfirmation","messages"),confirmText:this.translate("Erase")},()=>{this.disableButton("erase"),Espo.Ajax.postRequest("DataPrivacy/action/erase",{fieldList:this.fieldList,entityType:this.scope,id:this.model.id}).then(()=>{Espo.Ui.success(this.translate("Done")),this.trigger("erase")}).catch(()=>{this.enableButton("erase")})})}})}),define("views/outbound-email/modals/test-send",["views/modal"],function(e){return e.extend({cssName:"test-send",templateContent:` `,data:function(){return{emailAddress:this.options.emailAddress}},setup:function(){this.buttonList=[{name:"send",text:this.translate("Send","labels","Email"),style:"primary",onClick:()=>{var e=this.$el.find("input").val();""!==e&&this.trigger("send",e)}},{name:"cancel",label:"Cancel",onClick:e=>{e.close()}}]}})}),define("views/notification/record/list",["exports","views/record/list-expanded"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{setup(){super.setup(),this.listenTo(this.collection,"sync",(e,t,i)=>{if(i.fetchNew){i=i.lengthBeforeFetch||0;if(0!==i){let t=this.$el.find(this.listContainerEl);for(let e=this.collection.length-i-1;0<=e;e--){var s=this.collection.at(e);t.prepend($(this.getRowContainerHtml(s.id))),this.buildRow(e,s,e=>{e.render()})}}else this.reRender()}}),this.events["auxclick a[href][data-scope][data-id]"]=t=>{if(1===t.button&&(t.ctrlKey||t.metaKey)){let e=$(t.currentTarget);var i=e.attr("data-id"),s=e.attr("data-scope");t.preventDefault(),t.stopPropagation(),this.actionQuickView({id:i,scope:s})}}}showNewRecords(){this.collection.fetchNew()}}e.default=s}),define("views/notification/items/system",["exports","views/notification/items/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{template="notification/items/system";data(){return{...super.data(),message:this.model.get("message")}}setup(){var e=this.model.get("data")||{};this.userId=e.userId}}e.default=s}),define("views/notification/items/message",["exports","views/notification/items/base","marked","dompurify"],function(e,t,i,s){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,t=a(t),s=a(s);class n extends t.default{template="notification/items/message";data(){return{...super.data(),style:this.style}}setup(){var e=this.model.get("data")||{},t=this.model.get("message")||e.message||"",t=i.marked.parse(t);this.messageTemplate=s.default.sanitize(t,{}).toString(),this.userId=e.userId,this.style=e.style||"text-muted",this.messageData.entityType=this.translateEntityType(e.entityType),this.messageData.user=$("
").attr("href","#User/view/"+e.userId).attr("data-id",e.userId).attr("data-scope","User").text(e.userName),this.messageData.entity=$("").attr("href","#"+e.entityType+"/view/"+e.entityId).attr("data-id",e.entityId).attr("data-scope",e.entityType).text(e.entityName),this.createMessage()}}e.default=n}),define("views/notification/items/entity-removed",["exports","views/notification/items/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{messageName="entityRemoved";template="notification/items/entity-removed";setup(){var e=this.model.get("data")||{};this.userId=e.userId,this.messageData.entityType=this.translateEntityType(e.entityType),this.messageData.user=$("").attr("href","#User/view/"+e.userId).attr("data-id",e.userId).attr("data-scope","User").text(e.userName),this.messageData.entity=$("").attr("href","#"+e.entityType+"/view/"+e.entityId).attr("data-id",e.entityId).attr("data-scope",e.entityType).text(e.entityName),this.createMessage()}}e.default=s}),define("views/notification/items/email-received",["exports","views/notification/items/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{messageName="emailReceived";template="notification/items/email-received";data(){return{...super.data(),emailId:this.emailId,emailName:this.emailName}}setup(){var e,t=this.model.get("data")||{};this.userId=t.userId,this.messageData.entityType=this.translateEntityType(t.entityType),t.personEntityId?this.messageData.from=$("").attr("href","#"+t.personEntityType+"/view/"+t.personEntityId).attr("data-id",t.personEntityId).attr("data-scope",t.personEntityType).text(t.personEntityName):(e=t.fromString||this.translate("empty address"),this.messageData.from=$("").text(e)),this.emailId=t.emailId,this.emailName=t.emailName,this.createMessage()}}e.default=s}),define("views/notification/items/assign",["exports","views/notification/items/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{messageName="assign";template="notification/items/assign";setup(){var e=this.model.get("data")||{};this.userId=e.userId,this.messageData.entityType=this.translateEntityType(e.entityType),this.messageData.entity=$("").attr("href","#"+e.entityType+"/view/"+e.entityId).attr("data-id",e.entityId).attr("data-scope",e.entityType).text(e.entityName),this.messageData.user=$("").attr("href","#User/view/"+e.userId).attr("data-id",e.userId).attr("data-scope","User").text(e.userName),this.createMessage()}}e.default=s}),define("views/notification/fields/read",["exports","views/fields/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{type="read";listTemplate="notification/fields/read";detailTemplate="notification/fields/read";data(){return{isRead:this.model.get("read")}}}e.default=s}),define("views/notification/fields/read-with-menu",["exports","views/fields/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{type="read";listTemplate="notification/fields/read-with-menu";detailTemplate="notification/fields/read-with-menu";data(){return{isRead:this.model.get("read")}}}e.default=s}),define("views/notification/fields/container",["exports","views/fields/base"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{type="notification";listTemplate="notification/fields/container";detailTemplate="notification/fields/container";setup(){switch(this.model.get("type")){case"Note":this.processNote(this.model.get("noteData"));break;case"MentionInPost":this.processMentionInPost(this.model.get("noteData"));break;default:this.process()}}process(){let e=this.model.get("type");var t;e&&(e=e.replace(/ /g,""),t=this.getMetadata().get("clientDefs.Notification.itemViews."+e)||"views/notification/items/"+Espo.Utils.camelCaseToHyphen(e),this.createView("notification",t,{model:this.model,fullSelector:this.options.containerSelector+' li[data-id="'+this.model.id+'"]'}))}processNote(i){i&&(this.wait(!0),this.getModelFactory().create("Note",e=>{e.set(i);var t=this.getMetadata().get("clientDefs.Note.itemViews."+i.type)||"views/stream/notes/"+Espo.Utils.camelCaseToHyphen(i.type);this.createView("notification",t,{model:e,isUserStream:!0,fullSelector:this.options.containerSelector+' li[data-id="'+this.model.id+'"]',onlyContent:!0,isNotification:!0}),this.wait(!1)}))}processMentionInPost(t){t&&(this.wait(!0),this.getModelFactory().create("Note",e=>{e.set(t);this.createView("notification","views/stream/notes/mention-in-post",{model:e,userId:this.model.get("userId"),isUserStream:!0,fullSelector:this.options.containerSelector+' li[data-id="'+this.model.id+'"]',onlyContent:!0,isNotification:!0}),this.wait(!1)}))}}e.default=s}),define("views/last-viewed/list",["views/list"],function(e){return e.extend({searchPanel:!1,createButton:!1,setup:function(){e.prototype.setup.call(this),this.collection.url="LastViewed"}})}),define("views/last-viewed/record/list",["views/record/list"],function(e){return e.extend({layoutName:"listForLastViewed",rowActionsDisabled:!0,massActionsDisabled:!0,headerDisabled:!0})}),define("views/import-error/fields/validation-failures",["views/fields/base"],t=>t.extend({detailTemplateContent:` {{#if itemList.length}} {{#each itemList}} {{/each}}
{{translate 'Field'}} {{translateOption 'Validation' scope='ImportError' field='type'}}
{{translate field category='fields' scope=entityType}} {{translate type category='fieldValidations'}} {{#if popoverText}} {{/if}}
{{else}} {{translate 'None'}} {{/if}} `,data:function(){let e=t.prototype.data.call(this);return e.itemList=this.getDataList(),e},afterRenderDetail:function(){this.$el.find(".popover-anchor").each((e,t)=>{var i=this.getHelper().transformMarkdownText(t.dataset.text).toString();Espo.Ui.popover($(t),{content:i},this)})},getDataList:function(){let e=Espo.Utils.cloneDeep(this.model.get(this.name))||[],a=this.model.get("entityType");return Array.isArray(e)&&e.forEach(e=>{let t=this.getFieldManager(),i=this.getLanguage();var s=t.getEntityTypeFieldParam(a,e.field,"type");s&&(s=s+"_"+e.type,i.has(s,"fieldValidationExplanations","Global")&&(e.popoverText=i.translate(s,"fieldValidationExplanations")))}),e}})),define("views/import-error/fields/line-number",["views/fields/int"],t=>t.extend({disableFormatting:!0,data:function(){let e=t.prototype.data.call(this);return e.valueIsSet=this.model.has(this.sourceName),e.isNotEmpty=this.model.has(this.sourceName),e},setup:function(){t.prototype.setup.call(this),this.sourceName="exportLineNumber"===this.name?"exportRowIndex":"rowIndex"},getAttributeList:function(){return[this.sourceName]},getValueForDisplay:function(){var e=this.model.get(this.sourceName);return this.formatNumber(++e)}})),define("views/import/step2",["exports","view"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{template="import/step-2";allowedFieldList=["createdAt","createdBy"];events={'click button[data-action="back"]':function(){this.back()},'click button[data-action="next"]':function(){this.next()},'click a[data-action="addField"]':function(e){e=$(e.currentTarget).data("name");this.addField(e)},'click a[data-action="removeField"]':function(e){var e=$(e.currentTarget).data("name"),t=(this.$el.find('a[data-action="addField"]').parent().removeClass("hidden"),this.additionalFields.indexOf(e));~t&&this.additionalFields.splice(t,1),this.$el.find('.field[data-name="'+e+'"]').parent().remove()}};data(){return{scope:this.scope,fieldList:this.getFieldList()}}setup(){this.formData=this.options.formData,this.scope=this.formData.entityType;let s=[];if(this.additionalFields=[],this.formData.previewArray){let e=0;this.formData.headerRow&&(e=1),this.formData.previewArray.length>e&&this.formData.previewArray[e].forEach((e,t)=>{let i={value:e};this.formData.headerRow&&(i.name=this.formData.previewArray[0][t]),s.push(i)})}this.wait(!0),this.getModelFactory().create(this.scope,e=>{this.model=e,this.formData.defaultValues&&this.model.set(this.formData.defaultValues),this.wait(!1)}),this.mapping=s}afterRender(){let e=$("#mapping-container");var t,i=$("").addClass("table").addClass("table-bordered").css("table-layout","fixed");let a=$("").appendTo(i),n=$(""),o=(this.formData.headerRow&&(t=$(""),this.formData.headerRow&&(o=$("
").attr("width","25%").text(this.translate("Header Row Value","labels","Import")),n.append(t)),$("").attr("width","25%").text(this.translate("Field","labels","Import")));n.append(o),o=$("").text(this.translate("First Row Value","labels","Import")),n.append(o),~["update","createAndUpdate"].indexOf(this.formData.action)&&(o=$("").text(this.translate("Update by","labels","Import")),n.append(o)),a.append(n),this.mapping.forEach((t,i)=>{n=$("
").text(t.name),n.append(o));let e=t.name;this.formData.attributeList&&(e=this.formData.attributeList[i]||null);var s=this.getFieldDropdown(i,e),s=(o=$("").append(s),n.append(o),t.value||"");if(200").css("overflow","hidden").text(s),n.append(o),~["update","createAndUpdate"].indexOf(this.formData.action)){let e=$("").attr("type","checkbox").attr("id","update-by-"+i.toString());this.formData.updateBy?~this.formData.updateBy.indexOf(i)&&e.attr("checked",!0):"id"===t.name&&e.attr("checked",!0),o=$("").append(e),n.append(o)}a.append(n)}),e.empty(),e.append(i),this.formData.defaultFieldList&&this.formData.defaultFieldList.forEach(e=>{this.addField(e)})}getFieldList(){var e,t,i=this.getMetadata().get("entityDefs."+this.scope+".fields");let s=this.getAcl().getScopeForbiddenFieldList(this.scope,"edit"),a=[];for(e in i)~s.indexOf(e)||(t=i[e],!~this.allowedFieldList.indexOf(e)&&(t.disabled||t.importDisabled)||a.push(e));return a=a.sort((e,t)=>this.translate(e,"fields",this.scope).localeCompare(this.translate(t,"fields",this.scope)))}getAttributeList(){var e,i=this.getMetadata().get(["entityDefs",this.scope,"fields"])||{};let s=this.getAcl().getScopeForbiddenFieldList(this.scope,"edit"),a=[];a.push("id");for(let t in i)~s.indexOf(t)||(e=i[t],!~this.allowedFieldList.indexOf(t)&&(e.disabled&&!e.importNotDisabled||e.importDisabled)||("phone"!==e.type?("email"===e.type&&(a.push(t+"2"),a.push(t+"3"),a.push(t+"4")),"link"===e.type&&(a.push(t+"Name"),a.push(t+"Id")),~["foreign"].indexOf(e.type)||("personName"===e.type&&a.push(t),e=e.type,(e=(e=this.getFieldManager().getActualAttributeList(e,t)).length?e:[t]).forEach(e=>{-1===a.indexOf(e)&&a.push(e)}))):(a.push(t),(this.getMetadata().get("entityDefs."+this.scope+".fields."+t+".typeList")||[]).map(e=>e.replace(/\s/g,"_")).forEach(e=>{a.push(t+Espo.Utils.upperCaseFirst(e))}))));return a=a.sort((e,t)=>this.translate(e,"fields",this.scope).localeCompare(this.translate(t,"fields",this.scope)))}getFieldDropdown(e,s){s=s||!1;let t=this.getAttributeList(),a=$("").addClass("table").addClass("table-bordered");let i=$("").appendTo(s),t=(e.forEach((e,t)=>{if(!(3<=t)){let t=$("");e.forEach(e=>{e=$("
").html(this.getHelper().sanitizeHtml(e));t.append(e)}),i.append(t)}}),$("#import-preview"));t.empty().append(s)}}csvToArray(e,t,i){i=i||'"',t=(t=t||",").replace(/\\t/,"\t");let s=new RegExp("(\\"+t+"|\\r?\\n|\\r|^)(?:"+i+"([^"+i+"]*(?:"+i+i+"[^"+i+"]*)*)"+i+"|([^"+i+"\\"+t+"\\r\\n]*))","gi"),a=[[]],n=null;for(;n=s.exec(e);){var o=n[1];let e;o.length&&o!==t&&a.push([]),e=n[2]?n[2].replace(new RegExp('""',"g"),'"'):n[3],a[a.length-1].push(e)}return a}saveAsDefault(){let e=this.getPreferences(),t=Espo.Utils.cloneDeep(e.get("importParams")||{}),i={};this.paramList.forEach(e=>{i[e]=this.model.get(e)}),t.default=i,e.save({importParams:t}).then(()=>{Espo.Ui.success(this.translate("Saved"))}),this.hideSaveAsDefaultButton()}controlFieldVisibility(){this.model.get("idleMode")?this.hideField("manualMode"):this.showField("manualMode"),this.model.get("manualMode")?this.hideField("idleMode"):this.showField("idleMode")}hideField(e){this.$el.find('.field[data-name="'+e+'"]').parent().addClass("hidden-cell")}showField(e){this.$el.find('.field[data-name="'+e+'"]').parent().removeClass("hidden-cell")}convertFormatToLabel(e){var t,i={YYYY:"2021",DD:"27",MM:"12",HH:"23",mm:"00",hh:"11",ss:"00",a:"pm",A:"PM"};let s=e;for(t in i){var a=i[t];s=s.replace(new RegExp(t,"g"),a)}return e+" - "+s}getDateFormatDataList(){let e=this.getMetadata().get(["clientDefs","Import","dateFormatList"])||[];return e.map(e=>({key:e,label:this.convertFormatToLabel(e)}))}getTimeFormatDataList(){let e=this.getMetadata().get(["clientDefs","Import","timeFormatList"])||[];return e.map(e=>({key:e,label:this.convertFormatToLabel(e)}))}}e.default=s}),define("views/import/list",["exports","views/list"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{createButton=!1;setup(){super.setup(),this.menu.buttons.unshift({iconHtml:'',text:this.translate("New Import","labels","Import"),link:"#Import",acl:"edit"})}}e.default=s}),define("views/import/index",["exports","view"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{template="import/index";formData=null;fileContents=null;data(){return{fromAdmin:this.options.fromAdmin}}setup(){this.entityType=this.options.entityType||null,this.startFromStep=1,(this.options.formData||this.options.fileContents)&&(this.formData=this.options.formData||{},this.fileContents=this.options.fileContents||null,this.entityType=this.formData.entityType||null,this.options.step&&(this.startFromStep=this.options.step))}changeStep(e,t){1<(this.step=e)&&this.setConfirmLeaveOut(!0),this.createView("step","views/import/step"+e.toString(),{selector:"> .import-container",entityType:this.entityType,formData:this.formData,result:t},e=>{e.render()});e="#Import";this.options.fromAdmin&&(e="#Admin/import"),1").attr("href","#"+this.model.entityType+"/list").text(this.getLanguage().translate(this.model.entityType,"scopeNamesPlural")),$("").text(e)])}setup(){super.setup(),this.setupMenu(),this.listenTo(this.model,"change",()=>{this.setupMenu(),this.isRendered()&&this.getView("header").reRender()}),this.listenTo(this.model,"sync",e=>{this.controlButtons(e)})}setupMenu(){this.addMenuItem("buttons",{label:"Remove Import Log",action:"removeImportLog",name:"removeImportLog",style:"default",acl:"delete",title:this.translate("removeImportLog","messages","Import")},!0),this.addMenuItem("buttons",{label:"Revert Import",name:"revert",action:"revert",style:"danger",acl:"edit",title:this.translate("revert","messages","Import"),hidden:!this.model.get("importedCount")},!0),this.addMenuItem("buttons",{label:"Remove Duplicates",name:"removeDuplicates",action:"removeDuplicates",style:"default",acl:"edit",title:this.translate("removeDuplicates","messages","Import"),hidden:!this.model.get("duplicateCount")},!0),this.addMenuItem("dropdown",{label:"New import with same params",name:"createWithSameParams",action:"createWithSameParams"})}controlButtons(e){e&&!e.hasChanged("importedCount")||(this.model.get("importedCount")?this.showHeaderActionItem("revert"):this.hideHeaderActionItem("revert")),e&&!e.hasChanged("duplicateCount")||(this.model.get("duplicateCount")?this.showHeaderActionItem("removeDuplicates"):this.hideHeaderActionItem("removeDuplicates"))}actionRemoveImportLog(){this.confirm(this.translate("confirmRemoveImportLog","messages","Import"),()=>{this.disableMenuItem("removeImportLog"),Espo.Ui.notify(this.translate("pleaseWait","messages")),this.model.destroy({wait:!0}).then(()=>{Espo.Ui.notify(!1);var e=this.model.collection;e&&0{this.disableMenuItem("revert"),Espo.Ui.notify(this.translate("pleaseWait","messages")),Espo.Ajax.postRequest(`Import/${this.model.id}/revert`).then(()=>{this.getRouter().navigate("#Import/list",{trigger:!0})})})}actionRemoveDuplicates(){this.confirm(this.translate("confirmRemoveDuplicates","messages","Import"),()=>{this.disableMenuItem("removeDuplicates"),Espo.Ui.notify(this.translate("pleaseWait","messages")),Espo.Ajax.postRequest(`Import/${this.model.id}/removeDuplicates`).then(()=>{this.removeMenuItem("removeDuplicates",!0),this.model.fetch(),this.model.trigger("update-all"),Espo.Ui.success(this.translate("duplicatesRemoved","messages","Import"))})})}actionCreateWithSameParams(){let e=this.model.get("params")||{};e.entityType=this.model.get("entityType"),e.attributeList=this.model.get("attributeList")||[],e=Espo.Utils.cloneDeep(e),this.getRouter().navigate("#Import",{trigger:!1}),this.getRouter().dispatch("Import","index",{formData:e})}}e.default=s}),define("views/import/record/list",["exports","views/record/list"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{quickDetailDisabled=!0;quickEditDisabled=!0;checkAllResultDisabled=!0;massActionList=["remove"];rowActionsView="views/record/row-actions/remove-only"}e.default=s}),define("views/import/record/detail",["exports","views/record/detail"],function(e,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class s extends(t=(i=t)&&i.__esModule?i:{default:i}).default{readOnly=!0;returnUrl="#Import/list";checkInterval=5;resultPanelFetchLimit=10;duplicateAction=!1;setup(){super.setup(),this.fetchCounter=0,this.setupChecking(),this.hideActionItem("delete")}setupChecking(){this.model.has("status")?~["In Process","Pending","Standby"].indexOf(this.model.get("status"))&&(setTimeout(this.runChecking.bind(this),1e3*this.checkInterval),this.on("remove",()=>{this.stopChecking=!0})):this.listenToOnce(this.model,"sync",this.setupChecking.bind(this))}runChecking(){this.stopChecking||(this.model.fetch().then(()=>{var e=!~["In Process","Pending","Standby"].indexOf(this.model.get("status"));this.fetchCounter{Espo.Ajax.postRequest(`Import/${this.model.id}/unmarkDuplicates`,{entityId:t,entityType:i}).then(()=>{this.collection.fetch()})})}}e.default=s}),define("views/group-email-folder/record/list",["views/record/list"],function(e){return e.extend({rowActionsView:"views/email-folder/record/row-actions/default",actionMoveUp:function(e){e=this.collection.get(e.id);e&&0!==this.collection.indexOf(e)&&Espo.Ajax.postRequest("GroupEmailFolder/action/moveUp",{id:e.id}).then(()=>{this.collection.fetch()})},actionMoveDown:function(e){e=this.collection.get(e.id);e&&(this.collection.indexOf(e)===this.collection.length-1&&this.collection.length===this.collection.total||Espo.Ajax.postRequest("GroupEmailFolder/action/moveDown",{id:e.id}).then(()=>{this.collection.fetch()}))}})}),define("views/email-folder/record/row-actions/default",["views/record/row-actions/default"],function(t){return t.extend({setup:function(){t.prototype.setup.call(this)},getActionList:function(){var e=t.prototype.getActionList.call(this);return this.options.acl.edit&&(e.unshift({action:"moveDown",label:"Move Down",data:{id:this.model.id}}),e.unshift({action:"moveUp",label:"Move Up",data:{id:this.model.id}})),e}})}),define("views/external-account/oauth2",["view","model"],function(e,t){return e.extend({template:"external-account/oauth2",data:function(){return{integration:this.integration,helpText:this.helpText,isConnected:this.isConnected}},isConnected:!1,events:{'click button[data-action="cancel"]':function(){this.getRouter().navigate("#ExternalAccount",{trigger:!0})},'click button[data-action="save"]':function(){this.save()},'click [data-action="connect"]':function(){this.connect()}},setup:function(){this.integration=this.options.integration,this.id=this.options.id,this.helpText=!1,this.getLanguage().has(this.integration,"help","ExternalAccount")&&(this.helpText=this.translate(this.integration,"help","ExternalAccount")),this.fieldList=[],this.dataFieldList=[],this.model=new t,this.model.id=this.id,this.model.entityType=this.model.name="ExternalAccount",this.model.urlRoot="ExternalAccount",this.model.defs={fields:{enabled:{required:!0,type:"bool"}}},this.wait(!0),this.model.populateDefaults(),this.listenToOnce(this.model,"sync",()=>{this.createFieldView("bool","enabled"),Espo.Ajax.getRequest("ExternalAccount/action/getOAuth2Info?id="+this.id).then(e=>{this.clientId=e.clientId,this.redirectUri=e.redirectUri,e.isConnected&&(this.isConnected=!0),this.wait(!1)})}),this.model.fetch()},hideField:function(e){this.$el.find('label[data-name="'+e+'"]').addClass("hide"),this.$el.find('div.field[data-name="'+e+'"]').addClass("hide");e=this.getView(e);e&&(e.disabled=!0)},showField:function(e){this.$el.find('label[data-name="'+e+'"]').removeClass("hide"),this.$el.find('div.field[data-name="'+e+'"]').removeClass("hide");e=this.getView(e);e&&(e.disabled=!1)},afterRender:function(){this.model.get("enabled")||this.$el.find(".data-panel").addClass("hidden"),this.listenTo(this.model,"change:enabled",()=>{this.model.get("enabled")?this.$el.find(".data-panel").removeClass("hidden"):this.$el.find(".data-panel").addClass("hidden")})},createFieldView:function(e,t,i,s){this.createView(t,this.getFieldManager().getViewName(e),{model:this.model,selector:'.field[data-name="'+t+'"]',defs:{name:t,params:s},mode:i?"detail":"edit",readOnly:i}),this.fieldList.push(t)},save:function(){this.fieldList.forEach(e=>{e=this.getView(e);e.readOnly||e.fetchToModel()});var t=!1;this.fieldList.forEach(e=>{t=this.getView(e).validate()||t}),t?this.notify("Not valid","error"):(this.listenToOnce(this.model,"sync",()=>{this.notify("Saved","success"),this.model.get("enabled")||this.setNotConnected()}),Espo.Ui.notify(this.translate("saving","messages")),this.model.save())},popup:function(e,t){e.windowName=e.windowName||"ConnectWithOAuth",e.windowOptions=e.windowOptions||"location=0,status=0,width=800,height=400",e.callback=e.callback||function(){window.location.reload()};var i,a=this,s=e.path,n=[],o=e.params||{};for(i in o)o[i]&&n.push(i+"="+encodeURI(o[i]));s+="?"+n.join("&");let l=window.open(s,e.windowName,e.windowOptions),r;r=window.setInterval(()=>{var e,i,s;l.closed?window.clearInterval(r):(e=l.location.href.toString(),s=i=null,(e=e.substr(e.indexOf("?")+1,e.length)).split("&").forEach(e=>{var e=e.split("="),t=decodeURI(e[0]),e=decodeURI(e[1]||"");"code"===t&&(i=e),"error"===t&&(s=e)}),(e=i?{code:i}:s?{error:s}:void 0)&&(t.call(a,e),l.close(),window.clearInterval(r)))},500)},connect:function(){this.popup({path:this.getMetadata().get("integrations."+this.integration+".params.endpoint"),params:{client_id:this.clientId,redirect_uri:this.redirectUri,scope:this.getMetadata().get("integrations."+this.integration+".params.scope"),response_type:"code",access_type:"offline",approval_prompt:"force"}},function(e){e.error?Espo.Ui.notify(!1):e.code?(this.$el.find('[data-action="connect"]').addClass("disabled"),Espo.Ajax.postRequest("ExternalAccount/action/authorizationCode",{id:this.id,code:e.code}).then(e=>{Espo.Ui.notify(!1),!0===e?this.setConnected():this.setNotConneted(),this.$el.find('[data-action="connect"]').removeClass("disabled")}).catch(()=>{this.$el.find('[data-action="connect"]').removeClass("disabled")})):this.notify("Error occurred","error")})},setConnected:function(){this.isConnected=!0,this.$el.find('[data-action="connect"]').addClass("hidden"),this.$el.find(".connected-label").removeClass("hidden")},setNotConnected:function(){this.isConnected=!1,this.$el.find('[data-action="connect"]').removeClass("hidden"),this.$el.find(".connected-label").addClass("hidden")}})}),define("views/external-account/index",["view"],function(e){return e.extend({template:"external-account/index",data:function(){return{externalAccountList:this.externalAccountList,id:this.id,externalAccountListCount:this.externalAccountList.length}},events:{"click #external-account-menu a.external-account-link":function(e){e=$(e.currentTarget).data("id")+"__"+this.userId;this.openExternalAccount(e)}},setup:function(){this.externalAccountList=this.collection.models.map(e=>e.getClonedAttributes()),this.userId=this.getUser().id,this.id=this.options.id||null,this.id&&(this.userId=this.id.split("__")[1]),this.on("after:render",function(){this.renderHeader(),this.id?this.openExternalAccount(this.id):this.renderDefaultPage()})},openExternalAccount:function(e){this.id=e;var t=this.integration=e.split("__")[0],i=(this.userId=e.split("__")[1],this.getRouter().navigate("#ExternalAccount/edit/"+e,{trigger:!1}),this.getMetadata().get(["integrations",t,"authMethod"])),i=this.getMetadata().get(["integrations",t,"userView"])||"views/external-account/"+Espo.Utils.camelCaseToHyphen(i);Espo.Ui.notify(" ... "),this.createView("content",i,{fullSelector:"#external-account-content",id:e,integration:t},e=>{this.renderHeader(),e.render(),Espo.Ui.notify(!1),$(window).scrollTop(0)})},renderDefaultPage:function(){$("#external-account-header").html("").hide(),$("#external-account-content").html("")},renderHeader:function(){this.id?$("#external-account-header").show().html(this.integration):$("#external-account-header").html("")},updatePageTitle:function(){this.setPageTitle(this.translate("ExternalAccount","scopeNamesPlural"))}})}),define("views/extension/record/row-actions",["views/record/row-actions/default"],function(e){return e.extend({getActionList:function(){return this.options.acl.edit?this.model.get("isInstalled")?[{action:"uninstall",label:"Uninstall",data:{id:this.model.id}}]:[{action:"install",label:"Install",data:{id:this.model.id}},{action:"quickRemove",label:"Remove",data:{id:this.model.id}}]:[]}})}),define("views/extension/record/list",["views/record/list"],function(e){return e.extend({rowActionsView:"views/extension/record/row-actions",checkboxes:!1,quickDetailDisabled:!0,quickEditDisabled:!0,massActionList:[]})}),define("views/export/record/record",["views/record/edit-for-modal"],function(t){return t.extend({formatList:null,customParams:null,setup:function(){t.prototype.setup.call(this)},setupBeforeFinal:function(){this.formatList=this.options.formatList,this.scope=this.options.scope;var e=this.getExportFieldsData();this.setupExportFieldDefs(e),this.setupExportLayout(e),this.setupExportDynamicLogic(),this.controlFormatField(),this.listenTo(this.model,"change:format",()=>this.controlFormatField()),this.controlAllFields(),this.listenTo(this.model,"change:exportAllFields",()=>this.controlAllFields()),t.prototype.setupBeforeFinal.call(this)},setupExportFieldDefs:function(e){let a={format:{type:"enum",options:this.formatList},fieldList:{type:"multiEnum",options:e.list,required:!0},exportAllFields:{type:"bool"}};this.customParams={},this.formatList.forEach(e=>{var t,i=this.getFormatParamsDefs(e).fields||{};for(t in this.customParams[e]=[],i){var s=this.modifyParamName(e,t);this.customParams[e].push(t),a[s]=Espo.Utils.cloneDeep(i[t])}}),this.model.setDefs({fields:a})},setupExportLayout:function(e){e={rows:[[{name:"format"},!(this.detailLayout=[])],[{name:"exportAllFields"},!1],[{name:"fieldList",options:{translatedOptions:e.translations}}]]};this.detailLayout.push(e),this.formatList.forEach(t=>{let e=this.getFormatParamsDefs(t).layout||[];e.forEach(e=>{e.forEach(e=>{e.name=this.modifyParamName(t,e.name)})}),this.detailLayout.push({name:t,rows:e})})},setupExportDynamicLogic:function(){this.dynamicLogicDefs={fields:{}},this.formatList.forEach(i=>{let s=this.getFormatParamsDefs(i).dynamicLogic||{};this.customParams[i].forEach(e=>{let t=s[e]||{};t.visible||(t.visible={}),t.visible.conditionGroup||(t.visible.conditionGroup=[]),t.visible.conditionGroup.push({type:"equals",attribute:"format",value:i});e=this.modifyParamName(i,e);this.dynamicLogicDefs.fields[e]=t})})},getFormatParamList:function(e){return Object.keys(this.getFormatParamsDefs(e).fields||{})},getFormatParamsDefs:function(e){e=this.getMetadata().get(["app","export","formatDefs",e])||{};return Espo.Utils.cloneDeep(e.params||{})},modifyParamName:function(e,t){return e+Espo.Utils.upperCaseFirst(t)},getExportFieldsData:function(){let s=this.getFieldManager().getEntityTypeFieldList(this.scope),t=this.getAcl().getScopeForbiddenFieldList(this.scope),a=(s=(s=s.filter(e=>!~t.indexOf(e))).filter(e=>{e=this.getMetadata().get(["entityDefs",this.scope,"fields",e])||{};return!e.disabled&&!e.exportDisabled&&"map"!==e.type}),this.getLanguage().sortFieldList(this.scope,s),s.unshift("id"),{}),e=(s.forEach(e=>{a[e]=this.getLanguage().translate(e,"fields",this.scope)}),this.model.get("fieldList")||[]);return e.forEach(e=>{var t,i;~s.indexOf(e)||~e.indexOf("_")&&(t=e.split("_"),s.push(e),(i=this.getMetadata().get(["entityDefs",this.scope,"links",t[0],"entity"]))&&(a[e]=this.getLanguage().translate(t[0],"links",this.scope)+"."+this.getLanguage().translate(t[1],"fields",i)))}),{list:s,translations:a}},controlAllFields:function(){this.model.get("exportAllFields")?this.hideField("fieldList"):this.showField("fieldList")},controlFormatField:function(){let t=this.model.get("format");this.formatList.filter(e=>e!==t).forEach(e=>{this.hidePanel(e)}),this.formatList.filter(e=>e===t).forEach(e=>{this.customParams[e].length?this.showPanel(e):this.hidePanel(e)})}})}),define("views/export/modals/idle",["views/modal","model"],function(e,t){return e.extend({className:"dialog dialog-record",template:"export/modals/idle",checkInterval:4e3,data:function(){return{infoText:this.translate("infoText","messages","Export")}},events:{'click [data-action="download"]':function(){this.actionDownload()}},setup:function(){this.action=this.options.action,this.id=this.options.id,this.status="Pending",this.headerText=this.translate("Export"),this.model=new t,this.model.name="Export",this.model.setDefs({fields:{status:{type:"enum",readOnly:!0,options:["Pending","Running","Success","Failed"],style:{Success:"success",Failed:"danger"}},attachmentId:{type:"varchar"}}}),this.model.set({status:this.status,processedCount:null}),this.createView("record","views/record/edit-for-modal",{scope:"None",model:this.model,selector:".record",detailLayout:[{rows:[[{name:"status",labelText:this.translate("status","fields","Export")}]]}]}),this.on("close",()=>{var e=this.model.get("status");"Pending"!==e&&"Running"!==e||Espo.Ajax.postRequest(`Export/${this.id}/subscribe`)}),this.checkStatus()},checkStatus:function(){Espo.Ajax.getRequest(`Export/${this.id}/status`).then(e=>{var t=e.status;this.model.set("status",t),"Pending"!==t&&"Running"!==t?(this.model.set({attachmentId:e.attachmentId}),"Success"===t&&(this.trigger("success",{attachmentId:e.attachmentId}),this.showDownload()),this.$el&&this.$el.find(".info-text").addClass("hidden")):setTimeout(()=>this.checkStatus(),this.checkInterval)})},showDownload:function(){this.$el.find(".download-container").removeClass("hidden");let e=this.$el.find('[data-action="download"]');e.removeClass("hidden")},actionDownload:function(){this.trigger("download",this.model.get("attachmentId")),this.close()}})}),define("views/export/modals/export",["views/modal","model"],function(e,t){return e.extend({cssName:"export-modal",className:"dialog dialog-record",template:"export/modals/export",shortcutKeys:{"Control+Enter":"export"},data:function(){return{}},setup:function(){this.buttonList=[{name:"export",label:"Export",style:"danger",title:"Ctrl+Enter"},{name:"cancel",label:"Cancel"}],this.model=new t,this.model.name="Export",this.scope=this.options.scope,this.options.fieldList?(e=this.options.fieldList.filter(e=>!this.getMetadata().get(`entityDefs.${this.scope}.fields.${e}.exportDisabled`)),this.model.set("fieldList",e),this.model.set("exportAllFields",!1)):this.model.set("exportAllFields",!0);var e=this.getMetadata().get(["scopes",this.scope,"exportFormatList"])||this.getMetadata().get("app.export.formatList");this.model.set("format",e[0]),this.createView("record","views/export/record/record",{scope:this.scope,model:this.model,selector:".record",formatList:e})},getRecordView:function(){return this.getView("record")},actionExport:function(){let i=this.getRecordView(),a=i.fetch();if(this.model.set(a),!i.validate()){let s={exportAllFields:a.exportAllFields,format:a.format};if(!a.exportAllFields){let i=[];a.fieldList.forEach(e=>{var t;"id"!==e?((t=this.getMetadata().get(["entityDefs",this.scope,"fields",e,"type"]))&&this.getFieldManager().getAttributeList(t,e).forEach(e=>{i.push(e)}),~e.indexOf("_")&&i.push(e)):i.push("id")}),s.attributeList=i,s.fieldList=a.fieldList}s.params={},i.getFormatParamList(a.format).forEach(e=>{var t=i.modifyParamName(a.format,e),t=i.getFieldView(t);t&&!t.disabled&&this.getFieldManager().getActualAttributeList(t.type,e).forEach(e=>{var t=i.modifyParamName(a.format,e);s.params[e]=a[t]})}),this.trigger("proceed",s),this.close()}}})}),define("views/event/fields/name-for-history",["views/fields/varchar"],function(s){return s.extend({listLinkTemplate:"event/fields/name-for-history/list-link",data:function(){let e=s.prototype.data.call(this);var t=this.model.get("status");let i=this.getMetadata().get(["scopes",this.model.entityType,"canceledStatusList"])||[];return e.strikethrough=i.includes(t),e}})}),define("views/email-template/list",["views/list-with-categories"],function(e){return e.extend({quickCreate:!1})}),define("views/email-template/record/edit",["views/record/edit","views/email-template/record/detail"],function(e,t){return e.extend({saveAndContinueEditingAction:!0,setup:function(){e.prototype.setup.call(this),t.prototype.listenToInsertField.call(this)}})}),define("views/email-template/record/edit-quick",["views/record/edit","views/email-template/record/detail"],function(e,t){return e.extend({isWide:!0,sideView:!1,setup:function(){e.prototype.setup.call(this),t.prototype.listenToInsertField.call(this)}})}),define("views/email-template/record/panels/information",["views/record/panels/side"],function(e){return e.extend({templateContent:"{{{infoText}}}",data:function(){let e=this.getMetadata().get(["clientDefs","EmailTemplate","placeholderList"])||[];if(!e.length)return{infoText:""};var t=$("

").text(this.translate("Available placeholders","labels","EmailTemplate")+":"),i=e.map(e=>$("
  • ").append($("").text("{"+e+"}")," – ",$("").text(this.translate(e,"placeholderTexts","EmailTemplate")))),i=$("