635 lines
1.5 MiB
635 lines
1.5 MiB
/*! espocrm 2026-03-06 */
|
||
define("di",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.container=void 0;e.inject=function(i){return function(e,t){t.addInitializer(function(){let e=a.get(i);if(!e){e=Reflect.construct(i,s.get(i));a.set(i,e)}this[t.name]=e})}};e.register=function(){let t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];return function(e){s.set(e,t)}};let s=new Map,a=e.container=new Map});define("date-time",["exports","moment"],function(e,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;a=(t=a,t&&t.__esModule?t:{default:t});var t;e.default=class{constructor(){}internalDateFormat="YYYY-MM-DD";internalDateTimeFormat="YYYY-MM-DD HH:mm";internalDateTimeFullFormat="YYYY-MM-DD HH:mm:ss";dateFormat="MM/DD/YYYY";timeFormat="HH:mm";timeZone=null;systemTimeZone;weekStart=1;readableDateFormatMap={"DD.MM.YYYY":"DD MMM","DD/MM/YYYY":"DD MMM"};readableShortDateFormatMap={"DD.MM.YYYY":"D MMM","DD/MM/YYYY":"D MMM"};hasMeridian(){return new RegExp("A","i").test(this.timeFormat)}getDateFormat(){return this.dateFormat}getTimeFormat(){return this.timeFormat}getDateTimeFormat(){return this.dateFormat+" "+this.timeFormat}getReadableDateFormat(){return this.readableDateFormatMap[this.getDateFormat()]||"MMM DD"}getReadableShortDateFormat(){return this.readableShortDateFormatMap[this.getDateFormat()]||"MMM D"}getReadableDateTimeFormat(){return this.getReadableDateFormat()+" "+this.timeFormat}getReadableShortDateTimeFormat(){return this.getReadableShortDateFormat()+" "+this.timeFormat}fromDisplayDate(e){var t=(0,a.default)(e,this.dateFormat);return t.isValid()?t.format(this.internalDateFormat):-1}getTimeZone(){return this.timeZone||"UTC"}toDisplayDate(e){var t;return e&&"string"==typeof e&&(t=(0,a.default)(e,this.internalDateFormat),t.isValid())?t.format(this.dateFormat):""}fromDisplay(e){let t;t=this.timeZone?a.default.tz(e,this.getDateTimeFormat(),this.timeZone).utc():a.default.utc(e,this.getDateTimeFormat());return t.isValid()?t.format(this.internalDateTimeFormat)+":00":-1}toDisplay(e){return e?this.toMoment(e).format(this.getDateTimeFormat()):""}getNowMoment(){return(0,a.default)().tz(this.getTimeZone())}toMomentDate(e){return a.default.tz(e,this.internalDateFormat,this.systemTimeZone)}toMoment(e){let t=a.default.utc(e,this.internalDateTimeFullFormat);this.timeZone&&(t=t.tz(this.timeZone));return t}fromIso(e){var t;return e?(t=(0,a.default)(e).utc(),t.format(this.internalDateTimeFormat)):""}toIso(e){return this.toMoment(e).format()}getToday(){return(0,a.default)().tz(this.getTimeZone()).format(this.internalDateFormat)}getDateTimeShiftedFromNow(e,t,i){if(!i)return a.default.utc().add(e,t).format(this.internalDateTimeFormat);var s=(0,a.default)().unix();s-=s%(60*i);return a.default.unix(s).utc().add(e,t).format(this.internalDateTimeFormat)}getDateShiftedFromToday(e,t){return a.default.tz(this.getTimeZone()).add(e,t).format(this.internalDateFormat)}getNow(e){if(!e)return a.default.utc().format(this.internalDateTimeFormat);var t=(0,a.default)().unix();t-=t%(60*e);return a.default.unix(t).utc().format(this.internalDateTimeFormat)}setSettingsAndPreferences(e,t){e.has("dateFormat")&&(this.dateFormat=e.get("dateFormat"));e.has("timeFormat")&&(this.timeFormat=e.get("timeFormat"));if(e.has("timeZone")){this.timeZone=e.get("timeZone")||null;this.systemTimeZone=this.timeZone||"UTC";"UTC"===this.timeZone&&(this.timeZone=null)}e.has("weekStart")&&(this.weekStart=e.get("weekStart"));t.on("change",e=>{e.has("dateFormat")&&e.get("dateFormat")&&(this.dateFormat=e.get("dateFormat"));e.has("timeFormat")&&e.get("timeFormat")&&(this.timeFormat=e.get("timeFormat"));e.has("timeZone")&&e.get("timeZone")&&(this.timeZone=e.get("timeZone"));e.has("weekStart")&&-1!==e.get("weekStart")&&(this.weekStart=e.get("weekStart"));"UTC"===this.timeZone&&(this.timeZone=null)})}setLanguage(e){a.default.updateLocale("en",{months:e.translatePath(["Global","lists","monthNames"]),monthsShort:e.translatePath(["Global","lists","monthNamesShort"]),weekdays:e.translatePath(["Global","lists","dayNames"]),weekdaysShort:e.translatePath(["Global","lists","dayNamesShort"]),weekdaysMin:e.translatePath(["Global","lists","dayNamesMin"])});a.default.locale("en")}}});define("helpers/model/default-value-provider",["exports","date-time","di"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(s=t,s&&s.__esModule?s:{default:s});var s,a;let r,o;function n(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}let l=/return this\.dateTime\.getNow\(([0-9]+)\);/,d=/return this\.dateTime\.getDateShiftedFromToday\(([0-9]+), '([a-z]+)'\);/,h=/return this\.dateTime\.getDateTimeShiftedFromNow\(([0-9]+), '([a-z]+)', ([0-9]+)\);/;class c{constructor(){o(this)}dateTime=r(this);get(e){var t,i,s;return"return this.dateTime.getToday();"===e?this.dateTime.getToday():(t=e.match(l),t?(t=parseInt(t[1]),this.dateTime.getNow(t)):(t=e.match(d),t?(s=parseInt(t[1]),t=t[2],this.dateTime.getDateShiftedFromToday(s,t)):(s=e.match(h),s?(t=parseInt(s[1]),i=s[2],s=parseInt(s[3]),this.dateTime.getDateTimeShiftedFromNow(t,i,s)):void 0)))}static#_=a=()=>[r,o]=n(this,[],[[(0,i.inject)(t.default),0,"dateTime"]]).e}e.default=c;a()});define("utils",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;let i=/Mac/.test(navigator.userAgent),s=(Espo.Utils={handleAction:function(i,s,e,t){t=t||{};var a=$(e),r=t.action||a.data("action");let o=a.data("name")||r,n,l;if(o&&t.actionItems&&(!t.className||e.classList.contains(t.className))){let e=t.actionItems.find(e=>e.name===o||e.action===o);if(e&&e.onClick)return e.onClick(),!0;if(e){l=e.handler;n=e.actionFunction}}if(!r&&!t.actionFunction&&!n)return!1;if(s.ctrlKey||s.metaKey||s.shiftKey){var d=a.attr("href");if(d&&"javascript:"!==d)return!1}let h=a.data();n=t.actionFunction||n||"action"+Espo.Utils.upperCaseFirst(r);l=t.handler||l||h.handler;let c=!1;if(l){s.preventDefault();s.stopPropagation();c=!0;Espo.loader.require(l,e=>{var t=new e(i);t[n].call(t,h,s)})}else if("function"==typeof i[n]){if(null!=i&&i.events[`click [data-action="${r}"]`])return!1;i[n].call(i,h,s);s.preventDefault();s.stopPropagation();c=!0}if(!c)return!1;this._processAfterActionDropdown(a);return!0},_processAfterActionDropdown:function(e){var t=e.closest(".dropdown-menu");if(t.length){t=t.parent().find('[data-toggle="dropdown"]');if(t.length){let e=!1;if(t.attr("disabled")){e=!0;t.removeAttr("disabled").removeClass("disabled")}t.dropdown("toggle");t.focus();e&&t.attr("disabled","disabled").addClass("disabled")}}},checkActionAvailability:function(e,s){var a=e.config;if(s.configCheck){let e=s.configCheck,t=!1;if("!"===e.substring(0,1)){t=!0;e=e.substring(1)}let i=a.getByPath(e.split("."));t&&(i=!i);if(!i)return!1}return!0},checkActionAccess:function(e,t,i,s){let a=!0;i.acl?a=i.aclScope?e.check(i.aclScope,i.acl):t?"string"==typeof t||t instanceof String?e.check(t,i.acl):e.checkModel(t,i.acl,s):e.check(i.scope,i.acl):i.aclScope&&(a=e.checkScope(i.aclScope));return a},checkAccessDataList:function(e,t,s,a,r){if(e&&e.length)for(var o in e){let i=e[o];if(i.scope){if(i.action){if(!t.check(i.scope,i.action))return!1}else if(!t.checkScope(i.scope))return!1}else if(i.action&&a&&!t.check(a,i.action))return!1;if(i.teamIdList&&s&&(!r||!s.isAdmin())){let t=!1;s.getLinkMultipleIdList("teams").forEach(e=>{~i.teamIdList.indexOf(e)&&(t=!0)});if(!t)return!1}if(i.portalIdList&&s&&(!r||!s.isAdmin())){let t=!1;s.getLinkMultipleIdList("portals").forEach(e=>{~i.portalIdList.indexOf(e)&&(t=!0)});if(!t)return!1}if(i.isPortalOnly){if(s&&(!r||!s.isAdmin())&&!s.isPortal())return!1}else if(i.inPortalDisabled&&s&&(!r||!s.isAdmin())&&s.isPortal())return!1;if(i.isAdminOnly&&s&&!s.isAdmin())return!1}return!0},convert:function(e,t){if(null===e)return e;let i=e;switch(t){case"c-h":case"C-h":i=Espo.Utils.camelCaseToHyphen(e);break;case"h-c":i=Espo.Utils.hyphenToCamelCase(e);break;case"h-C":i=Espo.Utils.hyphenToUpperCamelCase(e)}return i},isObject:function(e){return null!==e&&"object"==typeof e},clone:function(e){return Espo.Utils.isObject(e)?_.isArray(e)?e.slice():_.extend({},e):e},cloneDeep:function(e){e=Espo.Utils.clone(e);if(Espo.Utils.isObject(e)||_.isArray(e))for(var t in e)e[t]=this.cloneDeep(e[t]);return e},areEqual:function(e,t){return _.isEqual(e,t)},composeClassName:function(e,t,i){if(e){e=this.camelCaseToHyphen(e);t=this.camelCaseToHyphen(t).split(".").join("/");i=this.camelCaseToHyphen(i||"");return e+":"+i+"/"+t}return t=this.camelCaseToHyphen(t).split(".").join("/"),i+"/"+t},composeViewClassName:function(e){var t,i;return e&&e[0]===e[0].toLowerCase()?e:-1!==e.indexOf(":")?(i=e.split(":"),t=i[0],i=i[1],t=this.camelCaseToHyphen(t),i=this.camelCaseToHyphen(i).split(".").join("/"),t+":views/"+i):(e=this.camelCaseToHyphen(e).split(".").join("/"),"views/"+e)},toDom:function(e){return Espo.Utils.convert(e,"c-h").split(".").join("-")},lowerCaseFirst:function(e){return null===e?e:e.charAt(0).toLowerCase()+e.slice(1)},upperCaseFirst:function(e){return null===e?e:e.charAt(0).toUpperCase()+e.slice(1)},hyphenToUpperCamelCase:function(e){return null===e?e:this.upperCaseFirst(e.replace(/-([a-z])/g,function(e){return e[1].toUpperCase()}))},hyphenToCamelCase:function(e){return null===e?e:e.replace(/-([a-z])/g,function(e){return e[1].toUpperCase()})},camelCaseToHyphen:function(e){return null===e?e:e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()},trimSlash:function(e){return"/"===e.slice(-1)?e.slice(0,-1):e},parseUrlOptionsParam:function(e){if(!e)return{};if(-1===e.indexOf("&")&&-1===e.indexOf("="))return{};let i={};void 0!==e&&e.split("&").forEach(e=>{var t=e.split("=");i[t[0]]=!0;1<t.length&&(i[t[0]]=t[1])});return i},getKeyFromKeyEvent:function(e){let t=e.code;t=s[t]||t;e.shiftKey&&(t="Shift+"+t);e.altKey&&(t="Alt+"+t);(i?e.metaKey:e.ctrlKey)&&(t="Control+"+t);return t},isKeyEventInTextInput:function(e){return e.target instanceof HTMLElement&&("TEXTAREA"===e.target.tagName||(e.target instanceof HTMLInputElement?"radio"!==e.target.type&&"checkbox"!==e.target.type:!!e.target.classList.contains("note-editable")))},generateId:function(){return Math.floor(10000001*Math.random()).toString()},obtainBaseUrl:function(){let e=window.location.origin+window.location.pathname;"/"!==e.slice(-1)&&(e=window.location.pathname.includes(".")?e.slice(0,e.lastIndexOf("/"))+"/":e+"/");return e}},{NumpadEnter:"Enter"});Espo.utils=Espo.Utils;e.default=Espo.Utils});define("ui",["exports","marked","dompurify","jquery"],function(e,l,d,m){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;d=t(d);m=t(m);function t(e){return e&&e.__esModule?e:{default:e}}let i=[];class c{height;fitHeight;onRemove;onClose;onBackdropClick;buttons;screenWidthXs;backdropClassName;maximizeButton=!1;maximizeButtonElement;minimizeButtonElement;onMaximize;onMinimize;constructor(a){a=a||{};this.className="dialog-confirm";this.backdrop="static";this.closeButton=!0;this.collapseButton=!1;this.header=null;this.body="";this.width=null;this.buttonList=[];this.dropdownItemList=[];this.removeOnClose=!0;this.draggable=!1;this.container="body";this.options=a;this.keyboard=!0;this.activeElement=document.activeElement;["className","backdrop","keyboard","closeButton","collapseButton","header","body","width","height","fitHeight","buttons","buttonList","dropdownItemList","removeOnClose","draggable","container","onRemove","onClose","onBackdropClick","maximizeButton","backdropClassName"].forEach(e=>{e in a&&(this[e]=a[e])});a.onMaximize&&(this.onMaximize=a.onMaximize);a.onMinimize&&(this.onMinimize=a.onMinimize);this.onCloseIsCalled=!1;this.buttons&&this.buttons.length&&(this.buttonList=this.buttons);this.id="dialog-"+Math.floor(1e5*Math.random());void 0===this.backdrop&&(this.backdrop="static");var e=this.getHeader(),t=this.getFooter(),i=(0,m.default)("<div>").addClass("modal-body body").html(this.body),s=(0,m.default)("<div>").addClass("modal-content");e&&s.append(e);t&&this.options.footerAtTheTop&&s.append(t);s.append(i);t&&!this.options.footerAtTheTop&&s.append(t);e=(0,m.default)("<div>").addClass("modal-dialog").append(s),i=(0,m.default)(this.container);(0,m.default)("<div>").attr("id",this.id).attr("class",this.className+" modal").attr("role","dialog").attr("tabindex","-1").append(e).appendTo(i);this.$el=(0,m.default)("#"+this.id);this.el=this.$el.get(0);this.$el.find("header a.close").on("click",()=>{});this.initButtonEvents();if(this.draggable){this.$el.find("header").css("cursor","pointer");this.$el.draggable({handle:"header"})}t=this.$el.find(".modal-content");if(this.width){t.css("width",this.width);t.css("margin-left","-"+parseInt(this.width.replace("px",""))/5+"px")}this.removeOnClose&&this.$el.on("hidden.bs.modal",e=>{if(this.$el.get(0)===e.target){this.onCloseIsCalled||this.close();this.skipRemove||this.remove()}});let r=(0,m.default)(window),o=(this.$el.on("shown.bs.modal",()=>{(0,m.default)(".modal-backdrop").not(".stacked").addClass("stacked");var e=this.$el.find(".modal-header").outerHeight()||0,t=this.$el.find(".modal-footer").outerHeight()||0;let s=e+t;a.fullHeight||(s+=a.bodyDiffHeight);if(this.fitHeight||a.fullHeight){e=()=>{var e=window.innerHeight,t=r.width();if(!a.fullHeight&&e<512)this.$el.find("div.modal-body").css({maxHeight:"none",overflow:"auto",height:"none"});else{var i={overflow:"auto"};if(a.fullHeight){i.height=e-s+"px";this.$el.css("paddingRight",0)}else t<=a.screenWidthXs?i.maxHeight="none":i.maxHeight=e-s+"px";this.$el.find("div.modal-body").css(i)}};r.off("resize.modal-height");r.on("resize.modal-height",e);e()}}),(0,m.default)(document.body));this.$el.on("hidden.bs.modal",()=>{0<(0,m.default)(".modal:visible").length&&o.addClass("modal-open")})}getElement(){return this.el}setHeaderText(e){var t=this.el.querySelector(".modal-header .modal-title");t&&(t.textContent=e)}callOnClose(){this.onClose&&this.onClose()}callOnBackdropClick(){this.onBackdropClick&&this.onBackdropClick()}callOnRemove(){this.onRemove&&this.onRemove()}setActionItems(e,t){this.buttonList=e;this.dropdownItemList=t}initButtonEvents(){this.buttonList.forEach(t=>{if("function"==typeof t.onClick){var e=(0,m.default)("#"+this.id+' .modal-footer button[data-name="'+t.name+'"]');e.on("click",e=>t.onClick(this,e))}});this.dropdownItemList.forEach(t=>{if(!1!==t&&"function"==typeof t.onClick){var e=(0,m.default)("#"+this.id+' .modal-footer a[data-name="'+t.name+'"]');e.on("click",e=>t.onClick(this,e))}})}getHeader(){if(!this.header)return null;var e=(0,m.default)("<header />").addClass("modal-header").addClass(this.options.fixedHeaderHeight?"fixed-height":"").append((0,m.default)("<h4 />").addClass("modal-title").append((0,m.default)("<span />").addClass("modal-title-text").html(this.header)));this.collapseButton&&e.prepend((0,m.default)("<a>").addClass("collapse-button").attr("role","button").attr("tabindex","-1").attr("data-action","collapseModal").append((0,m.default)("<span />").addClass("fas fa-minus")));if(this.maximizeButton){var t=document.createElement("a");t.classList.add("maximize-button");t.role="button";t.tabIndex=-1;t.setAttribute("data-action","maximizeModal");var i=document.createElement("span");i.classList.add("far","fa-window-maximize");t.append(i);e.prepend(t);this.maximizeButtonElement=t;t.addEventListener("click",()=>{this.maximizeButtonElement.classList.add("hidden");this.minimizeButtonElement.classList.remove("hidden");this.el.querySelector(".modal-dialog").classList.add("maximized");this.onMaximize&&this.onMaximize();this.getElement().focus()});i=document.createElement("a");i.classList.add("minimize-button","hidden");i.role="button";i.tabIndex=-1;i.setAttribute("data-action","minimizeModal");t=document.createElement("span");t.classList.add("far","fa-window-minimize");i.append(t);e.prepend(i);this.minimizeButtonElement=i;i.addEventListener("click",()=>{this.minimizeButtonElement.classList.add("hidden");this.maximizeButtonElement.classList.remove("hidden");this.el.querySelector(".modal-dialog").classList.remove("maximized");this.onMinimize&&this.onMinimize();this.getElement().focus()})}this.closeButton&&e.prepend((0,m.default)("<a>").addClass("close").attr("data-dismiss","modal").attr("role","button").attr("tabindex","-1").append((0,m.default)("<span />").attr("aria-hidden","true").html("×")));return e}getFooter(){if(!this.buttonList.length&&!this.dropdownItemList.length)return null;var e=(0,m.default)("<footer>").addClass("modal-footer");let i=(0,m.default)("<div>").addClass("btn-group").addClass("main-btn-group"),s=(0,m.default)("<div>").addClass("btn-group").addClass("additional-btn-group");this.buttonList.forEach(e=>{var t=e.style||"default",t=(0,m.default)("<button>").attr("type","button").attr("data-name",e.name).addClass("btn").addClass("btn-"+t).addClass(e.className||"btn-xs-wide");if(e.disabled){t.attr("disabled","disabled");t.addClass("disabled")}e.hidden&&t.addClass("hidden");e.title&&t.attr("title",e.title);e.text&&t.text(e.text);e.html&&t.html(e.html);(e.pullLeft||"right"===e.position?s:i).append(t)});var t=0===this.dropdownItemList.filter(e=>e&&!e.hidden).length,t=(0,m.default)("<div>").addClass("btn-group").addClass(t?"hidden":"").append((0,m.default)("<button>").attr("type","button").addClass("btn btn-default dropdown-toggle").addClass(t?"hidden":"").attr("data-toggle","dropdown").append((0,m.default)("<span>").addClass("fas fa-ellipsis-h")));let a=(0,m.default)("<ul>").addClass("dropdown-menu pull-right");t.append(a);this.dropdownItemList.forEach((e,t)=>{if(!1===e)t!==this.dropdownItemList.length-1&&a.append('<li class="divider"></li>');else{var i=(0,m.default)("<a>").attr("role","button").attr("tabindex","0").attr("data-name",e.name);e.text&&i.text(e.text);e.title&&i.attr("title",e.title);e.html&&i.html(e.html);i=(0,m.default)("<li>").addClass(e.hidden?" hidden":"").append(i);a.append(i)}});a.children().length&&i.append(t);s.children().length&&e.append(s);e.append(i);return e}_backdropElement;show(){i.push(this);this.$el.modal({backdrop:this.backdrop,keyboard:this.keyboard,onBackdropCreate:e=>{this._backdropElement=e;this.backdropClassName&&this._backdropElement.classList.add(this.backdropClassName)}});this.$el.find(".modal-content").removeClass("hidden");for(var[e,t]of i.entries())if(e<i.length-1&&t.getElement()&&t.getElement().parentElement){t._backdropElement&&t._backdropElement.classList.add("hidden");t.getElement().parentElement.classList.add("overlaid")}this.$el.off("click.dismiss.bs.modal");this.$el.on("click.dismiss.bs.modal",'> div.modal-dialog > div.modal-content > header [data-dismiss="modal"]',()=>this.close());this.$el.on("mousedown",e=>{this.$mouseDownTarget=(0,m.default)(e.target)});this.$el.on("click.dismiss.bs.modal",e=>{if(!(e.target!==e.currentTarget||this.$mouseDownTarget&&this.$mouseDownTarget.closest(".modal-content").length)){this.callOnBackdropClick();"static"!==this.backdrop&&this.close()}});(0,m.default)("body > .popover").addClass("hidden")}hide(){this.$el.find(".modal-content").addClass("hidden")}hideWithBackdrop(){this._backdropElement&&this._backdropElement.classList.add("hidden");this._hideInternal();this.skipRemove=!0;setTimeout(()=>this.skipRemove=!1,50);this.$el.modal("hide");this.$el.find(".modal-content").addClass("hidden")}_hideInternal(){var e=i.findIndex(e=>e===this),e=(0<=e&&i.splice(e,1),i[i.length-1]);e&&e._backdropElement&&e._backdropElement.classList.remove("hidden");e&&e.getElement()&&e.getElement().parentElement&&e.getElement().parentElement.classList.remove("overlaid")}_close(){this._hideInternal()}_findClosestFocusableElement(e){var t=!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length);if(t)return e.focus({preventScroll:!0}),e;t=(0,m.default)(e);if(t.closest(".dropdown-menu").length){t=t.closest(".btn-group").find('[data-toggle="dropdown"]');if(t.length)return t.get(0).focus({preventScroll:!0}),t.get(0)}return null}close(){if(!this.onCloseIsCalled){this.callOnClose();this.onCloseIsCalled=!0;this.activeElement&&setTimeout(()=>{var e=this._findClosestFocusableElement(this.activeElement);e&&e.focus({preventScroll:!0})},50)}this._close();this.$el.modal("hide");(0,m.default)(this).trigger("dialog:close")}remove(){this.callOnRemove();this._close();this.$el.remove();(0,m.default)(this).off();(0,m.default)(window).off("resize.modal-height")}}Espo.Ui={Dialog:c,confirm:function(i,e,s,a){e=e||{};let r=e.confirmText,o=e.cancelText,n=e.confirmStyle||"danger",l=e.backdrop,d=(void 0===l&&(l=!1),!1),h=()=>{e.cancelCallback&&(a?e.cancelCallback.call(a):e.cancelCallback())};e.isHtml||(i=Handlebars.Utils.escapeExpression(i));u++;return new Promise(e=>{let t=new c({backdrop:l,header:null,className:"dialog-confirm",backdropClassName:"backdrop-confirm",body:'<span class="confirm-message">'+i+"</a>",buttonList:[{text:" "+r+" ",name:"confirm",className:"btn-s-wide",onClick:()=>{d=!0;s&&(a?s.call(a):s());e();t.close()},style:n,position:"right"},{text:o,name:"cancel",className:"btn-s-wide",onClick:()=>{d=!0;t.close();h()},position:"left"}],onClose:()=>{u--;d||h()}});t.show();t.$el.find('button[data-name="confirm"]').focus()})},dialog:function(e){return new c(e)},popover:function(e,t,i){let s=(0,m.default)(e),a=(0,m.default)("body");var r=t.content||Handlebars.Utils.escapeExpression(t.text||"");let o=!1,n=t.container;if(!n){var l=s.closest(".modal-body");n=l.length?l:"body"}s.popover({placement:t.placement||"bottom",container:n,viewport:n,html:!0,content:r,trigger:t.trigger||"manual",title:t.title,keepElementTitle:t.keepElementTitle}).on("shown.bs.popover",()=>{o=!0;if(i){if(i&&!t.noHideOnOutsideClick){a.off("click.popover-"+i.cid);a.on("click.popover-"+i.cid,e=>{if(!(0,m.default)(e.target).closest(".popover").get(0)&&!m.default.contains(s.get(0),e.target)&&s.get(0)!==e.target){a.off("click.popover-"+i.cid);s.popover("hide")}})}t.onShow&&t.onShow()}}).on("hidden.bs.popover",()=>{o=!1;t.onHide&&t.onHide()});t.noToggleInit||s.on("click",()=>{s.popover("toggle")});let d=!1,h=()=>{if(i){a.off("click.popover-"+i.cid);i.off("remove",c);i.off("render",c);i.off("render",u)}d=!0},c=()=>{if(!d){s.popover("destroy");h()}},u=()=>{o&&s.popover("hide")};if(i){i.once("remove",c);t.preventDestroyOnRender||i.once("render",c);t.preventDestroyOnRender&&i.on("render",u)}return{hide:()=>u(),destroy:()=>c(),show:()=>(()=>{s.popover("show");return s.attr("aria-describedby")})(),detach:()=>h()}},notifyWait:function(){Espo.Ui.notify(" ... ")},notify:function(i,s,a,r){s=s||"warning";r={...r};if("warning"!==s||!h){(0,m.default)("#notification").remove();if(i){if(r.suppress&&a){h=!0;setTimeout(()=>h=!1,a)}var o=-1!==i.indexOf("\n")?l.marked.parse(i):l.marked.parseInline(i);let e=d.default.sanitize(o,{}).toString();o=r.closeButton||!1;"error"===s&&(s="danger");" ... "===e&&(e=' <span class="fas fa-spinner fa-spin"> ');var n=o?" alert-closable":"";let t=(0,m.default)("<div>").addClass("alert alert-"+s+n+" fade in").attr("id","notification").css({position:"fixed",top:"0",left:"50vw",transform:"translate(-50%, 0)","z-index":2e3}).append((0,m.default)("<div>").addClass("message").html(e));if(o){n=(0,m.default)("<button>").attr("type","button").attr("data-dismiss","modal").attr("aria-hidden","true").addClass("close").html('<span class="fas fa-times"></span>');t.append((0,m.default)("<div>").addClass("close-container").append(n));n.on("click",()=>t.alert("close"))}a&&setTimeout(()=>t.alert("close"),a);t.appendTo("body")}}},warning:function(e,t){Espo.Ui.notify(e,"warning",2e3,t)},success:function(e,t){Espo.Ui.notify(e,"success",2e3,t)},error:function(e,t){t="boolean"==typeof t?{closeButton:t}:{...t};var i=t.closeButton?0:4e3;Espo.Ui.notify(e,"danger",i,t)},info:function(e,t){Espo.Ui.notify(e,"info",2e3,t)},getConfirmCount(){return u}};let u=0,h=!1;Espo.ui=Espo.Ui;e.default=Espo.Ui});define("model",["exports","bullbone","underscore","helpers/model/default-value-provider"],function(e,t,h,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;h=i(h);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a{urlRoot=null;url=null;name=null;entityType=null;lastSyncPromise=null;_pending;_changing;constructor(e,t){t=t||{};this.idAttribute="id";this.id=null;this.cid=h.default.uniqueId("c");this.attributes={};t.collection&&(this.collection=t.collection);this.set(e||{});this.defs=t.defs||{};this.defs.fields||(this.defs.fields={});if(t.entityType){this.entityType=t.entityType;this.name=t.entityType;this.urlRoot=t.entityType}this.urlRoot=t.urlRoot||this.urlRoot;this.url=t.url||this.url;this.changed={};this._previousAttributes=null}sync(e,t,s){var i={create:"POST",update:"PUT",patch:"PUT",delete:"DELETE",read:"GET"}[e];if(!i)throw new Error(`Bad request method '${e}'.`);s=s||{};var a=this.composeSyncUrl();if(!a)throw new Error("No 'url'.");var r=t&&["create","update","patch"].includes(e)?s.attributes||t.getClonedAttributes():null;let o=s.error;s.error=(e,t,i)=>{s.textStatus=t;s.errorThrown=i;o&&o.call(s.context,e,t,i)};var n=r?JSON.stringify(r):null,n=s.bypassRequest?Promise.resolve():Espo.Ajax.request(a,i,n,s);s.xhr=n.xhr;t.trigger("request",a,i,r,n,s);return n}set(e,t,i){if(null==e)return this;var s;if("object"==typeof e)return this.setMultiple(e,t);s={};s[e]=t;return this.setMultiple(s,i)}setMultiple(e,t){this.idAttribute in e&&(this.id=e[this.idAttribute]);t=t||{};t.ui&&!t.action&&(t.action="ui");t.ui||"ui"!==t.action||(t.ui=!0);var i=[],s=this._changing;this._changing=!0;if(!s){this._previousAttributes=h.default.clone(this.attributes);this.changed={}}var a,r=this.attributes,o=this.changed,n=this._previousAttributes;for(a in e){var l=e[a];h.default.isEqual(r[a],l)||i.push(a);h.default.isEqual(n[a],l)?delete o[a]:o[a]=l;t.unset?delete r[a]:r[a]=l}if(!t.silent){i.length&&(this._pending=t);for(let e=0;e<i.length;e++)this.trigger("change:"+i[e],this,r[i[e]],t)}if(t.sync&&this.collection){var d={...t,action:"set"};this.collection.trigger("model-sync",this,d)}if(!s){if(!t.silent)for(;this._pending;){t=this._pending;this._pending=!1;this.trigger("change",this,t)}this._pending=!1;this._changing=!1}return this}unset(e,t){t={...t,unset:!0};var i={};i[e]=null;return this.setMultiple(i,t)}get(e){return e===this.idAttribute&&this.id?this.id:this.attributes[e]}has(e){var t=this.get(e);return void 0!==t}clear(e){var t,i={};for(t in this.attributes)i[t]=void 0;e={...e,unset:!0};return this.set(i,e)}isNew(){return!this.id}hasChanged(e){return e?h.default.has(this.changed,e):!h.default.isEmpty(this.changed)}changedAttributes(){return this.hasChanged()?h.default.clone(this.changed):{}}previousAttributes(){return h.default.clone(this._previousAttributes)}previous(e){return this._previousAttributes?this._previousAttributes[e]:null}fetch(i){i={...i};i.action="fetch";let s=i.success;i.success=e=>{var t=this.prepareAttributes(e,i);this.set(t,i);s&&s.call(i.context,this,e,i);this.trigger("sync",this,e,i);this.collection&&this.collection.trigger("model-sync",this,i)};this.lastSyncPromise=this.sync("read",this,i);return this.lastSyncPromise}save(e,i){i={...i};e&&!i.wait&&this.setMultiple(e,i);let s=i.success,a=this.attributes,t=(i.success=e=>{this.attributes=a;let t=this.prepareAttributes(e,i);i.wait&&(t={...a,...t});i.action="save";t&&this.setMultiple(t,i);s&&s.call(i.context,this,e,i);this.trigger("sync",this,e,i);this.collection&&this.collection.trigger("model-sync",this,i)},i.error);i.error=e=>{t&&t.call(i.context,this,e,i);this.trigger("error",this,e,i)};e&&i.wait&&(this.attributes={...a,...e});var r=this.isNew()?"create":i.patch?"patch":"update",r=("patch"==r&&(i.attributes=e),this.sync(r,this,i));this.attributes=a;return r}destroy(){let i=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},s=(i={...i},i.success),a=this.collection,r=()=>{this.stopListening();this.trigger("destroy",this,a,i)};i.success=e=>{i.wait&&r();s&&s.call(i.context,this,e,i);if(!this.isNew()){var t={...i};t.action="destroy";this.trigger("sync",this,e,t);a&&a.trigger("model-sync",this,t)}};if(this.isNew()){h.default.defer(i.success);i.wait||r();return Promise.resolve()}let t=i.error;i.error=e=>{t&&t.call(i.context,this,e,i);this.trigger("error",this,e,i)};var e=this.sync("delete",this,i);i.wait||r();return e}composeSyncUrl(){if(this.url)return this.url;let e=this.urlRoot;!e&&this.collection&&(e=this.collection.urlRoot);var t;if(e)return this.isNew()?e:(t=this.get(this.idAttribute),e.replace(/[^\/]$/,"$&/")+encodeURIComponent(t));throw new Error("No urlRoot.")}prepareAttributes(e,t){return e}clone(){return new this.constructor(Espo.Utils.cloneDeep(this.attributes),{entityType:this.entityType,urlRoot:this.urlRoot,url:this.url,defs:this.defs})}setDefs(e){this.defs=e||{};this.defs.fields||(this.defs.fields={})}getClonedAttributes(){return Espo.Utils.cloneDeep(this.attributes)}populateDefaults(){let e={};var t,i,s=this.defs.fields;for(t in s){if(this.hasFieldParam(t,"default"))try{e[t]=this.parseDefaultValue(this.getFieldParam(t,"default"))}catch(e){console.error(e)}var a=this.getFieldParam(t,"defaultAttributes");if(a)for(var r in a)e[r]=a[r]}e=Espo.Utils.cloneDeep(e);for(i in e)this.has(i)&&delete e[i];this.set(e,{silent:!0})}parseDefaultValue(e){if("string"==typeof e&&0===e.indexOf("javascript:")){var t=e.substring(11).trim(),i=new s.default;e=i.get(t)}return e}getLinkMultipleColumn(e,t,i){return((this.get(e+"Columns")||{})[i]||{})[t]}setRelate(e){let t=e=>{var t=e.link,i=e.model;if(!t||!i)throw new Error("Bad related options");var s=this.defs.links[t].type;switch(s){case"belongsToParent":this.set(t+"Id",i.id);this.set(t+"Type",i.entityType);this.set(t+"Name",i.get("name"));break;case"belongsTo":this.set(t+"Id",i.id);this.set(t+"Name",i.get("name"));break;case"hasMany":var a=[],r=(a.push(i.id),{});r[i.id]=i.get("name");this.set(t+"Ids",a);this.set(t+"Names",r)}};"[object Array]"===Object.prototype.toString.call(e)?e.forEach(e=>{t(e)}):t(e)}getFieldList(){return this.defs&&this.defs.fields?Object.keys(this.defs.fields):[]}getFieldType(e){return this.defs&&this.defs.fields&&e in this.defs.fields&&this.defs.fields[e].type||null}getFieldParam(e,t){return this.defs&&this.defs.fields&&e in this.defs.fields&&t in this.defs.fields[e]?this.defs.fields[e][t]:null}hasFieldParam(e,t){return!(!this.defs||!this.defs.fields)&&e in this.defs.fields&&t in this.defs.fields[e]}getLinkType(e){return this.defs&&this.defs.links&&e in this.defs.links&&this.defs.links[e].type||null}getLinkParam(e,t){return this.defs&&this.defs.links&&e in this.defs.links&&t in this.defs.links[e]?this.defs.links[e][t]:null}isFieldReadOnly(e){return this.getFieldParam(e,"readOnly")||!1}isRequired(e){return this.getFieldParam(e,"required")||!1}getLinkMultipleIdList(e){return this.get(e+"Ids")||[]}getTeamIdList(){return this.get("teamsIds")||[]}hasField(e){return"defs"in this&&"fields"in this.defs&&e in this.defs.fields}hasLink(e){return"defs"in this&&"links"in this.defs&&e in this.defs.links}isEditable(){return!0}isRemovable(){return!0}getEntityType(){return this.name}abortLastFetch(){this.lastSyncPromise&&this.lastSyncPromise.getReadyState()<4&&this.lastSyncPromise.abort()}}Object.assign(a.prototype,t.Events);a.extend=t.View.extend;e.default=a});define("acl",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{constructor(e,t,i,s){this.user=e||null;this.scope=t;i=i||{};this.aclAllowDeleteCreated=i.aclAllowDeleteCreated;this.teamsFieldIsForbidden=i.teamsFieldIsForbidden;this.forbiddenFieldList=i.forbiddenFieldList||[];this.collaboratorsFieldIsForbidden=this.forbiddenFieldList.includes("collaborators");this._aclManager=s}getUser(){return this.user}checkScope(e,t,i,s){s=s||{};var a=s.inTeam,r=s.isOwner,o=s.isShared;if(this.getUser().isAdmin())return!1!==e;if(!1===e)return!1;if(!0===e)return!0;if("string"==typeof e)return!0;if(null===e)return!1;t=t||null;if(null===t)return!0;if(!(t in e))return!1;var n=e[t];if("all"===n)return!0;if("yes"===n)return!0;if("no"===n)return!1;if(void 0===r)return!0;if(r&&("own"===n||"team"===n))return!0;if(o)return!0;if(a&&"team"===n)return!0;let l=!1;"team"===n&&null===a&&i&&(l=null);null===r&&i&&(l=null);null===o&&(l=null);return l}checkModel(e,t,i,s){if(this.getUser().isAdmin())return!0;let a=!1;"read"!==i&&"stream"!==i||(a=this.checkIsShared(e));var r={isOwner:this.checkIsOwner(e),inTeam:this.checkInTeam(e),isShared:a};return this.checkScope(t,i,s,r)}checkModelDelete(e,t,i){var s=this.checkModel(e,t,"delete",i);if(s)return!0;if(!1===t)return!1;var a=t||{};if("no"===a.read)return!1;if(e.has("createdById")&&e.get("createdById")===this.getUser().id&&this.aclAllowDeleteCreated){if(!e.has("assignedUserId"))return!0;if(!e.get("assignedUserId"))return!0;if(e.get("assignedUserId")===this.getUser().id)return!0}return s}checkIsOwner(e){let t=!1;if(e.hasField("assignedUser")){if(this.getUser().id===e.get("assignedUserId"))return!0;e.has("assignedUserId")||(t=null)}else if(e.hasField("createdBy")){if(this.getUser().id===e.get("createdById"))return!0;e.has("createdById")||(t=null)}if(e.hasField("assignedUsers")){if(!e.has("assignedUsersIds"))return null;if((e.get("assignedUsersIds")||[]).includes(this.getUser().id))return!0;t=!1}return t}checkInTeam(e){var t=this.getUser().getTeamIdList();if(!e.has("teamsIds"))return!!this.teamsFieldIsForbidden||!!e.hasField("teams")&&null;let i=e.getTeamIdList(),s=!1;t.forEach(e=>{i.includes(e)&&(s=!0)});return s}checkIsShared(e){var t;return e.has("collaboratorsIds")?(t=e.getLinkMultipleIdList("collaborators"),t.includes(this.user.id)):!!this.collaboratorsFieldIsForbidden||!!e.hasField("collaborators")&&null}getPermissionLevel(e){return this._aclManager.getPermissionLevel(e)}}i.extend=t.View.extend;e.default=i});define("view",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i extends t.View{model;collection;constructor(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};super(e);e.model&&(this.model=e.model);e.collection&&(this.collection=e.collection)}whenReady(){return this.isReady?Promise.resolve():new Promise(e=>{this.once("ready",()=>e())})}addActionHandler(e,t){var i=`click [data-action="${e}"]`;this.events[i]=e=>{t.call(this,e.originalEvent,e.currentTarget)}}escapeString(e){return Handlebars.Utils.escapeExpression(e)}notify(e,t,i,s){if(e){s=s||null;i=i||2e3;t||(i=void 0);var a=this.getLanguage().translate(e,"labels",s);Espo.Ui.notify(a,t,i)}else Espo.Ui.notify(!1)}getHelper(){return this._helper}getUser(){return this._helper.user}getPreferences(){return this._helper.preferences}getConfig(){return this._helper.settings}getAcl(){return this._helper.acl}getModelFactory(){return this._helper.modelFactory}getCollectionFactory(){return this._helper.collectionFactory}getRouter(){return this._helper.router}getStorage(){return this._helper.storage}getSessionStorage(){return this._helper.sessionStorage}getLanguage(){return this._helper.language}getMetadata(){return this._helper.metadata}getCache(){return this._helper.cache}getDateTime(){return this._helper.dateTime}getNumberUtil(){return this._helper.numberUtil}getFieldManager(){return this._helper.fieldManager}getBaseController(){return this._helper.baseController}getThemeManager(){return this._helper.themeManager}updatePageTitle(){var e=this.getConfig().get("applicationName")||"EspoCRM";this.setPageTitle(e)}setPageTitle(e){this.getHelper().pageTitle.setTitle(e)}translate(e,t,i){return this.getLanguage().translate(e,t,i)}getBasePath(){return this._helper.basePath||""}confirm(e,t,i){let s;if("string"==typeof e||e instanceof String){s=e;e={}}else{e=e||{};s=e.message}s=s&&this.getHelper().transformMarkdownText(s,{linksInNewTab:!0}).toString();var a=e.confirmText||this.translate("Yes"),r=e.confirmStyle||null,o=e.cancelText||this.translate("Cancel");return Espo.Ui.confirm(s,{confirmText:a,cancelText:o,confirmStyle:r,backdrop:!("backdrop"in e)||e.backdrop,isHtml:!0,cancelCallback:e.cancelCallback},t,i)}}e.default=i});define("view-helper",["exports","marked","dompurify","handlebars"],function(e,i,s,g){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;s=t(s);g=t(g);function t(e){return e&&e.__esModule?e:{default:e}}e.default=class{constructor(){this._registerHandlebarsHelpers();this.mdBeforeList=[{regex:/`([\s\S]*?)`/g,value:(e,t)=>"`"+t.replace(/\\\</g,"<")+"`"}];i.marked.setOptions({breaks:!0,tables:!1,headerIds:!1});i.marked.use({tokenizer:{tag(e){var t=i.Lexer.rules.inline.tag.exec(e);if(t)return{type:"text",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:g.default.Utils.escapeExpression(t[0])}},html(e){var t=i.Lexer.rules.block.html.exec(e);if(t){t={type:"paragraph",raw:t[0],pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:g.default.Utils.escapeExpression(t[0]),tokens:[]};this.lexer.inline(t.text,t.tokens);return t}}}});s.default.addHook("beforeSanitizeAttributes",function(e){e instanceof HTMLAnchorElement&&(e.getAttribute("target")?e.targetBlank=!0:e.targetBlank=!1);e instanceof HTMLOListElement&&e.start&&99<e.start&&e.removeAttribute("start");if(e instanceof HTMLFormElement){e.action&&e.removeAttribute("action");e.hasAttribute("method")&&e.removeAttribute("method")}e instanceof HTMLButtonElement&&"submit"===e.type&&(e.type="button")});s.default.addHook("afterSanitizeAttributes",function(e){if(e instanceof HTMLAnchorElement){var t=e.getAttribute("href");t&&!t.startsWith("#")&&e.setAttribute("rel","noopener noreferrer");if(e.targetBlank){e.setAttribute("target","_blank");e.setAttribute("rel","noopener noreferrer")}}});s.default.addHook("uponSanitizeAttribute",(e,t)=>{if("style"===t.attrName){var i=t.attrValue.split(";").map(e=>e.trim()).filter(e=>{var[t,i]=e.split(":").map(e=>e.trim().toLowerCase());return"position"!==t||!["absolute","fixed","sticky"].includes(i)});t.attrValue=i.join("; ")}})}layoutManager=null;settings=null;config=null;user=null;preferences=null;acl=null;modelFactory=null;collectionFactory=null;router=null;storage=null;sessionStorage=null;dateTime=null;language=null;metadata=null;fieldManager=null;cache=null;themeManager=null;webSocketManager=null;numberUtil=null;pageTitle=null;broadcastChannel=null;basePath="";appParams=null;_registerHandlebarsHelpers(){g.default.registerHelper("img",e=>new g.default.SafeString(`<img src="img/${e}" alt="img">`));g.default.registerHelper("prop",(e,t)=>{if(void 0===e)console.warn("Undefined value passed to 'prop' helper.");else if(t in e)return e[t]});g.default.registerHelper("var",(e,t,i)=>{if(void 0===t)return null;let s=t[e];i.hash.trim&&(s=s.trim());return new g.default.SafeString(s)});g.default.registerHelper("concat",function(e,t){return e+t});g.default.registerHelper("ifEqual",function(e,t,i){return e==t?i.fn(this):i.inverse(this)});g.default.registerHelper("ifNotEqual",function(e,t,i){return e!=t?i.fn(this):i.inverse(this)});g.default.registerHelper("ifPropEquals",function(e,t,i,s){return e[t]==i?s.fn(this):s.inverse(this)});g.default.registerHelper("ifAttrEquals",function(e,t,i,s){return e.get(t)==i?s.fn(this):s.inverse(this)});g.default.registerHelper("ifAttrNotEmpty",function(e,t,i){var s=e.get(t);return null!=s?i.fn(this):i.inverse(this)});g.default.registerHelper("get",(e,t)=>e.get(t));g.default.registerHelper("length",e=>e.length);g.default.registerHelper("translate",(e,t)=>{var i=t.hash.scope||null,s=t.hash.category||null;return"null"===e?"":this.language.translate(e,s,i)});g.default.registerHelper("dropdownItem",(e,t)=>{var i=t.hash.scope||null,s=t.hash.label,a=t.hash.labelTranslation,r=t.hash.data,o=t.hash.hidden,n=t.hash.disabled,l=t.hash.title,d=t.hash.link,h=t.hash.action||e;let c=t.hash.iconHtml;var u=t.hash.iconClass;let m=t.hash.html||t.hash.text||(a?this.language.translatePath(a):this.language.translate(s,"labels",i));t.hash.html||(m=this.escapeString(m));if(c)m=c+" "+m;else if(u){let e=$("<span>").addClass(u).get(0).outerHTML;m=e+" "+m}var a=$("<li>").addClass(o?"hidden":"").addClass(n?"disabled":""),p=$("<a>").attr("role","button").attr("tabindex","0").attr("data-name",e).addClass(t.hash.className||"").addClass("action").html(m);h&&p.attr("data-action",h);a.append(p);d?p.attr("href",d):p.attr("role","button");if(r)for(var f in r)p.attr("data-"+Espo.Utils.camelCaseToHyphen(f),r[f]);n&&a.attr("disabled","disabled");l&&p.attr("title",l);return new g.default.SafeString(a.get(0).outerHTML)});g.default.registerHelper("button",(e,t)=>{var i=t.hash.style||"default",s=t.hash.scope||null,a=t.hash.label||e,r=t.hash.labelTranslation,o=t.hash.link;let n=t.hash.iconHtml;var l=t.hash.iconClass;let d=t.hash.html||t.hash.text||(r?this.language.translatePath(r):this.language.translate(a,"labels",s));t.hash.html||(d=this.escapeString(d));if(n)d=n+" <span>"+d+"</span>";else if(l){let e=$("<span>").addClass(l).get(0).outerHTML;d=e+" <span>"+d+"</span>"}r=o?"<a>":"<button>",a=$(r).addClass("btn action").addClass(t.hash.className||"").addClass(t.hash.hidden?"hidden":"").addClass(t.hash.disabled?"disabled":"").attr("data-action",e).attr("data-name",e).addClass("btn-"+i).html(d);o?a.href(o):a.attr("type","button");t.hash.disabled&&a.attr("disabled","disabled");t.hash.title&&a.attr("title",t.hash.title);return new g.default.SafeString(a.get(0).outerHTML)});g.default.registerHelper("hyphen",e=>Espo.Utils.convert(e,"c-h"));g.default.registerHelper("toDom",e=>Espo.Utils.toDom(e));g.default.registerHelper("breaklines",e=>{e=g.default.Utils.escapeExpression(e||"");e=e.replace(/(\r\n|\n|\r)/gm,"<br>");return new g.default.SafeString(e)});g.default.registerHelper("complexText",(e,t)=>"string"==typeof e||e instanceof String?this.transformMarkdownText(e,t.hash):"");g.default.registerHelper("translateOption",(e,t)=>{var i=t.hash.scope||null,s=t.hash.field||null;if(!s)return"";let a=t.hash.translatedOptions||null;if(null===a){a=this.language.translate(s,"options",i)||{};"object"!=typeof a&&(a={})}null===e&&(e="");return a[e]||e});g.default.registerHelper("options",(t,i,e)=>{void 0===i&&(i=!1);t=t||[];let s="",a="[object Array]"===Object.prototype.toString.call(i);var r=e=>a?-1!==i.indexOf(e):i===e||!i&&!e&&0!==e;e.hash=e.hash||{};let o=e.hash.scope||!1,n=e.hash.category||!1;var l=e.hash.field||!1,d=e.hash.styleMap||{};if(!a&&e.hash.includeMissingOption&&(i||""===i)&&!t.includes(i)){t=Espo.Utils.clone(t);t.push(i)}let h=e.hash.translationHash||e.hash.translatedOptions||null;if(null===h){h={};if(!n&&l){h=this.language.translate(l,"options",o)||{};"object"!=typeof h&&(h={})}}var c,u=e=>n?this.language.translate(e,n,o):h[e]||e;for(c in t){let e=t[c];var m=u(e),m=$("<option>").attr("value",e).addClass(d[e]?"text-"+d[e]:"").text(m);r(t[c])&&m.attr("selected","selected");s+=m.get(0).outerHTML}return new g.default.SafeString(s)});g.default.registerHelper("basePath",()=>this.basePath||"")}getAppParam(e){if(this.appParams)return this.appParams.get(e)}escapeString(e){return g.default.Utils.escapeExpression(e)}getAvatarHtml(e,t,i,s){if(this.config.get("avatarsDisabled"))return"";var a=this.cache?this.cache.get("app","timestamp"):this.settings.get("cacheTimestamp"),r=this.basePath||"";t=t||"small";i=i||16;let o="avatar";s&&(o+=" "+s);return $("<img>").attr("src",r+`?entryPoint=avatar&size=${t}&id=${e}&t=`+a).attr("alt","avatar").addClass(o).attr("data-width",i.toString()).css("width",`var(--${i.toString()}px)`).attr("draggable","false").get(0).outerHTML}transformMarkdownInlineText(e){return this.transformMarkdownText(e,{inline:!0})}transformMarkdownText(t,e){t=t||"";this.mdBeforeList.forEach(e=>{t=t.replace(e.regex,e.value)});e=e||{};t=e.inline?i.marked.parseInline(t):i.marked.parse(t);t=s.default.sanitize(t,{}).toString();e.linksInNewTab&&(t=t.replace(/<a href=/gm,'<a target="_blank" rel="noopener noreferrer" href='));t=t.replace(/<a href="mailto:([^"]*)"/gm,'<a role="button" class="selectable" data-email-address="$1" data-action="mailTo"');return new g.default.SafeString(t)}getScopeColorIconHtml(e,t,i){if(this.config.get("scopeColorsDisabled")||this.preferences.get("scopeColorsDisabled"))return"";var s=this.metadata.get(["clientDefs",e,"color"]);let a="";if(s){var r=$('<span class="color-icon fas fa-square">');r.css("color",s);i&&r.addClass(i);a=r.get(0).outerHTML}t||a&&(a+='<span style="user-select: none;"> </span>');return a}sanitizeHtml(e,t){return s.default.sanitize(e,t)}moderateSanitizeHtml(e){e=e||"";e=e.replace(/<\/?(base)[^><]*>/gi,"");e=e.replace(/<\/?(object)[^><]*>/gi,"");e=e.replace(/<\/?(embed)[^><]*>/gi,"");e=e.replace(/<\/?(applet)[^><]*>/gi,"");e=e.replace(/<\/?(iframe)[^><]*>/gi,"");e=e.replace(/<\/?(script)[^><]*>/gi,"");e=e.replace(/<[^><]*([^a-z]on[a-z]+)=[^><]*>/gi,function(e){return e.replace(/[^a-z]on[a-z]+=/gi," data-handler-stripped=")});e=this.stripEventHandlersInHtml(e);e=e.replace(/href=" *javascript:(.*?)"/gi,()=>'removed=""');e=e.replace(/href=' *javascript:(.*?)'/gi,()=>'removed=""');e=e.replace(/src=" *javascript:(.*?)"/gi,()=>'removed=""');e=e.replace(/src=' *javascript:(.*?)'/gi,()=>'removed=""');return e}stripEventHandlersInHtml(i){let e;function s(){i=i.slice(0,a)+i.slice(e);e=a;a=!1}let a=!1,r=!1;for(let t=0;t<i.length;t++)if("<"===i[t]&&i[t+1]&&i[t+1].match(/[a-z?\\\/!]/i)){t++;for(let e=t;e<i.length;e++){if(!r&&">"===i[e]){a&&s();t=e;break}if(r===i[e])r=!1;else{r||"="!==i[e-1]||"'"!==i[e]&&'"'!==i[e]||(r=i[e]);r||" "!==i[e-2]||"o"!==i[e-1]||"n"!==i[e]||(a=e-2);a&&" "===i[e]&&!r&&s()}}}return i}calculateContentContainerHeight(e){var t=this.themeManager.getParam("screenWidthXs"),i=$(window),s=$("#footer").height()||26;let a=0;e=$(e).get(0);if(e){a=e.getBoundingClientRect().top;if(i.width()<t){t=$("#navbar .navbar-body");(t.hasClass("in")||t.hasClass("collapsing"))&&(a-=t.height())}}t=a+s;return i.height()-t-20}processSetupHandlers(s,e,t){t=t||s.scope||s.entityType;let i=this.metadata.get(["clientDefs","Global","viewSetupHandlers",e])||[];t&&(i=i.concat(this.metadata.get(["clientDefs",t,"viewSetupHandlers",e])||[]));if(0===i.length)return Promise.resolve();var a=[];for(let e of i){var r=new Promise(i=>{Espo.loader.require(e,e=>{var t=new e(s).process(s);t&&"[object Promise]"===Object.prototype.toString.call(t)?t.then(()=>i()):i()})});a.push(r)}return Promise.all(a)}_isXsScreen;isXsScreen(){null==this._isXsScreen&&(this._isXsScreen=window.innerWidth<this.themeManager.getParam("screenWidthXs"));return this._isXsScreen}}});define("metadata",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{constructor(e){this.cache=e||null;this.data={}}url="Metadata";load(e,t){if(t||!this.loadFromCache())return this.fetch().then(()=>{e&&e()});this.trigger("sync");e&&e();return Promise.resolve()}loadSkipCache(){return this.load(null,!0)}fetch(){return Espo.Ajax.getRequest(this.url).then(e=>{this.data=e;this.storeToCache();this.trigger("sync")})}get(e,t){t=t||null;let i,s=(i=Array&&Array.isArray&&Array.isArray(e)?e:e.split("."),this.data),a=t;for(let e=0;e<i.length;e++){var r=i[e];if(null==s||!(r in s)){a=t;break}i.length-1===e&&(a=s[r]);s=s[r]}return a}loadFromCache(){if(this.cache){var e=this.cache.get("app","metadata");if(e)return this.data=e,!0}return null}storeToCache(){this.cache&&this.cache.set("app","metadata",this.data)}clearCache(){this.cache&&this.cache.clear("app","metadata")}getScopeList(){var e,t=this.get("scopes")||{},i=[];for(e in t){var s=t[e];s.disabled||i.push(e)}return i}getScopeObjectList(){var e,t=this.get("scopes")||{},i=[];for(e in t){var s=t[e];s.disabled||s.object&&i.push(e)}return i}getScopeEntityList(){var e,t=this.get("scopes")||{},i=[];for(e in t){var s=t[e];s.disabled||s.entity&&i.push(e)}return i}setData(e){this.data=e}}Object.assign(i.prototype,t.Events);e.default=i});define("acl-manager",["exports","acl","utils","bullbone"],function(e,s,l,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;s=i(s);l=i(l);function i(e){return e&&e.__esModule?e:{default:e}}class a{data=null;fieldLevelList=["yes","no"];constructor(e,t,i){this.setEmpty();this.user=e||null;this.implementationClassMap=t||{};this.aclAllowDeleteCreated=i}setEmpty(){this.data={table:{},fieldTable:{},fieldTableQuickAccess:{}};this.implementationHash={};this.forbiddenFieldsCache={};this.implementationClassMap={};this.forbiddenAttributesCache={}}getImplementation(t){if(!(t in this.implementationHash)){let e=s.default;t in this.implementationClassMap&&(e=this.implementationClassMap[t]);var i=this.getScopeForbiddenFieldList(t),i={aclAllowDeleteCreated:this.aclAllowDeleteCreated,teamsFieldIsForbidden:i.includes("teams"),forbiddenFieldList:i};this.implementationHash[t]=new e(this.getUser(),t,i,this)}return this.implementationHash[t]}getUser(){return this.user}set(e){e=e||{};this.data=e;this.data.table=this.data.table||{};this.data.fieldTable=this.data.fieldTable||{};this.data.attributeTable=this.data.attributeTable||{}}get(e){return this.data[e]||null}getPermissionLevel(e){let t=e;"Permission"!==e.slice(-10)&&(t=e+"Permission");return this.data[t]||"no"}getLevel(e,t){var i;return e in this.data.table&&(i=this.data.table[e],"object"==typeof i)&&t in i?i[t]:null}clear(){this.setEmpty()}checkScopeHasAcl(e){var t=(this.data.table||{})[e];return void 0!==t}checkScope(e,t,i){let s=(this.data.table||{})[e];void 0===s&&(s=null);return this.getImplementation(e).checkScope(s,t,i)}checkModel(e,t,i){var s=e.entityType;if("edit"===t&&!e.isEditable())return!1;if("delete"===t&&!e.isRemovable())return!1;let a=(this.data.table||{})[s];void 0===a&&(a=null);s=this.getImplementation(s);if(t){var r="checkModel"+l.default.upperCaseFirst(t);if(r in s)return s[r](e,a,i)}return s.checkModel(e,a,t,i)}check(e,t,i){return"string"==typeof e?this.checkScope(e,t,i):this.checkModel(e,t,i)}checkIsOwner(e){return this.getImplementation(e.entityType).checkIsOwner(e)}checkInTeam(e){return this.getImplementation(e.entityType).checkInTeam(e)}checkIsShared(e){return this.getImplementation(e.entityType).checkIsShared(e)}checkAssignmentPermission(e){return this.checkPermission("assignmentPermission",e)}checkUserPermission(e){return this.checkPermission("userPermission",e)}checkPermission(e,i){if(this.getUser().isAdmin())return!0;var s=this.getPermissionLevel(e);if("no"===s)return i.id===this.getUser().id;if("team"!==s)return"all"===s||"yes"===s;{if(!i.has("teamsIds"))return null;let t=!1;s=i.get("teamsIds")||[];s.forEach(e=>{(this.getUser().get("teamsIds")||[]).includes(e)&&(t=!0)});return t}}getScopeForbiddenFieldList(e,t,i){t=t||"read";i=i||"no";var s=e+"_"+t+"_"+i;if(s in this.forbiddenFieldsCache)return l.default.clone(this.forbiddenFieldsCache[s]);var a=this.fieldLevelList.slice(this.fieldLevelList.indexOf(i)),r=this.data.fieldTableQuickAccess||{},r=r[e]||{},r=r.fields||{};let o=r[t]||{},n=[];a.forEach(e=>{var t=o[e]||[];t.forEach(e=>{n.includes(e)||n.push(e)})});this.forbiddenFieldsCache[s]=n;return l.default.clone(n)}getScopeForbiddenAttributeList(e,t,i){t=t||"read";i=i||"no";var s=e+"_"+t+"_"+i;if(s in this.forbiddenAttributesCache)return l.default.clone(this.forbiddenAttributesCache[s]);var a=this.fieldLevelList.slice(this.fieldLevelList.indexOf(i)),r=this.data.fieldTableQuickAccess||{},r=r[e]||{},r=r.attributes||{};let o=r[t]||{},n=[];a.forEach(e=>{var t=o[e]||[];t.forEach(e=>{n.includes(e)||n.push(e)})});this.forbiddenAttributesCache[s]=n;return l.default.clone(n)}checkTeamAssignmentPermission(e){return"all"===this.getPermissionLevel("assignmentPermission")||this.getUser().getLinkMultipleIdList("teams").includes(e)}checkField(e,t,i){return!this.getScopeForbiddenFieldList(e,i).includes(t)}}a.extend=t.View.extend;e.default=a});define("models/user",["exports","model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="User";entityType="User";urlRoot="User";isAdmin(){return"admin"===this.get("type")||this.isSuperAdmin()}isPortal(){return"portal"===this.get("type")}isApi(){return"api"===this.get("type")}isRegular(){return"regular"===this.get("type")}isSystem(){return"system"===this.get("type")}isSuperAdmin(){return"super-admin"===this.get("type")}}e.default=s});define("models/settings",["exports","model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Settings";entityType="Settings";urlRoot="Settings";load(){return new Promise(e=>{this.fetch().then(()=>e())})}getByPath(t){if(!t.length)return null;let i;for(let e=0;e<t.length;e++){var s=t[e];if(0===e)i=this.get(s);else{if(!(s in i))return null;i=i[s]}if(e===t.length-1)return i;if(null===i||"object"!=typeof i)return null}}}e.default=s});define("models/preferences",["exports","model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Preferences";entityType="Preferences";urlRoot="Preferences";settings;getDashletOptions(e){var t=this.get("dashletsOptions")||{};return t[e]||null}isPortal(){return this.get("isPortalUser")}setSettings(e){this.settings=e}}e.default=s});define("helpers/site/shortcut-manager",["exports","di","ui"],function(e,t,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;r=(i=r,i&&i.__esModule?i:{default:i});var i,s;let a;function o(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}let n=e.default=void 0;(class{level=0;items;constructor(){this.items=[];document.addEventListener("keydown",e=>this.handle(e),{capture:!0})}add(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(!this.items.find(e=>e.view===t)){i.stack&&this.level++;this.items.push({view:t,keys:e,level:this.level})}}remove(t){var i=this.items.findIndex(e=>e.view===t);if(!(i<0)){this.items.splice(i,1);let e=0;for(var s of this.items)s.level>e&&(e=s.level);this.level=e}}handle(e){var t=this.items.filter(e=>e.level===this.level);if(0!==t.length&&!r.default.getConfirmCount()){var i,s=Espo.Utils.getKeyFromKeyEvent(e);for(i of t){var a=i.keys[s];if(a){if("function"==typeof a){a.call(i.view,e);break}e.preventDefault();e.stopPropagation();a="action"+Espo.Utils.upperCaseFirst(a);if("function"==typeof i.view[a]){i.view[a]();break}}}}}static#_=s=()=>([n,a]=o(this,[(0,t.register)()],[]).c,e.default=n,a())});s()});define("helpers/site/modal-bar-provider",["exports","di"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;var i;let s;function a(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}let r=e.default=void 0;(class{view=null;get(){return this.view}set(e){this.view=e}static#_=i=()=>([r,s]=a(this,[(0,t.register)()],[]).c,e.default=r,s())});i()});define("views/modal",["exports","view","di","helpers/site/modal-bar-provider","helpers/site/shortcut-manager"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=h(t);s=h(s);a=h(a);var r;let o,n,l,d;function h(e){return e&&e.__esModule?e:{default:e}}function c(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class u extends t.default{constructor(e){super(e),d(this)}cssName="modal-dialog";className="dialog";header;headerHtml;$header;headerElement;headerText;dialog;containerSelector="";scope=null;backdrop="static";buttonList=[];dropdownItemList=[];buttons=[];width=null;fitHeight=!1;noFullHeight=!1;escapeDisabled=!1;isDraggable=!1;isCollapsible=!1;isMaximizable=!1;isCollapsed=!1;bodyElement;events={"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget)}};footerAtTheTop=null;shortcutKeys=null;containerElement;modalBarProvider=o(this);shortcutManager=(n(this),l(this));init(){let s=this.cssName+"-container-"+Math.floor(1e4*Math.random()+1).toString();this.containerSelector="#"+s;this.header=this.options.header||this.header;this.headerHtml=this.options.headerHtml||this.headerHtml;this.$header=this.options.$header||this.$header;this.headerElement=this.options.headerElement||this.headerElement;this.headerText=this.options.headerText||this.headerText;this.backdrop=this.options.backdrop||this.backdrop;this.setSelector(this.containerSelector);this.buttonList=this.options.buttonList||this.buttonList;this.dropdownItemList=this.options.dropdownItemList||this.dropdownItemList;this.buttonList=Espo.Utils.cloneDeep(this.buttonList);this.dropdownItemList=Espo.Utils.cloneDeep(this.dropdownItemList);this.shortcutKeys&&(this.shortcutKeys=Espo.Utils.cloneDeep(this.shortcutKeys));this.options.collapseDisabled&&(this.isCollapsible=!1);this.on("render",()=>{this.dialog&&this.dialog.close();this.element=void 0;this.isCollapsed=!1;$(this.containerSelector).remove();$("<div />").css("display","none").attr("id",s).addClass("modal-container").appendTo("body");let e=92,t=(null!==this.getThemeManager().getParam("modalBodyDiffHeight")&&(e=this.getThemeManager().getParam("modalBodyDiffHeight")),this.headerHtml||this.header);this.$header&&this.$header.length&&(t=this.$header.get(0).outerHTML);this.headerElement&&(t=this.headerElement.outerHTML);this.headerText&&(t=Handlebars.Utils.escapeExpression(this.headerText));var i=null!==this.footerAtTheTop?this.footerAtTheTop:this.getThemeManager().getParam("modalFooterAtTheTop");this.dialog=new Espo.Ui.Dialog({backdrop:this.backdrop,header:t,container:this.containerSelector,body:"",buttonList:this.getDialogButtonList(),dropdownItemList:this.getDialogDropdownItemList(),width:this.width,keyboard:!this.escapeDisabled,fitHeight:this.fitHeight,draggable:this.isDraggable,className:this.className,bodyDiffHeight:e,footerAtTheTop:i,fullHeight:!this.noFullHeight&&this.getThemeManager().getParam("modalFullHeight"),screenWidthXs:this.getThemeManager().getParam("screenWidthXs"),fixedHeaderHeight:this.fixedHeaderHeight,closeButton:!this.noCloseButton,collapseButton:this.isCollapsible,maximizeButton:this.isMaximizable&&!this.getHelper().isXsScreen(),onRemove:()=>this.onDialogClose(),onBackdropClick:()=>this.onBackdropClick(),onMaximize:()=>this.onMaximize(),onMinimize:()=>this.onMinimize()});this.containerElement=document.querySelector(this.containerSelector);this.setElement(this.containerSelector+" .body");this.bodyElement=this.element});this.on("after:render",()=>{this.element=void 0;this.setElement(this.containerSelector);$(this.containerSelector).show();this.dialog.show();this.fixedHeaderHeight&&this.flexibleHeaderFontSize&&this.adjustHeaderFontSize();this.adjustButtons();this.noFullHeight||this.initBodyScrollListener();this.getParentView()&&this.getParentView().trigger("modal-shown");this.initShortcuts()});this.once("remove",()=>{this.dialog&&this.dialog.close();$(this.containerSelector).remove()});this.isCollapsible&&this.addActionHandler("collapseModal",()=>this.collapse());this.on("after:expand",()=>this.afterExpand())}initShortcuts(){this.shortcutManager.add(this,this.shortcutKeys??{},{stack:!0});this.once("remove",()=>{this.shortcutManager.remove(this)})}setupFinal(){this.initShortcuts()}getDialogButtonList(){let i=[];this.buttons.forEach(e=>{var t=Espo.Utils.clone(e);!("text"in t)&&"label"in t&&(t.text=this.getLanguage().translate(t.label));i.push(t)});this.buttonList.forEach(e=>{let s={};if("string"==typeof e)s.name=e;else{if("object"!=typeof e)return;s=e}s.text||(s.labelTranslation?s.text=this.getLanguage().translatePath(s.labelTranslation):"label"in s?s.text=this.translate(s.label,"labels",this.scope):s.text=this.translate(s.name,"modalActions",this.scope));s.iconHtml&&!s.html?s.html=s.iconHtml+"<span>"+this.getHelper().escapeString(s.text)+"</span>":s.iconClass&&!s.html&&(s.html=`<span class="${s.iconClass}"></span>`+"<span>"+this.getHelper().escapeString(s.text)+"</span>");s.onClick=s.onClick||((e,t)=>{var i=s.handler||(s.data||{}).handler;Espo.Utils.handleAction(this,t.originalEvent,t.currentTarget,{action:s.name,handler:i,actionFunction:s.actionFunction})});i.push(s)});return i}getDialogDropdownItemList(){let t=[],i=(this.dropdownItemList.forEach(e=>{let s={};if("string"==typeof e)s.name=e;else{if("object"!=typeof e)return;s=e}s.text||(s.labelTranslation?s.text=this.getLanguage().translatePath(s.labelTranslation):"label"in s?s.text=this.translate(s.label,"labels",this.scope):s.text=this.translate(s.name,"modalActions",this.scope));s.onClick=s.onClick||((e,t)=>{var i=s.handler||(s.data||{}).handler;Espo.Utils.handleAction(this,t.originalEvent,t.currentTarget,{action:s.name,handler:i,actionFunction:s.actionFunction})});t.push(s)}),[]),s=(t.forEach(e=>{if(!1!==e){var t=(void 0===e.groupIndex?9999:e.groupIndex)+100;void 0===i[t]&&(i[t]=[]);i[t].push(e)}}),[]);i.forEach(e=>{e.forEach(e=>s.push(e));s.push(!1)});return s}updateDialog(){this.dialog&&this.dialog.setActionItems(this.getDialogButtonList(),this.getDialogDropdownItemList())}onDialogClose(){if(!this.isBeingRendered()&&!this.isCollapsed){this.trigger("close");this.remove()}this.shortcutManager.remove(this)}onBackdropClick(){}actionCancel(){this.trigger("cancel");this.close()}actionClose(){this.actionCancel()}close(){this.dialog.close();if(this.getParentView()){var e=this.getParentView().getViewKey(this);e&&this.getParentView().clearView(e)}}disableButton(t){this.buttonList.forEach(e=>{e.name===t&&(e.disabled=!0)});this.isRendered()&&this.containerElement&&$(this.containerElement).find(`footer button[data-name="${t}"]`).addClass("disabled").attr("disabled","disabled")}enableButton(t){this.buttonList.forEach(e=>{e.name===t&&(e.disabled=!1)});this.isRendered()&&this.containerElement&&$(this.containerElement).find('footer button[data-name="'+t+'"]').removeClass("disabled").removeAttr("disabled")}addButton(i,s,e){let a=-1;this.buttonList.forEach((e,t)=>{e.name===i.name&&(a=t)});if(!~a){if(!0===s)this.buttonList.unshift(i);else if("string"==typeof s){a=-1;this.buttonList.forEach((e,t)=>{e.name===s&&(a=t)});~a?this.buttonList.splice(a,0,i):this.buttonList.push(i)}else this.buttonList.push(i);!e&&this.isRendered()&&this.reRenderFooter()}}addDropdownItem(e,t,i){if(e){var s=e.name;if(s){for(var a of this.dropdownItemList)if(a.name===s)return;t?this.dropdownItemList.unshift(e):this.dropdownItemList.push(e);!i&&this.isRendered()&&this.reRenderFooter()}}}reRenderFooter(){if(this.dialog){this.updateDialog();var e=this.dialog.getFooter();$(this.containerElement).find("footer.modal-footer").empty().append(e);this.dialog.initButtonEvents()}}removeButton(e,t){let i=-1;for(var[s,a]of this.buttonList.entries())if(a.name===e){i=s;break}~i&&this.buttonList.splice(i,1);for(var[r,o]of this.dropdownItemList.entries())if(o.name===e){this.dropdownItemList.splice(r,1);break}this.isRendered()&&$(this.containerElement).find(`.modal-footer [data-name="${e}"]`).remove();!t&&this.isRendered()&&this.reRender()}showButton(e){for(var t of this.buttonList)if(t.name===e){t.hidden=!1;break}if(this.isRendered()&&this.containerElement){$(this.containerElement).find(`footer button[data-name="${e}"]`).removeClass("hidden");this.adjustButtons()}}hideButton(e){for(var t of this.buttonList)if(t.name===e){t.hidden=!0;break}if(this.isRendered()&&this.containerElement){$(this.containerElement).find(`footer button[data-name="${e}"]`).addClass("hidden");this.adjustButtons()}}showActionItem(e){for(var t of this.buttonList)if(t.name===e){t.hidden=!1;break}for(var i of this.dropdownItemList)if(i.name===e){i.hidden=!1;break}if(this.isRendered()&&this.containerElement){var s=$(this.containerElement);s.find(`footer button[data-name="${e}"]`).removeClass("hidden");s.find(`footer li > a[data-name="${e}"]`).parent().removeClass("hidden");if(!this.isDropdownItemListEmpty()){s=s.find("footer .main-btn-group > .btn-group");s.removeClass("hidden");s.find("> button").removeClass("hidden")}this.adjustButtons()}}hideActionItem(e){for(var t of this.buttonList)if(t.name===e){t.hidden=!0;break}for(var i of this.dropdownItemList)if(i.name===e){i.hidden=!0;break}if(this.isRendered()){var s=$(this.containerElement);s.find(`footer button[data-name="${e}"]`).addClass("hidden");s.find(`footer li > a[data-name="${e}"]`).parent().addClass("hidden");if(this.isDropdownItemListEmpty()){s=s.find("footer .main-btn-group > .btn-group");s.addClass("hidden");s.find("> button").addClass("hidden")}this.adjustButtons()}}hasActionItem(t){var e=-1!==this.buttonList.findIndex(e=>e.name===t);return e||-1!==this.dropdownItemList.findIndex(e=>e.name===t)}hasAvailableActionItem(t){var e=-1!==this.buttonList.findIndex(e=>e.name===t&&!e.disabled&&!e.hidden);return e||-1!==this.dropdownItemList.findIndex(e=>e.name===t&&!e.disabled&&!e.hidden)}isDropdownItemListEmpty(){if(0===this.dropdownItemList.length)return!0;let t=!0;this.dropdownItemList.forEach(e=>{e.hidden||(t=!1)});return t}adjustHeaderFontSize(e){e=e||0;e||(this.fontSizePercentage=100);if(this.containerElement){var t=$(this.containerElement).find(".modal-title > .modal-title-text"),s=t.parent().width();let i=0;t.children().each((e,t)=>{i+=$(t).outerWidth(!0)});if(s<i)if(5<e){s=$(this.containerElement).find(".modal-title");s.attr("title",t.text());s.addClass("overlapped");t.children().each((e,t)=>{$(t).removeAttr("title")})}else{this.fontSizePercentage-=4;$(this.containerElement).find(".modal-title .font-size-flexible").css("font-size",this.fontSizePercentage+"%");this.adjustHeaderFontSize(e+1)}}}async collapse(){var e=await this.beforeCollapse();if(!this.getParentView())throw new Error("Can't collapse w/o parent view.");this.isCollapsed=!0;e=e||{};let t;if(e.title)t=e.title;else{e=this.containerElement.querySelector(".modal-header .modal-title .modal-title-text");e&&(t=e.textContent)}this.dialog.close();let i=this;for(;i.getParentView();)i=i.getParentView();this.unchainFromParent();e=this.modalBarProvider.get();e&&await e.addModalView(this,{title:t})}unchainFromParent(){var e=this.getParentView().getViewKey(this);this.getParentView().unchainView(e)}beforeCollapse(){return new Promise(e=>e())}afterExpand(){}adjustButtons(){this.adjustLeftButtons();this.adjustRightButtons()}adjustLeftButtons(){var e=$(this.containerElement).find("footer.modal-footer > .main-btn-group button.btn"),e=(e.removeClass("radius-left").removeClass("radius-right"),e.filter("button:not(.hidden)"));e.first().addClass("radius-left");e.last().addClass("radius-right")}adjustRightButtons(){var e=$(this.containerElement).find("footer.modal-footer > .additional-btn-group button.btn:not(.btn-text)"),e=(e.removeClass("radius-left").removeClass("radius-right").removeClass("margin-right"),e.filter("button:not(.hidden)"));e.first().addClass("radius-left");e.last().addClass("radius-right");e.last().next().hasClass("btn-text")&&e.last().addClass("margin-right")}initBodyScrollListener(){let e=$(this.containerElement).find("> .dialog > .modal-dialog > .modal-content > .modal-body"),t=e.parent().find("> .modal-footer");if(t.length){e.off("scroll.footer-shadow");e.on("scroll.footer-shadow",()=>{e.scrollTop()?t.addClass("shadowed"):t.removeClass("shadowed")})}}onMaximize(){}onMinimize(){}static#_=r=()=>[o,n,l,d]=c(this,[],[[(0,i.inject)(s.default),0,"modalBarProvider"],[(0,i.inject)(a.default),0,"shortcutManager"]],0,void 0,t.default).e}r();e.default=u});define("helpers/model/defaults-populator",["exports","di","metadata","view-helper","models/settings","models/user","acl-manager","models/preferences"],function(e,t,i,s,a,r,o,n){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=M(i);s=M(s);a=M(a);r=M(r);o=M(o);n=M(n);var l;let d,h,c,u,m,p,f,g,v,y,b,w;function M(e){return e&&e.__esModule?e:{default:e}}function T(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class L{constructor(){w(this)}metadata=d(this);viewHelper=(h(this),c(this));config=(u(this),m(this));user=(p(this),f(this));preferences=(g(this),v(this));acl=(y(this),b(this));populate(i){i.populateDefaults();var e,t={};this.user.isPortal()||this.prepare(i,t);this.user.isPortal()&&this.prepareForPortal(i,t);this.prepareFields(i,t);for(e in t)i.has(e)&&delete t[e];i.set(t,{silent:!0});var s=this.metadata.get(`clientDefs.${i.entityType}.modelDefaultsPreparator`);return s?Espo.loader.requirePromise(s).then(e=>{var t=new e(this.viewHelper);return t.prepare(i)}).then(e=>{i.set(e,{silent:!0})}):Promise.resolve()}prepare(t,i){var s=t.hasField("assignedUsers")&&"User"===t.getLinkParam("assignedUsers","entity");if(t.hasField("assignedUser")||s){let e="assignedUser";s&&(e="assignedUsers");if(this.toFillAssignedUser(t,e))if(s){i.assignedUsersIds=[this.user.id];i.assignedUsersNames={};i.assignedUsersNames[this.user.id]=this.user.get("name")}else{i.assignedUserId=this.user.id;i.assignedUserName=this.user.get("name")}}s=this.user.get("defaultTeamId");if(s&&t.hasField("teams")&&!t.getFieldParam("teams","default")&&"entityTeam"===Espo.Utils.lowerCaseFirst(t.getLinkParam("teams","relationName")||"")){i.teamsIds=[s];i.teamsNames={};i.teamsNames[s]=this.user.get("defaultTeamName")}s=t.hasField("collaborators")&&"User"===t.getLinkParam("collaborators","entity")&&this.metadata.get(`scopes.${t.entityType}.collaborators`);if(s){i.collaboratorsIds=[this.user.id];i.collaboratorsNames={[this.user.id]:this.user.attributes.name}}}toFillAssignedUser(e,t){return!this.preferences.get("doNotFillAssignedUserIfNotRequired")||!!e.getFieldParam(t,"required")||"no"===this.acl.getPermissionLevel("assignmentPermission")||"team"===this.acl.getPermissionLevel("assignmentPermission")&&!this.user.get("defaultTeamId")||"own"===this.acl.getLevel(e.entityType,"read")||!this.acl.checkField(e.entityType,t,"edit")}prepareForPortal(e,t){var i=this.metadata.get(`aclDefs.${e.entityType}.accountLink`),s=this.metadata.get(`aclDefs.${e.entityType}.contactLink`);if(i&&e.hasField(i)&&["belongsTo","hasOne"].includes(e.getLinkType(i))&&"Account"===e.getLinkParam(i,"entity")&&this.user.attributes.accountId){t[i+"Id"]=this.user.attributes.accountId;t[i+"Name"]=this.user.attributes.accuntName}if(s&&e.hasField(s)&&["belongsTo","hasOne"].includes(e.getLinkType(s))&&"Contact"===e.getLinkParam(s,"entity")&&this.user.attributes.contactId){t[s+"Id"]=this.user.attributes.contactId;t[s+"Name"]=this.user.attributes.contactName}if(i&&e.hasField(i)&&"hasMany"===e.getLinkType(i)&&"Account"===e.getLinkParam(i,"entity")&&this.user.attributes.accountsIds){t.accountsIds=[...this.user.attributes.accountsIds];t.accountsNames={...this.user.attributes.accountsNames}}if(s&&e.hasField(s)&&"hasMany"===e.getLinkType(s)&&"Contact"===e.getLinkParam(s,"entity")&&this.user.attributes.contactId){t.contactsIds=[this.user.attributes.contactId];t.contactsNames={[this.user.attributes.contactId]:this.user.attributes.contactName}}if(e.hasField("parent")&&"belongsToParent"===e.getLinkType("parent"))if(this.config.get("b2cMode")){if(this.user.attributes.contactId&&(e.getFieldParam("parent","entityList")||[]).includes("Contact")){t.parentId=this.user.attributes.contactId;t.parentName=this.user.attributes.contactName;t.parentType="Contact"}}else if(this.user.attributes.accountId&&(e.getFieldParam("parent","entityList")||[]).includes("Account")){t.parentId=this.user.attributes.accountId;t.parentName=this.user.attributes.accountName;t.parentType="Account"}}prepareFields(s,a){s.getFieldList().forEach(e=>{var t,i=s.getFieldType(e);if(i&&!s.getFieldParam(e,"disabled")&&!s.getFieldParam(e,"utility"))if("enum"===i){i=s.getFieldParam(e,"options")||[],i=i[0]||"",i=""!==i?i:null;i&&(e=e,t=i,e in a||s.has(e)||(a[e]=t))}})}static#_=l=()=>[d,h,c,u,m,p,f,g,v,y,b,w]=T(this,[],[[(0,t.inject)(i.default),0,"metadata"],[(0,t.inject)(s.default),0,"viewHelper"],[(0,t.inject)(a.default),0,"config"],[(0,t.inject)(r.default),0,"user"],[(0,t.inject)(n.default),0,"preferences"],[(0,t.inject)(o.default),0,"acl"]]).e}l();e.default=L});define("storage",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(){}prefix="espo";storageObject=localStorage;composeFullPrefix(e){return this.prefix+"-"+e}composeKey(e,t){return this.composeFullPrefix(e)+"-"+t}checkType(e){if(void 0===e&&"[object String]"!==toString.call(e)||"cache"===e)throw new TypeError('Bad type "'+e+'" passed to Espo.Storage.')}has(e,t){this.checkType(e);var i=this.composeKey(e,t);return null!==this.storageObject.getItem(i)}get(e,t){this.checkType(e);var i=this.composeKey(e,t);let s;try{s=this.storageObject.getItem(i)}catch(e){console.error(e);return null}if(s){let t=s;if(9<s.length&&"__JSON__:"===s.substring(0,9)){i=s.slice(9);try{t=JSON.parse(i)}catch(e){t=s}}else if("{"===s[0]||"["===s[0])try{t=JSON.parse(s)}catch(e){t=s}return t}return null}set(e,t,i){this.checkType(e);if(null===i)this.clear(e,t);else{var s=this.composeKey(e,t);(i instanceof Object||Array.isArray(i)||!0===i||!1===i||"number"==typeof i)&&(i="__JSON__:"+JSON.stringify(i));try{this.storageObject.setItem(s,i)}catch(e){console.error(e);return null}}}clear(e,t){let i;i=void 0!==e?void 0===t?"^"+this.composeFullPrefix(e):"^"+this.composeKey(e,t):"^"+this.prefix+"-";var s,a=new RegExp(i);for(s in this.storageObject)a.test(s)&&delete this.storageObject[s]}}});define("router",["exports","backbone"],function(e,l){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;l=(t=l,t&&t.__esModule?t:{default:t});var t;var i=l.default.Router.extend({routeList:[{route:"clearCache",resolution:"clearCache"},{route:":controller/view/:id/:options",resolution:"view"},{route:":controller/view/:id",resolution:"view"},{route:":controller/edit/:id/:options",resolution:"edit"},{route:":controller/edit/:id",resolution:"edit"},{route:":controller/create",resolution:"create"},{route:":controller/related/:id/:link",resolution:"related"},{route:":controller/:action/:options",resolution:"action",order:100},{route:":controller/:action",resolution:"action",order:200},{route:":controller",resolution:"defaultAction",order:300},{route:"*actions",resolution:"home",order:500}],_bindRoutes:function(){},setupRoutes:function(){this.routeParams={};if(this.options.routes){let i=[];Object.keys(this.options.routes).forEach(e=>{var t=this.options.routes[e];i.push({route:e,resolution:t.resolution||"defaultRoute",order:t.order||0});this.routeParams[e]=t.params||{}});this.routeList=Espo.Utils.clone(this.routeList);i.forEach(e=>{this.routeList.push(e)});this.routeList=this.routeList.sort((e,t)=>(e.order||0)-(t.order||0))}this.routeList.reverse().forEach(e=>{this.route(e.route,e.resolution)})},_last:null,confirmLeaveOut:!1,backProcessed:!1,confirmLeaveOutMessage:"Are you sure?",confirmLeaveOutConfirmText:"Yes",confirmLeaveOutCancelText:"No",initialize:function(e){this.options=e||{};this.setupRoutes();this._isReturn=!1;this.history=[];let t=[window.location.hash];window.addEventListener("hashchange",()=>{var e=window.location.hash;if(1<t.length&&t[t.length-2]===e){t=t.slice(0,-1);this.backProcessed=!0;setTimeout(()=>this.backProcessed=!1,50)}else t.push(e)});this.on("route",()=>{this.history.push(l.default.history.fragment)});window.addEventListener("beforeunload",e=>{e=e||window.event;if(this.confirmLeaveOut||this._leaveOutMap.size||this._windowLeaveOutMap.size){e.preventDefault();e.returnValue=this.confirmLeaveOutMessage;return this.confirmLeaveOutMessage}});this._leaveOutMap=new Map;this._windowLeaveOutMap=new Map},getCurrentUrl:function(){return"#"+l.default.history.fragment},hasConfirmLeaveOut(){return this.confirmLeaveOut||this._leaveOutMap.size||this._windowLeaveOutMap.size},addLeaveOutObject(e){this._leaveOutMap.set(e,!0)},removeLeaveOutObject(e){this._leaveOutMap.delete(e)},addWindowLeaveOutObject(e){this._windowLeaveOutMap.set(e,!0)},removeWindowLeaveOutObject(e){this._windowLeaveOutMap.delete(e)},checkConfirmLeaveOut:function(e,t,i){if(this.confirmLeaveOutDisplayed){this.navigateBack({trigger:!1});this.confirmLeaveOutCanceled=!0}else{t=t||this;if(this.confirmLeaveOut||this._leaveOutMap.size){this.confirmLeaveOutDisplayed=!0;this.confirmLeaveOutCanceled=!1;Espo.Ui.confirm(this.confirmLeaveOutMessage,{confirmText:this.confirmLeaveOutConfirmText,cancelText:this.confirmLeaveOutCancelText,backdrop:!0,cancelCallback:()=>{this.confirmLeaveOutDisplayed=!1;i&&this.navigateBack({trigger:!1})}},()=>{this.confirmLeaveOutDisplayed=!1;this.confirmLeaveOut=!1;this._leaveOutMap.clear();this.confirmLeaveOutCanceled||e.call(t)})}else e.call(t)}},route:function(t,a){let r=t;_.isRegExp(t)||(t=this._routeToRegExp(t));let o,n=(o=this["_"+a],this);l.default.history.route(t,function(e){let i=n._extractParameters(t,e),s={};if("defaultRoute"===a){let t=[];r.split("/").forEach(e=>{e&&0===e.indexOf(":")&&t.push(e.substr(1))});t.forEach((e,t)=>{s[e]=i[t]})}n.execute(o,i,a,r,s);n.trigger.apply(n,["route:"+a].concat(i));n.trigger("route",a,i);l.default.history.trigger("route",n,a,i)});return this},execute:function(e,t,i,s,a){this.checkConfirmLeaveOut(()=>{"defaultRoute"===i?this._defaultRoute(this.routeParams[s],a):l.default.Router.prototype.execute.call(this,e,t,i)},null,!0)},navigate:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};t.trigger||this.history.push(e);t.isReturn&&(this._isReturn=!0);return l.default.Router.prototype.navigate.call(this,e,t)},navigateBack:function(e){var t=1<this.history.length?this.history[this.history.length-2]:this.history[0];this.navigate(t,e)},_parseOptionsParams:function(e){if(!e)return{};if(-1===e.indexOf("&")&&-1===e.indexOf("="))return{[e]:!0};let i={};void 0!==e&&e.split("&").forEach(e=>{var t=e.split("=");i[t[0]]=!0;1<t.length&&(i[t[0]]=decodeURIComponent(t[1]))});return i},_defaultRoute:function(e,t){var i=e.controller||t.controller,s=e.action||t.action;this.dispatch(i,s,t)},_record:function(e,t,i,s){s=this._parseOptionsParams(s);s.id=i;this.dispatch(e,t,s)},_view:function(e,t,i){this._record(e,"view",t,i)},_edit:function(e,t,i){this._record(e,"edit",t,i)},_related:function(e,t,i,s){s=this._parseOptionsParams(s);s.id=t;s.link=i;this.dispatch(e,"related",s)},_create:function(e,t){this._record(e,"create",null,t)},_action:function(e,t,i){this.dispatch(e,t,this._parseOptionsParams(i))},_defaultAction:function(e){this.dispatch(e,null)},_home:function(){this.dispatch("Home",null)},_clearCache:function(){this.dispatch(null,"clearCache")},logout:function(){this.dispatch(null,"logout");this.navigate("",{trigger:!1})},dispatch:function(e,t,i){if(this._isReturn){i={...i};i.isReturn=!0;this._isReturn=!1}var s={controller:e,action:t,options:i};if(e&&/[a-z]/.test(e[0])){s.controllerClassName=e;delete s.controller}this._last=s;this.trigger("routed",s)},getLast:function(){return this._last}});e.default=i;l.default.history.getHash=function(e){var t=(e||this).location.href.match(/#(.*)$/);return t?this.decodeFragment(t[1]):""};if(i=window.navigator.userAgent,/(iPhone|iPad|iPod).* OS 9_\d/.test(i)&&!/Version\/9\./.test(i)){l.default.history.loadUrl=function(i,s){i=this.fragment=this.getFragment(i);return _.any(this.handlers,function(t){if(t.route.test(i))return function e(){s===location.hash?window.setTimeout(e,50):t.callback(i)}(),!0})};l.default.history.navigate=function(e,t){if(!l.default.History.started)return!1;t&&!0!==t||(t={trigger:!!t});let i=this.root+"#"+(e=this.getFragment(e||""));e=e.replace(/#.*$/,"");if(this.fragment!==e){this.fragment=e;""===e&&"/"!==i&&(i=i.slice(0,-1));var s=location.hash;if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);this._updateHash(this.location,e,t.replace);if(this.iframe&&e!==this.getFragment(this.getHash(this.iframe))){t.replace||this.iframe.document.open().close();this._updateHash(this.iframe.location,e,t.replace)}}return t.trigger?this.loadUrl(e,s):void 0}}}});define("language",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{url="I18n";constructor(e){this.cache=e||null;this.data={};this.name="default"}has(e,t,i){return i in this.data&&t in this.data[i]&&e in this.data[i][t]}get(e,t,i){return e in this.data&&t in this.data[e]&&i in this.data[e][t]?this.data[e][t][i]:"Global"===e&&i}translate(e,t,i){i=i||"Global";t=t||"labels";let s=this.get(i,t,e);!1===s&&"Global"!==i&&(s=this.get("Global",t,e));return s}translateOption(e,t,i){let s=this.translate(t,"options",i);"object"!=typeof s&&(s={});return s[e]||e}loadFromCache(e){let t=this.name;e&&(t="default");if(this.cache){var i=this.cache.get("app","language-"+t);if(i)return this.data=i,!0}return null}clearCache(){this.cache&&this.cache.clear("app","language-"+this.name)}storeToCache(e){let t=this.name;e&&(t="default");this.cache&&this.cache.set("app","language-"+t,this.data)}load(){return this._loadInternal()}_loadInternal(e,t){return e||!this.loadFromCache(t)?this.fetch(t):(this.trigger("sync"),Promise.resolve())}loadDefault(){return this._loadInternal(!1,!0)}loadSkipCache(){return this._loadInternal(!0)}loadDefaultSkipCache(){return this._loadInternal(!0,!0)}fetch(t){return Espo.Ajax.getRequest(this.url,{default:t}).then(e=>{this.data=e;this.storeToCache(t);this.trigger("sync")})}sortFieldList(i,e){return e.sort((e,t)=>this.translate(e,"fields",i).localeCompare(this.translate(t,"fields",i)))}sortEntityList(e,t){let i="scopeNames";t&&(i+="Plural");return e.sort((e,t)=>this.translate(e,i).localeCompare(this.translate(t,i)))}translatePath(e){("string"==typeof e||e instanceof String)&&(e=e.split("."));let t=this.data;e.forEach(e=>{e in t&&(t=t[e])});return t}setScopeData(e,t){this.data[e]=t}}Object.assign(i.prototype,t.Events);e.default=i});define("views/modals/edit",["exports","views/modal","backbone","helpers/model/defaults-populator"],function(e,t,r,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);r=s(r);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/edit";cssName="edit-modal";saveDisabled=!1;fullFormDisabled=!1;editView=null;escapeDisabled=!0;className="dialog dialog-record";sideDisabled=!1;bottomDisabled=!1;isCollapsible=!0;wasModified=!1;nameAttribute;shortcutKeys={"Control+Enter":function(e){if(!this.saveDisabled&&-1!==this.buttonList.findIndex(e=>"save"===e.name&&!e.hidden&&!e.disabled)){e.preventDefault();e.stopPropagation();document.activeElement instanceof HTMLInputElement&&document.activeElement.dispatchEvent(new Event("change",{bubbles:!0}));this.actionSave()}},"Control+KeyS":function(e){if(!this.saveDisabled&&-1!==this.buttonList.findIndex(e=>"save"===e.name&&!e.hidden&&!e.disabled)){e.preventDefault();e.stopPropagation();this.actionSaveAndContinueEditing()}},Escape:async function(e){if(!this.saveDisabled){e.stopPropagation();e.preventDefault();var t=this.getRecordView().getFocusedFieldView();t&&this.model.set(t.fetch(),{skipReRender:!0});this.getRecordView().isChanged&&await this.confirm(this.translate("confirmLeaveOutMessage","messages"));this.actionClose()}},"Control+Backslash":function(e){this.getRecordView().handleShortcutKeyControlBackslash(e)}};constructor(e){super(e)}setup(){this.buttonList=[];"saveDisabled"in this.options&&(this.saveDisabled=this.options.saveDisabled);this.saveDisabled||this.buttonList.push({name:"save",label:"Save",style:"primary",title:"Ctrl+Enter",onClick:()=>this.actionSave()});this.fullFormDisabled=this.options.fullFormDisabled||this.fullFormDisabled;this.layoutName=this.options.layoutName||this.layoutName;this.fullFormDisabled||this.buttonList.push({name:"fullForm",label:"Full Form",onClick:()=>this.actionFullForm()});this.buttonList.push({name:"cancel",label:"Cancel",title:"Esc"});this.scope=this.scope||this.options.scope||this.options.entityType;this.entityType=this.options.entityType||this.scope;this.id=this.options.id;this.nameAttribute=this.getMetadata().get(`clientDefs.${this.entityType}.nameAttribute`)||"name";if(void 0!==this.options.headerText){this.headerHtml=void 0;this.headerText=this.options.headerText}this.sourceModel=this.model;this.waitForView("edit");this.getModelFactory().create(this.entityType,async e=>{if(this.id){if(this.sourceModel)e=this.model=this.sourceModel.clone();else{this.model=e;e.id=this.id}await this.setupLate();await e.fetch()}else{this.model=e;await(new i.default).populate(e);this.options.relate&&e.setRelate(this.options.relate);this.options.attributes&&e.set(this.options.attributes);await this.setupLate()}this.headerText||(this.headerHtml=this.composeHeaderHtml());this.createRecordView(e)});this.listenTo(this.model,"change",(e,t)=>{t.ui&&(this.wasModified=!0)})}async setupLate(){}createRecordView(i,e){var t=this.editView||this.getMetadata().get(["clientDefs",i.entityType,"recordViews","editSmall"])||this.getMetadata().get(["clientDefs",i.entityType,"recordViews","editQuick"])||"views/record/edit-small",s={model:i,fullSelector:this.containerSelector+" .edit-container",type:"editSmall",layoutName:this.layoutName||"detailSmall",buttonsDisabled:!0,sideDisabled:this.sideDisabled,bottomDisabled:this.bottomDisabled,focusForCreate:this.options.focusForCreate,recordHelper:this.options.recordHelper,webSocketDisabled:!0,exit:()=>{}};this.handleRecordViewOptions(s);this.createView("edit",t,s,e).then(e=>{this.listenTo(e,"before:save",()=>this.trigger("before:save",i));if(this.options.relate&&"link"in this.options.relate){var t=this.options.relate.link;i.hasField(t)&&["link"].includes(i.getFieldType(t))&&e.setFieldReadOnly(t)}})}handleRecordViewOptions(e){}getRecordView(){return this.getView("edit")}onBackdropClick(){this.getRecordView().isChanged||this.close()}composeHeaderHtml(){let e;if(this.id){var t=document.createElement("span"),i=document.createElement("span"),s=(i.textContent=this.getLanguage().translate(this.scope,"scopeNames"),document.createElement("span")),a=(s.classList.add("chevron-right"),this.model.attributes[this.nameAttribute]);t.append(document.createTextNode(this.getLanguage().translate("Edit")+" · "),i);a&&t.append(" ",s," ",a);e=t.outerHTML}else e=$("<span>").text(this.getLanguage().translate("Create "+this.scope,"labels",this.scope)).get(0).outerHTML;if(!this.fullFormDisabled){i=this.id?"#"+this.scope+"/edit/"+this.id:"#"+this.scope+"/create";e=$("<a>").attr("href",i).addClass("action").attr("title",this.translate("Full Form")).attr("data-action","fullForm").append(e).get(0).outerHTML}e=this.getHelper().getScopeColorIconHtml(this.scope)+e;return e}async actionSave(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=this.getRecordView(),s=i.model;let a=[];this.buttonList.forEach(e=>{if(e.name&&!e.disabled){this.disableButton(e.name);a.push(e.name)}});try{await i.save()}catch(e){a.forEach(e=>this.enableButton(e));return}i=!this.id;i&&(this.id=s.id);this.trigger("after:save",s,{bypassClose:t.bypassClose});if(t.bypassClose){$(this.containerElement).find(".modal-header .modal-title-text").html(this.composeHeaderHtml());a.forEach(e=>this.enableButton(e))}else{this.dialog.close();if(i){t=`#${this.scope}/view/`+s.id;let e=s.attributes[this.nameAttribute];void 0===e&&(e=this.translate(this.scope,"scopeNames"));i=this.translate("Created")+"\n"+`[${e}](${t})`;Espo.Ui.notify(i,"success",4e3,{suppress:!0})}}}actionSaveAndContinueEditing(){this.actionSave({bypassClose:!0})}actionFullForm(){let e,t=this.getRouter(),i,s,a;if(this.id){e=this.options.fullFormUrl||`#${this.scope}/edit/`+this.id;i=this.getRecordView().fetch();s=this.getRecordView().model;i={...i,...s.getClonedAttributes()};a={attributes:i,returnUrl:this.options.returnUrl||r.default.history.fragment,returnDispatchParams:this.options.returnDispatchParams||null,model:this.sourceModel,id:this.id};this.options.rootUrl&&(a.rootUrl=this.options.rootUrl);setTimeout(()=>{t.dispatch(this.scope,"edit",a);t.navigate(e,{trigger:!1})},10)}else{e=this.options.fullFormUrl||`#${this.scope}/create`;i=this.getRecordView().fetch();s=this.getRecordView().model;i={...i,...s.getClonedAttributes()};a={attributes:i,relate:this.options.relate,returnUrl:this.options.returnUrl||r.default.history.fragment,returnDispatchParams:this.options.returnDispatchParams||null};this.options.rootUrl&&(a.rootUrl=this.options.rootUrl);setTimeout(()=>{t.dispatch(this.scope,"create",a);t.navigate(e,{trigger:!1})},10)}this.trigger("leave");this.dialog.close()}async beforeCollapse(){if(this.wasModified){this.getRecordView().setConfirmLeaveOut(!1);this.getRouter().addWindowLeaveOutObject(this)}}afterExpand(){this.wasModified&&this.getRecordView().setConfirmLeaveOut(!0);this.getRouter().removeWindowLeaveOutObject(this)}}e.default=a});define("search-manager",["exports","di","date-time","storage"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=d(i);s=d(s);var a;let r,o,n,l;function d(e){return e&&e.__esModule?e:{default:e}}function h(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class c{timeZone=null;defaultData;dateTime=r(this);storage=(o(this),n(this));constructor(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};l(this);this.collection=e;this.scope=e.entityType;this.storageKey=t.storageKey;this.useStorage=!!this.storageKey;this.emptyOnReset=t.emptyOnReset||!1;this.emptyData={textFilter:"",bool:{},advanced:{},primary:null};let i=t.defaultData;!i&&arguments[4]&&(i=arguments[4]);if(i){this.defaultData=i;for(var s in this.emptyData)s in i||(i[s]=Espo.Utils.clone(this.emptyData[s]))}this.data=Espo.Utils.clone(i)||this.emptyData;this.sanitizeData()}sanitizeData(){"advanced"in this.data||(this.data.advanced={});"bool"in this.data||(this.data.bool={});"textFilter"in this.data||(this.data.textFilter="")}getWhere(){var e=[];this.data.textFilter&&""!==this.data.textFilter&&e.push({type:"textFilter",value:this.data.textFilter});if(this.data.bool){var t,i={type:"bool",value:[]};for(t in this.data.bool)this.data.bool[t]&&i.value.push(t);i.value.length&&e.push(i)}if(this.data.primary){var s={type:"primary",value:this.data.primary};s.value.length&&e.push(s)}if(this.data.advanced)for(var a in this.data.advanced){var r=this.data.advanced[a];if(r){a=this.getWherePart(a,r);e.push(a)}}return e}getWherePart(e,t){let i=e;if("object"!=typeof t)return console.error("Bad where clause"),{};if("where"in t)return t.where;var s=t.type;let a;if("or"===s||"and"===s){var r,o=[];a=t.value||{};for(r in a)o.push(this.getWherePart(r,a[r]));return{type:s,value:o}}"field"in t&&(i=t.field);"attribute"in t&&(i=t.attribute);if(t.dateTime||t.date){var n=void 0!==this.timeZone?this.timeZone:this.dateTime.getTimeZone(),l={type:s,attribute:i,value:t.value};t.dateTime&&(l.dateTime=!0);t.date&&(l.date=!0);n&&(l.timeZone=n);return l}a=t.value;return{type:s,attribute:i,value:a}}loadStored(){this.data=this.getFromStorageIfEnabled()||Espo.Utils.clone(this.defaultData)||Espo.Utils.clone(this.emptyData);this.sanitizeData();return this}getFromStorageIfEnabled(){return this.useStorage?this.storage.get(this.storageKey+"Search",this.scope):null}get(){return this.data}setAdvanced(e){this.data=Espo.Utils.clone(this.data);this.data.advanced=e}setBool(e){if(Array.isArray(e)){let t={};e.forEach(e=>t[e]=!0);e=t}this.data=Espo.Utils.clone(this.data);this.data.bool=e}setPrimary(e){this.data=Espo.Utils.clone(this.data);this.data.primary=e}set(e){this.data=e;if(this.useStorage){e=Espo.Utils.clone(e);delete e.textFilter;this.storage.set(this.storageKey+"Search",this.scope,e)}}clearPreset(){delete this.data.presetName}empty(){this.data=Espo.Utils.clone(this.emptyData);this.useStorage&&this.storage.clear(this.storageKey+"Search",this.scope)}reset(){if(this.emptyOnReset)this.empty();else{this.data=Espo.Utils.clone(this.defaultData)||Espo.Utils.clone(this.emptyData);this.useStorage&&this.storage.clear(this.storageKey+"Search",this.scope)}}setTimeZone(e){this.timeZone=e}static#_=a=()=>[r,o,n,l]=h(this,[],[[(0,t.inject)(i.default),0,"dateTime"],[(0,t.inject)(s.default),0,"storage"]]).e}a();e.default=c});define("helpers/record-modal",["exports","di","metadata","acl-manager","router","helpers/site/modal-bar-provider","views/modals/edit","language"],function(e,t,i,s,a,r,o,n){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=b(i);s=b(s);a=b(a);r=b(r);o=b(o);n=b(n);var l;let d,h,c,u,m,p,f,g,v,y;function b(e){return e&&e.__esModule?e:{default:e}}function w(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class M{constructor(){y(this)}metadata=d(this);acl=(h(this),c(this));router=(u(this),m(this));language=(p(this),f(this));modalBarProvider=(g(this),v(this));async showDetail(e,i){var t=i.id,s=i.entityType||i.scope,a=i.model;if(!t||!s)return console.error("Bad data."),Promise.reject();if(a&&!this.acl.checkScope(a.entityType,"read"))return Promise.reject();var r=this.metadata.get(`clientDefs.${s}.modalViews.detail`)||"views/modals/detail",s=(Espo.Ui.notifyWait(),{entityType:s,model:a,id:t,quickEditDisabled:i.editDisabled,rootUrl:i.rootUrl,removeDisabled:i.removeDisabled,layoutName:i.layoutName,fullFormDisabled:i.fullFormDisabled,fullFormUrl:i.fullFormUrl,collapseDisabled:i.collapseDisabled}),a=(Espo.Ui.notifyWait(),await e.createView("modal",r,s));e.listenToOnce(a,"remove",()=>e.clearView("modal"));i.beforeSave&&a.listenTo(a,"before:save",(e,t)=>{i.beforeSave(e,t)});i.afterSave&&a.listenTo(a,"after:save",(e,t)=>{i.afterSave(e,{...t})});i.beforeDestroy&&a.listenToOnce(a,"before:delete",e=>i.beforeDestroy(e));i.afterDestroy&&a.listenToOnce(a,"after:delete",e=>i.afterDestroy(e));i.beforeRender&&i.beforeRender(a);i.onClose&&e.listenToOnce(a,"close",()=>i.onClose());await a.render();Espo.Ui.notify();return a}async showEdit(e,i){let t=i.id,s=i.entityType;var a=i.model;if(this.modalBarProvider.get()){var r=this.modalBarProvider.get(),r=r.getModalViewList().find(e=>e instanceof o.default&&e.id===t&&e.entityType===s);if(r){r=this.language.translate("sameRecordIsAlreadyBeingEdited","messages");Espo.Ui.warning(r);throw new Error}}r=this.metadata.get(`clientDefs.${s}.modalViews.edit`)||"views/modals/edit",a={entityType:s,id:t,model:a,fullFormDisabled:i.fullFormDisabled,returnUrl:i.returnUrl||this.router.getCurrentUrl(),returnDispatchParams:i.returnDispatchParams,layoutName:i.layoutName,fullFormUrl:i.fullFormUrl,collapseDisabled:i.collapseDisabled};i.rootUrl&&(a.rootUrl=i.rootUrl);Espo.Ui.notifyWait();r=await e.createView("modal",r,a);r.listenToOnce(r,"remove",()=>e.clearView("modal"));i.beforeSave&&r.listenTo(r,"before:save",(e,t)=>{i.beforeSave(e,t)});i.afterSave&&r.listenTo(r,"after:save",(e,t)=>{i.afterSave(e,{...t})});i.beforeRender&&i.beforeRender(r);i.onClose&&e.listenToOnce(r,"close",()=>i.onClose());await r.render();Espo.Ui.notify();return r}async showCreate(e,i){var t=i.entityType,s=this.metadata.get(`clientDefs.${t}.modalViews.edit`)||"views/modals/edit",t={entityType:t,fullFormDisabled:i.fullFormDisabled,returnUrl:i.returnUrl||this.router.getCurrentUrl(),returnDispatchParams:i.returnDispatchParams,relate:i.relate,attributes:i.attributes,focusForCreate:i.focusForCreate,layoutName:i.layoutName,fullFormUrl:i.fullFormUrl,collapseDisabled:i.collapseDisabled};i.rootUrl&&(t.rootUrl=i.rootUrl);Espo.Ui.notifyWait();s=await e.createView("modal",s,t);s.listenToOnce(s,"remove",()=>e.clearView("modal"));i.afterSave&&s.listenTo(s,"after:save",(e,t)=>{i.afterSave(e,{...t})});i.beforeRender&&i.beforeRender(s);i.onClose&&e.listenToOnce(s,"close",()=>i.onClose());await s.render();Espo.Ui.notify();return s}static#_=l=()=>[d,h,c,u,m,p,f,g,v,y]=w(this,[],[[(0,t.inject)(i.default),0,"metadata"],[(0,t.inject)(s.default),0,"acl"],[(0,t.inject)(a.default),0,"router"],[(0,t.inject)(n.default),0,"language"],[(0,t.inject)(r.default),0,"modalBarProvider"]]).e}l();e.default=M});define("view-record-helper",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{state;constructor(e,t){this.defaultFieldStates=e||{};this.defaultPanelStates=t||{};this.fieldStateMap={};this.panelStateMap={};this.hiddenFields={};this.hiddenPanels={};this.fieldOptionListMap={};this.state={isChanged:!1}}getHiddenFields(){return this.hiddenFields}getHiddenPanels(){return this.hiddenPanels}setFieldStateParam(e,t,i){"hidden"===t&&(i?this.hiddenFields[e]=!0:delete this.hiddenFields[e]);this.fieldStateMap[e]=this.fieldStateMap[e]||{};this.fieldStateMap[e][t]=i;this.trigger("field-change")}getFieldStateParam(e,t){return e in this.fieldStateMap&&t in this.fieldStateMap[e]?this.fieldStateMap[e][t]:t in this.defaultFieldStates?this.defaultFieldStates[t]:null}setPanelStateParam(e,t,i){"hidden"===t&&(i?this.hiddenPanels[e]=!0:delete this.hiddenPanels[e]);this.panelStateMap[e]=this.panelStateMap[e]||{};this.panelStateMap[e][t]=i}getPanelStateParam(e,t){return e in this.panelStateMap&&t in this.panelStateMap[e]?this.panelStateMap[e][t]:t in this.defaultPanelStates?this.defaultPanelStates[t]:null}setFieldOptionList(e,t){this.fieldOptionListMap[e]=t}clearFieldOptionList(e){delete this.fieldOptionListMap[e]}getFieldOptionList(e){return this.fieldOptionListMap[e]||null}hasFieldOptionList(e){return e in this.fieldOptionListMap}isChanged(){return this.state.isChanged}setIsChanged(e){this.state.isChanged=e}}Object.assign(i.prototype,t.Events);e.default=i});define("dynamic-logic",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t){this.defs=e||{};this.recordView=t;this.fieldTypeList=["visible","required","readOnlySaved","readOnly"];this.panelTypeList=["visible","styled"]}process(){let e=this.defs.fields||{};Object.keys(e).forEach(i=>{let s=e[i]||{},a=!1;this.fieldTypeList.forEach(e=>{if(e in s&&s[e]){var t=s[e]||{};if(t.conditionGroup)if("readOnlySaved"===e){if(!this.recordView.model.isNew())if(this.checkConditionGroupInternal(t.conditionGroup,"and",!0)){this.makeFieldReadOnlyTrue(i);a=!0}else this.makeFieldReadOnlyFalse(i)}else{t=this.checkConditionGroupInternal(t.conditionGroup);"required"!==e||a?"readOnly"===e?t?this.makeFieldReadOnlyTrue(i):this.makeFieldReadOnlyFalse(i):"visible"===e&&(t?this.makeFieldVisibleTrue(i):this.makeFieldVisibleFalse(i)):t?this.makeFieldRequiredTrue(i):this.makeFieldRequiredFalse(i)}}})});var t=this.defs.panels||{};Object.keys(t).forEach(t=>{this.panelTypeList.forEach(e=>{this.processPanel(t,e)})});let a=this.defs.options||{};Object.keys(a).forEach(t=>{var i=a[t];if(a[t]){let e=!1;for(var s in i){s=i[s];if(this.checkConditionGroupInternal(s.conditionGroup)){this.setOptionList(t,s.optionList||[]);e=!0;break}}e||this.resetOptionList(t)}})}processPanel(e,t){var i=this.defs.panels||{},i=i[e]||{};if(t in i){i=i[t]||{};if(i.conditionGroup){i=this.checkConditionGroupInternal(i.conditionGroup);"visible"===t&&(i?this.makePanelVisibleTrue(e):this.makePanelVisibleFalse(e));"styled"===t&&(i?this.makePanelStyledTrue(e):this.makePanelStyledFalse(e))}}}checkConditionGroup(e){return this.checkConditionGroupInternal(e)}checkConditionGroupInternal(e,t){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2];t=t||"and";let s,a=!1;if("and"===t){s=e||[];a=!0;for(var r in s)if(!this.checkCondition(s[r],i)){a=!1;break}}else if("or"===t){s=e||[];for(var o in s)if(this.checkCondition(s[o],i)){a=!0;break}}else"not"===t&&e&&(a=!this.checkCondition(e,i));return a}getAttributeValue(e,t){if(e.startsWith("$")){if("$user.id"===e)return this.recordView.getUser().id;if("$user.teamsIds"===e)return this.recordView.getUser().getTeamIdList()}return t?this.recordView.attributes[e]:this.recordView.model.has(e)?this.recordView.model.get(e):void 0}checkCondition(e,t){e=e||{};var i,s,a,r=e.type||"equals";return["or","and","not"].includes(r)?this.checkConditionGroupInternal(e.value,r,t):(i=e.attribute,s=e.value,!!i&&(i=this.getAttributeValue(i,t),"equals"===r?i===s:"notEquals"===r?i!==s:"isEmpty"===r?Array.isArray(i)?!i.length:null===i||""===i||void 0===i:"isNotEmpty"===r?Array.isArray(i)?!!i.length:null!==i&&""!==i&&void 0!==i:"isTrue"===r?!!i:"isFalse"===r?!i:"contains"===r||"has"===r?!!i&&!!~i.indexOf(s):"notContains"===r||"notHas"===r?!i||!~i.indexOf(s):"startsWith"===r?!!i&&0===i.indexOf(s):"endsWith"===r?!!i&&i.indexOf(s)===i.length-s.length:"matches"===r?!(!i||(a=/^\/(.*)\/([a-z]*)$/.exec(s),!a)||a.length<2)&&new RegExp(a[1],a[2]).test(i):"greaterThan"===r?s<i:"lessThan"===r?i<s:"greaterThanOrEquals"===r?s<=i:"lessThanOrEquals"===r?i<=s:"in"===r?!!~s.indexOf(i):"notIn"===r?!~s.indexOf(i):"isToday"===r?(a=this.recordView.getDateTime(),!!i&&(10<i.length?a.toMoment(i):a.toMomentDate(i)).isSame(a.getNowMoment(),"day")):"inFuture"===r?(s=this.recordView.getDateTime(),!!i&&(10<i.length?s.toMoment(i).isAfter(s.getNowMoment(),"second"):s.toMomentDate(i).isAfter(s.getNowMoment(),"day"))):"inPast"===r&&(a=this.recordView.getDateTime(),!!i)&&(10<i.length?a.toMoment(i).isBefore(a.getNowMoment(),"second"):a.toMomentDate(i).isBefore(a.getNowMoment(),"day"))))}setOptionList(e,t){this.recordView.setFieldOptionList(e,t)}resetOptionList(e){this.recordView.resetFieldOptionList(e)}makeFieldVisibleTrue(e){this.recordView.showField(e)}makeFieldVisibleFalse(e){this.recordView.hideField(e)}makeFieldRequiredTrue(e){this.recordView.setFieldRequired(e)}makeFieldRequiredFalse(e){this.recordView.setFieldNotRequired(e)}makeFieldReadOnlyTrue(e){this.recordView.setFieldReadOnly(e)}makeFieldReadOnlyFalse(e){this.recordView.setFieldNotReadOnly(e)}makePanelVisibleTrue(e){this.recordView.showPanel(e,"dynamicLogic")}makePanelVisibleFalse(e){this.recordView.hidePanel(e,!1,"dynamicLogic")}makePanelStyledTrue(e){this.recordView.stylePanel(e)}makePanelStyledFalse(e){this.recordView.unstylePanel(e)}addPanelVisibleCondition(e,t){this.defs.panels=this.defs.panels||{};this.defs.panels[e]=this.defs.panels[e]||{};this.defs.panels[e].visible=t;this.processPanel(e,"visible")}addPanelStyledCondition(e,t){this.defs.panels=this.defs.panels||{};this.defs.panels[e]=this.defs.panels[e]||{};this.defs.panels[e].styled=t;this.processPanel(e,"styled")}}});define("views/modals/select-records",["exports","views/modal","search-manager","helpers/record-modal"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="modals/select-records";cssName="select-modal";className="dialog dialog-record";multiple=!1;createButton=!0;searchPanel=!0;scope="";noCreateScopeList=["User","Team","Role","Portal"];layoutName="listSmall";shortcutKeys={"Control+Enter":function(e){this.handleShortcutKeyCtrlEnter(e)},"Control+Space":function(e){this.handleShortcutKeyCtrlSpace(e)},"Control+Slash":function(e){this.handleShortcutKeyCtrlSlash(e)},"Control+Comma":function(e){this.handleShortcutKeyCtrlComma(e)},"Control+Period":function(e){this.handleShortcutKeyCtrlPeriod(e)}};events={'click button[data-action="create"]':function(){this.create()},"click .list a":function(e){e.preventDefault()}};constructor(e){super(e);e.onSelect&&(this.onSelect=e.onSelect);e.onMassSelect&&(this.onMassSelect=e.onMassSelect);e.onCreate&&(this.onCreate=e.onCreate);this.createAttributesProvider=e.createAttributesProvider;this.options=e}data(){return{createButton:this.createButton,createText:this.translate("Create "+this.scope,"labels",this.scope)}}setup(){this.filters=this.options.filters||{};this.boolFilterList=this.options.boolFilterList;this.primaryFilterName=this.options.primaryFilterName||null;this.filterList=this.options.filterList||this.filterList||null;this.layoutName=this.options.layoutName||this.layoutName;"multiple"in this.options&&(this.multiple=this.options.multiple);"createButton"in this.options&&(this.createButton=this.options.createButton);this.massRelateEnabled=this.options.massRelateEnabled;this.buttonList=[{name:"cancel",label:"Cancel"}];this.multiple&&this.buttonList.unshift({name:"select",style:"danger",label:"Select",disabled:!0,title:"Ctrl+Enter"});this.scope=this.entityType=this.options.scope||this.scope||this.options.entityType;var e=this.options.orderBy||this.getMetadata().get(["clientDefs",this.scope,"selectRecords","orderBy"]),t=this.options.orderDirection||this.getMetadata().get(["clientDefs",this.scope,"selectRecords","order"]);if(e){this.defaultOrderBy=e;this.defaultOrder=t||!1}-1!==this.noCreateScopeList.indexOf(this.scope)&&(this.createButton=!1);!this.createButton||this.getAcl().check(this.scope,"create")&&!this.getMetadata().get(["clientDefs",this.scope,"createDisabled"])||(this.createButton=!1);this.createButton&&this.addButton({name:"create",position:"right",onClick:()=>this.create(),iconClass:"fas fa-plus fa-sm",label:"Create"});this.getMetadata().get(["clientDefs",this.scope,"searchPanelDisabled"])&&(this.searchPanel=!1);this.getUser().isPortal()&&this.getMetadata().get(["clientDefs",this.scope,"searchPanelInPortalDisabled"])&&(this.searchPanel=!1);this.options.searchPanelDisabled&&(this.searchPanel=!1);if(!this.options.headerText){this.$header=$("<span>");this.$header.append($("<span>").text(this.translate("Select")+" · "+this.getLanguage().translate(this.scope,"scopeNamesPlural")));this.$header.prepend(this.getHelper().getScopeColorIconHtml(this.scope))}this.waitForView("list");this.searchPanel&&this.waitForView("search");this.getCollectionFactory().create(this.scope,e=>{e.maxSize=this.getConfig().get("recordsPerPageSelect")||5;this.collection=e;this.defaultOrderBy&&this.collection.setOrder(this.defaultOrderBy,this.defaultOrder||"asc",!0);this.setupSearch();this.setupList()});this.once("close",()=>{this.collection.lastSyncPromise&&this.collection.lastSyncPromise.getStatus()<4&&Espo.Ui.notify(!1);this.collection.abortLastFetch()})}setupSearch(){this.searchManager=new i.default(this.collection,{emptyOnReset:!0});this.filters&&this.searchManager.setAdvanced(this.filters);var e=this.boolFilterList||this.getMetadata().get(`clientDefs.${this.scope}.selectDefaultFilters.boolFilterList`),e=(e&&this.searchManager.setBool(e),this.primaryFilterName||this.getMetadata().get(`clientDefs.${this.scope}.selectDefaultFilters.filter`));e&&this.searchManager.setPrimary(e);this.collection.where=this.searchManager.getWhere();this.searchPanel&&this.createView("search","views/record/search",{collection:this.collection,fullSelector:this.containerSelector+" .search-container",searchManager:this.searchManager,disableSavePreset:!0,filterList:this.filterList},e=>{this.listenTo(e,"reset",()=>{})})}setupList(){var e=this.getMetadata().get(`clientDefs.${this.scope}.recordViews.listSelect`)||this.getMetadata().get(`clientDefs.${this.scope}.recordViews.list`)||"views/record/list",t={collection:this.collection,fullSelector:this.containerSelector+" .list-container",selectable:!0,checkboxes:this.multiple,massActionsDisabled:!0,rowActionsView:null,layoutName:this.layoutName,checkAllResultDisabled:!this.massRelateEnabled,buttonsDisabled:!0,skipBuildRows:!0,pagination:this.getMetadata().get(["clientDefs",this.scope,"listPagination"])||null},e=this.createView("list",e,t,e=>{this.listenToOnce(e,"select",e=>{this.trigger("select",e);if(this.onSelect){Array.isArray(e)||(e=[e]);this.onSelect(e)}this.close()});if(this.multiple){this.listenTo(e,"check",()=>{e.checkedList.length?this.enableButton("select"):this.disableButton("select")});this.listenTo(e,"select-all-results",()=>{this.enableButton("select")})}let i=()=>{this.whenRendered().then(()=>{Espo.Ui.notifyWait();this.collection.fetch().then(()=>Espo.Ui.notify(!1))})};this.options.forceSelectAllAttributes||this.forceSelectAllAttributes?i():e.getSelectAttributeList(t=>{~t.indexOf("name")||t.push("name");var e=this.options.mandatorySelectAttributeList||this.mandatorySelectAttributeList||[];e.forEach(e=>{~t.indexOf(e)||t.push(e)});t&&(this.collection.data.select=t.join(","));i()})});this.wait(e)}async create(){if(this.onCreate)this.onCreate();else if(this.options.triggerCreateEvent)this.trigger("create");else{let e;e=this.options.createAttributesProvider?await this.createAttributesProvider():this.options.createAttributes||{};var t=new s.default;await t.showCreate(this,{entityType:this.entityType,fullFormDisabled:!0,attributes:e,afterSave:e=>{this.trigger("select",e);this.onSelect&&this.onSelect([e]);setTimeout(()=>this.close(),10)},beforeRender:e=>{this.listenToOnce(e,"leave",()=>{e.close();this.close()})}})}}actionSelect(){if(this.multiple){var e=this.getRecordView();if(e.allResultIsChecked){var t={massRelate:!0,where:e.getWhereForAllResult(),searchParams:this.collection.data};this.trigger("select",t);this.onMassSelect&&this.onMassSelect(t)}else{t=e.getSelected();if(t.length){this.trigger("select",t);this.onSelect&&this.onSelect(t)}}this.close()}}getSearchView(){return this.getView("search")}getRecordView(){return this.getView("list")}handleShortcutKeyCtrlSlash(e){if(this.searchPanel){var t=this.$el.find("input.text-filter").first();if(t.length){e.preventDefault();e.stopPropagation();t.focus()}}}handleShortcutKeyCtrlEnter(e){if(this.multiple&&this.hasAvailableActionItem("select")){e.stopPropagation();e.preventDefault();this.actionSelect()}}handleShortcutKeyCtrlSpace(e){if(this.createButton){e.preventDefault();e.stopPropagation();this.create()}}handleShortcutKeyCtrlComma(){this.getSearchView()&&this.getSearchView().selectPreviousPreset()}handleShortcutKeyCtrlPeriod(){this.getSearchView()&&this.getSearchView().selectNextPreset()}}e.default=r});define("web-socket-manager",["exports","js-base64"],function(e,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;s=(t=s,t&&t.__esModule?t:{default:t});var t;e.default=class{pingInterval=60;reconnectInterval=3;pingTimeout;wasConnected=!1;isConnecting=!1;checkWakeInterval=3;checkWakeThresholdInterval=5;enabled=!1;constructor(e){this.config=e;this.subscribeToReconnectQueue=[];this.subscribeQueue=[];this.subscriptions=[];this.isConnected=!1;this.connection=null;this.url="";this.protocolPart="";var t=this.config.get("webSocketUrl");if(t)if(0===t.indexOf("wss://")){this.url=t.substring(6);this.protocolPart="wss://"}else{this.url=t.substring(5);this.protocolPart="ws://"}else{t=this.config.get("siteUrl")||"";if(0===t.indexOf("https://")){this.url=t.substring(8);this.protocolPart="wss://"}else{this.url=t.substring(7);this.protocolPart="ws://"}~this.url.indexOf("/")&&(this.url=this.url.replace(/\/$/,""));var t="wss://"===this.protocolPart?443:8080,i=this.url.indexOf("/");~i?this.url=this.url.substring(0,i)+":"+t:this.url+=":"+t;"wss://"===this.protocolPart&&(this.url+="/wss")}{let t=Date.now(),i=1e3*this.checkWakeInterval,s=1e3*this.checkWakeThresholdInterval;setInterval(()=>{var e=Date.now()-t;t=Date.now();if(!(e<=i+s)&&this.isConnected&&!this.isConnecting){this.pingTimeout&&clearTimeout(this.pingTimeout);this.connection.publish("","");this.schedulePing()}},i)}}connect(e,t){var i=s.default.decode(e).split(":"),i=i[1],i=this.protocolPart+this.url+`?authToken=${i}&userId=`+t;try{this.connectInternal(e,t,i)}catch(e){console.error(e.message);this.connection=null}}connectInternal(t,i,e){this.isConnecting=!0;this.connection=new ab.Session(e,()=>{this.isConnecting=!1;this.isConnected=!0;this.subscribeQueue.forEach(e=>{this.subscribe(e.category,e.callback)});this.subscribeQueue=[];this.wasConnected&&this.subscribeToReconnectQueue.forEach(e=>e());this.schedulePing();this.wasConnected=!0},e=>{this.isConnecting=!1;if(e===ab.CONNECTION_LOST||e===ab.CONNECTION_UNREACHABLE){if(this.isConnected){this.subscribeQueue=this.subscriptions;this.subscriptions=[]}setTimeout(()=>this.connect(t,i),1e3*this.reconnectInterval)}else e===ab.CONNECTION_CLOSED&&(this.subscribeQueue=[]);this.isConnected=!1},{skipSubprotocolCheck:!0})}subscribeToReconnect(e){this.subscribeToReconnectQueue.push(e)}unsubscribeFromReconnect(t){this.subscribeToReconnectQueue=this.subscribeToReconnectQueue.filter(e=>e!==t)}subscribe(t,e){if(this.connection)if(this.isConnected)try{this.connection.subscribe(t,e);this.subscriptions.push({category:t,callback:e})}catch(e){e.message?console.error(e.message):console.error("WebSocket: Could not subscribe to "+t+".")}else this.subscribeQueue.push({category:t,callback:e})}unsubscribe(t,i){if(this.connection){this.subscribeQueue=this.subscribeQueue.filter(e=>void 0===i?e.category!==t:e.category!==t||e.callback!==i);this.subscriptions=this.subscriptions.filter(e=>void 0===i?e.category!==t:e.category!==t||e.callback!==i);try{this.connection.unsubscribe(t,i)}catch(e){e.message?console.error(e.message):console.error("WebSocket: Could not unsubscribe from "+t+".")}}}close(){this.stopPing();if(this.connection){this.subscribeQueue=[];this.subscriptions=[];try{this.connection.close()}catch(e){console.error(e.message)}this.isConnected=!1;this.wasConnected=!0}}stopPing(){this.pingTimeout=void 0}schedulePing(){this.connection?this.pingTimeout=setTimeout(()=>{if(this.connection){this.isConnecting||this.connection.publish("","");this.schedulePing()}},1e3*this.pingInterval):this.stopPing()}setEnabled(){this.enabled=!0}isEnabled(){return this.enabled}}});define("views/record/base",["exports","view","view-record-helper","dynamic-logic","underscore","jquery"],function(e,t,i,s,r,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=o(t);i=o(i);s=o(s);r=o(r);a=o(a);function o(e){return e&&e.__esModule?e:{default:e}}class n extends t.default{type="edit";entityType=null;scope=null;isNew=!1;dependencyDefs={};dynamicLogicDefs={};fieldList=null;mode=null;lastSaveCancelReason=null;attributes;recordHelper=null;MODE_DETAIL="detail";MODE_EDIT="edit";TYPE_DETAIL="detail";TYPE_EDIT="edit";hideField(s,e){this.recordHelper.setFieldStateParam(s,"hidden",!0);e&&this.recordHelper.setFieldStateParam(s,"hiddenLocked",!0);let t=()=>{var e=this.getFieldView(s);if(e){var e=e.$el,t=e.closest('.cell[data-name="'+s+'"]'),i=t.find('label.control-label[data-name="'+s+'"]');e.addClass("hidden");i.addClass("hidden");t.addClass("hidden-cell")}else{this.$el.find('.cell[data-name="'+s+'"]').addClass("hidden-cell");this.$el.find('.field[data-name="'+s+'"]').addClass("hidden");this.$el.find('label.control-label[data-name="'+s+'"]').addClass("hidden")}};this.isRendered()?t():this.once("after:render",()=>{t()});var i=this.getFieldView(s);i&&i.setDisabled(e)}showField(s){if(!this.recordHelper.getFieldStateParam(s,"hiddenLocked")){this.recordHelper.setFieldStateParam(s,"hidden",!1);let e=()=>{var e=this.getFieldView(s);if(e){var e=e.$el,t=e.closest('.cell[data-name="'+s+'"]'),i=t.find('label.control-label[data-name="'+s+'"]');e.removeClass("hidden");i.removeClass("hidden");t.removeClass("hidden-cell")}else{this.$el.find('.cell[data-name="'+s+'"]').removeClass("hidden-cell");this.$el.find('.field[data-name="'+s+'"]').removeClass("hidden");this.$el.find('label.control-label[data-name="'+s+'"]').removeClass("hidden")}};this.isRendered()?e():this.once("after:render",()=>{e()});var t=this.getFieldView(s);!t||t.disabledLocked||t.setNotDisabled()}}setFieldReadOnly(t,i){var e=this.recordHelper.getFieldStateParam(t,"readOnly");this.recordHelper.setFieldStateParam(t,"readOnly",!0);i&&this.recordHelper.setFieldStateParam(t,"readOnlyLocked",!0);var s=this.getFieldView(t);s&&s.setReadOnly(i).catch(()=>{});e||this.trigger("set-field-read-only",t);s||this.isReady||this.once("ready",()=>{var e=this.getFieldView(t);e&&!e.readOnly&&this.recordHelper.getFieldStateParam(t,"readOnly")&&e.setReadOnly(i)})}setFieldNotReadOnly(t){var i=this.recordHelper.getFieldStateParam(t,"readOnly");this.recordHelper.setFieldStateParam(t,"readOnly",!1);if(!this.readOnly){let e=this.getFieldView(t);if(e&&e.readOnly){e.setNotReadOnly();this.mode===this.MODE_EDIT&&!e.readOnlyLocked&&e.isDetailMode()&&e.setEditMode().then(()=>e.reRender())}i&&this.trigger("set-field-not-read-only",t);e||this.isReady||this.once("ready",()=>{var e=this.getFieldView(t);e&&e.readOnly&&!this.recordHelper.getFieldStateParam(t,"readOnly")&&e.setNotReadOnly()})}}setFieldRequired(e){var t=this.recordHelper.getFieldStateParam(e,"required"),i=(this.recordHelper.setFieldStateParam(e,"required",!0),this.getFieldView(e));i&&i.setRequired();t||this.trigger("set-field-required",e)}setFieldNotRequired(e){var t=this.recordHelper.getFieldStateParam(e,"required"),i=(this.recordHelper.setFieldStateParam(e,"required",!1),this.getFieldView(e));i&&i.setNotRequired();t&&this.trigger("set-field-not-required",e)}setFieldOptionList(e,t){var i=this.recordHelper.hasFieldOptionList(e),s=this.recordHelper.getFieldOptionList(e),a=(this.recordHelper.setFieldOptionList(e,t),this.getFieldView(e));a&&"setOptionList"in a&&a.setOptionList(t);i&&(0,r.default)(s).isEqual(t)||this.trigger("set-field-option-list",e,t)}resetFieldOptionList(e){var t=this.recordHelper.hasFieldOptionList(e),i=(this.recordHelper.clearFieldOptionList(e),this.getFieldView(e));i&&"resetOptionList"in i&&i.resetOptionList();t&&this.trigger("reset-field-option-list",e)}showPanel(e,t){this.recordHelper.setPanelStateParam(e,"hidden",!1);this.isRendered()&&this.$el.find('.panel[data-name="'+e+'"]').removeClass("hidden")}hidePanel(e,t,i){this.recordHelper.setPanelStateParam(e,"hidden",!0);this.isRendered()&&this.$el.find('.panel[data-name="'+e+'"]').addClass("hidden")}stylePanel(s){this.recordHelper.setPanelStateParam(s,"styled",!0);let e=()=>{var e=this.$el.find('.panel[data-name="'+s+'"]'),t=e.find("> .panel-heading .btn"),i=e.attr("data-style");if(i){e.removeClass("panel-default");e.addClass("panel-"+i);t.removeClass("btn-default");t.addClass("btn-"+i)}};this.isRendered()?e():this.once("after:render",()=>{e()})}unstylePanel(s){this.recordHelper.setPanelStateParam(s,"styled",!1);let e=()=>{var e=this.$el.find('.panel[data-name="'+s+'"]'),t=e.find("> .panel-heading .btn"),i=e.attr("data-style");if(i){e.removeClass("panel-"+i);e.addClass("panel-default");t.removeClass("btn-"+i);t.addClass("btn-default")}};this.isRendered()?e():this.once("after:render",()=>{e()})}setConfirmLeaveOut(e){this.getRouter()&&(e?this.getRouter().addLeaveOutObject(this):this.getRouter().removeLeaveOutObject(this))}getFieldViews(e){let i={};this.fieldList.forEach(e=>{var t=this.getFieldView(e);t&&(i[e]=t)});return i}getFieldView(e){let t=this.getView(e+"Field")||null;t=t||this.getView(e)||null;return t}getField(e){return this.getFieldView(e)}getFieldList(){return Object.keys(this.getFieldViews())}getFieldViewList(){return this.getFieldList().map(e=>this.getFieldView(e)).filter(e=>null!==e)}data(){return{scope:this.scope,entityType:this.entityType,hiddenPanels:this.recordHelper.getHiddenPanels(),hiddenFields:this.recordHelper.getHiddenFields()}}handleDataBeforeRender(i){this.getFieldList().forEach(e=>{var t=e+"Field";i[e]=i[t]})}setup(){if(void 0===this.model)throw new Error("Model has not been injected into record view.");this.recordHelper=this.options.recordHelper||new i.default;this.dynamicLogicDefs=this.options.dynamicLogicDefs||this.dynamicLogicDefs;this.on("remove",()=>{this.isChanged&&this.resetModelChanges();this.setIsNotChanged()});this.entityType=this.model.entityType||this.model.name||"Common";this.scope=this.options.scope||this.entityType;this.fieldList=this.options.fieldList||this.fieldList||[];this.numId=Math.floor(1e4*Math.random()+1);this.id=Espo.Utils.toDom(this.entityType)+"-"+Espo.Utils.toDom(this.type)+"-"+this.numId;this.model.isNew()&&(this.isNew=!0);this.setupBeforeFinal()}setupBeforeFinal(){this.attributes=this.model.getClonedAttributes();this.listenTo(this.model,"change",(e,t)=>{if(t.sync)for(var i in e.attributes)e.hasChanged(i)&&(this.attributes[i]=Espo.Utils.cloneDeep(e.get(i)));else this.mode===this.MODE_EDIT&&this.setIsChanged()});this.options.attributes&&this.model.set(this.options.attributes);this.listenTo(this.model,"sync",()=>{this.attributes=this.model.getClonedAttributes()});this.initDependency();this.initDynamicLogic()}setInitialAttributeValue(e,t){this.attributes[e]=t}checkAttributeIsChanged(e){return!r.default.isEqual(this.attributes[e],this.model.get(e))}resetModelChanges(){if(this.updatedAttributes){this.attributes=this.updatedAttributes;this.updatedAttributes=null}var e,t=this.model.attributes;for(e in t)e in this.attributes||this.model.unset(e);this.model.set(this.attributes,{skipReRenderInEditMode:!0})}initDynamicLogic(){this.dynamicLogicDefs=Espo.Utils.clone(this.dynamicLogicDefs||{});this.dynamicLogicDefs.fields=Espo.Utils.clone(this.dynamicLogicDefs.fields);this.dynamicLogicDefs.panels=Espo.Utils.clone(this.dynamicLogicDefs.panels);this.dynamicLogic=new s.default(this.dynamicLogicDefs,this);this.listenTo(this.model,"sync",(e,t,i)=>{i&&"save"!==i.action&&"fetch"!==i.action||setTimeout(()=>this.processDynamicLogic(),0)});this.listenTo(this.model,"change",(e,t)=>{"save"!==t.action&&"fetch"!==t.action&&this.processDynamicLogic()});this.processDynamicLogic()}processDynamicLogic(){this.dynamicLogic.process()}initDependency(){Object.keys(this.dependencyDefs||{}).forEach(e=>{this.listenTo(this.model,"change:"+e,()=>{this._handleDependencyAttribute(e)})});this._handleDependencyAttributes()}setupFieldLevelSecurity(){var e=this.getAcl().getScopeForbiddenFieldList(this.entityType,"read"),e=(e.forEach(e=>{this.hideField(e,!0)}),this.getAcl().getScopeForbiddenFieldList(this.entityType,"edit"));e.forEach(e=>{this.setFieldReadOnly(e,!0)})}setIsChanged(){this.isChanged=!0}setIsNotChanged(){this.isChanged=!1}validate(){let i=[];this.getFieldList().forEach(e=>{var t=this.validateField(e);t&&i.push(e)});i.length&&this.onInvalid(i);return!!i.length}onInvalid(e){}validateField(t){var e=this.translate("fieldInvalid","messages").replace("{field}",this.translate(t,"fields",this.entityType));let i=this.getFieldView(t);if(!i)return!1;let s=!1;!i.isEditMode()||i.disabled||i.readOnly||(s=i.validate()||s);if(s){if(i.$el){var a=i.$el.get(0).getBoundingClientRect();0===a.top&&0===a.bottom&&0===a.left&&i.$el.closest(".panel.hidden").length&&setTimeout(()=>{var e=this.translate("Not valid")+": "+(i.lastValidationMessage||this.translate(t,"fields",this.entityType));Espo.Ui.error(e,!0)},10)}return!0}if(this.dynamicLogic&&this.dynamicLogicDefs&&this.dynamicLogicDefs.fields&&this.dynamicLogicDefs.fields[t]&&this.dynamicLogicDefs.fields[t].invalid&&this.dynamicLogicDefs.fields[t].invalid.conditionGroup){a=this.dynamicLogicDefs.fields[t].invalid.conditionGroup,a=this.dynamicLogic.checkConditionGroup(a);s=a||s;if(a){i.showValidationMessage(e);i.trigger("invalid")}}return s}afterSave(){this.isNew?Espo.Ui.success(this.translate("Created")):Espo.Ui.success(this.translate("Saved"));this.setIsNotChanged()}beforeBeforeSave(){}beforeSave(){Espo.Ui.notify(this.translate("saving","messages"))}afterSaveError(){}afterNotModified(){Espo.Ui.warning(this.translate("notModified","messages"));this.setIsNotChanged()}afterNotValid(){Espo.Ui.error(this.translate("Not valid"))}getChangedAttributes(){var e,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,i=this.model.getClonedAttributes();if(this.model.isNew())return i;let s={};for(e in i)Espo.Utils.areEqual(this.attributes[e],i[e])||(s[e]=i[e]);var a,r=this.forcePatchAttributeDependencyMap||{};for(a in r)if(!(a in s)&&(!t||t.includes(a))){var o=r[a],o=!!o.find(e=>e in s);o&&(s[a]=i[a])}return s}save(s){s=s||{};let a=s.headers||{},r=this.model;this.lastSaveCancelReason=null;this.beforeBeforeSave();var e=this.fetch();this.model.set(e,{silent:!0});let o=this.getChangedAttributes(Object.keys(e));if(0===Object.keys(o).length){s.skipNotModifiedWarning||this.afterNotModified();this.lastSaveCancelReason="notModified";this.trigger("cancel:save",{reason:"notModified"});return Promise.reject("notModified")}if(this.validate()){this.afterNotValid();this.lastSaveCancelReason="invalid";this.trigger("cancel:save",{reason:"invalid"});return Promise.reject("invalid")}s.afterValidate&&s.afterValidate();e=this.getMetadata().get(["entityDefs",this.entityType,"optimisticConcurrencyControl"]);e&&null!==this.model.get("versionNumber")&&(a["X-Version-Number"]=this.model.get("versionNumber"));this.model.isNew()&&this.options.duplicateSourceId&&(a["X-Duplicate-Source-Id"]=this.options.duplicateSourceId);this.beforeSave();this.trigger("before:save");r.trigger("before:save");let n=this.attributes;return new Promise((t,i)=>{let e=r.save(o,{patch:!r.isNew(),headers:a});e.then(()=>{this.trigger("save",n,Object.keys(o));this.afterSave();this.isNew&&(this.isNew=!1);this.trigger("after:save");r.trigger("after:save");e.xhr.getResponseHeader("X-Record-Link-Updated")&&r.trigger("update-all");t()}).catch(e=>{this.handleSaveError(e,s,t,i).then(e=>{e||i("error")});this.afterSaveError();this.lastSaveCancelReason="error";this.trigger("error:save");this.trigger("cancel:save",{reason:"error"})})})}handleSaveError(t,s,a,r){let o=null;if(~[409,500].indexOf(t.status)){var e=t.getResponseHeader("X-Status-Reason");if(!e)return Promise.resolve(!1);try{o=JSON.parse(e)}catch(e){}if(!o){o={reason:e.toString()};if(t.responseText){let e;try{e=JSON.parse(t.responseText)}catch(e){console.error("Could not parse error response body.");return Promise.resolve(!1)}o.data=e}}}if(!o||!o.reason)return Promise.resolve(!1);let n=o.reason,l=this.getMetadata().get(["clientDefs",this.scope,"saveErrorHandlers",n])||this.getMetadata().get(["clientDefs","Global","saveErrorHandlers",n]);return new Promise(i=>{if(l){Espo.loader.require(l,e=>{var t=new e(this);t.process(o.data,s);i(!1)});t.errorIsHandled=!0}else{var e="errorHandler"+Espo.Utils.upperCaseFirst(n);if(e in this){t.errorIsHandled=!0;e=this[e](o.data,s,a,r);i(e||!1)}else i(!1)}})}fetch(){let e={};var t,i=this.getFieldViews();for(t in i){var s=i[t];!s.isEditMode()||s.disabled||s.readOnly||!s.isFullyRendered()||(e={...e,...s.fetch()})}return e}processFetch(){var e=this.fetch();this.model.set(e);return this.validate()?null:e}populateDefaults(){}errorHandlerDuplicate(e){}_handleDependencyAttributes(){Object.keys(this.dependencyDefs||{}).forEach(e=>{this._handleDependencyAttribute(e)})}_handleDependencyAttribute(e){var t=this.dependencyDefs[e],i=this.model.get(e);i in(t.map||{})?(t.map[i]||[]).forEach(e=>{this._doDependencyAction(e)}):"default"in t&&(t.default||[]).forEach(e=>{this._doDependencyAction(e)})}_doDependencyAction(e){var t=e.action,i="dependencyAction"+Espo.Utils.upperCaseFirst(t);if(i in this&&"function"==typeof this.methodName)this.methodName(e);else{var s=e.fieldList||e.fields||[],a=e.panelList||e.panels||[];switch(t){case"hide":a.forEach(e=>{this.hidePanel(e)});s.forEach(e=>{this.hideField(e)});break;case"show":a.forEach(e=>{this.showPanel(e)});s.forEach(e=>{this.showField(e)});break;case"setRequired":s.forEach(e=>{this.setFieldRequired(e)});break;case"setNotRequired":s.forEach(e=>{this.setFieldNotRequired(e)});break;case"setReadOnly":s.forEach(e=>{this.setFieldReadOnly(e)});break;case"setNotReadOnly":s.forEach(e=>{this.setFieldNotReadOnly(e)})}}}createField(e,t,i,s,a,r){var o={model:this.model,mode:s||"edit",selector:'.field[data-name="'+e+'"]',defs:{name:e,params:i||{}}};a&&(o.readOnly=!0);t=t||this.model.getFieldParam(e,"view");if(!t){var n=this.model.getFieldType(e)||"base";t=this.getFieldManager().getViewName(n)}if(r)for(var l in r)o[l]=r[l];this.recordHelper.getFieldStateParam(e,"hidden")&&(o.disabled=!0);this.recordHelper.getFieldStateParam(e,"readOnly")&&(o.readOnly=!0);null!==this.recordHelper.getFieldStateParam(e,"required")&&(o.defs.params.required=this.recordHelper.getFieldStateParam(e,"required"));this.recordHelper.hasFieldOptionList(e)&&(o.customOptionList=this.recordHelper.getFieldOptionList(e));n=e+"Field";this.createView(n,t,o);~this.fieldList.indexOf(e)||this.fieldList.push(e)}getFocusedFieldView(){var e=(0,a.default)(window.document.activeElement);return e.length&&(e=e.closest(".field"),e.length)&&(e=e.attr("data-name"),e)?this.getFieldView(e):null}exit(e){}}e.default=n});define("views/modals/select-template",["exports","views/modals/select-records"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{multiple=!1;createButton=!1;searchPanel=!1;scope="Template";backdrop=!0;setupSearch(){super.setupSearch();this.searchManager.setAdvanced({entityType:{type:"equals",value:this.options.entityType}});this.collection.where=this.searchManager.getWhere();this.collection.data.primaryFilter="active"}afterRender(){super.afterRender();let e=this.$el.find("a.link").first().get(0);e&&setTimeout(()=>e.focus({preventScroll:!0}),10)}}e.default=s});define("ui/select",["exports","lib!selectize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let d={init:function(e){let t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=t.score;var s=$(e),a=(t=d.applyDefaultOptions(t||{}),[]);d.loadEspoSelectPlugin();a.push("espo_select");let r={};var o=s.children().toArray().map(e=>{var t=e.getAttributeNode("value").value;e.classList&&(r[t]=e.classList.toString());return t});let n=null;var l=s.closest(".modal-body"),l=(l.length&&(n=l),{sortField:[{field:t.sortBy,direction:t.sortDirection}],load:t.load,loadThrottle:1,plugins:a,highlight:!1,selectOnTab:t.selectOnTab,copyClassesToDropdown:!1,allowEmptyOption:o.includes(""),showEmptyOptionInDropdown:!0,$relativeParent:n,render:{item:function(e){return $("<div>").addClass("item").addClass(r[e.value]||"").text(e.text).get(0).outerHTML},option:function(e){var t=$("<div>").addClass("option").addClass(""===e.value?"selectize-dropdown-emptyoptionlabel":"").addClass(r[e.value]||"").val(e.value).text(e.text);""===e.text&&t.html(" ");return t.get(0).outerHTML}},onDelete:function(e){for(;e.length;)this.removeItem(e.pop(),!0);this.showInput();this.positionDropdown();this.refreshOptions(!0)}});t.onFocus&&(l.onFocus=function(){t.onFocus()});t.matchAnyWord||(l.score=function(t){let i=this.getScoreFunction(t);t=t.toLowerCase();return function(e){return 0===e.text.toLowerCase().indexOf(t)?i(e):0}});t.matchAnyWord&&(l.score=function(i){let s=this.getScoreFunction(i);i=i.toLowerCase();return function(e){var t=e.text.toLowerCase();return t.split(" ").find(e=>e.startsWith(i))||t.startsWith(i)?s(e):0}});t.score&&(l.score=function(t){return function(e){return i(t,e)}});s.selectize(l)},focus:function(e,t){var i=$(e);t=t||{};if(i[0]&&i[0].selectize){let e=i[0].selectize;t.noTrigger&&(e.focusNoTrigger=!0);e.focus();t.noTrigger&&setTimeout(()=>e.focusNoTrigger=!1,100)}},setOptions:function(e,t){var i=$(e),i=i.get(0).selectize;i.clearOptions(!0);i.load(e=>{e(t.map(e=>({value:e.value,text:e.text||e.label})))})},setValue:function(e,t){e instanceof HTMLElement||(e=$(e).get(0));var i=e.selectize;i.setValue(t,!0)},destroy:function(e){if(e){e instanceof HTMLElement||(e=$(e).get(0));e&&e.selectize&&e.selectize.destroy()}},applyDefaultOptions:function(e){e=Espo.Utils.clone(e);var t,i={selectOnTab:!1,matchAnyWord:!1,sortBy:"$order",sortDirection:"asc"};for(t in i)t in e||(e[t]=i[t]);return e},loadEspoSelectPlugin:function(){if(!("espo_select"in t.default.plugins)){let s=/Mac/.test(navigator.userAgent);t.default.define("espo_select",function(){let l=this;this.setup=(()=>{let e=l.setup;return function(){e.apply(this,arguments);l.selectedValue=l.items[0];l.$dropdown.on("mouseup","[data-selectable]",function(){$(document).off("mouseup.select");return l.onOptionSelect.apply(l,arguments)});l.$dropdown.on("mousedown","[data-selectable]",function(){$(document).one("mouseup.select",function(){l.focusOnControlSilently()})});l.$control_input.css({width:"4px"})}})();this.focusOnControlSilently=function(){l.preventReOpenOnFocus=!0;l.$control_input[0].focus();l.preventReOpenOnFocus=!1};this.refreshOptions=(()=>{let e=l.refreshOptions;return function(){l.focusNoTrigger?e.apply(this,[!1]):e.apply(this,arguments)}})();this.blur=(()=>{let e=l.blur;return function(){l.preventClose||e.apply(this,arguments)}})();this.close=(()=>{let e=l.close;return function(){l.preventClose||e.apply(this,arguments)}})();this.onOptionSelect=(()=>{let t=l.onOptionSelect;return function(e){if("mousedown"===e.type||"click"===e.type){l.preventClose=!0;setTimeout(()=>l.preventClose=!1,100)}else{l.preventClose=!1;"mouseup"===e.type&&setTimeout(()=>l.focusOnControlSilently(),50);t.apply(this,arguments);l.selectedValue=$(e.currentTarget).attr("data-value")}}})();this.open=(()=>{let i=l.open;return function(){var e=!(l.isLocked||l.isOpen);i.apply(this,arguments);if(e){var e=l.$dropdown.children().first(),t=e.find(".selected");if(t.length){t=t.get(0).offsetTop-e.get(0).clientHeight,t=0<=t?t:0;e.find(".selectize-dropdown-content").scrollTop(t)}}}})();this.onMouseDown=(()=>{let t=l.onMouseDown;return function(e){if(l.isOpen||l.isInputHidden||!l.$control_input.val())return l.isOpen&&(l.closedByMouseDown=!0),t.apply(this,arguments)}})();this.onFocus=(()=>{let t=l.onFocus;return function(e){if(!l.preventReOpenOnFocus){if(!l.closedByMouseDown)return l.closedByMouseDown=!1,t.apply(this,arguments);l.closedByMouseDown=!1}}})();this.restoreSelectedValue=function(){if(!this.preventRevertLoop){this.preventRevertLoop=!0;setTimeout(()=>this.preventRevertLoop=!1,10);this.setValue(this.selectedValue,!0)}};this.onBlur=(()=>{let e=l.onBlur;return function(){if(!l.preventClose){l.restoreSelectedValue();l.$control_input.css({width:"4px"});return e.apply(this,arguments)}}})();this.onKeyDown=(()=>{let i=l.onKeyDown;return function(e){if(s?!e.metaKey:!e.ctrlKey){if("Escape"===e.code){!l.isOpen&&l.isInputHidden||e.stopPropagation();l.isOpen&&l.close();l.isInputHidden||l.hideInput();l.addItem(this.selectedValue,!0)}if((l.isFull()||l.isInputHidden)&&1===e.key.length&&(e.code.match(/Key[A-Z]/i)||e.key.match(/[0-9]/)||RegExp(/^\p{L}/,"u").test(e.key))){var t=e.keyCode;e.keyCode=8;l.deleteSelection(e);e.keyCode=t;l.$control_input.width(15)}return i.apply(this,arguments)}if(!l.items.length){l.restoreSelectedValue();l.focus()}}})();this.positionDropdown=(()=>{let n={top:"top",bottom:"bottom"};return function(){var e=l.$control,t="body"===this.settings.dropdownParent?e.offset():e.position(),i=(t.top+=e.outerHeight(!0),l.$dropdown.prop("scrollHeight")+5),s=l.$control.get(0).getBoundingClientRect().top,a=l.$wrapper.height(),r=l.$control.get(0).getBoundingClientRect().bottom,o=this.settings.$relativeParent?this.settings.$relativeParent.get(0).getBoundingClientRect().top:0,s=s+i+a>window.innerHeight&&o<=r-i-a?n.top:n.bottom,o={width:e.outerWidth(),left:t.left};if(s===n.top){Object.assign(o,{bottom:t.top,top:"unset",margin:"0 0 0 0"});l.$dropdown.addClass("selectize-position-top")}else{Object.assign(o,{top:t.top,bottom:"unset",margin:"0 0 0 0"});l.$dropdown.removeClass("selectize-position-top")}l.$dropdown.css(o)}})()})}}};e.default=d});define("helpers/action-item-setup",["exports","di","metadata","view-helper","acl-manager","language"],function(e,t,i,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=f(i);s=f(s);a=f(a);r=f(r);var o;let n,l,d,h,c,u,m,p;function f(e){return e&&e.__esModule?e:{default:e}}function g(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class v{constructor(){p(this)}metadata=n(this);viewHelper=(l(this),d(this));acl=(h(this),c(this));language=(u(this),m(this));setup(r,e,i,s,a,o,t){t=t||{};let n=[],l=r.scope||r.model.entityType;if(!l)throw new Error;var d=[...this.metadata.get(["clientDefs","Global",e+"ActionList"])||[],...this.metadata.get(["clientDefs",l,e+"ActionList"])||[]];d.forEach(a=>{"string"==typeof a&&(a={name:a});a=Espo.Utils.cloneDeep(a);var e=a.name;a.label||(a.html=this.language.translate(e,"actions",l));a.data=a.data||{};let t=a.handler||a.data.handler;t&&!a.data.handler&&(a.data.handler=t);s(a);if(Espo.Utils.checkActionAvailability(this.viewHelper,a)){Espo.Utils.checkActionAccess(this.acl,r.model,a,!0)||(a.hidden=!0);n.push(a);t&&(a.initFunction||a.checkVisibilityFunction)&&i(new Promise(s=>{Espo.loader.require(t,e=>{var t=new e(r);a.initFunction&&t[a.initFunction].call(t);if(a.checkVisibilityFunction){var i=!t[a.checkVisibilityFunction].call(t);i&&o(a.name)}a.handlerInstance=t;s()})}))}});if(n.length){let e=()=>{n.forEach(e=>{if(e.handlerInstance&&e.checkVisibilityFunction){var t=!e.handlerInstance[e.checkVisibilityFunction].call(e.handlerInstance);if(t)return o(e.name),void 0}(Espo.Utils.checkActionAccess(this.acl,r.model,e,!0)?a:o)(e.name)})};t.listenToViewModelSync?r.listenTo(r,"model-sync",()=>e()):r.listenTo(r.model,"sync",()=>e())}}static#_=o=()=>[n,l,d,h,c,u,m,p]=g(this,[],[[(0,t.inject)(i.default),0,"metadata"],[(0,t.inject)(s.default),0,"viewHelper"],[(0,t.inject)(a.default),0,"acl"],[(0,t.inject)(r.default),0,"language"]]).e}o();e.default=v});define("helpers/util/debounce",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{blocked=!1;blockedInProcess=!1;calledWhenProcessBlocked=!1;interval=500;blockInterval=1e3;blockedCallCount=0;blockTimeoutId=null;constructor(e){this.handler=e.handler;this.interval=e.interval??this.interval;this.blockInterval=e.blockInterval??this.blockInterval}process(){let t=()=>{if(this.blocked)this.blockedCallCount++;else if(this.blockedInProcess)this.calledWhenProcessBlocked=!0;else{this.handler(arguments);this.blockedInProcess=!0;setTimeout(()=>{var e=this.calledWhenProcessBlocked;this.blockedInProcess=!1;this.calledWhenProcessBlocked=!1;e&&t()},this.interval)}};t()}block(){this.blocked=!0;this.blockTimeoutId&&clearTimeout(this.blockTimeoutId);this.blockTimeoutId=setTimeout(()=>{this.blocked=!1;var e=1<this.blockedCallCount;this.blockedCallCount=0;e&&this.process()},this.blockInterval)}}});define("helpers/record/misc/sticky-bar",["exports","jquery"],function(e,c){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;c=(t=c,t&&t.__esModule?t:{default:t});var t;e.default=class{constructor(e,t,i,s){this.view=e;this.stickButtonsFormBottomSelector=t;this.stickButtonsContainerAllTheWay=i;this.numId=s;this.themeManager=e.getThemeManager();this.$el=e.$el}init(){let h=this.$el.find(".detail-button-container");var e=this.$el.find(".detail-button-container.record-buttons");if(e.length){let s=this.themeManager.getParam("navbarHeight")*this.themeManager.getFontSizeFactor();var t=this.themeManager.getParam("screenWidthXs");let a=(0,c.default)(window.document).width()<t;let i=(e=>{let t=e.get(0),i=0;for(;t;){i+=isNaN(t.offsetTop)?0:t.offsetTop;t=t.offsetParent}return a?i:i-s})(e),r=e.outerHeight(),o=(i-=5,(0,c.default)("<div>").css("height",r+"px").html(" ").hide().insertAfter(e)),n=this.view.getMiddleView().$el,l=(0,c.default)(window),d=(0,c.default)("#navbar .navbar-right");if(this.stickButtonsFormBottomSelector){t=this.$el.find(this.stickButtonsFormBottomSelector);t.length&&(n=t)}l.off("scroll.detail-"+this.numId);l.on("scroll.detail-"+this.numId,()=>{var e=n.position().top+n.outerHeight(!1)-r,t=l.scrollTop();if(e<=t&&!this.stickButtonsContainerAllTheWay){h.hide();d.removeClass("has-sticked-bar");o.show()}else if(!a||!(0,c.default)("#navbar .navbar-body").hasClass("in")){if(t>i){if(!h.hasClass("stick-sub")){h.addClass("stick-sub");o.show()}d.addClass("has-sticked-bar")}else if(h.hasClass("stick-sub")){h.removeClass("stick-sub");d.removeClass("has-sticked-bar");o.hide()}h.show()}})}}}});define("views/record/detail",["exports","views/record/base","view-record-helper","helpers/action-item-setup","helpers/record/misc/sticky-bar","views/modals/select-template","helpers/util/debounce","di","helpers/site/shortcut-manager","web-socket-manager","utils"],function(e,t,i,s,a,r,o,n,l,d,h){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=g(t);i=g(i);s=g(s);a=g(a);r=g(r);o=g(o);l=g(l);d=g(d);h=g(h);var c;let u,m,p,f;function g(e){return e&&e.__esModule?e:{default:e}}function v(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class y extends t.default{shortcutManager=u(this);constructor(e){super(e);this.options=e}template=(m(this),"record/detail");type="detail";layoutName="detail";detailLayout=null;fieldsMode="detail";mode="detail";gridLayout=null;buttonsDisabled=!1;isNew=!1;buttonList=[{name:"edit",label:"Edit",title:"Ctrl+Space"}];dropdownItemList=[{name:"delete",label:"Remove",groupIndex:0}];buttonEditList=[{name:"save",label:"Save",style:"primary",edit:!0,title:"Ctrl+Enter"},{name:"cancelEdit",label:"Cancel",edit:!0,title:"Esc"}];dropdownEditItemList=[];allActionItemsDisabled=!1;id=null;returnUrl=null;returnDispatchParams=null;middleView="views/record/detail-middle";sideView="views/record/detail-side";bottomView="views/record/detail-bottom";sideDisabled=!1;bottomDisabled=!1;gridLayoutType="record";editModeDisabled=!1;navigateButtonsDisabled=!1;readOnly=!1;isWide=!1;duplicateAction=!0;selfAssignAction=!1;printPdfAction=!0;convertCurrencyAction=!0;saveAndContinueEditingAction=!0;inlineEditDisabled=!1;portalLayoutDisabled=!1;panelSoftLockedTypeList=["default","acl","delimiter","dynamicLogic"];dynamicLogicDefs={};confirmLeaveDisabled=!1;setupHandlerType="record/detail";currentTab=0;middlePanelDefs=null;middlePanelDefsList=null;$middle=null;$bottom=null;$detailButtonContainer=null;blockUpdateWebSocketPeriod=500;stickButtonsFormBottomSelector;dynamicHandlerClassName;accessControlDisabled;inlineEditModeIsOn=!1;shortcutKeyCtrlEnterAction="save";dataObject;rootData;_webSocketDebounceHelper;_webSocketDebounceInterval=500;webSocketManager=p(this);shortcutKeys=(f(this),{"Control+Enter":function(e){this.handleShortcutKeyCtrlEnter(e)},"Control+Alt+Enter":function(e){this.handleShortcutKeyCtrlAltEnter(e)},"Control+KeyS":function(e){this.handleShortcutKeyCtrlS(e)},"Control+Space":function(e){this.handleShortcutKeyCtrlSpace(e)},Escape:function(e){this.handleShortcutKeyEscape(e)},"Control+Backslash":function(e){this.handleShortcutKeyControlBackslash(e)},"Control+ArrowLeft":function(e){this.handleShortcutKeyControlArrowLeft(e)},"Control+ArrowRight":function(e){this.handleShortcutKeyControlArrowRight(e)}});events={"click .button-container .action":function(e){var t=e.currentTarget;let i=void 0;t.classList.contains("detail-action-item")?i=[...this.buttonList,...this.dropdownItemList]:t.classList.contains("edit-action-item")&&(i=[...this.buttonEditList,...this.dropdownEditItemList]);Espo.Utils.handleAction(this,e.originalEvent,t,{actionItems:i})},'click [data-action="showMoreDetailPanels"]':function(){this.showMoreDetailPanels()},"click .middle-tabs > button":function(e){var t=parseInt($(e.currentTarget).attr("data-tab"));this.selectTab(t)}};actionEdit(){if(this.editModeDisabled){var e={id:this.model.id,model:this.model.clone()};if(this.model.collection){var t=this.model.collection.indexOf(this.model);if(-1<t){e.model.collection=this.model.collection;e.model.collection.models[t]=e.model}}this.options.rootUrl&&(e.rootUrl=this.options.rootUrl);if(this.inlineEditModeIsOn){e.attributes=this.getChangedAttributes();this.resetModelChanges()}this.getRouter().navigate(`#${this.scope}/edit/`+this.model.id,{trigger:!1});this.getRouter().dispatch(this.scope,"edit",e)}else{this.setEditMode();this.focusOnFirstDiv();$(window).scrollTop(0)}}actionDelete(){this.delete()}actionSave(e){e=e||{};let t=this.mode;var i=this.save(e.options).catch(e=>{t===this.MODE_EDIT&&["error","cancel"].includes(e)&&this.setEditMode();return Promise.reject(e)});if(!this.lastSaveCancelReason||"notModified"===this.lastSaveCancelReason){this.setDetailMode();this.focusOnFirstDiv();$(window).scrollTop(0)}return i}actionCancelEdit(){this.cancelEdit();this.focusOnFirstDiv();$(window).scrollTop(0)}focusOnFirstDiv(){var e=this.$el.find("> div").get(0);e&&e.focus({preventScroll:!0})}actionSaveAndContinueEditing(e){e=e||{};this.save(e.options).catch(()=>{})}actionSelfAssign(){var e={assignedUserId:this.getUser().id,assignedUserName:this.getUser().get("name")};if("getSelfAssignAttributes"in this){var t=this.getSelfAssignAttributes();if(t)for(var i in t)e[i]=t[i]}this.model.save(e,{patch:!0}).then(()=>{Espo.Ui.success(this.translate("Self-Assigned"))})}actionConvertCurrency(){this.createView("modalConvertCurrency","views/modals/convert-currency",{entityType:this.entityType,model:this.model},e=>{e.render();this.listenToOnce(e,"after:update",e=>{let t=!1;for(var i in e)if(e[i]!==this.model.get(i)){t=!0;break}t?this.model.fetch().then(()=>{Espo.Ui.success(this.translate("done","messages"))}):Espo.Ui.warning(this.translate("notUpdated","messages"))})})}getSelfAssignAttributes(){return null}setupActionItems(){if(this.model.isNew()){this.isNew=!0;this.removeActionItem("delete")}else this.getMetadata().get(["clientDefs",this.scope,"removeDisabled"])&&this.removeActionItem("delete");!this.duplicateAction||!this.getAcl().check(this.entityType,"create")||this.getMetadata().get(["clientDefs",this.scope,"duplicateDisabled"])||this.getMetadata().get(["clientDefs",this.scope,"createDisabled"])||this.addDropdownItem({label:"Duplicate",name:"duplicate",groupIndex:0});if(this.selfAssignAction&&this.getAcl().check(this.entityType,"edit")&&!~this.getAcl().getScopeForbiddenFieldList(this.entityType).indexOf("assignedUser")&&!this.getUser().isPortal()&&this.model.has("assignedUserId")){this.addDropdownItem({label:"Self-Assign",name:"selfAssign",hidden:!!this.model.get("assignedUserId"),groupIndex:0});this.listenTo(this.model,"change:assignedUserId",()=>{this.model.get("assignedUserId")?this.hideActionItem("selfAssign"):this.showActionItem("selfAssign")})}if(this.type===this.TYPE_DETAIL&&this.printPdfAction){let e=!0;~(this.getHelper().getAppParam("templateEntityTypeList")||[]).indexOf(this.entityType)||(e=!1);e&&this.addDropdownItem({label:"Print to PDF",name:"printPdf",groupIndex:6})}if(this.type===this.TYPE_DETAIL&&this.convertCurrencyAction&&this.getAcl().check(this.entityType,"edit")&&!this.getMetadata().get(["clientDefs",this.scope,"convertCurrencyDisabled"])){var e=this.getFieldManager().getEntityTypeFieldList(this.entityType,{type:"currency",acl:"edit"});e.length&&this.addDropdownItem({label:"Convert Currency",name:"convertCurrency",groupIndex:5})}this.type===this.TYPE_DETAIL&&this.getMetadata().get(["scopes",this.scope,"hasPersonalData"])&&"yes"===this.getAcl().getPermissionLevel("dataPrivacyPermission")&&this.dropdownItemList.push({label:"View Personal Data",name:"viewPersonalData",groupIndex:4});this.type===this.TYPE_DETAIL&&this.getMetadata().get(["scopes",this.scope,"stream"])&&this.addDropdownItem({label:"View Followers",name:"viewFollowers",groupIndex:4});if(this.type===this.TYPE_DETAIL){e=new s.default;e.setup(this,this.type,e=>this.wait(e),e=>this.addDropdownItem(e),e=>this.showActionItem(e),e=>this.hideActionItem(e));this.saveAndContinueEditingAction&&this.dropdownEditItemList.push({name:"saveAndContinueEditing",label:"Save & Continue Editing",title:"Ctrl+S",groupIndex:0})}}disableActionItems(){this.disableButtons()}enableActionItems(){this.enableButtons()}hideActionItem(e){for(var t of this.buttonList)if(t.name===e){t.hidden=!0;break}for(var i of this.dropdownItemList)if(i.name===e){i.hidden=!0;break}for(var s of this.dropdownEditItemList)if(s.name===e){s.hidden=!0;break}for(var a of this.buttonEditList)if(a.name===e){a.hidden=!0;break}if(this.isRendered()){this.$detailButtonContainer.find('li > .action[data-action="'+e+'"]').parent().addClass("hidden");this.$detailButtonContainer.find('button.action[data-action="'+e+'"]').addClass("hidden");this.isDropdownItemListEmpty()&&this.$dropdownItemListButton.addClass("hidden");this.isDropdownEditItemListEmpty()&&this.$dropdownEditItemListButton.addClass("hidden");this.adjustButtons()}}showActionItem(e){for(var t of this.buttonList)if(t.name===e){t.hidden=!1;break}for(var i of this.dropdownItemList)if(i.name===e){i.hidden=!1;break}for(var s of this.dropdownEditItemList)if(s.name===e){s.hidden=!1;break}for(var a of this.buttonEditList)if(a.name===e){a.hidden=!1;break}if(this.isRendered()){this.$detailButtonContainer.find('li > .action[data-action="'+e+'"]').parent().removeClass("hidden");this.$detailButtonContainer.find('button.action[data-action="'+e+'"]').removeClass("hidden");this.isDropdownItemListEmpty()||this.$dropdownItemListButton.removeClass("hidden");this.isDropdownEditItemListEmpty()||this.$dropdownEditItemListButton.removeClass("hidden");this.adjustButtons()}}disableActionItem(e){for(var t of this.buttonList)if(t.name===e){t.disabled=!0;break}for(var i of this.dropdownItemList)if(i.name===e){i.disabled=!0;break}for(var s of this.dropdownEditItemList)if(s.name===e){s.disabled=!0;break}for(var a of this.buttonEditList)if(a.name===e){a.disabled=!0;break}if(this.isRendered()){this.$detailButtonContainer.find('li > .action[data-action="'+e+'"]').parent().addClass("disabled").attr("disabled","disabled");this.$detailButtonContainer.find('button.action[data-action="'+e+'"]').addClass("disabled").attr("disabled","disabled")}}enableActionItem(e){for(var t of this.buttonList)if(t.name===e){t.disabled=!1;break}for(var i of this.dropdownItemList)if(i.name===e){i.disabled=!1;break}for(var s of this.dropdownEditItemList)if(s.name===e){s.disabled=!1;break}for(var a of this.buttonEditList)if(a.name===e){a.disabled=!1;break}if(this.isRendered()){this.$detailButtonContainer.find('li > .action[data-action="'+e+'"]').parent().removeClass("disabled").removeAttr("disabled");this.$detailButtonContainer.find('button.action[data-action="'+e+'"]').removeClass("disabled").removeAttr("disabled")}}hasAvailableActionItem(t){if(this.allActionItemsDisabled)return!1;if(this.type===this.TYPE_DETAIL&&this.mode===this.MODE_EDIT){let e=-1!==this.buttonEditList.findIndex(e=>e.name===t&&!e.disabled&&!e.hidden);return e?!0:-1!==this.dropdownEditItemList.findIndex(e=>e.name===t&&!e.disabled&&!e.hidden)}let e=-1!==this.buttonList.findIndex(e=>e.name===t&&!e.disabled&&!e.hidden);return!!e||-1!==this.dropdownItemList.findIndex(e=>e.name===t&&!e.disabled&&!e.hidden)}showPanel(t,i){if(!this.recordHelper.getPanelStateParam(t,"hiddenLocked")){i=i||"default";var e="hidden"+Espo.Utils.upperCaseFirst(i)+"Locked";this.recordHelper.setPanelStateParam(t,e,!1);if("dynamicLogic"!==i||!1!==this.recordHelper.getPanelStateParam(t,"hidden")){for(let e=0;e<this.panelSoftLockedTypeList.length;e++){var s=this.panelSoftLockedTypeList[e];if(s!==i){s="hidden"+Espo.Utils.upperCaseFirst(s)+"Locked";if(this.recordHelper.getPanelStateParam(t,s))return}}e=this.getMiddleView(),e=(e&&e.showPanelInternal(t),this.getBottomView()),e=(e?"showPanel"in e&&e.showPanel(t):this.bottomView&&this.once("ready",()=>{var e=this.getBottomView();e&&("processShowPanel"in e?e.processShowPanel(t):"showPanel"in e&&e.showPanel(t))}),this.getSideView());e?"showPanel"in e&&e.showPanel(t):this.sideView&&this.once("ready",()=>{var e=this.getSideView();e&&("processShowPanel"in e?e.processShowPanel(t):"showPanel"in e&&e.showPanel(t))});this.recordHelper.setPanelStateParam(t,"hidden",!1);if(this.middlePanelDefs[t]){this.controlTabVisibilityShow(this.middlePanelDefs[t].tabNumber);this.adjustMiddlePanels()}this.recordHelper.trigger("panel-show")}}}hidePanel(t,e,i){i=i||"default";e&&this.recordHelper.setPanelStateParam(t,"hiddenLocked",!0);var s="hidden"+Espo.Utils.upperCaseFirst(i)+"Locked";this.recordHelper.setPanelStateParam(t,s,!0);if("dynamicLogic"!==i||!0!==this.recordHelper.getPanelStateParam(t,"hidden")){s=this.getMiddleView(),s=(s&&s.hidePanelInternal(t),this.getBottomView()),s=(s?"hidePanel"in s&&s.hidePanel(t):this.bottomView&&this.once("ready",()=>{var e=this.getBottomView();e&&("processHidePanel"in e?e.processHidePanel(t):"hidePanel"in e&&e.hidePanel(t))}),this.getSideView());s?"hidePanel"in s&&s.hidePanel(t):this.sideView&&this.once("ready",()=>{var e=this.getSideView();e&&("processHidePanel"in e?e.processHidePanel(t):"hidePanel"in e&&e.hidePanel(t))});this.recordHelper.setPanelStateParam(t,"hidden",!0);if(this.middlePanelDefs[t]){this.controlTabVisibilityHide(this.middlePanelDefs[t].tabNumber);this.adjustMiddlePanels()}}}afterRender(){this.$middle=this.$el.find(".middle").first();this.bottomView&&(this.$bottom=this.$el.find(".bottom").first());this.initElementReferences();this.adjustMiddlePanels();this.adjustButtons();this.initStickableButtonsContainer();this.initFieldsControlBehaviour()}initFieldsControlBehaviour(){var e,t=this.getFieldViews();let i=null;for(e in t){var s=t[e];this.listenTo(s,"edit",e=>{i&&i.isEditMode()&&i.inlineEditClose();i=e});this.listenTo(s,"inline-edit-on",()=>{this.inlineEditModeIsOn=!0});this.listenTo(s,"inline-edit-off",e=>{e=e||{};if(!e.all){this.inlineEditModeIsOn=!1;this.setIsNotChanged()}});this.listenTo(s,"after:inline-edit-off",e=>{this.updatedAttributes&&!e.noReset&&this.resetModelChanges()})}}initStickableButtonsContainer(){var e=new a.default(this,this.stickButtonsFormBottomSelector,this.stickButtonsContainerAllTheWay,this.numId);e.init()}fetch(){let e=super.fetch();if(this.hasView("side")){var t=this.getSideView();"fetch"in t&&(e=_.extend(e,t.fetch()))}if(this.hasView("bottom")){t=this.getBottomView();"fetch"in t&&(e=_.extend(e,t.fetch()))}return e}setEditMode(){this.trigger("before:set-edit-mode");this.inlineEditModeIsOn=!1;this.$el.find(".record-buttons").addClass("hidden");this.$el.find(".edit-buttons").removeClass("hidden");return new Promise(e=>{var t,i=this.getFieldViews(!0),s=[];for(t in i){let e=i[t];if(!e.readOnly){if(e.isEditMode()){e.fetchToModel();e.removeInlineEditLinks();e.setIsInlineEditMode(!1)}s.push(e.setEditMode().then(()=>e.render()))}}this.mode=this.MODE_EDIT;this.trigger("after:set-edit-mode");this.trigger("after:mode-change",this.MODE_EDIT);Promise.all(s).then(()=>e())})}setDetailMode(){this.trigger("before:set-detail-mode");this.$el.find(".edit-buttons").addClass("hidden");this.$el.find(".record-buttons").removeClass("hidden");this.inlineEditModeIsOn=!1;return new Promise(e=>{var t,i=this.getFieldViews(!0),s=[];for(t in i){let e=i[t];if(!e.isDetailMode()){e.isEditMode()&&e.trigger("inline-edit-off",{all:!0});s.push(e.setDetailMode().then(()=>e.render()))}}this.mode=this.MODE_DETAIL;this.trigger("after:set-detail-mode");this.trigger("after:mode-change",this.MODE_DETAIL);Promise.all(s).then(()=>e())})}cancelEdit(){this.resetModelChanges();this.setDetailMode();this.setIsNotChanged()}isEditMode(){return"edit"===this.mode}resetModelChanges(){let e=!0;if(this.updatedAttributes){this.attributes=this.updatedAttributes;this.updatedAttributes=null;e=!1}var t,i=this.model.attributes;for(t in i)t in this.attributes||this.model.unset(t);this.model.set(this.attributes,{skipReRenderInEditMode:e,action:"cancel-edit"})}delete(){this.confirm({message:this.translate("removeRecordConfirmation","messages",this.scope),confirmText:this.translate("Remove")},()=>{this.trigger("before:delete");this.trigger("delete");Espo.Ui.notifyWait();let e=this.model.collection;this.model.destroy({wait:!0}).then(()=>{e&&0<e.total&&e.total--;this.model.set("deleted",!0,{silent:!0});Espo.Ui.success(this.translate("Removed"),{suppress:!0});this.trigger("after:delete");this.exit("delete")})})}getFieldViews(e){var t={};this.hasView("middle")&&"getFieldViews"in this.getMiddleView()&&_.extend(t,Espo.Utils.clone(this.getMiddleView().getFieldViews()));this.hasView("side")&&"getFieldViews"in this.getSideView()&&_.extend(t,this.getSideView().getFieldViews(e));this.hasView("bottom")&&"getFieldViews"in this.getBottomView()&&_.extend(t,this.getBottomView().getFieldViews(e));return t}getFieldView(e){let t;this.hasView("middle")&&(t=(this.getMiddleView().getFieldViews()||{})[e]);!t&&this.hasView("side")&&(t=(this.getSideView().getFieldViews(!0)||{})[e]);!t&&this.hasView("bottom")&&(t=(this.getBottomView().getFieldViews(!0)||{})[e]);return t||null}handleDataBeforeRender(e){}data(){let e=!this.navigateButtonsDisabled&&!!this.model.collection,t=!1,i=!1;if(e){(0<this.indexOfRecord||this.model.collection.offset)&&(t=!0);var s=void 0!==this.model.collection.total?this.model.collection.total:this.model.collection.length;(this.indexOfRecord<s-1-this.model.collection.offset||-1===s||-2===s&&this.indexOfRecord<this.model.collection.length-1-this.model.collection.offset)&&(i=!0);t||i||(e=!1)}var s=this.hasTabs(),a=s?this.getMiddleTabDataList():[];return{scope:this.scope,entityType:this.entityType,buttonList:this.buttonList,buttonEditList:this.buttonEditList,dropdownItemList:this.getDropdownItemDataList(),dropdownEditItemList:this.dropdownEditItemList,dropdownItemListEmpty:this.isDropdownItemListEmpty(),dropdownEditItemListEmpty:this.isDropdownEditItemListEmpty(),buttonsDisabled:this.buttonsDisabled,id:this.id,isWide:this.isWide,isSmall:"editSmall"===this.type||"detailSmall"===this.type,navigateButtonsEnabled:e,previousButtonEnabled:t,nextButtonEnabled:i,hasMiddleTabs:s,middleTabDataList:a}}getDropdownItemDataList(){let i=[],t=(this.dropdownItemList.forEach(e=>{if(!1!==e){var t=(void 0===e.groupIndex?9999:e.groupIndex)+100;void 0===i[t]&&(i[t]=[]);i[t].push(e)}}),[]);i.forEach(e=>{e.forEach(e=>t.push(e));t.push(!1)});return t}init(){this.entityType=this.model.entityType||this.model.name||"Common";this.scope=this.options.scope||this.entityType;this.layoutName=this.options.layoutName||this.layoutName;this.detailLayout=this.options.detailLayout||this.detailLayout;this.type=this.options.type||this.type;this.buttonList=this.options.buttonList||this.buttonList;this.dropdownItemList=this.options.dropdownItemList||this.dropdownItemList;this.buttonList=Espo.Utils.cloneDeep(this.buttonList);this.buttonEditList=Espo.Utils.cloneDeep(this.buttonEditList);this.dropdownItemList=Espo.Utils.cloneDeep(this.dropdownItemList);this.dropdownEditItemList=Espo.Utils.cloneDeep(this.dropdownEditItemList);this.returnAfterCreate=this.options.returnAfterCreate;this.returnUrl=this.options.returnUrl||this.returnUrl;this.returnDispatchParams=this.options.returnDispatchParams||this.returnDispatchParams;this.exit=this.options.exit||this.exit;this.shortcutKeys&&(this.shortcutKeys=Espo.Utils.cloneDeep(this.shortcutKeys))}isDropdownItemListEmpty(){if(0===this.dropdownItemList.length)return!0;let t=!0;this.dropdownItemList.forEach(e=>{e.hidden||(t=!1)});return t}isDropdownEditItemListEmpty(){if(0===this.dropdownEditItemList.length)return!0;let t=!0;this.dropdownEditItemList.forEach(e=>{e.hidden||(t=!1)});return t}setup(){if(void 0===this.model)throw new Error("Model has not been injected into record view.");this.recordHelper=this.options.recordHelper||new i.default(this.defaultFieldStates,this.defaultPanelStates);this._initInlineEditSave();let e=this.collection=this.model.collection;if(e){this.listenTo(this.model,"destroy",()=>{e.remove(this.model.id);e.trigger("sync",e,{},{})});"indexOfRecord"in this.options?this.indexOfRecord=this.options.indexOfRecord:this.indexOfRecord=e.indexOf(this.model)}this.middlePanelDefs={};this.middlePanelDefsList=[];this.getUser().isPortal()&&!this.portalLayoutDisabled&&this.getMetadata().get(["clientDefs",this.scope,"additionalLayouts",this.layoutName+"Portal"])&&(this.layoutName+="Portal");this.numId=Math.floor(1e4*Math.random()+1);$(window).on("fetch-record."+this.cid,()=>this._webSocketDebounceHelper.process());this.once("remove",()=>{this.isChanged&&this.resetModelChanges();this.setIsNotChanged();$(window).off("scroll.detail-"+this.numId);$(window).off("fetch-record."+this.cid)});this.id=Espo.Utils.toDom(this.entityType)+"-"+Espo.Utils.toDom(this.type)+"-"+this.numId;this.isNew=this.model.isNew();this.editModeDisabled||"editModeDisabled"in this.options&&(this.editModeDisabled=this.options.editModeDisabled);this.confirmLeaveDisabled=this.options.confirmLeaveDisabled||this.confirmLeaveDisabled;this.buttonsDisabled=this.options.buttonsDisabled||this.buttonsDisabled;"buttonsPosition"in this.options&&!this.options.buttonsPosition&&(this.buttonsDisabled=!0);"isWide"in this.options&&(this.isWide=this.options.isWide);"sideView"in this.options&&(this.sideView=this.options.sideView);"bottomView"in this.options&&(this.bottomView=this.options.bottomView);this.sideDisabled=this.options.sideDisabled||this.sideDisabled;this.bottomDisabled=this.options.bottomDisabled||this.bottomDisabled;this.readOnly=this.options.readOnly||this.readOnly;this.readOnly||this.isNew||(this.readOnly=this.getMetadata().get(["clientDefs",this.scope,"editDisabled"])||!1);this.getMetadata().get(["clientDefs",this.scope,"createDisabled"])&&(this.duplicateAction=!1);(this.getConfig().get("currencyList")||[]).length<=1&&(this.convertCurrencyAction=!1);this.readOnlyLocked=this.readOnly;this.inlineEditDisabled=this.inlineEditDisabled||this.getMetadata().get(["clientDefs",this.scope,"inlineEditDisabled"])||!1;this.inlineEditDisabled=this.options.inlineEditDisabled||this.inlineEditDisabled;this.navigateButtonsDisabled=this.options.navigateButtonsDisabled||this.navigateButtonsDisabled;this.portalLayoutDisabled=this.options.portalLayoutDisabled||this.portalLayoutDisabled;this.dynamicLogicDefs=this.options.dynamicLogicDefs||this.dynamicLogicDefs;this.accessControlDisabled=this.options.accessControlDisabled||this.accessControlDisabled;this.dataObject=this.options.dataObject||{};this.rootData=this.options.rootData||{};this.setupActionItems();this.setupBeforeFinal();this.setupDynamicBehavior();this.on("after:render",()=>{this.initElementReferences()});this._webSocketDebounceHelper=new o.default({interval:this._webSocketDebounceInterval,handler:()=>this.handleRecordUpdate()});if(!this.options.webSocketDisabled&&!this.isNew&&this.webSocketManager.isEnabled()&&this.getMetadata().get(["scopes",this.entityType,"object"])){this.subscribeToWebSocket();this.once("remove",()=>{this.isSubscribedToWebSocket&&this.unsubscribeFromWebSocket()})}this.wait(this.getHelper().processSetupHandlers(this,this.setupHandlerType));this.initInlineEditDynamicWithLogicInteroperability();this.forcePatchAttributeDependencyMap=this.getMetadata().get(["clientDefs",this.scope,"forcePatchAttributeDependencyMap"])||{}}setupBeforeFinal(){this.accessControlDisabled||this.manageAccess();this.attributes=this.model.getClonedAttributes();this.options.attributes&&this.model.set(this.options.attributes);this.listenTo(this.model,"sync",()=>{this.attributes=this.model.getClonedAttributes()});this.listenTo(this.model,"change",(e,t)=>{if(t.sync)for(var i in e.attributes)e.hasChanged(i)&&(this.attributes[i]=Espo.Utils.cloneDeep(e.get(i)));else this.mode!==this.MODE_EDIT&&!this.inlineEditModeIsOn||this.setIsChanged()})}setupDynamicBehavior(){var e=Espo.Utils.clone(this.getMetadata().get(["clientDefs",this.entityType,"formDependency"])||{});this.dependencyDefs=_.extend(e,this.dependencyDefs);this.initDependency();e={...this.getMetadata().get("logicDefs."+this.entityType,{})};this.dynamicLogicDefs=_.extend(e,this.dynamicLogicDefs);this.initDynamicLogic();this.setupFieldLevelSecurity();this.initDynamicHandler()}_initInlineEditSave(){this.listenTo(this.recordHelper,"inline-edit-save",(e,t)=>{this.inlineEditSave(e,t)})}inlineEditSave(e,t){let i=this.getFieldView(e);if(!i)throw new Error(`No field '${e}'.`);t=_.extend({inline:!0,field:e,afterValidate:()=>{t.bypassClose||i.inlineEditClose(!0)}},t||{});this.save(t).then(()=>{i.trigger("after:inline-save");i.trigger("after:save");t.bypassClose&&(i.initialAttributes=this.model.getClonedAttributes())}).catch(e=>{if("notModified"===e)t.bypassClose||i.inlineEditClose(!0);else if("error"===e&&!t.bypassClose){let e={...i.initialAttributes};i.inlineEdit().then(()=>i.initialAttributes=e)}})}initInlineEditDynamicWithLogicInteroperability(){let s=!1,t=(e,t)=>{if(this.inlineEditModeIsOn&&!this.editModeDisabled&&!s){if("required"===e){var i=this.getFieldView(t);if(i&&i.validateRequired){i.suspendValidationMessage();try{if(!i.validateRequired())return}catch(e){}}}s=!0;setTimeout(()=>s=!1,300);setTimeout(()=>{this.setEditMode();this.getFieldViewList().forEach(e=>e.removeInlineEditLinks())},10)}};this.on("set-field-required",e=>t("required",e));this.on("set-field-option-list",e=>t("options",e));this.on("reset-field-option-list",e=>t("options",e))}initDynamicHandler(){let e=this.dynamicHandlerClassName||this.getMetadata().get(["clientDefs",this.scope,"dynamicHandler"]),s=r=>{this.listenTo(this.model,"change",(e,t)=>{"onChange"in r&&r.onChange.call(r,e,t);var i,s=e.changedAttributes();for(i in s){var a="onChange"+Espo.Utils.upperCaseFirst(i);a in r&&r[a].call(r,e,s[i],t)}});"init"in r&&r.init()};e&&this.wait(new Promise(i=>{Espo.loader.require(e,e=>{var t=this.dynamicHandler=new e(this);s(t);i()})}));var a=this.getMetadata().get(["clientDefs",this.scope,"dynamicHandlerList"])||[];if(a.length){let i=this,t=[];a.forEach(e=>{t.push(new Promise(t=>{Espo.loader.require(e,e=>{t(new e(i))})}))});this.wait(Promise.all(t).then(e=>{e.forEach(e=>{s(e)})}))}}initShortcuts(){if(this.shortcutKeys&&this.options.shortcutKeysEnabled){this.shortcutManager.add(this,this.shortcutKeys);this.once("remove",()=>{this.shortcutManager.remove(this)})}}setupFinal(){this.build();this.initShortcuts();this.options.focusForCreate||this.once("after:render",()=>this.focusOnFirstDiv())}setIsChanged(){this.isChanged=!0;this.recordHelper.setIsChanged(!0);this.confirmLeaveDisabled||this.setConfirmLeaveOut(!0)}setIsNotChanged(){this.isChanged=!1;this.recordHelper.setIsChanged(!1);this.confirmLeaveDisabled||this.setConfirmLeaveOut(!1)}switchToModelByIndex(e){var t=this.model.collection||this.collection;if(t){t=t.at(e);if(t){var i=t.id,s=this.entityType||this.scope;this.getRouter().navigate(`#${s}/view/`+i,{trigger:!1});this.getRouter().dispatch(s,"view",{id:i,model:t,indexOfRecord:e,rootUrl:this.options.rootUrl})}else console.error("Model is not found in collection by index.")}}actionPrevious(){this.model.abortLastFetch();if(this.model.collection){let t=this.model.collection;if(!(this.indexOfRecord<=0)||t.offset)if(0===this.indexOfRecord&&0<t.offset&&t.maxSize){t.offset=Math.max(0,t.offset-t.maxSize);t.fetch().then(()=>{var e=t.length-1;e<0||this.switchToModelByIndex(e)})}else{var e=this.indexOfRecord-1;this.switchToModelByIndex(e)}}}actionNext(){this.model.abortLastFetch();if(this.model.collection){var t=this.model.collection;if(!(!(this.indexOfRecord<t.total-1-t.offset)&&0<=t.total||-2===t.total&&this.indexOfRecord>=t.length-1-t.offset)){let e=this.indexOfRecord+1;e<=t.length-1-t.offset?this.switchToModelByIndex(e):t.fetch({more:!0,remove:!1}).then(()=>{this.switchToModelByIndex(e)})}}}actionViewPersonalData(){this.createView("viewPersonalData","views/personal-data/modals/personal-data",{model:this.model},e=>{e.render();this.listenToOnce(e,"erase",()=>{this.clearView("viewPersonalData");this.model.fetch()})})}actionViewFollowers(e){var t=this.getMetadata().get(["clientDefs",this.entityType,"relationshipPanels","followers","viewModalView"])||this.getMetadata().get(["clientDefs","User","modalViews","relatedList"])||"views/modals/followers-list",i=!this.getUser().isAdmin()&&"no"===this.getAcl().getPermissionLevel("followerManagementPermission")&&"no"===this.getAcl().getPermissionLevel("portalPermission"),s={model:this.model,link:"followers",scope:"User",title:this.translate("Followers"),filtersDisabled:!0,url:this.entityType+"/"+this.model.id+"/followers",createDisabled:!0,selectDisabled:i,rowActionsView:"views/user/record/row-actions/relationship-followers"};if(e.viewOptions)for(var a in e.viewOptions)s[a]=e.viewOptions[a];Espo.Ui.notifyWait();this.createView("modalRelatedList",t,s,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")});e.listenTo(this.model,"after:relate:followers",()=>{this.model.fetch()});e.listenTo(this.model,"after:unrelate:followers",()=>{this.model.fetch()})})}async actionPrintPdf(){var e=new r.default({entityType:this.entityType,onSelect:e=>{var t=e[0],t=`?entryPoint=pdf&entityType=${this.entityType}&entityId=`+this.model.id+"&templateId="+t.id;window.open(t,"_blank")}});await this.assignView("modal",e);await e.render()}afterSave(){this.isNew?Espo.Ui.success(this.translate("Created")):Espo.Ui.success(this.translate("Saved"));this.enableActionItems();this.setIsNotChanged();setTimeout(()=>{this.unblockUpdateWebSocket()},this.blockUpdateWebSocketPeriod)}beforeSave(){Espo.Ui.notify(this.translate("saving","messages"));this.blockUpdateWebSocket()}beforeBeforeSave(){this.disableActionItems()}afterSaveError(){this.enableActionItems()}afterNotModified(){var e=this.translate("notModified","messages");Espo.Ui.warning(e);this.enableActionItems();this.setIsNotChanged()}afterNotValid(){Espo.Ui.error(this.translate("Not valid"));this.enableActionItems()}errorHandlerDuplicate(e,t,i,s){Espo.Ui.notify(!1);this.createView("duplicate","views/modals/duplicate",{scope:this.entityType,duplicates:e,model:this.model},e=>{e.render();this.listenToOnce(e,"save",()=>{this.actionSave({options:{headers:{"X-Skip-Duplicate-Check":"true"}}}).then(()=>i()).catch(()=>s("error"))});this.listenToOnce(e,"cancel",()=>s("cancel"))});return!0}errorHandlerModified(e,t){Espo.Ui.notify(!1);let i=e.versionNumber,s=e.values||{};var a=Object.keys(s);let r=[];a.forEach(e=>{this.attributes[e]!==s[e]&&r.push(e)});0===r.length?setTimeout(()=>{this.model.set("versionNumber",i,{silent:!0});this.attributes.versionNumber=i;t.inline&&t.field?this.inlineEditSave(t.field):this.actionSave()},5):this.createView("dialog","views/modals/resolve-save-conflict",{model:this.model,attributeList:r,currentAttributes:Espo.Utils.cloneDeep(this.model.attributes),originalAttributes:Espo.Utils.cloneDeep(this.attributes),actualAttributes:Espo.Utils.cloneDeep(s)}).then(e=>{e.render();this.listenTo(e,"resolve",()=>{this.model.set("versionNumber",i,{silent:!0});this.attributes.versionNumber=i;for(var e in s)this.setInitialAttributeValue(e,s[e])})})}getMiddleView(){return this.getView("middle")}getSideView(){return this.getView("side")}getBottomView(){return this.getView("bottom")}setReadOnly(){this.readOnlyLocked||(this.readOnly=!0);var e=this.getBottomView(),e=(e&&"setReadOnly"in e&&e.setReadOnly(),this.getSideView());e&&"setReadOnly"in e&&e.setReadOnly();this.getFieldList().forEach(e=>{this.setFieldReadOnly(e)})}setNotReadOnly(t){this.readOnlyLocked||(this.readOnly=!1);var e=this.getBottomView(),e=(e&&"setNotReadOnly"in e&&e.setNotReadOnly(t),this.getSideView());e&&"setNotReadOnly"in e&&e.setNotReadOnly(t);this.getFieldList().forEach(e=>{t&&this.recordHelper.getFieldStateParam(e,"readOnly")||this.setFieldNotReadOnly(e)})}manageAccessEdit(e){if(!this.isNew){var t=this.getAcl().checkModel(this.model,"edit",!0);if(!t||this.readOnlyLocked){this.readOnly=!0;this.hideActionItem("edit");this.selfAssignAction&&this.hideActionItem("selfAssign")}else{this.showActionItem("edit");if(this.selfAssignAction){this.hideActionItem("selfAssign");!this.model.has("assignedUserId")||this.model.get("assignedUserId")||this.showActionItem("selfAssign")}if(!this.readOnlyLocked){this.readOnly&&e&&(this.isReady?this.setNotReadOnly(!0):this.on("ready",()=>this.setNotReadOnly(!0)));this.readOnly=!1}}null===t&&this.listenToOnce(this.model,"sync",()=>{this.model.trigger("acl-edit-ready");this.manageAccessEdit(!0)})}}manageAccessDelete(){if(!this.isNew){var e=this.getAcl().checkModel(this.model,"delete",!0);e?this.showActionItem("delete"):this.hideActionItem("delete");null===e&&this.listenToOnce(this.model,"sync",()=>{this.manageAccessDelete(!0)})}}manageAccessStream(){if(!this.isNew)if(~["no","own"].indexOf(this.getAcl().getLevel("User","read"))&&"no"===this.getAcl().getPermissionLevel("portalPermission"))this.hideActionItem("viewFollowers");else{var e=this.getAcl().checkModel(this.model,"stream",!0);e?this.showActionItem("viewFollowers"):this.hideActionItem("viewFollowers");null===e&&this.listenToOnce(this.model,"sync",()=>{this.manageAccessStream(!0)})}}manageAccess(){this.manageAccessEdit();this.manageAccessDelete();this.manageAccessStream()}addButton(e,t){var i=e.name;if(i){for(var s of this.buttonList)if(s.name===i)return;t?this.buttonList.unshift(e):this.buttonList.push(e)}}addDropdownItem(e,t){if(e){var i=e.name;if(i){for(var s of this.dropdownItemList)if(s.name===i)return;t?this.dropdownItemList.unshift(e):this.dropdownItemList.push(e)}}}addButtonEdit(e,t){var i=e.name;if(i){for(var s of this.buttonEditList)if(s.name===i)return;t?this.buttonEditList.unshift(e):this.buttonEditList.push(e)}}enableButtons(){this.allActionItemsDisabled=!1;this.$el.find(".button-container .actions-btn-group .action").removeAttr("disabled").removeClass("disabled");this.$el.find(".button-container .actions-btn-group .dropdown-toggle").removeAttr("disabled").removeClass("disabled");this.buttonList.filter(e=>e.disabled).forEach(e=>{this.$detailButtonContainer.find(`button.action[data-action="${e.name}"]`).addClass("disabled").attr("disabled","disabled")});this.buttonEditList.filter(e=>e.disabled).forEach(e=>{this.$detailButtonContainer.find(`button.action[data-action="${e.name}"]`).addClass("disabled").attr("disabled","disabled")});this.dropdownItemList.filter(e=>e.disabled).forEach(e=>{this.$detailButtonContainer.find(`li > .action[data-action="${e.name}"]`).parent().addClass("disabled").attr("disabled","disabled")});this.dropdownEditItemList.filter(e=>e.disabled).forEach(e=>{this.$detailButtonContainer.find(`li > .action[data-action="${e.name}"]`).parent().addClass("disabled").attr("disabled","disabled")})}disableButtons(){this.allActionItemsDisabled=!0;this.$el.find(".button-container .actions-btn-group .action").attr("disabled","disabled").addClass("disabled");this.$el.find(".button-container .actions-btn-group .dropdown-toggle").attr("disabled","disabled").addClass("disabled")}removeActionItem(e){this.removeButton(e)}removeButton(e){for(var[t,i]of this.buttonList.entries())if(i.name===e){this.buttonList.splice(t,1);break}for(var[s,a]of this.dropdownItemList.entries())if(a.name===e){this.dropdownItemList.splice(s,1);break}if(this.isRendered()){var r=this.$el.find(".detail-button-container"),o=r.find(`ul > li > a.action[data-action="${e}"]`);if(o.length){o.parent().remove();r.find("ul > .divider:last-child").remove()}else{o=r.find(`button.action[data-action="${e}"]`);o.length&&o.remove()}}}convertDetailLayout(t){var i=[],r=this.getSelector()||"#"+this.id;this.panelFieldListMap={};let s=-1;for(let e=0;e<t.length;e++){var o,n,l=t[e],d={},h=l.tabBreak||0===e;h&&s++;if("customLabel"in l){d.label=l.customLabel;d.label&&(d.label=this.translate(d.label,"panelCustomLabels",this.entityType))}else{d.label=l.label||null;d.label&&(d.label="$"===d.label[0]?this.translate(d.label.substring(1),"panels",this.entityType):this.translate(d.label,"labels",this.entityType))}d.name=l.name||"panel-"+e.toString();d.style=l.style||"default";d.rows=[];d.tabNumber=s;d.noteText=l.noteText;d.noteStyle=l.noteStyle||"info";if(d.noteText){if(d.noteText.startsWith("$")&&!d.noteText.includes(" ")){var c=d.noteText.substring(1);d.noteText=this.translate(c,"panelNotes",this.entityType)}d.noteText=this.getHelper().transformMarkdownText(d.noteText)}this.middlePanelDefs[d.name]={name:d.name,style:d.style,tabNumber:d.tabNumber,tabBreak:h,tabLabel:l.tabLabel};this.middlePanelDefsList.push(this.middlePanelDefs[d.name]);l.dynamicLogicVisible&&this.dynamicLogic&&this.dynamicLogic.addPanelVisibleCondition(d.name,l.dynamicLogicVisible);l.dynamicLogicStyled&&this.dynamicLogic&&this.dynamicLogic.addPanelStyledCondition(d.name,l.dynamicLogicStyled);if(l.hidden&&0===s){d.hidden=!0;this.hidePanel(d.name);this.underShowMoreDetailPanelList=this.underShowMoreDetailPanelList||[];this.underShowMoreDetailPanelList.push(d.name)}let a="rows";if(l.columns){a="columns";d.columns=[]}d.name&&(this.panelFieldListMap[d.name]=[]);for([o,n]of l[a].entries()){var u,m=[];for(u of n)if(!1===u)m.push(!1);else{let i=u.view,s=u.name;!s&&i&&"object"==typeof i&&(s=i.name);if(s){let e;if(i&&"object"==typeof i){i.model=this.model;i.mode=this.fieldsMode;this.readOnly&&i.setReadOnly();e=`.field[data-name="${s}"]`}d.name&&this.panelFieldListMap[d.name].push(s);var p=u.type||this.model.getFieldType(s)||"base",f=(i=i||this.model.getFieldParam(s,"view")||this.getFieldManager().getViewName(p),{fullSelector:r+' .middle .field[data-name="'+s+'"]',defs:{name:s,params:u.params||{}},mode:this.fieldsMode});this.readOnly&&(f.readOnly=!0);if(u.readOnly){f.readOnly=!0;f.readOnlyLocked=!0}this.readOnlyLocked&&(f.readOnlyLocked=!0);(this.inlineEditDisabled||u.inlineEditDisabled)&&(f.inlineEditDisabled=!0);let t=u.fullWidth||!1;t||1===l[a][o].length&&(t=!0);this.recordHelper.getFieldStateParam(s,"hidden")&&(f.disabled=!0);this.recordHelper.getFieldStateParam(s,"hiddenLocked")&&(f.disabledLocked=!0);this.recordHelper.getFieldStateParam(s,"readOnly")&&(f.readOnly=!0);!f.readOnlyLocked&&this.recordHelper.getFieldStateParam(s,"readOnlyLocked")&&(f.readOnlyLocked=!0);if(null!==this.recordHelper.getFieldStateParam(s,"required")){f.defs.params=f.defs.params||{};f.defs.params.required=this.recordHelper.getFieldStateParam(s,"required")}this.recordHelper.hasFieldOptionList(s)&&(f.customOptionList=this.recordHelper.getFieldOptionList(s));f.validateCallback=()=>this.validateField(s);f.recordHelper=this.recordHelper;f.dataObject=this.dataObject;if(u.options)for(var g in u.options)void 0===f[g]&&(f[g]=u.options[g]);p={name:s+"Field",view:i,field:s,fullSelector:r+' .middle .field[data-name="'+s+'"]',fullWidth:t,options:f};e&&(p.selector=e);if("labelText"in u){f.labelText=u.labelText;p.customLabel=u.labelText}"customLabel"in u&&(p.customLabel=u.customLabel);"label"in u&&(p.label=u.label);i&&"object"==typeof i&&!p.customLabel&&!p.label&&i.getLabelText()&&(p.customLabel=i.getLabelText());"customCode"in u&&(p.customCode=u.customCode);"noLabel"in u&&(p.noLabel=u.noLabel);"span"in u&&(p.span=u.span);m.push(p)}else console.warn("No 'name' specified in detail layout cell.")}d[a].push(m)}i.push(d)}return i}getGridLayout(t){if(null!==this.gridLayout)t(this.gridLayout);else if(this.detailLayout){this.gridLayout={type:this.gridLayoutType,layout:this.convertDetailLayout(this.detailLayout)};t(this.gridLayout)}else this.getHelper().layoutManager.get(this.entityType,this.layoutName,e=>{if("function"==typeof this.modifyDetailLayout){e=Espo.Utils.cloneDeep(e);this.modifyDetailLayout(e)}this.detailLayout=e;this.gridLayout={type:this.gridLayoutType,layout:this.convertDetailLayout(this.detailLayout)};t(this.gridLayout)})}createSideView(){var e=this.getSelector()||"#"+this.id;this.createView("side",this.sideView,{model:this.model,scope:this.scope,fullSelector:e+" .side",type:this.type,readOnly:this.readOnly,inlineEditDisabled:this.inlineEditDisabled,recordHelper:this.recordHelper,recordViewObject:this,isReturn:this.options.isReturn,dataObject:this.dataObject})}createMiddleView(t){let i=this.getSelector()||"#"+this.id;this.waitForView("middle");this.getGridLayout(e=>{this.hasTabs()&&this.options.isReturn&&this.isStoredTabForThisRecord()&&this.selectStoredTab();this.createView("middle",this.middleView,{model:this.model,scope:this.scope,type:this.type,layoutDefs:e,fullSelector:i+" .middle",layoutData:{model:this.model},recordHelper:this.recordHelper,recordViewObject:this,panelFieldListMap:this.panelFieldListMap},t)})}createBottomView(){var e=this.getSelector()||"#"+this.id;this.createView("bottom",this.bottomView,{model:this.model,scope:this.scope,fullSelector:e+" .bottom",readOnly:this.readOnly,type:this.type,inlineEditDisabled:this.inlineEditDisabled,recordHelper:this.recordHelper,recordViewObject:this,portalLayoutDisabled:this.portalLayoutDisabled,isReturn:this.options.isReturn,dataObject:this.dataObject})}build(e){!this.sideDisabled&&this.sideView&&this.createSideView();this.middleView&&this.createMiddleView(e);!this.bottomDisabled&&this.bottomView&&this.createBottomView()}exitAfterCreate(){if(this.returnAfterCreate||!this.model.id)return!1;var e="#"+this.scope+"/view/"+this.model.id;this.getRouter().navigate(e,{trigger:!1});this.getRouter().dispatch(this.scope,"view",{id:this.model.id,rootUrl:this.options.rootUrl,model:this.model,isAfterCreate:!0});return!0}exit(e){if(e){var t="exitAfter"+Espo.Utils.upperCaseFirst(e);if(t in this){t=this[t]();if(t)return}}let i,s;if(this.returnUrl)i=this.returnUrl;else{if("delete"===e){i=this.options.rootUrl||"#"+this.scope;if(this.options.rootUrl)return this.getRouter().navigate(i,{trigger:!0}),void 0;this.getRouter().navigate(i,{trigger:!1});this.getRouter().dispatch(this.scope,null,{isReturn:!0});return}if(this.model.id){i=`#${this.scope}/view/`+this.model.id;if(!this.returnDispatchParams){this.getRouter().navigate(i,{trigger:!1});s={id:this.model.id,model:this.model};this.options.rootUrl&&(s.rootUrl=this.options.rootUrl);this.getRouter().dispatch(this.scope,"view",s)}}else i=this.options.rootUrl||"#"+this.scope}if(this.returnDispatchParams){var t=this.returnDispatchParams.controller,a=this.returnDispatchParams.action;s=this.returnDispatchParams.options||{};this.getRouter().navigate(i,{trigger:!1});this.getRouter().dispatch(t,a,s)}else this.getRouter().navigate(i,{trigger:!0})}subscribeToWebSocket(){var e=`recordUpdate.${this.entityType}.`+this.model.id;this.recordUpdateWebSocketTopic=e;this.isSubscribedToWebSocket=!0;this.webSocketManager.subscribe(e,()=>this._webSocketDebounceHelper.process())}unsubscribeFromWebSocket(){if(this.isSubscribedToWebSocket){this.webSocketManager.unsubscribe(this.recordUpdateWebSocketTopic);this.isSubscribedToWebSocket=!1}}async handleRecordUpdate(){if(!this.updateWebSocketIsBlocked)if(this.inlineEditModeIsOn||this.mode===this.MODE_EDIT){var e=this.model.clone();await e.fetch();!this.inlineEditModeIsOn&&this.mode!==this.MODE_EDIT||(this.updatedAttributes=Espo.Utils.cloneDeep(e.attributes))}else await this.model.fetch({highlight:!0})}blockUpdateWebSocket(){var e=0<arguments.length&&void 0!==arguments[0]&&arguments[0];this.updateWebSocketIsBlocked=!0;e&&setTimeout(()=>{this.unblockUpdateWebSocket()},this.blockUpdateWebSocketPeriod)}unblockUpdateWebSocket(){this.updateWebSocketIsBlocked=!1}showMoreDetailPanels(){this.hidePanel("showMoreDelimiter");this.underShowMoreDetailPanelList.forEach(e=>{this.showPanel(e)})}getTabCount(){if(!this.hasTabs())return 0;let t=1;(this.detailLayout||[]).forEach(e=>{e.tabBreak&&t++});return t}hasTabs(){if(void 0!==this._hasMiddleTabs)return this._hasMiddleTabs;if(this.detailLayout){for(var e of this.detailLayout)if(e.tabBreak)return this._hasMiddleTabs=!0,!0;this._hasMiddleTabs=!1}return!1}getMiddleTabDataList(){let a=this.currentTab,r=this.middlePanelDefsList;return r.filter((e,t)=>0===t||e.tabBreak).map((e,t)=>{let i=e.tabLabel,s=!1;0<t&&(s=-1===r.filter(e=>e.tabNumber===t).findIndex(e=>!this.recordHelper.getPanelStateParam(e.name,"hidden")));i?"$label:"===i.substring(0,7)?i=this.translate(i.substring(7),"labels",this.scope):"$"===i[0]&&(i=this.translate(i.substring(1),"tabs",this.scope)):i=0===t?this.translate("Overview"):(t+1).toString();return{label:i,isActive:a===t,hidden:s}})}selectTab(e){this.currentTab=e;$(".popover.in").removeClass("in");this.whenRendered().then(()=>{this.$el.find(".middle-tabs > button").removeClass("active");this.$el.find(`.middle-tabs > button[data-tab="${e}"]`).addClass("active");this.$el.find(".middle > .panel[data-tab]").addClass("tab-hidden");this.$el.find(`.middle > .panel[data-tab="${e}"]`).removeClass("tab-hidden");this.adjustMiddlePanels();this.recordHelper.trigger("panel-show")});this.storeTab()}storeTab(){this.getSessionStorage().set("tab_middle",this.currentTab);this.getSessionStorage().set("tab_middle_record",this.entityType+"_"+this.model.id)}selectStoredTab(){var e=this.getSessionStorage().get("tab_middle");0<e&&this.selectTab(e)}isStoredTabForThisRecord(){return this.getSessionStorage().get("tab_middle_record")===this.entityType+"_"+this.model.id}onInvalid(e){if(this.hasTabs()){var t,s=[];for(t of e){var i=this.getMiddleView().getFieldView(t);if(i){i=i.$el.closest(".panel.tab-hidden").attr("data-tab"),i=parseInt(i);-1===s.indexOf(i)&&s.push(i)}}if(s.length){let i=this.$el.find(".middle-tabs");s.forEach(e=>{let t=i.find(`> [data-tab="${e.toString()}"]`);t.addClass("invalid");t.one("click",()=>{t.removeClass("invalid")})})}}}controlTabVisibilityShow(e){this.hasTabs()&&0!==e&&(this.isBeingRendered()?this.once("after:render",()=>this.controlTabVisibilityShow(e)):this.$el.find(`.middle-tabs > [data-tab="${e.toString()}"]`).removeClass("hidden"))}controlTabVisibilityHide(t){if(this.hasTabs()&&0!==t)if(this.isBeingRendered())this.once("after:render",()=>this.controlTabVisibilityHide(t));else{var e=this.middlePanelDefsList.filter(e=>e.tabNumber===t),e=-1===e.findIndex(e=>!this.recordHelper.getPanelStateParam(e.name,"hidden"));if(e){e=this.$el.find(`.middle-tabs > [data-tab="${t.toString()}"]`);e.addClass("hidden");this.currentTab===t&&this.selectTab(0)}}}adjustMiddlePanels(){if(this.isRendered()&&this.$middle.length){var e=this.$middle.find("> .panel");let s=this.$bottom?this.$bottom.find("> .panel"):null,a=(e.removeClass("first").removeClass("last").removeClass("in-middle"),e.filter(":not(.tab-hidden):not(.hidden)"));a.each((e,t)=>{var i=$(t);e===a.length-1?s&&s.first().hasClass("sticked")?0===e?i.addClass("first"):i.addClass("in-middle"):0!==e&&i.addClass("last"):0<e&&e<a.length-1?i.addClass("in-middle"):0===e&&i.addClass("first")})}}adjustButtons(){var e=this.$detailButtonContainer.filter(".record-buttons").find("button.btn"),e=(e.removeClass("radius-left").removeClass("radius-right"),e.filter("button:not(.hidden)"));e.first().addClass("radius-left");e.last().addClass("radius-right");this.adjustEditButtons()}adjustEditButtons(){var e=this.$detailButtonContainer.filter(".edit-buttons").find("button.btn"),e=(e.removeClass("radius-left").removeClass("radius-right"),e.filter("button:not(.hidden)"));e.first().addClass("radius-left");e.last().addClass("radius-right")}initElementReferences(){if(!this.$detailButtonContainer||!this.$detailButtonContainer.length){this.$detailButtonContainer=this.$el.find(".detail-button-container");this.$dropdownItemListButton=this.$detailButtonContainer.find(".dropdown-item-list-button");this.$dropdownEditItemListButton=this.$detailButtonContainer.find(".dropdown-edit-item-list-button")}}focusForEdit(){this.$el.find(".field:not(.hidden) .form-control:not([disabled])").first().focus()}focusForCreate(){this.$el.find(".form-control:not([disabled])").first().focus()}handleShortcutKeyCtrlEnter(e){var t=this.shortcutKeyCtrlEnterAction;if(!this.inlineEditModeIsOn&&!this.buttonsDisabled&&t&&this.mode===this.MODE_EDIT&&this.hasAvailableActionItem(t)){e.preventDefault();e.stopPropagation();document.activeElement instanceof HTMLInputElement&&document.activeElement.dispatchEvent(new Event("change",{bubbles:!0}));t="action"+Espo.Utils.upperCaseFirst(t);this[t]()}}handleShortcutKeyCtrlS(e){if(!this.inlineEditModeIsOn&&!this.buttonsDisabled){e.preventDefault();e.stopPropagation();this.mode===this.MODE_EDIT&&this.saveAndContinueEditingAction&&this.hasAvailableActionItem("saveAndContinueEditing")&&this.actionSaveAndContinueEditing()}}handleShortcutKeyCtrlSpace(e){if(!this.inlineEditModeIsOn&&!this.buttonsDisabled&&this.type===this.TYPE_DETAIL&&this.mode===this.MODE_DETAIL&&!h.default.isKeyEventInTextInput(e)&&this.hasAvailableActionItem("edit")){e.preventDefault();e.stopPropagation();this.actionEdit();this.editModeDisabled||setTimeout(()=>this.focusForEdit(),200)}}handleShortcutKeyEscape(e){if(!this.inlineEditModeIsOn&&!this.buttonsDisabled&&this.type===this.TYPE_DETAIL&&this.mode===this.MODE_EDIT){e.preventDefault();e.stopPropagation();this.model.set(this.fetch());this.isChanged?this.confirm(this.translate("confirmLeaveOutMessage","messages")).then(()=>this.actionCancelEdit()):this.actionCancelEdit()}}handleShortcutKeyCtrlAltEnter(e){}handleShortcutKeyControlBackslash(i){if(this.hasTabs()){var s=this.$el.find(".middle-tabs > button:not(.hidden)");if(1!==s.length){i.preventDefault();i.stopPropagation();let e=s.toArray().findIndex(e=>$(e).hasClass("active"));e++;e>=s.length&&(e=0);s=$(s.get(e));let t=parseInt(s.attr("data-tab"));this.selectTab(t);this.mode===this.MODE_EDIT?setTimeout(()=>{this.$middle.find(`.panel[data-tab="${t}"] .cell:not(.hidden)`).first().focus()},50):this.$el.find(`.middle-tabs button[data-tab="${t}"]`).focus()}}}handleShortcutKeyControlArrowLeft(e){if(!(this.inlineEditModeIsOn||this.buttonsDisabled||this.navigateButtonsDisabled||this.type!==this.TYPE_DETAIL||this.mode!==this.MODE_DETAIL||h.default.isKeyEventInTextInput(e))){var t=this.$el.find('button[data-action="previous"]');if(t.length&&!t.hasClass("disabled")){e.preventDefault();e.stopPropagation();this.actionPrevious()}}}handleShortcutKeyControlArrowRight(e){if(!(this.inlineEditModeIsOn||this.buttonsDisabled||this.navigateButtonsDisabled||this.type!==this.TYPE_DETAIL||this.mode!==this.MODE_DETAIL||h.default.isKeyEventInTextInput(e))){var t=this.$el.find('button[data-action="next"]');if(t.length&&!t.hasClass("disabled")){e.preventDefault();e.stopPropagation();this.actionNext()}}}getMode(){return this.mode}setupReuse(){this.initShortcuts()}static#_=c=()=>[u,m,p,f]=v(this,[],[[(0,n.inject)(l.default),0,"shortcutManager"],[(0,n.inject)(d.default),0,"webSocketManager"]],0,void 0,t.default).e}c();e.default=y});define("views/fields/base",["exports","view","ui/select","jquery"],function(e,t,i,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);o=s(o);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e);this.name=e.name;this.labelText=e.labelText}type="base";listTemplate="fields/base/list";listLinkTemplate="fields/base/list-link";detailTemplate="fields/base/detail";editTemplate="fields/base/edit";searchTemplate="fields/base/search";listTemplateContent;detailTemplateContent;editTemplateContent;validations=["required"];MODE_LIST="list";MODE_LIST_LINK="listLink";MODE_DETAIL="detail";MODE_EDIT="edit";MODE_SEARCH="search";name;paramList;defs=null;params=null;mode="detail";searchParams=null;inlineEditDisabled=!1;disabled=!1;readOnly=!1;readOnlyLocked=!1;labelText;attributeList=null;initialAttributes=null;VALIDATION_POPOVER_TIMEOUT=3e3;validateCallback;validationElementSelector;recordHelper=null;$label=null;$element=null;mainInputElement=null;initialSearchIsNotIdle=!1;entityType=null;lastValidationMessage=null;dataObject;isRequired(){return this.params.required}get$cell(){return this.$el.parent()}getCellElement(){return this.get$cell().get(0)??null}isInlineEditMode(){return!!this._isInlineEditMode}setDisabled(e){this.disabled=!0;e&&(this.disabledLocked=!0)}setNotDisabled(){this.disabledLocked||(this.disabled=!1)}setRequired(){this.params.required=!0;this.isEditMode()&&(this.isRendered()?this.showRequiredSign():this.once("after:render",()=>{this.showRequiredSign()}))}setNotRequired(){this.params.required=!1;this.get$cell().removeClass("has-error");this.isEditMode()&&(this.isRendered()?this.hideRequiredSign():this.once("after:render",()=>{this.hideRequiredSign()}))}setReadOnly(e){if(this.readOnlyLocked)return Promise.reject();this.readOnly=!0;e&&(this.readOnlyLocked=!0);return this.isReady?this.isEditMode()?this.isInlineEditMode()?this.inlineEditClose():this.setDetailMode().then(()=>this.reRender()):Promise.resolve():this.mode&&this._initCalled?this.setDetailMode():(this.mode="detail",Promise.resolve())}setNotReadOnly(){this.readOnlyLocked||(this.readOnly=!1)}getLabelElement(){this.$label&&this.$label.get(0)&&!document.contains(this.$label.get(0))&&(this.$label=void 0);this.$label&&this.$label.length||(this.$label=this.$el.parent().children("label"));return this.$label}hide(){this.$el.addClass("hidden");var e=this.get$cell();e.children("label").addClass("hidden");e.addClass("hidden-cell")}show(){this.$el.removeClass("hidden");var e=this.get$cell();e.children("label").removeClass("hidden");e.removeClass("hidden-cell")}data(){var e={scope:this.model.entityType||this.model.name,name:this.name,defs:this.defs,params:this.params,value:this.getValueForDisplay()};if(this.isSearchMode()){e.searchParams=this.searchParams;e.searchData=this.searchData;e.searchValues=this.getSearchValues();e.searchType=this.getSearchType();e.searchTypeList=this.getSearchTypeList()}return e}getValueForDisplay(){return this.model.get(this.name)}isReadMode(){return this.mode===this.MODE_LIST||this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST_LINK}isListMode(){return this.mode===this.MODE_LIST||this.mode===this.MODE_LIST_LINK}isDetailMode(){return this.mode===this.MODE_DETAIL}isEditMode(){return this.mode===this.MODE_EDIT}isSearchMode(){return this.mode===this.MODE_SEARCH}setDetailMode(){return this.setMode(this.MODE_DETAIL)||Promise.resolve()}setEditMode(){return this.setMode(this.MODE_EDIT)||Promise.resolve()}setMode(e){var t=this.mode!==e&&this.mode,i=this.mode,s=(this.mode=e,e+"Template");s in this||(this[s]="fields/"+Espo.Utils.camelCaseToHyphen(this.type)+"/"+this.mode);this._hasTemplateContent||this.setTemplate(this[s]);s=e+"TemplateContent";this._hasTemplateContent||s in this&&null!=this[s]&&this.setTemplateContent(this[s]);if(t)return i&&this.trigger("mode-changed"),this._onModeSet();return Promise.resolve()}prepare(){}_onModeSet(){return this.isListMode()?this.onListModeSet()||Promise.resolve():this.isDetailMode()?this.onDetailModeSet()||Promise.resolve():this.isEditMode()&&this.onEditModeSet()||Promise.resolve()}onDetailModeSet(){return this.prepare()}onEditModeSet(){return this.prepare()}onListModeSet(){return this.prepare()}_initCalled=!1;init(){this.validations=Espo.Utils.clone(this.validations);this.searchTypeList=Espo.Utils.clone(this.searchTypeList);this._hasTemplateContent=!!this.templateContent;this.defs=this.options.defs||{};this.name=this.options.name||this.defs.name;this.params=this.options.params||this.defs.params||{};this.validateCallback=this.options.validateCallback;this.fieldType=this.model.getFieldParam(this.name,"type")||this.type;this.entityType=this.model.entityType||this.model.name;this.recordHelper=this.options.recordHelper??null;this.dataObject=Espo.Utils.clone(this.options.dataObject||{});this.labelText||(this.labelText=this.translate(this.name,"fields",this.entityType));var e=this.paramList||this.getFieldManager().getParamList(this.type).map(e=>e.name);e.forEach(e=>{if(!(e in this.params)){this.params[e]=this.model.getFieldParam(this.name,e);void 0===this.params[e]&&(this.params[e]=null)}});["inlineEditDisabled"].forEach(e=>{this.params[e]=this.model.getFieldParam(this.name,e)||null});this.readOnly=this.readOnly||this.params.readOnly||this.model.getFieldParam(this.name,"readOnly")||this.model.getFieldParam(this.name,"clientReadOnly");!this.model.isNew()&&this.model.getFieldParam(this.name,"readOnlyAfterCreate")&&(this.readOnly=!0);this.readOnlyLocked=this.options.readOnlyLocked||this.readOnly;this.inlineEditDisabled=this.options.inlineEditDisabled||this.params.inlineEditDisabled||this.inlineEditDisabled;this.readOnly=this.readOnlyLocked||this.options.readOnly||!1;this.tooltip=this.options.tooltip||this.params.tooltip||this.model.getFieldParam(this.name,"tooltip")||this.tooltip;this.options.readOnlyDisabled&&(this.readOnly=!1);this.disabledLocked=this.options.disabledLocked||!1;this.disabled=this.disabledLocked||this.options.disabled||this.disabled;let t=this.options.mode||this.mode||this.MODE_DETAIL;t===this.MODE_EDIT&&this.readOnly&&(t=this.MODE_DETAIL);this.mode=void 0;this._initCalled=!0;this.wait(this.setMode(t));if(this.isSearchMode()){this.searchParams=_.clone(this.options.searchParams||{});this.searchData={};this.setupSearch();this.events["keydown."+this.cid]=e=>{"Control+Enter"===Espo.Utils.getKeyFromKeyEvent(e)&&this.trigger("search")}}this.on("highlight",()=>{let e=this.get$cell();e.addClass("highlighted");e.addClass("transition");setTimeout(()=>{e.removeClass("highlighted")},3e3);setTimeout(()=>{e.removeClass("transition")},5e3)});this.on("invalid",()=>{let e=this.get$cell();e.addClass("has-error");this.$el.one("click",()=>{e.removeClass("has-error")});this.once("render",()=>{e.removeClass("has-error")})});this.on("after:render",()=>{if(this.isEditMode())this.hasRequiredMarker()?this.showRequiredSign():this.hideRequiredSign();else{this.hasRequiredMarker()&&this.hideRequiredSign();if(this.isSearchMode()){var e=this.$el.find("select.search-type");e.length&&i.default.init(e,{matchAnyWord:!0})}}});(this.isDetailMode()||this.isEditMode())&&this.tooltip&&this.initTooltip();!this.isDetailMode()||this.inlineEditDisabled||this.listenToOnce(this,"after:render",()=>this.initInlineEdit());if(!this.isSearchMode()){this.attributeList=this.getAttributeList();this.listenTo(this.model,"change",(t,i)=>{if(!i.ui||i.fromField&&i.fromField!==this.name){let e=!1;for(var s of this.getAttributeList())if(t.hasChanged(s)){e=!0;break}if(e&&i.fromField!==this.name&&!(i.skipReRenderInEditMode&&this.isEditMode()||i.skipReRender||this.isEditMode()&&this.toSkipReRenderOnChange())){let t=()=>{if(this.isRendered()||this.isBeingRendered()){this.reRender();i.highlight&&this.trigger("highlight")}};if(this.isReady){var a=this.prepare();a?a.then(()=>t()):t()}else this.once("ready",()=>{var e=this.prepare();e&&e.then(()=>t())})}}});this.listenTo(this,"change",()=>{var e=this.fetch();this.model.set(e,{ui:!0,fromView:this,fromField:this.name,action:"ui"})})}}highlight(){var e=this.get$cell();e.addClass("highlighted")}setupFinal(){this.wait(this._onModeSet())}initTooltip(){let s;this.once("after:render",()=>{s=(0,o.default)("<a>").attr("role","button").attr("tabindex","-1").addClass("text-muted field-info").append((0,o.default)("<span>").addClass("fas fa-info-circle"));var e=this.getLabelElement();e.append(" ");this.getLabelElement().append(s);let t=this.options.tooltipText||this.tooltipText;if(!t&&"string"==typeof this.tooltip){var[e,i]=this.tooltip.includes(".")?this.tooltip.split("."):[this.entityType,this.tooltip];t=this.translate(i,"tooltips",e)}t=t||this.translate(this.name,"tooltips",this.entityType)||"";t=this.getHelper().transformMarkdownText(t,{linksInNewTab:!0}).toString();Espo.Ui.popover(s,{placement:"bottom",content:t,preventDestroyOnRender:!0},this)})}showRequiredSign(){var e=this.getLabelElement();let t=e.find("span.required-sign");if(e.length&&!t.length){var i=e.find("span.label-text");(0,o.default)('<span class="required-sign"> *</span>').insertAfter(i);t=e.find("span.required-sign")}t.show()}hideRequiredSign(){var e=this.getLabelElement(),e=e.find("span.required-sign");e.hide()}getSearchParamsData(){return this.searchParams.data||{}}getSearchValues(){return this.getSearchParamsData().values||{}}getSearchType(){return this.getSearchParamsData().type||this.searchParams.type}getSearchTypeList(){return this.searchTypeList}initInlineEdit(){var e=this.getCellElement();let t=document.createElement("a");t.role="button";t.classList.add("pull-right","inline-edit-link","hidden");t.append((()=>{var e=document.createElement("span");e.classList.add("fas","fa-pencil-alt","fa-sm");return e})());if(e){e.prepend(t);t.addEventListener("click",()=>this.inlineEdit());e.addEventListener("mouseenter",e=>{e.stopPropagation();this.disabled||this.readOnly||this.isDetailMode()&&t.classList.remove("hidden")});e.addEventListener("mouseleave",e=>{e.stopPropagation();this.isDetailMode()&&t.classList.add("hidden")});this.on("after:render",()=>{this.isDetailMode()||t.classList.add("hidden")})}else this.listenToOnce(this,"after:render",()=>this.initInlineEdit())}initElement(){var e,t,i;this.mainInputElement=(null==(e=this.element)?void 0:e.querySelector(`[data-name="${this.name}"]`))??(null==(t=this.element)?void 0:t.querySelector(`[name="${this.name}"]`))??(null==(i=this.element)?void 0:i.querySelector(".main-element"));this.$element=this.mainInputElement?(0,o.default)(this.mainInputElement):(0,o.default)();this.isEditMode()&&this.$element.on("change",()=>{this.trigger("change")})}afterRender(){(this.isEditMode()||this.isSearchMode())&&this.initElement();this.isReadMode()&&this.afterRenderRead();this.isListMode()&&this.afterRenderList();this.isDetailMode()&&this.afterRenderDetail();this.isEditMode()&&this.afterRenderEdit();this.isSearchMode()&&this.afterRenderSearch()}afterRenderRead(){}afterRenderList(){}afterRenderDetail(){}afterRenderEdit(){}afterRenderSearch(){}setup(){}setupSearch(){}getAttributeList(){return this.getFieldManager().getAttributeList(this.fieldType,this.name)}inlineEditSave(s){s=s||{};if(this.recordHelper)this.recordHelper.trigger("inline-edit-save",this.name,s);else{var a,r=this.fetch();let e=this.model,t=this.initialAttributes;e.set(r,{silent:!0});r=e.attributes;let i=!1;for(a in r)_.isEqual(t[a],r[a])||((i=i||{})[a]=r[a]);i||this.inlineEditClose();var o=this.validateCallback?this.validateCallback():this.validate();if(o){Espo.Ui.error(this.translate("Not valid"));e.set(t,{silent:!0})}else{Espo.Ui.notify(this.translate("saving","messages"));e.save(i,{patch:!0}).then(()=>{this.trigger("after:inline-save");this.trigger("after:save");e.trigger("after:save");Espo.Ui.success(this.translate("Saved"))}).catch(()=>{Espo.Ui.error(this.translate("Error occurred"));e.set(t,{silent:!0});this.reRender()});s.bypassClose||this.inlineEditClose(!0)}}}removeInlineEditLinks(){var e=this.get$cell();e.find(".inline-save-link").remove();e.find(".inline-cancel-link").remove();e.find(".inline-edit-link").addClass("hidden")}addInlineEditLinks(){var e=this.get$cell(),t=document.createElement("a");t.role="button";t.tabIndex=-1;t.title=this.translate("Update")+" · Ctrl+Enter";t.innerHTML='<span class="fas fa-check"></span>';t.classList.add("inline-save-link");var i=document.createElement("a");i.role="button";i.tabIndex=-1;i.title=this.translate("Cancel")+" · Esc";i.innerHTML='<span class="fas fa-arrow-right-to-bracket"></span>';i.classList.add("inline-cancel-link");e.prepend(t);e.prepend(i);e.find(".inline-edit-link").addClass("hidden");t.onclick=()=>this.inlineEditSave();i.onclick=()=>this.inlineEditClose()}setIsInlineEditMode(e){this._isInlineEditMode=e}inlineEditClose(e){this.trigger("inline-edit-off",{noReset:e});this.recordHelper&&this.recordHelper.off("continue-inline-edit");this.$el.off("keydown.inline-edit");this._isInlineEditMode=!1;if(!this.isEditMode())return Promise.resolve();e||this.model.set(this.initialAttributes,{skipReRenderInEditMode:!0,action:"cancel-edit"});var t=this.setDetailMode().then(()=>this.reRender(!0)).then(()=>this.removeInlineEditLinks());this.trigger("after:inline-edit-off",{noReset:e});return t}async inlineEdit(){this.recordHelper&&this.recordHelper.isChanged()&&await this.confirm({message:this.translate("changesLossConfirmation","messages"),cancelCallback:this.recordHelper.trigger("continue-inline-edit")});this.trigger("edit",this);this.initialAttributes=this.model.getClonedAttributes();this._isInlineEditMode=!0;this.trigger("inline-edit-on");await this.setEditMode();await this.reRender(!0);await this.addInlineEditLinks();this.recordHelper&&this.recordHelper.on("continue-inline-edit",()=>this.focusOnInlineEdit());this.$el.on("keydown.inline-edit",e=>{var t=Espo.Utils.getKeyFromKeyEvent(e);if("Control+Enter"===t){e.stopPropagation();document.activeElement instanceof HTMLInputElement&&document.activeElement.dispatchEvent(new Event("change",{bubbles:!0}));this.fetchToModel();this.inlineEditSave();setTimeout(()=>{this.get$cell().focus()},100)}else if("Escape"===t){e.stopPropagation();this.inlineEditClose().then(()=>{this.get$cell().focus()})}else if("Control+KeyS"===t){e.preventDefault();e.stopPropagation();this.fetchToModel();this.inlineEditSave({bypassClose:!0})}});setTimeout(()=>this.focusOnInlineEdit(),10)}focusOnInlineEdit(){var e=this.$element&&this.$element.length?this.$element:this.$el.find(".form-control").first();e&&e.first().focus()}suspendValidationMessage(e){this.validationMessageSuspended=!0;setTimeout(()=>this.validationMessageSuspended=!1,e||200)}showValidationMessage(i,e,s){if(!this.validationMessageSuspended){let t;e=e||this.validationElementSelector||".main-element";t="string"==typeof e||e instanceof String?this.$el.find(e):(0,o.default)(e);!t.length&&this.$element&&(t=this.$element);t.length||(t=this.$el);if(t.length){var a=t.get(0).getBoundingClientRect();this.lastValidationMessage=i;if(0===a.top&&0===a.bottom&&0===a.left)return}this._popoverMap=this._popoverMap||new WeakMap;a=t.get(0);if(a){if(this._popoverMap.has(a))try{this._popoverMap.get(a).detach()}catch(e){}let e=Espo.Ui.popover(t,{placement:"bottom",container:"body",content:this.getHelper().transformMarkdownText(i).toString(),trigger:"manual",noToggleInit:!0,noHideOnOutsideClick:!0},s||this);e.show();this._popoverMap.set(a,e);t.closest(".field").one("mousedown click",()=>e.destroy());this.once("render remove",()=>e.destroy());this._timeoutMap=this._timeoutMap||new WeakMap;this._timeoutMap.has(a)&&clearTimeout(this._timeoutMap.get(a));var r=setTimeout(()=>{e.destroy()},this.VALIDATION_POPOVER_TIMEOUT);this._timeoutMap.set(a,r)}}}validate(){this.lastValidationMessage=null;for(var t of this.validations){let e=!1;if("function"==typeof t)e=t();else{t="validate"+Espo.Utils.upperCaseFirst(t);e=this[t].call(this)}if(e)return this.trigger("invalid"),!0}return!1}getLabelText(){return this.labelText}validateRequired(){if(this.isRequired()&&(""===this.model.get(this.name)||null===this.model.get(this.name))){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}hasRequiredMarker(){return this.isRequired()}fetchToModel(){this.model.set(this.fetch(),{silent:!0})}fetch(){if(!this.$element.length)return{};var e={};e[this.name]=this.$element.val().trim();return e}fetchSearch(){var e=this.$element.val().toString().trim();return e?{type:"equals",value:e}:null}fetchSearchType(){return this.$el.find("select.search-type").val()}toSkipReRenderOnChange(){return!1}}e.default=a});define("ui/multi-select",["exports","lib!selectize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let n={defaultDelimiter:":,:",init:function(e,t){var i=$(e),s=t.delimiter||this.defaultDelimiter;t.values&&i.val(t.values.join(s));t=n.applyDefaultOptions(t);var a={};t.removeButton&&(a.remove_button={title:""});t.draggable&&(a.drag_drop={});if(t.restoreOnBackspace){n.loadRestoreOnBackspacePlugin();a.restore_on_backspace_espo={}}n.loadBypassCtrlEnterPlugin();a.bypass_ctrl_enter={};a={options:t.items,plugins:a,delimiter:s,labelField:"text",valueField:"value",searchField:["text"],highlight:!1,selectOnTab:t.selectOnTab};t.matchAnyWord||(a.score=function(t){let i=this.getScoreFunction(t);t=t.toLowerCase();return function(e){return 0===e.text.toLowerCase().indexOf(t)?i(e):0}});t.matchAnyWord&&(a.score=function(i){let s=this.getScoreFunction(i);i=i.toLowerCase();return function(e){var t=e.text.toLowerCase();return t.split(" ").find(e=>e.startsWith(i))||t.startsWith(i)?s(e):0}});a.render={};if(t.allowCustomOptions){a.persist=!1;a.create=t.create;a.render.option_create=e=>$("<div>").addClass("create").append($("<span>").text(e.input).addClass("text-bold")).append("…").get(0).outerHTML}let r={},o={};(t.items||[]).forEach(e=>{e.small&&(r[e.value]="small");e.style&&(o[e.value]=e.style)});(t.items||[]).forEach(e=>{e.small&&(r[e.value]="small")});a.render.item=(e,t)=>{var i=t(e.text),s=t(o[e.value]||""),a=t(r[e.value]||"");return`<div class="item ${s}"><span class="${a}">${i}</span> `+'<a href="javascript:" class="remove">×</a></div>'};a.render.option=(e,t)=>{var i=e.value;let s="";""===i&&(s+=" selectize-dropdown-emptyoptionlabel");i=o[e.value],i=(i&&(s+=" "+t("text-"+i)),t(e.text));return`<div class="option ${s}">${i}</div>`};i.selectize(a);i[0]&&i[0].selectize.on("item_before_remove",(e,t)=>{t.removeClass("active")})},focus:function(e){var t=$(e);if(t[0]&&t[0].selectize){t=t[0].selectize;t.focus()}},applyDefaultOptions:function(e){e=Espo.Utils.clone(e);var t,i={removeButton:!0,draggable:!1,selectOnTab:!1,delimiter:n.defaultDelimiter,matchAnyWord:!1,allowCustomOptions:!1};for(t in i)t in e||(e[t]=i[t]);return e},loadBypassCtrlEnterPlugin:function(){if(!("bypass_ctrl_enter"in t.default.plugins)){let i=/Mac/.test(navigator.userAgent);t.default.define("bypass_ctrl_enter",function(){let e=this;this.onKeyDown=(()=>{let t=e.onKeyDown;return function(e){if("Enter"!==e.code||(i?!e.metaKey:!e.ctrlKey))return t.apply(this,arguments)}})()})}},loadRestoreOnBackspacePlugin:function(){"restore_on_backspace_espo"in t.default.plugins||t.default.define("restore_on_backspace_espo",function(s){s.text=s.text||function(e){return e[this.settings.labelField]};let e=this;this.onKeyDown=(()=>{let i=e.onKeyDown;return function(e){var t;if("Backspace"===e.code&&""===this.$control_input.val()&&!this.$activeItems.length){t=this.caretPos-1;if(0<=t&&t<this.items.length){t=this.options[this.items[t]];t={value:t.value,$order:t.$order,text:t.value};if(this.deleteSelection(e)){this.setTextboxValue(s.text.apply(this,[t]));this.refreshOptions(!0)}e.preventDefault();return}}return i.apply(this,arguments)}})()})}};e.default=n});define("ui/autocomplete",["exports","jquery","handlebars"],function(e,d,h){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;d=t(d);h=t(h);function t(e){return e&&e.__esModule?e:{default:e}}e.default=class{constructor(t,i){this.$element=(0,d.default)(t);let s=!1,a=!1,r=null;this.$element.on("keydown",e=>{"Tab"!==e.code||this.$element.val()||e.stopImmediatePropagation();if(i.catchFastEnter){if("Enter"!==e.code){a=!0;r&&clearTimeout(r);r=setTimeout(()=>a=!1,40)}s=!(!a||"Enter"!==e.code||!this.$element.val())}});var e=i.lookupFunction?(e,t)=>{i.lookupFunction(e).then(e=>{t({suggestions:e})})}:i.lookup,o=i.lookupFunction?void 0:(e,t,i)=>0===e.value.toLowerCase().indexOf(i)&&e.value.length!==i.length,n=this.$element.closest(".modal-body");let l=!!n.length;this.$element.autocomplete({beforeRender:e=>{i.beforeRender&&i.beforeRender(e.get(0));this.$element.hasClass("input-sm")&&e.addClass("small");i.forceHide&&this.$element.get(0)!==document.activeElement&&setTimeout(()=>this.$element.autocomplete("hide"),30);l&&e.on("mousedown",e=>{e.preventDefault()});s&&setTimeout(()=>{t.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0}))},100);a=!1;s=!1},lookup:e,minChars:i.minChars||0,noCache:!0,autoSelectFirst:i.autoSelectFirst,appendTo:n.length?n:"body",forceFixPosition:!0,maxHeight:308,formatResult:e=>i.formatResult?i.formatResult(e):h.default.Utils.escapeExpression(e.value),lookupFilter:o,onSelect:e=>{i.onSelect&&i.onSelect(e);i.focusOnSelect&&this.$element.focus();a=!1;s=!1},triggerSelectOnValidInput:i.triggerSelectOnValidInput||!1});this.$element.attr("autocomplete","espo-"+(i.name||"dummy"));i.handleFocusMode&&this.initHandleFocus(i)}initHandleFocus(e){this.$element.off("focus.autocomplete");this.$element.on("focus",()=>{1===e.handleFocusMode?this.$element.val()||this.$element.autocomplete("onValueChange"):this.$element.val()?this.$element.get(0).select():this.$element.autocomplete("onFocus")});3===e.handleFocusMode&&this.$element.on("change",()=>this.$element.val(""))}dispose(){this.$element.autocomplete("dispose")}hide(){this.$element.autocomplete("hide")}clear(){this.$element.autocomplete("clear")}}});define("helpers/reg-exp-pattern",["exports","di","metadata","language"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=d(i);s=d(s);var a;let r,o,n,l;function d(e){return e&&e.__esModule?e:{default:e}}function h(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class c{constructor(){l(this)}metadata=r(this);language=(o(this),n(this));validate(e,t,i,s){if(""===t||null===t)return null;let a="fieldNotMatchingPattern";if("$"===e[0]){var r=e.slice(1),o=this.metadata.get(["app","regExpPatterns",r,"pattern"]);if(o){a+="$"+r;e=o}}r=new RegExp("^"+e+"$");if(r.test(t))return null;let n=this.language.translate(a,"messages").replace("{pattern}",e);i&&s&&(n=n.replace("{field}",this.language.translate(i,"fields",s)));return{message:n}}static#_=a=()=>[r,o,n,l]=h(this,[],[[(0,t.inject)(i.default),0,"metadata"],[(0,t.inject)(s.default),0,"language"]]).e}a();e.default=c});define("views/record/edit",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/edit";type="edit";fieldsMode="edit";mode="edit";buttonList=[{name:"save",label:"Save",style:"primary",title:"Ctrl+Enter"},{name:"cancel",label:"Cancel",title:"Esc"}];dropdownItemList=[];sideView="views/record/edit-side";bottomView="views/record/edit-bottom";duplicateAction=!1;saveAndContinueEditingAction=!0;saveAndNewAction=!0;setupHandlerType="record/edit";constructor(e){super(e)}actionSave(e){e=e||{};let t=this.isNew;return this.save(e.options).then(()=>{this.options.duplicateSourceId&&(this.returnUrl=null);this.exit(t?"create":"save")}).catch(e=>Promise.reject(e))}actionCancel(){this.cancel()}cancel(){this.isChanged&&this.resetModelChanges();this.setIsNotChanged();this.exit("cancel")}setupBeforeFinal(){let e=void 0;this.model.isNew()&&(e=this.populateDefaults());e||super.setupBeforeFinal();if(e){this.wait(e);e.then(()=>{super.setupBeforeFinal();this.processDynamicLogic()})}this.model.isNew()&&this.once("after:render",()=>{this.model.set(this.fetch(),{silent:!0})});this.options.focusForCreate&&this.once("after:render",()=>{this.$el.closest(".modal").length?setTimeout(()=>this.focusForCreate(),50):this.focusForCreate()});this.setupHighlight()}setupActionItems(){super.setupActionItems();this.saveAndContinueEditingAction&&this.getAcl().checkScope(this.entityType,"edit")&&this.dropdownItemList.push({name:"saveAndContinueEditing",label:"Save & Continue Editing",title:"Ctrl+S",groupIndex:0});this.isNew&&this.saveAndNewAction&&this.getAcl().checkScope(this.entityType,"create")&&this.dropdownItemList.push({name:"saveAndNew",label:"Save & New",title:"Ctrl+Alt+Enter",groupIndex:0})}actionSaveAndNew(e){e=e||{};var t=()=>{Espo.Ui.success(this.translate("Created"));this.getRouter().dispatch(this.scope,"create",{rootUrl:this.options.rootUrl,focusForCreate:!!e.focusForCreate});this.getRouter().navigate("#"+this.scope+"/create",{trigger:!1})};this.save(e.options).then(t).catch(()=>{});"notModified"===this.lastSaveCancelReason&&t()}handleShortcutKeyEscape(e){if(!this.buttonsDisabled&&-1!==this.buttonList.findIndex(e=>"cancel"===e.name&&!e.hidden&&!e.disabled)){e.preventDefault();e.stopPropagation();var t=this.getFocusedFieldView();t&&this.model.set(t.fetch());this.isChanged?this.confirm(this.translate("confirmLeaveOutMessage","messages")).then(()=>this.actionCancel()):this.actionCancel()}}handleShortcutKeyCtrlAltEnter(e){if(!this.buttonsDisabled){e.preventDefault();e.stopPropagation();this.saveAndNewAction&&this.hasAvailableActionItem("saveAndNew")&&this.actionSaveAndNew({focusForCreate:!0})}}setupHighlight(){this.options.highlightFieldList&&this.on("after:render",()=>{var e=this.options.highlightFieldList;e.map(e=>this.getFieldView(e)).filter(e=>e).forEach(e=>e.highlight())})}}e.default=s});define("views/fields/varchar",["exports","views/fields/base","helpers/reg-exp-pattern","ui/autocomplete","ui/multi-select"],function(e,t,a,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);a=r(a);i=r(i);s=r(s);function r(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{constructor(e){super(e)}type="varchar";listTemplate="fields/varchar/list";detailTemplate="fields/varchar/detail";searchTemplate="fields/varchar/search";searchTypeList=["startsWith","contains","equals","endsWith","like","notContains","notEquals","notLike","anyOf","noneOf","isEmpty","isNotEmpty"];validations=["required","pattern"];useAutocompleteUrl=!1;noSpellCheck=!1;searchMultiSelectInputElement;setup(){this.setupOptions();this.noSpellCheck=this.noSpellCheck||this.params.noSpellCheck;this.params.optionsPath&&(this.params.options=Espo.Utils.clone(this.getMetadata().get(this.params.optionsPath)||[]));this.options.customOptionList&&this.setOptionList(this.options.customOptionList);this.mode===this.MODE_DETAIL&&this.params.copyToClipboard&&(this.events['click [data-action="copyToClipboard"]']=()=>this.copyToClipboard());this.on("remove",()=>{this.searchMultiSelectInputElement=void 0})}setupOptions(){}setOptionList(e){this.originalOptionList||(this.originalOptionList=this.params.options||[]);this.params.options=Espo.Utils.clone(e);this.isEditMode()&&this.isRendered()&&this.reRender()}resetOptionList(){this.originalOptionList&&(this.params.options=Espo.Utils.clone(this.originalOptionList));this.isEditMode()&&this.isRendered()&&this.reRender()}copyToClipboard(){var e=this.model.get(this.name);navigator.clipboard.writeText(e).then(()=>{Espo.Ui.success(this.translate("Copied to clipboard"))})}getAutocompleteUrl(e){return""}transformAutocompleteResult(e){var t="string"==typeof e?JSON.parse(e):e;let i=[];t.list.forEach(e=>{i.push({value:e.name||e.id,attributes:e})});return i}setupSearch(){this.addHandler("change","select.search-type",(e,t)=>{this.handleSearchType(t.value)})}data(){var e=super.data();null!==this.model.get(this.name)&&""!==this.model.get(this.name)&&this.model.has(this.name)&&(e.isNotEmpty=!0);e.valueIsSet=this.model.has(this.name);if(this.isSearchMode()){"string"==typeof this.searchParams.value&&(this.searchData.value=this.searchParams.value);this.searchParams.data&&"string"==typeof this.searchParams.data.value&&(this.searchData.value=this.searchParams.data.value);this.searchParams.value||this.searchParams.data||(this.searchData.value=null)}e.noSpellCheck=this.noSpellCheck;e.copyToClipboard=this.params.copyToClipboard;e.textClass=null;return e}handleSearchType(e){var t=this.element.querySelector("input.main-element"),i=this.element.querySelector('div[data-role="multi-select-container"]');["isEmpty","isNotEmpty","anyOf","noneOf"].includes(e)?t.classList.add("hidden"):t.classList.remove("hidden");i&&(["anyOf","noneOf"].includes(e)?i.classList.remove("hidden"):i.classList.add("hidden"))}afterRender(){super.afterRender();if(this.isSearchMode()){var e=this.$el.find("select.search-type").val();this.handleSearchType(e);this.initSearchMultiSelect()}if((this.isEditMode()||this.isSearchMode())&&(this.params.options&&this.params.options.length||this.useAutocompleteUrl)){let e=this.getAutocompleteLookupFunction(),t=(this.useAutocompleteUrl&&(e=e=>Espo.Ajax.getRequest(this.getAutocompleteUrl(e)).then(e=>this.transformAutocompleteResult(e))),new i.default(this.$element.get(0),{name:this.name,triggerSelectOnValidInput:!0,autoSelectFirst:!0,handleFocusMode:1,focusOnSelect:!0,onSelect:()=>this.trigger("change"),lookup:this.params.options,lookupFunction:e}));this.once("render remove",()=>t.dispose())}if(this.isSearchMode()){this.$el.find("select.search-type").on("change",()=>{this.trigger("change")});this.$element.on("input",()=>{this.trigger("change")})}}validatePattern(){var e=this.params.pattern;return this.fieldValidatePattern(this.name,e)}fieldValidatePattern(e,t){t=t||this.model.getFieldParam(e,"pattern");var i=this.model.get(e);if(!t)return!1;var s=new a.default,s=s.validate(t,i,e,this.entityType);if(!s)return!1;i=s.message.replace("{field}",this.getLanguage().translate(this.getLabelText()));this.showValidationMessage(i,'[data-name="'+e+'"]');return!0}fetch(){var e={},t=this.$element.val().trim();e[this.name]=t||null;return e}fetchSearch(){var t=this.fetchSearchType()||"startsWith";if(["isEmpty","isNotEmpty"].includes(t)){if("isEmpty"===t)return{type:"or",value:[{type:"isNull",attribute:this.name},{type:"equals",attribute:this.name,value:""}],data:{type:t}};let e=[{type:"isNotNull",attribute:this.name,value:null}];this.model.getFieldParam(this.name,"notStorable")||e.push({type:"notEquals",attribute:this.name,value:""});return{type:"and",value:e,data:{type:t}}}if("anyOf"===t||"noneOf"===t){let e=this.searchMultiSelectInputElement?this.searchMultiSelectInputElement.value.split(s.default.defaultDelimiter):[];1===e.length&&""===e[0]&&(e=[]);return"anyOf"===t?0===e.length?{type:"any",data:{type:"anyOf",valueList:e}}:{type:"in",value:e,data:{type:"anyOf",valueList:e}}:0===e.length?{type:"any",data:{type:"noneOf",valueList:e}}:{type:"or",value:[{type:"notIn",value:e,attribute:this.name},{type:"isNull",attribute:this.name}],data:{type:"noneOf",valueList:e}}}let e=this.$element.val().toString().trim();return e?{value:e,type:t,data:{type:t}}:null}getSearchType(){return this.getSearchParamsData().type||this.searchParams.typeFront||this.searchParams.type}getAutocompleteLookupFunction(){}initSearchMultiSelect(){this.searchMultiSelectInputElement=this.element.querySelector('input[data-role="multi-select-input"]');s.default.init(this.searchMultiSelectInputElement,{items:(this.params.options||[]).map(e=>({value:e,text:e})),allowCustomOptions:!0,create:e=>({value:e,text:e}),values:this.getSearchParamsData().valueList||[]});this.element.querySelector(".selectize-dropdown-content").classList.add("small")}}e.default=o});define("layout-manager",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{constructor(e,t,i){this.cache=e||null;this.applicationId=t||"espocrm";this.userId=i||null;this.data={};this.ajax=Espo.Ajax;this.fetchPromises={}}setUserId(e){this.userId=e}getKey(e,t){return this.userId?`${this.applicationId}-${this.userId}-${e}-`+t:this.applicationId+`-${e}-`+t}getUrl(e,t,i){let s=e+"/layout/"+t;i&&(s+="/"+i);return s}get(e,t,i,s){void 0===s&&(s=!0);i=i||(()=>{});let a=this.getKey(e,t);if(s&&a in this.data)i(this.data[a]);else{if(this.cache&&s){var r=this.cache.get("app-layout",a);if(r){i(r);this.data[a]=r;return}}a in this.fetchPromises?this.fetchPromises[a].then(e=>i(e)):this.fetchPromises[a]=this.ajax.getRequest(this.getUrl(e,t)).then(e=>{i(e);this.data[a]=e;this.cache&&this.cache.set("app-layout",a,e);return e}).finally(()=>delete this.fetchPromises[a])}}getOriginal(e,t,i,s){let a="Layout/action/getOriginal?scope="+e+"&name="+t;i&&(a+="&setId="+i);Espo.Ajax.getRequest(a).then(e=>{"function"==typeof s&&s(e)})}set(t,i,e,s,a){return Espo.Ajax.putRequest(this.getUrl(t,i,a),e).then(()=>{var e=this.getKey(t,i);this.cache&&e&&this.cache.clear("app-layout",e);delete this.data[e];this.trigger("sync");"function"==typeof s&&s()})}resetToDefault(t,i,s,e){Espo.Ajax.postRequest("Layout/action/resetToDefault",{scope:t,name:i,setId:e}).then(()=>{var e=this.getKey(t,i);this.cache&&this.cache.clear("app-layout",e);delete this.data[e];this.trigger("sync");"function"==typeof s&&s()})}clearLoadedData(){this.data={}}}Object.assign(i.prototype,t.Events);e.default=i});define("field-manager",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i){this.defs=e||{};this.metadata=t;this.acl=i}getParamList(e){return e in this.defs&&this.defs[e].params||[]}checkFilter(e){return e in this.defs&&"filter"in this.defs[e]&&this.defs[e].filter}isMergeable(e){return e in this.defs&&!this.defs[e].notMergeable}getEntityTypeAttributeList(e,t){let i=[],s=this.metadata.get(`entityDefs.${e}.fields`)||{};this.getEntityTypeFieldList(e,t).forEach(e=>{var t=s[e]||{};this.getAttributeList(t.type,e).forEach(e=>{i.includes(e)||i.push(e)})});return i}getActualAttributeList(t,i){let s=[];if(!(t in this.defs))return[];if("actualFields"in this.defs[t]){var a=this.defs[t].actualFields;let e="suffix";"naming"in this.defs[t]&&(e=this.defs[t].naming);"prefix"===e?a.forEach(e=>s.push(e+Espo.Utils.upperCaseFirst(i))):a.forEach(e=>s.push(i+Espo.Utils.upperCaseFirst(e)))}else s.push(i);return s}getNotActualAttributeList(e,t){if(!(e in this.defs))return[];if(!("notActualFields"in this.defs[e]))return[];var i=this.defs[e].notActualFields;let s="suffix",a=("naming"in this.defs[e]&&(s=this.defs[e].naming),[]);"prefix"===s?i.forEach(e=>{""===e?a.push(t):a.push(e+Espo.Utils.upperCaseFirst(t))}):i.forEach(e=>a.push(t+Espo.Utils.upperCaseFirst(e)));return a}getEntityTypeFieldAttributeList(e,t){var i=this.metadata.get(["entityDefs",e,"fields",t,"type"]);return i?_.union(this.getAttributeList(i,t),this._getEntityTypeFieldAdditionalAttributeList(e,t),this._getEntityTypeFieldFullNameAdditionalAttributeList(e,t)):[]}getEntityTypeFieldActualAttributeList(e,t){var i=this.metadata.get(["entityDefs",e,"fields",t,"type"]);return i?_.union(this.getActualAttributeList(i,t),this._getEntityTypeFieldAdditionalAttributeList(e,t),this._getEntityTypeFieldFullNameAdditionalAttributeList(e,t)):[]}_getEntityTypeFieldAdditionalAttributeList(e,t){var i=this.metadata.get(["entityDefs",e,"fields",t,"type"]);if(!i)return[];var s=this.metadata.get(["entityDefs",e,"fields",t,"additionalAttributeList"])||[];if(0===s.length)return[];let a="prefix"===(this.defs[i]||{}).naming,r=[];s.forEach(e=>{a?r.push(e+Espo.Utils.upperCaseFirst(t)):r.push(t+Espo.Utils.upperCaseFirst(e))});return r}getAttributeList(e,t){return _.union(this.getActualAttributeList(e,t),this.getNotActualAttributeList(e,t))}getEntityTypeFieldList(i,s){let a=this.metadata.get(["entityDefs",i,"fields"])||{},e=Object.keys(a),r=(s=s||{},s.typeList);!r&&s.type&&(r=[s.type]);r&&(e=e.filter(e=>{var t=this.metadata.get(["entityDefs",i,"fields",e,"type"]);return r.includes(t)}));s.ignoreTypeList&&(e=e.filter(e=>{var t=(a[e]||{}).type;return!s.ignoreTypeList.includes(t)}));(s.onlyAvailable||s.acl)&&(e=e.filter(e=>this.isEntityTypeFieldAvailable(i,e)));if(s.acl){var o=s.acl||"read";let t=this.acl.getScopeForbiddenFieldList(i,o);e=e.filter(e=>!t.includes(e))}return e}getEntityTypeFieldParam(e,t,i){return this.metadata.get(["entityDefs",e,"fields",t,i])}getViewName(e){return e in this.defs&&"view"in this.defs[e]?this.defs[e].view:"views/fields/"+Espo.Utils.camelCaseToHyphen(e)}getParams(e){return this.getParamList(e)}getAttributes(e,t){return this.getAttributeList(e,t)}getActualAttributes(e,t){return this.getActualAttributeList(e,t)}getNotActualAttributes(e,t){return this.getNotActualAttributeList(e,t)}isEntityTypeFieldAvailable(e,t){var i=this.metadata.get(["entityDefs",e,"fields",t])||{};return!(i.disabled||i.utility||(i=this.metadata.get(["entityAcl",e,"fields",t])||{},i.onlyAdmin)||i.forbidden||i.internal)}isScopeFieldAvailable(e,t){return this.isEntityTypeFieldAvailable(e,t)}_getEntityTypeFieldFullNameAdditionalAttributeList(e,t){return this.metadata.get(`entityDefs.${e}.fields.${t}.fullNameAdditionalAttributeList`)??[]}}});define("views/record/edit-for-modal",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{bottomView=null;sideView=null;buttonsDisabled=!0;isWide=!0;accessControlDisabled=!0;confirmLeaveDisabled=!0}e.default=s});define("views/fields/enum",["exports","views/fields/base","ui/multi-select","ui/select"],function(e,t,s,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);s=a(s);i=a(i);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{constructor(e){super(e)}type="enum";listTemplate="fields/enum/list";listLinkTemplate="fields/enum/list-link";detailTemplate="fields/enum/detail";editTemplate="fields/enum/edit";searchTemplate="fields/enum/search";translatedOptions=null;fetchEmptyValueAsNull=!0;searchTypeList=["anyOf","noneOf","isEmpty","isNotEmpty"];validationElementSelector=".selectize-control";nativeSelect=!1;data(){var e=super.data(),t=(e.translatedOptions=this.translatedOptions,this.model.get(this.name));this.isReadMode()&&this.styleMap&&(e.style=this.styleMap[t||""]||"default");e.styleMap=this.styleMap;this.isReadMode()&&(this.params.displayAsLabel?"state"===this.params.labelType?e.class="label label-md label-state label":e.class=e.style&&"default"!==e.style?"label label-md label":"text":e.class="text");var i=t||"";(null!=t&&""!==t||""===i&&i in(this.translatedOptions||{})&&""!==(this.translatedOptions||{})[i])&&(e.isNotEmpty=!0);e.valueIsSet=this.model.has(this.name);e.isNotEmpty&&(e.valueTranslated=this.translatedOptions?this.translatedOptions[i]||t:this.getLanguage().translateOption(i,this.name,this.entityType));this.isEditMode()&&(e.nativeSelect=this.nativeSelect);return e}setup(){if(!this.params.options){var e="get"+Espo.Utils.upperCaseFirst(this.name)+"Options";"function"==typeof this.model[e]&&(this.params.options=this.model[e].call(this.model))}this.styleMap=this.params.style||this.model.getFieldParam(this.name,"style")||{};let t=this.params.optionsPath;e=this.params.optionsReference;if(!t&&e){var[e,i]=e.split(".");t=`entityDefs.${e}.fields.${i}.options`;0===Object.keys(this.styleMap).length&&(this.styleMap=this.getMetadata().get(`entityDefs.${e}.fields.${i}.style`)||{})}t&&(this.params.options=Espo.Utils.clone(this.getMetadata().get(t))||[]);this.setupOptions();"translatedOptions"in this.options&&(this.translatedOptions=this.options.translatedOptions);"translatedOptions"in this.params&&(this.translatedOptions=this.params.translatedOptions);this.setupTranslation();if(null===this.translatedOptions){this.translatedOptions=this.getLanguage().translate(this.name,"options",this.model.name)||{};this.translatedOptions===this.name&&(this.translatedOptions=null)}if(this.params.isSorted&&this.translatedOptions){this.params.options=Espo.Utils.clone(this.params.options)||[];this.params.options=this.params.options.sort((e,t)=>(this.translatedOptions[e]||e).localeCompare(this.translatedOptions[t]||t))}this.options.customOptionList&&this.setOptionList(this.options.customOptionList)}setupTranslation(){let e=this.params.translation;var s=this.params.optionsReference;if(!e&&s){var[s,t]=s.split(".");e=s+".options."+t}if(e){this.translatedOptions=null;if(this.params.options){let t=this.getLanguage().translatePath(e),i={};this.params.options.forEach(e=>{"object"==typeof t&&e in t?i[e]=t[e]:Array.isArray(t)&&"number"==typeof e&&void 0!==t[e]?i[e.toString()]=t[e]:i[e]=e});s=this.model.get(this.name);!s&&""!==s||s in i||"object"==typeof t&&s in t&&(i[s]=t[s]);this.translatedOptions=i}}}setupOptions(){}setTranslatedOptions(e){this.translatedOptions=e}setOptionList(e){var t=this.params.options,i=(this.originalOptionList||(this.originalOptionList=this.params.options),Espo.Utils.clone(e)||[]),t=(this.params.options=i,!_(t).isEqual(e));if(!this.isEditMode()||!t)return Promise.resolve();let s=!1;t=this.model.get(this.name);if(!i.includes(t)&&this.isReady){this.model.set(this.name,i[0]??null,{silent:!0});s=!0}return this.reRender().then(()=>{s&&this.trigger("change")})}resetOptionList(){var e;return this.originalOptionList&&(e=this.params.options,e=(this.params.options=Espo.Utils.clone(this.originalOptionList),!_(e).isEqual(this.originalOptionList)),this.isEditMode())&&e&&this.isRendered()?this.reRender():Promise.resolve()}setupSearch(){this.events=_.extend({"change select.search-type":e=>{this.handleSearchType($(e.currentTarget).val())}},this.events||{})}handleSearchType(e){var t=this.$el.find("div.input-container");~["anyOf","noneOf"].indexOf(e)?t.removeClass("hidden"):t.addClass("hidden")}afterRender(){super.afterRender();if(this.isSearchMode()){this.$element=this.$el.find(".main-element");var e=this.$el.find("select.search-type").val(),e=(this.handleSearchType(e),this.getSearchParamsData().valueList||this.searchParams.value||[]);this.$element.val(e.join(":,:"));let i=[];(this.params.options||[]).forEach(e=>{let t=this.getLanguage().translateOption(e,this.name,this.scope);this.translatedOptions&&e in this.translatedOptions&&(t=this.translatedOptions[e]);""!==t&&i.push({value:e,text:t})});e={items:i,delimiter:":,:",matchAnyWord:!0};s.default.init(this.$element,e);this.$el.find(".selectize-dropdown-content").addClass("small");this.$el.find("select.search-type").on("change",()=>this.trigger("change"));this.$element.on("change",()=>this.trigger("change"))}!this.isEditMode()&&!this.isSearchMode()||this.nativeSelect||i.default.init(this.$element,{matchAnyWord:!0})}focusOnInlineEdit(){i.default.focus(this.$element)}validateRequired(){if(this.isRequired()&&!this.model.get(this.name)){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}fetch(){let e=this.$element.val();this.fetchEmptyValueAsNull&&!e&&(e=null);var t={};t[this.name]=e;return t}parseItemForSearch(e){return e}fetchSearch(){var e=this.fetchSearchType();let i=this.$element.val().split(":,:");1===i.length&&""===i[0]&&(i=[]);i.forEach((e,t)=>{i[t]=this.parseItemForSearch(e)});if("anyOf"===e)return 0===i.length?{type:"any",data:{type:"anyOf",valueList:i}}:{type:"in",value:i,data:{type:"anyOf",valueList:i}};if("noneOf"===e)return 0===i.length?{type:"any",data:{type:"noneOf",valueList:i}}:{type:"or",value:[{type:"notIn",value:i,attribute:this.name},{type:"isNull",attribute:this.name}],data:{type:"noneOf",valueList:i}};if("isEmpty"===e)return{type:"or",value:[{type:"isNull",attribute:this.name},{type:"equals",value:"",attribute:this.name}],data:{type:"isEmpty"}};if("isNotEmpty"!==e)return null;e=[{type:"isNotNull",attribute:this.name}];this.model.getFieldParam(this.name,"notStorable")||e.push({type:"notEquals",value:"",attribute:this.name});return{type:"and",value:e,data:{type:"isNotEmpty"}}}getSearchType(){return this.getSearchParamsData().type||"anyOf"}}e.default=r});define("views/fields/colorpicker",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="varchar";detailTemplate="fields/colorpicker/detail";listTemplate="fields/colorpicker/detail";editTemplate="fields/colorpicker/edit";setup(){super.setup();this.params.maxLength=7;this.wait(Espo.loader.requirePromise("lib!bootstrap-colorpicker"))}afterRender(){super.afterRender();if(this.isEditMode()){var e=!!this.$el.closest(".modal").length;this.$element.parent().colorpicker({format:"hex",container:e&&this.$el,sliders:{saturation:{maxLeft:200,maxTop:200},hue:{maxTop:200},alpha:{maxTop:200}}});e&&this.$el.find(".colorpicker").css("position","relative").addClass("pull-right");this.$element.on("change",()=>{""===this.$element.val()&&this.$el.find(".input-group-addon > i").css("background-color","transparent")})}}}e.default=s});define("views/wysiwyg/modals/edit-table",["exports","views/modal","views/record/edit-for-modal","model","views/fields/enum","views/fields/varchar","views/fields/colorpicker"],function(e,t,i,s,a,r,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);i=n(i);s=n(s);a=n(a);r=n(r);o=n(o);function n(e){return e&&e.__esModule?e:{default:e}}class l extends t.default{templateContent=`
|
||
<div class="record no-side-margin">{{{record}}}</div>
|
||
`;constructor(e){super(e);this.params=e.params;this.onApply=e.onApply}setup(){this.addButton({name:"apply",style:"primary",label:"Apply",onClick:()=>this.apply()});this.addButton({name:"cancel",label:"Cancel",onClick:()=>this.close()});this.shortcutKeys={"Control+Enter":()=>this.apply()};this.model=new s.default({align:this.params.align,width:this.params.width,height:this.params.height,borderWidth:this.params.borderWidth,borderColor:this.params.borderColor,cellPadding:this.params.cellPadding,backgroundColor:this.params.backgroundColor});this.recordView=new i.default({model:this.model,detailLayout:[{rows:[[{view:new r.default({name:"width",labelText:this.translate("width","wysiwygLabels"),params:{maxLength:12}})},{view:new r.default({name:"height",labelText:this.translate("height","wysiwygLabels"),params:{maxLength:12}})}],[{view:new r.default({name:"borderWidth",labelText:this.translate("borderWidth","wysiwygLabels"),params:{maxLength:12}})},{view:new o.default({name:"borderColor",labelText:this.translate("borderColor","wysiwygLabels")})}],[{view:new r.default({name:"cellPadding",labelText:this.translate("cellPadding","wysiwygLabels"),params:{maxLength:12}})},{view:new o.default({name:"backgroundColor",labelText:this.translate("backgroundColor","wysiwygLabels")})}],[{view:new a.default({name:"align",labelText:this.translate("align","wysiwygLabels"),params:{options:["","left","center","right"],translation:"Global.wysiwygOptions.align"}})},!1]]}]});this.assignView("record",this.recordView,".record")}apply(){if(!this.recordView.validate()){let e=this.model.attributes.borderWidth,t=this.model.attributes.cellPadding,i=this.model.attributes.width,s=this.model.attributes.height;/^\d+$/.test(e)&&(e+="px");/^\d+$/.test(t)&&(t+="px");/^\d+$/.test(i)&&(i+="px");/^\d+$/.test(s)&&(s+="px");this.onApply({align:this.model.attributes.align,width:i,height:s,borderWidth:e,borderColor:this.model.attributes.borderColor,cellPadding:t,backgroundColor:this.model.attributes.backgroundColor});this.close()}}}e.default=l});define("views/wysiwyg/modals/edit-cell",["exports","views/modal","views/record/edit-for-modal","model","views/fields/varchar","views/fields/colorpicker","views/fields/enum"],function(e,t,i,s,a,r,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);i=n(i);s=n(s);a=n(a);r=n(r);o=n(o);function n(e){return e&&e.__esModule?e:{default:e}}class l extends t.default{templateContent=`
|
||
<div class="record no-side-margin">{{{record}}}</div>
|
||
`;constructor(e){super(e);this.params=e.params;this.onApply=e.onApply}setup(){this.addButton({name:"apply",style:"primary",label:"Apply",onClick:()=>this.apply()});this.addButton({name:"cancel",label:"Cancel",onClick:()=>this.close()});this.shortcutKeys={"Control+Enter":()=>this.apply()};this.model=new s.default({width:this.params.width,height:this.params.height,backgroundColor:this.params.backgroundColor,verticalAlign:this.params.verticalAlign});this.recordView=new i.default({model:this.model,detailLayout:[{rows:[[{view:new a.default({name:"width",labelText:this.translate("width","wysiwygLabels"),params:{maxLength:12}})},{view:new a.default({name:"height",labelText:this.translate("height","wysiwygLabels"),params:{maxLength:12}})}],[{view:new o.default({name:"verticalAlign",labelText:this.translate("verticalAlign","wysiwygLabels"),params:{options:["","top","middle","bottom"],translation:"Global.wysiwygOptions.verticalAlign"}})},{view:new r.default({name:"backgroundColor",labelText:this.translate("backgroundColor","wysiwygLabels")})}]]}]});this.assignView("record",this.recordView,".record")}apply(){if(!this.recordView.validate()){let e=this.model.attributes.width,t=(/^\d+$/.test(e)&&(e+="px"),this.model.attributes.height);/^\d+$/.test(t)&&(t+="px");this.onApply({width:e,height:t,backgroundColor:this.model.attributes.backgroundColor,verticalAlign:this.model.attributes.verticalAlign});this.close()}}}e.default=l});define("views/record/list/settings",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
{{#if toDisplay}}
|
||
<div class="btn-group">
|
||
<a
|
||
role="button"
|
||
class="btn btn-text dropdown-toggle"
|
||
data-toggle="dropdown"
|
||
tabindex="0"
|
||
><span class="caret"></span></a>
|
||
<ul class="dropdown-menu pull-right">
|
||
{{#if dataList.length}}
|
||
<li class="dropdown-header">{{fieldsLabel}}</li>
|
||
{{#each dataList}}
|
||
<li>
|
||
<a
|
||
role="button"
|
||
tabindex="0"
|
||
data-action="toggleColumn"
|
||
data-name="{{name}}"
|
||
><span class="check-icon fas fa-check pull-right{{#if hidden}} hidden{{/if}}"></span><div>{{label}}</div></a>
|
||
</li>
|
||
{{/each}}
|
||
{{/if}}
|
||
{{#if hasColumnResize}}
|
||
<li class="divider"></li>
|
||
<li>
|
||
<a
|
||
role="button"
|
||
tabindex="0"
|
||
data-action="toggleColumnResize"
|
||
>
|
||
<span class="check-icon fas fa-check pull-right {{#unless columnResize}} hidden {{/unless}}"></span>
|
||
<div>{{translate 'Column Resize'}}</div></a>
|
||
</li>
|
||
{{/if}}
|
||
{{#if isNotDefault}}
|
||
<li class="divider"></li>
|
||
<li>
|
||
<a
|
||
role="button"
|
||
tabindex="0"
|
||
data-action="resetToDefault"
|
||
>{{translate 'Reset'}}</a>
|
||
</li>
|
||
{{/if}}
|
||
</ul>
|
||
</div>
|
||
{{/if}}
|
||
`;data(){var e=this.helper.getColumnResize(),t=this.getDataList(),i=this.columnResize&&(e||this.isColumnResizeApplicable()),s=void 0!==t.find(e=>e.hiddenDefault!==e.hidden)||0<Object.keys(this.helper.getColumnWidthMap()).length;return{dataList:t,toDisplay:0<t.length||e,isNotDefault:s,fieldsLabel:this.translate("Fields"),hasColumnResize:i,columnResize:e}}constructor(e){super();this.layoutProvider=e.layoutProvider;this.helper=e.helper;this.entityType=e.entityType;this.onChange=e.onChange;this.columnResize=e.columnResize||!1}setup(){this.addActionHandler("toggleColumn",(e,t)=>this.toggleColumn(t.dataset.name));this.addActionHandler("toggleColumnResize",()=>this.toggleColumnResize());this.addActionHandler("resetToDefault",()=>this.resetToDefault());this.onColumnWidthChangeBind=this.onColumnWidthChange.bind(this);this.helper.subscribeToColumnWidthChange(this.onColumnWidthChangeBind);window.innerWidth<this.getThemeManager().getParam("screenWidthXs")&&(this.columnResize=!1)}onRemove(){this.helper.unsubscribeFromColumnWidthChange(this.onColumnWidthChangeBind)}onColumnWidthChange(){this.reRender()}getDataList(){var e=this.layoutProvider()||[];let s=this.helper.getHiddenColumnMap()||{};return e.filter(e=>e.name&&!e.link&&!e.noLabel&&""!==e.customLabel).map(e=>{var t=e.label||e.name,i=e.name in s?s[e.name]:!!e.hidden;return{name:e.name,label:e.customLabel??this.translate(t,"fields",this.entityType),hidden:i,hiddenDefault:!!e.hidden}})}isColumnResizeApplicable(){var e=this.layoutProvider().filter(e=>!this.helper.isColumnHidden(e.name,e.hidden));return!(!e||e.length<=1||!e.find(e=>!e.widthPx&&!e.width)||!e.find(e=>e.widthPx||e.width))}toggleColumn(t){var e=this.helper.getHiddenColumnMap()||{},i=this.getDataList().find(e=>e.name===t),i=!!i&&i.hiddenDefault;e[t]=!(t in e?e[t]:i);this.helper.storeHiddenColumnMap(e);this.onChange({action:"toggleColumn",column:t})}toggleColumnResize(){var e=!this.helper.getColumnResize();this.helper.storeColumnResize(e);this.onChange({action:"toggleColumnResize"})}resetToDefault(){this.helper.clearHiddenColumnMap();this.helper.clearColumnWidthMap();this.onChange({action:"resetToDefault"})}}e.default=s});define("views/modals/text-preview",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="panel panel-default no-side-margin">
|
||
<div class="panel-body">
|
||
<div class="complex-text">{{complexText viewObject.options.text linksInNewTab=true}}</div>
|
||
</div>
|
||
</div>
|
||
`;backdrop=!0;constructor(e){super(e);this.options=e}setup(){this.headerText=this.translate("Preview")}}e.default=s});define("helpers/mass-action",["exports","di","models/settings","models/user"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=d(i);s=d(s);var a;let r,o,n,l;function d(e){return e&&e.__esModule?e:{default:e}}function h(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class c{config=r(this);user=(o(this),n(this));constructor(e){l(this);this.view=e}checkIsIdle(e){if(this.user.isPortal())return!1;void 0===e&&(e=this.view.options.totalCount);void 0===e&&this.view.collection&&(e=this.view.collection.total);return-1===e||e>this.config.get("massActionIdleCountThreshold")}process(t,s){Espo.Ui.notify(!1);return new Promise(i=>{var e=this.view.scope||this.view.entityType;this.view.createView("dialog","views/modals/mass-action",{id:t,action:s,scope:e}).then(t=>{t.render();i(t);this.view.listenToOnce(t,"success",e=>{i(e);this.view.listenToOnce(t,"close",()=>{t.trigger("close:success",e)})})})})}static#_=a=()=>[r,o,n,l]=h(this,[],[[(0,t.inject)(i.default),0,"config"],[(0,t.inject)(s.default),0,"user"]]).e}a();e.default=c});define("helpers/export",["exports","di","models/settings","models/user"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=d(i);s=d(s);var a;let r,o,n,l;function d(e){return e&&e.__esModule?e:{default:e}}function h(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class c{config=r(this);user=(o(this),n(this));constructor(e){l(this);this.view=e}checkIsIdle(e){if(this.user.isPortal())return!1;void 0===e&&(e=this.view.options.totalCount);return-1===e||e>this.config.get("exportIdleCountThreshold")}process(e){Espo.Ui.notify(!1);return new Promise(i=>{this.view.createView("dialog","views/export/modals/idle",{id:e}).then(t=>{t.render();i(t);this.view.listenToOnce(t,"success",e=>{i(e);this.view.listenToOnce(t,"close",()=>{t.trigger("close:success",e)})})})})}static#_=a=()=>[r,o,n,l]=h(this,[],[[(0,t.inject)(i.default),0,"config"],[(0,t.inject)(s.default),0,"user"]]).e}a();e.default=c});define("helpers/record/list/column-width-control",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{minWidth=30;constructor(e){this.view=e.view;this.helper=e.helper;this.layoutProvider=e.layoutProvider}adjust(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};let t,a=(void 0!==e.tableWidth&&void 0!==e.staticWidth||(t=this.getTableWidths()),void 0===e.tableWidth?t.table:e.tableWidth);e=void 0===e.staticWidth?t.static:e.staticWidth;let r=this.helper.getColumnWidthMap();var i=this.layoutProvider().filter(e=>!this.helper.isColumnHidden(e.name,e.hidden)).map(e=>{let t=r[e.name];var i=!!t;if(!t){t=null;e.width?t={value:e.width,unit:"%"}:e.widthPx&&(t={value:e.widthPx,unit:"px"})}let s=null;t&&(s="px"===t.unit?t.value:a*(t.value/100));return{name:e.name,width:t,isCustom:i,widthPx:s}}),s=i.filter(e=>!e.width).length,s=s*this.minWidth;let o=0;i.filter(e=>e.widthPx).forEach(e=>o+=e.widthPx);if(0<=a-s-e-o)return!0;s=i.filter(e=>e.widthPx&&e.width).sort((e,t)=>t.widthPx-e.widthPx);if(!s.length)return!0;i=s[0];if(i.widthPx<10)return!0;let n;if("px"===i.width.unit)n={value:i.width.value-10,unit:"px"};else{s=Math.pow(10,4),s=Math.floor(s*(10/a)*100)/s;n={value:i.width.value-s,unit:"%"}}s=this.helper.getColumnWidthMap();s[i.name]=n;this.helper.storeColumnWidthMap(s);this.adjust({tableWidth:a,staticWidth:e});return!1}getTableWidths(){var e=this.view.element.querySelector(".list > table");if(!e)return null;var t=e.clientWidth;let i=0;e.querySelectorAll(":scope > thead > tr > th").forEach(e=>{e.classList.contains("field-header-cell")&&!e.classList.contains("action-cell")||(i+=e.clientWidth)});return{table:t,static:i}}}});define("helpers/record/list/column-resize",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class i{item;minWidth=30;static selector="table > thead > tr > th > .column-resizer";constructor(e,t){this.view=e;this.helper=t;this.fontSizeFactor=e.getThemeManager().getFontSizeFactor();this.onPointerUpBind=this.onPointerUp.bind(this);this.onPointerMoveBind=this.onPointerMove.bind(this);e.addHandler("pointerdown",i.selector,(e,t)=>{this.onPointerDown(e,t)})}onPointerDown(e,t){if(e.isPrimary){this.startResizeInit(e,t);window.addEventListener("pointerup",this.onPointerUpBind);window.addEventListener("pointermove",this.onPointerMoveBind)}}startResizeInit(e,t){var i=t.parentNode,s=[...i.parentNode.querySelectorAll(":scope > th.field-header-cell")].filter(e=>!e.style.width);this.item={startX:e.clientX,startWidth:i.clientWidth,thElement:i,name:i.dataset.name,inPx:i.style.width&&i.style.width.endsWith("px"),onRight:t.classList.contains("column-resizer-right"),newWidth:null,thElements:s};document.body.style.cursor="col-resize";i=this.item.thElement.closest("tr");i.classList.add("being-column-resized");this.item.thElement.classList.add("being-resized")}isWidthOk(e){if(e<this.minWidth*this.fontSizeFactor)return!1;for(var t of this.item.thElements)if(!t.style.width&&t.clientWidth<this.minWidth*this.fontSizeFactor)return!1;return!0}onPointerMove(e){let t=e.clientX-this.item.startX;this.item.onRight||(t*=-1);var i=this.item.startWidth+t;if(this.isWidthOk(i)){var s=this.item.newWidth,a=this.item.thElement.style.width;this.item.newWidth=i;this.item.thElement.style.width=i.toString()+"px";if(!this.isWidthOk(i)){s&&(this.item.newWidth=s);this.item.thElement.style.width=a}}}onPointerUp(){window.removeEventListener("pointermove",this.onPointerMoveBind);window.removeEventListener("pointerup",this.onPointerUpBind);document.body.style.cursor="";var i=this.item.newWidth;if(null!==i){let e="px",t=i;if(!this.item.inPx){var s=this.item.thElement.closest("table"),s=s.clientWidth,a=Math.pow(10,4),i=i/s,s=Math.floor(a*i*100)/a;this.item.thElement.style.width=s.toString()+"%";e="%";t=s}this.item.inPx&&(t/=this.fontSizeFactor);this.helper.storeColumnWidth(this.item.name,{value:t,unit:e})}this.disableResizingState()}disableResizingState(){var e=this.item.thElement.closest("tr");e.classList.remove("being-column-resized");this.item.thElement.classList.remove("being-resized");this.item=void 0}}});define("helpers/misc/mailto",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i){this.config=e;this.preferences=t;this.acl=i}toUse(){return this.config.get("emailForceUseExternalClient")||this.preferences.get("emailUseExternalClient")||!this.acl.checkScope("Email","create")}composeLink(e){var t,i="mailto:",s=(i+=(e.to||"").split(";").join(","),{});e.cc&&(s.cc=e.cc.split(";").join(","));let a=this.config.get("outboundEmailBccAddress");if(e.bcc){a?a+=";":a="";a+=e.bcc}a&&(s.bcc=a.split(";").join(","));e.name&&(s.subject=e.name);if(e.body){s.body=e.body;e.isHtml&&(s.body=this.htmlToPlain(s.body));700<s.body.length&&(s.body=s.body.substring(0,700)+"...")}e.inReplyTo&&(s["In-Reply-To"]=e.inReplyTo);let r="";for(t in s){""!==r?r+="&":r+="?";r+=t+"="+encodeURIComponent(s[t])}i+=r;return i}htmlToPlain(e){e=e||"";let t=e.replace(/<br\s*\/?>/gm,"\n");t=t.replace(/<\/p\s*\/?>/gm,"\n\n");var i=$("<div>").html(t);i.find("style").remove();i.find('link[ref="stylesheet"]').remove();t=i.text();return t}}});define("helpers/list/settings",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i,s){this.storage=s;this.layoutColumnsKey=t+`-${e}-`+i;this.hiddenColumnMapCache=void 0;this.columnWidthMapCache=void 0;this.columnResize=void 0;this.columnWidthChangeFunctions=[]}getHiddenColumnMap(){this.hiddenColumnMapCache||(this.hiddenColumnMapCache=this.storage.get("listHiddenColumns",this.layoutColumnsKey)||{});return this.hiddenColumnMapCache}isColumnHidden(e,t){var i=this.getHiddenColumnMap();return!!i[e]||!!t&&(!(e in i)||i[e])}getColumnResize(){void 0===this.columnResize&&(this.columnResize=this.storage.get("listColumnResize",this.layoutColumnsKey)||!1);return this.columnResize}storeColumnResize(e){this.columnResize=e;this.storage.set("listColumnResize",this.layoutColumnsKey,e)}clearColumnResize(){this.columnResize=void 0;this.storage.clear("listColumnResize",this.layoutColumnsKey)}storeHiddenColumnMap(e){this.hiddenColumnMapCache=void 0;this.storage.set("listHiddenColumns",this.layoutColumnsKey,e)}clearHiddenColumnMap(){this.hiddenColumnMapCache=void 0;this.storage.clear("listHiddenColumns",this.layoutColumnsKey)}getColumnWidthMap(){this.columnWidthMapCache||(this.columnWidthMapCache=this.storage.get("listColumnsWidths",this.layoutColumnsKey)||{});return this.columnWidthMapCache}storeColumnWidthMap(e){this.columnWidthMapCache=void 0;this.storage.set("listColumnsWidths",this.layoutColumnsKey,e)}clearColumnWidthMap(){this.columnWidthMapCache=void 0;this.storage.clear("listColumnsWidths",this.layoutColumnsKey)}storeColumnWidth(e,t){this.columnWidthMapCache||(this.columnWidthMapCache={});this.columnWidthMapCache[e]=t;this.storeColumnWidthMap(this.columnWidthMapCache);for(var i of this.columnWidthChangeFunctions)i()}subscribeToColumnWidthChange(e){this.columnWidthChangeFunctions.push(e)}unsubscribeFromColumnWidthChange(t){var e=this.columnWidthChangeFunctions.findIndex(e=>t===e);~e&&this.columnWidthChangeFunctions.splice(e,1)}}});define("helpers/list/select-provider",["exports","di","layout-manager","metadata","field-manager"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=u(i);s=u(s);a=u(a);var r;let o,n,l,d,h,c;function u(e){return e&&e.__esModule?e:{default:e}}function m(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class p{constructor(){c(this)}layoutManager=o(this);metadata=(n(this),l(this));fieldManager=(d(this),h(this));get(s,e){return new Promise(i=>{this.layoutManager.get(s,e||"list",e=>{var t=this.getFromLayout(s,e);i(t)})})}getFromLayout(s,e,a){let r=[];e.forEach(e=>{if(e.name&&(null==a||!a.isColumnHidden(e.name,e.hidden))&&(a||!e.hidden)){var t=e.name,i=this.metadata.get(`entityDefs.${s}.fields.${t}.type`);i&&r.push(...this.fieldManager.getEntityTypeFieldAttributeList(s,t))}});return r}static#_=r=()=>[o,n,l,d,h,c]=m(this,[],[[(0,t.inject)(i.default),0,"layoutManager"],[(0,t.inject)(s.default),0,"metadata"],[(0,t.inject)(a.default),0,"fieldManager"]]).e}r();e.default=p});define("helpers/list/misc/sticky-bar",["exports","jquery","bullbone"],function(e,r,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;r=(i=r,i&&i.__esModule?i:{default:i});var i;class s{$bar;$scrollable;$window;$navbarRight;$middle;_isReady=!1;constructor(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.view=e;this.themeManager=this.view.getThemeManager();this.$el=e.$el;this.force=t.force||!1;this.init()}init(){this.$bar=this.$el.find(".sticked-bar");this.$middle=this.$el.find("> .list");if(this.$middle.get(0)){this.$window=(0,r.default)(window);this.$scrollable=this.$window;this.$navbarRight=(0,r.default)("#navbar .navbar-right");this.isModal=!!this.$el.closest(".modal-body").length;this.isSmallWindow=(0,r.default)(window.document).width()<this.themeManager.getParam("screenWidthXs");if(this.isModal){this.$scrollable=this.$el.closest(".modal-body");this.$navbarRight=this.$scrollable.parent().find(".modal-footer")}if(!this.force){this.$scrollable.off("scroll.list-"+this.view.cid);this.$scrollable.on("scroll.list-"+this.view.cid,()=>this._controlSticking());this.$window.off("resize.list-"+this.view.cid);this.$window.on("resize.list-"+this.view.cid,()=>this._controlSticking())}this.listenTo(this.view,"check",()=>{0===this.view.getCheckedIds().length&&!this.view.isAllResultChecked()||this._controlSticking()});this._isReady=!0}}_getMiddleTop(){void 0!==this._middleTop&&0<=this._middleTop||(this._middleTop=this._getOffsetTop(this.$middle.get(0)));return this._middleTop}_getButtonsTop(){void 0!==this._buttonsTop&&0<=this._buttonsTop||(this._buttonsTop=this._getOffsetTop(this.$el.find(".list-buttons-container").get(0)));return this._buttonsTop}_controlSticking(){if(this.view.toShowStickyBar()&&(!this.isSmallWindow||!(0,r.default)("#navbar .navbar-body").hasClass("in"))){var e=this.$scrollable.scrollTop(),t=this.force?0:this._getButtonsTop(),i=this._getMiddleTop()+this.$middle.outerHeight(!0),s=()=>{this.$bar.addClass("hidden");this.$navbarRight.removeClass("has-sticked-bar")},a=()=>{this.$bar.removeClass("hidden");this.$navbarRight.addClass("has-sticked-bar")};(!(i<=e)&&(t<e||this.force)?a:s)()}}_getOffsetTop(e){if(!e)return 0;var t=this.themeManager.getParam("navbarHeight")*this.themeManager.getFontSizeFactor(),i=!this.isSmallWindow&&!this.isModal;let s=0;for(;!e.classList.contains("modal-body")&&(isNaN(e.offsetTop)||(s+=e.offsetTop),e=e.offsetParent,e););i&&(s-=t);this.isModal||(s-=5);return s}hide(){this.$bar.addClass("hidden")}destroy(){this.stopListening(this.view,"check");if(this._isReady){this.$window.off("resize.list-"+this.view.cid);this.$scrollable.off("scroll.list-"+this.view.cid)}}}Object.assign(s.prototype,t.Events);e.default=s});define("model-factory",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.metadata=e}create(s,a,r){return new Promise(i=>{r=r||this;this.getSeed(s,e=>{var t=new e({},{entityType:s,defs:this.metadata.get(["entityDefs",s])||{}});a&&a.call(r,t);i(t)})})}getSeed(e,t){var i=this.metadata.get(["clientDefs",e,"model"])||"model";Espo.loader.require(i,e=>t(e))}}});define("exceptions",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;Espo.Exceptions=Espo.Exceptions||{};Espo.Exceptions.AccessDenied=function(e){this.message=e;Error.apply(this,arguments)};Espo.Exceptions.AccessDenied.prototype=new Error;Espo.Exceptions.AccessDenied.prototype.name="AccessDenied";Espo.Exceptions.NotFound=function(e){this.message=e;Error.apply(this,arguments)};Espo.Exceptions.NotFound.prototype=new Error;Espo.Exceptions.NotFound.prototype.name="NotFound";e.default=Espo.Exceptions});define("views/record/list",["exports","view","helpers/mass-action","helpers/export","helpers/record-modal","helpers/list/select-provider","views/record/list/settings","helpers/list/settings","helpers/list/misc/sticky-bar","helpers/record/list/column-resize","helpers/record/list/column-width-control"],function(e,t,r,n,o,i,s,a,l,d,h){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=c(t);r=c(r);n=c(n);o=c(o);i=c(i);s=c(s);a=c(a);l=c(l);d=c(d);h=c(h);function c(e){return e&&e.__esModule?e:{default:e}}class u extends t.default{constructor(e){super(e);this.options=e}template="record/list";type="list";name="list";presentationType="table";checkboxes=!0;selectable=!1;rowActionsView="views/record/row-actions/default";rowActionsDisabled=!1;entityType=null;scope=null;_internalLayoutType="list-row";listContainerEl=".list > table > tbody";showCount=!0;rowActionsColumnWidth=25;checkboxColumnWidth=40;buttonList=[];dropdownItemList=[];headerDisabled=!1;massActionsDisabled=!1;portalLayoutDisabled=!1;mandatorySelectAttributeList=null;layoutName=null;layoutScope=null;layoutAclDisabled=!1;setupHandlerType="record/list";checkboxesDisabled=!1;forceDisplayTopBar=!1;pagination=!1;header=!0;showMore=!0;columnResize=!0;massActionList=["remove","merge","massUpdate","export"];checkAllResultMassActionList=["remove","massUpdate","export"];forcedCheckAllResultMassActionList=null;quickDetailDisabled=!1;quickEditDisabled=!1;forceSettings=!1;settingsDisabled=!1;listLayout=null;_internalLayout=null;checkedList=null;allResultIsChecked=!1;checkAllResultDisabled=!1;buttonsDisabled=!1;editDisabled=!1;removeDisabled=!1;stickyBarDisabled=!1;forceStickyBar=!1;massFollowDisabled=!1;massPrintPdfDisabled=!1;massConvertCurrencyDisabled=!1;massUpdateDisabled=!1;exportDisabled=!1;mergeDisabled=!1;noDataDisabled=!1;paginationDisabled=!1;_$focusedCheckbox=null;$selectAllCheckbox=null;_disabledCheckboxes=!1;massActionDefs;rootData;_additionalRowActionList;_columnResizeHelper;collectionEventSyncList;noAllResultMassActions;events={"auxclick a.link":function(e){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){var t=$(e.currentTarget),i=t.attr("data-id");if(i&&!this.quickDetailDisabled){var t=t.parent().closest(`[data-id="${i}"]`).find(`ul.list-row-dropdown-menu[data-id="${i}"]`),s=t.find('a[data-action="quickView"]');if(!t.length||s.length){e.preventDefault();e.stopPropagation();this.actionQuickView({id:i})}}}},'click [data-action="showMore"]':async function(){await this.showMoreRecords();this.focusOnList()},"mousedown a.sort":function(e){e.preventDefault()},"click a.sort":function(e){var t=$(e.currentTarget).data("name");this.toggleSort(t)},"click .pagination a[data-page]":function(e){var t=$(e.currentTarget).data("page");$(e.currentTarget).parent().hasClass("disabled")||this.goToPage(t)},"mousedown input.record-checkbox":function(){var e=$(document.activeElement);this._$focusedCheckbox=null;e.length&&"INPUT"===e.get(0).tagName&&e.hasClass("record-checkbox")&&(this._$focusedCheckbox=e)},"click input.record-checkbox":function(e){if(!this._disabledCheckboxes){var t=$(e.currentTarget),i=this._$focusedCheckbox;if(e.shiftKey&&i){var a=this.$el.find("input.record-checkbox"),r=a.index(t),o=a.index(i);let s=i.prop("checked");a.slice(Math.min(r,o),Math.max(r,o)+1).each((e,t)=>{var i=$(t);i.prop("checked",s);this.checkboxClick(i,s)})}else this.checkboxClick(t,t.is(":checked"))}},"click .select-all":function(e){this._disabledCheckboxes||this.selectAllHandler(e.currentTarget.checked)},"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget,{actionItems:[...this.buttonList,...this.dropdownItemList],className:"list-action-item"})},'click .checkbox-dropdown [data-action="selectAllResult"]':function(){this._disabledCheckboxes||this.selectAllResult()},"click .actions-menu a.mass-action":function(e){var t=$(e.currentTarget),i=t.data("action"),s="massAction"+Espo.Utils.upperCaseFirst(i);e.preventDefault();e.stopPropagation();t=t.closest(".dropdown-menu").parent();t.find('.actions-button[data-toggle="dropdown"]').dropdown("toggle").focus();s in this?this[s]():this.massAction(i)},"click a.reset-custom-order":function(){this.resetCustomOrder()}};focusOnList(){var e=this.$el.find(".list").get(0);e&&e.focus({preventScroll:!0})}goToPage(e){Espo.Ui.notifyWait();let t=()=>{Espo.Ui.notify(!1);this.trigger("after:paginate");this.focusOnList()};if("current"===e)this.collection.fetch().then(()=>t());else{"next"===e?this.collection.nextPage().then(()=>t()):"previous"===e?this.collection.previousPage().then(()=>t()):"last"===e?this.collection.lastPage().then(()=>t()):"first"===e&&this.collection.firstPage().then(()=>t());this.trigger("paginate")}this.deactivate()}checkboxClick(e,t){var i=e.attr("data-id");t?this.checkRecord(i,e):this.uncheckRecord(i,e)}resetCustomOrder(){this.collection.offset=0;this.collection.resetOrderToDefault();this.collection.trigger("order-changed");this.collection.fetch().then(()=>{this.trigger("sort",{orderBy:this.collection.orderBy,order:this.collection.order})})}toggleSort(e){let t=!0,i=(e===this.collection.orderBy&&"asc"===this.collection.order&&(t=!1),t?"asc":"desc");Espo.Ui.notifyWait();for(var s=this.getConfig().get("recordListMaxSizeLimit")||200;this.collection.length>s;)this.collection.pop();this.collection.offset=0;this.collection.sort(e,i).then(()=>{Espo.Ui.notify(!1);this.trigger("sort",{orderBy:e,order:i})});this.collection.trigger("order-changed");this.deactivate()}toShowStickyBar(){return 0<this.getCheckedIds().length||this.isAllResultChecked()||this.pagination}initStickyBar(){this._stickyBarHelper=new l.default(this,{force:this.forceStickyBar})}showActions(){this.$el.find(".actions-button").removeClass("hidden");this.options.stickyBarDisabled||this.stickyBarDisabled||!this.massActionList.length||this._stickyBarHelper||this.initStickyBar()}hideActions(){this.$el.find(".actions-button").addClass("hidden");!this._stickyBarHelper||this.pagination&&!this.forceStickyBar||this._stickyBarHelper.hide()}selectAllHandler(e){this.checkedList=[];if(e){this.$el.find("input.record-checkbox").prop("checked",!0);this.showActions();this.collection.models.forEach(e=>{this.checkedList.push(e.id)});this.$el.find(".list > table tbody tr").addClass("active")}else{this.allResultIsChecked&&this.unselectAllResult();this.$el.find("input.record-checkbox").prop("checked",!1);this.hideActions();this.$el.find(".list > table tbody tr").removeClass("active")}this.trigger("check")}data(){var e=this.collection.total-this.collection.length-this.collection.offset;let t=this.checkAllResultDisabled;this.massActionsDisabled||this.checkAllResultMassActionList.length||(t=!0);var i=this.displayTotalCount&&0<this.collection.total&&!this.pagination;let s=this.forceDisplayTopBar||this.collection.length&&(this.pagination||this.checkboxes||this.buttonList.length&&!this.buttonsDisabled||this.dropdownItemList.length&&!this.buttonsDisabled||i);!s&&this.pagination&&!this.collection.length&&0<this.collection.offset&&(s=!0);this.forceStickyBar&&(s=!1);var a=this.checkboxes&&this.massActionList.length,a=a||this.buttonList.length||this.dropdownItemList.length,r=this.forceStickyBar||a||this.pagination,o=this.noDataDisabled||this._renderEmpty,n=this.rowList?this.rowList.map(e=>({id:e,isStarred:!(!this.hasStars||!this.collection.get(e))&&this.collection.get(e).attributes.isStarred})):[],l=(this.checkboxColumnWidth*this._fontSizeFactor).toString()+"px";return{scope:this.scope,collectionLength:this.collection.models.length,entityType:this.entityType,header:this.header,hasColumnResize:this._hasColumnResize(),headerDefs:this._getHeaderDefs(),hasPagination:this.hasPagination(),showMoreActive:this.collection.hasMore(),showMoreEnabled:this.showMore,showCount:this.showCount&&0<this.collection.total,moreCount:e,checkboxes:this.checkboxes,massActionDataList:this.getMassActionDataList(),rowList:this.rowList,rowDataList:n,topBar:s,checkAllResultDisabled:t,buttonList:this.buttonList,dropdownItemList:this.dropdownItemList,displayTotalCount:i,displayActionsButtonGroup:a,totalCountFormatted:this.getNumberUtil().formatInt(this.collection.total),moreCountFormatted:this.getNumberUtil().formatInt(e),checkboxColumnWidth:l,noDataDisabled:o,hasStickyBar:r}}init(){this.type=this.options.type||this.type;this.listLayout=this.options.listLayout||this.listLayout;this.layoutName=this.options.layoutName||this.layoutName||this.type;this.layoutScope=this.options.layoutScope||this.layoutScope;this.layoutAclDisabled=this.options.layoutAclDisabled||this.layoutAclDisabled;this.headerDisabled=this.options.headerDisabled||this.headerDisabled;this.noDataDisabled=this.options.noDataDisabled||this.noDataDisabled;this.collectionEventSyncList?this.collectionEventSyncList=[...this.collectionEventSyncList]:this.collectionEventSyncList=[];this.headerDisabled?this.header=!1:this.header=(_.isUndefined(this.options.header)?this:this.options).header;this.pagination=(null==this.options.pagination?this:this.options).pagination;this.paginationDisabled&&(this.pagination=!1);void 0!==this.options.columnResize&&(this.columnResize=this.options.columnResize);this.checkboxes=(_.isUndefined(this.options.checkboxes)?this:this.options).checkboxes;this.selectable=(_.isUndefined(this.options.selectable)?this:this.options).selectable;this.checkboxesDisabled=!1===this.options.checkboxes;this.rowActionsView=(_.isUndefined(this.options.rowActionsView)?this:this.options).rowActionsView;this.showMore=(_.isUndefined(this.options.showMore)?this:this.options).showMore;this.massActionsDisabled=this.options.massActionsDisabled||this.massActionsDisabled;this.portalLayoutDisabled=this.options.portalLayoutDisabled||this.portalLayoutDisabled;this.massActionsDisabled&&!this.selectable&&(this.checkboxes=!1);this.rowActionsDisabled=this.options.rowActionsDisabled||this.rowActionsDisabled;this.dropdownItemList=Espo.Utils.cloneDeep(this.options.dropdownItemList||this.dropdownItemList);"buttonsDisabled"in this.options&&(this.buttonsDisabled=this.options.buttonsDisabled);"checkAllResultDisabled"in this.options&&(this.checkAllResultDisabled=this.options.checkAllResultDisabled);this.rootData=this.options.rootData||{};this._fontSizeFactor=this.getThemeManager().getFontSizeFactor()}getModelScope(e){return this.scope}selectAllResult(){this.allResultIsChecked=!0;this.hideActions();this.$el.find("input.record-checkbox").prop("checked",!0).attr("disabled","disabled");this.$selectAllCheckbox.prop("checked",!0);this.massActionList.forEach(e=>{this.checkAllResultMassActionList.includes(e)||this.$el.find(`div.list-buttons-container .actions-menu li a.mass-action[data-action="${e}"]`).parent().addClass("hidden")});this.checkAllResultMassActionList.length&&this.showActions();this.$el.find(".list > table tbody tr").removeClass("active");this.trigger("select-all-results")}unselectAllResult(){this.allResultIsChecked=!1;this.$el.find("input.record-checkbox").prop("checked",!1).removeAttr("disabled");this.$selectAllCheckbox.prop("checked",!1);this.massActionList.forEach(e=>{this.checkAllResultMassActionList.includes(e)||(this.massActionDefs[e]||{}).hidden||this.$el.find(`div.list-buttons-container .actions-menu li a.mass-action[data-action="${e}"]`).parent().removeClass("hidden")})}deactivate(){if(this.$el){this.$el.find(".pagination a").addClass("disabled");this.$el.find("a.sort").addClass("disabled")}}export(t,i,e){if(!t){t={entityType:this.entityType};if(this.allResultIsChecked){t.where=this.getWhereForAllResult();t.searchParams=this.collection.data||null;t.searchData=this.collection.data||{}}else t.ids=this.checkedList}i=i||"Export";var s={scope:this.entityType};if(e)s.fieldList=e;else{let t=[];(this.listLayout||[]).forEach(e=>{e.name&&t.push(e.name)});s.fieldList=t}let a=new n.default(this),r=this.allResultIsChecked&&a.checkIsIdle(this.collection.total),o=e=>{window.location=this.getBasePath()+"?entryPoint=download&id="+e};this.createView("dialogExport","views/export/modals/export",s,e=>{e.render();this.listenToOnce(e,"proceed",e=>{if(!e.exportAllFields){t.attributeList=e.attributeList;t.fieldList=e.fieldList}t.idle=r;t.format=e.format;t.params=e.params;Espo.Ui.notify(this.translate("pleaseWait","messages"));Espo.Ajax.postRequest(i,t,{timeout:0}).then(e=>{Espo.Ui.notify(!1);if(e.exportId)a.process(e.exportId).then(e=>{this.listenToOnce(e,"download",e=>o(e))});else{if(!e.id)throw new Error("No attachment-id.");o(e.id)}})})})}massAction(e){let o=this.massActionDefs[e]||{};var t=o.handler;if(t){let i=o.actionFunction||"action"+Espo.Utils.upperCaseFirst(e),s={entityType:this.entityType,action:e,params:this.getMassActionSelectionPostData()};Espo.loader.require(t,e=>{var t=new e(this);t[i].call(t,s)})}else{var t=o.bypassConfirmation||!1,i=o.confirmationMessage||"confirmation";let a=o.acl,r=o.aclScope;var s=()=>{if(!a&&!r||this.getAcl().check(r||this.scope,a)){var e,t=[],i={};if(this.allResultIsChecked){i.where=this.getWhereForAllResult();i.searchParams=this.collection.data||{};i.selectData=i.searchData;i.byWhere=!0}else{i.idList=t;i.ids=t}for(e in this.checkedList)t.push(this.checkedList[e]);i.entityType=this.entityType;var s=o.waitMessage||"pleaseWait",s=(Espo.Ui.notify(this.translate(s,"messages",this.scope)),o.url);Espo.Ajax.postRequest(s,i).then(t=>{let i=t.successMessage||o.successMessage||"done";this.collection.fetch().then(()=>{let e=this.translate(i,"messages",this.scope);"count"in t&&(e=e.replace("{count}",t.count));Espo.Ui.success(e)})})}else Espo.Ui.error(this.translate("Access denied"))};t?s.call(this):this.confirm(this.translate(i,"messages",this.scope),s,this)}}getWhereForAllResult(){var e=[...this.collection.getWhere()];this.options.allResultWhereItem&&e.push(this.options.allResultWhereItem);return e}getMassActionSelectionPostData(){var e={};if(this.allResultIsChecked){e.where=this.getWhereForAllResult();e.searchParams=this.collection.data||{};e.selectData=this.collection.data||{};e.byWhere=!0}else{e.ids=[];for(var t in this.checkedList)e.ids.push(this.checkedList[t])}return e}massActionRecalculateFormula(){let s=!1,a=this.allResultIsChecked;a||(s=this.checkedList);this.confirm({message:this.translate("recalculateFormulaConfirmation","messages"),confirmText:this.translate("Yes")},()=>{Espo.Ui.notify(this.translate("pleaseWait","messages"));var e=this.getMassActionSelectionPostData();let i=new r.default(this);var t=!!e.searchParams&&i.checkIsIdle(this.collection.total);Espo.Ajax.postRequest("MassAction",{entityType:this.entityType,action:"recalculateFormula",params:e,idle:t}).then(e=>{e=e||{};let t=()=>{this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"));a?this.selectAllResult():s.forEach(e=>{this.checkRecord(e)})})};e.id?i.process(e.id,"recalculateFormula").then(e=>{this.listenToOnce(e,"close:success",()=>t())}):t()})})}massActionRemove(){if(!this.getAcl().check(this.entityType,"delete"))return Espo.Ui.error(this.translate("Access denied")),!1;this.confirm({message:this.translate("removeSelectedRecordsConfirmation","messages",this.scope),confirmText:this.translate("Remove")},()=>{Espo.Ui.notifyWait();let e=new r.default(this);var t=this.getMassActionSelectionPostData(),i=!!t.searchParams&&e.checkIsIdle(this.collection.total);Espo.Ajax.postRequest("MassAction",{entityType:this.entityType,action:"delete",params:t,idle:i}).then(t=>{t=t||{};let i=t=>{if(t){this.unselectAllResult();this.collection.fetch().then(()=>{var e=1===t?"massRemoveResultSingle":"massRemoveResult";Espo.Ui.success(this.translate(e,"messages").replace("{count}",t))});this.collection.trigger("after:mass-remove");Espo.Ui.notify(!1)}else Espo.Ui.warning(this.translate("noRecordsRemoved","messages"))};if(t.id)e.process(t.id,"delete").then(e=>{this.listenToOnce(e,"close:success",e=>i(e.count))});else{let e=t.count;if(this.allResultIsChecked)i(e);else{var s=t.ids||[];if(e){s.forEach(e=>{Espo.Ui.notify(!1);this.collection.trigger("model-removing",e);this.removeRecordFromList(e);this.uncheckRecord(e,null,!0)});if(this.$selectAllCheckbox.prop("checked")){this.$selectAllCheckbox.prop("checked",!1);this.collection.hasMore()&&this.showMoreRecords({skipNotify:!0})}this.collection.trigger("after:mass-remove");s=1===e?"massRemoveResultSingle":"massRemoveResult",s=this.translate(s,"messages").replace("{count}",e),Espo.Ui.success(s)}else Espo.Ui.warning(this.translate("noRecordsRemoved","messages"))}}})})}massActionPrintPdf(){var e=this.getConfig().get("massPrintPdfMaxCount");if(e&&this.checkedList.length>e){e=this.translate("massPrintPdfMaxCountError","messages").replace("{maxCount}",e.toString());Espo.Ui.error(e)}else{let t=[];for(var i in this.checkedList)t.push(this.checkedList[i]);this.createView("pdfTemplate","views/modals/select-template",{entityType:this.entityType},e=>{e.render();this.listenToOnce(e,"select",e=>{this.clearView("pdfTemplate");Espo.Ui.notifyWait();Espo.Ajax.postRequest("Pdf/action/massPrint",{idList:t,entityType:this.entityType,templateId:e.id},{timeout:0}).then(e=>{Espo.Ui.notify(!1);window.open("?entryPoint=download&id="+e.id,"_blank")})})})}}massActionFollow(){var e=this.checkedList.length,e=this.translate("confirmMassFollow","messages").replace("{count}",e.toString());this.confirm({message:e,confirmText:this.translate("Follow")},()=>{Espo.Ui.notify(this.translate("pleaseWait","messages"));Espo.Ajax.postRequest("MassAction",{action:"follow",entityType:this.entityType,params:this.getMassActionSelectionPostData()}).then(e=>{var t=e.count||0;let i="massFollowResult";if(t){1===t&&(i+="Single");Espo.Ui.success(this.translate(i,"messages").replace("{count}",t.toString()))}else Espo.Ui.warning(this.translate("massFollowZeroResult","messages"))})})}massActionUnfollow(){var e=this.checkedList.length,e=this.translate("confirmMassUnfollow","messages").replace("{count}",e.toString());this.confirm({message:e,confirmText:this.translate("Yes")},()=>{Espo.Ui.notify(this.translate("pleaseWait","messages"));var e=this.getMassActionSelectionPostData();let i=new r.default(this);var t=!!e.searchParams&&i.checkIsIdle(this.collection.total);Espo.Ajax.postRequest("MassAction",{action:"unfollow",entityType:this.entityType,params:e,idle:t}).then(e=>{let t=e=>{let t="massUnfollowResult";e||Espo.Ui.warning(this.translate("massUnfollowZeroResult","messages"));1===e&&(t+="Single");Espo.Ui.success(this.translate(t,"messages").replace("{count}",e))};e.id?i.process(e.id,"unfollow").then(e=>{this.listenToOnce(e,"close:success",e=>t(e.count))}):t(e.count||0)})})}massActionMerge(){if(!this.getAcl().check(this.entityType,"edit"))return Espo.Ui.error(this.translate("Access denied")),!1;if(this.checkedList.length<2)Espo.Ui.error(this.translate("select2OrMoreRecords","messages"));else if(4<this.checkedList.length){var e=this.translate("selectNotMoreThanNumberRecords","messages").replace("{number}","4");Espo.Ui.error(e)}else{this.checkedList.sort();e="#"+this.entityType+"/merge/ids="+this.checkedList.join(",");this.getRouter().navigate(e,{trigger:!1});this.getRouter().dispatch(this.entityType,"merge",{ids:this.checkedList.join(","),collection:this.collection})}}async massActionMassUpdate(){if(!this.getAcl().check(this.entityType,"edit"))return Espo.Ui.error(this.translate("Access denied")),!1;Espo.Ui.notifyWait();let s=!1,a=this.allResultIsChecked;a||(s=this.checkedList);var e=this.getMetadata().get(["clientDefs",this.entityType,"modalViews","massUpdate"])||"views/modals/mass-update";let r=await this.createView("massUpdate",e,{scope:this.scope,entityType:this.entityType,ids:s,where:this.getWhereForAllResult(),searchParams:this.collection.data,byWhere:this.allResultIsChecked,totalCount:this.collection.total});this.listenToOnce(r,"after:update",async e=>{if(e.idle)this.listenToOnce(r,"close",async()=>{await this.collection.fetch();a?this.selectAllResult():s.forEach(e=>this.checkRecord(e))});else{r.close();var t=e.count;await this.collection.fetch();if(t){var i=1===t?"massUpdateResultSingle":"massUpdateResult",i=this.translate(i,"messages").replace("{count}",t);Espo.Ui.success(i)}else Espo.Ui.warning(this.translate("noRecordsUpdated","messages"));a?this.selectAllResult():s.forEach(e=>this.checkRecord(e))}});Espo.Ui.notify();await r.render()}massActionExport(){this.getConfig().get("exportDisabled")&&!this.getUser().isAdmin()||this.export()}massActionUnlink(){this.confirm({message:this.translate("unlinkSelectedRecordsConfirmation","messages"),confirmText:this.translate("Unlink")},()=>{Espo.Ui.notifyWait();Espo.Ajax.deleteRequest(this.collection.url,{ids:this.checkedList}).then(()=>{Espo.Ui.success(this.translate("Unlinked"));this.collection.fetch();this.model.trigger("after:unrelate")})})}massActionConvertCurrency(){let i=!1,s=this.allResultIsChecked;s||(i=this.checkedList);this.createView("modalConvertCurrency","views/modals/mass-convert-currency",{entityType:this.entityType,ids:i,where:this.getWhereForAllResult(),searchParams:this.collection.data,byWhere:this.allResultIsChecked,totalCount:this.collection.total},t=>{t.render();this.listenToOnce(t,"after:update",e=>{if(e.idle)this.listenToOnce(t,"close",()=>{this.collection.fetch().then(()=>{s?this.selectAllResult():i.forEach(e=>{this.checkRecord(e)})})});else{let t=e.count;this.collection.fetch().then(()=>{if(t){let e="massUpdateResult";1===t&&(e="massUpdateResultSingle");Espo.Ui.success(this.translate(e,"messages").replace("{count}",t))}else Espo.Ui.warning(this.translate("noRecordsUpdated","messages"));s?this.selectAllResult():i.forEach(e=>{this.checkRecord(e)})})}})})}addMassAction(e,t,i){if("string"!=typeof e){var s=e.name;this.massActionDefs[s]={...this.massActionDefs[s],...e};e=s}i?this.massActionList.unshift(e):this.massActionList.push(e);t&&!this.noAllResultMassActions&&(i?this.checkAllResultMassActionList.unshift(e):this.checkAllResultMassActionList.push(e));this.checkboxesDisabled||(this.checkboxes=!0)}removeMassAction(e){var t=this.massActionList.indexOf(e);~t&&this.massActionList.splice(t,1);t=this.checkAllResultMassActionList.indexOf(e);~t&&this.checkAllResultMassActionList.splice(t,1)}removeAllResultMassAction(e){var t=this.checkAllResultMassActionList.indexOf(e);~t&&this.checkAllResultMassActionList.splice(t,1)}setup(){this.addHandler("click","a.link",(e,t)=>{if(!(e.ctrlKey||e.metaKey||e.shiftKey)){e.stopPropagation();if(this.scope&&!this.selectable){e.preventDefault();this.processLinkClick(t.dataset.id)}}});if(void 0===this.collection)throw new Error("Collection has not been injected into views/record/list view.");this.layoutLoadCallbackList=[];this.entityType=this.collection.entityType||null;this.scope=this.options.scope||this.entityType;this.massActionList=Espo.Utils.clone(this.massActionList);this.checkAllResultMassActionList=Espo.Utils.clone(this.checkAllResultMassActionList);this.buttonList=Espo.Utils.clone(this.buttonList);this.mandatorySelectAttributeList=Espo.Utils.clone(this.options.mandatorySelectAttributeList||this.mandatorySelectAttributeList||[]);this.forceStickyBar=this.options.forceStickyBar||this.forceStickyBar;this.editDisabled=this.options.editDisabled||this.editDisabled||this.getMetadata().get(["clientDefs",this.scope,"editDisabled"]);this.removeDisabled=this.options.removeDisabled||this.removeDisabled||this.getMetadata().get(["clientDefs",this.scope,"removeDisabled"]);this.setupMassActions();this.selectable&&(this.events["click .list a.link"]=e=>{e.preventDefault();var t=$(e.currentTarget).attr("data-id");t&&this.selectModel(t);e.stopPropagation()});"showCount"in this.options&&(this.showCount=this.options.showCount);this.displayTotalCount=this.showCount&&this.getConfig().get("displayListViewRecordCount");"displayTotalCount"in this.options&&(this.displayTotalCount=this.options.displayTotalCount);this.forceDisplayTopBar=this.options.forceDisplayTopBar||this.forceDisplayTopBar;this.massActionList.length||this.selectable||(this.checkboxes=!1);this.options.forceSettings&&(this.forceSettings=!0);this.hasStars=this.getMetadata().get(`scopes.${this.entityType}.stars`)||!1;this.getUser().isPortal()&&!this.portalLayoutDisabled&&this.getMetadata().get(["clientDefs",this.scope,"additionalLayouts",this.layoutName+"Portal"])&&(this.layoutName+="Portal");this.setupRowActionDefs();this.setupSettings();this.wait(this.getHelper().processSetupHandlers(this,this.setupHandlerType));this.listenTo(this.collection,"sync",(e,t,i)=>{this._renderEmpty=!1;i=i||{};if(i.previousDataList){var s=this.collection.models.map(e=>Espo.Utils.cloneDeep(e.attributes));if(_.isEqual(s,i.previousDataList)&&i.previousTotal===this.collection.total)return}if(this.noRebuild)this.noRebuild=null;else if(i.noRebuild)this.noRebuild=null;else{this.checkedList=[];this.allResultIsChecked=!1;this.buildRowsAndRender()}});this.checkedList=[];this.options.skipBuildRows||this.buildRows();if(this.pagination){this.createView("pagination","views/record/list-pagination",{collection:this.collection,displayTotalCount:this.displayTotalCount,recordView:this});this.createView("paginationSticky","views/record/list-pagination",{collection:this.collection,displayTotalCount:this.displayTotalCount,recordView:this});this.on("request-page",e=>{this.collection.isBeingFetched()||"next"===e&&!this.collection.hasNextPage()||"previous"===e&&!this.collection.hasPreviousPage()||this.goToPage(e)})}this._renderEmpty=this.options.skipBuildRows;this.columnResize&&this._listSettingsHelper&&(this._columnResizeHelper=new d.default(this,this._listSettingsHelper))}buildRowsAndRender(){let e,t="modal";if(this.hasView(t)&&this.getView(t).isRendered()){e=this.getView(t);this.unchainView(t)}this.buildRows(async()=>{await this.reRender({force:!0});e&&this.setView(t,e)})}processLinkClick(e){var a=this,t=this.getModelScope(e);let r=this.collection.clone({withModels:!0});var i={id:e,model:r.get(e)};this.collectionEventSyncList&&this.listenTo(r,"all",function(e){if(a.collectionEventSyncList.includes(e)){for(var t=arguments.length,i=new Array(1<t?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];a.collection.trigger(e,...i)}});this.listenTo(r,"model-sync",(e,t)=>{"destroy"===t.action&&this.removeRecordFromList(e.id);var i=this.collection.get(e.id);!i||"set"!==t.action&&"fetch"!==t.action&&"save"!==t.action||i.setMultiple(e.getClonedAttributes(),t)});this.listenTo(r,"sync",(e,t,i)=>{if(i.more){var s=r.models.slice(this.collection.length);this.collection.add(s);this.collection.total=r.total;this.collection.lengthCorrection=r.lengthCorrection;this.collection.trigger("sync",e,t,i)}});this.options.keepCurrentRootUrl&&(i.rootUrl=this.getRouter().getCurrentUrl());i.rootData=this.rootData;this.getRouter().navigate(`#${t}/view/`+e,{trigger:!1});this.getRouter().dispatch(t,"view",i)}selectModel(e){var t=this.collection.get(e);if(this.checkboxes)this.trigger("select",[t]);else{this.trigger("select",t);this.options.onSelect&&this.options.onSelect([t])}}onRemove(){this.destroyStickyBar()}afterRender(){this.destroyStickyBar();this.$selectAllCheckbox=this.$el.find("input.select-all");this.allResultIsChecked?this.selectAllResult():this.checkedList.length&&this.checkedList.forEach(e=>{this.checkRecord(e)});this.pagination&&this.$el.find(".list-buttons-container").length&&this.initStickyBar();this._disabledCheckboxes&&this.disableCheckboxes()}destroyStickyBar(){this._stickyBarHelper&&this._stickyBarHelper.destroy();this._stickyBarHelper=null}setupMassActions(){if(this.massActionsDisabled){this.massActionList=[];this.checkAllResultMassActionList=[];this.massActionDefs={}}else{if(!this.getAcl().checkScope(this.entityType,"delete")){this.removeMassAction("remove");this.removeMassAction("merge")}(this.removeDisabled||this.getMetadata().get(["clientDefs",this.scope,"massRemoveDisabled"]))&&this.removeMassAction("remove");if(!this.getAcl().checkScope(this.entityType,"edit")){this.removeMassAction("massUpdate");this.removeMassAction("merge")}(this.getMetadata().get(["clientDefs",this.scope,"mergeDisabled"])||this.mergeDisabled)&&this.removeMassAction("merge");this.massActionDefs={remove:{groupIndex:0},merge:{groupIndex:0},massUpdate:{groupIndex:0},export:{groupIndex:2},follow:{groupIndex:4},unfollow:{groupIndex:4},convertCurrency:{groupIndex:6},printPdf:{groupIndex:8},...this.getMetadata().get(["clientDefs","Global","massActionDefs"])||{},...this.getMetadata().get(["clientDefs",this.scope,"massActionDefs"])||{}};var e=[...this.getMetadata().get(["clientDefs","Global","massActionList"])||[],...this.getMetadata().get(["clientDefs",this.scope,"massActionList"])||[]],t=[...this.getMetadata().get(["clientDefs","Global","checkAllResultMassActionList"])||[],...this.getMetadata().get(["clientDefs",this.scope,"checkAllResultMassActionList"])||[]];e.forEach(e=>{var t=this.massActionDefs[e]||{};Espo.Utils.checkActionAvailability(this.getHelper(),t)&&Espo.Utils.checkActionAccess(this.getAcl(),this.entityType,t)&&this.massActionList.push(e)});this.noAllResultMassActions=this.collection.url!==this.entityType&&!this.options.forceAllResultSelectable;this.checkAllResultMassActionList=this.checkAllResultMassActionList.filter(e=>this.massActionList.includes(e));t.forEach(e=>{if(!this.noAllResultMassActions&&this.massActionList.includes(e)){var t=this.massActionDefs[e]||{};Espo.Utils.checkActionAvailability(this.getHelper(),t)&&Espo.Utils.checkActionAccess(this.getAcl(),this.entityType,t)&&this.checkAllResultMassActionList.push(e)}});e.concat(t).forEach(e=>{let a=this.massActionDefs[e]||{};if(a.initFunction&&a.handler){let s=this;this.wait(new Promise(i=>{Espo.loader.require(a.handler,e=>{var t=new e(s);t[a.initFunction].call(t);i()})}))}});(this.getConfig().get("exportDisabled")&&!this.getUser().isAdmin()||"no"===this.getAcl().getPermissionLevel("exportPermission")||this.getMetadata().get(["clientDefs",this.scope,"exportDisabled"])||this.exportDisabled)&&this.removeMassAction("export");("yes"!==this.getAcl().getPermissionLevel("massUpdatePermission")||this.editDisabled||this.massUpdateDisabled||this.getMetadata().get(["clientDefs",this.scope,"massUpdateDisabled"]))&&this.removeMassAction("massUpdate");if(!this.massFollowDisabled&&this.getMetadata().get(["scopes",this.entityType,"stream"])&&this.getAcl().check(this.entityType,"stream")||this.getMetadata().get(["clientDefs",this.scope,"massFollowDisabled"])){this.addMassAction("follow");this.addMassAction("unfollow",!0)}!this.massPrintPdfDisabled&&(this.getHelper().getAppParam("templateEntityTypeList")||[]).includes(this.entityType)&&this.addMassAction("printPdf");this.options.unlinkMassAction&&this.collection&&this.addMassAction("unlink",!1,!0);if(!this.massConvertCurrencyDisabled&&!this.getMetadata().get(["clientDefs",this.scope,"convertCurrencyDisabled"])&&1<this.getConfig().get("currencyList").length&&this.getAcl().checkScope(this.scope,"edit")&&"yes"===this.getAcl().getPermissionLevel("massUpdatePermission")){e=this.getFieldManager().getEntityTypeFieldList(this.entityType,{type:"currency",acl:"edit"});e.length&&this.addMassAction("convertCurrency",!0)}this.setupMassActionItems();this.getUser().isAdmin()&&this.getMetadata().get(["formula",this.entityType,"beforeSaveCustomScript"])&&this.addMassAction("recalculateFormula",!0);this.noAllResultMassActions&&Espo.Utils.clone(this.checkAllResultMassActionList).forEach(e=>{this.removeAllResultMassAction(e)});this.forcedCheckAllResultMassActionList&&(this.checkAllResultMassActionList=Espo.Utils.clone(this.forcedCheckAllResultMassActionList));"yes"!==this.getAcl().getPermissionLevel("massUpdatePermission")&&this.removeAllResultMassAction("remove");Espo.Utils.clone(this.massActionList).forEach(e=>{var t="massAction"+Espo.Utils.upperCaseFirst(e)+"Disabled";(this[t]||this.options[t])&&this.removeMassAction(e)})}}setupMassActionItems(){}filterListLayout(s){if(!this._cachedFilteredListLayout){let e=this._cachedScopeForbiddenFieldList=this._cachedScopeForbiddenFieldList||this.getAcl().getScopeForbiddenFieldList(this.entityType,"read"),t=(this.layoutAclDisabled&&(e=[]),Espo.Utils.cloneDeep(s));var a,r,o=[];for([a,r]of s.entries())if(r.name&&e.includes(r.name)){r.customLabel="";r.notSortable=!0;o.push(a)}o.reverse().forEach(e=>t.splice(e,1));let i=this.getMetadata().get(`entityDefs.${this.entityType}.fields`)||{};t.forEach(e=>{e.name&&i[e.name]&&i[e.name].orderDisabled&&(e.notSortable=!0)});this._cachedFilteredListLayout=t}return this._cachedFilteredListLayout}_loadListLayout(e){this.layoutLoadCallbackList.push(e);if(!this.layoutIsBeingLoaded){this.layoutIsBeingLoaded=!0;var t=this.layoutName,i=this.layoutScope||this.collection.entityType;this.getHelper().layoutManager.get(i,t,e=>{let t=this.filterListLayout(e);this.layoutLoadCallbackList.forEach(e=>{e(t);this.layoutLoadCallbackList=[];this.layoutIsBeingLoaded=!1})})}}async getSelectAttributeList(e){e??=()=>{};if(null===this.scope)return e(null),null;this.listLayout||await new Promise(t=>{this._loadListLayout(e=>{this.listLayout=e;t()})});var t=this.fetchAttributeListFromLayout();this.mandatorySelectAttributeList&&t.push(...this.mandatorySelectAttributeList);e(t);return t}fetchAttributeListFromLayout(){var e=new i.default;return e.getFromLayout(this.entityType,this.listLayout,this._listSettingsHelper)}_hasColumnResize(){return!!this._listSettingsHelper&&this._listSettingsHelper.getColumnResize()}_getHeaderDefs(){var s=this._hasColumnResize(),a=this._listSettingsHelper?this._listSettingsHelper.getColumnWidthMap():{};if(!this.listLayout||!Array.isArray(this.listLayout))return[];let r=!1;var o,n=this.listLayout.filter(e=>!(!this._listSettingsHelper&&e.hidden||this._listSettingsHelper&&e.name&&this._listSettingsHelper.isColumnHidden(e.name,e.hidden))).map(e=>({...e})),l=[];for(o of n){let e=!1,t=null,i=!1;var d=o.name;if(d&&d in a){var h=a[d];e=h.value+h.unit;"%"===h.unit&&(t=h.value);i=!0}else if("width"in o&&null!==o.width){e=o.width+"%";t=o.width}else"widthPx"in o?e=(o.widthPx*this._fontSizeFactor).toString()+"px":r=!0;var h=o.label||d,c={name:d,isSortable:!o.notSortable,width:e,align:"align"in o&&o.align,resizable:s&&e&&1<n.length,resizeOnRight:s&&e&&!r,widthPercent:t,isResized:i};if("customLabel"in o){c.customLabel=o.customLabel;c.hasCustomLabel=!0;c.label=c.customLabel}else c.label=this.translate(h,"fields",this.collection.entityType);o.noLabel&&(c.label=null);if(c.isSortable){c.isSorted=this.collection.orderBy===d;c.isSorted&&(c.isDesc="desc"===this.collection.order)}l.push(c)}{var u;let e=0,t=0,i=0;for(u of l)if(null===u.widthPercent){e+=3;i++}else{e+=u.widthPercent;u.isResized&&(t+=u.widthPercent)}if(r&&100<e){var m,p=(100-3*i-5-t)/e;for(m of l)if(null!==m.widthPercent&&!m.isResized){m.widthPercent=m.widthPercent*p;m.width=m.widthPercent.toString()+"%"}}}var t=this.collection.orderBy!==this.collection.defaultOrderBy||this.collection.order!==this.collection.defaultOrder;if(this.rowActionsView&&!this.rowActionsDisabled||t){let e=null;t&&(e=$("<a>").attr("role","button").attr("tabindex","0").addClass("reset-custom-order").attr("title",this.translate("Reset")).append($("<span>").addClass("fas fa-times fa-sm")).get(0).outerHTML);t=(this._fontSizeFactor*this.rowActionsColumnWidth).toString()+"px";l.push({width:t,html:e,className:"action-cell"})}return l}_convertLayout(e,t){t=t||this.collection.prepareModel();var i,s=[];this.checkboxes&&s.push({name:"r-checkboxField",columnName:"r-checkbox",template:"record/list-checkbox"});for(i of e){var a=i.type||t.getFieldType(i.name)||"base";if(i.name){var r={columnName:i.name,name:i.name+"Field",view:i.view||t.getFieldParam(i.name,"view")||this.getFieldManager().getViewName(a),options:{defs:{name:i.name,params:i.params||{}},mode:"list"}};i.width&&(r.options.defs.width=i.width);i.widthPx&&(r.options.defs.widthPx=i.widthPx);i.link&&(r.options.mode="listLink");i.align&&(r.options.defs.align=i.align);if(i.options)for(var o in i.options)void 0===r.options[o]&&(r.options[o]=i.options[o]);i.name&&this._listSettingsHelper&&this._listSettingsHelper.isColumnHidden(i.name,i.hidden)||!this._listSettingsHelper&&i.hidden||s.push(r)}}this.rowActionsView&&!this.rowActionsDisabled&&s.push(this.getRowActionsDefs());return s}checkRecord(e,t,i){if(!this._disabledCheckboxes&&this.collection.get(e)){t=t||this.$el.find('.record-checkbox[data-id="'+e+'"]');if(t.length){t.get(0).checked=!0;t.closest("tr").addClass("active")}var s=this.checkedList.indexOf(e);-1===s&&this.checkedList.push(e);this.handleAfterCheck(i)}}uncheckRecord(e,t,i){t=t||this.$el.find('.record-checkbox[data-id="'+e+'"]');if(t.get(0)){t.get(0).checked=!1;t.closest("tr").removeClass("active")}var s=this.checkedList.indexOf(e);-1!==s&&this.checkedList.splice(s,1);this.handleAfterCheck(i)}handleAfterCheck(e){this.checkedList.length?this.showActions():this.hideActions();this.checkedList.length===this.collection.models.length?this.$el.find(".select-all").prop("checked",!0):this.$el.find(".select-all").prop("checked",!1);e||this.trigger("check")}getRowActionsDefs(){var e={defs:{params:{}},additionalActionList:this._additionalRowActionList||[],scope:this.scope};if(this.options.rowActionsOptions)for(var t in this.options.rowActionsOptions)e[t]=this.options.rowActionsOptions[t];return{columnName:"buttons",name:"buttonsField",view:this.rowActionsView,options:e}}isAllResultChecked(){return this.allResultIsChecked}getCheckedIds(){return Espo.Utils.clone(this.checkedList)}getSelected(){let s=[];this.$el.find("input.record-checkbox:checked").each((e,t)=>{var i=$(t).attr("data-id"),i=this.collection.get(i);s.push(i)});return s}getInternalLayoutForModel(e,t){var i=t.entityType;null===this._internalLayout&&(this._internalLayout={});i in this._internalLayout||(this._internalLayout[i]=this._convertLayout(this.listLayout[i],t));e(this._internalLayout[i])}getInternalLayout(t,e){if(null!==this.scope||Array.isArray(this.listLayout))if(null!==this._internalLayout)t(this._internalLayout);else if(null!==this.listLayout){this._internalLayout=this._convertLayout(this.listLayout);t(this._internalLayout)}else this._loadListLayout(e=>{this.listLayout=e;this._internalLayout=this._convertLayout(e);t(this._internalLayout)});else e?this.getInternalLayoutForModel(t,e):t(null)}getCellSelector(e,t){return`${this.getSelector()} ${this.getRowSelector(e.id)} .cell[data-name="${t.columnName}"]`}prepareInternalLayout(e,t){e.forEach(e=>{e.fullSelector=this.getCellSelector(t,e);if(this.header&&e.options&&e.options.defs){e.options.defs.width=void 0;e.options.defs.widthPx=void 0}})}buildRow(e,i,s){let a=i.id??e.toString();this.rowList.push(a);this.getInternalLayout(e=>{e=Espo.Utils.cloneDeep(e);this.prepareInternalLayout(e,i);var t={edit:this.getAcl().checkModel(i,"edit")&&!this.editDisabled,delete:this.getAcl().checkModel(i,"delete")&&!this.removeDisabled};this.createView(a,"views/base",{model:i,acl:t,rowActionHandlers:this._rowActionHandlers||{},selector:this.getRowSelector(a),optionsToPass:["acl","rowActionHandlers"],layoutDefs:{type:this._internalLayoutType,layout:e},setViewBeforeCallback:this.options.skipBuildRows&&!this.isRendered()},s)},i)}buildRows(a){this.checkedList=[];this.rowList=[];if(this.collection.length<=0){if("function"==typeof a){a();this.trigger("after:build-rows")}}else{this.wait(!0);let i=this.collection.models,s=0;i.forEach((e,t)=>{this.buildRow(t,e,()=>{s++;if(s===i.length){"function"==typeof a&&a();this.wait(!1);this.trigger("after:build-rows")}})})}}showMoreRecords(i,r,o,n,t){r=r||this.collection;n=n||this.$el.find(".show-more");o=o||this.$el.find(this.listContainerEl);i=i||{};let l=this.$el.find(".list");n.children("a").addClass("disabled");i.skipNotify||Espo.Ui.notifyWait();let s=r.length,d=()=>{n.parent().append(n);if(r.hasMore()){var e=r.total-r.offset-r.length-r.lengthCorrection;this.$el.find(".more-count").text(this.getNumberUtil().formatInt(e));n.removeClass("hidden");l.addClass("has-show-more")}else{n.remove();l.removeClass("has-show-more")}n.children("a").removeClass("disabled");this.allResultIsChecked&&this.$el.find("input.record-checkbox").attr("disabled","disabled").prop("checked",!0);i.skipNotify||Espo.Ui.notify(!1);t&&t.call(this);this.trigger("after:show-more",s)},h=r.length;let e=(e,t)=>{t.changes.merged.length&&(r.lengthCorrection+=t.changes.merged.length)};this.listenToOnce(r,"update",e);r.fetch({success:()=>{i.skipNotify||Espo.Ui.notify(!1);n.addClass("hidden");l.removeClass("has-show-more");let s=r.length-h,a=0;r.length<=h&&d();for(let e=h;e<r.length;e++){var t=r.at(e);this.buildRow(e,t,e=>{var t=e.model,i=this.getDomRowItem(t.id);i&&i.length&&i.remove();o.append(this.getRowContainerHtml(t.id));e.render().then(()=>{a++;a===s&&d()})})}this.noRebuild=!0},remove:!1,more:!0}).catch(()=>this.stopListening(r,"update",e))}getDomRowItem(e){return null}getRowContainerHtml(e){return $("<tr>").attr("data-id",e).addClass("list-row").get(0).outerHTML}async actionQuickView(i){i=i||{};var s=i.id;if(s){let t=null,e=(this.collection&&(t=this.collection.get(s)),i.scope);!e&&t&&(e=t.entityType);e=e||this.scope;if(e)if(this.quickDetailDisabled)this.getRouter().navigate(`#${e}/view/`+s,{trigger:!0});else{var a=this.options.keepCurrentRootUrl?this.getRouter().getCurrentUrl():void 0,r=new o.default;await r.showDetail(this,{id:s,entityType:e,model:t,rootUrl:a,editDisabled:this.quickEditDisabled,beforeSave:e=>{t&&this.trigger("before:save",e)},afterSave:e=>{t&&this.trigger("after:save",e)},afterDestroy:e=>{t&&this.removeRecordFromList(e.id)}})}else console.error("No scope.")}else console.error("No id.")}async actionQuickEdit(i){i=i||{};var s=i.id;if(s){let e=null,t=(this.collection&&(e=this.collection.get(s)),i.scope);!t&&e&&(t=e.entityType);t=t||this.scope;if(t)if(this.quickEditDisabled){var a={id:s,model:this.collection.get(s),returnUrl:this.getRouter().getCurrentUrl(),returnDispatchParams:{controller:t,action:null,options:{isReturn:!0}}};this.options.keepCurrentRootUrl&&(a.rootUrl=this.getRouter().getCurrentUrl());this.getRouter().navigate(`#${t}/edit/`+s,{trigger:!1});this.getRouter().dispatch(t,"edit",a)}else{var a=new o.default,r=this.options.keepCurrentRootUrl?this.getRouter().getCurrentUrl():void 0;await a.showEdit(this,{entityType:t,id:s,model:e,fullFormDisabled:i.noFullForm,rootUrl:r,beforeSave:e=>{this.trigger("before:save",e)},afterSave:e=>{var t=this.collection.get(e.id);t&&t.set(e.getClonedAttributes(),{sync:!0});this.trigger("after:save",e)},returnDispatchParams:{controller:t,action:null,options:{isReturn:!0}}})}else console.error("No scope.")}else console.error("No id.")}getRowSelector(e){return`tr.list-row[data-id="${e}"]`}async actionQuickRemove(e){e=e||{};var t=e.id;if(t){var i=this.collection.get(t),s=this.collection.indexOf(i);if(!i)throw new Error("No model.");if(this.getAcl().checkModel(i,"delete")){await this.confirm({message:this.translate("removeRecordConfirmation","messages",this.scope),confirmText:this.translate("Remove")});this.collection.trigger("model-removing",t);this.collection.remove(i);Espo.Ui.notifyWait();try{await i.destroy({wait:!0,fromList:!0})}catch(e){this.collection.models.includes(i)||this.collection.add(i,{at:s});return}Espo.Ui.success(this.translate("Removed"));this.trigger("after:delete",i);this.removeRecordFromList(t)}else Espo.Ui.error(this.translate("Access denied"))}}removeRecordFromList(e){if(0<this.collection.total){this.collection.total--;this.collection.trigger("update-total")}this.collection.remove(e);this.$el.find(".total-count-span").text(this.collection.total.toString());var t=this.checkedList.indexOf(e),i=(-1!==t&&this.checkedList.splice(t,1),e);this.clearView(i);t=this.rowList.indexOf(i);~t&&this.rowList.splice(t,1);this.removeRowHtml(e)}removeRowHtml(e){this.$el.find(this.getRowSelector(e)).remove();0!==this.collection.length||0!==this.collection.total&&-2!==this.collection.total||this.reRender()}isIdChecked(e){return-1!==this.checkedList.indexOf(e)}setupRowActionDefs(){this._rowActionHandlers={};var e=this.options.additionalRowActionList;if(e){this._additionalRowActionList=e;let i=this.getMetadata().get(`clientDefs.${this.scope}.rowActionDefs`)||{};e=e.map(t=>{var e=i[t]||{};return e.handler?Espo.loader.requirePromise(e.handler).then(e=>{this._rowActionHandlers[t]=new e(this);return!0}):Promise.resolve()});this.wait(Promise.all(e))}}actionRowAction(e){var t=e.actualAction,i=e.id;if(t){var s=(this._rowActionHandlers||{})[t];if(s){i=this.collection.get(i);i&&s.process(i,t)}else console.warn(`No handler for action ${t}.`)}}setupSettings(){if(this.options.settingsEnabled&&this.collection.entityType&&this.layoutName&&(this.forceSettings||this.getMetadata().get(`scopes.${this.entityType}.object`))&&!this.getConfig().get("listViewSettingsDisabled")&&!this.settingsDisabled){this._listSettingsHelper=this.options.settingsHelper||new a.default(this.entityType,this.layoutName,this.getUser().id,this.getStorage());var e=new s.default({layoutProvider:()=>this.listLayout,helper:this._listSettingsHelper,entityType:this.entityType,columnResize:this.columnResize,onChange:e=>this.afterSettingsChange(e)});this.assignView("settings",e,".settings-container")}}async afterSettingsChange(e){if("toggleColumnResize"===e.action)await this.reRender();else{if("toggleColumn"===e.action||"resetToDefault"===e.action){var t=await this.getSelectAttributeList();t&&(this.collection.data.select=t.join(","))}if("toggleColumn"===e.action&&!this._listSettingsHelper.getHiddenColumnMap()[e.column]&&this._columnResizeHelper){t=new h.default({view:this,helper:this._listSettingsHelper,layoutProvider:()=>this.listLayout});t.adjust()}this._internalLayout=null;Espo.Ui.notifyWait();await this.collection.fetch();Espo.Ui.notify()}}hasPagination(){return this.pagination}hideMassAction(e){this.massActionDefs[e]||(this.massActionDefs[e]={});this.massActionDefs[e].hidden=!0}showMassAction(e){this.massActionDefs[e]||(this.massActionDefs[e]={});this.massActionDefs[e].hidden=!1}getMassActionDataList(){let i=[],t=(this.massActionList.forEach(e=>{var t=this.massActionDefs[e];if(!1!==t){t=(t&&void 0!==t.groupIndex?t.groupIndex:9999)+100;void 0===i[t]&&(i[t]=[]);i[t].push(e)}}),[]);i.forEach(e=>{e.forEach(e=>t.push(e));t.push(!1)});return t.map(e=>!1!==e&&{name:e,hidden:(this.massActionDefs[e]||{}).hidden})}uncheckAll(){this.allResultIsChecked&&this.unselectAllResult();this.checkedList.forEach(e=>this.uncheckRecord(e))}disableCheckboxes(){if(this.checkboxes){this._disabledCheckboxes=!0;this.uncheckAll();this.$el.find("input.record-checkbox").attr("disabled","disabled");this.$selectAllCheckbox&&this.$selectAllCheckbox.attr("disabled","disabled")}}enableCheckboxes(){if(this.checkboxes){this._disabledCheckboxes=!1;this.$el.find("input.record-checkbox").removeAttr("disabled");this.$selectAllCheckbox&&this.$selectAllCheckbox.removeAttr("disabled")}}checkboxesAreDisabled(){return this._disabledCheckboxes||!this.checkboxes}rebuild(){return new Promise(e=>{this._internalLayout=null;this.buildRows(()=>e())})}}e.default=u});define("views/fields/text",["exports","views/fields/base","helpers/misc/mailto","views/modals/text-preview"],function(e,t,s,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);s=a(s);i=a(i);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{constructor(e){super(e)}type="text";listTemplate="fields/text/list";detailTemplate="fields/text/detail";editTemplate="fields/text/edit";searchTemplate="fields/text/search";seeMoreText=!1;rowsDefault=5e4;rowsMin=2;seeMoreDisabled=!1;cutHeight=200;noResize=!1;changeInterval=5;shrinkThreshold=10;searchTypeList=["contains","startsWith","equals","endsWith","like","notContains","notLike","isEmpty","isNotEmpty"];_lastLength;maxRows;previewButtonElement;textAreaElement;setup(){super.setup();this.addActionHandler("seeMoreText",()=>this.seeMore());this.addActionHandler("mailTo",(e,t)=>this.mailTo(t.dataset.emailAddress));this.maxRows=this.params.rows||this.rowsDefault;this.noResize=this.options.noResize||this.params.noResize||this.noResize;this.seeMoreDisabled=this.seeMoreDisabled||this.params.seeMoreDisabled;this.autoHeightDisabled=this.options.autoHeightDisabled||this.params.autoHeightDisabled||this.autoHeightDisabled;this.params.cutHeight&&(this.cutHeight=this.params.cutHeight);this.rowsMin=this.options.rowsMin||this.params.rowsMin||this.rowsMin;this.maxRows<this.rowsMin&&(this.rowsMin=this.maxRows);this.on("remove",()=>{$(window).off("resize.see-more-"+this.cid);if(this.textAreaElement){this.textAreaElement.removeEventListener("keydown",this.onKeyDownMarkdownBind);this.textAreaElement=void 0}});if(this.params.preview){this.addHandler("input","textarea",(e,t)=>{var i=t.value;this.previewButtonElement&&(i?this.previewButtonElement.classList.remove("hidden"):this.previewButtonElement.classList.add("hidden"))});this.addActionHandler("previewText",()=>this.preview())}this.listenTo(this.model,"change:"+this.name,(e,t,i)=>{!0===i.ui&&this.mode===this.MODE_EDIT&&(this.seeMoreText=!0)});this.controlSeeMoreBind=this.controlSeeMore.bind(this);this.onPasteBind=this.onPaste.bind(this);this.onKeyDownMarkdownBind=this.onKeyDownMarkdown.bind(this)}setupSearch(){this.events["change select.search-type"]=e=>{var t=$(e.currentTarget).val();this.handleSearchType(t)}}data(){var e=super.data();null!==this.model.get(this.name)&&""!==this.model.get(this.name)&&this.model.has(this.name)&&(e.isNotEmpty=!0);this.mode===this.MODE_SEARCH&&"string"==typeof this.searchParams.value&&(this.searchData.value=this.searchParams.value);this.mode===this.MODE_EDIT&&(e.rows=this.autoHeightDisabled?this.maxRows:this.rowsMin);e.valueIsSet=this.model.has(this.name);if(this.isReadMode()){e.isCut=this.isCut();e.isCut&&(e.cutHeight=this.cutHeight);e.displayRawText=this.params.displayRawText}e.htmlValue=void 0;e.noResize=this.noResize||!this.autoHeightDisabled&&!this.params.rows;e.preview=this.params.preview&&!this.params.displayRawText;return e}handleSearchType(e){~["isEmpty","isNotEmpty"].indexOf(e)?this.$el.find("input.main-element").addClass("hidden"):this.$el.find("input.main-element").removeClass("hidden")}getValueForDisplay(){var e=this.model.get(this.name);return e||""}controlTextareaHeight(e){var t=this.$element.prop("scrollHeight"),s=this.$element.prop("clientHeight");if(void 0===e&&0===s)setTimeout(this.controlTextareaHeight.bind(this),10);else{let i=this.$element.get(0);if(i&&void 0!==i.value){var a=i.value.length;void 0===this._lastLength&&(this._lastLength=a);a>this._lastLength&&(this._lastLength=a);if(s!==e)if(s+1<t){t=i.rows;if(!(this.maxRows&&t>=this.maxRows)){i.rows++;this.controlTextareaHeight(s)}}else if(0===this.$element.val().length)i.rows=this.rowsMin;else{let t=()=>{var e=i.rows;if(!(this.rowsMin&&e-1<=this.rowsMin)){i.rows--;i.scrollHeight>i.clientHeight+1?this.controlTextareaHeight():t()}};if(a<this._lastLength-this.shrinkThreshold){this._lastLength=a;t()}}}}}isCut(){return!this.seeMoreText&&!this.seeMoreDisabled}controlSeeMore(){if(this.isCut())if(this.$text.height()>this.cutHeight){this.$seeMoreContainer.removeClass("hidden");this.$textContainer.addClass("cut")}else{this.$seeMoreContainer.addClass("hidden");this.$textContainer.removeClass("cut")}}afterRender(){this.textAreaElement=void 0;this.mode===this.MODE_EDIT&&(this.textAreaElement=this.element?this.element.querySelector("textarea"):void 0);super.afterRender();if(this.isReadMode()){$(window).off("resize.see-more-"+this.cid);this.$textContainer=this.$el.find("> .complex-text-container");this.$text=this.$textContainer.find("> .complex-text");this.$seeMoreContainer=this.$el.find("> .see-more-container");if(this.isCut()){this.controlSeeMore();if(this.model.get(this.name)&&0===this.$text.height()){this.$textContainer.addClass("cut");setTimeout(this.controlSeeMore.bind(this),50)}this.listenTo(this.recordHelper,"panel-show",()=>this.controlSeeMore());this.on("panel-show-propagated",()=>this.controlSeeMore());$(window).on("resize.see-more-"+this.cid,()=>{this.controlSeeMore()});this.element.querySelectorAll("img").forEach(e=>{e.addEventListener("load",this.controlSeeMoreBind)})}}if(this.mode===this.MODE_EDIT){var e=this.getValueForDisplay();e&&this.$element.val(e);this.previewButtonElement=this.element?this.element.querySelector('a[data-action="previewText"]'):void 0;e=this.textAreaElement;if(this.params.attachmentField&&e){e.removeEventListener("paste",this.onPasteBind);e.addEventListener("paste",this.onPasteBind)}this.params.displayRawText||this.initTextareaMarkdownHelper()}if(this.mode===this.MODE_SEARCH){e=this.$el.find("select.search-type").val();this.handleSearchType(e);this.$el.find("select.search-type").on("change",()=>{this.trigger("change")});this.$element.on("input",()=>{this.trigger("change")})}if(this.mode===this.MODE_EDIT&&!this.autoHeightDisabled){if(!this.autoHeightDisabled){this.controlTextareaHeight();this.$element.on("input",()=>this.controlTextareaHeight())}let e=new Date,t=1e3*this.changeInterval;this.$element.on("keydown",()=>{if(Date.now()-e>t){this.trigger("change");e=Date.now()}})}}fetch(){var e={};let t=this.$element.val()||null;t&&""===t.trim()&&(t="");e[this.name]=t;return e}fetchSearch(){var e,t=this.fetchSearchType()||"startsWith";return"isEmpty"===t?{type:"or",value:[{type:"isNull",field:this.name},{type:"equals",field:this.name,value:""}],data:{type:t}}:"isNotEmpty"===t?{type:"and",value:[{type:"notEquals",field:this.name,value:""},{type:"isNotNull",field:this.name,value:null}],data:{type:t}}:(e=this.$element.val().toString().trim(),!!e&&{value:e,type:t})}getSearchType(){return this.getSearchParamsData().type||this.searchParams.typeFront||this.searchParams.type}mailTo(e){var t={status:"Draft",to:e},i=new s.default(this.getConfig(),this.getPreferences(),this.getAcl());if(i.toUse())document.location.href=i.composeLink(t);else{i=this.getMetadata().get("clientDefs."+this.scope+".modalViews.compose")||"views/modals/compose-email";Espo.Ui.notifyWait();this.createView("quickCreate",i,{attributes:t},e=>{e.render();Espo.Ui.notify(!1)})}}async preview(){var e=this.model.attributes[this.name]||"",e=new i.default({text:e});await this.assignView("modal",e);await e.render()}onPaste(e){var t=e.clipboardData.items;if(t)for(let e=0;e<t.length;e++)if(t[e].type.startsWith("image")){var i=t[e].getAsFile();this.recordHelper.trigger("upload-files:"+this.params.attachmentField,[i])}}async seeMore(){this.seeMoreText=!0;await this.reRender()}initTextareaMarkdownHelper(){this.textAreaElement&&this.textAreaElement.addEventListener("keydown",this.onKeyDownMarkdownBind)}_lastEnteredKeyIsEnter=!1;onKeyDownMarkdown(e){var t=Espo.Utils.getKeyFromKeyEvent(e);if("Enter"!==t){this._lastEnteredKeyIsEnter=!1;this.handleKeyDownMarkdown(e,t)}else{var t=this._lastEnteredKeyIsEnter,i=(this._lastEnteredKeyIsEnter=!0,e.target);if(i instanceof HTMLTextAreaElement){var{selectionStart:s,selectionEnd:a,value:r}=i,s=r.substring(0,s),r=r.substring(a),a=s.match(/(^|\n)( *[-*]|\d+\.) ([^*\-\n]*)$/);if(a){e.preventDefault();if(""===a[3].trim()&&t)i.value=s.substring(0,a.index)+"\n"+r;else{let e=a[2];t=e.match(/( *)(\d+)/);if(t){a=parseInt(t[2]);isNaN(a)||(e=t[1]+(a+1).toString()+".")}t="\n"+e+" ";i.value=s+t+r}i.selectionStart=i.selectionEnd=i.value.length-r.length}else{let e=window.scrollY;setTimeout(()=>window.scrollTo({top:e}),0)}this.controlTextareaHeight()}}}handleKeyDownMarkdown(o,e){let n=o.target;if(n instanceof HTMLTextAreaElement){var t=t=>{var{selectionStart:i,selectionEnd:s}=n;let a=n.value.substring(i,s);if(""!==a){let e=a;a=a.trimStart();s=e.substring(0,e.length-a.length);e=a;a=a.trimEnd();var r=e.substring(a.length),r=(a=a.startsWith(t)&&a.endsWith(t)?a.slice(t.length,-t.length):t+a+t,s+a+r),r=(document.execCommand("insertText",!1,r),i+s.length);n.setSelectionRange(r,r+a.length);o.preventDefault();o.stopPropagation()}};"Control+KeyB"===e&&t("**");"Control+KeyI"===e&&t("_")}}}e.default=r});define("views/fields/int",["exports","views/fields/base","autonumeric"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e)}type="int";listTemplate="fields/int/list";detailTemplate="fields/int/detail";editTemplate="fields/int/edit";searchTemplate="fields/int/search";validations=["required","int","range"];thousandSeparator=",";searchTypeList=["isNotEmpty","isEmpty","equals","notEquals","greaterThan","lessThan","greaterThanOrEquals","lessThanOrEquals","between"];autoNumericOptions;autoNumericInstance=null;setup(){super.setup();this.getPreferences().has("thousandSeparator")?this.thousandSeparator=this.getPreferences().get("thousandSeparator"):this.getConfig().has("thousandSeparator")&&(this.thousandSeparator=this.getConfig().get("thousandSeparator"));this.params.disableFormatting&&(this.disableFormatting=!0)}setupFinal(){super.setupFinal();this.setupAutoNumericOptions()}setupAutoNumericOptions(){var e=(this.disableFormatting?null:this.thousandSeparator)||"";let t=".";"."===e&&(t=",");this.autoNumericOptions={digitGroupSeparator:e,decimalCharacter:t,modifyValueOnWheel:!1,decimalPlaces:0,selectOnFocus:!1,formulaMode:!0};null!=this.params.max&&this.params.max>Math.pow(10,6)&&(this.autoNumericOptions.maximumValue=this.params.max.toString());null!=this.params.min&&this.params.min<-Math.pow(10,6)&&(this.autoNumericOptions.minimumValue=this.params.min.toString())}afterRender(){super.afterRender();if(this.mode===this.MODE_EDIT&&this.autoNumericOptions){var e=this.$element.get(0);this.autoNumericInstance=new i.default(e,this.autoNumericOptions)}if(this.mode===this.MODE_SEARCH){e=this.$el.find("select.search-type");this.handleSearchType(e.val());this.$el.find("select.search-type").on("change",()=>{this.trigger("change")});this.$element.on("input",()=>{this.trigger("change")});e=this.$el.find("input.additional");e.on("input",()=>{this.trigger("change")});if(this.autoNumericOptions){var t=this.$element.get(0),e=e.get(0);new i.default(t,this.autoNumericOptions);new i.default(e,this.autoNumericOptions)}}}data(){var e=super.data();null!==this.model.get(this.name)&&void 0!==this.model.get(this.name)&&(e.isNotEmpty=!0);e.valueIsSet=this.model.has(this.name);if(this.isSearchMode()){e.value=this.searchParams.value;if("between"===this.getSearchType()){e.value=this.getSearchParamsData().value1||this.searchParams.value1;e.value2=this.getSearchParamsData().value2||this.searchParams.value2}}this.isEditMode()&&(e.value=this.model.get(this.name));return e}getValueForDisplay(){var e=isNaN(this.model.get(this.name))?null:this.model.get(this.name);return this.formatNumber(e)}formatNumber(e){return this.disableFormatting?e:this.formatNumberDetail(e)}formatNumberDetail(e){if(null===e)return"";let t=e.toString();t=t.replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandSeparator);return t}setupSearch(){this.events["change select.search-type"]=e=>{this.handleSearchType($(e.currentTarget).val())}}handleSearchType(e){var t=this.$el.find("input.additional"),i=this.$el.find('input[data-name="'+this.name+'"]');if("between"===e){t.removeClass("hidden");i.removeClass("hidden")}else if(~["isEmpty","isNotEmpty"].indexOf(e)){t.addClass("hidden");i.addClass("hidden")}else{t.addClass("hidden");i.removeClass("hidden")}}getMaxValue(){let e=this.model.getFieldParam(this.name,"max")??null;e||0===e||(e=null);"max"in this.params&&(e=this.params.max);return e}getMinValue(){return"min"in this.params?this.params.min:this.model.getFieldParam(this.name,"min")??null}validateInt(){var e=this.model.get(this.name);if(isNaN(e)){e=this.translate("fieldShouldBeInt","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}validateRange(){var e=this.model.get(this.name);if(null===e)return!1;var t=this.getMinValue(),i=this.getMaxValue();if(null!==t&&null!==i){if(e<t||i<e){var s=this.translate("fieldShouldBeBetween","messages").replace("{field}",this.getLabelText()).replace("{min}",t).replace("{max}",i);this.showValidationMessage(s);return!0}}else if(null!==t){if(e<t){s=this.translate("fieldShouldBeGreater","messages").replace("{field}",this.getLabelText()).replace("{value}",t);this.showValidationMessage(s);return!0}}else if(null!==i&&i<e){t=this.translate("fieldShouldBeLess","messages").replace("{field}",this.getLabelText()).replace("{value}",i);this.showValidationMessage(t);return!0}}validateRequired(){if(this.isRequired()){var e=this.model.get(this.name);if(null===e||!1===e){e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}}parse(e){e=""!==e?e:null;if(null===e)return null;e=e.split(this.thousandSeparator).join("");return-1!==e.indexOf(".")||-1!==e.indexOf(",")?NaN:parseInt(e)}fetch(){var e=this.$element.val(),e=this.parse(e),t={};t[this.name]=e;return t}fetchSearch(){var e=this.parse(this.$element.val()),t=this.fetchSearchType();let i;if(isNaN(e))return!1;if("between"===t){var s=this.parse(this.$el.find("input.additional").val());if(isNaN(s))return!1;i={type:t,value:[e,s],data:{value1:e,value2:s}}}else i="isEmpty"===t?{type:"isNull",typeFront:"isEmpty"}:"isNotEmpty"===t?{type:"isNotNull",typeFront:"isNotEmpty"}:{type:t,value:e,data:{value1:e}};return i}getSearchType(){return this.searchParams.typeFront||this.searchParams.type}}e.default=a});define("ui/datepicker",["exports","jquery","language","models/settings","di","moment"],function(e,r,t,i,s,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;r=c(r);t=c(t);i=c(i);o=c(o);var a;let n,l,d,h;function c(e){return e&&e.__esModule?e:{default:e}}function u(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class m{language=n(this);config=(l(this),d(this));constructor(e,i){h(this);this.$element=(0,r.default)(e);this.format=i.format;if(e instanceof HTMLInputElement){i.date&&(e.value=i.date);let t=!1;this.$element.on("change",e=>{if(!t){i.onChange&&i.onChange();t=!0;setTimeout(()=>t=!1,100)}e.isTrigger&&document.activeElement!==this.$element.get(0)&&this.$element.focus()});this.$element.on("click",()=>this.show())}else i.date&&(e.dataset.date=i.date);var t=e.closest(".modal-body"),s=this.config.get("language"),a=i.format,a={autoclose:!0,todayHighlight:!0,keyboardNavigation:!0,assumeNearbyYear:!0,format:a.toLowerCase(),weekStart:i.weekStart,todayBtn:i.todayButton||!1,startDate:i.startDate,orientation:"bottom auto",templates:{leftArrow:'<span class="fas fa-chevron-left fa-sm"></span>',rightArrow:'<span class="fas fa-chevron-right fa-sm"></span>'},container:t?(0,r.default)(t):"body",language:s,maxViewMode:2,defaultViewDate:i.defaultViewDate};i.hasDay&&(a.beforeShowDay=e=>{var t=(0,o.default)(e).format(this.format);return{enabled:i.hasDay(t)}});i.hasMonth&&(a.beforeShowMonth=e=>{var t=(0,o.default)(e).format(this.format);return{enabled:i.hasMonth(t)}});i.hasYear&&(a.beforeShowYear=e=>{var t=(0,o.default)(e).format(this.format);return{enabled:i.hasYear(t)}});s in r.default.fn.datepicker.dates||(r.default.fn.datepicker.dates[s]={days:this.language.get("Global","lists","dayNames"),daysShort:this.language.get("Global","lists","dayNamesShort"),daysMin:this.language.get("Global","lists","dayNamesMin"),months:this.language.get("Global","lists","monthNames"),monthsShort:this.language.get("Global","lists","monthNamesShort"),today:this.language.translate("Today"),clear:this.language.translate("Clear")});this.$element.datepicker(a).on("changeDate",()=>{i.onChangeDate&&i.onChangeDate()}).on("changeMonth",e=>{if(i.onChangeMonth){var t=(0,o.default)(e.date).startOf("month").format(i.format);i.onChangeMonth(t)}});!e.classList.contains("input-group")||e instanceof HTMLInputElement||e.querySelectorAll("input").forEach(e=>{(0,r.default)(e).on("click",()=>(0,r.default)(e).datepicker("show"))})}setStartDate(e){this.$element.datepicker("setStartDate",e)}show(){this.$element.datepicker("show")}getDate(){var e=this.$element.datepicker("getDate");return e?(0,o.default)(e).format(this.format):null}refresh(){var e=this.$element.data("datepicker");e&&e.fill()}static#_=a=()=>[n,l,d,h]=u(this,[],[[(0,s.inject)(t.default),0,"language"],[(0,s.inject)(i.default),0,"config"]]).e}a();e.default=m});define("helpers/misc/summernote-custom",["exports","jquery","views/wysiwyg/modals/edit-table","views/wysiwyg/modals/edit-cell","handlebars"],function(e,b,v,d,n){Object.defineProperty(e,"__esModule",{value:!0});e.init=function(g){b.default.extend(b.default.summernote.options,{espoImage:{icon:'<i class="note-icon-picture"/>',tooltip:g.image.image},espoLink:{icon:'<i class="note-icon-link"/>',tooltip:g.link.link},espoTable:{icon:'<i class="note-icon-table"/>',tooltip:g.table.table},popover:{table:[["custom",["tableParams","cellParams"]],["add",["addRowDown","addRowUp","addColLeft","addColRight"]],["delete",["deleteRow","deleteCol","deleteTable"]]]}});b.default.extend(b.default.summernote.plugins,{cellParams:function(n){let e=b.default.summernote.ui;var t=n.options;let l=t.espoView;if(l){n.memo("button.cellParams",()=>e.button({className:"",contents:'<i class="far fa-square fa-sm"/>',tooltip:l.translate("cell","wysiwygLabels"),click:()=>{n.invoke("cellParams.show")}}).render());this.show=function(){var e=n.invoke("editor.getLastRange"),e=(0,b.default)(e.ec).closest("td,th");let i=e[0];var e=i.style.width,t=i.style.height,s=i.style.backgroundColor,a=i.style.verticalAlign,e={width:e,height:t,backgroundColor:s,verticalAlign:a};let r=new d.default({params:e,headerText:l.translate("cell","wysiwygLabels"),onApply:e=>o(e)}),o=(l.assignView("dialog",r).then(()=>{r.render()}),e=>{var t=i.style.backgroundColor;"transparent"===t&&0;i.style.backgroundColor=e.backgroundColor;i.style.width=e.width;i.style.height=e.height;i.style.verticalAlign=e.verticalAlign})};this.destroy=function(){l&&l.clearView("dialog")}}},tableParams:function(p){let e=b.default.summernote.ui;var t=p.options;let f=t.espoView;if(f){p.memo("button.tableParams",()=>e.button({className:"",contents:'<i class="note-icon-table"/>',tooltip:g.table.table,click:()=>{p.invoke("tableParams.show")}}).render());this.show=function(){var e,t=p.invoke("editor.getLastRange"),t=(0,b.default)(t.ec).closest("table");let a=t[0],i=a.style.borderWidth;if(null!==i)for(var s of a.querySelectorAll("td, th"))if(s.style.borderWidth!==i){i=null;break}let r=a.style.backgroundColor,o=("transparent"===r&&(r=null),a.style.borderColor);if(null!==o)for(var n of a.querySelectorAll("td, th"))if(n.style.borderColor!==o){o=null;break}let l=null;for(e of a.querySelectorAll("td, th")){if(null!==l&&e.style.padding!==l){l=null;break}l=e.style.padding}let d=null;"auto"===a.style.marginLeft&&"0px"===a.style.marginRight?d="right":"auto"===a.style.marginLeft&&"auto"===a.style.marginRight?d="center":"0px"===a.style.marginLeft&&"auto"===a.style.marginRight&&(d="left");var t=a.style.width,h=a.style.height,t={align:d,width:t,height:h,borderWidth:i,borderColor:o,cellPadding:l,backgroundColor:r};let c=t,u=new v.default({params:t,headerText:g.table.table,onApply:e=>m(e)}),m=(f.assignView("dialog",u).then(()=>{u.render()}),e=>{if("left"===e.align){a.style.marginLeft="0";a.style.marginRight="auto"}else if("right"===e.align){a.style.marginLeft="auto";a.style.marginRight="0"}else if("center"===e.align){a.style.marginLeft="auto";a.style.marginRight="auto"}else if(null===e.align&&null!==c.align){a.style.marginLeft=null;a.style.marginRight=null}a.style.backgroundColor=e.backgroundColor;a.style.width=e.width;a.style.height=e.height;if(null!==e.borderWidth||null!==c.borderWidth){a.style.borderWidth=e.borderWidth;a.style.borderStyle=null!==e.borderWidth?"solid":null;for(var t of a.querySelectorAll("td, th")){t.style.borderWidth=e.borderWidth;t.style.borderStyle=null!==e.borderWidth?"solid":null}}if(null!==e.borderColor||null!==c.borderColor){a.style.borderColor=e.borderColor;for(var i of a.querySelectorAll("td, th"))i.style.borderColor=e.borderColor}if(null!==e.cellPadding||null!==c.padding)for(var s of a.querySelectorAll("td, th"))s.style.padding=e.cellPadding})};this.destroy=function(){f&&f.clearView("dialog")}}},aceCodeview:function(i){let e=b.default.summernote.ui,s=i.options,t=s.langInfo,a=i.layoutInfo.editor,r=i.layoutInfo.editable;var o=s.espoView;if(!o)return;let n,l,d=!1,h=!1,c=!1,u="<p> </p>";i.destroyAceCodeview=function(){d&&g()};i.code=function(e){if(void 0===e){let e;if(d){e=p(l.getValue())||u;r.html(e)}return d?e:r.html()}d&&l.setValue(e);r.html(e);this.$note.val(e);i.triggerEvent("change",e,r)};let m="editor-"+Math.random().toString(36).substring(2,17),p=e=>e,f=e=>p(e),g=()=>{if(d){n.addClass("hidden");var e=p(l.getValue())||u,e=i.invoke("codeview.purify",e),t=r.html()!==e;r.html(e);a.removeClass("codeview");t&&i.triggerEvent("change",r.html(),r);r.focus();i.invoke("toolbar.updateCodeview",!1);i.invoke("airPopover.updateCodeview",!1);if(l){l.destroy();l=null}i.aceEditor=void 0;d=!1}},v=()=>{if(!c){c=!0;i.invoke("toolbar.updateCodeview",!0);i.invoke("airPopover.updateCodeview",!0);a.addClass("codeview");if(!h){n=(0,b.default)("<div>").attr("id",m).css("minHeight","40px");(0,b.default)(i.layoutInfo.codable).replaceWith(n);i.$aceCodable=n;h=!0}n.removeClass("hidden");a.hasClass("fullscreen")&&n.css("height",r.css("height"));y().then(()=>{var e=f(r.html());l=w.edit(m);l.setValue(e);l.setOptions({maxLines:a.hasClass("fullscreen")?null:1e5,enableLiveAutocompletion:!0,tabSize:2,useSoftTabs:!0});l.setOptions({fontFamily:"var(--font-family-monospace)"});l.setFontSize("var(--font-size-small)");l.container.style.lineHeight="var(--line-height-small)";l.renderer.updateFontSize();s.isDark&&l.setOptions({theme:"ace/theme/tomorrow_night"});l.getSession().setUseWrapMode(!0);l.setShowPrintMargin(!1);l.getSession().setUseWorker(!1);l.commands.removeCommand("find");l.setHighlightActiveLine(!1);l.focus();try{l.gotoLine(0,0,!1)}catch(e){}l.on("blur",e=>{i.triggerEvent("blur.codeview",l.getValue(),e)});l.on("change",()=>{i.triggerEvent("change.codeview",l.getValue())});i.aceEditor=l;e=s.handlebars?"ace/mode/handlebars":"ace/mode/html",e=w.require(e).Mode;l.session.setMode(new e);d=!0;c=!1})}},y=(i.memo("button.aceCodeview",()=>e.button({className:"btn-codeview note-codeview-keep",contents:'<i class="note-icon-code"/>',tooltip:t.options.codeview,click:()=>(()=>{(d?g:v)();i.triggerEvent("codeview.toggled")})()}).render()),function(){return Espo.loader.requirePromise("lib!ace").then(e=>{w=e;var t=[Espo.loader.requirePromise("lib!ace-ext-language_tools")];t.push(s.handlebars?Espo.loader.requirePromise("lib!ace-mode-handlebars"):Espo.loader.requirePromise("lib!ace-mode-html"));s.isDark&&t.push(Espo.loader.requirePromise("lib!ace-theme-tomorrow_night"));return Promise.all(t)})})},espoTable:function(a){let e=b.default.summernote.ui,d=a.options;var t=d.espoView;let i=d.langInfo;t&&a.memo("button.espoTable",()=>e.buttonGroup([e.button({className:"dropdown-toggle",contents:e.dropdownButtonContents(e.icon(d.icons.table),d),tooltip:d.espoTable.tooltip,data:{toggle:"dropdown"}}),e.dropdown({title:i.table.table,className:"note-table",items:['<div class="note-dimension-picker">','<div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"></div>','<div class="note-dimension-picker-highlighted"></div>','<div class="note-dimension-picker-unhighlighted"></div>',"</div>",'<div class="note-dimension-display">1 x 1</div>'].join("")})],{callback:e=>{let i=e.find(".note-dimension-picker-mousecatcher"),s=(t,i,e)=>{var s=[];for(let e=0;e<t;e++)s.push("<td> </td>");var a=s.join("\n"),r=[];for(let e=0;e<i;e++)r.push("<tr>"+a+"</tr>");var o=r.join("\n"),o=(0,b.default)("<table>\n"+o+"</table>");o.css({width:"100%",borderCollapse:"collapse"});e&&e.tableClassName&&o.addClass(e.tableClassName);return o[0]};i.css({width:d.insertTableMaxSize.col+"em",height:d.insertTableMaxSize.row+"em"}).mousedown(()=>{var e=a.$note,t=i.data("value").split("x"),e=e.summernote("editor.getLastRange").deleteContents();s(t[0],t[1],d);e.insertNode(s(t[0],t[1],d))}).on("mousemove",e=>{var t=(0,b.default)(e.target.parentNode),i=t.next(),s=t.find(".note-dimension-picker-mousecatcher"),a=t.find(".note-dimension-picker-highlighted"),t=t.find(".note-dimension-picker-unhighlighted");let r;if(void 0===e.offsetX){var o=(0,b.default)(e.target).offset();r={x:e.pageX-o.left,y:e.pageY-o.top}}else r={x:e.offsetX,y:e.offsetY};const n=Math.ceil(r.x/18)||1,l=Math.ceil(r.y/18)||1;a.css({width:n+"em",height:l+"em"});s.data("value",n+"x"+l);3<n&&n<d.insertTableMaxSize.col&&t.css({width:n+1+"em"});3<l&&l<d.insertTableMaxSize.row&&t.css({height:l+1+"em"});i.html(n+" x "+l)})}}).render())},espoImage:function(t){let i=b.default.summernote.ui,s=t.options,a=s.espoView,e=s.langInfo;if(a){t.memo("button.espoImage",()=>{var e=i.button({contents:s.espoImage.icon,tooltip:s.espoImage.tooltip,click(){t.invoke("espoImage.show")}});return e.render()});this.initialize=function(){};this.destroy=function(){a&&a.clearView("insertImageDialog")};this.show=function(){a.createView("insertImageDialog","views/wysiwyg/modals/insert-image",{labels:{insert:e.image.insert,url:e.image.url,selectFromFiles:e.image.selectFromFiles}},e=>{e.render();a.listenToOnce(e,"upload",e=>{a.$summernote.summernote("insertImagesOrCallback",e)});a.listenToOnce(e,"insert",e=>{a.$summernote.summernote("insertImage",e)});a.listenToOnce(e,"close",()=>{a.clearView("insertImageDialog");a.fixPopovers()})})}}},linkDialog:function(t){var e=t.options;let i=e.espoView,s=e.langInfo;i&&(this.show=function(){var e=t.invoke("editor.getLinkInfo");i.createView("dialogInsertLink","views/wysiwyg/modals/insert-link",{labels:{insert:s.link.insert,openInNewWindow:s.link.openInNewWindow,url:s.link.url,textToDisplay:s.link.textToDisplay},linkInfo:e},e=>{e.render();i.listenToOnce(e,"insert",e=>{e.text=n.default.Utils.escapeExpression(e.text);i.$summernote.summernote("createLink",e)});i.listenToOnce(e,"close",()=>{i.clearView("dialogInsertLink");i.fixPopovers()})})})},espoLink:function(s){let i=b.default.summernote.ui,a=s.options,r=a.espoView,o=a.langInfo;if(r){let t=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);s.memo("button.espoLink",function(){var e=i.button({contents:a.espoLink.icon,tooltip:a.espoLink.tooltip+" ("+(t?"CMD+K":"CTRL+K")+")",click(){s.invoke("espoLink.show")}});return e.render()});this.initialize=function(){this.$modalBody=r.$el.closest(".modal-body");this.isInModal=0<this.$modalBody.length};this.destroy=function(){r&&r.clearView("dialogInsertLink")};this.show=function(){var e=s.invoke("editor.getLinkInfo");let i=this.isInModal?this.$modalBody.get(0):window;r.createView("dialogInsertLink","views/wysiwyg/modals/insert-link",{labels:{insert:o.link.insert,openInNewWindow:o.link.openInNewWindow,url:o.link.url,textToDisplay:o.link.textToDisplay},linkInfo:e},e=>{e.render();r.listenToOnce(e,"insert",e=>{let t="scrollY"in i?i.scrollY:i.scrollTop;e.text=n.default.Utils.escapeExpression(e.text);r.$summernote.summernote("createLink",e);setTimeout(()=>i.scroll(0,t),20)});r.listenToOnce(e,"close",()=>{r.clearView("dialogInsertLink");r.fixPopovers()})})}}},fullscreen:function(i){var e=i.options;let s=e.espoView;if(s){this.$window=(0,b.default)(window);this.$scrollbar=(0,b.default)("html, body");this.initialize=function(){this.$editor=i.layoutInfo.editor;this.$toolbar=i.layoutInfo.toolbar;this.$editable=i.layoutInfo.editable;this.$modal=s.$el.closest(".modal");this.isInModal=0<this.$modal.length};this.resizeTo=function(e){this.$editable.css("height",e.h);i.$aceCodable&&i.$aceCodable.css("height",e.h)};this.onResize=function(){this.resizeTo({h:this.$window.height()-this.$toolbar.outerHeight()})};this.isFullscreen=function(){return this.$editor.hasClass("fullscreen")};this.destroy=function(){this.$window.off("resize.summernote"+s.cid);this.isInModal?this.$modal.css("overflow-y",""):this.$scrollbar.css("overflow","")};let t;this.toggle=function(){this.$editor.toggleClass("fullscreen");var e=i.aceEditor;if(this.isFullscreen()){this.$editable.data("orgHeight",this.$editable.css("height"));this.$editable.data("orgMaxHeight",this.$editable.css("maxHeight"));this.$editable.css("maxHeight","");this.$window.on("resize.summernote"+s.cid,this.onResize.bind(this)).trigger("resize");this.isInModal?this.$modal.css("overflow-y","hidden"):this.$scrollbar.css("overflow","hidden");this._isFullscreen=!0;if(e){t=e.getOption("maxLines");e.setOptions({maxLines:null});e.resize()}}else{this.$window.off("resize.summernote"+s.cid);this.resizeTo({h:this.$editable.data("orgHeight")});i.$aceCodable&&i.$aceCodable.css("height","");this.$editable.css("maxHeight",this.$editable.css("orgMaxHeight"));this.$editable.css("height","");this.isInModal?this.$modal.css("overflow-y",""):this.$scrollbar.css("overflow","");this._isFullscreen=!1;if(e){e.setOptions({maxLines:1e5});e.resize()}}i.invoke("toolbar.updateFullscreen",this.isFullscreen())}}}})};b=t(b);v=t(v);d=t(d);n=t(n);function t(e){return e&&e.__esModule?e:{default:e}}let w});define("controller",["exports","exceptions","bullbone","di","helpers/site/modal-bar-provider"],function(e,r,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;r=l(r);s=l(s);var a;let o,n;function l(e){return e&&e.__esModule?e:{default:e}}function d(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class h{constructor(e,t){n(this);this.params=e||{};this.baseController=t.baseController;this.viewFactory=t.viewFactory;this.modelFactory=t.modelFactory;this.collectionFactory=t.collectionFactory;this._settings=t.settings||null;this._user=t.user||null;this._preferences=t.preferences||null;this._acl=t.acl||null;this._cache=t.cache||null;this._router=t.router||null;this._storage=t.storage||null;this._metadata=t.metadata||null;this._dateTime=t.dateTime||null;this._broadcastChannel=t.broadcastChannel||null;this.setMasterRendered(!1)}defaultAction="index";name=null;params=null;viewFactory=null;modelFactory=null;masterView=null;modalBarProvider=o(this);setRouter(e){this._router=e;this.trigger("router-set",e)}getConfig(){return this._settings}getUser(){return this._user}getPreferences(){return this._preferences}getAcl(){return this._acl}getCache(){return this._cache}getRouter(){return this._router}getStorage(){return this._storage}getMetadata(){return this._metadata}getDateTime(){return this._dateTime}get(e){return e in this.params?this.params[e]:null}set(e,t){this.params[e]=t}unset(e){delete this.params[e]}has(e){return e in this.params}_composeScrollKey(e,t){t=t||this.name;return`scrollTop-${t}-`+e}_composeMainViewKey(e){return`mainView-${this.name}-`+e}getStoredMainView(e){return this.get(this._composeMainViewKey(e))}hasStoredMainView(e){return this.has(this._composeMainViewKey(e))}clearStoredMainView(e){var t=this.getStoredMainView(e);t&&t.remove(!0);this.unset(this._composeScrollKey(e));this.unset(this._composeMainViewKey(e))}storeMainView(t,i){this.set(this._composeMainViewKey(t),i);this.listenTo(i,"remove",e=>{e=e||{};if(!e.ignoreCleaning){this.stopListening(i,"remove");this.clearStoredMainView(t)}})}checkAccess(e){return!0}handleAccessGlobal(){if(!this.checkAccessGlobal())throw new r.default.AccessDenied("Denied access to '"+this.name+"'")}checkAccessGlobal(){return!0}handleCheckAccess(e){var t;if(!this.checkAccess(e))throw t=e?"Denied access to action '"+this.name+"#"+e+"'":"Denied access to scope '"+this.name+"'",new r.default.AccessDenied(t)}doAction(e,t){this.handleAccessGlobal();e=e||this.defaultAction;var i="action"+Espo.Utils.upperCaseFirst(e);if(!(i in this))throw new r.default.NotFound("Action '"+this.name+"#"+e+"' is not found");var s="before"+Espo.Utils.upperCaseFirst(e),a="after"+Espo.Utils.upperCaseFirst(e);s in this&&this[s].call(this,t||{});this[i].call(this,t||{});a in this&&this[a].call(this,t||{})}master(t){var e=this.getEntireView();if(e){e.remove();this.setEntireView(null)}e=this.getMasterView();if(e)t.call(this,e);else{e=this.masterView||"views/site/master";this.viewFactory.create(e,{fullSelector:"body"},async e=>{this.setMasterView(e);if(!this.isMasterRendered()){this.modalBarProvider.set(e.collapsedModalBarView||null);await e.render();this.setMasterRendered(!0)}t.call(this,e)})}}getEntireView(){return this.get("entire")}setEntireView(e){this.set("entire",e)}getMasterView(){return this.get("master")}setMasterView(e){e||this.modalBarProvider.set(null);this.set("master",e)}setMasterRendered(e){this.set("masterRendered",e)}isMasterRendered(){return!!this.get("masterRendered")}_unchainMainView(e){if(e.currentViewKey){var t=e.getMainView();if(t){t.propagateEvent("remove",{ignoreCleaning:!0});e.unchainView("main")}}}main(e,a,t){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};let r={isCanceled:!1,key:i.key,useStored:i.useStored,callback:t},o=i.useStored||!1,n=i.key,l=(this.listenToOnce(this.baseController,"action",()=>r.isCanceled=!0),e&&"object"==typeof e?e:void 0),d=l?void 0:e||"views/base";this.master(async i=>{if(!r.isCanceled){a=a||{};a.fullSelector="#main";if(o&&this.hasStoredMainView(n)){let e=this.getStoredMainView(n),t=!0;e&&"isActualForReuse"in e&&"function"==typeof e.isActualForReuse&&(t=e.isActualForReuse());var s=e&&"lastUrl"in e?e.lastUrl:null;if(t&&(!s||s===this.getRouter().getCurrentUrl())){this._processMain(e,i,r);"setupReuse"in e&&"function"==typeof e.setupReuse&&e.setupReuse(a.params||{});return}this.clearStoredMainView(n)}if(l){this._unchainMainView(i);await i.assignView("main",l,"#main");r.isSet=!0;this._processMain(e,i,r)}else this.viewFactory.create(d,a,e=>{this._processMain(e,i,r)})}})}_processMain(s,e,a){if(!a.isCanceled){let t=a.key,i=(t&&this.storeMainView(t,s),()=>{s.cancelRender();a.isCanceled=!0});s.listenToOnce(this.baseController,"action",i);if(e.currentViewKey){var r=this._composeScrollKey(e.currentViewKey,e.currentName);this.set(r,window.scrollY);a.isSet||this._unchainMainView(e)}e.currentViewKey=t;e.currentName=this.name;a.isSet||e.setView("main",s);r=()=>{setTimeout(()=>s.stopListening(this.baseController,"action",i),500);s.updatePageTitle();var e=this._composeScrollKey(t);a.useStored&&this.has(e)?window.scrollTo({top:this.get(e)}):window.scrollTo({top:0})};if(a.callback){this.listenToOnce(s,"after:render",r);a.callback.call(this,s)}else s.render().then(r)}}showLoadingNotification(){var e=this.getMasterView();e&&e.showLoadingNotification()}hideLoadingNotification(){var e=this.getMasterView();e&&e.hideLoadingNotification()}entire(e,t,i){var s=this.getMasterView();s&&s.remove();this.setMasterView(null);this.setMasterRendered(!1);if("object"==typeof e){e.setElement("body");this.viewFactory.prepare(e,()=>{i?i(e):e.render()})}else{t=t||{};t.fullSelector="body";this.viewFactory.create(e,t,e=>{this.setEntireView(e);i?i(e):e.render()})}}static#_=a=()=>[o,n]=d(this,[],[[(0,i.inject)(s.default),0,"modalBarProvider"]]).e}a();Object.assign(h.prototype,t.Events);h.extend=t.View.extend;e.default=h});define("views/main",["exports","view","di","helpers/site/shortcut-manager"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);s=n(s);var a;let r,o;function n(e){return e&&e.__esModule?e:{default:e}}function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d extends t.default{scope="";name="";menu={};$headerActionsContainer=null;shortcutKeys=null;shortcutManager=r(this);events=(o(this),{"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget,{actionItems:[...this.menu.buttons,...this.menu.dropdown],className:"main-header-manu-action"})}});lastUrl;init(){this.scope=this.options.scope||this.scope;this.menu={};this.options.params=this.options.params||{};if(this.name&&this.scope){var e=this.name.charAt(0).toLowerCase()+this.name.slice(1);this.menu=this.getMetadata().get(["clientDefs",this.scope,"menu",e])||{}}this.headerActionItemTypeList=["buttons","dropdown","actions"];this.menu=Espo.Utils.cloneDeep(this.menu);let i={};this.name&&(i=Espo.Utils.cloneDeep(this.getMetadata().get(["clientDefs","Global","menu",this.name.charAt(0).toLowerCase()+this.name.slice(1)])||{}));this._reRenderHeaderOnSync=!1;this._menuHandlers={};this.headerActionItemTypeList.forEach(e=>{this.menu[e]=this.menu[e]||[];this.menu[e]=this.menu[e].concat(i[e]||[]);var t=this.menu[e];t.forEach(a=>{let r=this;(a.initFunction||a.checkVisibilityFunction)&&(a.handler||a.data&&a.data.handler)&&this.wait(new Promise(s=>{var e=a.handler||a.data.handler;Espo.loader.require(e,e=>{var t=new e(r),i=a.name||a.action;i&&(this._menuHandlers[i]=t);a.initFunction&&t[a.initFunction].call(t);a.checkVisibilityFunction&&this.model&&(this._reRenderHeaderOnSync=!0);s()})}))})});this.model&&this.whenReady().then(()=>{this._reRenderHeaderOnSync&&this.listenTo(this.model,"sync",()=>{this.getHeaderView()&&this.getHeaderView().reRender()})});this.updateLastUrl();this.on("after:render-internal",()=>{this.$headerActionsContainer=this.$el.find(".page-header .header-buttons")});this.on("header-rendered",()=>{this.$headerActionsContainer=this.$el.find(".page-header .header-buttons");this.adjustButtons()});this.on("after:render",()=>this.adjustButtons());this.shortcutKeys&&(this.shortcutKeys=Espo.Utils.cloneDeep(this.shortcutKeys))}initShortcuts(){if(this.shortcutKeys){this.shortcutManager.add(this,this.shortcutKeys);this.once("remove",()=>{this.shortcutManager.remove(this)})}}setupFinal(){this.initShortcuts()}updateLastUrl(){this.lastUrl=this.getRouter().getCurrentUrl()}getMenu(){if(this.menuDisabled||!this.menu)return{};let s={};this.headerActionItemTypeList.forEach(i=>{(this.menu[i]||[]).forEach(e=>{if(!1===e)s[i].push(!1);else{e=Espo.Utils.clone(e);s[i]=s[i]||[];if(Espo.Utils.checkActionAvailability(this.getHelper(),e)&&Espo.Utils.checkActionAccess(this.getAcl(),this.model||this.scope,e)&&(!e.accessDataList||Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser()))){e.name=e.name||e.action;e.action=e.action||null;if(this._menuHandlers[e.name]&&e.checkVisibilityFunction){var t=this._menuHandlers[e.name];if(!t[e.checkVisibilityFunction](e.name))return}e.labelTranslation&&(e.html=this.getHelper().escapeString(this.getLanguage().translatePath(e.labelTranslation)));s[i].push(e)}}})});return s}getHeader(){return""}buildHeaderHtml(e){let i=e.map(e=>$("<div>").addClass("breadcrumb-item").append(e)),s=$("<div>").addClass("header-breadcrumbs");i.forEach((e,t)=>{s.append(e);t!==i.length-1&&s.append($("<div>").addClass("breadcrumb-separator").append($("<span>")))});return s.get(0).outerHTML}getHeaderIconHtml(){return this.getHelper().getScopeColorIconHtml(this.scope)}actionShowModal(e){var t=e.view;t&&this.createView("modal",t,{model:this.model,collection:this.collection},e=>{e.render();this.listenTo(e,"after:save",()=>{this.model&&this.model.fetch();this.collection&&this.collection.fetch()})})}updateMenuItem(e,t,i){var s=this._getHeaderActionItem(e);if(s){for(var a in t)s[a]=t[a];i||(this.isRendered()?this.getHeaderView().reRender():this.isBeingRendered()&&this.whenRendered().then(()=>{this.getHeaderView().reRender()}))}}addMenuItem(e,t,i,s){if(t){t.name=t.name||t.action||Espo.Utils.generateId();let i=t.name,s=-1;this.menu[e].forEach((e,t)=>{e=e||{};e.name===i&&(s=t)});~s&&this.menu[e].splice(s,1)}let a="push";i&&(a="unshift");this.menu[e][a](t);!s&&this.isRendered()?this.getHeaderView().reRender():!s&&this.isBeingRendered()&&this.once("after:render",()=>{this.getHeaderView().reRender()})}removeMenuItem(s,e){let a=-1,r=!1;this.headerActionItemTypeList.forEach(i=>{(this.menu[i]||[]).forEach((e,t)=>{e=e||{};if(e.name===s){a=t;r=i}})});~a&&r&&this.menu[r].splice(a,1);!e&&this.isRendered()?this.getHeaderView().reRender():!e&&this.isBeingRendered()?this.once("after:render",()=>{this.getHeaderView().reRender()}):e&&this.isRendered()&&this.$headerActionsContainer.find('[data-name="'+s+'"]').remove()}disableMenuItem(e){var t=this._getHeaderActionItem(e);t&&(t.disabled=!0);let i=()=>{this.$headerActionsContainer.find(`[data-name="${e}"]`).addClass("disabled").attr("disabled")};this.isBeingRendered()?this.whenRendered().then(()=>i()):this.isRendered()&&i()}enableMenuItem(e){var t=this._getHeaderActionItem(e);t&&(t.disabled=!1);let i=()=>{this.$headerActionsContainer.find(`[data-name="${e}"]`).removeClass("disabled").removeAttr("disabled")};this.isBeingRendered()?this.whenRendered().then(()=>i()):this.isRendered()&&i()}actionNavigateToRoot(e,t){t.stopPropagation();this.getRouter().checkConfirmLeaveOut(()=>{var e=this.options.rootUrl||this.options.params.rootUrl||"#"+this.scope;this.getRouter().navigate(e,{trigger:!0,isReturn:!0})})}_getHeaderActionItem(e){for(var t of this.headerActionItemTypeList)if(this.menu[t])for(var i of this.menu[t])if(i&&i.name===e)return i}hideHeaderActionItem(e){var t=this._getHeaderActionItem(e);t&&(t.hidden=!0);if(this.isRendered()){this.$headerActionsContainer.find(`li > .action[data-name="${e}"]`).parent().addClass("hidden");this.$headerActionsContainer.find(`a.action[data-name="${e}"]`).addClass("hidden");this.controlMenuDropdownVisibility();this.adjustButtons();this.getHeaderView()&&this.getHeaderView().trigger("action-item-update")}}showHeaderActionItem(i){let s=this._getHeaderActionItem(i),e=(s&&(s.hidden=!1),()=>{var e=this.$headerActionsContainer.find(`li > .action[data-name="${i}"]`).parent(),t=this.$headerActionsContainer.find(`a.action[data-name="${i}"]`);if(!s||e.length||t.length){e.removeClass("hidden");t.removeClass("hidden");this.controlMenuDropdownVisibility();this.adjustButtons();this.getHeaderView()&&this.getHeaderView().trigger("action-item-update")}else this.getHeaderView()&&this.getHeaderView().reRender()});this.isRendered()?e():this.isBeingRendered()&&this.whenRendered().then(()=>e())}hasMenuVisibleDropdownItems(){let t=!1;(this.menu.dropdown||[]).forEach(e=>{e.hidden||(t=!0)});return t}controlMenuDropdownVisibility(){var e=this.$headerActionsContainer.find(".dropdown-group");if(this.hasMenuVisibleDropdownItems()){e.removeClass("hidden");e.find("> button").removeClass("hidden")}else{e.addClass("hidden");e.find("> button").addClass("hidden")}}getHeaderView(){return this.getView("header")}adjustButtons(){var e=this.$headerActionsContainer.find(".btn"),e=(e.removeClass("radius-left").removeClass("radius-right"),e.filter(":not(.hidden)"));e.first().addClass("radius-left");e.last().addClass("radius-right")}setupReuse(e){this.initShortcuts()}static#_=a=()=>[r,o]=l(this,[],[[(0,i.inject)(s.default),0,"shortcutManager"]],0,void 0,t.default).e}a();e.default=d});define("views/collapsed-modal",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="title-container">
|
||
<a role="button" data-action="expand" class="title">{{title}}</a>
|
||
</div>
|
||
<div class="close-container">
|
||
<a role="button" data-action="close"><span class="fas fa-times"></span></a>
|
||
</div>
|
||
`;events={'click [data-action="expand"]':function(){this.expand()},'click [data-action="close"]':function(){this.close()}};title;constructor(e){super(e);this.options=e;this.modalView=e.modalView}data(){let e=this.title;this.options.duplicateNumber&&(e=this.title+" "+this.options.duplicateNumber);return{title:e}}setup(){this.title=this.options.title||"no-title"}expand(){this.options.onExpand()}close(){this.options.onClose()}}e.default=s});define("views/base",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{constructor(e){super(e)}}e.default=s});define("views/search/filter",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="search/filter";data(){return{name:this.name,scope:this.model.entityType,notRemovable:this.options.notRemovable}}constructor(e){super(e);this.options=e}setup(){var t=this.name=this.options.name;let i=this.options.viewName;if(!i){let e=this.model.getFieldType(t);e||"id"!==t||(e="id");e&&(i=this.model.getFieldParam(t,"view")||this.getFieldManager().getViewName(e))}i&&this.createView("field",i,{mode:"search",model:this.model,selector:".field",name:t,searchParams:this.options.params},e=>{this.listenTo(e,"change",()=>this.trigger("change"));this.listenTo(e,"search",()=>this.trigger("search"))})}getFieldView(){return this.getView("field")}populateDefaults(){var e=this.getFieldView();e&&"populateSearchDefaults"in e&&e.populateSearchDefaults()}}e.default=s});define("views/record/panels-container",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{panelSoftLockedTypeList=["default","acl","delimiter","dynamicLogic"];panelList=null;hasTabs=!1;tabDataList=null;currentTab=0;scope="";entityType="";name="";mode="detail";data(){var e=this.hasTabs?this.getTabDataList():[];return{panelList:this.panelList,scope:this.scope,entityType:this.entityType,tabDataList:e}}events={"click .action":function(t){var i=$(t.currentTarget),i=i.data("panel");if(i){i=this.getView(i);if(i){let e;"function"==typeof i.getButtonList&&"function"==typeof i.getActionList&&(e=[...i.getButtonList(),...i.getActionList()]);Espo.Utils.handleAction(i,t.originalEvent,t.currentTarget,{actionItems:e,className:"panel-action"})}}},'click .panels-show-more-delimiter [data-action="showMorePanels"]':"actionShowMorePanels","click .tabs > button":function(e){var t=parseInt($(e.currentTarget).attr("data-tab"));this.selectTab(t)}};afterRender(){this.adjustPanels()}adjustPanels(){if(this.isRendered()){var e=this.$el.find("> .panel");e.removeClass("first").removeClass("last").removeClass("in-middle");let a=e.filter(":not(.tab-hidden):not(.hidden)"),r=[],o=[],n=!1;a.each((e,t)=>{var i=$(t);let s=!1;if(!s&&this.hasTabs&&!n&&"-1"!==i.attr("data-tab")){n=!0;s=!0}s||i.hasClass("sticked")||(s=!0);if(s){0!==e&&r.push(o);o=[]}o.push(i);e===a.length-1&&r.push(o)});r.forEach(i=>{i.forEach((e,t)=>{t===i.length-1?0!==t&&e.addClass("last"):0===t&&i.length?e.addClass("first"):e.addClass("in-middle")})})}}setReadOnly(){this.readOnly=!0}setNotReadOnly(e){this.readOnly=!1;e&&this.panelList.forEach(e=>{this.applyAccessToActions(e.buttonList);this.applyAccessToActions(e.actionList);this.whenRendered().then(()=>{this.getPanelActionsView(e.name)&&this.getPanelActionsView(e.name).reRender()})})}applyAccessToActions(e){e&&e.forEach(e=>{if(Espo.Utils.checkActionAvailability(this.getHelper(),e)){var t=Espo.Utils.checkActionAccess(this.getAcl(),this.model,e,!0);if(t){if(e.isHiddenByAcl){e.isHiddenByAcl=!1;e.hidden=!1;delete e.hiddenByAclSoft}}else if(!e.hidden){e.isHiddenByAcl=!0;e.hidden=!0;delete e.hiddenByAclSoft;null===t&&(e.hiddenByAclSoft=!0)}}else e.hidden=!0})}setupPanelViews(){this.panelList.forEach(i=>{let s=i.name;var e={model:this.model,panelName:s,selector:`.panel[data-name="${s}"] > .panel-body`,defs:i,mode:this.mode,recordHelper:this.recordHelper,inlineEditDisabled:this.inlineEditDisabled,readOnly:this.readOnly,disabled:i.hidden||!1,recordViewObject:this.recordViewObject,dataObject:this.options.dataObject},e=_.extend(e,i.options);this.createView(s,i.view,e,e=>{let t=!1;if("getActionList"in e){i.actionList=e.getActionList();this.applyAccessToActions(i.actionList);i.actionList.find(e=>e.hiddenByAclSoft)&&(t=!0)}if("getButtonList"in e){i.buttonList=e.getButtonList();this.applyAccessToActions(i.buttonList);i.buttonList.find(e=>e.hiddenByAclSoft)&&(t=!0)}t&&this.listenToOnce(this.model,"sync",()=>{this.applyAccessToActions(i.actionList);this.applyAccessToActions(i.buttonList);e.whenRendered().then(()=>{this.getPanelActionsView(s)&&this.getPanelActionsView(s).reRender()})});e.titleHtml?i.titleHtml=e.titleHtml:i.label?i.title=this.translate(i.label,"labels",this.scope):i.title=e.title;this.createView(s+"Actions","views/record/panel-actions",{selector:`.panel[data-name="${i.name}"] > .panel-heading > .panel-actions-container`,model:this.model,defs:i,scope:this.scope,entityType:this.entityType})})})}getPanelActionsView(e){return this.getView(e+"Actions")}setupPanels(){}getFieldViews(i){let s={};this.panelList.forEach(e=>{var t=this.getPanelView(e.name);(!t.disabled||i)&&"getFieldViews"in t&&(s=_.extend(s,t.getFieldViews()))});return s}fetch(){let i={};this.panelList.forEach(e=>{var t=this.getPanelView(e.name);!t.disabled&&"fetch"in t&&(i=_.extend(i,t.fetch()))});return i}getPanelView(e){return this.getView(e)}hasPanel(t){return!!this.panelList.find(e=>e.name===t)}processShowPanel(t,e){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2];if(!this.recordHelper.getPanelStateParam(t,"hidden")&&this.hasPanel(t)){this.panelList.filter(e=>e.name===t).forEach(e=>{e.hidden=!1;void 0!==e.tabNumber&&this.controlTabVisibilityShow(e.tabNumber)});this.showPanelFinalize(t,e,i)}}processHidePanel(t,e){if(this.recordHelper.getPanelStateParam(t,"hidden")&&this.hasPanel(t)){this.panelList.filter(e=>e.name===t).forEach(e=>{e.hidden=!0;void 0!==e.tabNumber&&this.controlTabVisibilityHide(e.tabNumber)});this.hidePanelFinalize(t,e)}}async showPanelFinalize(r,o,n){var e=e=>{var t=this.getPanelView(r);if(t){if(t.element){var i=t.element.closest(".panel");i&&i.classList.remove("hidden")}t.disabled=!1;t.trigger("show");t.trigger("panel-show-propagated");if(e&&!n&&t.getFieldViews){var s=t.getFieldViews();if(s)for(var a in s)s[a].reRender()}}"function"==typeof o&&o.call(this)};if(this.isRendered()){e(!0);this.adjustPanels()}else{await this.whenRendered();e()}}async hidePanelFinalize(e,t){if(this.isRendered()){var i=this.getPanelView(e);if(i){if(i.element){var s=i.element.closest(".panel");s&&s.classList.add("hidden")}i.disabled=!0;i.trigger("hide")}"function"==typeof t&&t();this.adjustPanels()}else if("function"==typeof t){await this.whenRendered();t()}}showPanel(t,i,e){if(!this.recordHelper.getPanelStateParam(t,"hiddenLocked")){if(i){var s="hidden"+Espo.Utils.upperCaseFirst(i)+"Locked";this.recordHelper.setPanelStateParam(t,s,!1);for(let e=0;e<this.panelSoftLockedTypeList.length;e++){var a=this.panelSoftLockedTypeList[e];if(a!==i){a="hidden"+Espo.Utils.upperCaseFirst(a)+"Locked";if(this.recordHelper.getPanelStateParam(t,a))return}}}s=!1===this.recordHelper.getPanelStateParam(t,"hidden");this.recordHelper.setPanelStateParam(t,"hidden",!1);this.processShowPanel(t,e,s)}}hidePanel(e,t,i,s){this.recordHelper.setPanelStateParam(e,"hidden",!0);t&&this.recordHelper.setPanelStateParam(e,"hiddenLocked",!0);if(i){var a="hidden"+Espo.Utils.upperCaseFirst(i)+"Locked";this.recordHelper.setPanelStateParam(e,a,!0)}this.processHidePanel(e,s)}alterPanels(a){a=a||this.layoutData||{};let r=[];var e,t=[];for(e in a){var i=a[e];"_delimiter_"===e&&this.panelList.push({name:e});if(i.tabBreak){r.push(i.index);t.push({index:i.index,label:i.tabLabel})}}this.tabDataList=t.sort((e,t)=>e.index-t.index);this.panelList=this.panelList.filter(e=>!this.recordHelper.getPanelStateParam(e.name,"hiddenLocked"));let o=[];this.panelList.forEach((t,e)=>{t.index="index"in t?t.index:e;let i=!1;if(t.name){var s=a[t.name]||{};if(s.disabled)return;a[t.name]&&(i=!0);for(let e in s)t[e]=s[e]}if(!t.disabled||i){t.tabNumber=r.length-r.slice().reverse().findIndex(e=>t.index>e)-1;t.tabNumber===r.length&&(t.tabNumber=-1);o.push(t)}});o.sort((e,t)=>e.index-t.index);var s=o.findIndex(e=>-1!==e.tabNumber);if(-1!==s){o[s].isTabsBeginning=!0;this.hasTabs=!0;this.currentTab=o[s].tabNumber;this.panelList.filter(e=>-1!==e.tabNumber&&e.tabNumber!==this.currentTab).forEach(e=>{e.tabHidden=!0});this.panelList.forEach((e,t)=>{-1===e.tabNumber||0!==t&&this.panelList[t-1].tabNumber===e.tabNumber||(e.sticked=!1)})}this.panelList=o;if(this.recordViewObject&&this.recordViewObject.dynamicLogic){let t=this.recordViewObject.dynamicLogic;this.panelList.forEach(e=>{if(e.dynamicLogicVisible){t.addPanelVisibleCondition(e.name,e.dynamicLogicVisible);this.recordHelper.getPanelStateParam(e.name,"hidden")&&(e.hidden=!0)}e.style&&"default"!==e.style&&e.dynamicLogicStyled&&t.addPanelStyledCondition(e.name,e.dynamicLogicStyled)})}this.hasTabs&&this.options.isReturn&&this.isStoredTabForThisRecord()&&this.selectStoredTab()}setupPanelsFinal(){let i=!1,s=!1,a=-1;this.panelList.forEach((e,t)=>{if("_delimiter_"===e.name){i=!0;s=!0;a=t}else{if(i){e.hidden=!0;e.hiddenAfterDelimiter=!0;this.recordHelper.setPanelStateParam(e.name,"hidden",!0);this.recordHelper.setPanelStateParam(e.name,"hiddenDelimiterLocked",!0)}if(s){e.isRightAfterDelimiter=!0;s=!1}}});~a&&this.panelList.splice(a,1);this.panelsAreSet=!0;this.trigger("panels-set")}actionShowMorePanels(){this.panelList.forEach(e=>{if(e.hiddenAfterDelimiter){delete e.isRightAfterDelimiter;this.showPanel(e.name,"delimiter")}});this.$el.find(".panels-show-more-delimiter").remove()}onPanelsReady(e){Promise.race([new Promise(e=>{this.panelsAreSet&&e()}),new Promise(e=>{this.once("panels-set",e)})]).then(()=>{e.call(this)})}getTabDataList(){return this.tabDataList.map((e,t)=>{let i=e.label;i?"$"===i[0]&&(i=this.translate(i.substring(1),"tabs",this.scope)):i=(t+1).toString();var s=-1===this.panelList.filter(e=>e.tabNumber===t).findIndex(e=>!this.recordHelper.getPanelStateParam(e.name,"hidden"));return{label:i,isActive:t===this.currentTab,hidden:s}})}selectTab(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];this.currentTab=t;if(this.isRendered()){$("body > .popover").remove();this.$el.find(".tabs > button").removeClass("active");this.$el.find(`.tabs > button[data-tab="${t}"]`).addClass("active");this.$el.find('.panel[data-tab]:not([data-tab="-1"])').addClass("tab-hidden");this.$el.find(`.panel[data-tab="${t}"]`).removeClass("tab-hidden")}this.adjustPanels();this.panelList.filter(e=>e.tabNumber===t&&e.name).forEach(e=>{var t=this.getPanelView(e.name);if(t){t.trigger("tab-show");t.propagateEvent("panel-show-propagated")}e.tabHidden=!1});this.panelList.filter(e=>e.tabNumber!==t&&e.name).forEach(e=>{var t=this.getPanelView(e.name);t&&t.trigger("tab-hide");-1<e.tabNumber&&(e.tabHidden=!0)});e||this.storeTab()}storeTab(){var e="tab_"+this.name,t=`tab_${this.name}_record`;this.getSessionStorage().set(e,this.currentTab);this.getSessionStorage().set(t,this.entityType+"_"+this.model.id)}isStoredTabForThisRecord(){var e=`tab_${this.name}_record`;return this.getSessionStorage().get(e)===this.entityType+"_"+this.model.id}selectStoredTab(){var e="tab_"+this.name,e=this.getSessionStorage().get(e);0<e&&this.selectTab(e)}async controlTabVisibilityShow(e){if(this.hasTabs){await this.whenRendered();if(this.element){var t=this.element.querySelector(`.tabs > [data-tab="${e.toString()}"]`);t&&t.classList.remove("hidden")}}}async controlTabVisibilityHide(t){if(this.hasTabs){await this.whenRendered();var e=this.panelList.filter(e=>e.tabNumber===t),e=-1===e.findIndex(e=>!this.recordHelper.getPanelStateParam(e.name,"hidden"));if(e){if(this.element){e=this.element.querySelector(`.tabs > [data-tab="${t.toString()}"]`);e&&e.classList.add("hidden")}if(this.currentTab===t){e=this.panelList.find(e=>-1<e.tabNumber&&!e.hidden),e=e?e.tabNumber:0;this.selectTab(e,!0)}}}}setupInitial(){this.listenToOnce(this.model,"sync",async(e,t,i)=>{"fetch"===i.action&&setTimeout(async()=>{await this.whenRendered();if(this.hasTabs){var e=this.panelList.find(e=>!e.hidden&&-1<e.tabNumber);e&&e.tabNumber>this.currentTab&&this.selectTab(e.tabNumber,!0)}},1)})}}e.default=s});define("views/record/list-expanded",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/list-expanded";checkboxes=!1;selectable=!1;rowActionsView=!1;_internalLayoutType="list-row-expanded";presentationType="expanded";paginationDisabled=!0;header=!1;_internalLayout=null;checkedList=null;listContainerEl="> .list > ul";columnResize=!1;init(){this.options.forcePagination&&(this.paginationDisabled=!1);super.init()}setup(){super.setup();this.on("after:save",e=>{var t=this.getView(e.id);t&&t.reRender()});this.displayTotalCount=!1}_loadListLayout(e){var t=this.type+"Expanded";this.layoutLoadCallbackList.push(e);if(!this.layoutIsBeingLoaded){this.layoutIsBeingLoaded=!0;this._helper.layoutManager.get(this.collection.entityType,t,t=>{this.layoutLoadCallbackList.forEach(e=>{e(t);this.layoutLoadCallbackList=[];this.layoutIsBeingLoaded=!1})})}}_convertLayout(e,t){t=t||this.collection.prepareModel();var i,s={rows:[],right:!1};for(i in e.rows){var a,r=e.rows[i],o=[];for(a in r){var n=r[a],l=n.type||t.getFieldType(n.name)||"base",d={name:n.name+"Field",field:n.name,view:n.view||t.getFieldParam(n.name,"view")||this.getFieldManager().getViewName(l),options:{defs:{name:n.name,params:n.params||{}},mode:"list"},align:n.align,small:n.small,soft:n.soft};if(n.options)for(var h in n.options)void 0===d.options[h]&&(d.options[h]=n.options[h]);n.link&&(d.options.mode="listLink");o.push(d)}s.rows.push(o)}if("right"in e){if(e.right){var c=e.right.name||"right";s.right={field:c,name:c,view:e.right.view,options:{defs:{params:{width:e.right.width||"7%"}}}}}}else this.rowActionsView&&(s.right=this.getRowActionsDefs());return s}getRowSelector(e){return'li[data-id="'+e+'"]'}getCellSelector(e,t){var i=t.field||t.columnName;return`${this.getSelector()} ${this.getRowSelector(e.id)} .cell[data-name="${i}"]`}getRowContainerHtml(e){return $("<li>").attr("data-id",e).addClass("list-group-item list-row").get(0).outerHTML}prepareInternalLayout(e,t){var i=e.rows||[];i.forEach(e=>{e.forEach(e=>{e.options??={};e.options.fullSelector=this.getCellSelector(t,e)})});if(e.right){e.right.options??={};e.right.options.fullSelector=this.getCellSelector(t,e.right)}}fetchAttributeListFromLayout(){let s=[];this.listLayout.rows&&this.listLayout.rows.forEach(e=>{e.forEach(e=>{if(e.name){var t=e.name,i=this.getMetadata().get(["entityDefs",this.scope,"fields",t,"type"]);i&&this.getFieldManager().getEntityTypeFieldAttributeList(this.scope,t).forEach(e=>{s.push(e)})}})});return s}}e.default=s});define("views/record/panels/bottom",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/panels/side";fieldList;actionList;buttonList;defs;mode="detail";disabled=!1;events={"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget,{actionItems:[...this.buttonList,...this.actionList],className:"panel-action"})}};data(){return{scope:this.scope,entityType:this.entityType,name:this.panelName,hiddenFields:this.recordHelper.getHiddenFields(),fieldList:this.getFieldList()}}init(){this.panelName=this.options.panelName;this.defs=this.options.defs||{};this.recordHelper=this.options.recordHelper;"disabled"in this.options&&(this.disabled=this.options.disabled);this.mode=this.options.mode||this.mode;this.readOnlyLocked=this.options.readOnlyLocked||this.readOnly;this.readOnly=this.readOnly||this.options.readOnly;this.inlineEditDisabled=this.inlineEditDisabled||this.options.inlineEditDisabled;this.buttonList=Espo.Utils.clone(this.defs.buttonList||this.buttonList||[]);this.actionList=Espo.Utils.clone(this.defs.actionList||this.actionList||[]);this.actionList.forEach(e=>{e.name&&(e.action=e.name)});this.fieldList=this.options.fieldList||this.fieldList||[];this.recordViewObject=this.options.recordViewObject}setup(){this.setupFields();this.fieldList=this.fieldList.map(e=>{let t=e;"object"!=typeof t&&(t={name:t,viewKey:t+"Field"});t=Espo.Utils.clone(t);t.viewKey=t.name+"Field";t.label=t.label||t.name;null!==this.recordHelper.getFieldStateParam(t.name,"hidden")?t.hidden=this.recordHelper.getFieldStateParam(t.name,"hidden"):this.recordHelper.setFieldStateParam(t.name,"hidden",t.hidden||!1);return t});this.fieldList=this.fieldList.filter(e=>{if(e.name&&e.name in((this.model.defs||{}).fields||{}))return!0});this.createFields()}setupFields(){}getButtonList(){return this.buttonList||[]}getActionList(){return this.actionList||[]}getFieldViews(){let t={};this.getFieldList().forEach(e=>{this.hasView(e.viewKey)&&(t[e.name]=this.getView(e.viewKey))});return t}getFields(){return this.getFieldViews()}getFieldList(){return this.fieldList.map(e=>"object"!=typeof e?{name:e}:e)}createFields(){this.getFieldList().forEach(e=>{let t=null,i,s=null;if("object"==typeof e){i=e.name;t=e.view;"readOnly"in e&&(s=e.readOnly)}else i=e;i in this.model.defs.fields&&this.createField(i,t,null,null,s)})}createField(e,t,i,s,a,r){var o=this.model.getFieldType(e)||"base",n=(t=t||this.model.getFieldParam(e,"view")||this.getFieldManager().getViewName(o),{model:this.model,selector:'.field[data-name="'+e+'"]',defs:{name:e,params:i||{}},mode:s||this.mode,dataObject:this.options.dataObject});if(r)for(var l in r)n[l]=r[l];let d=this.readOnlyLocked;this.readOnly?n.readOnly=!0:null!==a&&(n.readOnly=a);a&&(d=!0);this.inlineEditDisabled&&(n.inlineEditDisabled=!0);this.recordHelper.getFieldStateParam(e,"hidden")&&(n.disabled=!0);this.recordHelper.getFieldStateParam(e,"hiddenLocked")&&(n.disabledLocked=!0);this.recordHelper.getFieldStateParam(e,"readOnly")&&(n.readOnly=!0);null!==this.recordHelper.getFieldStateParam(e,"required")&&(n.defs.params.required=this.recordHelper.getFieldStateParam(e,"required"));!d&&this.recordHelper.getFieldStateParam(e,"readOnlyLocked")&&(d=!0);d&&(n.readOnlyLocked=d);this.recordHelper.hasFieldOptionList(e)&&(n.customOptionList=this.recordHelper.getFieldOptionList(e));this.recordViewObject&&(n.validateCallback=()=>this.recordViewObject.validateField(e));o=e+"Field";this.createView(o,t,n)}isTabHidden(){var e;return-1!==this.defs.tabNumber&&void 0!==this.defs.tabNumber&&(e=this.getParentView(),e?!(!e||!e.hasTabs)&&e.currentTab!==this.defs.tabNumber:0<this.defs.tabNumber)}}e.default=s});define("views/fields/wysiwyg",["exports","views/fields/text","helpers/misc/summernote-custom"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(s=t,s&&s.__esModule?s:{default:s});var s;class a extends t.default{constructor(e){super(e)}type="wysiwyg";listTemplate="fields/wysiwyg/detail";detailTemplate="fields/wysiwyg/detail";editTemplate="fields/wysiwyg/edit";height=250;rowsDefault=1e4;fallbackBodySideMargin=5;fallbackBodyTopMargin=4;seeMoreDisabled=!0;fetchEmptyValueAsNull=!0;validationElementSelector=".note-editor";htmlPurificationDisabled=!1;htmlPurificationForEditDisabled=!1;tableClassName="table table-bordered";noStylesheet=!1;useIframe=!1;handlebars=!1;toolbar;hasBodyPlainField=!1;events={"click .note-editable":function(){this.fixPopovers()},"focus .note-editable":function(){this.$noteEditor.addClass("in-focus")},"blur .note-editable":function(){this.$noteEditor.removeClass("in-focus")}};setup(){super.setup();this.loadSummernote();"height"in this.params&&(this.height=this.params.height);"minHeight"in this.params&&(this.minHeight=this.params.minHeight);this.useIframe=this.params.useIframe||this.useIframe;this.setupToolbar();this.setupIsHtml();this.once("remove",()=>this.destroySummernote());this.on("inline-edit-off",()=>this.destroySummernote());this.on("render",()=>this.destroySummernote());this.once("remove",()=>{$(window).off("resize."+this.cid);this.$scrollable&&this.$scrollable.off(`scroll.${this.cid}-edit`)})}loadSummernote(){this.wait(Espo.loader.requirePromise("lib!summernote").then(()=>{!$.summernote.options||"espoImage"in $.summernote.options||this.initEspoPlugin()}))}setupIsHtml(){this.hasBodyPlainField&&this.listenTo(this.model,"change:isHtml",(e,t,i)=>{if(i.ui&&this.isEditMode()){if(!this.isRendered())return;if(this.isHtml()){let e=this.plainToHtml(this.model.get(this.name));this.lastHtmlValue&&this.model.get(this.name)===this.htmlToPlain(this.lastHtmlValue)&&(e=this.lastHtmlValue);this.model.set(this.name,e,{skipReRender:!0});this.enableWysiwygMode();return}this.lastHtmlValue=this.model.get(this.name);let e=this.htmlToPlain(this.model.get(this.name));this.disableWysiwygMode();this.model.set(this.name,e)}else this.isDetailMode()&&this.isRendered()&&this.reRender()})}data(){var e=super.data();e.useIframe=this.useIframe;e.isPlain=!this.isHtml();e.isNone=!e.isNotEmpty&&e.valueIsSet&&this.isDetailMode();return e}setupToolbar(){this.buttons={};var e=this.getConfig().get("wysiwygCodeEditorDisabled")?"codeview":"aceCodeview";this.toolbar=this.params.toolbar||this.toolbar||[["style",["style"]],["style",["bold","italic","underline","clear"]],["fontsize",["fontsize"]],["color",["color"]],["para",["ul","ol","paragraph"]],["height",["height"]],["table",["espoTable","espoLink","espoImage","hr"]],["misc",[e,"fullscreen"]]];if(!this.params.toolbar&&this.params.attachmentField){this.toolbar.push(["attachment",["attachment"]]);this.buttons.attachment=()=>{var e=$.summernote.ui,e=e.button({contents:'<i class="fas fa-paperclip"></i>',tooltip:this.translate("Attach File"),click:()=>{this.attachFile()}});return e.render()}}}isHtml(){return!this.hasBodyPlainField||!this.model.has("isHtml")||this.model.get("isHtml")}fixPopovers(){$("body > .note-popover").removeClass("hidden")}getValueForDisplay(){var e;if(this.isReadMode()||!this.isHtml())return e=super.getValueForDisplay(),this.isHtml()?this.sanitizeHtml(e):e}sanitizeHtml(e){if(!e)return"";if(this.htmlPurificationDisabled)return this.sanitizeHtmlLight(e);e=this.getHelper().sanitizeHtml(e);this.isEditMode()&&(e=this.getHelper().sanitizeHtml(e));return e}sanitizeHtmlLight(e){return this.getHelper().moderateSanitizeHtml(e)}getValueForEdit(){var e=this.model.get(this.name)||"";return this.htmlPurificationForEditDisabled?this.sanitizeHtmlLight(e):this.sanitizeHtml(e)}afterRender(){super.afterRender();this.isEditMode()&&(this.$summernote=this.$el.find(".summernote"));var e=this.getConfig().get("language");e in $.summernote.lang||($.summernote.lang[e]=this.getLanguage().translate("summernote","sets"));if(this.isEditMode()){this.isHtml()?this.enableWysiwygMode():this.$element.removeClass("hidden");this.params.attachmentField&&this.isInlineEditMode()&&this.$el.find(".note-attachment").addClass("hidden")}this.isReadMode()&&this.renderDetail()}renderDetail(){if(this.isHtml())if(this.useIframe){this.$el.find("iframe").removeClass("hidden");let c=this.$el.find("iframe"),u=this.iframe=c.get(0);u.setAttribute("sandbox","");if(u&&u.contentWindow){c.on("load",()=>{c.contents().find("a").attr("target","_blank")});var m=u.contentWindow.document;let e=this.getValueForIframe(),t=this.getThemeManager().getParam("isDark")&&this.htmlHasColors(e);var p=this.getThemeManager().getParam("isDark")&&(this.htmlHasColors(e)||this.noStylesheet);let i=c.parent();p?i.addClass("fallback"):i.removeClass("fallback");if(!this.noStylesheet){p=u.contentWindow.document.createElement("link");p.type="text/css";p.rel="stylesheet";p.href=this.getBasePath()+(t?this.getThemeManager().getIframeFallbackStylesheet():this.getThemeManager().getIframeStylesheet());e=p.outerHTML+e}let s="";if(this.noStylesheet){p=m.createElement("style");p.textContent=`
|
||
table.bordered, table.bordered td, table.bordered th {border: 1px solid;}
|
||
`;s=p.outerHTML}p=`<head>${s}</head><body>${e}</body>`;m.write(p);m.close();let a=c.contents().find("html body"),r=(a.find("img").each((e,t)=>{var i=$(t);"none"===i.css("max-width")&&i.css("max-width","100%")}),$(m));r.on("click",()=>{var e=new MouseEvent("click",{bubbles:!0});c[0].dispatchEvent(e)});r.on("mouseup",()=>{var e=new MouseEvent("mouseup",{bubbles:!0});c[0].dispatchEvent(e)});r.on("keydown",e=>{var t=e.originalEvent,t=new KeyboardEvent("keydown",{bubbles:!0,code:t.code,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey});c[0].dispatchEvent(t)});let o=function(){var e=a.get(0);e&&e.clientWidth!==u.scrollWidth&&(u.style.height=u.scrollHeight+20+"px")},n=(t&&i.css({paddingLeft:this.fallbackBodySideMargin+"px",paddingRight:this.fallbackBodySideMargin+"px",paddingTop:this.fallbackBodyTopMargin+"px"}),10),l=function(e,t){a.css("height","");e=e||0;if(!(200<e)){e++;var i=r.height()-u.scrollHeight;if(void 0!==t&&i===t){a.css("height",u.clientHeight-n+"px");o()}else if(i){var s=u.scrollHeight+n;u.style.height=s+"px";l(e,i)}else o()}},d=function(e){if(e){if(u.scrollHeight>=r.height())return}else{c.css({overflowY:"hidden",overflowX:"hidden"});u.style.height="0px"}var t=c.contents().find("html body");let i=t.height();0===i&&(i=t.children().height()+100);u.style.height=i+"px";l();e||c.css({overflowY:"hidden",overflowX:"scroll"})};c.css({visibility:"hidden"});setTimeout(()=>{d();c.css({visibility:"visible"});c.on("load",()=>{d(!0);t&&!this.noStylesheet&&(e=u.contentWindow.getComputedStyle(a.get(0)).backgroundColor,i.css({backgroundColor:e}));var e})},40);this.model.get(this.name)||c.addClass("hidden");let h=$(window).width();$(window).off("resize."+this.cid);$(window).on("resize."+this.cid,()=>{if($(window).width()!==h){d();h=$(window).width()}})}}else this.$element=this.$el.find(".html-container");else this.$el.find(".plain").removeClass("hidden")}getValueForIframe(){return this.sanitizeHtml(this.model.get(this.name)||"")}enableWysiwygMode(){if(this.$element){this.$element.addClass("hidden");this.$summernote.removeClass("hidden");var i=this.getValueForEdit();this.$summernote.html(i);this.$summernote.find("style").remove();this.$summernote.find('link[ref="stylesheet"]').remove();i=Espo.Utils.cloneDeep($.summernote.options.keyMap);i.pc["CTRL+K"]="espoLink.show";i.mac["CMD+K"]="espoLink.show";i.pc["CTRL+DELETE"]="removeFormat";i.mac["CMD+DELETE"]="removeFormat";delete i.pc["CTRL+ENTER"];delete i.mac["CMD+ENTER"];delete i.pc["CTRL+BACKSLASH"];delete i.mac["CMD+BACKSLASH"];var s=this.toolbar;let e=new Date,t=1e3*this.changeInterval;i={handlebars:this.handlebars,prettifyHtml:!1,disableResizeEditor:!0,isDark:this.getThemeManager().getParam("isDark"),espoView:this,lang:this.getConfig().get("language"),keyMap:i,callbacks:{onImageUpload:e=>{var t=e[0];Espo.Ui.notify(this.translate("Uploading..."));this.uploadInlineAttachment(t).then(e=>{var t="?entryPoint=attachment&id="+e.id;this.$summernote.summernote("insertImage",t);Espo.Ui.notify(!1)})},onBlur:()=>{this.trigger("change")},onKeydown:()=>{if(Date.now()-e>t){this.trigger("change");e=Date.now()}}},onCreateLink(e){return e},toolbar:s,buttons:this.buttons,dialogsInBody:this.$el,codeviewFilter:!0,tableClassName:this.tableClassName,disableDragAndDrop:!0,colorButton:{foreColor:"#000000",backColor:"#FFFFFF"}};if(this.height)i.height=this.height;else{let e=this.$el.closest(".modal-body");e.length||(e=$(window));this.$scrollable=e;e.off(`scroll.${this.cid}-edit`);e.on(`scroll.${this.cid}-edit`,e=>this.onScrollEdit(e))}this.minHeight&&(i.minHeight=this.minHeight);this.destroySummernote();this.$summernote.summernote(i);this.summernoteIsInitialized=!0;this.$toolbar=this.$el.find(".note-toolbar");this.$area=this.$el.find(".note-editing-area");this.$noteEditor=this.$el.find("> .note-editor")}}focusOnInlineEdit(){this.$noteEditor?this.$summernote.summernote("focus"):super.focusOnInlineEdit()}uploadInlineAttachment(a){return new Promise((i,s)=>{this.getModelFactory().create("Attachment",t=>{var e=new FileReader;e.onload=e=>{t.set("name",a.name);t.set("type",a.type);t.set("role","Inline Attachment");t.set("global",!0);t.set("size",a.size);this.model.id&&t.set("relatedId",this.model.id);t.set("relatedType",this.model.entityType);t.set("file",e.target.result);t.set("field",this.name);t.save().then(()=>i(t)).catch(()=>s())};e.readAsDataURL(a)})})}destroySummernote(){if(this.summernoteIsInitialized&&this.$summernote){this.$summernote.summernote("destroyAceCodeview");this.$summernote.summernote("destroy");this.summernoteIsInitialized=!1}}plainToHtml(e){e=e||"";return e.replace(/\n/g,"<br>")}htmlToPlain(e){var t=document.createElement("div");t.innerHTML=e;return function e(t){if(t.nodeType===Node.TEXT_NODE)return t.nodeValue;if(t.nodeType!==Node.ELEMENT_NODE)return"";if(t instanceof HTMLAnchorElement)return t.textContent===t.href?t.href:t.textContent+` (${t.href})`;if(t instanceof HTMLQuoteElement)return"> "+t.textContent.trim();switch(t.tagName.toLowerCase()){case"br":case"p":case"div":return`
|
||
${Array.from(t.childNodes).map(e).join("")}
|
||
`}return Array.from(t.childNodes).map(e).join("")}(t).replace(/\n{2,}/g,"\n\n").trim()}disableWysiwygMode(){this.destroySummernote();this.$noteEditor=null;this.$summernote&&this.$summernote.addClass("hidden");this.$element.removeClass("hidden");this.$scrollable&&this.$scrollable.off("scroll."+this.cid+"-edit")}fetch(){var t={};if(this.isHtml()){let e=this.$summernote.summernote("code");"<p><br></p>"===e&&(e="");var i=`<img src="${window.location.origin}${window.location.pathname}?entryPoint=attachment`;e=e.replace(new RegExp(i.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1"),"g"),'<img src="?entryPoint=attachment');t[this.name]=e}else t[this.name]=this.$element.val();this.fetchEmptyValueAsNull&&!t[this.name]&&(t[this.name]=null);return t}onScrollEdit(e){var t=$(e.target),i=this.$toolbar.height(),s=this.$toolbar.parent().width();let a,r;if(t.get(0)===window.document){var o=t.find(".detail-button-container:not(.hidden)"),n=o.offset();if(n){a=n.top+o.outerHeight();r=a-$(window).scrollTop()}}else{n=t.offset();if(n){a=n.top;r=a-$(window).scrollTop()}}o=this.$el.offset().top,t=o+this.$el.height()-i;let l=!1;a>o&&t>a&&(l=!0);if(l){this.$toolbar.css({top:r+"px",width:s+"px"});this.$toolbar.addClass("sticked");this.$area.css({marginTop:i+"px",backgroundColor:""})}else{this.$toolbar.css({top:"",width:""});this.$toolbar.removeClass("sticked");this.$area.css({marginTop:""})}}attachFile(){var e=this.$el.closest(".record");e.find(`.field[data-name="${this.params.attachmentField}"] input.file`).click();this.stopListening(this.model,"attachment-uploaded:attachments");this.listenToOnce(this.model,"attachment-uploaded:attachments",e=>{if(this.isEditMode()){var t=this.translate("Attached")+"\n"+e.map(e=>e.attributes.name).join("\n");Espo.Ui.notify(t,"success",3e3)}})}initEspoPlugin(){var e=this.getLanguage().get("Global","sets","summernote")||{image:{},link:{},video:{}};(0,i.init)(e)}htmlHasColors(e){return!!~e.indexOf("background-color:")||!!~e.indexOf("color:")||!!~e.indexOf('<font color="')}insertText(e){this.isHtml()&&this.$summernote.summernote("insertText",e)}toSkipReRenderOnChange(){return!(!this.element||!this.element.contains(document.activeElement)||this.model.hasChanged(this.name))}}e.default=a});define("views/fields/link",["exports","views/fields/base","helpers/record-modal","ui/autocomplete"],function(e,t,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{constructor(e){super(e)}type="link";listTemplate="fields/link/list";detailTemplate="fields/link/detail";editTemplate="fields/link/edit";searchTemplate="fields/link/search";nameName;idName;foreignScope=null;selectRecordsView="views/modals/select-records";autocompleteDisabled=!1;createDisabled=!1;createButton=!1;forceCreateButton=!1;searchTypeList=["is","isEmpty","isNotEmpty","isNot","isOneOf","isNotOneOf"];selectFilterList=null;selectPrimaryFilterName=null;selectBoolFilterList=null;autocompleteMaxCount=null;forceSelectAllAttributes=!1;mandatorySelectAttributeList=null;autocompleteOnEmpty=!1;linkClass;foreignNameAttribute;events={'auxclick a[href]:not([role="button"])':function(e){if(this.isReadMode()){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){e.preventDefault();e.stopPropagation();this.quickView()}}}};data(){let e=this.model.has(this.nameName)?this.model.get(this.nameName):this.model.get(this.idName);null===e&&(e=this.model.get(this.idName));this.isReadMode()&&!e&&this.model.get(this.idName)&&(e=this.translate(this.foreignScope,"scopeNames"));let t=null;(this.isDetailMode()||this.isListMode())&&(t=this.getHelper().getScopeColorIconHtml(this.foreignScope));var i=this.createButton&&(!this.createDisabled||this.forceCreateButton);return{...super.data(),idName:this.idName,nameName:this.nameName,idValue:this.model.get(this.idName),nameValue:e,foreignScope:this.foreignScope,valueIsSet:this.model.has(this.idName),iconHtml:t,url:this.getUrl(),createButton:i,linkClass:this.linkClass}}getUrl(){var e=this.model.get(this.idName);return e?"#"+this.foreignScope+"/view/"+e:null}getSelectFilters(){return null}getSelectBoolFilterList(){return this.selectBoolFilterList}getSelectPrimaryFilterName(){return this.selectPrimaryFilterName}getSelectFilterList(){return this.selectFilterList}getCreateAttributes(){let t=this.getMetadata().get(["clientDefs",this.entityType,"relationshipPanels",this.name,"createAttributeMap"])||{},i={};Object.keys(t).forEach(e=>i[t[e]]=this.model.get(e));return i}setup(){this.nameName=this.name+"Name";this.idName=this.name+"Id";this.foreignScope=this.options.foreignScope||this.foreignScope;this.foreignScope=this.foreignScope||this.params.entity||this.model.getFieldParam(this.name,"entity")||this.model.getLinkParam(this.name,"entity");this.foreignNameAttribute=this.model.getLinkParam(this.name,"foreignName")??this.getMetadata().get(`clientDefs.${this.foreignScope}.nameAttribute`)??"name";"createDisabled"in this.options&&(this.createDisabled=this.options.createDisabled);if(!this.isListMode()){this.addActionHandler("selectLink",()=>this.actionSelect());this.addActionHandler("clearLink",()=>this.clearLink())}if(this.isSearchMode()){this.addActionHandler("selectLinkOneOf",()=>this.actionSelectOneOf());this.addActionHandler("clearLinkOneOf",(e,t)=>this.deleteLinkOneOf(t.dataset.id))}this.autocompleteOnEmpty=this.params.autocompleteOnEmpty||this.autocompleteOnEmpty;this.createButton=this.params.createButton||this.createButton;this.createButton&&!this.getAcl().checkScope(this.foreignScope,"create")&&(this.createButton=!1);this.createButton&&this.addActionHandler("createLink",()=>this.actionCreateLink());this.panelDefs=this.getMetadata().get(["clientDefs",this.entityType,"relationshipPanels",this.name])||{};this.panelDefs.createDisabled&&(this.createDisabled=!0)}select(t){this.$elementName.val(t.get(this.foreignNameAttribute)||t.id);this.$elementId.val(t.id);if(this.mode===this.MODE_SEARCH){this.searchData.idValue=t.id;this.searchData.nameValue=t.get(this.foreignNameAttribute)||t.id}this.trigger("change");this.controlCreateButtonVisibility();let i={};for(var[e,s]of Object.entries(this.getDependantForeignMap()))i[s]=t.get(e);this.getSelectFieldHandler().then(async e=>{this.model.set({...i,...await e.getAttributes(t)},{fromField:this.name})})}clearLink(){this.$elementName.val("");this.$elementId.val("");this.trigger("change");this.controlCreateButtonVisibility();for(var[,e]of Object.entries(this.getDependantForeignMap()))this.model.unset(e,{fromField:this.name});this.getSelectFieldHandler().then(e=>{e.getClearAttributes().then(e=>{this.model.set(e,{fromField:this.name})})})}controlCreateButtonVisibility(){if(this.createButton){var e=this.$el.find('[data-action="createLink"]');this.model.get(this.idName)?e.addClass("hidden"):e.removeClass("hidden")}}getSelectFieldHandler(){return this.panelDefs.selectFieldHandler?new Promise(i=>{Espo.loader.requirePromise(this.panelDefs.selectFieldHandler).then(e=>{var t=new e(this.getHelper(),this.model);i(t)})}):Promise.resolve({getClearAttributes:()=>Promise.resolve({}),getAttributes:()=>Promise.resolve({})})}setupSearch(){this.searchData.oneOfIdList=this.getSearchParamsData().oneOfIdList||this.searchParams.oneOfIdList||[];this.searchData.oneOfNameHash=this.getSearchParamsData().oneOfNameHash||this.searchParams.oneOfNameHash||{};if(~["is","isNot","equals"].indexOf(this.getSearchType())){this.searchData.idValue=this.getSearchParamsData().idValue||this.searchParams.idValue||this.searchParams.value;this.searchData.nameValue=this.getSearchParamsData().nameValue||this.searchParams.nameValue||this.searchParams.valueName}this.events["change select.search-type"]=e=>{var t=$(e.currentTarget).val();this.handleSearchType(t)}}handleSearchType(e){~["is","isNot","isNotAndIsNotEmpty"].indexOf(e)?this.$el.find("div.primary").removeClass("hidden"):this.$el.find("div.primary").addClass("hidden");~["isOneOf","isNotOneOf","isNotOneOfAndIsNotEmpty"].indexOf(e)?this.$el.find("div.one-of-container").removeClass("hidden"):this.$el.find("div.one-of-container").addClass("hidden")}getAutocompleteMaxCount(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")}getMandatorySelectAttributeList(){var e=this.mandatorySelectAttributeList||this.panelDefs.selectMandatoryAttributeList||[],t=this.getDependantForeignMap();return[...e,...Object.keys(t)]}getDependantForeignMap(){if(this._dependantForeignMap)return this._dependantForeignMap;let i={};this.model.getFieldList().filter(e=>"foreign"===this.model.getFieldType(e)&&this.model.getFieldParam(e,"link")===this.name).forEach(e=>{var t=this.model.getFieldParam(e,"field");t&&(i[t]=e)});this._dependantForeignMap=i;return i}getAutocompleteUrl(e){let a=this.foreignScope+"?maxSize="+this.getAutocompleteMaxCount();if(!this.forceSelectAllAttributes){var t=this.getMandatorySelectAttributeList();let e=["id",this.foreignNameAttribute];t&&(e=e.concat(t));a+="&select="+e.join(",")}if(this.panelDefs.selectHandler)return new Promise(s=>{this._getSelectFilters().then(e=>{e.bool&&(a+="&"+$.param({boolFilterList:e.bool}));e.primary&&(a+="&"+$.param({primaryFilter:e.primary}));e.advanced&&Object.keys(e.advanced).length&&(a+="&"+$.param({where:e.advanced}));var t=e.orderBy||this.panelDefs.selectOrderBy,i=e.orderBy?e.order:this.panelDefs.selectOrderDirection;t&&(a+="&"+$.param({orderBy:t,order:i||"asc"}));s(a)})});var t=[...this.getSelectBoolFilterList()||[],...this.panelDefs.selectBoolFilterList||[]],i=this.getSelectPrimaryFilterName()||this.panelDefs.selectPrimaryFilterName;t.length&&(a+="&"+$.param({boolFilterList:t}));i&&(a+="&"+$.param({primaryFilter:i}));if(this.panelDefs.selectOrderBy){t=this.panelDefs.selectOrderDirection||"asc";a+="&"+$.param({orderBy:this.panelDefs.selectOrderBy,order:t})}return a}afterRender(){if(this.isEditMode()||this.isSearchMode()){this.$elementId=this.$el.find('input[data-name="'+this.idName+'"]');this.$elementName=this.$el.find('input[data-name="'+this.nameName+'"]');this.$elementName.on("change",()=>{""===this.$elementName.val()&&this.clearLink()});this.$elementName.on("blur",e=>{setTimeout(()=>{this.mode===this.MODE_EDIT&&this.model.has(this.nameName)&&(e.currentTarget.value=this.model.get(this.nameName)||this.model.get(this.idName))},100)});let e=this.$elementName;if(!this.autocompleteDisabled){let i,e=new a.default(this.$elementName.get(0),{name:this.name,handleFocusMode:2,autoSelectFirst:!0,forceHide:!0,triggerSelectOnValidInput:!1,catchFastEnter:!0,onSelect:t=>{this.getModelFactory().create(this.foreignScope,async e=>{e.set(t.attributes);await(this.select(e)??await Promise.resolve());this.$elementName.focus()})},lookupFunction:t=>{var e;return this.autocompleteOnEmpty||0!==t.length?Promise.resolve(this.getAutocompleteUrl(t)).then(e=>{i&&i.getReadyState()<4&&i.abort();i=Espo.Ajax.getRequest(e,{q:t});return i}).then(e=>this._transformAutocompleteResult(e)):(e=this.getOnEmptyAutocomplete(),e?e.then(e=>this._transformAutocompleteResult({list:e})):Promise.resolve([]))}});this.once("render remove",()=>e.dispose());if(this.isSearchMode()){let i=this.$el.find("input.element-one-of"),s,e=new a.default(i.get(0),{minChars:1,focusOnSelect:!0,handleFocusMode:3,autoSelectFirst:!0,triggerSelectOnValidInput:!1,forceHide:!0,onSelect:t=>{this.getModelFactory().create(this.foreignScope,e=>{e.set(t.attributes);this.selectOneOf([e]);i.val("");setTimeout(()=>i.focus(),50)})},lookupFunction:t=>Promise.resolve(this.getAutocompleteUrl(t)).then(e=>{s&&s.getReadyState()<4&&s.abort();s=Espo.Ajax.getRequest(e,{q:t});return s}).then(e=>e.list.map(e=>({value:e.name,attributes:e})))});this.once("render remove",()=>e.dispose());this.$el.find("select.search-type").on("change",()=>{this.trigger("change")})}}e.on("change",()=>{this.isSearchMode()||this.model.get(this.idName)||e.val(this.model.get(this.nameName))})}if(this.isSearchMode()){var e=this.$el.find("select.search-type").val();this.handleSearchType(e);~["isOneOf","isNotOneOf","isNotOneOfAndIsNotEmpty"].indexOf(e)&&this.searchData.oneOfIdList.forEach(e=>{this.addLinkOneOfHtml(e,this.searchData.oneOfNameHash[e])})}}_transformAutocompleteResult(e){let s=[];e.list.forEach(e=>{var t=e[this.foreignNameAttribute]||e.name||e.id,i=e;"name"!==this.foreignNameAttribute&&(i[this.foreignNameAttribute]=t);s.push({id:e.id,name:t,data:e.id,value:t,attributes:i})});return s}getValueForDisplay(){return this.model.get(this.nameName)}validateRequired(){if(this.isRequired()&&null==this.model.get(this.idName)){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}deleteLinkOneOf(e){this.deleteLinkOneOfHtml(e);var t=this.searchData.oneOfIdList.indexOf(e);-1<t&&this.searchData.oneOfIdList.splice(t,1);delete this.searchData.oneOfNameHash[e];this.trigger("change")}addLinkOneOf(e,t){if(!~this.searchData.oneOfIdList.indexOf(e)){this.searchData.oneOfIdList.push(e);this.searchData.oneOfNameHash[e]=t;this.addLinkOneOfHtml(e,t);this.trigger("change")}}deleteLinkOneOfHtml(e){this.$el.find(".link-one-of-container .link-"+e).remove()}addLinkOneOfHtml(e,t){var i=this.$el.find(".link-one-of-container"),s=$("<div>").addClass("link-"+e).addClass("list-group-item");s.append($("<a>").attr("role","button").addClass("pull-right").attr("data-id",e).attr("data-action","clearLinkOneOf").append($("<span>").addClass("fas fa-times")),$("<span>").text(t)," ");i.append(s);return s}fetch(){var e={};e[this.nameName]=this.$el.find('[data-name="'+this.nameName+'"]').val()||null;e[this.idName]=this.$el.find('[data-name="'+this.idName+'"]').val()||null;return e}fetchSearch(){var t=this.$el.find("select.search-type").val(),i=this.$el.find('[data-name="'+this.idName+'"]').val();if(~["isOneOf","isNotOneOf"].indexOf(t)&&!this.searchData.oneOfIdList.length)return{type:"isNotNull",attribute:"id",data:{type:t}};if("isEmpty"===t)return{type:"isNull",attribute:this.idName,data:{type:t}};if("isNotEmpty"===t)return{type:"isNotNull",attribute:this.idName,data:{type:t}};if("isOneOf"===t)return{type:"in",attribute:this.idName,value:this.searchData.oneOfIdList,data:{type:t,oneOfIdList:this.searchData.oneOfIdList,oneOfNameHash:this.searchData.oneOfNameHash}};if("isNotOneOf"===t)return{type:"or",value:[{type:"notIn",attribute:this.idName,value:this.searchData.oneOfIdList},{type:"isNull",attribute:this.idName}],data:{type:t,oneOfIdList:this.searchData.oneOfIdList,oneOfNameHash:this.searchData.oneOfNameHash}};if("isNotOneOfAndIsNotEmpty"===t)return{type:"notIn",attribute:this.idName,value:this.searchData.oneOfIdList,data:{type:t,oneOfIdList:this.searchData.oneOfIdList,oneOfNameHash:this.searchData.oneOfNameHash}};if("isNot"===t){if(!i)return!1;let e=this.$el.find('[data-name="'+this.nameName+'"]').val();return{type:"or",value:[{type:"notEquals",attribute:this.idName,value:i},{type:"isNull",attribute:this.idName}],data:{type:t,idValue:i,nameValue:e}}}if("isNotAndIsNotEmpty"===t){if(!i)return!1;let e=this.$el.find('[data-name="'+this.nameName+'"]').val();return{type:"notEquals",attribute:this.idName,value:i,data:{type:t,idValue:i,nameValue:e}}}if(!i)return!1;let e=this.$el.find('[data-name="'+this.nameName+'"]').val();return{type:"equals",attribute:this.idName,value:i,data:{type:t,idValue:i,nameValue:e}}}getSearchType(){return this.getSearchParamsData().type||this.searchParams.typeFront||this.searchParams.type}quickView(){var e=this.model.get(this.idName);if(e){var t=this.foreignScope,i=new s.default;i.showDetail(this,{id:e,entityType:t})}}getCreateAttributesProvider(){return()=>{let i=this.getCreateAttributes()||{};return this.panelDefs.createHandler?new Promise(t=>{Espo.loader.requirePromise(this.panelDefs.createHandler).then(e=>new e(this.getHelper())).then(e=>{e.getAttributes(this.model,this.name).then(e=>{t({...i,...e})})})}):Promise.resolve(i)}}async actionSelect(){var e=this.panelDefs.selectModalView||this.getMetadata().get(`clientDefs.${this.foreignScope}.modalViews.select`)||this.selectRecordsView,t=this.getMandatorySelectAttributeList(),i=this.isEditMode()&&(!this.createDisabled||this.forceCreateButton),s=i?this.getCreateAttributesProvider():null,a=(Espo.Ui.notifyWait(),await this._getSelectFilters()),r=a.orderBy||this.panelDefs.selectOrderBy,o=a.orderBy?a.order:this.panelDefs.selectOrderDirection,i={entityType:this.foreignScope,createButton:i,filters:a.advanced,boolFilterList:a.bool,primaryFilterName:a.primary,mandatorySelectAttributeList:t,forceSelectAllAttributes:this.forceSelectAllAttributes,filterList:this.getSelectFilterList(),createAttributesProvider:s,layoutName:this.panelDefs.selectLayout,orderBy:r,orderDirection:o,onSelect:e=>{this.select(e[0])}},a=await this.createView("modal",e,i);await a.render();Espo.Ui.notify()}_applyAdditionalFilter(e){var t=this.model.getLinkParam(this.name,"foreign");if(t&&!e[t]){var i=this.model.getLinkParam(this.name,"type"),s=this.getMetadata().get(["entityDefs",this.foreignScope,"links",t,"type"]),a=this.getMetadata().get(["entityDefs",this.foreignScope,"fields",t,"type"]);if(a){i=("hasOne"===i||"hasOne"===s)&&["link","linkOne"].includes(a);i&&(e[t]={type:"isNull",attribute:t+"Id",data:{type:"isEmpty"}})}}}_getSelectFilters(){let e=this.panelDefs.selectHandler,n=this.getSelectBoolFilterList();if(e&&!this.isSearchMode())return new Promise(o=>{Espo.loader.requirePromise(e).then(e=>new e(this.getHelper())).then(e=>e.getFilters(this.model)).then(e=>{var t={...this.getSelectFilters()||{},...e.advanced||{}},i=this.getSelectPrimaryFilterName()||e.primary||this.panelDefs.selectPrimaryFilterName,s=n||e.bool||this.panelDefs.selectBoolFilterList?[...n||[],...e.bool||[],...this.panelDefs.selectBoolFilterList||[]]:void 0,a=(this._applyAdditionalFilter(t),e.orderBy),r=a?e.order:void 0;o({bool:s,primary:i,advanced:t,orderBy:a,order:r})})});var t=n||this.panelDefs.selectBoolFilterList?[...n||[],...this.panelDefs.selectBoolFilterList||[]]:void 0,i=this.getSelectFilters()||{};this._applyAdditionalFilter(i);return Promise.resolve({primary:this.getSelectPrimaryFilterName()||this.panelDefs.selectPrimaryFilterName,bool:t,advanced:i})}actionSelectOneOf(){Espo.Ui.notifyWait();var e=this.getMetadata().get(["clientDefs",this.foreignScope,"modalViews","select"])||this.selectRecordsView;this.createView("dialog",e,{scope:this.foreignScope,createButton:!1,filters:this.getSelectFilters(),boolFilterList:this.getSelectBoolFilterList(),primaryFilterName:this.getSelectPrimaryFilterName(),multiple:!0,layoutName:this.panelDefs.selectLayout},e=>{e.render();Espo.Ui.notify(!1);this.listenToOnce(e,"select",e=>{this.clearView("dialog");"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]);this.selectOneOf(e)})})}getOnEmptyAutocomplete(){}async actionCreateLink(){var e=new s.default,t=await this.getCreateAttributesProvider()();await e.showCreate(this,{entityType:this.foreignScope,fullFormDisabled:!0,attributes:t,afterSave:e=>this.select(e)})}selectOneOf(e){e.forEach(e=>{this.addLinkOneOf(e.id,e.get(this.foreignNameAttribute))})}}e.default=r});define("views/fields/float",["exports","views/fields/int"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{constructor(e){super(e)}type="float";editTemplate="fields/float/edit";decimalMark=".";decimalPlacesRawValue=10;validations=["required","float","range"];setup(){super.setup();this.getPreferences().has("decimalMark")?this.decimalMark=this.getPreferences().get("decimalMark"):this.getConfig().has("decimalMark")&&(this.decimalMark=this.getConfig().get("decimalMark"));this.decimalMark||(this.decimalMark=".");this.decimalMark===this.thousandSeparator&&(this.thousandSeparator="")}setupAutoNumericOptions(){this.autoNumericOptions={digitGroupSeparator:this.thousandSeparator||"",decimalCharacter:this.decimalMark,modifyValueOnWheel:!1,selectOnFocus:!1,decimalPlaces:this.decimalPlacesRawValue,decimalPlacesRawValue:this.decimalPlacesRawValue,allowDecimalPadding:!1,showWarnings:!1,formulaMode:!0}}getValueForDisplay(){var e=isNaN(this.model.get(this.name))?null:this.model.get(this.name);return this.formatNumber(e)}formatNumber(e){return this.disableFormatting?e:this.formatNumberDetail(e)}formatNumberDetail(e){if(null===e)return"";var t=this.params.decimalPlaces,i=(0===t?e=Math.round(e):t&&(e=Math.round(e*Math.pow(10,t))/Math.pow(10,t)),e.toString().split("."));i[0]=i[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandSeparator);if(0===t)return i[0];if(t){let e=0;1<i.length?e=i[1].length:i[1]="";if(t&&e<t){var s=t-e;for(let e=0;e<s;e++)i[1]+="0"}}return i.join(this.decimalMark)}validateFloat(){var e=this.model.get(this.name);if(isNaN(e)){e=this.translate("fieldShouldBeFloat","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}parse(e){e=""!==e?e:null;if(null===e)return null;e=e.split(this.thousandSeparator).join("").split(this.decimalMark).join(".");return parseFloat(e)}fetch(){var e=this.$element.val(),e=this.parse(e),t={};t[this.name]=e;return t}}e.default=s});define("views/fields/date",["exports","views/fields/base","moment","ui/datepicker"],function(e,t,h,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);h=s(h);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e)}type="date";listTemplate="fields/date/list";listLinkTemplate="fields/date/list-link";detailTemplate="fields/date/detail";editTemplate="fields/date/edit";searchTemplate="fields/date/search";validations=["required","date","after","before"];searchTypeList=["lastSevenDays","ever","isEmpty","currentMonth","lastMonth","nextMonth","currentQuarter","lastQuarter","currentYear","lastYear","today","past","future","lastXDays","nextXDays","olderThanXDays","afterXDays","on","after","before","between"];searchWithPrimaryTypeList=["on","notOn","after","before"];searchWithRangeTypeList=["between"];searchWithAdditionalNumberTypeList=["lastXDays","nextXDays","olderThanXDays","afterXDays"];initialSearchIsNotIdle=!0;datepicker;useNumericFormat;setup(){super.setup();if(this.getConfig().get("fiscalYearShift")){this.searchTypeList=Espo.Utils.clone(this.searchTypeList);if(this.getConfig().get("fiscalYearShift")%3!=0){this.searchTypeList.push("currentFiscalQuarter");this.searchTypeList.push("lastFiscalQuarter")}this.searchTypeList.push("currentFiscalYear");this.searchTypeList.push("lastFiscalYear")}this.params.after&&this.listenTo(this.model,"change:"+this.params.after,async()=>{if(this.isEditMode()){await this.whenRendered();setTimeout(()=>{this.onAfterChange();this.datepicker.setStartDate(this.getStartDateForDatePicker())},100)}});this.useNumericFormat=this.getConfig().get("readableDateFormatDisabled")||this.params.useNumericFormat}data(){var e=super.data();e.dateValue=this.getDateStringValue();e.isNone=null===e.dateValue;if(-1===e.dateValue){e.dateValue=null;e.isLoading=!0}if(this.isSearchMode()){var t=this.getSearchParamsData().value||this.searchParams.dateValue,i=this.getSearchParamsData().valueTo||this.searchParams.dateValueTo;e.dateValue=this.getDateTime().toDisplayDate(t);e.dateValueTo=this.getDateTime().toDisplayDate(i);this.searchWithAdditionalNumberTypeList.includes(this.getSearchType())&&(e.number=this.searchParams.value)}this.isListMode()&&(e.titleDateValue=e.dateValue);this.useNumericFormat&&(e.useNumericFormat=!0);return e}setupSearch(){this.addHandler("change","select.search-type",(e,t)=>{this.handleSearchType(t.value);this.trigger("change")});this.addHandler("change","input.number",()=>this.trigger("change"))}stringifyDateValue(e){return e?this.mode===this.MODE_LIST||this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST_LINK?this.convertDateValueForDetail(e):this.getDateTime().toDisplayDate(e):this.mode===this.MODE_EDIT||this.mode===this.MODE_SEARCH||this.mode===this.MODE_LIST||this.mode===this.MODE_LIST_LINK?"":null}convertDateValueForDetail(e){if(this.useNumericFormat)return this.getDateTime().toDisplayDate(e);var t=this.getDateTime().getTimeZone(),i=this.getDateTime().internalDateTimeFormat,s=this.getDateTime().getReadableDateFormat(),a=e+" 00:00:00",r=h.default.tz(t).startOf("day");let o=h.default.tz(a,i,t);t=r.clone();const n=[t.unix(),t.add(1,"days").unix()],l=[t.unix(),t.add(1,"days").unix()],d=[t.add(-3,"days").unix(),t.add(1,"days").unix()];if(o.unix()>=n[0]&&o.unix()<n[1])return this.translate("Today");if(o.unix()>=l[0]&&o.unix()<l[1])return this.translate("Tomorrow");if(o.unix()>=d[0]&&o.unix()<d[1])return this.translate("Yesterday");o=h.default.utc(a,i);return o.format("YYYY")===r.format("YYYY")?o.format(s):o.format(s+", YYYY")}getDateStringValue(){var e;return this.mode!==this.MODE_DETAIL||this.model.has(this.name)?(e=this.model.get(this.name),this.stringifyDateValue(e)):-1}getStartDateForDatePicker(){if(this.isEditMode()&&this.params.after){let e=this.model.attributes[this.params.after];if(null!=e){if(10<e.length){e=this.getDateTime().toDisplay(e);[e]=e.split(" ");return e}return this.getDateTime().toDisplayDate(e)}}}afterRender(){if(this.isEditMode()||this.isSearchMode()){this.mainInputElement=null==(e=this.element)?void 0:e.querySelector(`[data-name="${this.name}"]`);this.$element=$(this.mainInputElement);var e={format:this.getDateTime().dateFormat,weekStart:this.getDateTime().weekStart,startDate:this.getStartDateForDatePicker(),todayButton:this.getConfig().get("datepickerTodayButton")||!1};this.datepicker=void 0;this.mainInputElement instanceof HTMLInputElement&&(this.datepicker=new i.default(this.mainInputElement,{...e,onChange:()=>this.trigger("change")}));if(this.isSearchMode()){var t=null==(t=this.element)?void 0:t.querySelector(".input-group.additional");if(t){new i.default(t,e);this.initDatePickerEventHandlers("input.filter-from");this.initDatePickerEventHandlers("input.filter-to")}}e=null==(t=this.mainInputElement)?void 0:t.parentNode.querySelector("button.date-picker-btn");e instanceof HTMLElement&&e.addEventListener("click",()=>this.datepicker.show());if(this.isSearchMode()){t=this.fetchSearchType();this.handleSearchType(t)}}}initDatePickerEventHandlers(e){let t,i=null==(t=this.element)?void 0:t.querySelector(e);i instanceof HTMLInputElement&&$(i).on("change",e=>{this.trigger("change");e.isTrigger&&document.activeElement!==i&&i.focus({preventScroll:!0})})}handleSearchType(e){var t=null==(t=this.element)?void 0:t.querySelector("div.primary"),i=null==(i=this.element)?void 0:i.querySelector("div.additional"),s=null==(s=this.element)?void 0:s.querySelector("div.additional-number");null!=t&&t.classList.add("hidden");null!=i&&i.classList.add("hidden");null!=s&&s.classList.add("hidden");this.searchWithPrimaryTypeList.includes(e)?null!=t&&t.classList.remove("hidden"):this.searchWithAdditionalNumberTypeList.includes(e)?null!=s&&s.classList.remove("hidden"):this.searchWithRangeTypeList.includes(e)&&null!=i&&i.classList.remove("hidden")}parseDate(e){return this.getDateTime().fromDisplayDate(e)}parse(e){return e?this.parseDate(e):null}fetch(){var e,t={};t[this.name]=this.parse((null==(e=this.mainInputElement)?void 0:e.value)??"");return t}fetchSearch(){var e,t,i=this.fetchSearchType();return this.searchWithRangeTypeList.includes(i)?(e=null==(e=this.element)?void 0:e.querySelector("input.filter-from"),t=null==(t=this.element)?void 0:t.querySelector("input.filter-to"),e=e instanceof HTMLInputElement?this.parseDate(e.value):void 0,t=t instanceof HTMLInputElement?this.parseDate(t.value):void 0,e&&t?{type:i,value:[e,t],data:{value:e,valueTo:t}}:null):this.searchWithAdditionalNumberTypeList.includes(i)?(t=null==(e=this.element)?void 0:e.querySelector("input.number"),e=t instanceof HTMLInputElement?t.value:void 0,{type:i,value:e,date:!0}):this.searchWithPrimaryTypeList.includes(i)?(e=null==(t=this.element)?void 0:t.querySelector(`[data-name="${this.name}"]`),t=e instanceof HTMLInputElement?this.parseDate(e.value):void 0,t?{type:i,value:t,data:{value:t}}:null):"isEmpty"===i?{type:"isNull",data:{type:i}}:{type:i,date:!0}}getSearchType(){return this.getSearchParamsData().type||this.searchParams.typeFront||this.searchParams.type}validateRequired(){if(this.isRequired()&&null===this.model.get(this.name)){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}validateDate(){if(-1===this.model.get(this.name)){var e=this.translate("fieldShouldBeDate","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}validateAfter(){var e=this.params.after;if(e){var t=this.model.get(this.name),i=this.model.get(e);if(t&&i){t=(0,h.default)(t).unix(),i=(0,h.default)(i).unix();if((!this.params.afterOrEqual||t!==i)&&t<=i){t=this.options.otherFieldLabelText||this.translate(e,"fields",this.entityType),i=this.translate("fieldShouldAfter","messages").replace("{field}",this.getLabelText()).replace("{otherField}",t);this.showValidationMessage(i);return!0}}}return!1}validateBefore(){var e=this.params.before;if(!e)return!1;var t=this.model.get(this.name),i=this.model.get(e);if(t&&i&&(0,h.default)(t).unix()>=(0,h.default)(i).unix()){t=this.translate("fieldShouldBefore","messages").replace("{field}",this.getLabelText()).replace("{otherField}",this.translate(e,"fields",this.entityType));this.showValidationMessage(t);return!0}}onAfterChange(){var e=this.model.attributes[this.params.after],t=this.model.attributes[this.name];e&&t&&e.length===t.length&&this.getDateTime().toMomentDate(t).isBefore(this.getDateTime().toMomentDate(e))&&this.model.set(this.name,e)}}e.default=a});define("views/detail/modes",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="button-container clearfix">
|
||
<div class="btn-group">
|
||
{{#each modeDataList}}
|
||
<button
|
||
class="btn btn-text btn-xs-wide{{#if active}} active{{/if}}"
|
||
data-action="switchMode"
|
||
data-value="{{name}}"
|
||
{{#if ../disabled}}disabled="disabled"{{/if}}
|
||
>{{label}}</button>
|
||
{{/each}}
|
||
</div>
|
||
</div>
|
||
`;disabled=!1;constructor(e){super(e);this.modeList=e.modeList;this.mode=e.mode;this.scope=e.scope;this.hiddenMap={}}data(){return{disabled:this.disabled,modeDataList:this.modeList.filter(e=>!this.hiddenMap[e]||e===this.mode).map(e=>({name:e,active:e===this.mode,label:this.translate(e,"detailViewModes",this.scope)}))}}changeMode(e){this.mode=e;return this.reRender()}async hideMode(e){this.hiddenMap[e]=!0;await this.reRender()}async showMode(e){delete this.hiddenMap[e];await this.reRender()}disable(){this.disabled=!0;return this.reRender()}enable(){this.disabled=!1;return this.reRender()}}e.default=s});define("helpers/file-upload",["exports","di","models/settings"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=(s=i,s&&s.__esModule?s:{default:s});var s,a;let r,o;function n(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class l{constructor(){o(this)}config=r(this);upload(s,a,e){e=e||{};e.afterChunkUpload=e.afterChunkUpload||(()=>{});e.afterAttachmentSave=e.afterAttachmentSave||(()=>{});e.mediator=e.mediator||{};a.set("name",s.name);a.set("type",s.type||"text/plain");a.set("size",s.size);return this._useChunks(s)?this._uploadByChunks(s,a,e):new Promise((t,i)=>{var e=new FileReader;e.onload=e=>{a.set("file",e.target.result);a.save({},{timeout:0}).then(()=>t()).catch(()=>i())};e.readAsDataURL(s)})}_uploadByChunks(i,s,a){return new Promise((e,t)=>{s.set("isBeingUploaded",!0);s.save().then(()=>{a.afterAttachmentSave(s);return this._uploadChunks(i,s,e,t,a)}).catch(()=>t())})}_uploadChunks(t,i,s,a,r,e){e=e||0;let o=e+this._getChunkSize()+1;o>t.size&&(o=t.size);if(r.mediator.isCanceled)a();else{var n=t.slice(e,o),l=new FileReader;l.onloadend=e=>{e.target.readyState===FileReader.DONE&&Espo.Ajax.postRequest("Attachment/chunk/"+i.id,e.target.result,{headers:{contentType:"multipart/form-data"}}).then(()=>{r.afterChunkUpload(o);o===t.size?s():this._uploadChunks(t,i,s,a,r,o)}).catch(()=>a())};l.readAsDataURL(n)}}_useChunks(e){var t=this._getChunkSize();return!!t&&e.size>t}_getChunkSize(){return 1024*(this.config.get("attachmentUploadChunkSize")||0)*1024}static#_=a=()=>[r,o]=n(this,[],[[(0,t.inject)(i.default),0,"config"]]).e}a();e.default=l});define("helpers/record/select-related",["exports","di","metadata"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=(s=i,s&&s.__esModule?s:{default:s});var s,a;let r,o;function n(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class l{metadata=r(this);constructor(e){o(this);this.view=e}process(r,o){let n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(!n.foreignEntityType&&!r.defs.links[o])throw new Error(`Link ${o} does not exist.`);let l=n.foreignEntityType||r.defs.links[o].entity,d=this.metadata.get(["clientDefs",r.entityType,"relationshipPanels",o])||{},h=n.massSelect||d.massSelect,c={};var e=r.getLinkParam(o,"foreign");if(e&&l){var t=this.metadata.get(["entityDefs",l,"links",e,"type"]),i=this.metadata.get(["entityDefs",l,"fields",e,"type"]);["belongsTo","belongsToParent"].includes(t)&&i&&!c[e]&&["link","linkParent"].includes(i)&&(c[e]={type:"isNull",attribute:e+"Id",data:{type:"isEmpty"}})}let u=n.primaryFilterName||null,s=("function"==typeof u&&(u=u.call(this)),n.boolFilterList),m=("string"==typeof n.boolFilterList&&(s=n.boolFilterList.split(",")),s||d.selectBoolFilterList);"function"==typeof m&&(m=m.call(this));m=Espo.Utils.clone(m);u=u||d.selectPrimaryFilterName||null;t=n.viewKey||"select";let p=d.selectModalView||this.metadata.get(["clientDefs",l,"modalViews",t])||"views/modals/select-records",a=(Espo.Ui.notifyWait(),d.selectHandler||null);new Promise(t=>{a?Espo.loader.requirePromise(a).then(e=>new e(this.view.getHelper())).then(e=>{e.getFilters(r).then(e=>t(e))}):t({})}).then(e=>{c={...c,...e.advanced||{}};(m||e.bool)&&(m=[...m||[],...e.bool||[]]);e.primary&&!u&&(u=e.primary);var t=e.orderBy||d.selectOrderBy,i=e.orderBy?e.order:d.selectOrderDirection,s=!0===n.hasCreate&&void 0!==n.onCreate;let a;this.view.createView("dialogSelectRelated",p,{scope:l,multiple:!0,filters:c,massRelateEnabled:h,primaryFilterName:u,boolFilterList:m,mandatorySelectAttributeList:d.selectMandatoryAttributeList,layoutName:d.selectLayout,orderBy:t,orderDirection:i,createButton:s,onCreate:()=>{a.close();n.onCreate&&n.onCreate()}},e=>{a=e;e.render();Espo.Ui.notify(!1);this.view.listenToOnce(e,"select",e=>{var i={};if("[object Array]"===Object.prototype.toString.call(e)){let t=[];e.forEach(e=>t.push(e.id));i.ids=t}else if(e.massRelate){i.massRelate=!0;i.where=e.where;i.searchParams=e.searchParams}else i.id=e.id;var t=r.entityType+`/${r.id}/`+o;Espo.Ajax.postRequest(t,i).then(()=>{Espo.Ui.success(this.view.translate("Linked"));r.trigger("update-related:"+o);r.trigger("after:relate");r.trigger("after:relate:"+o)})})})})}static#_=a=()=>[r,o]=n(this,[],[[(0,t.inject)(i.default),0,"metadata"]]).e}a();e.default=l});define("helpers/record/create-related",["exports","di","metadata","helpers/record-modal"],function(e,t,i,l){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=o(i);l=o(l);var s;let a,r;function o(e){return e&&e.__esModule?e:{default:e}}function n(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d{metadata=a(this);constructor(e){r(this);this.view=e}async process(t,i){let s=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};var e=t.defs.links[i].entity,a=t.defs.links[i].foreign,r=this.metadata.get(`clientDefs.${t.entityType}.relationshipPanels.`+i)||{};let o=r.createAttributeMap||{};r=r.createHandler;let n={};Object.keys(o).forEach(e=>n[o[e]]=t.get(e));if(r){r=await Espo.loader.requirePromise(r),r=new r(this.view.getHelper()),r=await r.getAttributes(t,i);n={...n,...r}}r=new l.default;await r.showCreate(this.view,{entityType:e,relate:{model:t,link:a},attributes:n,afterSave:e=>{s.afterSave&&s.afterSave(e);t.trigger("update-related:"+i);t.trigger("after:relate");t.trigger("after:relate:"+i)}})}static#_=s=()=>[a,r]=n(this,[],[[(0,t.inject)(i.default),0,"metadata"]]).e}s();e.default=d});define("helpers/misc/stored-text-search",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i){this.scope=e;this.storage=t;this.key="textSearches";this.maxCount=i||100;this.list=null}match(e,t){e=e.toLowerCase().trim();var i,s=this.get(),a=[];for(i of s){i.toLowerCase().startsWith(e)&&a.push(i);if(void 0!==t&&a.length===t)break}return a}get(){null===this.list&&(this.list=this.getFromStorage());return this.list}getFromStorage(){return this.storage.get(this.key,this.scope)||[]}store(e){e=e.trim();let t=this.getFromStorage();var i=t.indexOf(e);-1!==i&&t.splice(i,1);t.unshift(e);t.length>this.maxCount&&(t=t.slice(0,this.maxCount));this.list=t;this.storage.set(this.key,this.scope,t)}remove(e){e=e.trim();var t=this.getFromStorage(),i=t.indexOf(e);if(-1!==i){t.splice(i,1);this.list=t;this.storage.set(this.key,this.scope,t)}}}});define("helpers/misc/foreign-field",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{entityType;constructor(e){this.view=e;var t=e.getMetadata(),i=e.model,s=e.params.field,a=e.params.link,a=t.get(["entityDefs",i.entityType,"links",a,"entity"])||i.entityType;this.entityType=a;let r=t.get(["entityDefs",a,"fields",s])||{};i=r.type;let o=["default","audited","readOnly","required"];this.foreignParams={};e.getFieldManager().getParamList(i).forEach(e=>{var t=e.name;o.includes(t)||(this.foreignParams[t]=r[t]||null)})}getForeignParams(){return Espo.Utils.cloneDeep(this.foreignParams)}getEntityType(){return this.entityType}}});define("helpers/misc/attachment-insert-from-source",["exports","di","metadata","model-factory"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=d(i);s=d(s);var a;let r,o,n,l;function d(e){return e&&e.__esModule?e:{default:e}}function h(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class c{constructor(e){l(this);this.view=e;this.model=e.model}metadata=r(this);modelFactory=(o(this),n(this));insert(r){let o=r.source;var e=this.metadata.get(["clientDefs","Attachment","sourceDefs",o,"insertModalView"])||this.metadata.get(["clientDefs",o,"modalViews","select"])||"views/modals/select-records";let t={};"getSelectFilters"+o in this.view&&(t=this.view["getSelectFilters"+o]()||{});this.model.attributes.parentId&&"Account"===this.model.attributes.parentType&&"link"===this.metadata.get(`entityDefs.${o}.fields.account.type`)&&"Account"===this.metadata.get(`entityDefs.${o}.links.account.entity`)&&(t={account:{type:"equals",attribute:"accountId",value:this.model.attributes.parentId,data:{type:"is",idValue:this.model.attributes.parentId,nameValue:this.model.attributes.parentType}},...t});let i=this.metadata.get(`clientDefs.Attachment.sourceDefs.${o}.boolFilterList`),s=("getSelectBoolFilterList"+o in this.view&&(i=this.view["getSelectBoolFilterList"+o]()),this.metadata.get(`clientDefs.Attachment.sourceDefs.${o}.primaryFilter`));"getSelectPrimaryFilterName"+o in this.view&&(s=this.view["getSelectPrimaryFilterName"+o]());var a={entityType:o,createButton:!1,filters:t,boolFilterList:i,primaryFilterName:s,multiple:!0,onSelect:e=>{e.forEach(async e=>{if("Attachment"===e.entityType)r.onInsert([e]);else{var t,i=await Espo.Ajax.postRequest(o+"/action/getAttachmentList",{id:e.id,field:this.view.name,parentType:this.view.entityType}),s=await this.modelFactory.create("Attachment");for(t of i){var a=s.clone();a.set(t);r.onInsert([a])}}})}};Espo.Ui.notifyWait();this.view.createView("modal",e,a,e=>{e.render();Espo.Ui.notify()})}static#_=a=()=>[r,o,n,l]=h(this,[],[[(0,t.inject)(i.default),0,"metadata"],[(0,t.inject)(s.default),0,"modelFactory"]]).e}e.default=c;a()});define("theme-manager",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i,s){this.config=e;this.preferences=t;this.metadata=i;this.useConfig=!s;this.name=s||null}defaultParams={screenWidthXs:768,dashboardCellHeight:40,dashboardCellMargin:16};getName(){if(this.name)return this.name;if(!this.config.get("userThemesDisabled")){var e=this.preferences.get("theme");if(e&&""!==e)return e}return this.config.get("theme")}getAppliedName(){var e=window.getComputedStyle(document.body).getPropertyValue("--theme-name");return e?e.trim():null}isApplied(){var e=this.getAppliedName();return!e||this.getName()===e}getStylesheet(){let e=this.getParam("stylesheet")||"client/css/espo/espo.css";this.config.get("cacheTimestamp")&&(e+="?r="+this.config.get("cacheTimestamp").toString());return e}getIframeStylesheet(){let e=this.getParam("stylesheetIframe")||"client/css/espo/espo-iframe.css";this.config.get("cacheTimestamp")&&(e+="?r="+this.config.get("cacheTimestamp").toString());return e}getIframeFallbackStylesheet(){let e=this.getParam("stylesheetIframeFallback")||"client/css/espo/espo-iframe.css";this.config.get("cacheTimestamp")&&(e+="?r="+this.config.get("cacheTimestamp").toString());return e}getParam(e){if("params"!==e&&"mappedParams"!==e){var t=this.getVarParam(e);if(null!==t)return t;t=this.getMappedParam(e);if(null!==t)return t}t=this.metadata.get(["themes",this.getName(),e]);if(null!==t)return t;t=this.metadata.get(["themes",this.getParentName(),e]);return null!==t?t:this.defaultParams[e]||null}getVarParam(e){var t=this.getParam("params")||{};if(!(e in t))return null;let i=null;this.useConfig&&!this.config.get("userThemesDisabled")&&this.preferences.get("theme")&&(i=this.preferences.get("themeParams"));!i&&this.useConfig&&(i=this.config.get("themeParams"));return i&&e in i?i[e]:"default"in t[e]?t[e].default:null}getMappedParam(e){var t,i=this.getParam("mappedParams")||{};return e in i&&(t=i[e].param,i=i[e].valueMap,t)&&i?(t=this.getParam(t),i[t]):null}getParentName(){return this.metadata.get(["themes",this.getName(),"parent"])||"Espo"}isUserTheme(){var e;return!(this.config.get("userThemesDisabled")||(e=this.preferences.get("theme"),!e)||""===e||e===this.config.get("theme"))}getFontSizeFactor(){var e=this.getParam("fontSize")||14,t=parseInt(getComputedStyle(document.body).fontSize);return Math.round(t/e*1e4)/1e4}}});define("session-storage",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{storageObject=sessionStorage;get(e){let i;try{i=this.storageObject.getItem(e)}catch(e){console.error(e);return null}if(i){let t=i;if(9<i.length&&"__JSON__:"===i.substring(0,9)){var s=i.slice(9);try{t=JSON.parse(s)}catch(e){t=i}}return t}return null}set(e,t){if(null===t)this.clear(e);else{(t instanceof Object||Array.isArray(t)||!0===t||!1===t||"number"==typeof t)&&(t="__JSON__:"+JSON.stringify(t));try{this.storageObject.setItem(e,t)}catch(e){console.error(e)}}}has(e){return null!==this.storageObject.getItem(e)}clear(e){for(var t in this.storageObject)t===e&&delete this.storageObject[t]}}});define("page-title",["exports","jquery"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;e.default=class{constructor(e){this.displayNotificationNumber=e.get("newNotificationCountInTitle")||!1;this.title=(0,t.default)("head title").text()||"";this.notificationNumber=0}setTitle(e){this.title=e;this.update()}setNotificationNumber(e){this.notificationNumber=e;this.displayNotificationNumber&&this.update()}update(){let e="";if(this.displayNotificationNumber&&this.notificationNumber){e="("+this.notificationNumber.toString()+")";this.title&&(e+=" ")}e+=this.title;(0,t.default)("head title").text(e)}}});define("number-util",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t){this.config=e;this.preferences=t;this.thousandSeparator=null;this.decimalMark=null;this.config.on("change",()=>{this.thousandSeparator=null;this.decimalMark=null});this.preferences.on("change",()=>{this.thousandSeparator=null;this.decimalMark=null});this.maxDecimalPlaces=10}formatInt(e){if(null==e)return"";let t=e.toString();t=t.replace(/\B(?=(\d{3})+(?!\d))/g,this.getThousandSeparator());return t}formatFloat(e,t){if(null==e)return"";e=0===t?Math.round(e):t?Math.round(e*Math.pow(10,t))/Math.pow(10,t):Math.round(e*Math.pow(10,this.maxDecimalPlaces))/Math.pow(10,this.maxDecimalPlaces);var i=e.toString().split(".");i[0]=i[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.getThousandSeparator());if(0===t)return i[0];if(t){let e=0;1<i.length?e=i[1].length:i[1]="";if(t&&e<t){var s=t-e;for(let e=0;e<s;e++)i[1]+="0"}}return i.join(this.getDecimalMark())}getThousandSeparator(){if(null!==this.thousandSeparator)return this.thousandSeparator;let e=".";this.preferences.has("thousandSeparator")?e=this.preferences.get("thousandSeparator"):this.config.has("thousandSeparator")&&(e=this.config.get("thousandSeparator"));this.thousandSeparator=e;return e}getDecimalMark(){if(null!==this.decimalMark)return this.decimalMark;let e=".";this.preferences.has("decimalMark")?e=this.preferences.get("decimalMark"):this.config.has("decimalMark")&&(e=this.config.get("decimalMark"));this.decimalMark=e;return e}}});define("email-helper",["exports","di","language","models/user","date-time","acl-manager"],function(e,t,i,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=f(i);s=f(s);a=f(a);r=f(r);var o;let n,l,d,h,c,u,m,p;function f(e){return e&&e.__esModule?e:{default:e}}function g(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class v{language=n(this);user=(l(this),d(this));dateTime=(h(this),c(this));acl=(u(this),m(this));constructor(){p(this);this.erasedPlaceholder="ERASED:"}getReplyAttributes(e,t,i){let s={status:"Draft",isHtml:e.attributes.isHtml};var a=e.attributes.name||"";s.name=0!==a.toUpperCase().indexOf("RE:")?"Re: "+a:a;let r="",o=!1,n=e.attributes.nameHash||{};var a=e.attributes.replyTo||null,l=e.attributes.replyToString||null,d=this.user.attributes.emailAddressList||[],h=e.attributes.idHash||{},c=e.attributes.typeHash||{};if(a){a=a.split(";");r=a.join(";")}else if(l){let s=[];l.split(";").forEach(e=>{var t=e.trim(),i=this.parseAddressFromStringAddress(e);if(i){s.push(i);t=this.parseNameFromStringAddress(t);t&&t!==i&&(n[i]=t)}});r=s.join(";")}if((!r||!r.includes("@"))&&e.attributes.from)if(d.includes(e.attributes.from))o=!0;else{r=e.attributes.from;if(!n[r]){a=e.attributes.fromString||e.attributes.fromName;if(a){l=this.parseNameFromStringAddress(a);l!==r&&(n[r]=l)}}}s.to=r;if(i){s.cc=e.attributes.cc||"";let t=this.user.get("excludeFromReplyEmailAddressList")||[];(e.get("to")||"").split(";").forEach(e=>{e=e.trim();if(e!==this.user.get("emailAddress")&&!t.includes(e))if(o){s.to&&(s.to+=";");s.to+=e}else{s.cc&&(s.cc+=";");s.cc+=e}});s.cc=s.cc.replace(/^(; )/,"")}if(s.to){let e=s.to.split(";");e=e.filter(e=>0!==e.indexOf(this.erasedPlaceholder));s.to=e.join(";")}d=this.user.get("userEmailAddressList")||[];let u=d.map(e=>e.toLowerCase());if(s.cc){a=s.cc.split(";").filter(e=>!u.includes(e.toLowerCase())&&0!==e.indexOf(this.erasedPlaceholder));s.cc=a.join(";")}if(e.get("parentId")){s.parentId=e.get("parentId");s.parentName=e.get("parentName");s.parentType=e.get("parentType")}if(e.get("teamsIds")&&e.get("teamsIds").length){s.teamsIds=Espo.Utils.clone(e.get("teamsIds"));s.teamsNames=Espo.Utils.clone(e.get("teamsNames")||{});l=this.user.get("defaultTeamId");if(l&&!~s.teamsIds.indexOf(l)){s.teamsIds.push(this.user.get("defaultTeamId"));s.teamsNames[this.user.get("defaultTeamId")]=this.user.get("defaultTeamName")}s.teamsIds=s.teamsIds.filter(e=>this.acl.checkTeamAssignmentPermission(e))}s.nameHash=n;s.typeHash=c;s.idHash=h;s.repliedId=e.id;s.inReplyTo=e.get("messageId");var m,p=(e.attributes.to||"").split(";").map(e=>e.toLowerCase());for(m of d)if(p.includes(m.toLowerCase())){s.from=m;break}this.addReplyBodyAttributes(e,s);return s}getForwardAttributes(e){var t={status:"Draft",isHtml:e.get("isHtml")},i=e.get("name");~!i.toUpperCase().indexOf("FWD:")&&~!i.toUpperCase().indexOf("FW:")?t.name="Fwd: "+i:t.name=i;if(e.get("parentId")){t.parentId=e.get("parentId");t.parentName=e.get("parentName");t.parentType=e.get("parentType")}this.addForwardBodyAttributes(e,t);return t}addForwardBodyAttributes(a,e){let t="";t=a.get("isHtml")?"<br>------"+this.language.translate("Forwarded message","labels","Email")+"------":"\n\n------"+this.language.translate("Forwarded message","labels","Email")+"------";var i=[];if(a.get("from")){var s=a.get("from");let e=this.language.translate("from","fields","Email")+": ";var r=a.get("nameHash")||{};s in r&&(e+=r[s]+" ");a.get("isHtml")?e+="<"+s+">":e+="<"+s+">";i.push(e)}if(a.get("dateSent")){r=this.language.translate("dateSent","fields","Email")+": ";r+=this.dateTime.toDisplay(a.get("dateSent"));i.push(r)}if(a.get("name")){s=this.language.translate("subject","fields","Email")+": ";s+=a.get("name");i.push(s)}if(a.get("to")){r=this.language.translate("to","fields","Email")+": ";let s=[];a.get("to").split(";").forEach(e=>{var t=a.get("nameHash")||{};let i="";e in t&&(i+=t[e]+" ");a.get("isHtml")?i+="<"+e+">":i+="<"+e+">";s.push(i)});r+=s.join(";");i.push(r)}i.forEach(e=>{a.get("isHtml")?t+="<br>"+e:t+="\n"+e});if(a.get("isHtml")){s=a.get("body");e.body=t+"<br><br>"+s}else{r=a.get("body")||a.get("bodyPlain")||"";e.bodyPlain=e.body=t+"\n\n"+r}}parseNameFromStringAddress(e){if(!e.includes("<"))return null;let t=e.replace(/<(.*)>/,"").trim();'"'===t.charAt(0)&&'"'===t.charAt(t.length-1)&&(t=t.slice(1,t.length-2));return t}parseAddressFromStringAddress(e){var t=e.match(/<(.*)>/);let i;i=t&&1<t.length?t[1]:e.trim();return i}addReplyBodyAttributes(i,s){var e=this.dateTime.getReadableShortDateTimeFormat(),t=i.get("dateSent");let a=null;if(t){t=this.dateTime.toMoment(t);a=t.format(e);t.year()!==this.dateTime.getNowMoment().year()&&(a+=", "+t.year())}let r=a||this.language.translate("Original message","labels","Email");e=i.get("fromName");if(!e&&i.get("from")){e=(i.get("nameHash")||{})[i.get("from")];e&&(r+=", "+e)}r+=":";if(i.get("isHtml")){t=i.get("body");s.body='<p data-quote-start="true"><br></p>'+`<p>${r}</p><blockquote>${t}</blockquote>`}else{let e=i.get("body")||i.get("bodyPlain")||"",t="\n\n";t+=r+"\n";e.split("\n").forEach(e=>{t+="> "+e+"\n"});e=t;s.body=e;s.bodyPlain=e}}static#_=o=()=>[n,l,d,h,c,u,m,p]=g(this,[],[[(0,t.inject)(i.default),0,"language"],[(0,t.inject)(s.default),0,"user"],[(0,t.inject)(a.default),0,"dateTime"],[(0,t.inject)(r.default),0,"acl"]]).e}o();e.default=v});define("collection",["exports","model","bullbone","underscore"],function(e,a,t,f){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;a=i(a);f=i(f);function i(e){return e&&e.__esModule?e:{default:e}}class s{entityType=null;total=0;offset=0;maxSize=20;order=null;orderBy=null;where=null;whereAdditional=null;lengthCorrection=0;maxMaxSize=0;whereFunction;lastSyncPromise=null;parentModel;constructor(e,t){t={...t};t.model&&(this.model=t.model);void 0!==t.maxSize&&(this.maxSize=t.maxSize);this._reset();if(t.entityType){this.entityType=t.entityType;this.name=this.entityType}this.urlRoot=t.urlRoot||this.urlRoot||this.entityType;this.url=t.url||this.url||this.urlRoot;this.orderBy=t.orderBy||this.orderBy;this.order=t.order||this.order;this.defaultOrder=this.order;this.defaultOrderBy=this.orderBy;this.defs=t.defs||{};this.data={};this.model=t.model||a.default;e&&this.reset(e,{silent:!0,...t})}add(e,t){this.set(e,{merge:!1,...t,...r});return this}remove(e,t){t={...t};var i=!f.default.isArray(e),i=(e=i?[e]:e.slice(),this._removeModels(e,t));if(!t.silent&&i.length){t.changes={added:[],merged:[],removed:i};this.trigger("update",this,t)}return this}set(e,t){if(null==e)return[];t={...g,...t};t.prepare&&!this._isModel(e)&&(e=this.prepareAttributes(e,t)||[]);var i=!f.default.isArray(e);e=i?[e]:e.slice();let s=t.at;null!=s&&(s=+s);s>this.length&&(s=this.length);s<0&&(s+=this.length+1);let a=[];var r=[],o=[],n=[],l={},d=t.add,h=t.merge,i=t.remove;let c,u;for(u=0;u<e.length;u++){c=e[u];var m=this._get(c);if(m){if(h&&c!==m){let e=this._isModel(c)?c.attributes:c;t.prepare&&(e=m.prepareAttributes(e,t));m.set(e,t);o.push(m)}if(!l[m.cid]){l[m.cid]=!0;a.push(m)}e[u]=m}else if(d){c=e[u]=this._prepareModel(c);if(c){r.push(c);this._addReference(c,t);l[c.cid]=!0;a.push(c)}}}if(i){for(u=0;u<this.length;u++){c=this.models[u];l[c.cid]||n.push(c)}n.length&&this._removeModels(n,t)}let p=!1;i=d&&i;if(a.length&&i){p=this.length!==a.length||f.default.some(this.models,(e,t)=>e!==a[t]);this.models.length=0;v(this.models,a,0);this.length=this.models.length}else if(r.length){v(this.models,r,null==s?this.length:s);this.length=this.models.length}if(!t.silent){for(u=0;u<r.length;u++){null!=s&&(t.index=s+u);c=r[u];c.trigger("add",c,this,t)}p&&this.trigger("sort",this,t);if(r.length||n.length||o.length){t.changes={added:r,removed:n,merged:o};this.trigger("update",this,t)}}return e}reset(e,t){this.lengthCorrection=0;t=t?f.default.clone(t):{};for(let e=0;e<this.models.length;e++)this._removeReference(this.models[e],t);t.previousModels=this.models;this._reset();e&&this.add(e,{silent:!0,...t});t.silent||this.trigger("reset",this,t);return this}push(e,t){this.add(e,{at:this.length,...t});return this}pop(e){var t=this.at(this.length-1);if(!t)return null;this.remove(t,e);return t}unshift(e,t){this.add(e,{at:0,...t});return this}shift(e){var t=this.at(0);if(!t)return null;this.remove(t,e);return t}get(e){return this._get(e)}has(e){return this._has(e)}at(e){e<0&&(e+=this.length);return this.models[e]}forEach(e,t){return this.models.forEach(e,t)}indexOf(e){return this.models.indexOf(e)}_has(e){return!!this._get(e)}_get(e){if(null!=e)return this._byId[e]||this._byId[this.modelId(e.attributes||e)]||e.cid&&this._byId[e.cid]}modelId(e){return e.id}_reset(){this.length=0;this.models=[];this._byId={}}sort(e,t){this.orderBy=e;!0===t?t="desc":!1===t&&(t="asc");this.order=t||"asc";return this.fetch()}hasPreviousPage(){return 0<this.offset}hasNextPage(){return this.total-this.offset>this.length||-1===this.total}nextPage(){return this.setOffset(this.offset+this.length)}previousPage(){return this.setOffset(Math.max(0,this.offset-this.maxSize))}firstPage(){return this.setOffset(0)}lastPage(){let e=this.total-this.total%this.maxSize;e===this.total&&(e=this.total-this.maxSize);return this.setOffset(e)}setOffset(e){if(e<0)throw new RangeError("offset can not be less than 0");if(e>this.total&&-1!==this.total&&-2!==this.total&&0<e)throw new RangeError("offset can not be larger than total count");this.offset=e;return this.fetch({maxSize:this.maxSize})}hasMore(){return this.total>this.length+this.offset+this.lengthCorrection||-1===this.total}prepareAttributes(e,t){this.total=e.total;this.dataAdditional=e.additionalData||null;return e.list}fetch(t){t={...t};t.data={...t.data,...this.data};this.offset=t.offset||this.offset;this.orderBy=t.orderBy||this.orderBy;this.order=t.order||this.order;this.where=t.where||this.where;var e=this.length+this.lengthCorrection;if("maxSize"in t)t.data.maxSize=t.maxSize;else{t.data.maxSize=t.more?this.maxSize:Math.max(e,this.maxSize);this.maxMaxSize&&t.data.maxSize>this.maxMaxSize&&(t.data.maxSize=this.maxMaxSize)}t.data.offset=t.more?this.offset+e:this.offset;t.data.orderBy=this.orderBy;t.data.order=this.order;t.data.whereGroup=this.getWhere();if(t.data.select){t.data.attributeSelect=t.data.select;delete t.data.select}t={prepare:!0,...t};let i=t.success,s=(t.success=e=>{t.reset?this.reset(e,t):this.set(e,t);i&&i.call(t.context,this,e,t);this.trigger("sync",this,e,t)},t.error);t.error=e=>{s&&s.call(t.context,this,e,t);this.trigger("error",this,e,t)};this.lastSyncPromise=a.default.prototype.sync.call(this,"read",this,t);return this.lastSyncPromise}isBeingFetched(){return this.lastSyncPromise&&this.lastSyncPromise.getReadyState()<4}abortLastFetch(){this.isBeingFetched()&&this.lastSyncPromise.abort()}getWhere(){let e=(this.where??[]).concat(this.whereAdditional||[]);this.whereFunction&&(e=e.concat(this.whereFunction()||[]));return e}getEntityType(){return this.entityType||this.name}resetOrderToDefault(){this.orderBy=this.defaultOrderBy;this.order=this.defaultOrder}setOrder(e,t,i){this.orderBy=e;this.order=t;if(i){this.defaultOrderBy=e;this.defaultOrder=t}}clone(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};let t=this.models;e.withModels&&(t=this.models.map(e=>e.clone()));e=new this.constructor(t,{model:this.model,entityType:this.entityType,defs:this.defs,orderBy:this.orderBy,order:this.order});e.name=this.name;e.urlRoot=this.urlRoot;e.url=this.url;e.defaultOrder=this.defaultOrder;e.defaultOrderBy=this.defaultOrderBy;e.data=Espo.Utils.cloneDeep(this.data);e.where=Espo.Utils.cloneDeep(this.where);e.whereAdditional=Espo.Utils.cloneDeep(this.whereAdditional);e.total=this.total;e.offset=this.offset;e.maxSize=this.maxSize;e.maxMaxSize=this.maxMaxSize;e.whereFunction=this.whereFunction;e.parentModel=this.parentModel;return e}prepareModel(){return this._prepareModel({})}composeSyncUrl(){return this.url}_isModel(e){return e instanceof a.default}_removeModels(t,i){var s=[];for(let e=0;e<t.length;e++){var a=this.get(t[e]);if(a){var r=this.models.indexOf(a);this.models.splice(r,1);this.length--;delete this._byId[a.cid];var o=this.modelId(a.attributes);null!=o&&delete this._byId[o];if(!i.silent){i.index=r;a.trigger("remove",a,this,i)}s.push(a);this._removeReference(a,i)}}return s}_addReference(e){this._byId[e.cid]=e;var t=this.modelId(e.attributes);null!=t&&(this._byId[t]=e);e.on("all",this._onModelEvent,this)}_removeReference(e){delete this._byId[e.cid];var t=this.modelId(e.attributes);null!=t&&delete this._byId[t];this===e.collection&&delete e.collection;e.off("all",this._onModelEvent,this)}_onModelEvent(e,t,i,s){if("sync"!==e||i===this)if(t){if("add"!==e&&"remove"!==e||i===this){"destroy"===e&&this.remove(t,s);if("change"===e){var a=this.modelId(t.previousAttributes()),r=this.modelId(t.attributes);if(a!==r){null!=a&&delete this._byId[a];null!=r&&(this._byId[r]=t)}}this.trigger.apply(this,arguments)}}else this.trigger.apply(this,arguments)}_prepareModel(e){if(this._isModel(e))return e.collection||(e.collection=this),e;var t=this.model;return new t(e,{collection:this,entityType:this.entityType||this.name,defs:this.defs})}}Object.assign(s.prototype,t.Events);s.extend=t.View.extend;let g={add:!0,remove:!0,merge:!0},r={add:!0,remove:!1},v=(e,t,i)=>{i=Math.min(Math.max(i,0),e.length);var s=Array(e.length-i),a=t.length;let r;for(r=0;r<s.length;r++)s[r]=e[r+i];for(r=0;r<a;r++)e[r+i]=t[r];for(r=0;r<s.length;r++)e[r+a+i]=s[r]};e.default=s});define("collection-factory",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i){this.modelFactory=e;this.metadata=i;this.recordListMaxSizeLimit=t.get("recordListMaxSizeLimit")||200}create(n,l,d){return new Promise(o=>{d=d||this;this.modelFactory.getSeed(n,i=>{let s=this.modelFactory.metadata.get(["entityDefs",n,"collection","orderBy"]),a=this.modelFactory.metadata.get(["entityDefs",n,"collection","order"]);var e=this.modelFactory.metadata.get(["clientDefs",n,"collection"])||"collection";let r=this.metadata.get(["entityDefs",n])||{};Espo.loader.require(e,e=>{var t=new e(null,{entityType:n,orderBy:s,order:a,defs:r});t.model=i;t.entityType=n;t.maxMaxSize=this.recordListMaxSizeLimit;l&&l.call(d,t);o(t)})})})}}});define("cache",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.basePrefix=this.prefix;e&&(this.prefix=this.basePrefix+"-"+e);this.get("app","timestamp")||this.storeTimestamp()}prefix="cache";handleActuality(e){var t=this.getCacheTimestamp();if(t){if(t!==e){this.clear();this.set("app","cacheTimestamp",e);this.storeTimestamp()}}else{this.clear();this.set("app","cacheTimestamp",e);this.storeTimestamp()}}getCacheTimestamp(){return parseInt(this.get("app","cacheTimestamp")||0)}storeTimestamp(){var e=Date.now();this.set("app","timestamp",e)}composeFullPrefix(e){return this.prefix+"-"+e}composeKey(e,t){return this.composeFullPrefix(e)+"-"+t}checkType(e){if(void 0===e&&"[object String]"!==toString.call(e))throw new TypeError('Bad type "'+e+'" passed to Cache().')}get(e,t){this.checkType(e);var i=this.composeKey(e,t);let s;try{s=localStorage.getItem(i)}catch(e){console.error(e);return null}if(s){let t=s;if(9<s.length&&"__JSON__:"===s.substring(0,9)){i=s.slice(9);try{t=JSON.parse(i)}catch(e){t=s}}return t}return null}set(e,t,i){this.checkType(e);var s=this.composeKey(e,t);(i instanceof Object||Array.isArray(i))&&(i="__JSON__:"+JSON.stringify(i));try{localStorage.setItem(s,i)}catch(e){console.log("Local storage limit exceeded.")}}clear(e,t){let i;i=void 0!==e?void 0===t?"^"+this.composeFullPrefix(e):"^"+this.composeKey(e,t):"^"+this.basePrefix+"-";var s,a=new RegExp(i);for(s in localStorage)a.test(s)&&delete localStorage[s]}}});define("broadcast-channel",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(){this.object=null;window.BroadcastChannel&&(this.object=new window.BroadcastChannel("app"))}postMessage(e){this.object&&this.object.postMessage(e)}subscribe(e){this.object&&this.object.addEventListener("message",e)}}});define("app-params",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.params=e}get(e){return this.params[e]}setAll(e){this.params=e}async load(){var e=await Espo.Ajax.getRequest("App/appParams");this.params=e}}});define("ajax",["exports","jquery","utils"],function(e,c,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;c=i(c);t=i(t);function i(e){return e&&e.__esModule?e:{default:e}}let s=!1,u,m,p,f,g,v,y,b=t.default.obtainBaseUrl(),a=Espo.Ajax={request:function(e,t,i,a){a=a||{};var s="timeout"in a?a.timeout:u,r=a.contentType||"application/json";let o;a.data&&!i&&(i=a.data);m&&(e=Espo.Utils.trimSlash(m)+"/"+e);if(!["GET","OPTIONS"].includes(t)&&i){o=i;"application/json"===r&&"string"!=typeof i&&(o=JSON.stringify(i))}if("GET"===t&&i){var n=c.default.param(i);e.includes("?")?e+="&":e+="?";e+=n}n=new URL(b+e);let l=new M;l.timeout=s;l.open(t,n);l.setRequestHeader("Content-Type",r);if(a.headers)for(var d in a.headers)l.setRequestHeader(d,a.headers[d]);p&&p(l,a);let h={};s=new w((t,i)=>{let s=e=>{a.error&&a.error(l,a);i(l,a);e?v&&v(l,a):0===l.status&&!navigator.onLine&&y?y():g&&g(l,a)};l.ontimeout=()=>s(!0);l.onerror=()=>s();l.onload=()=>{if(400<=l.status)s();else{let e=l.responseText;if("json"===(a.dataType||"json"))try{e=JSON.parse(l.responseText)}catch(e){console.error("Could not parse API response.");s()}a.success&&a.success(e);f(l,a);a.resolveWithXhr&&(e=l);t(e)}};l.send(o);h.promise?h.promise.xhr=l:h.xhr=l});h.promise=s;s.xhr=s.xhr||h.xhr;return s},postRequest:function(e,t,i){t=t&&JSON.stringify(t);return a.request(e,"POST",t,i)},patchRequest:function(e,t,i){t=t&&JSON.stringify(t);return a.request(e,"PATCH",t,i)},putRequest:function(e,t,i){t=t&&JSON.stringify(t);return a.request(e,"PUT",t,i)},deleteRequest:function(e,t,i){t=t&&JSON.stringify(t);return a.request(e,"DELETE",t,i)},getRequest:function(e,t,i){return a.request(e,"GET",t,i)},configure:function(e){if(s)throw new Error("Ajax is already configured.");m=e.apiUrl;u=e.timeout;p=e.beforeSend;f=e.onSuccess;g=e.onError;v=e.onTimeout;y=e.onOffline;s=!0}};class w extends Promise{xhr=null;isAborted=!1;abort(){this.isAborted=!0;this.xhr&&this.xhr.abort()}getReadyState(){return this.xhr&&this.xhr.readyState||0}getStatus(){return this.xhr?this.xhr.status:0}}class M extends XMLHttpRequest{errorIsHandled=!1}e.default=a});define("acl-portal",["exports","acl","di","metadata"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);s=n(s);var a;let r,o;function n(e){return e&&e.__esModule?e:{default:e}}function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d extends t.default{constructor(){super(...arguments);o(this)}metadata=r(this);checkScope(e,t,i,s){s=s||{};var a=s.inAccount,r=s.isOwnContact,o=s.isOwner;if(this.getUser().isAdmin())return!0;if(!1===e)return!1;if(!0===e)return!0;if("string"==typeof e)return!0;if(null===e)return!1;t=t||null;if(null===t)return!0;if(!(t in e))return!1;var n=e[t];if("all"===n)return!0;if("yes"===n)return!0;if("no"===n)return!1;if(void 0===o)return!0;if(o&&("own"===n||"account"===n||"contact"===n))return!0;let l=!1;if("account"===n){l=a;if(null===a){if(!i)return!0;l=null}else if(a)return!0}if("contact"===n){l=r;if(null===r){if(!i)return!0;l=null}else if(r)return!0}if(null===o){if(!i)return!0;l=null}return l}checkModel(e,t,i,s){var a;return!!this.getUser().isAdmin()||(a={isOwner:this.checkIsOwner(e),inAccount:this.checkInAccount(e),isOwnContact:this.checkIsOwnContact(e)},this.checkScope(t,i,s,a))}checkIsOwner(e){return!(!e.hasField("createdBy")||this.getUser().id!==e.get("createdById"))}checkInAccount(e){let t=this.getUser().getLinkMultipleIdList("accounts");if(!t.length)return!1;var i=this.metadata.get(`aclDefs.${e.entityType}.accountLink`);if(i){var s,a=e.getLinkType(i);if("belongsTo"===a||"hasOne"===a)return s=i+"Id",e.has(s)?(s=e.get(s),!!s&&t.includes(s)):null;if("belongsToParent"===a)return s=i+"Id",o=i+"Type",e.has(s)&&e.has(o)?(s=e.get(s),!("Account"!==e.get(o)||!s)&&t.includes(s)):null;if("hasMany"===a){if(!e.hasField(i)||"linkMultiple"!==e.getFieldType(i))return!0;if(!e.has(i+"Ids"))return null;var r,o=e.getLinkMultipleIdList(i);for(r of o)if(t.includes(r))return!0}return!1}if(e.hasField("account")&&e.get("accountId")&&t.includes(e.get("accountId")))return!0;let n=!1;if(e.hasField("accounts")&&e.hasLink("accounts")){e.has("accountsIds")||(n=null);e.getLinkMultipleIdList("accounts").forEach(e=>{t.includes(e)&&(n=!0)})}return!!(e.hasField("parent")&&e.hasLink("parent")&&"Account"===e.get("parentType")&&t.includes(e.get("parentId")))||!(!1!==n||e.hasField("accounts")||!e.hasLink("accounts"))||n}checkIsOwnContact(e){let t=this.getUser().get("contactId");if(!t)return!1;var i,s,a,r=this.metadata.get(`aclDefs.${e.entityType}.contactLink`);if(r)return i=e.getLinkType(r),"belongsTo"===i||"hasOne"===i?(s=r+"Id",e.has(s)?e.get(s)===t:null):"belongsToParent"===i?(s=r+"Id",a=r+"Type",e.has(s)&&e.has(a)?"Contact"===e.get(a)&&e.get(s)===t:null):"hasMany"===i&&(!e.hasField(r)||"linkMultiple"!==e.getFieldType(r)||(e.has(r+"Ids")?(a=e.getLinkMultipleIdList(r),a.includes(t)):null));if(e.hasField("contact")&&e.get("contactId")&&t===e.get("contactId"))return!0;let o=!1;if(e.hasField("contacts")&&e.hasLink("contacts")){e.has("contactsIds")||(o=null);e.getLinkMultipleIdList("contacts").forEach(e=>{t===e&&(o=!0)})}return!(!e.hasField("parent")||!e.hasLink("parent")||"Contact"!==e.get("parentType")||e.get("parentId")!==t)||!(!1!==o||e.hasField("contacts")||!e.hasLink("contacts"))||o}static#_=a=()=>[r,o]=l(this,[],[[(0,i.inject)(s.default),0,"metadata"]],0,void 0,t.default).e}a();e.default=d});define("views/list",["exports","views/main","search-manager","helpers/record-modal","utils"],function(e,t,s,a,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);s=r(s);a=r(a);i=r(i);function r(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{template="list";name="List";optionsToPass=[];headerView="views/header";searchView="views/record/search";recordView="views/record/list";recordKanbanView="views/record/kanban";searchPanel=!0;searchManager=null;createButton=!0;quickCreate=!1;storeViewAfterCreate=!1;storeViewAfterUpdate=!0;keepCurrentRootUrl=!1;viewMode="";viewModeList=null;defaultViewMode="list";MODE_LIST="list";MODE_KANBAN="kanban";rootData;shortcutKeys={"Control+Space":function(e){this.handleShortcutKeyCtrlSpace(e)},"Control+Slash":function(e){this.handleShortcutKeyCtrlSlash(e)},"Control+Comma":function(e){this.handleShortcutKeyCtrlComma(e)},"Control+Period":function(e){this.handleShortcutKeyCtrlPeriod(e)},"Control+ArrowLeft":function(e){this.handleShortcutKeyControlArrowLeft(e)},"Control+ArrowRight":function(e){this.handleShortcutKeyControlArrowRight(e)}};setup(){this.collection.maxSize=this.getConfig().get("recordsPerPage")||this.collection.maxSize;this.collectionUrl=this.collection.url;this.collectionMaxSize=this.collection.maxSize;this.rootData={};this._primaryFilter=this.options.params.primaryFilter;this._fromAdmin=this.options.params.fromAdmin;this.setupModes();this.setViewMode(this.viewMode);this.getMetadata().get(["clientDefs",this.scope,"searchPanelDisabled"])&&(this.searchPanel=!1);this.getUser().isPortal()&&this.getMetadata().get(["clientDefs",this.scope,"searchPanelInPortalDisabled"])&&(this.searchPanel=!1);this.getMetadata().get(["clientDefs",this.scope,"createDisabled"])&&(this.createButton=!1);this.entityType=this.collection.entityType;this.headerView=this.options.headerView||this.headerView;this.recordView=this.options.recordView||this.recordView;this.searchView=this.options.searchView||this.searchView;this.setupHeader();this.defaultOrderBy=this.defaultOrderBy||this.collection.orderBy;this.defaultOrder=this.defaultOrder||this.collection.order;this.collection.setOrder(this.defaultOrderBy,this.defaultOrder,!0);this.searchPanel&&this.setupSearchManager();this.setupSorting();this.searchPanel&&this.setupSearchPanel();this.createButton&&this.setupCreateButton();(this._fromAdmin||this._primaryFilter)&&(this.keepCurrentRootUrl=!0);this.addActionHandler("fullRefresh",()=>this.actionFullRefresh())}setupFinal(){super.setupFinal();this.wait(this.getHelper().processSetupHandlers(this,"list"))}setupModes(){this.defaultViewMode=this.options.defaultViewMode||this.getMetadata().get(["clientDefs",this.scope,"listDefaultViewMode"])||this.defaultViewMode;this.viewMode=this.viewMode||this.defaultViewMode;var t=this.options.viewModeList||this.viewModeList||this.getMetadata().get(["clientDefs",this.scope,"listViewModeList"]);if(t)this.viewModeList=t;else{this.viewModeList=[this.MODE_LIST];!this.getMetadata().get(["clientDefs",this.scope,"kanbanViewMode"])||~this.viewModeList.indexOf(this.MODE_KANBAN)||this.viewModeList.push(this.MODE_KANBAN)}if(1<this.viewModeList.length){let e=null;t="listViewMode"+this.scope;if(this.getStorage().has("state",t)){t=this.getStorage().get("state",t);t&&this.viewModeList.includes(t)&&(e=t)}e=e||this.defaultViewMode;this.viewMode=e}}setupHeader(){this.createView("header",this.headerView,{collection:this.collection,fullSelector:"#main > .page-header",scope:this.scope,isXsSingleRow:!0})}setupCreateButton(){this.quickCreate?this.menu.buttons.unshift({action:"quickCreate",iconHtml:'<span class="fas fa-plus fa-sm"></span>',text:this.translate("Create "+this.scope,"labels",this.scope),style:"default",acl:"create",aclScope:this.entityType||this.scope,title:"Ctrl+Space"}):this.menu.buttons.unshift({link:"#"+this.scope+"/create",action:"create",iconHtml:'<span class="fas fa-plus fa-sm"></span>',text:this.translate("Create "+this.scope,"labels",this.scope),style:"default",acl:"create",aclScope:this.entityType||this.scope,title:"Ctrl+Space"})}setupSearchPanel(){this.createSearchView()}createSearchView(){return this.createView("search",this.searchView,{collection:this.collection,fullSelector:"#main > .search-container",searchManager:this.searchManager,scope:this.scope,viewMode:this.viewMode,viewModeList:this.viewModeList,isWide:!0,disableSavePreset:!!this._primaryFilter,primaryFiltersDisabled:!!this._primaryFilter},e=>{this.listenTo(e,"reset",()=>this.resetSorting());1<this.viewModeList.length&&this.listenTo(e,"change-view-mode",e=>this.switchViewMode(e))})}switchViewMode(e){this.clearView("list");this.collection.isFetched=!1;this.collection.reset();this.applyStoredSorting();this.setViewMode(e,!0);this.loadList()}setViewMode(e,t){this.viewMode=e;this.collection.url=this.collectionUrl;this.collection.maxSize=this.collectionMaxSize;if(t){var i="listViewMode"+this.scope;this.getStorage().set("state",i,e)}this.searchView&&this.getView("search")&&this.getSearchView().setViewMode(e);if(this.viewMode===this.MODE_KANBAN)this.setViewModeKanban();else{i="setViewMode"+Espo.Utils.upperCaseFirst(this.viewMode);this[i]&&this[i]()}}setViewModeKanban(){this.collection.url="Kanban/"+this.scope;this.collection.maxSize=this.getConfig().get("recordsPerPageKanban");this.collection.resetOrderToDefault()}resetSorting(){this.getStorage().clear("listSorting",this.collection.entityType)}getSearchDefaultData(){return this.getMetadata().get(`clientDefs.${this.scope}.defaultFilterData`)}setupSearchManager(){var e=this.collection;let t="list";this._primaryFilter&&(t+="Filter"+Espo.Utils.upperCaseFirst(this._primaryFilter));var i=new s.default(e,{storageKey:t,defaultData:this.getSearchDefaultData()});i.scope=this.scope;i.loadStored();if(this._primaryFilter){i.clearPreset();i.setPrimary(this._primaryFilter)}e.where=i.getWhere();this.searchManager=i}setupSorting(){this.searchPanel&&this.applyStoredSorting()}applyStoredSorting(){var e=this.getStorage().get("listSorting",this.collection.entityType)||{};"orderBy"in e&&(this.collection.orderBy=e.orderBy);"order"in e&&(this.collection.order=e.order)}getSearchView(){return this.getView("search")}getRecordView(){return this.getView("list")}getRecordViewName(){var e=this.getMetadata().get(["clientDefs",this.scope,"recordViews",this.viewMode]);if(e)return e;if(this.viewMode===this.MODE_LIST)return this.recordView;if(this.viewMode===this.MODE_KANBAN)return this.recordKanbanView;var t="record"+Espo.Utils.upperCaseFirst(this.viewMode)+"View",e=this[t];if(e)return e;throw new Error("No record view.")}cancelRender(){if(this.hasView("list")){this.getRecordView();this.getRecordView().isBeingRendered()&&this.getRecordView().cancelRender()}super.cancelRender()}afterRender(){Espo.Ui.notify(!1);this.hasView("list")||this.loadList();this.$el.get(0).focus({preventScroll:!0})}loadList(){if("isFetched"in this.collection&&this.collection.isFetched)this.createListRecordView(!1);else{Espo.Ui.notifyWait();this.createListRecordView(!0)}}prepareRecordViewOptions(e){}createListRecordView(i){let t={collection:this.collection,selector:".list-container",scope:this.scope,skipBuildRows:!0,shortcutKeysEnabled:!0,forceDisplayTopBar:!0,additionalRowActionList:this.getMetadata().get(`clientDefs.${this.scope}.rowActionList`),settingsEnabled:!0,forceSettings:this.getMetadata().get(`clientDefs.${this.scope}.forceListViewSettings`)};this.getHelper().isXsScreen()&&(t.type="listSmall");this.optionsToPass.forEach(e=>{t[e]=this.options[e]});this.keepCurrentRootUrl&&(t.keepCurrentRootUrl=!0);(this.getConfig().get("listPagination")||this.getMetadata().get(["clientDefs",this.scope,"listPagination"]))&&(t.pagination=!0);t.rootData=this.rootData;this.prepareRecordViewOptions(t);var e=this.getRecordViewName();return this.createView("list",e,t,async e=>{if(this.hasParentView()){this.listenTo(e,"after:paginate",()=>window.scrollTo({top:0}));this.listenTo(e,"sort",()=>window.scrollTo({top:0}));this.listenToOnce(e,"after:render",()=>{if(!this.hasParentView()){e.undelegateEvents();this.clearView("list")}});i||Espo.Ui.notify();this.searchPanel&&this.listenTo(e,"sort",e=>{this.getStorage().set("listSorting",this.collection.entityType,e)});if(i){var t=await e.getSelectAttributeList();if(!this.options.mediator||!this.options.mediator.abort){t&&(this.collection.data.select=t.join(","));Espo.Ui.notifyWait();await this.collection.fetch({main:!0});Espo.Ui.notify()}}else await e.render()}else e.undelegateEvents()})}getHeader(){if(this._fromAdmin){let e=document.createElement("a");e.href="#Admin";e.textContent=this.translate("Administration","labels","Admin");e.style.userSelect="none";var t=document.createElement("span");t.textContent=this.getLanguage().translate(this.scope,"scopeNamesPlural");t.dataset.action="fullRefresh";t.style.cursor="pointer";t.style.userSelect="none";return this.buildHeaderHtml([e,t])}let e=document.createElement("span");e.textContent=this.getLanguage().translate(this.scope,"scopeNamesPlural");e.title=this.translate("clickToRefresh","messages");e.dataset.action="fullRefresh";e.style.cursor="pointer";e.style.userSelect="none";t=this.getHeaderIconHtml();t&&e.insertAdjacentHTML("afterbegin",t);if(this._primaryFilter){t=this.translate(this._primaryFilter,"presetFilters",this.entityType);e.insertAdjacentHTML("beforeend"," · "+t)}return this.buildHeaderHtml([e])}updatePageTitle(){this.setPageTitle(this.getLanguage().translate(this.scope,"scopeNamesPlural"))}getCreateAttributes(){}prepareCreateReturnDispatchParams(e){}actionQuickCreate(e){e=e||{};var t=this.getCreateAttributes()||{},i={controller:this.scope,action:null,options:{isReturn:!0}},s=(this.prepareCreateReturnDispatchParams(i),new a.default);return s.showCreate(this,{entityType:this.scope,attributes:t,rootUrl:this.keepCurrentRootUrl?this.getRouter().getCurrentUrl():void 0,focusForCreate:e.focusForCreate,returnUrl:this.getRouter().getCurrentUrl(),returnDispatchParams:i,afterSave:()=>{this.collection.fetch()}})}actionCreate(e){e=e||{};var t=this.getRouter(),i="#"+this.scope+"/create",s=this.getCreateAttributes()||{};let a={attributes:s};this.keepCurrentRootUrl&&(a.rootUrl=this.getRouter().getCurrentUrl());e.focusForCreate&&(a.focusForCreate=!0);s={controller:this.scope,action:null,options:{isReturn:!0}};this.prepareCreateReturnDispatchParams(s);a={...a,returnUrl:this.getRouter().getCurrentUrl(),returnDispatchParams:s};t.navigate(i,{trigger:!1});t.dispatch(this.scope,"create",a)}isActualForReuse(){return"isFetched"in this.collection&&this.collection.isFetched}handleShortcutKeyCtrlSpace(e){if(this.createButton&&this.getAcl().checkScope(this.scope,"create")){e.preventDefault();e.stopPropagation();this.quickCreate?this.actionQuickCreate({focusForCreate:!0}):this.actionCreate({focusForCreate:!0})}}handleShortcutKeyCtrlSlash(e){if(this.searchPanel){var t=this.$el.find("input.text-filter").first();if(t.length){e.preventDefault();e.stopPropagation();t.focus()}}}handleShortcutKeyCtrlComma(e){this.getSearchView()&&this.getSearchView().selectPreviousPreset()}handleShortcutKeyCtrlPeriod(e){this.getSearchView()&&this.getSearchView().selectNextPreset()}handleShortcutKeyControlArrowLeft(e){i.default.isKeyEventInTextInput(e)||this.getRecordView().trigger("request-page","previous")}handleShortcutKeyControlArrowRight(e){i.default.isKeyEventInTextInput(e)||this.getRecordView().trigger("request-page","next")}async actionFullRefresh(){Espo.Ui.notifyWait();await this.collection.fetch();Espo.Ui.notify()}}e.default=o});define("views/detail",["exports","views/main","views/detail/modes"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="detail";name="Detail";optionsToPass=["attributes","returnUrl","returnDispatchParams","rootUrl"];headerView="views/header";recordView="views/record/detail";rootLinkDisabled=!1;rootUrl="";isReturn=!1;shortcutKeys={};entityType;defaultViewMode="detail";viewMode;viewModeIsStorable;hasMultipleModes=!1;modesView;MODE_DETAIL="detail";nameAttribute;setup(){super.setup();this.entityType=this.model.entityType||this.model.name;this.headerView=this.options.headerView||this.headerView;this.recordView=this.options.recordView||this.recordView;this.rootUrl=this.options.rootUrl||this.options.params.rootUrl||"#"+this.scope;this.isReturn=this.options.isReturn||this.options.params.isReturn||!1;this.nameAttribute=this.getMetadata().get(`clientDefs.${this.entityType}.nameAttribute`)||"name";this.setupModes();this.setupHeader();this.setupRecord();this.setupPageTitle();this.initFollowButtons();this.initStarButtons();this.initRedirect();this.addActionHandler("fullRefresh",()=>this.actionFullRefresh())}setupFinal(){super.setupFinal();this.wait(this.getHelper().processSetupHandlers(this,"detail"))}initRedirect(){if(this.options.params.isAfterCreate){let e=()=>{Espo.Ui.success(this.translate("Created"));setTimeout(()=>{this.getRouter().navigate(this.rootUrl,{trigger:!0})},1e3)};this.model.lastSyncPromise&&403===this.model.lastSyncPromise.getStatus()?e():this.listenToOnce(this.model,"fetch-forbidden",()=>e())}}setupPageTitle(){this.listenTo(this.model,"after:save",()=>{this.updatePageTitle()});this.listenTo(this.model,"sync",e=>{e&&e.hasChanged(this.nameAttribute)&&this.updatePageTitle()})}setupHeader(){this.createView("header",this.headerView,{model:this.model,fullSelector:"#main > .header",scope:this.scope,fontSizeFlexible:!0});this.listenTo(this.model,"sync",e=>{e&&e.hasChanged(this.nameAttribute)&&this.getView("header")&&this.getView("header").reRender()})}setupModes(){this.defaultViewMode=this.options.defaultViewMode||this.getMetadata().get(`clientDefs.${this.scope}.detailDefaultViewMode`)||this.defaultViewMode;this.viewMode=this.viewMode||this.defaultViewMode;var t=this.options.viewModeList||this.viewModeList||this.getMetadata().get(`clientDefs.${this.scope}.detailViewModeList`);this.viewModeList=t||[this.MODE_DETAIL];this.viewModeIsStorable=void 0!==this.viewModeIsStorable?this.viewModeIsStorable:this.getMetadata().get(`clientDefs.${this.scope}.detailViewModeIsStorable`);this.hasMultipleModes=1<this.viewModeList.length;if(this.viewModeIsStorable&&this.hasMultipleModes){let e=null;t=this.getViewModeKey();if(this.getStorage().has("state",t)){t=this.getStorage().get("state",t);t&&this.viewModeList.includes(t)&&(e=t)}e=e||this.defaultViewMode;this.viewMode=e}if(this.hasMultipleModes){this.addActionHandler("switchMode",(e,t)=>this.switchViewMode(t.dataset.value));this.modesView=new i.default({mode:this.viewMode,modeList:this.viewModeList,scope:this.scope});this.assignView("modes",this.modesView,".modes")}}getViewModeKey(){return`detailViewMode-${this.scope}-${this.model.id}}`}setupRecord(){let t={model:this.model,fullSelector:"#main > .record",scope:this.scope,shortcutKeysEnabled:!0,isReturn:this.isReturn};this.optionsToPass.forEach(e=>{t[e]=this.options[e]});this.options.params&&this.options.params.rootUrl&&(t.rootUrl=this.options.params.rootUrl);this.options.params&&this.options.params.rootData&&(t.rootData=this.options.params.rootData);this.model.get("deleted")&&(t.readOnly=!0);return this.createView("record",this.getRecordViewName(),t,e=>{this.listenTo(e,"after:mode-change",e=>{"edit"===e?this.hideAllHeaderActionItems():this.showAllHeaderActionItems()});if(this.modesView){this.listenTo(e,"after:set-detail-mode",()=>this.modesView.enable());this.listenTo(e,"after:set-edit-mode",()=>this.modesView.disable())}})}getRecordViewName(){return this.getMetadata().get(`clientDefs.${this.scope}.recordViews.`+this.viewMode)||this.recordView}switchViewMode(e){this.clearView("record");this.setViewMode(e,!0);Espo.Ui.notifyWait();this.modesView&&this.modesView.changeMode(e);this.setupRecord().then(e=>{e.render().then(()=>Espo.Ui.notify(!1))})}setViewMode(e,t){this.viewMode=e;if(t&&this.viewModeIsStorable){var i=this.getViewModeKey();this.getStorage().set("state",i,e)}}initStarButtons(){if(this.getMetadata().get(`scopes.${this.scope}.stars`)){this.addStarButtons();this.listenTo(this.model,"change:isStarred",()=>this.controlStarButtons())}}addStarButtons(){var e=this.model.get("isStarred");this.addMenuItem("buttons",{name:"unstar",iconHtml:'<span class="fas fa-star fa-sm text-warning"></span>',className:"btn-s-wide",text:this.translate("Starred"),hidden:!e,onClick:()=>this.actionUnstar()},!0);this.addMenuItem("buttons",{name:"star",iconHtml:'<span class="far fa-star fa-sm"></span>',className:"btn-s-wide",text:this.translate("Star"),hidden:e||!this.model.has("isStarred"),onClick:()=>this.actionStar()},!0)}controlStarButtons(){var e=this.model.get("isStarred");if(e){this.hideHeaderActionItem("star");this.showHeaderActionItem("unstar")}else{this.hideHeaderActionItem("unstar");this.showHeaderActionItem("star")}}actionStar(){this.disableMenuItem("star");Espo.Ajax.putRequest(`${this.entityType}/${this.model.id}/starSubscription`).then(()=>{this.hideHeaderActionItem("star");this.model.set("isStarred",!0,{sync:!0})}).finally(()=>this.enableMenuItem("star"))}actionUnstar(){this.disableMenuItem("unstar");Espo.Ajax.deleteRequest(`${this.entityType}/${this.model.id}/starSubscription`).then(()=>{this.hideHeaderActionItem("unstar");this.model.set("isStarred",!1,{sync:!0})}).finally(()=>this.enableMenuItem("unstar"))}initFollowButtons(){if(this.getMetadata().get(["scopes",this.scope,"stream"])){this.addFollowButtons();this.listenTo(this.model,"change:isFollowed",()=>{this.controlFollowButtons()})}}addFollowButtons(){var e=this.model.get("isFollowed");this.addMenuItem("buttons",{name:"unfollow",label:"Followed",style:"success",action:"unfollow",hidden:!e},!0);this.addMenuItem("buttons",{name:"follow",label:"Follow",style:"default",iconHtml:'<span class="fas fa-rss fa-sm"></span>',text:this.translate("Follow"),action:"follow",hidden:e||!this.model.has("isFollowed")||!this.getAcl().checkModel(this.model,"stream")},!0)}controlFollowButtons(){var e=this.model.get("isFollowed");if(e){this.hideHeaderActionItem("follow");this.showHeaderActionItem("unfollow")}else{this.hideHeaderActionItem("unfollow");this.getAcl().checkModel(this.model,"stream")&&this.showHeaderActionItem("follow")}}actionFollow(){this.disableMenuItem("follow");Espo.Ajax.putRequest(this.entityType+"/"+this.model.id+"/subscription").then(()=>{this.hideHeaderActionItem("follow");this.model.set("isFollowed",!0,{sync:!0});this.enableMenuItem("follow")}).catch(()=>{this.enableMenuItem("follow")})}actionUnfollow(){this.disableMenuItem("unfollow");Espo.Ajax.deleteRequest(this.entityType+"/"+this.model.id+"/subscription").then(()=>{this.hideHeaderActionItem("unfollow");this.model.set("isFollowed",!1,{sync:!0});this.enableMenuItem("unfollow")}).catch(()=>{this.enableMenuItem("unfollow")})}getHeader(){var e=this.model.attributes[this.nameAttribute]||this.model.id,t=document.createElement("span");t.classList.add("font-size-flexible","title");t.textContent=e;this.model.attributes.deleted&&(t.style.textDecoration="line-through");if("detail"===this.getRecordMode()){t.title=this.translate("clickToRefresh","messages");t.dataset.action="fullRefresh";t.style.cursor="pointer"}e=this.getLanguage().translate(this.scope,"scopeNamesPlural");let i=document.createElement("span");i.text=e;i.style.userSelect="none";if(!this.rootLinkDisabled){var s=document.createElement("a");s.href=this.rootUrl;s.classList.add("action");s.dataset.action="navigateToRoot";s.text=e;i=document.createElement("span");i.style.userSelect="none";i.append(s)}e=this.getHeaderIconHtml();e&&i.insertAdjacentHTML("afterbegin",e);return this.buildHeaderHtml([i,t])}updatePageTitle(){this.model.has(this.nameAttribute)?this.setPageTitle(this.model.attributes[this.nameAttribute]||this.model.id):super.updatePageTitle()}getRecordView(){return this.getView("record")}updateRelationshipPanel(e){this.model.trigger("update-related:"+e);console.warn("updateRelationshipPanel method is deprecated.")}actionDuplicate(){Espo.Ui.notifyWait();Espo.Ajax.postRequest(this.scope+"/action/getDuplicateAttributes",{id:this.model.id}).then(e=>{Espo.Ui.notify(!1);var t="#"+this.scope+"/create";this.getRouter().dispatch(this.scope,"create",{attributes:e,returnUrl:this.getRouter().getCurrentUrl(),options:{duplicateSourceId:this.model.id}});this.getRouter().navigate(t,{trigger:!1})})}hideAllHeaderActionItems(){this.getHeaderView()&&this.getHeaderView().hideAllMenuItems()}showAllHeaderActionItems(){this.getHeaderView()&&this.getHeaderView().showAllActionItems()}hideViewMode(e){this.modesView&&this.modesView.hideMode(e)}showViewMode(e){this.modesView&&this.modesView.showMode(e)}async actionFullRefresh(){if("edit"!==this.getRecordMode()){Espo.Ui.notifyWait();await this.model.fetch();this.model.trigger("update-all");Espo.Ui.notify()}}getRecordMode(){return this.getRecordView().getMode?this.getRecordView().getMode():"detail"}setupReuse(e){var t=this.getRecordView();t&&t.setupReuse&&t.setupReuse()}}e.default=a});define("views/collapsed-modal-bar",["exports","view","views/collapsed-modal"],function(e,t,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{templateContent=`
|
||
{{#each dataList}}
|
||
<div class="collapsed-modal" data-number="{{number}}">{{var key ../this}}</div>
|
||
{{/each}}
|
||
`;maxNumberToDisplay=3;numberList;lastNumber;data(){return{dataList:this.getDataList()}}init(){this.on("render",()=>{if(!document.querySelector(".collapsed-modal-bar")){var e=document.createElement("div");e.classList.add("collapsed-modal-bar");document.body.append(e)}})}setup(){this.lastNumber=0;this.numberList=[]}getDataList(){let i=[],e=[...this.numberList];this.numberList.length>this.maxNumberToDisplay&&(e=e.slice(this.numberList.length-this.maxNumberToDisplay));e.reverse().forEach((e,t)=>{i.push({number:e.toString(),key:this.composeKey(e),index:t})});return i}calculateDuplicateNumber(e){let t=0;for(var i of this.numberList){i=this.getCollapsedModalViewByNumber(i);i&&i.title===e&&t++}return 0===t?null:t}getCollapsedModalViewByNumber(e){var t=this.composeKey(e);return this.getView(t)}getModalViewList(){return this.numberList.map(e=>this.getCollapsedModalViewByNumber(e)).filter(e=>e).map(e=>e.modalView)}async addModalView(t,e){let i=this.lastNumber;this.numberList.push(this.lastNumber);var s=this.composeKey(i),a=(this.lastNumber++,new r.default({modalView:t,title:e.title,duplicateNumber:this.calculateDuplicateNumber(e.title),onClose:()=>this.removeModalView(i),onExpand:()=>{this.removeModalView(i,!0);setTimeout(async()=>{var e="dialog-"+i;this.setView(e,t);t.setSelector(t.containerSelector);await this.getView(e).render();t.trigger("after:expand")},5)}}));await this.assignView(s,a,`[data-number="${i}"]`);await this.reRender(!0)}removeModalView(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=this.composeKey(e),s=this.numberList.indexOf(e);~s&&this.numberList.splice(s,1);if(this.isRendered()){s=this.element.querySelector(`.collapsed-modal[data-number="${e}"]`);s&&s.remove()}t||this.reRender();this.clearView(i)}composeKey(e){return"key-"+e}}e.default=s});define("views/stream/note",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{messageName=null;messageTemplate=null;messageData=null;isEditable=!1;isRemovable=!1;isSystemAvatar=!1;rowActionsView="views/stream/record/row-actions/default";data(){return{isUserStream:this.isUserStream,noEdit:this.options.noEdit,acl:this.options.acl,onlyContent:this.options.onlyContent,avatar:this.getAvatarHtml()}}init(){this.createField("createdAt",null,null,"views/fields/datetime-short");this.listType=this.options.listType;this.isUserStream=this.options.isUserStream;this.isThis=!this.isUserStream;this.parentModel=this.options.parentModel;this.isUserStream||!this.parentModel||this.parentModel.entityType===this.model.get("parentType")&&this.parentModel.id===this.model.get("parentId")||(this.isThis=!1);this.getUser().isAdmin()&&(this.isRemovable=!0);this.messageName&&this.isThis&&(this.messageName+="This");this.isThis||this.createField("parent");var e=this.translateEntityType(this.model.get("parentType")),e=(this.messageData={user:"field:createdBy",entity:"field:parent",entityType:e},this.options.rowActionsView||this.rowActionsView);this.options.noEdit||!this.isEditable&&!this.isRemovable||this.createView("right",e,{selector:".right-container",acl:this.options.acl,model:this.model,isEditable:this.isEditable,isRemovable:this.isRemovable,listType:this.listType,isThis:this.isThis,parentModel:this.parentModel,isNotification:this.options.isNotification})}translateEntityType(e,t){let i=t?this.translate(e,"scopeNamesPlural")||"":this.translate(e,"scopeNames")||"";this.isToUpperCaseStringItems()||(i=i.toLowerCase());return i}isToUpperCaseStringItems(){var e=this.getPreferences().get("language")||this.getConfig().get("language");return["de_DE","nl_NL"].includes(e)}createField(e,t,i,s,a){t=t||this.model.getFieldType(e)||"base";var r={model:this.model,defs:{name:e,params:i||{}},selector:".cell-"+e,mode:"list"};if(a)for(var o in a)r[o]=a[o];this.createView(e,s||this.getFieldManager().getViewName(t),r)}isMale(){return"Male"===this.model.get("createdByGender")}isFemale(){return"Female"===this.model.get("createdByGender")}createMessage(){if(!this.messageTemplate){let e=!1;var t=this.model.get("parentType")||null;if(this.isMale()){this.messageTemplate=this.translate(this.messageName,"streamMessagesMale",t)||"";this.messageTemplate!==this.messageName&&(e=!0)}else if(this.isFemale()){this.messageTemplate=this.translate(this.messageName,"streamMessagesFemale",t)||"";this.messageTemplate!==this.messageName&&(e=!0)}e||(this.messageTemplate=this.translate(this.messageName,"streamMessages",t)||"")}if(0===this.messageTemplate.indexOf("{entityType}")&&"string"==typeof this.messageData.entityType){this.messageData.entityTypeUcFirst=Espo.Utils.upperCaseFirst(this.messageData.entityType);this.messageTemplate=this.messageTemplate.replace("{entityType}","{entityTypeUcFirst}")}this.createView("message","views/stream/message",{messageTemplate:this.messageTemplate,selector:".message",model:this.model,messageData:this.messageData})}getAvatarHtml(){let e=this.model.get("createdById");this.isSystemAvatar&&(e=this.getHelper().getAppParam("systemUserId"));return this.getHelper().getAvatarHtml(e,"small",20)}getIconHtml(e,t){if(!e){if(!this.model.attributes.parentType)return null;e=this.model.attributes.parentType;t=this.model.attributes.parentId}var i,s;return(!this.isThis||!this.parentModel||e!==this.parentModel.entityType)&&(i=this.getMetadata().get(`clientDefs.${e}.iconClass`),s=this.getMetadata().get(`clientDefs.${e}.color`),i)?$("<span>").addClass(i).addClass("action text-muted icon").css("cursor","pointer").css("color",s||"").attr("title",this.translate("View")).attr("data-action","quickView").attr("data-id",t).attr("data-scope",e).get(0).outerHTML:null}}e.default=s});define("views/stream/record/list",["exports","views/record/list-expanded"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="listStream";massActionsDisabled=!0;isUserStream;setup(){this.isUserStream=this.options.isUserStream||!1;this.itemViews=this.getMetadata().get("clientDefs.Note.itemViews")||{};super.setup();this.isRenderingNew=!1;this.listenTo(this.collection,"update-sync",()=>{this.buildRows(()=>this.reRender())});if(this.isUserStream||"User"===this.model.entityType){var e=this.collection;e.reactionsCheckMaxSize=this.getConfig().get("streamReactionsCheckMaxSize")||0}this.listenTo(this.collection,"sync",(e,t,i)=>{if(i.fetchNew&&!this.isRenderingNew){var s=i.lengthBeforeFetch||0;if(0===s)this.buildRows(()=>this.reRender());else{let r=this.$el.find(this.listContainerEl);s=this.collection.length-s;if(0!=s){this.isRenderingNew=!0;for(let a=s-1;0<=a;a--){let s=this.collection.at(a);this.buildRow(a,s,e=>{0===a&&(this.isRenderingNew=!1);let t=$(this.getRowContainerHtml(s.id));var i=this.$el.find(`[data-id="${s.id}"]`);i.length&&(t=i);i.length||r.prepend(t);e.render()})}}}}});this.events["auxclick a[href][data-scope][data-id]"]=e=>{var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){var t=$(e.currentTarget),i=t.attr("data-id"),t=t.attr("data-scope");e.preventDefault();e.stopPropagation();this.actionQuickView({id:i,scope:t})}}}buildRow(e,t,i){var s=t.id,a=(this.rowList.push(s),t.get("type")),a=this.itemViews[a]||"views/stream/notes/"+Espo.Utils.camelCaseToHyphen(a);this.createView(s,a,{model:t,parentModel:this.model,acl:{edit:this.getAcl().checkModel(t,"edit")},isUserStream:this.options.isUserStream,noEdit:this.options.noEdit,optionsToPass:["acl"],name:this.type+"-"+t.entityType,selector:'li[data-id="'+t.id+'"]',setViewBeforeCallback:this.options.skipBuildRows&&!this.isRendered(),listType:this.type,rowActionsView:this.options.rowActionsView},i)}buildRows(i){this.checkedList=[];this.rowList=[];if(0<this.collection.length){this.wait(!0);let e=this.collection.models.length,t=0;for(var s in this.collection.models){var a=this.collection.models[s];this.buildRow(s,a,()=>{t++;if(t===e){"function"==typeof i&&i();this.wait(!1);this.trigger("after:build-rows")}})}}else if("function"==typeof i){i();this.trigger("after:build-rows")}}showNewRecords(){var e=this.collection;return e.fetchNew()}actionPin(t){let i=this.collection;Espo.Ui.notifyWait();Espo.Ajax.postRequest(`Note/${t.id}/pin`).then(()=>{Espo.Ui.notify(!1);var e=i.get(t.id);e&&e.set("isPinned",!0);i.pinnedList&&i.fetchNew();i.trigger("pin",e.id)})}actionUnpin(t){let i=this.collection;Espo.Ui.notifyWait();Espo.Ajax.deleteRequest(`Note/${t.id}/pin`).then(()=>{Espo.Ui.notify(!1);var e=i.get(t.id);e&&e.set("isPinned",!1);i.pinnedList&&i.fetchNew();i.trigger("unpin",e.id)})}actionQuoteReply(e){var t=this.getView(e.id),s=window.getSelection();if(s&&s.anchorNode&&s.focusNode){t=t.element.querySelector(".complex-text");if(t.contains(s.anchorNode)&&t.contains(s.focusNode)){let i="";for(let e=0;e<s.rangeCount;e++){var a=s.getRangeAt(e),r=document.createElement("div");r.appendChild(a.cloneContents());i+=r.innerHTML}if(i)return Espo.loader.requirePromise("turndown").then(e=>{var t=new e,t=t.turndown(i);this.trigger("quote-reply",t)}),void 0}}t=this.collection.get(e.id);if(t){t=t.attributes.post;t&&this.trigger("quote-reply",t)}}}e.default=s});define("views/stream/record/row-actions/reactions/reactions",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="item-icon-grid">
|
||
{{#each reactions}}
|
||
<a
|
||
role="button"
|
||
{{#if isReacted}}
|
||
data-action="unReact"
|
||
{{else}}
|
||
data-action="react"
|
||
{{/if}}
|
||
data-type="{{type}}"
|
||
title="{{label}}"
|
||
class=" {{#if isReacted}} text-primary {{else}} text-soft {{/if}}"
|
||
><span class="{{iconClass}}"></span></a>
|
||
{{/each}}
|
||
</div>
|
||
`;constructor(e){super(e);this.reactions=e.reactions}data(){return{reactions:this.reactions}}}e.default=s});define("views/record/search",["exports","view","helpers/misc/stored-text-search","ui/autocomplete","views/search/filter"],function(e,t,s,a,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);a=i(a);o=i(o);function i(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="record/search";scope="";entityType="";searchManager;fieldFilterList=null;fieldFilterTranslations=null;textFilter="";primary=null;presetFilterList=null;advanced;bool=null;filtersLayoutName="filters";disableSavePreset=!1;textFilterDisabled=!1;toShowApplyFiltersButton=!1;toShowResetFiltersText=!1;isSearchedWithAdvancedFilter=!1;primaryFiltersDisabled=!1;viewModeIconClassMap={list:"fas fa-align-justify",kanban:"fas fa-align-left fa-rotate-90"};FIELD_QUICK_SEARCH_COUNT_THRESHOLD=4;autocompleteLimit=7;data(){return{scope:this.scope,entityType:this.entityType,textFilter:this.textFilter,bool:this.bool||{},boolFilterList:this.boolFilterList,hasFieldQuickSearch:this.fieldFilterList.length>=this.FIELD_QUICK_SEARCH_COUNT_THRESHOLD,filterFieldDataList:this.getFilterFieldDataList(),filterDataList:this.getFilterDataList(),presetName:this.presetName,presetFilterList:this.getPresetFilterList(),leftDropdown:this.hasLeftDropdown(),textFilterDisabled:this.textFilterDisabled,viewMode:this.viewMode,viewModeDataList:this.viewModeDataList||[],hasViewModeSwitcher:this.viewModeList&&1<this.viewModeList.length,isWide:this.options.isWide,toShowApplyFiltersButton:this.toShowApplyFiltersButton,toShowResetFiltersText:this.toShowResetFiltersText,primaryFiltersDisabled:this.primaryFiltersDisabled}}setup(){this.entityType=this.collection.entityType;this.scope=this.options.scope||this.entityType;this.filtersLayoutName=this.options.filtersLayoutName||this.filtersLayoutName;this.primaryFiltersDisabled=this.options.primaryFiltersDisabled||this.primaryFiltersDisabled;this.viewModeIconClassMap={...this.viewModeIconClassMap,...this.getMetadata().get(`clientDefs.${this.scope}.viewModeIconClassMap`)};this.searchManager=this.options.searchManager;this.storedTextSearchHelper=new s.default(this.scope,this.getHelper().storage);this.textSearchStoringDisabled=this.getPreferences().get("textSearchStoringDisabled");this.textFilterDisabled=this.options.textFilterDisabled||this.textFilterDisabled||this.getMetadata().get(["clientDefs",this.scope,"textFilterDisabled"]);"disableSavePreset"in this.options&&(this.disableSavePreset=this.options.disableSavePreset);this.viewMode=this.options.viewMode;this.viewModeList=this.options.viewModeList;this.addReadyCondition(()=>null!==this.fieldFilterList);var e=this.getMetadata().get(["clientDefs",this.scope,"boolFilterList"])??[];this.boolFilterList=e.filter(e=>{if("string"==typeof e)return!0;e=e||{};return!e.aux&&!(e.inPortalDisabled&&this.getUser().isPortal()||e.isPortalOnly&&!this.getUser().isPortal()||e.accessDataList&&!Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser()))}).map(e=>{if("string"==typeof e)return e;e=e??{};return e.name});this.fieldFilterTranslations={};let i=this.getAcl().getScopeForbiddenFieldList(this.entityType)||[];this.wait(new Promise(t=>{this.getHelper().layoutManager.get(this.entityType,this.filtersLayoutName,e=>{this.fieldFilterList=[];(e||[]).forEach(e=>{if(!~i.indexOf(e)){this.fieldFilterList.push(e);this.fieldFilterTranslations[e]=this.translate(e,"fields",this.entityType)}});t()})}));this.setupPresetFilters();this.getMetadata().get(["scopes",this.entityType,"stream"])&&this.boolFilterList.push("followed");this.getMetadata().get(`scopes.${this.entityType}.collaborators`)&&!this.getUser().isPortal()&&this.boolFilterList.push("shared");this.loadSearchData();this.hasAdvancedFilter()&&(this.isSearchedWithAdvancedFilter=!0);if(this.presetName){let e=!1;for(var t in this.presetFilterList){t=this.presetFilterList[t]||{},t="string"==typeof t?t:t.name;if(t===this.presetName){e=!0;break}}e||this.presetFilterList.push(this.presetName)}this.model=this.collection.prepareModel();this.model.clear();this.createFilters();this.setupViewModeDataList();this.listenTo(this.collection,"order-changed",()=>{this.controlResetButtonVisibility()});this.wait(this.getHelper().processSetupHandlers(this,"record/search"))}setupPresetFilters(){if(this.primaryFiltersDisabled)this.presetFilterList=[];else{var e=this.options.filterList||this.getMetadata().get(["clientDefs",this.scope,"filterList"])||[];this.presetFilterList=e.filter(e=>{if("string"==typeof e)return!0;e=e||{};return!e.aux&&!(e.inPortalDisabled&&this.getUser().isPortal()||e.isPortalOnly&&!this.getUser().isPortal()||e.accessDataList&&!Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser()))});this.getMetadata().get(`scopes.${this.scope}.stars`)&&this.presetFilterList.unshift({name:"starred"});((this.getPreferences().get("presetFilters")||{})[this.scope]||[]).forEach(e=>{this.presetFilterList.push(e)})}}setupViewModeDataList(){if(!this.viewModeList)return[];let i=[];this.viewModeList.forEach(e=>{var t={name:e,title:this.translate(e,"listViewModes"),iconClass:this.viewModeIconClassMap[e]};i.push(t)});this.viewModeDataList=i}setViewMode(e,t,i){this.viewMode=e;if(this.isRendered()){this.$el.find('[data-action="switchViewMode"]').removeClass("active");this.$el.find('[data-action="switchViewMode"][data-name="'+e+'"]').addClass("active")}else this.isBeingRendered()&&!t&&this.once("after:render",()=>{this.setViewMode(e,!0)});this.collection.offset=0;i&&this.trigger("change-view-mode",e)}hasLeftDropdown(){return!(this.primaryFiltersDisabled&&!this.boolFilterList.length)&&(this.presetFilterList.length||this.boolFilterList.length||Object.keys(this.advanced||{}).length)}handleLeftDropdownVisibility(){this.hasLeftDropdown()?this.$leftDropdown.removeClass("hidden"):this.$leftDropdown.addClass("hidden")}createFilters(e){let t=0,i=Object.keys(this.advanced||{}).length;0===i&&"function"==typeof e&&e();for(var s in this.advanced)this.createFilter(s,this.advanced[s],()=>{t++;t===i&&"function"==typeof e&&e()})}events={'keydown input[data-name="textFilter"]':function(e){var t=Espo.Utils.getKeyFromKeyEvent(e);if("Enter"===e.key||"Enter"===t||"Control+Enter"===t){this.search();this.hideApplyFiltersButton()}},'focus input[data-name="textFilter"]':function(e){e.currentTarget.select()},'click .advanced-filters-apply-container a[data-action="applyFilters"]':function(){this.search();this.hideApplyFiltersButton();this.$el.find("button.search").focus()},'click button[data-action="search"]':function(){this.search();this.hideApplyFiltersButton()},'click a[data-action="addFilter"]':function(e){var t=$(e.currentTarget),i=t.data("name");t.closest("li").addClass("hidden");this.addFilter(i)},"click .advanced-filters a.remove-filter":function(e){var t=$(e.currentTarget),t=t.data("name");this.removeFilter(t)},'click button[data-action="reset"]':function(){this.resetFilters()},'click button[data-action="refresh"]':function(){this.refresh()},'click a[data-action="selectPreset"]':function(e){var t=$(e.currentTarget),t=t.data("name")||null;this.selectPreset(t)},'click .dropdown-menu a[data-action="savePreset"]':function(){this.createView("savePreset","views/modals/save-filters",{},t=>{t.render();this.listenToOnce(t,"save",e=>{this.savePreset(e);t.close();this.removeFilters();this.createFilters(()=>{this.render()})})})},'click .dropdown-menu a[data-action="removePreset"]':function(){let e=this.presetName;this.confirm(this.translate("confirmation","messages"),()=>{this.removePreset(e)})},'change .search-row ul.filter-menu input[data-role="boolFilterCheckbox"]':function(e){e.stopPropagation();this.search();this.manageLabels()},'click [data-action="switchViewMode"]':function(e){var t=$(e.currentTarget).data("name");t!==this.viewMode&&this.setViewMode(t,!1,!0)},"keyup input.field-filter-quick-search-input":function(e){this.processFieldFilterQuickSearch(e.currentTarget.value)},"keydown input.field-filter-quick-search-input":function(e){"Enter"===e.code?this.addFirstFieldFilter():"Escape"===e.code&&this.closeAddFieldDropdown()}};removeFilter(e){this.$el.find('ul.filter-list li[data-name="'+e+'"]').removeClass("hidden");var t=this.getView("filter-"+e).$el.closest("div.filter");this.clearView("filter-"+e);t.remove();delete this.advanced[e];this.presetName=this.primary;this.updateAddFilterButton();this.fetch();this.updateSearch();this.manageLabels();this.handleLeftDropdownVisibility();this.controlResetButtonVisibility();if(this.isSearchedWithAdvancedFilter){this.hasAdvancedFilter()?this.showApplyFiltersButton():this.showResetFiltersButton();this.$applyFilters.focus()}else this.hasAdvancedFilter()||this.hideApplyFiltersButton()}addFilter(e){this.advanced[e]={};this.presetName=this.primary;this.createFilter(e,{},e=>{e.populateDefaults();this.fetch();this.updateSearch();e.getFieldView().initialSearchIsNotIdle&&this.showApplyFiltersButton()});this.updateAddFilterButton();this.handleLeftDropdownVisibility();this.manageLabels();this.controlResetButtonVisibility()}refresh(){Espo.Ui.notifyWait();this.collection.abortLastFetch();this.collection.reset();this.collection.fetch().then(()=>{Espo.Ui.notify(!1)})}selectPreset(e,t){var i=!(this.primary===this.presetName),s=(this.presetName=e,this.getPresetData()),a=(this.primary=this.getPrimaryFilterName(),!(this.primary===this.presetName));if(t||i||a||Object.keys(s).length){this.removeFilters();this.advanced=s}this.updateSearch();this.manageLabels();this.createFilters(()=>{this.reRender().then(()=>{this.$el.find(".filters-button").get(0).focus({preventScroll:!0})})});this.updateCollection()}removeFilters(){this.$advancedFiltersPanel.empty();for(var e in this.advanced)this.clearView("filter-"+e)}resetFilters(){this.trigger("reset");this.collection.resetOrderToDefault();this.textFilter="";this.selectPreset(this.presetName,!0);this.hideApplyFiltersButton();this.trigger("update-ui")}savePreset(e){var t="f"+Math.floor(1000001*Math.random()).toString();this.fetch();this.updateSearch();var i=this.getPreferences().get("presetFilters")||{},s=(this.scope in i||(i[this.scope]=[]),{id:t,name:t,label:e,data:this.advanced,primary:this.primary});i[this.scope].push(s);this.presetFilterList.push(s);this.getPreferences().once("sync",()=>{this.getPreferences().trigger("update");this.updateSearch()});this.getPreferences().save({presetFilters:i},{patch:!0});this.presetName=t}removePreset(i){var e=this.getPreferences().get("presetFilters")||{};this.scope in e||(e[this.scope]=[]);let s;s=e[this.scope];s.forEach((e,t)=>{e.id===i&&s.splice(t,1)});s=this.presetFilterList;s.forEach((e,t)=>{e.id===i&&s.splice(t,1)});this.getPreferences().set("presetFilters",e);this.getPreferences().save({patch:!0});this.getPreferences().trigger("update");this.presetName=this.primary;this.advanced={};this.removeFilters();this.render();this.updateSearch();this.updateCollection()}updateAddFilterButton(){var e=this.$el.find("ul.filter-list");0===e.children().not(".hidden").not(".dropdown-header").not(".quick-search-list-item").length?this.$addFilterButton.addClass("disabled"):this.$addFilterButton.removeClass("disabled");this.trigger("update-ui")}afterRender(){this.$filtersLabel=this.$el.find(".search-row span.filters-label");this.$filtersButton=this.$el.find(".search-row button.filters-button");this.$leftDropdown=this.$el.find("div.search-row div.left-dropdown");this.$resetButton=this.$el.find('[data-action="reset"]');this.$applyFiltersContainer=this.$el.find(".advanced-filters-apply-container");this.$applyFilters=this.$applyFiltersContainer.find('[data-action="applyFilters"]');this.$filterList=this.$el.find("ul.filter-list");this.$fieldQuickSearch=this.$filterList.find("input.field-filter-quick-search-input");this.$addFilterButton=this.$el.find("button.add-filter-button");this.$textFilter=this.$el.find("input.text-filter");this.updateAddFilterButton();this.$advancedFiltersPanel=this.$el.find(".advanced-filters");this.manageLabels();this.controlResetButtonVisibility();this.initQuickSearchUi();this.initTextSearchAutocomplete()}initTextSearchAutocomplete(){if(!this.textSearchStoringDisabled){let i=new a.default(this.$textFilter.get(0),{triggerSelectOnValidInput:!1,focusOnSelect:!0,onSelect:()=>{setTimeout(()=>i.hide(),1)},lookupFunction:e=>Promise.resolve(this.storedTextSearchHelper.match(e,this.autocompleteLimit).map(e=>({value:e}))),formatResult:e=>$("<span>").append($("<a>").attr("data-action","clearStoredTextSearch").attr("role","button").attr("data-value",e.value).attr("title",this.translate("Remove")).html('<span class="fas fa-times fa-sm"></span>').addClass("pull-right text-soft"),$("<span>").text(e.value)).get(0).innerHTML,beforeRender:e=>{var t=$(e);t.addClass("text-search-suggestions");t.find('a[data-action="clearStoredTextSearch"]').on("click",e=>{e.stopPropagation();e.preventDefault();var t=e.currentTarget.getAttribute("data-value");this.storedTextSearchHelper.remove(t);i.hide();setTimeout(()=>this.$textFilter.focus(),201)})}});this.once("render remove",()=>i.dispose())}}initQuickSearchUi(){this.$addFilterButton.parent().on("show.bs.dropdown",()=>{setTimeout(()=>{this.$fieldQuickSearch.focus();var e=this.$fieldQuickSearch.outerWidth();this.$fieldQuickSearch.css("minWidth",e)},1)});this.$addFilterButton.parent().on("hide.bs.dropdown",()=>{this.resetFieldFilterQuickSearch();this.$fieldQuickSearch.css("minWidth","")})}manageLabels(){this.$el.find("ul.dropdown-menu > li.preset-control").addClass("hidden");this.currentFilterLabelList=[];this.managePresetFilters();this.manageBoolFilters();this.$filtersLabel.html(this.currentFilterLabelList.join(" · "))}toShowResetButton(){var e,t;return!!this.textFilter||(e=this.presetName||null,t=this.primary,!(e&&e!==t||!Object.keys(this.advanced).length))||this.collection.orderBy!==this.collection.defaultOrderBy||this.collection.order!==this.collection.defaultOrder}controlResetButtonVisibility(){this.toShowResetButton()?this.$resetButton.css("visibility","visible"):this.$resetButton.css("visibility","hidden")}managePresetFilters(){let a=this.presetName||null;var e=this.primary;this.$el.find("ul.filter-menu a.preset span").remove();let r=this.translate("all","presetFilters",this.entityType),o="default";!a&&e&&(a=e);if(a&&a!==e){this.$advancedFiltersPanel.addClass("hidden");let t=null,i="default",s=null;this.presetFilterList.forEach(e=>{if(e.name===a){t=e.label||!1;i=e.style||"default";s=e.id}});t=t||this.translate(this.presetName,"presetFilters",this.entityType);r=t;o=i;if(s){this.$el.find("ul.dropdown-menu > li.divider.preset-control").removeClass("hidden");this.$el.find("ul.dropdown-menu > li.preset-control.remove-preset").removeClass("hidden")}}else{this.$advancedFiltersPanel.removeClass("hidden");if(0!==Object.keys(this.advanced).length&&!this.disableSavePreset){this.$el.find("ul.dropdown-menu > li.divider.preset-control").removeClass("hidden");this.$el.find("ul.dropdown-menu > li.preset-control.save-preset").removeClass("hidden");this.$el.find("ul.dropdown-menu > li.preset-control.remove-preset").addClass("hidden")}if(e){var e=this.translate(e,"presetFilters",this.entityType),t=this.getPrimaryFilterStyle();r=e;o=t}}this.currentFilterLabelList.push(r);this.$filtersButton.removeClass("btn-default").removeClass("btn-primary").removeClass("btn-danger").removeClass("btn-success").removeClass("btn-info");this.$filtersButton.addClass("btn-"+o);a=a||"";this.$el.find('ul.filter-menu a.preset[data-name="'+a+'"]').prepend('<span class="fas fa-check check-icon pull-right"></span>')}manageBoolFilters(){(this.boolFilterList||[]).forEach(e=>{if(this.bool[e]){var t=this.translate(e,"boolFilters",this.entityType);this.currentFilterLabelList.push(t)}})}search(){this.fetch();this.updateSearch();this.updateCollection();this.controlResetButtonVisibility();this.storeTextSearch();this.isSearchedWithAdvancedFilter=this.hasAdvancedFilter()}hasAdvancedFilter(){return 0<Object.keys(this.advanced).length}getFilterDataList(){var e,t=[];for(e in this.advanced)t.push({key:"filter-"+e,name:e});return t}updateCollection(){this.collection.abortLastFetch();this.collection.reset();this.collection.where=this.searchManager.getWhere();this.collection.offset=0;Espo.Ui.notifyWait();this.collection.fetch().then(()=>{Espo.Ui.notify(!1)})}getPresetFilterList(){let t=[];this.presetFilterList.forEach(e=>{"string"==typeof e&&(e={name:e});t.push(e)});return t}getPresetData(){let t={};this.getPresetFilterList().forEach(e=>{e.name===this.presetName&&(t=Espo.Utils.clone(e.data||{}))});return t}getPrimaryFilterName(){let t=null;this.getPresetFilterList().forEach(e=>{e.name===this.presetName&&("data"in e?e.primary&&(t=e.primary):t=e.name)});return t}getPrimaryFilterStyle(){let t=null;this.getPresetFilterList().forEach(e=>{e.name===this.primary&&(t=e.style||"default")});return t}loadSearchData(){var e=this.searchManager.get();this.textFilter=e.textFilter;"presetName"in e&&(this.presetName=e.presetName);let t=!1;if("primary"in e){this.primary=e.primary;this.presetName||(this.presetName=this.primary);t=!0}if(this.presetName){this.advanced=_.extend(Espo.Utils.clone(this.getPresetData()),e.advanced);t||(this.primary=this.getPrimaryFilterName())}else this.advanced=Espo.Utils.clone(e.advanced);this.bool=e.bool}async createFilter(e,t,i,s){t=t||{};let a=!1;if(this.isRendered()){a=!0;this.$advancedFiltersPanel.append(`<div data-name="${e}" class="filter filter-${e}" />`)}let r=new o.default({name:e,model:this.model,params:t});await this.assignView("filter-"+e,r,`.filter[data-name="${e}"]`);"function"==typeof i&&r.once("after:render",()=>i(r));a&&!s&&r.render().then(()=>{});this.listenTo(r,"change",()=>{let e=this.isSearchedWithAdvancedFilter;if(!e){var t=r.getFieldView().fetchSearch();t&&(e=!0)}e&&this.showApplyFiltersButton()});this.listenTo(r,"search",()=>{this.search();this.hideApplyFiltersButton()})}fetch(){this.textFilter=(this.$el.find('input[data-name="textFilter"]').val()||"").trim();this.bool={};this.boolFilterList.forEach(e=>{this.bool[e]=this.$el.find('input[data-name="'+e+'"][data-role="boolFilterCheckbox"]').prop("checked")});for(var e in this.advanced){var t=this.getView("filter-"+e).getView("field");this.advanced[e]=t.fetchSearch();t.searchParams=Espo.Utils.clone(this.advanced[e]||{})}}updateSearch(){this.searchManager.set({textFilter:this.textFilter,advanced:this.advanced,bool:this.bool,presetName:this.presetName,primary:this.primary})}getFilterFieldDataList(){var e,t=[];for(e in this.fieldFilterList){var i=this.fieldFilterList[e],i={name:i,checked:i in this.advanced,label:this.fieldFilterTranslations[i]||i};t.push(i)}return t}showResetFiltersButton(){this.toShowApplyFiltersButton=!0;this.toShowResetFiltersText=!0;this.$applyFiltersContainer.removeClass("hidden");this.$applyFiltersContainer.find(".text-apply").addClass("hidden");this.$applyFiltersContainer.find(".text-reset").removeClass("hidden")}showApplyFiltersButton(){this.toShowApplyFiltersButton=!0;this.toShowResetFiltersText=!1;this.$applyFiltersContainer.removeClass("hidden");this.$applyFiltersContainer.find(".text-reset").addClass("hidden");this.$applyFiltersContainer.find(".text-apply").removeClass("hidden")}hideApplyFiltersButton(){this.toShowApplyFiltersButton=!1;this.toShowResetFiltersText=!1;this.$applyFiltersContainer.addClass("hidden")}selectPreviousPreset(){var e=Espo.Utils.clone(this.getPresetFilterList());e.unshift({name:null});if(1!==e.length){var t=e.findIndex(e=>e.name===this.presetName)-1;if(!(t<0)){e=e[t];this.selectPreset(e.name)}}}selectNextPreset(){var e=Espo.Utils.clone(this.getPresetFilterList());e.unshift({name:null});if(1!==e.length){var t=e.findIndex(e=>e.name===this.presetName)+1;if(!(t>=e.length)){e=e[t];this.selectPreset(e.name)}}}processFieldFilterQuickSearch(a){a=a.trim();a=a.toLowerCase();let r=this.$filterList.find("li.filter-item");if(""===a)r.removeClass("search-hidden");else{r.addClass("search-hidden");this.fieldFilterList.forEach(e=>{let t=this.fieldFilterTranslations[e]||e;t=t.toLowerCase();var i=t.split(" ");let s=0===t.indexOf(a);s=s||0<i.filter(e=>3<e.length&&0===e.indexOf(a)).length;s&&r.filter(`[data-name="${e}"]`).removeClass("search-hidden")})}}resetFieldFilterQuickSearch(){this.$fieldQuickSearch.val("");this.$filterList.find("li.filter-item").removeClass("search-hidden")}addFirstFieldFilter(){var e=this.$filterList.find("li.filter-item:not(.hidden):not(.search-hidden)").first();if(e.length){var t=e.attr("data-name");e.addClass("hidden");this.closeAddFieldDropdown();this.addFilter(t);this.resetFieldFilterQuickSearch()}}closeAddFieldDropdown(){this.$addFilterButton.parent().find('[data-toggle="dropdown"]').dropdown("toggle")}storeTextSearch(){!this.textFilter||this.textSearchStoringDisabled||this.storedTextSearchHelper.store(this.textFilter)}}e.default=r});define("views/record/detail-side",["exports","views/record/panels-container"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/side";mode="detail";readOnly=!1;inlineEditDisabled=!1;name="side";defaultPanel=!0;panelList=[];defaultPanelDefs={name:"default",label:!1,view:"views/record/panels/default-side",isForm:!0,options:{fieldList:[{name:":assignedUser"},{name:"teams"}]}};init(){this.panelList=this.options.panelList||this.panelList;this.scope=this.entityType=this.options.model.entityType;this.recordHelper=this.options.recordHelper;this.panelList=Espo.Utils.clone(this.panelList);this.readOnlyLocked=this.options.readOnlyLocked||this.readOnly;this.readOnly=this.options.readOnly||this.readOnly;this.inlineEditDisabled=this.options.inlineEditDisabled||this.inlineEditDisabled;this.recordViewObject=this.options.recordViewObject}setupPanels(){}setup(){this.type=this.mode;"type"in this.options&&(this.type=this.options.type);this.setupInitial();this.setupPanels();if(!this.additionalPanelsDisabled){var e=this.getMetadata().get(["clientDefs",this.scope,"sidePanels",this.type])||[];e.forEach(e=>{this.panelList.push(e)})}this.panelList=this.panelList.map(e=>{var t;return"reference"in e&&e.reference?(t={...this.getMetadata().get("app.clientRecord.panels."+e.reference),...e},t):e});this.panelList=this.panelList.filter(e=>{if(!e.aclScope||this.getAcl().checkScope(e.aclScope))return!(e.accessDataList&&!Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser()))});this.panelList=this.panelList.map(e=>{var t=Espo.Utils.clone(e);null!==this.recordHelper.getPanelStateParam(e.name,"hidden")?t.hidden=this.recordHelper.getPanelStateParam(e.name,"hidden"):this.recordHelper.setPanelStateParam(e.name,"hidden",t.hidden||!1);return t});this.panelList.forEach(e=>{e.actionsViewKey=e.name+"Actions"});this.wait(Promise.all([new Promise(t=>{this.getHelper().layoutManager.get(this.scope,"sidePanels"+Espo.Utils.upperCaseFirst(this.type),e=>{this.layoutData=e;t()})}),new Promise(t=>{!this.defaultPanel||this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelDisabled"])||this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanel",this.type])||this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelFieldLists",this.type])||this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelFieldList"])?t():this.getHelper().layoutManager.get(this.scope,"defaultSidePanel",e=>{this.defaultSidePanelLayoutData=e;t()})})]).then(()=>{this.defaultPanel&&this.setupDefaultPanel();this.alterPanels();this.setupPanelsFinal();this.setupPanelViews()}))}setupDefaultPanel(){let t=!1;this.panelList.forEach(e=>{"default"===e.name&&(t=!0)});if(!t){let a=this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanel",this.type]);if(!1!==a&&!this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelDisabled"])){a=a||this.defaultPanelDefs;if(a){a=Espo.Utils.cloneDeep(a);a.view=this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelView"])||a.view;let s=this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelFieldLists",this.type]);s=s||this.getMetadata().get(["clientDefs",this.scope,"defaultSidePanelFieldList"]);!s&&this.defaultSidePanelLayoutData&&(s=this.defaultSidePanelLayoutData);if(s){a.options=a.options||{};a.options.fieldList=s}s=a.options.fieldList;if(s&&s.length){s.forEach((e,t)=>{if("object"!=typeof e){e={name:e};s[t]=e}if(":assignedUser"===e.name)if(this.model.hasField("assignedUsers")){e.name="assignedUsers";this.model.getFieldParam("assignedUsers","view")||(e.view="views/fields/assigned-users")}else this.model.hasField("assignedUser")?e.name="assignedUser":a.options.fieldList[t]={}});let i=this.getMetadata().get(["entityDefs",this.entityType,"fields"])||{};a.options.fieldList=s.filter(e=>{var t=i[e.name]||{};return!t.disabled})}this.panelList.unshift(a)}}}}}e.default=s});define("views/record/row-actions/default",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/row-actions/default";menuIsShown=!1;lastActionList;handlers;constructor(e){super(e);this.options=e}setup(){this.options.acl=this.options.acl||{};this.scope=this.options.scope||this.model.entityType;this.handlers=this.options.rowActionHandlers||{};this.additionalActionDataList=[];this.setupAdditionalActions();let s=e=>{e.keepRowActions||(this.menuIsShown?this.once("menu-hidden",()=>this.reRender()):this.reRender())};this.listenTo(this.model,"change",(e,t)=>s(t));this.model.collection&&this.model.collection.parentModel&&this.listenTo(this.model.collection.parentModel,"sync",(e,t,i)=>{this.lastActionList&&setTimeout(()=>{if(Espo.Utils.areEqual(this.lastActionList,this.getActionList()))return!0;s(i)},0)})}afterRender(){this.menuIsShown=!1;var e=this.$el.find('button[data-toggle="dropdown"]').parent();let t=!1;e.on("show.bs.dropdown",()=>{var e=this.$el.closest(".list-row");t=!1;e.hasClass("active")&&(t=!0);e.addClass("active");this.menuIsShown=!0});e.on("hide.bs.dropdown",()=>{t||this.$el.closest(".list-row").removeClass("active");this.menuIsShown=!1;this.trigger("menu-hidden")})}getActionList(){let t=[{action:"quickView",label:"View",data:{id:this.model.id},link:`#${this.model.entityType}/view/`+this.model.id,groupIndex:0}];this.checkAccess("edit")&&t.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},link:`#${this.model.entityType}/edit/`+this.model.id,groupIndex:0});this.getAdditionalActionList().forEach(e=>t.push(e));this.checkAccess("delete")&&t.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});return t}getAdditionalActionList(){let i=[];this.additionalActionDataList.forEach(e=>{var t=this.handlers[e.name];t&&!t.isAvailable(this.model,e.name)||e.acl&&"read"!==e.acl&&!this.getAcl().checkModel(this.model,e.acl)||i.push({action:"rowAction",text:e.text,data:{id:this.model.id,actualAction:e.name},groupIndex:e.groupIndex})});return i}data(){let i=[];var e=this.getActionList();this.lastActionList=e;e.forEach(e=>{if(!1!==e){var t=(void 0===e.groupIndex?9999:e.groupIndex)+100;void 0===i[t]&&(i[t]=[]);i[t].push(e)}});let t=[];i.forEach(e=>{e.forEach(e=>t.push(e));t.push(!1)});return{acl:this.options.acl,actionList:t,scope:this.model.entityType}}setupAdditionalActions(){var e=this.options.additionalActionList;if(e){let s=this.getMetadata().get(`clientDefs.${this.scope}.rowActionDefs`)||{};e.forEach(e=>{var t=s[e]||{},i=t.labelTranslation?this.getLanguage().translatePath(t.labelTranslation):this.getLanguage().translate(t.label,"labels",this.model.entityType);this.additionalActionDataList.push({name:e,acl:t.acl,text:i,groupIndex:t.groupIndex})})}}checkAccess(e){return"boolean"==typeof this.options.acl[e]?this.options.acl[e]:this.getAcl().checkModel(this.model,e)}}e.default=s});define("views/record/panels/side",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/panels/side";fieldList=null;mode="detail";actionList;buttonList;readOnly=!1;inlineEditDisabled=!1;disabled=!1;defs;recordViewObject;events={"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget,{actionItems:[...this.buttonList,...this.actionList],className:"panel-action"})}};data(){return{fieldList:this.getFieldList(),hiddenFields:this.recordHelper.getHiddenFields()}}init(){this.panelName=this.options.panelName;this.defs=this.options.defs||{};this.recordHelper=this.options.recordHelper;"disabled"in this.options&&(this.disabled=this.options.disabled);this.buttonList=Espo.Utils.clone(this.defs.buttonList||this.buttonList||[]);this.actionList=Espo.Utils.clone(this.defs.actionList||this.actionList||[]);this.fieldList=this.options.fieldList||this.fieldList||this.defs.fieldList||[];this.mode=this.options.mode||this.mode;this.readOnlyLocked=this.options.readOnlyLocked||this.readOnly;this.readOnly=this.readOnly||this.options.readOnly;this.inlineEditDisabled=this.inlineEditDisabled||this.options.inlineEditDisabled;this.recordViewObject=this.options.recordViewObject}setup(){this.setupFields();this.fieldList=this.fieldList.map(e=>{let t=e;"object"!=typeof t&&(t={name:t,viewKey:t+"Field"});t=Espo.Utils.clone(t);t.viewKey=t.name+"Field";t.label=t.label||t.name;null!==this.recordHelper.getFieldStateParam(t.name,"hidden")?t.hidden=this.recordHelper.getFieldStateParam(t.name,"hidden"):this.recordHelper.setFieldStateParam(t.name,"hidden",t.hidden||!1);return t});this.fieldList=this.fieldList.filter(e=>{if(e.name&&(e.isAdditional||e.name in((this.model.defs||{}).fields||{})))return!0});this.createFields()}afterRender(){0===this.$el.children().length&&this.defs.isForm&&this.$el.parent().addClass("hidden")}setupFields(){}createField(e,t,i,s,a,r){var o=this.model.getFieldType(e)||"base",n=(t=t||this.model.getFieldParam(e,"view")||this.getFieldManager().getViewName(o),{model:this.model,selector:'.field[data-name="'+e+'"]',defs:{name:e,params:i||{}},mode:s||this.mode,dataObject:this.options.dataObject});if(r)for(var l in r)n[l]=r[l];let d=this.readOnlyLocked;this.readOnly?n.readOnly=!0:null!==a&&(n.readOnly=a);a&&(d=!0);this.inlineEditDisabled&&(n.inlineEditDisabled=!0);this.recordHelper.getFieldStateParam(e,"hidden")&&(n.disabled=!0);this.recordHelper.getFieldStateParam(e,"hiddenLocked")&&(n.disabledLocked=!0);this.recordHelper.getFieldStateParam(e,"readOnly")&&(n.readOnly=!0);null!==this.recordHelper.getFieldStateParam(e,"required")&&(n.defs.params.required=this.recordHelper.getFieldStateParam(e,"required"));!d&&this.recordHelper.getFieldStateParam(e,"readOnlyLocked")&&(d=!0);d&&(n.readOnlyLocked=d);this.recordHelper.hasFieldOptionList(e)&&(n.customOptionList=this.recordHelper.getFieldOptionList(e));this.recordViewObject&&(n.validateCallback=()=>this.recordViewObject.validateField(e));n.recordHelper=this.recordHelper;o=e+"Field";this.createView(o,t,n)}createFields(){this.getFieldList().forEach(e=>{let t=null,i,s=null;if("object"==typeof e){i=e.name;t=e.view;"readOnly"in e&&(s=e.readOnly)}else i=e;if(e.isAdditional||i in this.model.defs.fields){s=s||!1;this.createField(i,t,null,null,s,e.options)}})}getFieldViews(){let t={};this.getFieldList().forEach(e=>{this.hasView(e.viewKey)&&(t[e.name]=this.getView(e.viewKey))});return t}getFieldList(){return this.fieldList.map(e=>"object"!=typeof e?{name:e}:e)}getActionList(){return this.actionList||[]}getButtonList(){return this.buttonList||[]}async actionRefresh(){Espo.Ui.notifyWait();await this.model.fetch();Espo.Ui.notify()}isTabHidden(){var e;return-1!==this.defs.tabNumber&&void 0!==this.defs.tabNumber&&(e=this.getParentView(),e?!(!e||!e.hasTabs)&&e.currentTab!==this.defs.tabNumber:0<this.defs.tabNumber)}}e.default=s});define("views/record/panels/relationship",["exports","views/record/panels/bottom","search-manager","helpers/record-modal","helpers/record/create-related","helpers/record/select-related","di","web-socket-manager"],function(e,t,n,r,i,s,a,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=c(t);n=c(n);r=c(r);i=c(i);s=c(s);o=c(o);var l;let d,h;function c(e){return e&&e.__esModule?e:{default:e}}function u(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class m extends t.default{constructor(){super(...arguments);h(this)}template="record/panels/relationship";rowActionsView="views/record/row-actions/relationship";url=null;scope;entityType;readOnly=!1;fetchOnModelAfterRelate=!1;noCreateScopeList=["User","Team","Role","Portal"];recordsPerPage=null;viewModalView=null;listLayoutName;webSocketManager=d(this);setup(){super.setup();this.link=this.link||this.defs.link||this.panelName;if(!this.link)throw new Error("No link or panelName.");if(!this.scope&&!this.entityType){if(!this.model)throw new Error("No model passed.");if(!(this.link in this.model.defs.links))throw new Error(`Link '${this.link}' is not defined in model '${this.model.entityType}'.`)}this.scope&&!this.entityType&&(this.entityType=this.scope);this.entityType=this.entityType||this.model.defs.links[this.link].entity;this.scope=this.entityType;var t=this.getMetadata().get(`entityDefs.${this.model.entityType}.links.`+this.link)||{};let i=this.url=this.url||`${this.model.entityType}/${this.model.id}/`+this.link;"create"in this.defs||(this.defs.create=!0);"select"in this.defs||(this.defs.select=!0);"view"in this.defs||(this.defs.view=!0);if(t.readOnly){let e=!1;if(this.entityType&&t.foreign){var t=t.foreign,s=this.getMetadata().get(`entityDefs.${this.entityType}.links.`+t)||{};("belongsTo"===s.type||"hasMany"===s.type&&"linkMultiple"===this.getMetadata().get(`entityDefs.${this.entityType}.fields.${t}.type`))&&(e=!0)}e||(this.defs.create=!1);this.defs.select=!1}this.filterList=this.defs.filterList||this.filterList||null;if(this.filterList&&this.filterList.length){this.filter=this.getStoredFilter()||this.filterList[0];"all"===this.filter&&(this.filter=null)}this.setupCreateAvailability();this.setupTitle();this.defs.createDisabled&&(this.defs.create=!1);this.defs.selectDisabled&&(this.defs.select=!1);this.defs.viewDisabled&&(this.defs.view=!1);let a=this.defs.unlinkDisabled||this.model.getLinkParam(this.link,"readOnly"),e=!1;if(this.defs.create&&this.getAcl().check(this.entityType,"create")&&!~this.noCreateScopeList.indexOf(this.entityType)){this.buttonList.push({title:"Create",action:this.defs.createAction||"createRelated",link:this.link,html:'<span class="fas fa-plus"></span>',data:{link:this.link},acl:this.defs.createRequiredAccess||null});e=!0}if(this.defs.select){s={link:this.link};this.defs.selectPrimaryFilterName&&(s.primaryFilterName=this.defs.selectPrimaryFilterName);this.defs.selectBoolFilterList&&(s.boolFilterList=this.defs.selectBoolFilterList);s.massSelect=this.defs.massSelect;s.createButton=e;this.actionList.unshift({label:"Select",action:this.defs.selectAction||"selectRelated",data:s,acl:this.defs.selectRequiredAccess||"edit"})}this.defs.view&&this.actionList.unshift({label:"View List",action:this.defs.viewAction||"viewRelatedList"});this.setupActions();let r="listSmall";this.setupListLayout();this.listLayoutName&&(r=this.listLayoutName);let o=null;t=this.defs.layout||null;if(t)if("string"==typeof t)r=t;else{r="listRelationshipCustom";o=t}this.listLayout=o;this.layoutName=r;this.setupSorting();this.wait(!0);this.getCollectionFactory().create(this.entityType,t=>{t.maxSize=this.recordsPerPage||this.getConfig().get("recordsPerPageSmall")||5;if(this.defs.filters){var e=new n.default(t);e.setAdvanced(this.defs.filters);t.where=e.getWhere()}this.defs.primaryFilter&&(this.filter=this.defs.primaryFilter);t.url=t.urlRoot=i;this.defaultOrderBy&&t.setOrder(this.defaultOrderBy,this.defaultOrder||!1,!0);this.collection=t;t.parentModel=this.model;this.setFilter(this.filter);this.fetchOnModelAfterRelate&&this.listenTo(this.model,"after:relate",()=>t.fetch());this.listenTo(this.model,`update-related:${this.link} update-all`,()=>t.fetch());this.listenTo(this.collection,"change",()=>{this.model.trigger("after:related-change:"+this.link)});this.defs.syncWithModel&&this.listenTo(this.model,"sync",(e,t,i)=>{!i.patch&&!i.highlight||this.collection.lastSyncPromise&&this.collection.lastSyncPromise.getReadyState()<4||this.collection.fetch()});let s=this.defs.recordListView||this.getMetadata().get(["clientDefs",this.entityType,"recordViews","listRelated"])||this.getMetadata().get(["clientDefs",this.entityType,"recordViews","list"])||"views/record/list";this.listViewName=s;this.rowActionsView=!this.defs.readOnly&&(this.defs.rowActionsView||this.rowActionsView);this.once("after:render",async()=>{var e=await this.createView("list",s,{collection:t,layoutName:r,listLayout:o,checkboxes:!1,rowActionsView:this.rowActionsView,buttonsDisabled:!0,selector:".list-container",skipBuildRows:!0,rowActionsOptions:{unlinkDisabled:a,editDisabled:this.defs.editDisabled,removeDisabled:this.defs.removeDisabled},displayTotalCount:!1,additionalRowActionList:this.defs.rowActionList});let i=await e.getSelectAttributeList();if(i){if(this.defs.mandatoryAttributeList){i=[...i,...this.defs.mandatoryAttributeList];i=i.filter((e,t)=>i.indexOf(e)===t)}t.data.select=i.join(",")}if(this.defs.hidden){this.once("show",()=>t.fetch());this.defs.syncBackWithModel&&this.listenTo(e,"after:save after:delete",()=>this.processSyncBack())}else t.fetch()});this.wait(!1)});this.setupFilterActions();this.setupLast()}setupLast(){}setupTitle(){this.title=this.title||this.translate(this.link,"links",this.model.entityType);let e="";this.getConfig().get("scopeColorsDisabled")||(e=this.getHelper().getScopeColorIconHtml(this.entityType));this.titleHtml=this.title;this.defs.label?this.titleHtml=e+this.translate(this.defs.label,"labels",this.entityType):this.titleHtml=e+this.title;this.filter&&"all"!==this.filter&&(this.titleHtml+=" · "+this.translateFilter(this.filter))}setupSorting(){let e=this.defs.orderBy||this.defs.sortBy||this.orderBy,t=this.defs.orderDirection||this.orderDirection||this.order;"asc"in this.defs&&(t=this.defs.asc?"asc":"desc");if(!e){e=this.getMetadata().get(["entityDefs",this.entityType,"collection","orderBy"]);t=this.getMetadata().get(["entityDefs",this.entityType,"collection","order"])}e&&!t&&(t="asc");this.defaultOrderBy=e;this.defaultOrder=t}setupListLayout(){}setupActions(){}setupFilterActions(){if(this.filterList&&this.filterList.length){this.actionList.push(!1);this.filterList.slice(0).forEach(e=>{var t="all"===e?!this.filter:e===this.filter,i=this.translateFilter(e),t=$("<div>").append($("<span>").addClass("check-icon fas fa-check pull-right").addClass(t?"":"hidden")).append($("<div>").text(i));this.actionList.push({action:"selectFilter",html:t.get(0).innerHTML,data:{name:e}})})}}translateFilter(e){return this.translate(e,"presetFilters",this.entityType)}getStoredFilter(){var e="panelFilter"+this.model.entityType+"-"+(this.panelName||this.name);return this.getStorage().get("state",e)||null}storeFilter(e){var t="panelFilter"+this.model.entityType+"-"+(this.panelName||this.name);e?this.getStorage().set("state",t,e):this.getStorage().clear("state",t)}setFilter(e){this.filter=e;this.collection.data.primaryFilter=null;e&&"all"!==e&&(this.collection.data.primaryFilter=e)}actionSelectFilter(e){let i=e.name,t=i;"all"===i&&(t=!1);this.storeFilter(t);this.setFilter(t);this.filterList.forEach(e=>{var t=this.$el.closest(".panel").find('[data-name="'+e+'"] span');e===i?t.removeClass("hidden"):t.addClass("hidden")});this.collection.abortLastFetch();this.collection.reset();let s=this.getView("list");if(s&&s.$el){var a=s.$el.parent().get(0).clientHeight;s.$el.empty();a&&s.$el.parent().css("height",a+"px")}this.collection.fetch().then(()=>{s.$el.parent().css("height","")});this.setupTitle();this.isRendered()&&this.$el.closest(".panel").find("> .panel-heading > .panel-title > span").html(this.titleHtml)}async actionRefresh(){Espo.Ui.notifyWait();await this.collection.fetch();Espo.Ui.notify()}actionViewRelatedList(e){var t=e.scope||e.entityType||this.entityType,i=this.getMetadata().get(`clientDefs.${this.model.entityType}.relationshipPanels.${this.name}.viewModalView`)||this.getMetadata().get(`clientDefs.${t}.modalViews.relatedList`)||this.viewModalView||"views/modals/related-list";let s=this.filter;this.relatedListFiltersDisabled&&(s=null);var a={model:this.model,panelName:this.panelName,link:this.link,entityType:t,defs:this.defs,title:e.title||this.title,filterList:this.filterList,filter:s,layoutName:this.layoutName,defaultOrder:this.defaultOrder,defaultOrderBy:this.defaultOrderBy,url:e.url||this.url,listViewName:this.listViewName,createDisabled:!this.isCreateAvailable(t),selectDisabled:!this.isSelectAvailable(t),rowActionsView:this.rowActionsView,panelCollection:this.collection,filtersDisabled:this.relatedListFiltersDisabled};if(e.viewOptions)for(var r in e.viewOptions)a[r]=e.viewOptions[r];Espo.Ui.notifyWait();this.createView("modalRelatedList",i,a,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")})})}isCreateAvailable(e){return!!this.defs.create}isSelectAvailable(e){return!!this.defs.select}actionViewRelated(e){var t=e.id,i=this.collection.get(t);if(i){var s=i.entityType,a=new r.default;a.showDetail(this,{entityType:s,id:t,model:i}).then(e=>{this.listenTo(e,"after:save",()=>{this.collection.fetch();this.processSyncBack()})})}}actionEditRelated(e){var t=e.id,i=this.collection.get(t).entityType,s=new r.default;s.showEdit(this,{entityType:i,id:t,afterSave:()=>{this.collection.fetch();this.processSyncBack()}})}actionUnlinkRelated(e){let t=e.id;this.confirm({message:this.translate("unlinkRecordConfirmation","messages"),confirmText:this.translate("Unlink")},()=>{Espo.Ui.notifyWait();Espo.Ajax.deleteRequest(this.collection.url,{id:t}).then(()=>{Espo.Ui.success(this.translate("Unlinked"));this.collection.fetch();this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link);this.processSyncBack()})})}async actionRemoveRelated(e){var t=e.id,t=this.collection.get(t),i=this.collection.indexOf(t);if(!t)throw new Error("No model.");await this.confirm({message:this.translate("removeRecordConfirmation","messages"),confirmText:this.translate("Remove")});Espo.Ui.notifyWait();try{await t.destroy({wait:!0})}catch(e){this.collection.models.includes(t)||this.collection.add(t,{at:i});return}Espo.Ui.success(this.translate("Removed"));this.collection.fetch().then(()=>{});this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link);this.processSyncBack()}actionUnlinkAllRelated(e){this.confirm(this.translate("unlinkAllConfirmation","messages"),()=>{Espo.Ui.notifyWait();Espo.Ajax.postRequest(this.model.entityType+"/action/unlinkAll",{link:e.link,id:this.model.id}).then(()=>{Espo.Ui.success(this.translate("Unlinked"));this.collection.fetch();this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link);this.processSyncBack()})})}actionCreateRelated(){var e=new i.default(this);e.process(this.model,this.link,{afterSave:()=>{this.processSyncBack()}})}processSyncBack(){this.defs.syncBackWithModel&&!this.webSocketManager.isEnabled()&&this.model.fetch({highlight:!0})}actionSelectRelated(){var e=new s.default(this);e.process(this.model,this.link,{hasCreate:this.defs.create,onCreate:()=>this.actionCreateRelated()})}setupCreateAvailability(){if(this.link&&this.entityType&&this.model){var e=this.model,t=e.getLinkParam(this.link,"entity"),e=e.getLinkParam(this.link,"foreign");if(t&&e){t=this.getMetadata().get(`entityDefs.${t}.fields.${e}.readOnly`);t&&(this.defs.create=!1)}}}static#_=l=()=>[d,h]=u(this,[],[[(0,a.inject)(o.default),0,"webSocketManager"]],0,void 0,t.default).e}l();e.default=m});define("views/note/fields/post",["exports","views/fields/text","@textcomplete/core","@textcomplete/textarea"],function(e,t,r,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{textcomplete;setup(){super.setup();this.insertedImagesData={};this.addHandler("paste","textarea",e=>this.handlePaste(e))}onRemove(){super.onRemove();this.textcomplete&&this.textcomplete.destroy()}getTextAreaElement(){return this.$textarea.get(0)}handlePaste(t){if(t.clipboardData){let e=t.clipboardData.getData("text/plain");if(e){e=e.trim();e&&this.handlePastedText(e)}}}afterRenderEdit(){var e=this.options.placeholderText||this.translate("writeMessage","messages","Note");this.$element.attr("placeholder",e);this.$textarea=this.$element;e=this.$textarea;e.off("drop");e.off("dragover");e.off("dragleave");this.$textarea.on("drop",e=>{e.preventDefault();e.stopPropagation();e=e.originalEvent;e.dataTransfer&&e.dataTransfer.files&&e.dataTransfer.files.length&&this.trigger("add-files",e.dataTransfer.files);this.$textarea.attr("placeholder",t)});let t=this.$textarea.attr("placeholder");this.$textarea.on("dragover",e=>{e.preventDefault();this.$textarea.attr("placeholder",this.translate("dropToAttach","messages"))});this.$textarea.on("dragleave",e=>{e.preventDefault();this.$textarea.attr("placeholder",t)});this.initMentions()}initMentions(){let a=this.getAcl().getPermissionLevel("mention");if("no"!==a){let i=this.getConfig().get("recordsPerPage");var e=new o.TextareaEditor(this.textAreaElement);let s=!1;this.textcomplete=new r.Textcomplete(e,[{match:/(^|\s)@(\w[\w@.-]*)$/,index:2,search:(e,t)=>{0===e.length||s?t([]):Espo.Ajax.getRequest((e=>{let t="User?"+$.param({q:e})+"&"+$.param({primaryFilter:"active"})+"&orderBy=name&maxSize="+i+"&select=id,name,userName";"team"===a&&(t+="&"+$.param({boolFilterList:["onlyMyTeam"]}));return t})(e)).then(e=>t(e.list))},template:e=>{var t=this.getHelper().getAvatarHtml(e.id,"medium",16,"avatar-link"),i=this.getHelper().escapeString(e.name),s=this.getHelper().escapeString(e.userName);return t+i+` <span class="text-muted">@${s}</span>`},replace:e=>"$1@"+e.userName}],{dropdown:{item:{className:"textcomplete-item",activeClassName:"textcomplete-item active"},style:{zIndex:"1100"}}});this.textcomplete.on("select",()=>{s=!0;setTimeout(()=>{s=!1},100)});this.textAreaElement.addEventListener("blur",()=>{s=!0;setTimeout(()=>{s=!1},200);setTimeout(()=>{var e;null!=(e=this.textcomplete)&&e.hide()},150)})}}validateRequired(){return(!this.isRequired()||!(this.model.get("attachmentsIds")||[]).length)&&super.validateRequired()}handlePastedText(e){if(/^http(s){0,1}\:\/\//.test(e)){let r="attachments";var t=".+\\.("+["jpg","jpeg","png","gif"].join("|")+")(/?.*){0,1}$",t=new RegExp(t,"i");let a=e;var i=this.getConfig().get("siteUrl").replace(/\/$/,""),s=this.model.attributes[r+"Ids"]||[];if(t.test(e)){t=this.insertedImagesData[a];t&&s.includes(t)||Espo.Ajax.postRequest("Attachment/fromImageUrl",{url:a,parentType:this.model.entityType,field:r}).then(e=>{var t=[...this.model.attributes[r+"Ids"]||[]],i={...this.model.attributes[r+"Names"]},s={...this.model.attributes[r+"Types"]};t.push(e.id);i[e.id]=e.name;s[e.id]=e.type;this.insertedImagesData[a]=e.id;this.model.set({attachmentsIds:t,attachmentsNames:i,attachmentsTypes:s})}).catch(e=>{e.errorIsHandled=!0})}else if(/\?entryPoint\=image\&/.test(e)&&0===e.indexOf(i)){a=e.replace(/[\&]{0,1}size\=[a-z\-]*/,"");t=/\&{0,1}id\=([a-z0-9A-Z]*)/g.exec(e);if(2===t.length){let a=t[1];if(!s.includes(a)){i=this.insertedImagesData[a];i&&s.includes(i)||Espo.Ajax.postRequest("Attachment/copy/"+a,{parentType:this.model.entityType,field:r}).then(e=>{var t=[...this.model.attributes[r+"Ids"]||[]],i={...this.model.attributes[r+"Names"]},s={...this.model.attributes[r+"Types"]};t.push(e.id);i[e.id]=e.name;s[e.id]=e.type;this.insertedImagesData[a]=e.id;this.model.set({attachmentsIds:t,attachmentsNames:i,attachmentsTypes:s})}).catch(e=>{e.errorIsHandled=!0})}}}}}}e.default=s});define("views/fields/user",["exports","views/fields/link","ui/autocomplete"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{searchTemplate="fields/user/search";linkClass="text-default";setupSearch(){super.setupSearch();this.searchTypeList=Espo.Utils.clone(this.searchTypeList);this.searchTypeList.push("isFromTeams");this.searchData.teamIdList=this.getSearchParamsData().teamIdList||this.searchParams.teamIdList||[];this.searchData.teamNameHash=this.getSearchParamsData().teamNameHash||this.searchParams.teamNameHash||{};this.events['click a[data-action="clearLinkTeams"]']=e=>{var t=$(e.currentTarget).data("id").toString();this.deleteLinkTeams(t)};this.addActionHandler("selectLinkTeams",()=>this.actionSelectLinkTeams());this.events['click a[data-action="clearLinkTeams"]']=e=>{var t=$(e.currentTarget).data("id").toString();this.deleteLinkTeams(t)}}getSelectPrimaryFilterName(){return"active"}async actionSelectLinkTeams(){var e=this.getMetadata().get("clientDefs.Team.modalViews.select")||"views/modals/select-records",t={entityType:"Team",createButton:!1,multiple:!0,onSelect:e=>{e.forEach(e=>this.addLinkTeams(e.id,e.attributes.name))}},e=(Espo.Ui.notifyWait(),await this.createView("modal",e,t));await e.render()}handleSearchType(e){super.handleSearchType(e);"isFromTeams"===e?this.$el.find("div.teams-container").removeClass("hidden"):this.$el.find("div.teams-container").addClass("hidden")}afterRender(){super.afterRender();if(this.mode===this.MODE_SEARCH){let t=this.$el.find("input.element-teams"),i,e=new a.default(t.get(0),{minChars:1,focusOnSelect:!0,handleFocusMode:3,autoSelectFirst:!0,forceHide:!0,onSelect:e=>{this.addLinkTeams(e.id,e.name);t.val("")},lookupFunction:e=>{i&&i.getReadyState()<4&&i.abort();i=Espo.Ajax.getRequest("Team",{maxSize:this.getAutocompleteMaxCount(),select:"id,name",q:e});return i.then(e=>e.list.map(e=>({id:e.id,name:e.name,data:e.id,value:e.name})))}});this.once("render remove",()=>e.dispose());var s=this.$el.find("select.search-type").val();"isFromTeams"===s&&this.searchData.teamIdList.forEach(e=>{this.addLinkTeamsHtml(e,this.searchData.teamNameHash[e])})}}deleteLinkTeams(e){this.deleteLinkTeamsHtml(e);var t=this.searchData.teamIdList.indexOf(e);-1<t&&this.searchData.teamIdList.splice(t,1);delete this.searchData.teamNameHash[e];this.trigger("change")}addLinkTeams(e,t){this.searchData.teamIdList=this.searchData.teamIdList||[];if(!~this.searchData.teamIdList.indexOf(e)){this.searchData.teamIdList.push(e);this.searchData.teamNameHash[e]=t;this.addLinkTeamsHtml(e,t);this.trigger("change")}}deleteLinkTeamsHtml(e){this.$el.find(".link-teams-container .link-"+e).remove()}addLinkTeamsHtml(e,t){e=this.getHelper().escapeString(e);t=this.getHelper().escapeString(t);var i=this.$el.find(".link-teams-container"),s=$("<div />").addClass("link-"+e).addClass("list-group-item");s.html(t+" ");s.prepend('<a role="button" class="pull-right" data-id="'+e+'" data-action="clearLinkTeams"><span class="fas fa-times"></a>');i.append(s);return s}fetchSearch(){var e=this.$el.find("select.search-type").val();return"isFromTeams"===e?{type:"isUserFromTeams",field:this.name,value:this.searchData.teamIdList,data:{type:e,teamIdList:this.searchData.teamIdList,teamNameHash:this.searchData.teamNameHash}}:super.fetchSearch()}}e.default=s});define("views/fields/range-int",["exports","views/fields/base","views/fields/int","autonumeric"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{type="rangeInt";listTemplate="fields/range-int/detail";detailTemplate="fields/range-int/detail";editTemplate="fields/range-int/edit";validations=["required","int","range","order"];data(){var e=super.data();e.ucName=Espo.Utils.upperCaseFirst(this.name);e.fromValue=this.model.get(this.fromField);e.toValue=this.model.get(this.toField);return e}init(){var e=Espo.Utils.upperCaseFirst(this.options.defs.name);this.fromField="from"+e;this.toField="to"+e;super.init()}getValueForDisplay(){var e=this.model.get(this.fromField),t=this.model.get(this.toField),e=isNaN(e)?null:e,t=isNaN(t)?null:t;return null!==e&&null!==t?this.formatNumber(e)+" – "+this.formatNumber(t):e?">= "+this.formatNumber(e):t?"<= "+this.formatNumber(t):this.translate("None")}setup(){this.getPreferences().has("decimalMark")?this.decimalMark=this.getPreferences().get("decimalMark"):this.getConfig().has("decimalMark")&&(this.decimalMark=this.getConfig().get("decimalMark"));this.getPreferences().has("thousandSeparator")?this.thousandSeparator=this.getPreferences().get("thousandSeparator"):this.getConfig().has("thousandSeparator")&&(this.thousandSeparator=this.getConfig().get("thousandSeparator"))}setupFinal(){super.setupFinal();this.setupAutoNumericOptions()}setupAutoNumericOptions(){var e=(this.disableFormatting?null:this.thousandSeparator)||"";let t=".";"."===e&&(t=",");this.autoNumericOptions={digitGroupSeparator:e,decimalCharacter:t,modifyValueOnWheel:!1,decimalPlaces:0,selectOnFocus:!1,formulaMode:!0}}afterRender(){super.afterRender();if(this.mode===this.MODE_EDIT){this.$from=this.$el.find('[data-name="'+this.fromField+'"]');this.$to=this.$el.find('[data-name="'+this.toField+'"]');this.$from.on("change",()=>{this.trigger("change")});this.$to.on("change",()=>{this.trigger("change")});if(this.autoNumericOptions){this.autoNumericInstance1=new s.default(this.$from.get(0),this.autoNumericOptions);this.autoNumericInstance2=new s.default(this.$to.get(0),this.autoNumericOptions)}}}validateRequired(){var e=e=>{if(this.model.isRequired(e)&&null===this.model.get(e)){var t=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t,'[data-name="'+e+'"]');return!0}},t=e(this.fromField)||!1;t=e(this.toField)||t;return t}validateInt(){var e=e=>{if(isNaN(this.model.get(e))){var t=this.translate("fieldShouldBeInt","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t,'[data-name="'+e+'"]');return!0}},t=e(this.fromField)||!1;t=e(this.toField)||t;return t}validateRange(){var e=e=>{var t=this.model.get(e);if(null===t)return!1;var i=this.model.getFieldParam(e,"min"),s=this.model.getFieldParam(e,"max");if(null!==i&&null!==s){if(t<i||s<t){var a=this.translate("fieldShouldBeBetween","messages").replace("{field}",this.translate(e,"fields",this.entityType)).replace("{min}",i).replace("{max}",s);this.showValidationMessage(a,'[data-name="'+e+'"]');return!0}}else if(null!==i){if(t<i){a=this.translate("fieldShouldBeLess","messages").replace("{field}",this.translate(e,"fields",this.entityType)).replace("{value}",i);this.showValidationMessage(a,'[data-name="'+e+'"]');return!0}}else if(null!==s&&s<t){i=this.translate("fieldShouldBeGreater","messages").replace("{field}",this.translate(e,"fields",this.entityType)).replace("{value}",s);this.showValidationMessage(i,'[data-name="'+e+'"]');return!0}},t=e(this.fromField)||!1;t=e(this.toField)||t;return t}validateOrder(){var e=this.model.get(this.fromField),t=this.model.get(this.toField);if(null!==e&&null!==t&&t<e){t=this.translate("fieldShouldBeGreater","messages").replace("{field}",this.translate(this.toField,"fields",this.entityType)).replace("{value}",this.translate(this.fromField,"fields",this.entityType));this.showValidationMessage(t,'[data-name="'+this.fromField+'"]');return!0}}isRequired(){return this.model.getFieldParam(this.fromField,"required")||this.model.getFieldParam(this.toField,"required")}parse(e){return i.default.prototype.parse.call(this,e)}formatNumber(e){return this.params.disableFormatting?e.toString():i.default.prototype.formatNumberDetail.call(this,e)}fetch(){var e={};e[this.fromField]=this.parse(this.$from.val().trim());e[this.toField]=this.parse(this.$to.val().trim());return e}}e.default=r});define("views/fields/link-multiple",["exports","views/fields/base","helpers/record-modal","ui/autocomplete"],function(e,t,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{constructor(e){super(e)}type="linkMultiple";listTemplate="fields/link-multiple/list";detailTemplate="fields/link-multiple/detail";editTemplate="fields/link-multiple/edit";searchTemplate="fields/link-multiple/search";listLinkTemplateContent=`
|
||
{{#if value}}
|
||
<a
|
||
href="#{{scope}}/view/{{model.id}}"
|
||
class="link"
|
||
data-id="{{model.id}}"
|
||
>{{{value}}}</a>
|
||
{{/if}}
|
||
`;validations=["required","maxCount"];nameHashName;idsName;nameHash=null;ids=null;foreignScope;autocompleteDisabled=!1;selectRecordsView="views/modals/select-records";createDisabled=!1;forceCreateButton=!1;createButton=!1;sortable=!1;searchTypeList=["anyOf","isEmpty","isNotEmpty","noneOf","allOf"];selectFilterList=null;selectBoolFilterList=null;selectPrimaryFilterName=null;autocompleteMaxCount=null;autocompleteOnEmpty=!1;forceSelectAllAttributes=!1;iconHtml="";linkClass;events={'auxclick a[href]:not([role="button"])':function(e){if(this.isReadMode()){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){t=$(e.currentTarget).attr("data-id");if(t){e.preventDefault();e.stopPropagation();this.quickView(t)}}}}};data(){var e=this.model.get(this.idsName),t=this.createButton&&(!this.createDisabled||this.forceCreateButton);return{...super.data(),idValues:this.model.get(this.idsName),idValuesString:e?e.join(","):"",nameHash:this.model.get(this.nameHashName),foreignScope:this.foreignScope,valueIsSet:this.model.has(this.idsName),createButton:t}}getSelectFilters(){return null}getSelectBoolFilterList(){return this.selectBoolFilterList}getSelectPrimaryFilterName(){return this.selectPrimaryFilterName}getSelectFilterList(){return this.selectFilterList}getCreateAttributes(){let t=this.getMetadata().get(["clientDefs",this.entityType,"relationshipPanels",this.name,"createAttributeMap"])||{},i={};Object.keys(t).forEach(e=>i[t[e]]=this.model.get(e));return i}setup(){this.nameHashName=this.name+"Names";this.idsName=this.name+"Ids";this.foreignScope=this.options.foreignScope||this.foreignScope||this.params.entity||this.model.getFieldParam(this.name,"entity")||this.model.getLinkParam(this.name,"entity");"createDisabled"in this.options&&(this.createDisabled=this.options.createDisabled);if(this.isSearchMode()){var e=this.getSearchParamsData().nameHash||this.searchParams.nameHash||{},t=this.getSearchParamsData().idList||this.searchParams.value||[];this.nameHash=Espo.Utils.clone(e);this.ids=Espo.Utils.clone(t)}else this.copyValuesFromModel();this.listenTo(this.model,"change:"+this.idsName,()=>{this.copyValuesFromModel()});this.sortable=this.sortable||this.params.sortable;this.iconHtml=this.getHelper().getScopeColorIconHtml(this.foreignScope);if(!this.isListMode()){this.addActionHandler("selectLink",()=>this.actionSelect());this.events['click a[data-action="clearLink"]']=e=>{var t=$(e.currentTarget).attr("data-id");this.actionDeleteLink(t)}}this.autocompleteOnEmpty=this.params.autocompleteOnEmpty||this.autocompleteOnEmpty;this.createButton=this.params.createButton||this.createButton;this.createButton&&!this.getAcl().checkScope(this.foreignScope,"create")&&(this.createButton=!1);this.createButton&&this.addActionHandler("createLink",()=>this.actionCreateLink());this.panelDefs=this.getMetadata().get(["clientDefs",this.entityType,"relationshipPanels",this.name])||{}}actionDeleteLink(e){this.deleteLink(e);this.$element.get(0).focus({preventScroll:!0});setTimeout(()=>{this.$element.get(0).focus({preventScroll:!0})},140)}copyValuesFromModel(){this.ids=Espo.Utils.clone(this.model.get(this.idsName)||[]);this.nameHash=Espo.Utils.clone(this.model.get(this.nameHashName)||{})}handleSearchType(e){~["anyOf","noneOf","allOf"].indexOf(e)?this.$el.find("div.link-group-container").removeClass("hidden"):this.$el.find("div.link-group-container").addClass("hidden")}setupSearch(){this.events=_.extend({"change select.search-type":e=>{var t=$(e.currentTarget).val();this.handleSearchType(t)}},this.events||{})}getAutocompleteMaxCount(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")}getAutocompleteUrl(e){let a=this.foreignScope+"?&maxSize="+this.getAutocompleteMaxCount();if(!this.forceSelectAllAttributes){var t=this.getMetadata().get(["clientDefs",this.entityType,"relationshipPanels",this.name])||{},t=this.mandatorySelectAttributeList||t.selectMandatoryAttributeList;let e=["id","name"];t&&(e=e.concat(t));a+="&select="+e.join(",")}let r=this.ids&&this.ids.length?{_id:{type:"notIn",attribute:"id",value:this.ids}}:{};if(this.panelDefs.selectHandler)return new Promise(s=>{this._getSelectFilters().then(e=>{e.bool&&(a+="&"+$.param({boolFilterList:e.bool}));e.primary&&(a+="&"+$.param({primaryFilter:e.primary}));var t={...r,...e.advanced||{}},t=(Object.keys(t).length&&(a+="&"+$.param({where:t})),e.orderBy||this.panelDefs.selectOrderBy),i=e.orderBy?e.order:this.panelDefs.selectOrderDirection;t&&(a+="&"+$.param({orderBy:t,order:i||"asc"}));s(a)})});t=[...this.getSelectBoolFilterList()||[],...this.panelDefs.selectBoolFilterList||[]],t=(t.length&&(a+="&"+$.param({boolFilterList:t})),this.getSelectPrimaryFilterName()||this.panelDefs.selectPrimaryFilterName);t&&(a+="&"+$.param({primaryFilter:t}));Object.keys(r).length&&(a+="&"+$.param({where:r}));if(this.panelDefs.selectOrderBy){t=this.panelDefs.selectOrderDirection||"asc";a+="&"+$.param({orderBy:this.panelDefs.selectOrderBy,order:t})}return a}afterRender(){if(this.isEditMode()||this.isSearchMode()){this.$element=this.$el.find("input.main-element");if(!this.autocompleteDisabled){let i,e=new a.default(this.$element.get(0),{focusOnSelect:!0,handleFocusMode:3,autoSelectFirst:!0,triggerSelectOnValidInput:!1,forceHide:!0,onSelect:t=>{this.getModelFactory().create(this.foreignScope,e=>{e.set(t.attributes);this.select([e]);this.$element.val("");this.$element.focus()})},lookupFunction:t=>{var e;return this.autocompleteOnEmpty||0!==t.length?Promise.resolve(this.getAutocompleteUrl(t)).then(e=>{i&&i.getReadyState()<4&&i.abort();i=Espo.Ajax.getRequest(e,{q:t});return i}).then(e=>e.list.map(e=>({value:e.name,attributes:e}))):(e=this.getOnEmptyAutocomplete(),e?e.then(e=>this._transformAutocompleteResult({list:e})):Promise.resolve([]))}});this.once("render remove",()=>e.dispose())}this.renderLinks();this.isEditMode()&&this.sortable&&this.$el.find(".link-container").sortable({stop:()=>{this.fetchFromDom();this.trigger("change")}});if(this.isSearchMode()){var e=this.$el.find("select.search-type").val();this.handleSearchType(e);this.$el.find("select.search-type").on("change",()=>{this.trigger("change")})}}}renderLinks(){this.ids.forEach(e=>{this.addLinkHtml(e,this.nameHash[e])})}deleteLink(e){this.trigger("delete-link",e);this.trigger("delete-link:"+e);this.deleteLinkHtml(e);var t=this.ids.indexOf(e);-1<t&&this.ids.splice(t,1);delete this.nameHash[e];this.afterDeleteLink(e);this.trigger("change")}addLink(e,t){if(!~this.ids.indexOf(e)){this.ids.push(e);this.nameHash[e]=t;this.addLinkHtml(e,t);this.afterAddLink(e);this.trigger("add-link",e);this.trigger("add-link:"+e)}this.trigger("change")}afterDeleteLink(e){}afterAddLink(e){}deleteLinkHtml(e){this.$el.find(".link-"+e).remove()}addLinkHtml(e,t){t=t||e;var i=this.$el.find(".link-container"),s=this.prepareEditItemElement(e,t);i.append(s);return $(s)}prepareEditItemElement(t,i){var e=document.createElement("div");e.classList.add("link-"+t);e.classList.add("list-group-item");e.dataset.id=t;e.append((()=>{var e=document.createElement("a");e.role="button";e.tabIndex=0;e.classList.add("pull-right");e.dataset.id=t;e.dataset.action="clearLink";e.append((()=>{var e=document.createElement("span");e.classList.add("fas","fa-times");return e})());return e})());e.append((()=>{var e=document.createElement("span");e.classList.add("text");e.textContent=i;return e})());return e}getIconHtml(e){return this.iconHtml}getDetailLinkHtml(e,t){t=t||this.nameHash[e]||e;!t&&e&&(t=this.translate(this.foreignScope,"scopeNames"));var i=this.isDetailMode()?this.getIconHtml(e):"",s=$("<a>").attr("href",this.getUrl(e)).attr("data-id",e).text(t);this.mode===this.MODE_LIST?s.addClass("text-default"):this.linkClass&&s.addClass(this.linkClass);i&&s.prepend(i);return s.get(0).outerHTML}getUrl(e){return"#"+this.foreignScope+"/view/"+e}getValueForDisplay(){if(!this.isDetailMode()&&!this.isListMode())return null;if(this.mode===this.MODE_LIST_LINK){let i=document.createElement("div");this.ids.forEach(e=>{var t=document.createElement("div");t.classList.add("link-multiple-item");t.textContent=this.nameHash[e]||e;i.append(t)});return i.outerHTML}let t=[];this.ids.forEach(e=>{t.push(this.getDetailLinkHtml(e))});return t.length?t.map(e=>$("<div>").addClass("link-multiple-item").html(e).wrap("<div />").parent().html()).join(""):null}validateRequired(){if(!this.isRequired())return!1;var e=this.model.get(this.idsName)||[];if(0!==e.length)return!1;e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}validateMaxCount(){var e=this.params.maxCount;if(!e)return!1;var t=this.model.get(this.idsName)||[];if(0===t.length)return!1;if(t.length<=e)return!1;t=this.translate("fieldExceedsMaxCount","messages").replace("{field}",this.getLabelText()).replace("{maxCount}",e.toString());this.showValidationMessage(t);return!0}fetch(){var e={};e[this.idsName]=Espo.Utils.clone(this.ids);e[this.nameHashName]=Espo.Utils.clone(this.nameHash);return e}fetchFromDom(){this.ids=[];this.$el.find(".link-container").children().each((e,t)=>{var i=$(t).attr("data-id");i&&this.ids.push(i)})}fetchSearch(){var e=this.$el.find("select.search-type").val(),t=this.ids||[];if(~["anyOf","allOf","noneOf"].indexOf(e)&&!t.length)return{type:"isNotNull",attribute:"id",data:{type:e}};let i;if("anyOf"===e)return i={type:"linkedWith",value:t,data:{type:e,nameHash:this.nameHash}},i;if("allOf"===e){i={type:"linkedWithAll",value:t,data:{type:e,nameHash:this.nameHash}};t.length||(i.value=null);return i}if("noneOf"===e)return i={type:"notLinkedWith",value:t,data:{type:e,nameHash:this.nameHash}},i;if("isEmpty"===e)return i={type:"isNotLinked",data:{type:e}},i;if("isNotEmpty"===e)return i={type:"isLinked",data:{type:e}},i}getSearchType(){return this.getSearchParamsData().type||this.searchParams.typeFront||this.searchParams.type||"anyOf"}quickView(e){var t=this.foreignScope,i=new s.default;i.showDetail(this,{id:e,entityType:t})}async actionSelect(){Espo.Ui.notifyWait();var e=this.panelDefs.selectModalView||this.getMetadata().get(`clientDefs.${this.foreignScope}.modalViews.select`)||this.selectRecordsView,t=this.mandatorySelectAttributeList||this.panelDefs.selectMandatoryAttributeList,i=this.isEditMode()&&(!this.createDisabled&&!this.panelDefs.createDisabled||this.forceCreateButton),s=i?this.getCreateAttributesProvider():null,a=await this._getSelectFilters(),r=a.orderBy||this.panelDefs.selectOrderBy,o=a.orderBy?a.order:this.panelDefs.selectOrderDirection,i={entityType:this.foreignScope,createButton:i,filters:a.advanced,boolFilterList:a.bool,primaryFilterName:a.primary,filterList:this.getSelectFilterList(),multiple:!0,mandatorySelectAttributeList:t,forceSelectAllAttributes:this.forceSelectAllAttributes,createAttributesProvider:s,layoutName:this.panelDefs.selectLayout,orderBy:r,orderDirection:o,onSelect:e=>{this.select(e)}},a=await this.createView("modal",e,i);await a.render();Espo.Ui.notify()}getCreateAttributesProvider(){return()=>{let i=this.getCreateAttributes()||{};return this.panelDefs.createHandler?new Promise(t=>{Espo.loader.requirePromise(this.panelDefs.createHandler).then(e=>new e(this.getHelper())).then(e=>{e.getAttributes(this.model,this.name).then(e=>{t({...i,...e})})})}):Promise.resolve(i)}}select(e){e.forEach(e=>{this.addLink(e.id,e.get("name"))})}_getSelectFilters(){let e=this.panelDefs.selectHandler,r=this.getSelectBoolFilterList();var t;return!e||this.isSearchMode()?(t=r||this.panelDefs.selectBoolFilterList?[...r||[],...this.panelDefs.selectBoolFilterList||[]]:void 0,Promise.resolve({primary:this.getSelectPrimaryFilterName()||this.panelDefs.selectPrimaryFilterName,bool:t,advanced:this.getSelectFilters()||void 0})):new Promise(a=>{Espo.loader.requirePromise(e).then(e=>new e(this.getHelper())).then(e=>e.getFilters(this.model)).then(e=>{var t={...this.getSelectFilters()||{},...e.advanced||{}},i=this.getSelectPrimaryFilterName()||e.primary||this.panelDefs.selectPrimaryFilterName,s=r||e.bool||this.panelDefs.selectBoolFilterList?[...r||[],...e.bool||[],...this.panelDefs.selectBoolFilterList||[]]:void 0;a({bool:s,primary:i,advanced:t})})})}async actionCreateLink(){var e=new s.default,t=await this.getCreateAttributesProvider()();await e.showCreate(this,{entityType:this.foreignScope,fullFormDisabled:!0,attributes:t,afterSave:e=>this.select([e])})}_transformAutocompleteResult(e){let t=[];e.list.forEach(e=>{t.push({id:e.id,name:e.name||e.id,data:e.id,value:e.name||e.id,attributes:e})});return t}getOnEmptyAutocomplete(){}}e.default=r});define("views/fields/foreign-enum",["exports","views/fields/enum","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";foreignEntityType;setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];this.foreignEntityType=t.getEntityType();super.setup()}setupOptions(){let i=this.params.field;var s=this.params.link;if(i&&s){let e=this.params.optionsPath;s=this.params.optionsReference;let t=this.params.options;var a=this.params.style;if(!e&&s){var[s,r]=s.split(".");e=`entityDefs.${s}.fields.${r}.options`}e&&(t=this.getMetadata().get(e));this.params.options=Espo.Utils.clone(t)??[];this.styleMap=a??{};s=this.params.options.map(e=>[e,this.getLanguage().translateOption(e,i,this.foreignEntityType)]);this.translatedOptions=Object.fromEntries(s)}}}e.default=a});define("views/fields/file",["exports","views/fields/link","helpers/file-upload","helpers/misc/attachment-insert-from-source"],function(e,t,s,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);s=a(s);i=a(i);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{constructor(e){super(e)}type="file";listTemplate="fields/file/list";listLinkTemplate="fields/file/list";detailTemplate="fields/file/detail";editTemplate="fields/file/edit";showPreview=!1;accept=!1;defaultType=!1;previewSize="small";validations=["ready","required"];searchTypeList=["isNotEmpty","isEmpty"];events={"click a.remove-attachment":function(e){var t=$(e.currentTarget).parent();this.deleteAttachment();t.parent().remove();this.$el.find("input.file").val(null);setTimeout(()=>this.focusOnUploadButton(),10)},"change input.file":function(e){var t=$(e.currentTarget),i=e.currentTarget.files;if(i.length){this.uploadFile(i[0]);e.target.value=null;t.replaceWith(t.clone(!0))}},'click a[data-action="showImagePreview"]':function(e){e.preventDefault();var t=this.model.get(this.idName);this.createView("preview","views/modals/image-preview",{id:t,model:this.model,name:this.model.get(this.nameName)},e=>{e.render()})},'click a.action[data-action="insertFromSource"]':function(e){var t=$(e.currentTarget).data("name");this.insertFromSource(t)},"keydown label.attach-file-label":function(e){var t=Espo.Utils.getKeyFromKeyEvent(e);if("Enter"===t){t=this.$el.find("input.file").get(0);t.click()}}};data(){var e={...super.data(),id:this.model.get(this.idName),acceptAttribute:this.acceptAttribute};this.mode===this.MODE_EDIT&&(e.sourceList=this.sourceList);e.valueIsSet=this.model.has(this.idName);return e}showValidationMessage(e,t,i){var s=this.$el.find("label"),a=s.attr("title");s.attr("title","");super.showValidationMessage(e,t,i);s.attr("title",a)}validateRequired(){if(this.isRequired()&&null==this.model.get(this.idName)){var t=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());let e;e=this.isUploading?this.$el.find(".gray-box"):this.$el.find(".attachment-button label");this.showValidationMessage(t,e);return!0}}validateReady(){if(this.isUploading){var e=this.$el.find(".gray-box"),t=this.translate("fieldIsUploading","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t,e);return!0}}setup(){this.nameName=this.name+"Name";this.idName=this.name+"Id";this.typeName=this.name+"Type";this.foreignScope="Attachment";this.previewSize=this.options.previewSize||this.params.previewSize||this.previewSize;this.previewTypeList=this.getMetadata().get(["app","image","previewFileTypeList"])||[];this.imageSizes=this.getMetadata().get(["app","image","sizes"])||{};let i=this.getMetadata().get(["clientDefs","Attachment","sourceDefs"])||{};this.sourceList=Espo.Utils.clone(this.params.sourceList||[]);this.sourceList=this.sourceList.concat(this.getMetadata().get(["clientDefs","Attachment","generalSourceList"])||[]).filter((e,t,i)=>i.indexOf(e)===t).filter(e=>{var t=i[e]||{};if(t.accessDataList&&!Espo.Utils.checkAccessDataList(t.accessDataList,this.getAcl(),this.getUser()))return!1;if(t.configCheck){t=t.configCheck.split(".");if(!this.getConfig().getByPath(t))return!1}return!0});"showPreview"in this.params&&(this.showPreview=this.params.showPreview);"accept"in this.params&&(this.accept=this.params.accept);this.accept&&this.accept.length&&(this.acceptAttribute=this.accept.join(", "));this.on("remove",()=>{this.resizeIsBeingListened&&$(window).off("resize."+this.cid)});this.on("inline-edit-off",()=>{this.isUploading=!1})}afterRender(){if(this.mode===this.MODE_EDIT){this.$attachment=this.$el.find("div.attachment");var e=this.model.get(this.nameName),t=this.model.get(this.typeName)||this.defaultType,i=this.model.get(this.idName);i&&this.addAttachmentBox(e,t,i);this.$el.off("drop");this.$el.off("dragover");this.$el.off("dragleave");this.$el.on("drop",e=>{e.preventDefault();e.stopPropagation();var t=e.originalEvent;t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length&&this.uploadFile(t.dataTransfer.files[0])});this.$el.on("dragover",e=>{e.preventDefault()});this.$el.on("dragleave",e=>{e.preventDefault()})}if(this.mode===this.MODE_SEARCH){e=this.$el.find("select.search-type").val();this.handleSearchType(e)}if(this.mode===this.MODE_DETAIL&&"large"===this.previewSize){this.handleResize();this.resizeIsBeingListened=!0;$(window).on("resize."+this.cid,()=>{this.handleResize()})}}focusOnInlineEdit(){this.focusOnUploadButton()}focusOnUploadButton(){var e=this.$el.find(".attach-file-label");e.length&&e.focus()}handleResize(){var e=this.$el.width();this.$el.find("img.image-preview").css("maxWidth",e+"px")}getDetailPreview(e,t,i){if(!~this.previewTypeList.indexOf(t))return e;let s=this.previewSize;this.isListMode()&&(s=this.params.listPreviewSize||"small");var a=this.getBasePath()+"?entryPoint=image&size="+s+"&id="+i;let r=(this.imageSizes[s]||{})[1];this.isListMode()&&!this.params.listPreviewSize&&(r="");var o,a=$("<img>").attr("src",a).attr("alt",e).addClass("image-preview").css({maxWidth:(this.imageSizes[s]||{})[0],maxHeight:r});return(this.mode===this.MODE_LIST_LINK?(o="#"+this.model.entityType+"/view/"+this.model.id,$("<a>").attr("href",o)):$("<a>").attr("data-action","showImagePreview").attr("data-id",i).attr("title",e).attr("href",this.getImageUrl(i))).append(a).get(0).outerHTML}getEditPreview(e,t,i){return~this.previewTypeList.indexOf(t)?$("<img>").attr("src",this.getImageUrl(i,"small")).attr("title",e).attr("alt",e).attr("draggable","false").css({maxWidth:(this.imageSizes[this.previewSize]||{})[0],maxHeight:(this.imageSizes[this.previewSize]||{})[1]}).get(0).outerHTML:null}getValueForDisplay(){if(!this.isDetailMode()&&!this.isListMode())return"";let i=this.model.get(this.nameName);var s=this.model.get(this.typeName)||this.defaultType;let a=this.model.get(this.idName);if(!a)return!1;if(this.showPreview&&~this.previewTypeList.indexOf(s)){let e="";this.isListMode()&&this.params.listPreviewSize&&(e+="no-shrink");s=$("<div>").addClass("attachment-preview").addClass(e).append(this.getDetailPreview(i,s,a));let t="attachment-block-container";"large"===this.previewSize&&(t+=" attachment-block-container-large");"small"===this.previewSize&&(t+=" attachment-block-container-small");return $("<div>").addClass(t).append($("<div>").addClass("attachment-block attachment-block-preview").append(s)).get(0).outerHTML}s=document.createElement("div");s.classList.add("attachment-block");s.append((()=>{var e=document.createElement("span");e.classList.add("fas","fa-paperclip","text-soft","small");return e})(),(()=>{var e=document.createElement("a");e.target="_blank";e.textContent=i;e.href=this.getDownloadUrl(a);return e})());return s.outerHTML}getImageUrl(e,t){let i=this.getBasePath()+"?entryPoint=image&id="+e;t&&(i+="&size="+t);this.getUser().get("portalId")&&(i+="&portalId="+this.getUser().get("portalId"));return i}getDownloadUrl(e){let t=this.getBasePath()+"?entryPoint=download&id="+e;this.getUser().get("portalId")&&(t+="&portalId="+this.getUser().get("portalId"));return t}deleteAttachment(){let t=this.model.get(this.idName);var e={};e[this.idName]=null;e[this.nameName]=null;this.model.set(e);this.$attachment.empty();t&&this.model.isNew()&&this.getModelFactory().create("Attachment",e=>{e.id=t;e.destroy()})}setAttachment(e,t){var i={};i[this.idName]=e.id;i[this.nameName]=e.get("name");this.model.set(i,{ui:t})}getMaxFileSize(){let e=this.params.maxFileSize||0;var t=!this.getConfig().get("attachmentUploadChunkSize"),i=this.getConfig().get("attachmentUploadMaxSize")||0,s=this.getHelper().getAppParam("maxUploadSize")||0;(!e||e>i)&&(e=i);t&&e>s&&(e=s);return e}uploadFile(i){let o=!1,e=!1;var t=this.getMaxFileSize();t&&i.size>1024*t*1024&&(e=!0);if(e){t=this.translate("fieldMaxFileSizeError","messages").replace("{field}",this.getLabelText()).replace("{max}",t);this.showValidationMessage(t,".attachment-button label")}else{this.isUploading=!0;let r=new s.default;this.getModelFactory().create("Attachment",e=>{let t=this.addAttachmentBox(i.name,i.type),s=t.parent().find(".uploading-message"),a=(this.$el.find(".attachment-button").addClass("hidden"),{});t.find(".remove-attachment").on("click.uploading",()=>{o=!0;this.isUploading=!1;this.$el.find(".attachment-button").removeClass("hidden");this.$el.find("input.file").val(null);a.isCanceled=!0});e.set("role","Attachment");e.set("relatedType",this.model.entityType);e.set("field",this.name);this.handleUploadingFile(i).then(i=>{r.upload(i,e,{afterChunkUpload:e=>{var t=Math.floor(e/i.size*100)+"%";s.html(t)},afterAttachmentSave:e=>{t.attr("data-id",e.id)},mediator:a}).then(()=>{if(!o&&this.isUploading){this.setAttachment(e,!0);t.trigger("ready");this.isUploading=!1;setTimeout(()=>{if(!document.activeElement||"BODY"===document.activeElement.tagName){var e=this.$el.find(".preview a");e.focus()}},50)}}).catch(()=>{if(!a.isCanceled){t.remove();this.$el.find(".uploading-message").remove();this.$el.find(".attachment-button").removeClass("hidden");this.isUploading=!1}})})})}}handleUploadingFile(t){return new Promise(e=>e(t))}getBoxPreviewHtml(e,t,i){var s=$("<span>").text(e);if(!i)return s.get(0).outerHTML;if(this.showPreview){s=this.getEditPreview(e,t,i);if(s)return s}s=this.getBasePath()+"?entryPoint=download&id="+i;return $("<a>").attr("href",s).attr("target","_BLANK").text(e).get(0).outerHTML}addAttachmentBox(i,s,e){this.$attachment.empty();var a=$("<a>").attr("role","button").attr("tabindex","0").addClass("remove-attachment pull-right").append($("<span>").addClass("fas fa-times")),t=this.getBoxPreviewHtml(i,s,e);let r=$("<div>").addClass("gray-box").append(a).append($("<span>").addClass("preview").append($(t)));a=$("<div>").append(r);this.$attachment.append(a);if(!e){let t=$("<span>").addClass("small uploading-message").text(this.translate("Uploading..."));a.append(t);r.on("ready",()=>{var e=this.model.get(this.idName),e=this.getBoxPreviewHtml(i,s,e);r.find(".preview").html(e);t.html(this.translate("Ready"));r.find(".preview").find("img").length&&t.remove()})}return r}insertFromSource(e){var t=new i.default(this);t.insert({source:e,onInsert:e=>{e.forEach(e=>this.setAttachment(e))}})}fetch(){var e={};e[this.idName]=this.model.get(this.idName);return e}}e.default=r});define("views/fields/datetime",["exports","views/fields/date","moment"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{constructor(e){super(e)}type="datetime";editTemplate="fields/datetime/edit";validations=["required","datetime","after","before"];searchTypeList=["lastSevenDays","ever","isEmpty","currentMonth","lastMonth","nextMonth","currentQuarter","lastQuarter","currentYear","lastYear","today","past","future","lastXDays","nextXDays","olderThanXDays","afterXDays","on","after","before","between"];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"};data(){var e=super.data(),t=(e.date=e.time="",this.getDateTime().toDisplay(this.model.get(this.name)));if(t){t=this.splitDatetime(t);e.date=t[0];e.time=t[1]}return e}getDateStringValue(){if(this.mode===this.MODE_DETAIL&&!this.model.has(this.name))return-1;var t=this.model.get(this.name);if(!t)return this.mode===this.MODE_EDIT||this.mode===this.MODE_SEARCH||this.mode===this.MODE_LIST||this.mode===this.MODE_LIST_LINK?"":null;if(this.mode!==this.MODE_LIST&&this.mode!==this.MODE_DETAIL&&this.mode!==this.MODE_LIST_LINK)return this.getDateTime().toDisplay(t);{if(this.getConfig().get("readableDateFormatDisabled")||this.params.useNumericFormat)return this.getDateTime().toDisplay(t);let e=this.getDateTime().timeFormat;this.params.hasSeconds&&(e=e.replace(/:mm/,":mm:ss"));var t=this.getDateTime().toMoment(t),i=(0,a.default)().tz(this.getDateTime().timeZone||"UTC"),s=i.clone().startOf("day"),s={today:[s.unix(),s.add(1,"days").unix()],tomorrow:[s.unix(),s.add(1,"days").unix()],yesterday:[s.add(-3,"days").unix(),s.add(1,"days").unix()]};return t.unix()>=s.today[0]&&t.unix()<s.today[1]?this.translate("Today")+" "+t.format(e):t.unix()>s.tomorrow[0]&&t.unix()<s.tomorrow[1]?this.translate("Tomorrow")+" "+t.format(e):t.unix()>s.yesterday[0]&&t.unix()<s.yesterday[1]?this.translate("Yesterday")+" "+t.format(e):(s=this.getDateTime().getReadableDateFormat(),t.format("YYYY")===i.format("YYYY")?t.format(s)+" "+t.format(e):t.format(s+", YYYY")+" "+t.format(e))}}initTimepicker(){let e=this.$time;var t=this.element.closest(".modal-body");e.timepicker({step:this.params.minuteStep||30,scrollDefaultNow:!0,timeFormat:this.timeFormatMap[this.getDateTime().timeFormat],appendTo:t?$(t):"body"});e.parent().find("button.time-picker-btn").on("click",()=>{e.timepicker("show")})}setDefaultTime(){var e=(0,a.default)("2014-01-01 00:00").format(this.getDateTime().getDateTimeFormat())||"",e=this.splitDatetime(e);2===e.length&&this.$time.val(e[1])}splitDatetime(e){var t=(0,a.default)(e,this.getDateTime().getDateTimeFormat()),t=t.format(this.getDateTime().getDateFormat()),i=e.substr(t.length+1);return[t,i]}setup(){super.setup();this.on("remove",()=>this.destroyTimepicker());this.on("mode-changed",()=>this.destroyTimepicker())}destroyTimepicker(){this.$time&&this.$time[0]&&this.$time.timepicker("remove")}afterRender(){super.afterRender();if(this.mode===this.MODE_EDIT){this.$date=this.$element;let e=this.$time=this.$el.find("input.time-part");this.initTimepicker();this.$element.on("change.datetime",()=>{if(this.$element.val()&&!e.val()){this.setDefaultTime();this.trigger("change")}});let t=!1,i=!1,s=e.val();e.on("change",()=>{if(!t){if(i)return e.val(s),void 0;if(this.noneOption&&""===e.val()&&""!==this.$date.val())return e.val(this.noneOption),void 0;this.trigger("change");s=e.val()}t=!0;setTimeout(()=>t=!1,100)});e.on("timeFormatError",()=>{i=!0;setTimeout(()=>i=!1,50)})}}parse(e){return e?this.getDateTime().fromDisplay(e):null}fetch(){var e={},t=this.$date.val(),i=this.$time.val();let s=null;""!==t&&""!==i&&(s=this.parse(t+" "+i));e[this.name]=s;return e}validateDatetime(){if(-1===this.model.get(this.name)){var e=this.translate("fieldShouldBeDatetime","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}fetchSearch(){var e=super.fetchSearch();if(e){e.dateTime=!0;delete e.date}return e}onAfterChange(){}}e.default=s});define("views/fields/currency",["exports","views/fields/float","ui/select"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e)}type="currency";editTemplate="fields/currency/edit";detailTemplate="fields/currency/detail";detailTemplate1="fields/currency/detail-1";detailTemplate2="fields/currency/detail-2";detailTemplate3="fields/currency/detail-3";listTemplate="fields/currency/list";listTemplate1="fields/currency/list-1";listTemplate2="fields/currency/list-2";listTemplate3="fields/currency/list-3";detailTemplateNoCurrency="fields/currency/detail-no-currency";maxDecimalPlaces=3;validations=["required","number","range"];currencyAttribute;data(){var e=this.model.get(this.currencyFieldName)||this.getPreferences().get("defaultCurrency")||this.getConfig().get("defaultCurrency"),t=!this.isSingleCurrency||e!==this.defaultCurrency;return{...super.data(),currencyFieldName:this.currencyFieldName,currencyValue:e,currencyList:this.currencyList,currencySymbol:this.getMetadata().get(["app","currency","symbolMap",e])||"",multipleCurrencies:t,defaultCurrency:this.defaultCurrency}}setup(){super.setup();this.currencyFieldName=this.currencyAttribute??this.name+"Currency";this.defaultCurrency=this.getConfig().get("defaultCurrency");this.currencyList=this.getConfig().get("currencyList")||[this.defaultCurrency];this.decimalPlaces=this.getConfig().get("currencyDecimalPlaces");this.params.onlyDefaultCurrency&&(this.currencyList=[this.defaultCurrency]);this.isSingleCurrency=this.currencyList.length<=1;var e=this.currencyValue=this.model.get(this.currencyFieldName)||this.defaultCurrency;if(!this.currencyList.includes(e)){this.currencyList=Espo.Utils.clone(this.currencyList);this.currencyList.push(e)}}setupAutoNumericOptions(){this.autoNumericOptions={digitGroupSeparator:this.thousandSeparator||"",decimalCharacter:this.decimalMark,modifyValueOnWheel:!1,selectOnFocus:!1,decimalPlaces:this.decimalPlaces,allowDecimalPadding:!0,showWarnings:!1,formulaMode:!0};if(null===this.decimalPlaces){this.autoNumericOptions.decimalPlaces=this.decimalPlacesRawValue;this.autoNumericOptions.decimalPlacesRawValue=this.decimalPlacesRawValue;this.autoNumericOptions.allowDecimalPadding=!1}}getCurrencyFormat(){return this.getConfig().get("currencyFormat")||1}_getTemplateName(){if(this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST){let e;e=this.mode===this.MODE_LIST?"listTemplate"+this.getCurrencyFormat().toString():"detailTemplate"+this.getCurrencyFormat().toString();this.options.hideCurrency&&(e="detailTemplateNoCurrency");if(e in this)return this[e]}return super._getTemplateName()}formatNumber(e){return this.formatNumberDetail(e)}formatNumberDetail(e){if(null===e)return"";var t=this.decimalPlaces,i=(e=0===t?Math.round(e):t?Math.round(e*Math.pow(10,t))/Math.pow(10,t):Math.round(e*Math.pow(10,this.maxDecimalPlaces))/Math.pow(10,this.maxDecimalPlaces),e.toString().split("."));i[0]=i[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandSeparator);if(0===t)return i[0];if(t){let e=0;1<i.length?e=i[1].length:i[1]="";if(t&&e<t){var s=t-e;for(let e=0;e<s;e++)i[1]+="0"}}return i.join(this.decimalMark)}parse(e){e=""!==e?e:null;if(null===e)return null;e=e.split(this.thousandSeparator).join("");e=e.split(this.decimalMark).join(".");if(this.params.decimal){var t=this.params.scale||4,i=e.split("."),s=i[1]||"";s.length<t&&(e=i[0]+"."+s.padEnd(t,"0"))}this.params.decimal||(e=parseFloat(e));return e}afterRender(){super.afterRender();if(this.mode===this.MODE_EDIT){this.$currency=this.$el.find(`[data-name="${this.currencyFieldName}"]`);if(this.$currency.length){this.$currency.on("change",()=>{this.model.set(this.currencyFieldName,this.$currency.val(),{ui:!0})});i.default.init(this.$currency)}}}validateNumber(){if(!this.params.decimal)return this.validateFloat();var e=this.model.get(this.name);if(Number.isNaN(Number(e))){e=this.translate("fieldShouldBeNumber","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}fetch(){var e=this.$element.val().trim(),e=this.parse(e),t={};let i=this.$currency.length?this.$currency.val():this.defaultCurrency;null===e&&(i=null);t[this.name]=e;t[this.currencyFieldName]=i;return t}}e.default=a});define("views/fields/bool",["exports","views/fields/base","ui/select"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e)}type="bool";listTemplate="fields/bool/list";detailTemplate="fields/bool/detail";editTemplate="fields/bool/edit";searchTemplate="fields/bool/search";validations=[];initialSearchIsNotIdle=!0;data(){var e=super.data();e.valueIsSet=this.model.has(this.name);return e}afterRender(){super.afterRender();if(this.mode===this.MODE_SEARCH){this.$element.on("change",()=>{this.trigger("change")});i.default.init(this.$element)}}fetch(){var e=this.mainInputElement,e=null==e?void 0:e.checked,t={};t[this.name]=e;return t}fetchSearch(){var e=this.$element.val();return e?"any"===e?{type:"or",value:[{type:"isTrue",attribute:this.name},{type:"isFalse",attribute:this.name}],data:{type:e}}:{type:e,data:{type:e}}:null}getSearchType(){return this.getSearchParamsData().type||this.searchParams.type||"isTrue"}}e.default=a});define("views/fields/attachment-multiple",["exports","views/fields/base","helpers/file-upload","helpers/misc/attachment-insert-from-source"],function(e,t,c,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);c=s(c);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e)}type="attachmentMultiple";listTemplate="fields/attachments-multiple/list";detailTemplate="fields/attachments-multiple/detail";editTemplate="fields/attachments-multiple/edit";searchTemplate="fields/link-multiple/search";previewSize="medium";nameHashName;idsName;nameHash;foreignScope;accept=null;showPreviews=!0;showPreviewsInListMode=!1;initialSearchIsNotIdle=!0;validations=["ready","required","maxCount"];searchTypeList=["isNotEmpty","isEmpty"];uploadedIdMap;events={"click a.remove-attachment":function(e){var t=$(e.currentTarget).parent(),i=t.attr("data-id");i&&this.deleteAttachment(i);t.parent().remove();this.$el.find("input.file").val(null);setTimeout(()=>this.focusOnUploadButton(),10)},"change input.file":function(e){var t=$(e.currentTarget),i=e.currentTarget.files;this.uploadFiles(i);e.target.value=null;t.replaceWith(t.clone(!0))},'click a.action[data-action="insertFromSource"]':function(e){var t=$(e.currentTarget).data("name");this.insertFromSource(t)},'click a[data-action="showImagePreview"]':function(e){e.preventDefault();var t=$(e.currentTarget).data("id"),i=this.model.get(this.idsName)||[];let s=this.model.get(this.typeHashName)||{},a=[],r=(i.forEach(e=>{this.isTypeIsImage(s[e])&&a.push(e)}),[]);a.forEach(e=>{r.push({id:e,name:this.nameHash[e]})});this.createView("preview","views/modals/image-preview",{id:t,model:this.model,name:this.nameHash[t],imageList:r},e=>{e.render()})},"keydown label.attach-file-label":function(e){var t=Espo.Utils.getKeyFromKeyEvent(e);if("Enter"===t){t=this.$el.find("input.file").get(0);t.click()}}};data(){var e=this.model.get(this.idsName),e={...super.data(),idValues:this.model.get(this.idsName),idValuesString:e?e.join(","):"",nameHash:this.model.get(this.nameHashName),foreignScope:this.foreignScope,valueIsSet:this.model.has(this.idsName),acceptAttribute:this.acceptAttribute};if(this.mode===this.MODE_EDIT){e.fileSystem=~this.sourceList.indexOf("FileSystem");e.sourceList=this.sourceList}return e}setup(){this.nameHashName=this.name+"Names";this.typeHashName=this.name+"Types";this.idsName=this.name+"Ids";this.foreignScope="Attachment";this.previewSize=this.options.previewSize||this.params.previewSize||this.previewSize;this.previewTypeList=this.getMetadata().get(["app","image","previewFileTypeList"])||[];this.imageSizes=this.getMetadata().get(["app","image","sizes"])||{};this.nameHash=_.clone(this.model.get(this.nameHashName))||{};"showPreviews"in this.params&&(this.showPreviews=this.params.showPreviews);"accept"in this.params&&(this.accept=this.params.accept);this.accept&&this.accept.length&&(this.acceptAttribute=this.accept.join(", "));let i=this.getMetadata().get(["clientDefs","Attachment","sourceDefs"])||{};this.sourceList=Espo.Utils.clone(this.params.sourceList||[]);this.sourceList=this.sourceList.concat(this.getMetadata().get(["clientDefs","Attachment","generalSourceList"])||[]).filter((e,t,i)=>i.indexOf(e)===t).filter(e=>{var t=i[e]||{};if(t.accessDataList&&!Espo.Utils.checkAccessDataList(t.accessDataList,this.getAcl(),this.getUser()))return!1;if(t.configCheck){t=t.configCheck.split(".");if(!this.getConfig().getByPath(t))return!1}return!0});this.listenTo(this.model,"change:"+this.nameHashName,()=>{this.nameHash=_.clone(this.model.get(this.nameHashName))||{}});this.on("remove",()=>{this.resizeIsBeingListened&&$(window).off("resize."+this.cid);this.uploadedIdMap={}});this.on("inline-edit-off",()=>{this.isUploading=!1});this.recordHelper&&this.listenTo(this.recordHelper,"upload-files:"+this.name,e=>{this.isEditMode()&&this.uploadFiles(e)});this.uploadedIdMap={}}setupSearch(){this.addHandler("change","select.search-type",(e,t)=>{this.handleSearchType(t.value);this.trigger("change")})}focusOnInlineEdit(){this.focusOnUploadButton()}focusOnUploadButton(){this.$el.find(".attach-file-label").focus()}empty(){this.clearIds();this.$attachments.empty()}handleResize(){var e=this.$el.width();this.$el.find("img.image-preview").css("maxWidth",e+"px")}deleteAttachment(t){this.removeId(t);this.model.isNew()&&this.getModelFactory().create("Attachment",e=>{e.id=t;e.destroy()})}getImageUrl(e,t){let i=this.getBasePath()+"?entryPoint=image&id="+e;t&&(i+="&size="+t);this.getUser().get("portalId")&&(i+="&portalId="+this.getUser().get("portalId"));return i}getDownloadUrl(e){let t=this.getBasePath()+"?entryPoint=download&id="+e;this.getUser().get("portalId")&&(t+="&portalId="+this.getUser().get("portalId"));return t}removeId(e){var t=_.clone(this.model.get(this.idsName)||[]),i=t.indexOf(e);t.splice(i,1);this.model.set(this.idsName,t);i=_.clone(this.model.get(this.nameHashName)||{});delete i[e];this.model.set(this.nameHashName,i);t=_.clone(this.model.get(this.typeHashName)||{});delete t[e];this.model.set(this.typeHashName,t)}clearIds(e){e=e||!1;this.model.set(this.idsName,[],{silent:e});this.model.set(this.nameHashName,{},{silent:e});this.model.set(this.typeHashName,{},{silent:e})}pushAttachment(e,t){var i=_.clone(this.model.get(this.idsName)||[]);i.push(e.id);this.model.set(this.idsName,i,{ui:t});i=_.clone(this.model.get(this.typeHashName)||{});i[e.id]=e.get("type");this.model.set(this.typeHashName,i,{ui:t});i=_.clone(this.model.get(this.nameHashName)||{});i[e.id]=e.get("name");this.model.set(this.nameHashName,i,{ui:t});this.uploadedIdMap[e.id]=!0}getEditPreview(e,t,i){var s;return~this.previewTypeList.indexOf(t)?(s=i in this.uploadedIdMap?void 0:"small",$("<img>").attr("src",this.getImageUrl(i,s)).attr("title",e).attr("alt",e).attr("draggable","false").css({maxWidth:(this.imageSizes.small||{})[0],maxHeight:(this.imageSizes.small||{})[1]}).get(0).outerHTML):null}getBoxPreviewHtml(e,t,i){var s=$("<span>").text(e);if(!i)return s.get(0).outerHTML;if(this.showPreviews){s=this.getEditPreview(e,t,i);if(s)return s}s=this.getBasePath()+"?entryPoint=download&id="+i;return $("<a>").attr("href",s).attr("target","_BLANK").text(e).get(0).outerHTML}addAttachmentBox(i,s,e){var t=this.$attachments,a=$("<a>").attr("role","button").attr("tabindex","0").addClass("remove-attachment pull-right").append($("<span>").addClass("fas fa-times")),r=this.getBoxPreviewHtml(i,s,e);let o=$("<div>").addClass("gray-box").append(a).append($("<span>").addClass("preview").append($(r)));a=$("<div>").append(o);t.append(a);if(e)o.attr("data-id",e);else{let t=$("<span>").addClass("small uploading-message").text(this.translate("Uploading..."));a.append(t);o.on("ready",()=>{t.html(this.translate("Ready"));var e=o.attr("data-id"),e=this.getBoxPreviewHtml(i,s,e);o.find(".preview").html(e);o.find(".preview").find("img").length&&t.remove()})}return o}showValidationMessage(e,t,i){var s=this.$el.find("label"),a=s.attr("title");s.attr("title","");super.showValidationMessage(e,t,i);s.attr("title",a)}getMaxFileSize(){let e=this.params.maxFileSize||0;var t=!this.getConfig().get("attachmentUploadChunkSize"),i=this.getConfig().get("attachmentUploadMaxSize")||0,s=this.getHelper().getAppParam("maxUploadSize")||0;(!e||e>i)&&(e=i);t&&e>s&&(e=s);return e}uploadFiles(i){let d=0,h=0,t=!1;var s=this.getMaxFileSize();if(s)for(let e=0;e<i.length;e++){var a=i[e];a.size>1024*s*1024&&(t=!0)}if(t){var e=this.translate("fieldMaxFileSizeError","messages").replace("{field}",this.getLabelText()).replace("{max}",s.toString());this.showValidationMessage(e,"label")}else{this.isUploading=!0;this.getModelFactory().create("Attachment",r=>{let o=[];var t=[];let n=[];for(let e=0;e<i.length;e++){t.push(i[e]);h++}let l=new c.default;t.forEach(i=>{let t=this.addAttachmentBox(i.name,i.type),s=t.parent().find(".uploading-message"),e={},a=(t.find(".remove-attachment").on("click.uploading",()=>{o.push(a.cid);h--;if(d===h){this.isUploading=!1;h&&this.afterAttachmentsUploaded.call(this)}e.isCanceled=!0}),r.clone());a.set("role","Attachment");a.set("parentType",this.model.entityType);a.set("field",this.name);l.upload(i,a,{afterChunkUpload:e=>{var t=Math.floor(e/i.size*100)+"%";s.html(t)},afterAttachmentSave:e=>{t.attr("data-id",e.id)},mediator:e}).then(()=>{if(-1===o.indexOf(a.cid)){this.pushAttachment(a,!0);t.attr("data-id",a.id);t.trigger("ready");d++;n.push(a);if(d===h&&this.isUploading){this.model.trigger("attachment-uploaded:"+this.name,n);this.afterAttachmentsUploaded.call(this);this.isUploading=!1;setTimeout(()=>{document.activeElement&&"BODY"!==document.activeElement.tagName||this.focusOnUploadButton()},50)}}}).catch(()=>{if(!e.isCanceled){t.remove();s.remove();h--;h||(this.isUploading=!1);if(d===h&&this.isUploading){this.isUploading=!1;this.afterAttachmentsUploaded.call(this)}}})})})}}afterAttachmentsUploaded(){}afterRender(){if(this.mode===this.MODE_EDIT){this.$attachments=this.$el.find("div.attachments");var e=this.model.get(this.idsName)||[];let s=this.model.get(this.nameHashName),a=this.model.get(this.typeHashName)||{};e.forEach(e=>{if(s){var t=s[e],i=a[e]||null;this.addAttachmentBox(t,i,e)}});this.$el.off("drop");this.$el.off("dragover");this.$el.off("dragleave");this.$el.on("drop",e=>{e.preventDefault();e.stopPropagation();var t=e.originalEvent;t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length&&this.uploadFiles(t.dataTransfer.files)});this.$el.get(0).addEventListener("dragover",e=>{e.preventDefault()});this.$el.get(0).addEventListener("dragleave",e=>{e.preventDefault()})}if(this.mode===this.MODE_SEARCH){e=this.$el.find("select.search-type").val();this.handleSearchType(e)}if(this.mode===this.MODE_DETAIL&&"large"===this.previewSize){this.handleResize();this.resizeIsBeingListened=!0;$(window).on("resize."+this.cid,()=>{this.handleResize()})}}isTypeIsImage(e){return!!~this.previewTypeList.indexOf(e)}getDetailPreview(e,t,i){return(this.isTypeIsImage(t)?$("<a>").attr("data-action","showImagePreview").attr("data-id",i).attr("title",e).attr("href",this.getImageUrl(i)).append($("<img>").attr("src",this.getImageUrl(i,this.previewSize)).addClass("image-preview").attr("alt",e).css({maxWidth:(this.imageSizes[this.previewSize]||{})[0],maxHeight:(this.imageSizes[this.previewSize]||{})[1]})):$("<span>").text(e)).get(0).outerHTML}getValueForDisplay(){if(this.isDetailMode()||this.isListMode()){var t,i=this.nameHash,s=this.model.get(this.typeHashName)||{},a=this.model.get(this.idsName)||[],r=[],o=[];for(t of a){var n=s[t]||!1,l=i[t];this.showPreviews&&this.previewTypeList.includes(n)&&(this.isDetailMode()||this.isListMode()&&this.showPreviewsInListMode)?r.push($("<div>").addClass("attachment-preview").append(this.getDetailPreview(l,n,t))):o.push($("<div>").addClass("attachment-block").append($("<span>").addClass("fas fa-paperclip text-soft small")," ",$("<a>").attr("href",this.getDownloadUrl(t)).attr("target","_blank").text(l)))}let e=null;"large"===this.previewSize&&(e="attachment-block-container-large");"small"===this.previewSize&&(e="attachment-block-container-small");return 0===o.length&&0===r.length?"":(a=$("<div>").append($("<div>").addClass("attachment-block-container").addClass(e).append(r)).append(o),a.get(0).innerHTML)}}insertFromSource(e){var t=new i.default(this);t.insert({source:e,onInsert:e=>{e.forEach(e=>this.pushAttachment(e))}})}validateRequired(){if(this.isRequired()&&0===(this.model.get(this.idsName)||[]).length){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,"label");return!0}}validateReady(){if(this.isUploading){var e=this.translate("fieldIsUploading","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,"label");return!0}}validateMaxCount(){var e=this.params.maxCount;if(!e)return!1;var t=this.model.get(this.idsName)||[];if(0===t.length)return!1;if(t.length<=e)return!1;t=this.translate("fieldExceedsMaxCount","messages").replace("{field}",this.getLabelText()).replace("{maxCount}",e.toString());this.showValidationMessage(t,"label");return!0}fetch(){var e={};e[this.idsName]=this.model.get(this.idsName)||[];return e}handleSearchType(e){this.$el.find("div.link-group-container").addClass("hidden")}fetchSearch(){var e=this.$el.find("select.search-type").val();return"isEmpty"===e?{type:"isNotLinked",data:{type:e}}:"isNotEmpty"===e?{type:"isLinked",data:{type:e}}:null}}e.default=a});define("views/fields/array",["exports","views/fields/base","helpers/reg-exp-pattern","ui/multi-select","views/modal","model","views/record/edit-for-modal","views/fields/varchar"],function(e,t,s,a,i,r,o,n){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=l(t);s=l(s);a=l(a);i=l(i);r=l(r);o=l(o);n=l(n);function l(e){return e&&e.__esModule?e:{default:e}}class d extends t.default{constructor(e){super(e)}type="array";listTemplate="fields/array/list";listLinkTemplate="fields/array/list-link";detailTemplate="fields/array/detail";editTemplate="fields/array/edit";searchTemplate="fields/array/search";searchTypeList=["anyOf","noneOf","allOf","isEmpty","isNotEmpty"];maxItemLength=null;validations=["required","maxCount"];MAX_ITEM_LENGTH=100;addItemModalView="views/modals/array-field-add";itemDelimiter=":,:";matchAnyWord=!0;translatedOptions=null;noDragHandle=!1;selected;data(){let t=[];(this.selected||[]).forEach(e=>{t.push(this.getItemHtml(e||""))});return{...super.data(),selected:this.selected,translatedOptions:this.translatedOptions,hasAdd:!!this.params.options&&!this.params.keepItems,keepItems:this.params.keepItems,itemHtmlList:t,isEmpty:0===(this.selected||[]).length,valueIsSet:this.model.has(this.name),maxItemLength:this.maxItemLength||this.MAX_ITEM_LENGTH,allowCustomOptions:this.allowCustomOptions}}events={'click [data-action="removeValue"]':function(e){var t=$(e.currentTarget).attr("data-value").toString();this.removeValue(t);this.focusOnElement()},'click [data-action="showAddModal"]':function(){this.actionAddItem()}};setup(){super.setup();this.addActionHandler("editItem",(e,t)=>{this.actionEditItem(t.dataset.value)});this.noEmptyString=this.params.noEmptyString;null!=this.params.maxItemLength&&(this.maxItemLength=this.params.maxItemLength);this.maxItemLength=this.maxItemLength||this.MAX_ITEM_LENGTH;this.listenTo(this.model,"change:"+this.name,()=>{this.selected=Espo.Utils.clone(this.model.get(this.name))||[]});this.selected=Espo.Utils.clone(this.model.get(this.name)||[]);"[object Array]"!==Object.prototype.toString.call(this.selected)&&(this.selected=[]);this.styleMap=this.params.style||{};let e=this.params.optionsPath;var t=this.params.optionsReference;if(!e&&t){var[t,i]=t.split(".");e=`entityDefs.${t}.fields.${i}.options`;0===Object.keys(this.styleMap).length&&(this.styleMap=this.getMetadata().get(`entityDefs.${t}.fields.${i}.style`)||{})}e&&(this.params.options=Espo.Utils.clone(this.getMetadata().get(e))||[]);this.setupOptions();"translatedOptions"in this.options&&(this.translatedOptions=this.options.translatedOptions);"translatedOptions"in this.params&&(this.translatedOptions=this.params.translatedOptions);this.translatedOptions||this.setupTranslation();this.displayAsLabel=this.params.displayAsLabel||this.displayAsLabel;this.displayAsList=this.params.displayAsList||this.displayAsList;if(this.params.isSorted&&this.translatedOptions){this.params.options=Espo.Utils.clone(this.params.options);this.params.options=this.params.options.sort((e,t)=>(this.translatedOptions[e]||e).localeCompare(this.translatedOptions[t]||t))}this.options.customOptionList&&this.setOptionList(this.options.customOptionList,!0);!this.params.allowCustomOptions&&this.params.options||(this.allowCustomOptions=!0);!1===this.params.allowCustomOptions&&(this.allowCustomOptions=!1);"array"===this.type&&this.validations.push("noInputValue")}focusOnElement(){var e=this.$el.find('button[data-action="showAddModal"]');if(e[0])e[0].focus({preventScroll:!0});else{e=this.$el.find("input.main-element");e[0]&&e[0].focus({preventScroll:!0})}}setupSearch(){this.events["change select.search-type"]=e=>{this.handleSearchType($(e.currentTarget).val())}}handleSearchType(e){var t=this.$el.find("div.input-container");~["anyOf","noneOf","allOf"].indexOf(e)?t.removeClass("hidden"):t.addClass("hidden")}setupTranslation(){let i,e=this.params.translation;var t=this.params.optionsReference;if(!e&&t){var[t,s]=t.split(".");e=t+".options."+s}this.translatedOptions=null;if(this.params.options){i=e?this.getLanguage().translatePath(e):this.translate(this.name,"options",this.model.name);let t={};this.params.options.forEach(e=>{"object"==typeof i&&e in i?t[e]=i[e]:t[e]=e});this.translatedOptions=t}}setupOptions(){}setOptionList(i,e){var t=this.params.options;this.originalOptionList||(this.originalOptionList=this.params.options);this.params.options=Espo.Utils.clone(i);t=!_(t).isEqual(i);if(this.isEditMode()&&!e&&t){let t=[];this.selected.forEach(e=>{~i.indexOf(e)&&t.push(e)});this.selected=t;if(this.isRendered()){this.reRender();this.trigger("change")}else this.once("after:render",()=>{this.trigger("change")})}}setTranslatedOptions(e){this.translatedOptions=e}resetOptionList(){if(this.originalOptionList){var e=this.params.options,e=(this.params.options=Espo.Utils.clone(this.originalOptionList),!_(e).isEqual(this.originalOptionList));this.isEditMode()&&e&&this.isRendered()&&this.reRender()}}controlAddItemButton(){var e=this.$select;if(e&&e.get(0)){e=e.val().toString().trim();!e&&this.params.noEmptyString?this.$addButton.addClass("disabled").attr("disabled","disabled"):this.$addButton.removeClass("disabled").removeAttr("disabled")}}afterRender(){if(this.isEditMode()){this.$list=this.$el.find(".list-group");let i=this.$select=this.$el.find(".select");if(this.allowCustomOptions){this.$addButton=this.$el.find('button[data-action="addItem"]');this.$addButton.on("click",()=>{var e=i.val().toString();this.addValueFromUi(e);this.focusOnElement()});i.on("input",()=>this.controlAddItemButton());i.on("keydown",e=>{var t=Espo.Utils.getKeyFromKeyEvent(e);if("Enter"===t){t=i.val().toString();this.addValueFromUi(t)}});this.controlAddItemButton()}this.$list.sortable({stop:()=>{this.fetchFromDom();this.trigger("change")},distance:5,cancel:'input,textarea,button,select,option,a[role="button"]',cursor:"grabbing",handle:this.noDragHandle?void 0:".drag-handle"})}this.isSearchMode()&&this.renderSearch()}addValueFromUi(t){t=t.trim();if(!this.noEmptyString||""!==t){if(this.params.pattern){var i=new s.default;let e=i.validate(this.params.pattern,t,this.name,this.entityType);if(e)return setTimeout(()=>this.showValidationMessage(e.message,"input.select"),10),void 0}this.addValue(t);this.$select.val("");this.controlAddItemButton()}}renderSearch(){this.$element=this.$el.find(".main-element");var e=this.getSearchParamsData().valueList||this.searchParams.valueFront||[];this.$element.val(e.join(this.itemDelimiter));let i=[];(this.params.options||[]).forEach(e=>{let t=this.getLanguage().translateOption(e,this.name,this.scope);this.translatedOptions&&e in this.translatedOptions&&(t=this.translatedOptions[e]);""!==t&&i.push({value:e,text:t,style:this.styleMap[e]||void 0})});e.filter(e=>!(this.params.options||[]).includes(e)).forEach(e=>{i.push({value:e,text:e})});e={items:i,delimiter:this.itemDelimiter,matchAnyWord:this.matchAnyWord,allowCustomOptions:this.allowCustomOptions,create:e=>({value:e,text:e})};a.default.init(this.$element,e);this.$el.find(".selectize-dropdown-content").addClass("small");e=this.$el.find("select.search-type").val();this.handleSearchType(e);this.$el.find("select.search-type").on("change",()=>{this.trigger("change")});this.$element.on("change",()=>{this.trigger("change")})}fetchFromDom(){let s=[];this.$el.find(".list-group .list-group-item").each((e,t)=>{var i=$(t).attr("data-value").toString();s.push(i)});this.selected=s}getValueForDisplay(){var e=this.selected.map(e=>{let t=null;null!==this.translatedOptions&&e in this.translatedOptions&&(t=this.translatedOptions[e]);null===t&&(t=e);""===t&&(t=this.translate("None"));var i=this.styleMap[e]||"default";if(this.displayAsLabel){let e="label label-md label-"+i;"state"===this.params.labelType&&(e+=" label-state");return $("<span>").addClass(e).text(t).get(0).outerHTML}return(i&&"default"!==i?$("<span>").addClass("text-"+i):$("<span>")).text(t).get(0).outerHTML});if(this.displayAsList){if(!e.length)return"";let t="multi-enum-item-container";this.displayAsLabel&&(t+=" multi-enum-item-label-container");return e.map(e=>$("<div>").addClass(t).html(e).get(0).outerHTML).join("")}return this.displayAsLabel?e.join(" "):e.join(", ")}getItemHtml(t){if(null!==this.translatedOptions)for(var e in this.translatedOptions)if(this.translatedOptions[e]===t){t=e;break}t=t.toString();let i=this.translatedOptions&&t in this.translatedOptions?this.translatedOptions[t].toString():t;var s=document.createElement("div");s.className="list-group-item";s.dataset.value=t;s.style.cursor="default";if(!this.params.keepItems){var a=document.createElement("a");a.role="button";a.tabIndex=0;a.classList.add("pull-right");a.dataset.value=t;a.dataset.action="removeValue";a.append((()=>{var e=document.createElement("span");e.className="fas fa-times";return e})());s.append(a)}s.append((()=>{var e=document.createElement("span");e.className="drag-handle";e.append((()=>{var e=document.createElement("span");e.className="fas fa-grip fa-sm";return e})());return e})());this.params.itemsEditable&&this.allowCustomOptions&&s.append((()=>{var e=document.createElement("span");e.className="item-button";e.append((()=>{var e=document.createElement("a");e.role="button";e.tabIndex=0;e.dataset.value=t;e.dataset.action="editItem";e.append((()=>{var e=document.createElement("span");e.className="fas fa-pencil-alt fa-sm";return e})());return e})());return e})());s.append((()=>{var e=document.createElement("span");e.classList.add("text");e.textContent=i;return e})());return s.outerHTML}addValue(e){if(-1===this.selected.indexOf(e)){var t=this.getItemHtml(e);this.$list.append(t);this.selected.push(e);this.trigger("change")}}removeValue(e){var t=CSS.escape(e),t=(this.$list.children('[data-value="'+t+'"]').remove(),this.selected.indexOf(e));this.selected.splice(t,1);this.trigger("change")}fetch(){var e={};let t=Espo.Utils.clone(this.selected||[]);this.params.isSorted&&this.translatedOptions&&(t=t.sort((e,t)=>(this.translatedOptions[e]||e).localeCompare(this.translatedOptions[t]||t)));e[this.name]=t;return e}fetchSearch(){var e=this.$el.find("select.search-type").val()||"anyOf";let t;if(~["anyOf","noneOf","allOf"].indexOf(e)){t=this.$element.val().split(this.itemDelimiter);1===t.length&&""===t[0]&&(t=[]);if(0===t.length){if("anyOf"===e)return{type:"any",data:{type:e,valueList:t}};if("noneOf"===e)return{type:"any",data:{type:e,valueList:t}};if("allOf"===e)return{type:"any",data:{type:e,valueList:t}}}}if("anyOf"===e){var i={type:"arrayAnyOf",value:t,data:{type:"anyOf",valueList:t}};t.length||(i.value=null);return i}if("noneOf"===e)return{type:"arrayNoneOf",value:t,data:{type:"noneOf",valueList:t}};if("allOf"!==e)return"isEmpty"===e?{type:"arrayIsEmpty",data:{type:"isEmpty"}}:"isNotEmpty"===e?{type:"arrayIsNotEmpty",data:{type:"isNotEmpty"}}:null;i={type:"arrayAllOf",value:t,data:{type:"allOf",valueList:t}};t.length||(i.value=null);return i}validateRequired(){if(this.isRequired()){var e=this.model.get(this.name);if(!e||0===e.length){e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,".array-control-container");return!0}}return!1}validateMaxCount(){if(this.params.maxCount){var e=this.model.get(this.name)||[];if(e.length>this.params.maxCount){e=this.translate("fieldExceedsMaxCount","messages").replace("{field}",this.getLabelText()).replace("{maxCount}",this.params.maxCount.toString());this.showValidationMessage(e,".array-control-container");return!0}}return!1}getSearchType(){return this.getSearchParamsData().type||"anyOf"}getAddItemModalOptions(){let t=[];this.params.options.forEach(e=>{~this.selected.indexOf(e)||t.push(e)});return{options:t,translatedOptions:this.translatedOptions}}actionAddItem(){return this.createView("dialog",this.addItemModalView,this.getAddItemModalOptions(),t=>{t.render();t.once("add",e=>{this.addValue(e);t.close()});t.once("add-mass",e=>{e.forEach(e=>this.addValue(e));t.close()})})}async actionEditItem(i){var e=new h({value:i,required:this.noEmptyString,maxLength:this.maxItemLength,onApply:async e=>{var t=this.selected.findIndex(e=>e===i);if(!(t<0)){this.selected[t]=e.value;this.selected=this.selected.filter((e,t)=>this.selected.indexOf(e)===t);await this.reRender();this.trigger("change")}}});await this.assignView("dialog",e);await e.render()}validateNoInputValue(){if(!this.element)return!1;var e=this.element.querySelector("input.select");if(!(e instanceof HTMLInputElement))return!1;if(!e.value)return!1;e=this.translate("arrayInputNotEmpty","messages");this.showValidationMessage(e,"input.select");return!0}}e.default=d;class h extends i.default{templateContent=`
|
||
<div class="record no-side-margin">{{{record}}}</div>
|
||
`;recordView;constructor(e){super(e);this.options=e}setup(){this.buttonList=[{name:"apply",label:"Apply",style:"danger",onClick:()=>this.actionApply()},{name:"cancel",label:"Cancel",onClick:()=>this.actionCancel()}];this.shortcutKeys={"Control+Enter":()=>this.actionApply()};this.headerText=this.translate("Edit Item");this.model=new r.default({value:this.options.value});this.recordView=new o.default({model:this.model,detailLayout:[{rows:[[{view:new n.default({name:"value",labelText:this.translate("Value"),params:{required:this.options.required,maxLength:this.options.maxLength}})},!1]]}]});this.assignView("record",this.recordView)}actionApply(){var e=this.recordView.processFetch();if(e){e=this.model.attributes.value??"";this.options.onApply({value:e});this.close()}}}});define("views/email/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{sideView="views/email/record/detail-side";duplicateAction=!1;layoutNameConfigure(){if(!this.model.isNew()){var t=this.model.get("status");if("Draft"===t)this.layoutName="composeSmall";else{let e=!1;"Sent"===t&&(e=!0);"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}}}init(){super.init();this.layoutNameConfigure()}setup(){super.setup();["Archived","Sent"].includes(this.model.get("status"))&&(this.shortcutKeyCtrlEnterAction="save");this.addButton({name:"sendFromDetail",label:"Send",hidden:!0,onClick:()=>this.actionSendFromDetail()});this.dropdownEditItemList.push({name:"send",label:"Send",onClick:()=>this.actionSendFromDetail()});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,{sync:!0});this.listenTo(this.model,"sync",()=>{this.model.get("isRead")||"Draft"===this.model.get("status")||this.model.set("isRead",!0,{sync:!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")});if(this.model.attributes.isUsers){this.addDropdownItem({label:"Mark as Important",name:"markAsImportant",hidden:this.model.get("isImportant"),groupIndex:1});this.addDropdownItem({label:"Unmark Importance",name:"markAsNotImportant",hidden:!this.model.get("isImportant"),groupIndex:1});this.addDropdownItem({label:"Move to Trash",name:"moveToTrash",hidden:this.isInTrash(),groupIndex:2});this.addDropdownItem({label:"Retrieve from Trash",name:"retrieveFromTrash",hidden:!this.isInTrash(),groupIndex:2});this.addDropdownItem({labelTranslation:"Email.actions.moveToArchive",name:"moveToArchive",groupIndex:2,hidden:this.isInArchive(),onClick:()=>this.actionMoveToArchive()});this.addDropdownItem({label:"Move to Folder",name:"moveToFolder",groupIndex:2})}else if(this.model.attributes.groupFolderId){this.addDropdownItem({label:"Move to Trash",name:"moveToTrash",hidden:this.isInTrash(),groupIndex:2});this.addDropdownItem({label:"Retrieve from Trash",name:"retrieveFromTrash",hidden:!this.isInTrash(),groupIndex:2});this.addDropdownItem({labelTranslation:"Email.actions.moveToArchive",name:"moveToArchive",groupIndex:2,hidden:this.isInArchive()||this.isInTrash(),onClick:()=>this.actionMoveToArchive()});this.addDropdownItem({label:"Move to Folder",name:"moveToFolder",groupIndex:2,hidden:this.isInTrash()})}else this.addDropdownItem({label:"Move to Folder",name:"moveToFolder",groupIndex:2});this.addDropdownItem({label:"Show Plain Text",name:"showBodyPlain",hidden:!(this.model.get("isHtml")&&this.model.get("bodyPlain")),groupIndex:7});this.addDropdownItem({label:"Print",name:"print",groupIndex:7});this.listenTo(this.model,"change:isImportant",()=>{if(this.model.get("isImportant")){this.hideActionItem("markAsImportant");this.showActionItem("markAsNotImportant")}else{this.hideActionItem("markAsNotImportant");this.showActionItem("markAsImportant")}});this.listenTo(this.model,"change:inTrash change:groupStatusFolder",()=>{if(this.isInTrash()){this.hideActionItem("moveToTrash");this.showActionItem("retrieveFromTrash")}else{this.hideActionItem("retrieveFromTrash");this.showActionItem("moveToTrash")}});this.listenTo(this.model,"change:inArchive change:groupStatusFolder",()=>{this.isInArchive()?this.hideActionItem("moveToArchive"):this.showActionItem("moveToArchive")});this.handleTasksField();this.listenTo(this.model,"change:tasksIds",()=>this.handleTasksField());this.getAcl().checkScope("User")&&this.addDropdownItem({label:"View Users",name:"viewUsers"});this.setFieldReadOnly("replied");if("Draft"===this.model.get("status")){this.setFieldReadOnly("dateSent");this.controlSelectTemplateField();this.on("after:mode-change",()=>this.controlSelectTemplateField())}if(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(){var e=this.model.get("status");if("Draft"===e){this.showActionItem("send");this.showActionItem("sendFromDetail")}else{this.hideActionItem("sendFromDetail");this.hideActionItem("send")}}actionSaveDraft(){this.actionSaveAndContinueEditing()}actionMarkAsImportant(){Espo.Ajax.postRequest("Email/inbox/important",{id:this.model.id});this.model.set("isImportant",!0,{sync:!0})}actionMarkAsNotImportant(){Espo.Ajax.deleteRequest("Email/inbox/important",{id:this.model.id});this.model.set("isImportant",!1,{sync:!0})}actionMoveToTrash(){Espo.Ajax.postRequest("Email/inbox/inTrash",{id:this.model.id}).then(()=>{Espo.Ui.warning(this.translate("Moved to Trash","labels","Email"))});this.model.attributes.groupFolderId?this.model.set("groupStatusFolder","Trash",{sync:!0}):this.model.set("inTrash",!0,{sync:!0});this.model.collection&&this.model.collection.trigger("moving-to-trash",this.model.id,!0)}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,{sync:!0});this.model.attributes.groupFolderId&&this.model.set("groupStatusFolder",null,{sync:!0});this.model.collection&&this.model.collection.trigger("retrieving-from-trash",this.model.id,!0)}actionMoveToFolder(){let e=void 0;this.isInArchive()||this.isInTrash()?this.isInArchive()&&(e="archive"):this.model.attributes.groupFolderId?e="group:"+this.model.attributes.groupFolderId:this.model.attributes.folderId&&(e=this.model.attributes.folderId);this.createView("dialog","views/email-folder/modals/select-folder",{headerText:this.translate("Move to Folder","labels","Email"),isGroup:!!this.model.attributes.groupFolderId||!this.model.attributes.isUsers,noArchive:!this.model.attributes.groupFolderId&&!this.model.attributes.isUsers,currentFolderId:e},e=>{e.render();this.listenToOnce(e,"select",e=>{this.clearView("dialog");Espo.Ajax.postRequest("Email/inbox/folders/"+e,{id:this.model.id}).then(()=>{this.model.attributes.groupFolderId?"archive"===e?this.model.set("groupStatusFolder","Archive"):this.model.set("groupStatusFolder",null):this.model.set("inArchive","archive"===e);"inbox"!==e&&"archive"!==e||(e=null);if(!e){this.model.set("groupFolderId",null);this.model.set("groupFolderName",null)}this.model.set("folderId",e);this.model.fetch();Espo.Ui.success(this.translate("Done"))})})})}actionMoveToArchive(){Espo.Ui.notifyWait();Espo.Ajax.postRequest("Email/inbox/folders/archive",{id:this.model.id}).then(()=>{this.model.attributes.groupFolderId?this.model.set("groupStatusFolder","Archive",{sync:!0}):this.model.set("inArchive",!0,{sync:!0});Espo.Ui.info(this.translate("Moved to Archive","labels","Email"));this.model.collection&&this.model.collection.trigger("moving-to-archive",this.model.id,!0)})}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(){let e=this.model,t=e.get("status");e.set("status","Sending");this.isSending=!0;let i=()=>{e.trigger("after:send");this.trigger("after:send");this.isSending=!1};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"))});return this.save()}async actionSendFromDetail(){await this.confirm(this.translate("confirmSend","messages","Email"));await this.setEditMode();await this.send();await this.setDetailMode()}exitAfterDelete(){let e=this.rootData.selectedFolderId||null;"inbox"===e&&(e=null);var t={isReturn:!0,isReturnThroughLink:!1,folder:e};let i="#"+this.scope,s=null;if(e){s="list";i+="/list/folder="+e}this.getRouter().dispatch(this.scope,s,t);this.getRouter().navigate(i,{trigger:!1});return!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",url:`${this.model.entityType}/${this.model.id}/users`,filtersDisabled:!0,createDisabled:!0,selectDisabled:!this.getAcl().checkModel(this.model,"edit")||"no"===this.getAcl().getPermissionLevel("assignment"),unlinkDisabled:!this.getUser().isAdmin(),removeDisabled:!0,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.notifyWait();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",{sync:!0});if(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(){var i=this.getFieldView("body");if(i){let t=i.$el.find("iframe").get(0);if(t)t.contentWindow.print();else{i=i.$el.get(0);let e=this.$el.get(0);t=document.createElement("iframe");t.style.display="none";e.append(t);var s=t.contentWindow;s.document.open();s.document.write(i.innerHTML);s.document.close();s.focus();s.print();s.onafterprint=()=>{e.removeChild(t)}}}}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.hideField("tasks"):this.showField("tasks")}handleShortcutKeyCtrlS(e){if(!this.inlineEditModeIsOn&&!this.buttonsDisabled){e.preventDefault();e.stopPropagation();this.mode===this.MODE_EDIT&&this.saveAndContinueEditingAction&&this.hasAvailableActionItem("saveAndContinueEditing")&&this.actionSaveAndContinueEditing()}}isInTrash(){return this.model.attributes.groupFolderId?"Trash"===this.model.attributes.groupStatusFolder:this.model.attributes.inTrash}isInArchive(){return this.model.attributes.groupFolderId?"Archive"===this.model.attributes.groupStatusFolder:this.model.attributes.inArchive}}e.default=s});define("views/email/fields/email-address",["exports","views/fields/base","ui/autocomplete"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{getAutocompleteMaxCount(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")}afterRender(){super.afterRender();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(){this.$input=this.$input||this.$el.find("input");let t,e=new i.default(this.$input.get(0),{name:this.name,autoSelectFirst:!0,triggerSelectOnValidInput:!0,focusOnSelect:!0,minChars:1,forceHide:!0,handleFocusMode:2,onSelect:e=>{this.$input.val(e.emailAddress)},formatResult:e=>this.getHelper().escapeString(e.name)+" <"+this.getHelper().escapeString(e.id)+">",lookupFunction:e=>{t&&t.getReadyState()<4&&t.abort();t=Espo.Ajax.getRequest("EmailAddress/search",{q:e,maxSize:this.getAutocompleteMaxCount()});return t.then(e=>{let i=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 i})}});this.once("render remove",()=>e.dispose())}fetchSearch(){let e=this.$element.val();"function"==typeof e.trim&&(e=e.trim());return e?{type:"equals",value:e}:null}}e.default=a});define("views/email/fields/body",["exports","views/fields/wysiwyg"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{useIframe=!0;hasBodyPlainField=!0;toShowQuotePart=!1;replyPart;getAttributeList(){return["body","bodyPlain"]}setupToolbar(){super.setupToolbar();var e=this.toolbar.find(e=>"attachment"===e[0]);e?e[1].push("insert-field"):this.toolbar.push(["insert-field",["insert-field"]]);this.buttons["insert-field"]=()=>{var e=$.summernote.ui,e=e.button({contents:'<i class="fas fa-plus"></i>',tooltip:this.translate("Insert Field","labels","Email"),click:()=>{this.showInsertFieldModal()}});return e.render()};this.listenTo(this.model,"change",e=>{this.isRendered()&&(e.hasChanged("parentId")||e.hasChanged("to"))&&this.controlInsertFieldButton()})}onEditModeSet(){this.toShowQuotePart=!1;return super.onEditModeSet()}afterRender(){super.afterRender();this.controlInsertFieldButton();this.isReadMode()&&this.replyPart&&this.element.appendChild(this.createShowQuotePartButton())}controlInsertFieldButton(){var e=this.$el.find(".note-insert-field > button");this.model.get("to")&&this.model.get("to").length||this.model.get("parentId")?e.removeAttr("disabled").removeClass("disabled"):e.attr("disabled","disabled").addClass("disabled")}showInsertFieldModal(){let e=this.model.get("to");e=e&&e.split(";")[0].trim();var t=this.model.get("parentId"),i=this.model.get("parentType");Espo.Ui.notifyWait();this.createView("insertFieldDialog","views/email/modals/insert-field",{parentId:t,parentType:i,to:e},e=>{e.render();Espo.Ui.notify();this.listenToOnce(e,"insert",e=>{if(this.$summernote)if(e.includes("\n")){e=e.replace(/\r\n|\r|\n/g,"<br>");var t="<p>"+e+"</p>";this.$summernote.summernote("editor.pasteHTML",t)}else this.$summernote.summernote("editor.insertText",e);this.clearView("insertFieldDialog")})})}getValueForIframe(){var e=super.getValueForIframe();if(this.toShowQuotePart)this.replyPart=void 0;else{this.replyPart=void 0;e=this.processQuotePart(e);this.replyPart}return e}getValueForEdit(){this.replyPart=void 0;var e=super.getValueForEdit();return this.processQuotePart(e,!0)}processQuotePart(e,t){var i=document.createElement("div");i.innerHTML=e;let s=':scope > [data-quote-start="true"]',a=(t||(s+=", :scope > blockquote:last-child, :scope > div:last-child > blockquote:last-child"),i.querySelector(s));if(!a)return e;i.querySelectorAll('style, link[ref="stylesheet"]').forEach(e=>{e.parentElement.removeChild(e)});this.replyPart="";for(var r=[];a;){this.replyPart+=a.outerHTML;r.push(a);a=a.nextElementSibling}r.forEach(e=>e.parentElement.removeChild(e));t&&this.element.appendChild(this.createShowQuotePartButton());return i.innerHTML}createShowQuotePartButton(){var e=this.showQuoteButtonElement=document.createElement("a");e.setAttribute("role","button");e.innerHTML="...";e.classList.add("show-quote-button","btn","btn-default","btn-sm");e.addEventListener("click",()=>this.showQuotePart());return e}showQuotePart(){if(this.isReadMode()){this.toShowQuotePart=!0;this.reRender()}else{var e=this.$summernote.summernote("code")+this.replyPart;this.replyPart=void 0;this.showQuoteButtonElement.parentElement.removeChild(this.showQuoteButtonElement);this.$summernote.summernote("code",e)}}fetch(){var e=super.fetch();if(this.model.attributes.isHtml&&this.replyPart){null==e[this.name]&&(e[this.name]="");e[this.name]+=this.replyPart}this.model.attributes.isHtml&&(e[this.name+"Plain"]=this.htmlToPlain(e[this.name]));return e}}e.default=s});define("views/dashlets/abstract/base",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{optionsData=null;optionsFields={title:{type:"varchar",required:!0},autorefreshInterval:{type:"enumFloat",options:[0,.5,1,2,5,10]}};disabledForReadOnlyActionList=["options","remove"];disabledForLockedActionList=["remove"];noPadding=!1;buttonList=[];actionList=[{name:"refresh",label:"Refresh",iconHtml:'<span class="fas fa-sync-alt"></span>',groupIndex:1e4},{name:"options",label:"Options",iconHtml:'<span class="fas fa-pencil-alt"></span>',groupIndex:1e4},{name:"remove",label:"Remove",iconHtml:'<span class="fas fa-times"></span>',groupIndex:1e4}];actionRefresh(){this.render()}actionOptions(){}init(){this.name=this.options.name||this.name;this.id=this.options.id;this.defaultOptions=this.getMetadata().get(["dashlets",this.name,"options","defaults"])||this.defaultOptions||{};this.defaultOptions={title:this.getLanguage().translate(this.name,"dashlets"),...this.defaultOptions};this.defaultOptions=Espo.Utils.clone(this.defaultOptions);this.optionsFields=this.getMetadata().get(["dashlets",this.name,"options","fields"])||this.optionsFields||{};this.optionsFields=Espo.Utils.clone(this.optionsFields);this.setupDefaultOptions();var e,t=Espo.Utils.cloneDeep(this.defaultOptions);for(e in t)"function"==typeof t[e]&&(t[e]=t[e].call(this));let i;if(this.options.readOnly){var s=this.getConfig().get("forcedDashletsOptions")||this.getConfig().get("dashletsOptions")||{};i=s[this.id]||{}}else i=this.getPreferences().getDashletOptions(this.id)||{};this.optionsData=_.extend(t,i);if(this.optionsData.autorefreshInterval){let e=6e4*this.optionsData.autorefreshInterval,t,i=()=>{t=setTimeout(()=>{this.autoRefresh();i()},e)};i();this.once("remove",()=>{clearTimeout(t)})}this.actionList=Espo.Utils.clone(this.actionList);this.buttonList=Espo.Utils.clone(this.buttonList);this.options.readOnly&&(this.actionList=this.actionList.filter(e=>!~this.disabledForReadOnlyActionList.indexOf(e.name)));this.options.locked&&(this.actionList=this.actionList.filter(e=>!this.disabledForLockedActionList.includes(e.name)));this.setupActionList();this.setupButtonList()}autoRefresh(){this.actionRefresh()}setupDefaultOptions(){}setupActionList(){}setupButtonList(){}hasOption(e){return e in this.optionsData}getOption(e){return this.optionsData[e]}getTitle(){let e=this.getOption("title");e=e||null;return e}getContainerView(){return this.getParentView()}handleAction(e,t){Espo.Utils.handleAction(this,e,t,{actionItems:[...this.buttonList,...this.actionList],className:"dashlet-action"})}getActionItemDataList(){let i=[],t=(this.actionList.forEach(e=>{if(!1!==e){var t=(void 0===e.groupIndex?9999:e.groupIndex)+100;void 0===i[t]&&(i[t]=[]);i[t].push(e)}}),[]);i.forEach(e=>{e.forEach(e=>t.push(e));t.push(!1)});!1===t.at(t.length-1)&&t.pop();return t}getColor(){return null}afterAdding(){}}e.default=s});define("views/attachment/modals/select-one",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{backdrop=!0;templateContent=`<ul class="list-group no-side-margin">
|
||
{{#each viewObject.options.dataList}}
|
||
<li
|
||
class="list-group-item"
|
||
><a
|
||
role="button"
|
||
class="action"
|
||
data-action="select"
|
||
data-id="{{id}}"
|
||
>{{name}}</a></li>
|
||
{{/each}}
|
||
</ul>
|
||
`;constructor(e){super(e);this.options=e}setup(){this.headerText=this.translate("Select");this.options.fieldLabel&&(this.headerText+=" · "+this.options.fieldLabel);this.addActionHandler("select",(e,t)=>{this.options.onSelect(t.dataset.id);this.close()})}}e.default=s});define("ui/app-init",["exports","jquery"],function(e,d){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;d=(t=d,t&&t.__esModule?t:{default:t});var t;e.default=function(){var e=(0,d.default)(document);e.on("keydown.espo.button",e=>{if(!("Enter"!==e.code||"A"!==e.target.tagName||"button"!==e.target.getAttribute("role")||e.target.getAttribute("href")||e.ctrlKey||e.altKey||e.metaKey)){(0,d.default)(e.target).click();e.preventDefault()}});e.on("hidden.bs.dropdown",e=>{(0,d.default)(e.target).removeClass("dropup")});e.on("show.bs.dropdown",e=>{var s=e.target,a=(0,d.default)(e.target).find(".dropdown-menu");let t=a.get(0);if(t){var r=a.outerHeight(),a=a.outerWidth(),o=(0,d.default)(s),n=(0,d.default)(window).height(),l=e.target.getBoundingClientRect().bottom,n=n-(l+r),n=n<0&&r<l-100;if(!o.hasClass("more")&&!o.hasClass("tab")){n?o.addClass("dropup"):o.removeClass("dropup");if(t.classList.contains("pull-right")&&s.getBoundingClientRect().left-a<0){l=s.getBoundingClientRect().right-s.getBoundingClientRect().width/2,o=(t.style.maxWidth=l+"px",(0,d.default)(s));o.one("hidden.bs.dropdown",()=>{t.style.maxWidth=""})}else{a=(0,d.default)(s).closest(".dashlet-body"),l=e.target.parentElement.classList.contains("fix-position");if(a.length||l){let e=a;l&&(e=(0,d.default)(window));(0,d.default)(s).removeClass("dropup");let t=(0,d.default)(s);o=s.getBoundingClientRect(),a=t.find(".dropdown-menu"),l=s.classList.contains("pull-right");let i=t.find(".dropdown-toggle");e.on("scroll.dd",()=>{if(t.hasClass("open")){i.dropdown("toggle");e.off("scroll.dd")}});t.one("hidden.bs.dropdown",()=>{e.off("scroll.dd")});l=l?o.left-a.outerWidth()+o.width:o.left,n=n?o.top-r:o.top+s.getBoundingClientRect().height;a.css({position:"fixed",top:n,left:l,right:"auto"})}}}}})}});define("helpers/site/tabs",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i,s,a,r){this.config=e;this.preferences=t;this.user=i;this.acl=s;this.metadata=a;this.language=r}getTabList(){let e=(this.preferences.get("useCustomTabList")&&!this.preferences.get("addCustomTabs")?this.preferences:this.config).get("tabList");this.preferences.get("useCustomTabList")&&this.preferences.get("addCustomTabs")&&(e=[...e,...this.preferences.get("tabList")||[]]);return Espo.Utils.cloneDeep(e)||[]}isTabDivider(e){return"object"==typeof e&&"divider"===e.type}isTabMoreDelimiter(e){return"_delimiter_"===e||"_delimiter-ext_"===e}isTabUrl(e){return"object"==typeof e&&"url"===e.type}isTabGroup(e){return!this.isTabDivider(e)&&!this.isTabUrl(e)&&"object"==typeof e}isTabScope(e){return"object"!=typeof e&&!this.isTabMoreDelimiter(e)&&"Home"!==e}getTranslatedTabLabel(e){var t=e=>0===e.indexOf("$")?this.language.translate(e.slice(1),"navbarTabs"):e;return this.isTabDivider(e)||this.isTabUrl(e)||this.isTabUrl(e)||this.isTabGroup(e)?e.text?t(e.text):"":"Home"===e?this.language.translate("Home"):"object"==typeof e?"":this.language.translate(e,"scopeNamesPlural")}checkTabAccess(e){var t;return this.isTabUrl(e)?!(e.onlyAdmin&&!this.user.isAdmin())&&(!e.aclScope||this.acl.check(e.aclScope)):!("Home"!==e&&!this.isTabMoreDelimiter(e))||(t=this.metadata.get("scopes")||{},!!t[e]&&(t=t[e]||{},!t.disabled)&&(t.acl?this.acl.check(e):!t.tabAclPermission||(t=this.acl.getPermissionLevel(t.tabAclPermission),t&&"no"!==t)))}}});define("helpers/misc/reactions",["exports","di","models/settings","metadata"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=h(i);s=h(s);var a;let r,o,n,l,d;function h(e){return e&&e.__esModule?e:{default:e}}function c(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}let u;(class{config=o(this);metadata=(n(this),l(this));list=void d(this);getDefinitionList(){this.list||(this.list=this.metadata.get("app.reactions.list")||[]);return this.list}getAvailableReactions(){return this.config.get("availableReactions")||[]}getIconClass(t){var e=this.getDefinitionList().find(e=>e.type===t);return e?e.iconClass:null}static#_=a=()=>({e:[o,n,l,d],c:[u,r]}=c(this,[(0,t.register)()],[[(0,t.inject)(i.default),0,"config"],[(0,t.inject)(s.default),0,"metadata"]]),r())});a();e.default=u});define("controllers/base",["exports","controller","views/base"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e,t){super(e,t);this.on("logout",()=>this._clearAllStoredMainViews())}_clearAllStoredMainViews(){for(var e in this.params)if(e.startsWith("mainView-")){var[,e,t]=e.split("-",3),e=`mainView-${e}-`+t,t=this.get(e);t&&t.remove(!0);this.unset(e)}}clearScopeStoredMainView(e){for(var t in this.params)if(t.startsWith(`mainView-${e}-`)){var i=this.get(t);i&&i.remove(!0);this.unset(t)}}login(e){var t=this.getConfig().get("loginView")||"views/login";let o=(e||{}).anotherUser;var i=(e||{}).username,i={anotherUser:o,prefilledUsername:i};this.entire(t,i,r=>{r.render();r.on("login",(e,t)=>{this.trigger("login",this.normalizeLoginData(e,t))});r.once("redirect",(e,t,i,s,a)=>{r.remove();this.entire(e,{loginData:a,userName:i,password:s,anotherUser:o,headers:t},e=>{e.render();e.once("login",(e,t)=>{this.trigger("login",this.normalizeLoginData(e,t))});e.once("back",()=>{e.remove();this.login()})})})})}normalizeLoginData(e,t){return{auth:{userName:e,token:t.token,anotherUser:t.anotherUser},user:t.user,preferences:t.preferences,acl:t.acl,settings:t.settings,appParams:t.appParams,language:t.language}}logout(){var e=this.getConfig().get("applicationName")||"EspoCRM";$("head title").text(e);this.trigger("logout")}clearCache(){this.entire("views/clear-cache",{cache:this.getCache()},e=>{e.render()})}actionLogin(){this.login()}actionLogout(){this.logout()}actionLogoutWait(){this.entire("views/base",{template:"logout-wait"},e=>{e.render().then(()=>Espo.Ui.notifyWait())})}actionClearCache(){this.clearCache()}error404(){var e=new i.default({template:"errors/404"});this.entire(e)}error403(){var e=new i.default({template:"errors/403"});this.entire(e)}actionError404(){this.error404()}actionError403(){this.error403()}}e.default=a});define("dynamic-handler",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{constructor(e){this.recordView=e;this.model=e.model}init(){}onChange(e,t){}getMetadata(){return this.recordView.getMetadata()}}i.extend=t.View.extend;e.default=i});define("app",["exports","backbone","bullbone","js-base64","ui","utils","acl-manager","cache","storage","models/settings","language","metadata","field-manager","models/user","models/preferences","model-factory","collection-factory","controllers/base","router","date-time","layout-manager","theme-manager","session-storage","view-helper","web-socket-manager","ajax","number-util","page-title","broadcast-channel","ui/app-init","app-params","di"],function(e,t,i,o,d,n,s,a,r,l,h,c,u,m,p,f,g,v,y,b,w,M,T,L,C,E,x,S,D,A,P,k){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=F(t);o=F(o);d=F(d);n=F(n);s=F(s);a=F(a);r=F(r);l=F(l);h=F(h);c=F(c);u=F(u);m=F(m);p=F(p);f=F(f);g=F(g);v=F(v);y=F(y);b=F(b);w=F(w);M=F(M);T=F(T);L=F(L);C=F(C);E=F(E);x=F(x);S=F(S);D=F(D);A=F(A);P=F(P);function F(e){return e&&e.__esModule?e:{default:e}}class _{constructor(e,t){e=e||{};this.id=e.id||"espocrm";this.useCache=e.useCache||this.useCache;this.apiUrl=e.apiUrl||this.apiUrl;this.basePath=e.basePath||"";this.ajaxTimeout=e.ajaxTimeout||0;this.internalModuleList=e.internalModuleList||[];this.themeName=e.theme||null;this.bundledModuleList=e.bundledModuleList||[];this.appTimestamp=e.appTimestamp;this.initCache(e).then(async()=>{await this.init(e);t(this)});(0,A.default)()}useCache=!1;user=null;preferences=null;settings=null;metadata=null;language=null;fieldManager=null;cache=null;storage=null;loader=null;apiUrl="api/v1";auth=null;anotherUser=null;baseController=null;controllers=null;router=null;modelFactory=null;collectionFactory=null;viewFactory=null;appParams;viewLoader=null;viewHelper=null;masterView="views/site/master";responseCache=null;broadcastChannel=null;dateTime=null;numberUtil=null;webSocketManager;acl;appTimestamp=null;started=!1;aclName="acl";async initCache(e){if(this.useCache){var t=e.cacheTimestamp||null,i=(this.cache=new a.default(t),this.cache.getCacheTimestamp());t?this.cache.handleActuality(t):this.cache.storeTimestamp();if(window.caches){t=!t||!i||t!==i;try{t&&await caches.delete("espo");this.responseCache=await caches.open("espo")}catch(e){console.error("Could not open 'espo' cache.")}}}}async init(e){this.appParams=new P.default;this.controllers={};this.loader=Espo.loader;this.loader.setResponseCache(this.responseCache);this.useCache&&!this.loader.getCacheTimestamp()&&e.cacheTimestamp&&this.loader.setCacheTimestamp(e.cacheTimestamp);this.storage=new r.default;this.sessionStorage=new T.default;this.setupAjax();this.settings=new l.default(null);this.language=new h.default(this.cache);this.metadata=new c.default(this.cache);this.fieldManager=new u.default;k.container.set(P.default,this.appParams);k.container.set(r.default,this.storage);k.container.set(T.default,this.sessionStorage);k.container.set(l.default,this.settings);k.container.set(h.default,this.language);k.container.set(c.default,this.metadata);k.container.set(u.default,this.fieldManager);this.initBroadcastChannel();await Promise.all([this.settings.load(),this.language.loadDefault(),this.initTemplateBundles()]);this.loader.setIsDeveloperMode(this.settings.get("isDeveloperMode"));this.user=new m.default;this.preferences=new p.default;this.preferences.setSettings(this.settings);this.acl=this.createAclManager();this.fieldManager.acl=this.acl;this.themeManager=new M.default(this.settings,this.preferences,this.metadata,this.themeName);this.modelFactory=new f.default(this.metadata);this.collectionFactory=new g.default(this.modelFactory,this.settings,this.metadata);this.webSocketManager=new C.default(this.settings);k.container.set(s.default,this.acl);k.container.set(m.default,this.user);k.container.set(p.default,this.preferences);k.container.set(M.default,this.themeManager);k.container.set(f.default,this.modelFactory);k.container.set(g.default,this.collectionFactory);k.container.set(C.default,this.webSocketManager);this.initUtils();this.initView();this.initBaseController()}start(){this.initAuth();this.started=!0;this.auth?this.initUserData(null,()=>this.onAuth()):this.baseController.login()}async onAuth(){var e=0<arguments.length&&void 0!==arguments[0]&&arguments[0];await this.metadata.load();this.fieldManager.defs=this.metadata.get("fields")||{};this.fieldManager.metadata=this.metadata;this.settings.setDefs(this.metadata.get("entityDefs.Settings")||{});this.preferences.setDefs(this.metadata.get("entityDefs.Preferences")||{});this.viewHelper.layoutManager.setUserId(this.user.id);this.themeManager.isUserTheme()&&this.loadStylesheet();this.applyUserStyle();this.anotherUser&&(this.viewHelper.webSocketManager=null);this.settings.get("useWebSocket")&&!this.anotherUser&&this.webSocketManager.setEnabled();this.webSocketManager.isEnabled()&&this.webSocketManager.connect(this.auth,this.user.id);let t=[],a={},r=this.metadata.get("clientDefs")||{};Object.keys(r).forEach(i=>{var e=r[i];let s=(e||{})[this.aclName];if(s){e=new Promise(t=>{this.loader.require(s,e=>{a[i]=e;t()})});t.push(e)}});if(!this.themeManager.isApplied()&&this.themeManager.isUserTheme()){let e=new Promise(t=>{let i=e=>{if(this.themeManager.isApplied()||50===e)t();else{e=e||0;setTimeout(()=>i(e+1),10)}};i()});t.push(e)}let i=Promise.all(t);e&&this.broadcastChannel.postMessage("logged-in");await i;this.acl.implementationClassMap=a;this.initRouter();this.webSocketManager.subscribe("appParamsUpdate",()=>this.appParams.load())}initRouter(){var e=this.metadata.get("app.clientRoutes")||{};this.router=new y.default({routes:e});k.container.set(y.default,this.router);this.viewHelper.router=this.router;this.baseController.setRouter(this.router);this.router.confirmLeaveOutMessage=this.language.translate("confirmLeaveOutMessage","messages");this.router.confirmLeaveOutConfirmText=this.language.translate("Yes");this.router.confirmLeaveOutCancelText=this.language.translate("Cancel");this.router.on("routed",e=>this.doAction(e));try{t.default.history.start({root:window.location.pathname})}catch(e){t.default.history.loadUrl()}}doAction(t){this.trigger("action",t);this.baseController.trigger("action");var e=e=>{try{e.doAction(t.action,t.options);this.trigger("action:done")}catch(e){console.error(e);switch(e.name){case"AccessDenied":this.baseController.error403();break;case"NotFound":this.baseController.error404();break;default:throw e}}};t.controllerClassName?this.createController(t.controllerClassName,null,e):this.getController(t.controller,e)}initBaseController(){this.baseController=new v.default({},this.getControllerInjection());this.viewHelper.baseController=this.baseController}getControllerInjection(){return{viewFactory:this.viewFactory,modelFactory:this.modelFactory,collectionFactory:this.collectionFactory,settings:this.settings,user:this.user,preferences:this.preferences,acl:this.acl,cache:this.cache,router:this.router,storage:this.storage,metadata:this.metadata,dateTime:this.dateTime,broadcastChannel:this.broadcastChannel,baseController:this.baseController}}getController(t,i){if(t)if(t in this.controllers)i(this.controllers[t]);else try{let e=this.metadata.get(`clientDefs.${t}.controller`);if(!e){var s=this.metadata.get(`scopes.${t}.module`);if(!/^[A-Za-z0-9]+$/.test(t)){console.error(`Bad controller name ${t}.`);this.baseController.error404();return}e=n.default.composeClassName(s,t,"controllers")}this.createController(e,t,i)}catch(e){this.baseController.error404()}else i(this.baseController)}createController(e,i,s){Espo.loader.require(e,e=>{var t=this.getControllerInjection(),t=new e(this.baseController.params,t);t.name=i;t.masterView=this.masterView;this.controllers[i]=t;s(t)},()=>this.baseController.error404())}initUtils(){this.dateTime=new b.default;this.dateTime.setSettingsAndPreferences(this.settings,this.preferences);this.numberUtil=new x.default(this.settings,this.preferences);k.container.set(b.default,this.dateTime);k.container.set(x.default,this.numberUtil)}createAclManager(){return new s.default(this.user,null,this.settings.get("aclAllowDeleteCreated"))}initView(){var e=this.viewHelper=new L.default;e.layoutManager=new w.default(this.cache,this.id);e.settings=this.settings;e.config=this.settings;e.user=this.user;e.preferences=this.preferences;e.acl=this.acl;e.modelFactory=this.modelFactory;e.collectionFactory=this.collectionFactory;e.storage=this.storage;e.sessionStorage=this.sessionStorage;e.dateTime=this.dateTime;e.language=this.language;e.metadata=this.metadata;e.fieldManager=this.fieldManager;e.cache=this.cache;e.themeManager=this.themeManager;e.numberUtil=this.numberUtil;e.pageTitle=new S.default(this.settings);e.basePath=this.basePath;e.appParams=this.appParams;e.broadcastChannel=this.broadcastChannel;e.webSocketManager=this.settings.get("useWebSocket")?this.webSocketManager:null;k.container.set(L.default,this.viewHelper);k.container.set(w.default,e.layoutManager);k.container.set(S.default,e.pageTitle);this.viewLoader=(e,t)=>{this.loader.require(n.default.composeViewClassName(e),t)};let t={},a=e=>{e in t||(t[e]=-1!==this.internalModuleList.indexOf(e));return t[e]},r=(e,t)=>{let i=null;switch(e){case"template":~t.indexOf(".")&&console.warn(t+": template name should use slashes for a directory separator.");i="res/templates/"+t.split(".").join("/")+".tpl";break;case"layoutTemplate":i="res/layout-types/"+t+".tpl"}return i},s=(e,t)=>{var i,s;return t.includes(":")?([i,s]=t.split(":"),"custom"===i?"client/custom/"+r(e,s):a(i)?"client/modules/"+i+"/"+r(e,s):"client/custom/modules/"+i+"/"+r(e,s)):"client/"+r(e,t)};this.viewFactory=new i.Factory({defaultViewName:"views/base",helper:e,viewLoader:this.viewLoader,resources:{loaders:{template:(e,t)=>{var i=s("template",e);this.loader.require("res!"+i,t)},layoutTemplate:(e,t)=>{if(Espo.layoutTemplates&&e in Espo.layoutTemplates)t(Espo.layoutTemplates[e]);else{var i=s("layoutTemplate",e);this.loader.require("res!"+i,t)}}}},preCompiledTemplates:Espo.preCompiledTemplates||{}})}initAuth(){this.auth=this.storage.get("user","auth")||null;this.anotherUser=this.storage.get("user","anotherUser")||null;this.baseController.on("login",e=>{var t=e.user.id,i=e.auth.userName,s=e.auth.token,a=e.auth.anotherUser||null;this.auth=o.default.encode(i+":"+s);this.anotherUser=a;a=this.storage.get("user","lastUserId");if(a!==t){this.metadata.clearCache();this.language.clearCache()}this.storage.set("user","auth",this.auth);this.storage.set("user","lastUserId",t);this.storage.set("user","anotherUser",this.anotherUser);this.setCookieAuth(i,s);this.initUserData(e,()=>this.onAuth(!0))});this.baseController.on("logout",()=>this.logout())}logout(e,t){let i=!1;if(this.auth&&!e){var s=o.default.decode(this.auth).split(":");if(1<s.length){i=this.appParams.get("logoutWait")||!1;E.default.postRequest("App/destroyAuthToken",{token:s[1]},{resolveWithXhr:!0}).then(e=>{let t=e.getResponseHeader("X-Logout-Redirect-Url");t?setTimeout(()=>window.location.href=t,50):i&&this.doAction({action:"login"})})}}this.webSocketManager.isEnabled()&&this.webSocketManager.close();t=t||e&&this.auth&&this.auth!==this.storage.get("user","auth");this.auth=null;this.anotherUser=null;this.user.clear();this.preferences.clear();this.acl.clear();if(!t){this.storage.clear("user","auth");this.storage.clear("user","anotherUser")}s=i?"logoutWait":"login";this.doAction({action:s});t||this.unsetCookieAuth();!this.broadcastChannel.object||t||this.broadcastChannel.postMessage("logged-out");t||this.sendLogoutRequest();this.loadStylesheet()}sendLogoutRequest(){var e=new XMLHttpRequest;e.open("GET",this.basePath+this.apiUrl+"/");e.setRequestHeader("Authorization","Basic "+o.default.encode("**logout:logout"));e.send("");e.abort()}loadStylesheet(){if(this.metadata.get(["themes"])){var e=this.basePath+this.themeManager.getStylesheet(),t=document.querySelector("#main-stylesheet");t&&t.setAttribute("href",e)}}applyUserStyle(){var e=this.preferences.get("pageContentWidth");e&&(document.body.dataset.contentWidth=e)}setCookieAuth(e,t){var i=new Date;i.setTime(i.getTime()+864e8);document.cookie=`auth-token=${t}; SameSite=Lax; expires=${i.toUTCString()}; path=/`}unsetCookieAuth(){document.cookie="auth-token=; SameSite=Lax; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/"}async initUserData(e,i){e=e||{};if(null!==this.auth){e.user||(e=await this.requestUserData());this.language.name=e.language;await this.language.load();this.dateTime.setLanguage(this.language);var t=e.user||null,s=e.preferences||null,a=e.acl||null,r=e.settings||{};this.user.setMultiple(t);this.preferences.setMultiple(s);this.settings.clear();this.settings.setMultiple(r);this.acl.set(a);this.appParams.setAll(e.appParams);if(this.auth){let t=new XMLHttpRequest;t.open("GET",""+this.basePath+this.apiUrl+"/");t.setRequestHeader("Authorization","Basic "+this.auth);t.onreadystatechange=()=>{if(t.readyState===XMLHttpRequest.DONE&&200===t.status){var e=o.default.decode(this.auth).split(":");this.setCookieAuth(e[0],e[1]);i()}t.readyState===XMLHttpRequest.DONE&&401===t.status&&d.default.error("Auth error")};t.send("")}}}async requestUserData(){return E.default.getRequest("App/user",{},{appStart:!0})}setupAjax(){var a=this;let r=!1;E.default.configure({apiUrl:this.basePath+this.apiUrl,timeout:this.ajaxTimeout,beforeSend:(e,t)=>{if(null!==this.auth&&!t.login){e.setRequestHeader("Authorization","Basic "+this.auth);e.setRequestHeader("Espo-Authorization",this.auth);e.setRequestHeader("Espo-Authorization-By-Token","true")}null===this.anotherUser||t.login||e.setRequestHeader("X-Another-User",this.anotherUser)},onSuccess:(e,t)=>{var i=e.getResponseHeader("X-App-Timestamp");if(i&&!r){var i=parseInt(i),s=t.bypassAppReload;if(this.appTimestamp&&i>this.appTimestamp&&!s){r=!0;d.default.confirm(this.language.translate("confirmAppRefresh","messages"),{confirmText:this.language.translate("Refresh"),cancelText:this.language.translate("Cancel"),backdrop:"static",confirmStyle:"success"}).then(()=>{window.location.reload();this.broadcastChannel&&this.broadcastChannel.postMessage("reload")})}}},onError:function(i){let s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};setTimeout(()=>{if(!i.errorIsHandled){switch(i.status){case 200:d.default.error(a.language.translate("Bad server response"));console.error("Bad server response: "+i.responseText);break;case 401:if(!s.login)if(a.auth&&a.router&&!a.router.hasConfirmLeaveOut())a.logout(!0);else if(a.auth&&a.router&&a.router.hasConfirmLeaveOut()){d.default.error(a.language.translate("loggedOutLeaveOut","messages"),!0);a.router.trigger("logout")}else{if(a.auth){var e=!s.appStart;a.logout(!0,e)}console.error("Error 401: Unauthorized.")}break;case 403:s.main?a.baseController.error403():a._processErrorAlert(i,"Access denied");break;case 400:a._processErrorAlert(i,"Bad request");break;case 404:s.main?a.baseController.error404():a._processErrorAlert(i,"Not found",!0);break;default:a._processErrorAlert(i,null)}var t=i.getResponseHeader("X-Status-Reason");t&&console.error("Server side error "+i.status+": "+t)}},0)},onTimeout:()=>{d.default.error(this.language.translate("Timeout"),!0)},onOffline:()=>{d.default.error(this.language.translate("No internet"))}})}_processErrorAlert(e,t,i){let s="";t?s+=this.language.translate(t):0===e.status?s+=this.language.translate("Network error"):500===e.status?s+=this.language.translate("Internal server error")+"\n\n"+this.language.translate("checkLogsForDetails","messages"):s+=this.language.translate("Error")+" "+e.status;var a={msg:s,closeButton:!0};let r=!1;i&&(r=!0);if(!r&&e.responseText&&"{"===e.responseText[0]){let t=null;try{t=JSON.parse(e.responseText)}catch(e){}if(t&&t.messageTranslation&&t.messageTranslation.label){let e=this.language.translate(t.messageTranslation.label,"messages",t.messageTranslation.scope);var o,n=t.messageTranslation.data||{};for(o in n)e=e.replace("{"+o+"}",n[o]);a.msg+="\n"+e;a.closeButton=!0;r=!0}if(!r&&t&&"message"in t&&t.message){a.msg+="\n"+t.message;a.closeButton=!0;r=!0}}if(!r){var l=e.getResponseHeader("X-Status-Reason");if(l){a.msg+="\n"+l;a.closeButton=!0}}d.default.error(a.msg,a.closeButton)}initBroadcastChannel(){this.broadcastChannel=new D.default;this.broadcastChannel.subscribe(e=>{if(!this.auth&&this.started)"logged-in"===e.data&&window.location.reload();else if("update:all"===e.data){this.metadata.loadSkipCache();this.settings.load();this.language.loadSkipCache();this.viewHelper.layoutManager.clearLoadedData()}else if("update:metadata"===e.data)this.metadata.loadSkipCache();else if("update:config"===e.data)this.settings.load();else if("update:language"===e.data)this.language.loadSkipCache();else if("update:layout"===e.data)this.viewHelper.layoutManager.clearLoadedData();else if("update:appParams"===e.data)this.appParams.load();else if("reload"===e.data)window.location.reload();else if("logged-out"===e.data&&this.started)if(this.auth&&this.router.hasConfirmLeaveOut()){d.default.error(this.language.translate("loggedOutLeaveOut","messages"),!0);this.router.trigger("logout")}else this.logout(!0)});k.container.set(D.default,this.broadcastChannel)}async initTemplateBundles(){if(this.responseCache){var e="templateBundlesCached";if(!this.cache.get("app",e)){let i=["client/lib/templates.tpl"],r=(this.bundledModuleList.forEach(e=>{var t=this.internalModuleList.includes(e)?`client/modules/${e}/lib/templates.tpl`:`client/custom/modules/${e}/lib/templates.tpl`;i.push(t)}),n.default.obtainBaseUrl()),o=this.loader.getCacheTimestamp();var t=i.map(e=>{let t=new URL(r+this.basePath+e);t.searchParams.append("t",this.appTimestamp);return new Promise(s=>{fetch(t).then(e=>{if(e.ok){let a=[];e.text().then(e=>{var t=e.indexOf("\n");if(t<=0)s();else{var i=e.slice(0,t+1);e=e.slice(t+1);e.split(i).forEach(e=>{var t=e.indexOf("\n"),i=e.slice(0,t).trim();let s=e.slice(t+1);s=s.replace(/[\r|\n|\r\n]$/,"");t=r+this.basePath+"client/"+i,i=new URL(t);i.searchParams.append("r",o);a.push(this.responseCache.put(i,new Response(s)))})}});Promise.all(a).then(()=>s())}else{console.error(`Could not fetch ${t}.`);s()}})})});await Promise.all(t);this.cache.set("app",e,!0)}}}}Object.assign(_.prototype,i.Events);_.extend=i.View.extend;e.default=_});define("action-handler",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{constructor(e){this.view=e}}i.extend=t.View.extend;e.default=i});define("acl-portal-manager",["exports","acl-manager","acl-portal"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{checkInAccount(e){var t=this.getImplementation(e.entityType);return t.checkInAccount(e)}checkIsOwnContact(e){var t=this.getImplementation(e.entityType);return t.checkIsOwnContact(e)}getImplementation(t){if(!(t in this.implementationHash)){let e=s.default;t in this.implementationClassMap&&(e=this.implementationClassMap[t]);var i={aclAllowDeleteCreated:!1,forbiddenFieldList:this.getScopeForbiddenFieldList(t)};this.implementationHash[t]=new e(this.getUser(),t,i,this)}return this.implementationHash[t]}}e.default=a});define("views/list-with-categories",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="list-with-categories";quickCreate=!0;storeViewAfterCreate=!0;storeViewAfterUpdate=!0;currentCategoryId=null;currentCategoryName="";categoryScope=null;categoryField="category";categoryFilterType="inCategory";isExpanded=!1;hasExpandedToggler=!0;expandedTogglerDisabled=!1;keepCurrentRootUrl=!0;hasNavigationPanel=!1;nestedCollectionIsBeingFetched=!1;nestedCategoriesCollection;isCategoryMultiple;data(){var e={};e.hasTree=(this.isExpanded||this.hasNavigationPanel)&&!this.categoriesDisabled;e.hasNestedCategories=!this.categoriesDisabled;e.fallback=!e.hasTree&&!e.hasNestedCategories;return e}setup(){super.setup();this.addActionHandler("toggleExpandedFromNavigation",()=>this.actionToggleExpandedFromNavigation());this.addActionHandler("manageCategories",()=>this.actionManageCategories());this.defaultMaxSize=this.collection.maxSize;this.categoryScope||(this.categoryScope=this.scope+"Category");this.categoryField=this.getMetadata().get(`scopes.${this.categoryScope}.categoryField`)||this.categoryField;this.isCategoryMultiple="linkMultiple"===this.getMetadata().get(`entityDefs.${this.scope}.fields.${this.categoryField}.type`);this.showEditLink=this.getAcl().check(this.categoryScope,"edit")||this.getAcl().check(this.categoryScope,"create");var e=this.getMetadata().get(["clientDefs",this.categoryScope,"isExpandedByDefault"])||!1,e=(e&&(this.isExpanded=!0),this.getMetadata().get(["clientDefs",this.categoryScope,"isCollapsedByDefault"])||!1);e&&(this.isExpanded=!1);this.categoriesDisabled=this.categoriesDisabled||this.getMetadata().get(["scopes",this.categoryScope,"disabled"])||!this.getAcl().checkScope(this.categoryScope,"read");if(this.categoriesDisabled){this.isExpanded=!0;this.hasExpandedToggler=!1;this.hasNavigationPanel=!1}else if(!this.expandedTogglerDisabled){!this.getUser().isPortal()&&this.hasIsExpandedStoredValue()&&(this.isExpanded=this.getIsExpandedStoredValue());if(this.getUser().isPortal()){this.hasExpandedToggler=!1;this.isExpanded=!1}}this.hasNavigationPanelStoredValue()?this.hasNavigationPanel=this.getNavigationPanelStoredValue():this.hasNavigationPanel=this.getMetadata().get(`scopes.${this.categoryScope}.showNavigationPanel`)||this.hasNavigationPanel;e=this.options.params||{};"categoryId"in e&&(this.currentCategoryId=e.categoryId);this.applyCategoryToCollection();this.listenTo(this.collection,"sync",(e,t,i)=>{i&&i.openCategory||this.controlListVisibility()})}prepareCreateReturnDispatchParams(e){if(this.currentCategoryId){e.options.categoryId=this.currentCategoryId;e.options.categoryName=this.currentCategoryName}}setupReuse(e){super.setupReuse(e);this.applyRoutingParams(e)}applyRoutingParams(e){"categoryId"in e&&e.categoryId!==this.currentCategoryId&&this.openCategory(e.categoryId,e.categoryName);this.selectCurrentCategory()}hasTextFilter(){return!!this.collection.data.textFilter||this.collection.where&&this.collection.where.find(e=>"textFilter"===e.type)}hasNavigationPanelStoredValue(){return this.getStorage().has("state","categories-navigation-panel-"+this.scope)}getNavigationPanelStoredValue(){var e=this.getStorage().get("state","categories-navigation-panel-"+this.scope);return"true"===e||!0===e}setNavigationPanelStoredValue(e){return this.getStorage().set("state","categories-navigation-panel-"+this.scope,e)}hasIsExpandedStoredValue(){return this.getStorage().has("state","categories-expanded-"+this.scope)}getIsExpandedStoredValue(){var e=this.getStorage().get("state","categories-expanded-"+this.scope);return"true"===e||!0===e}setIsExpandedStoredValue(e){return this.getStorage().set("state","categories-expanded-"+this.scope,e)}afterRender(){this.$nestedCategoriesContainer=this.$el.find(".nested-categories-container");this.$listContainer=this.$el.find(".list-container");if(this.hasView("list"))this.controlListVisibility();else{this.isExpanded||this.hideListContainer();this.loadList()}this.categoriesDisabled||!this.isExpanded&&!this.hasNavigationPanel||this.hasView("categories")||this.loadCategories();this.hasView("nestedCategories")||this.categoriesDisabled||this.loadNestedCategories();this.$el.focus()}clearCategoryViews(){this.clearNestedCategoriesView();this.clearCategoriesView()}clearCategoriesView(){this.clearView("categories")}clearNestedCategoriesView(){this.clearView("nestedCategories")}emptyListContainer(){this.$listContainer.empty()}async actionExpand(){this.isExpanded=!0;this.setIsExpandedStoredValue(!0);this.applyCategoryToCollection();this.clearNestedCategoriesView();if(this.getCategoriesView()){this.getCategoriesView().isExpanded=!0;this.getCategoriesView().expandToggleInactive=!0}this.reRender().then(()=>{});this.emptyListContainer();await this.collection.fetch();if(this.getCategoriesView()){this.getCategoriesView().expandToggleInactive=!1;await this.getCategoriesView().reRender()}}async actionCollapse(){this.isExpanded=!1;this.setIsExpandedStoredValue(!1);this.applyCategoryToCollection();this.applyCategoryToNestedCategoriesCollection();this.clearNestedCategoriesView();if(this.getCategoriesView()){this.getCategoriesView().isExpanded=!1;this.getCategoriesView().expandToggleInactive=!0}this.reRender().then(()=>{});this.emptyListContainer();await this.collection.fetch();if(this.getCategoriesView()){this.getCategoriesView().expandToggleInactive=!1;await this.getCategoriesView().reRender()}}actionOpenCategory(e){this.openCategory(e.id||null,e.name);this.selectCurrentCategory();this.navigateToCurrentCategory()}navigateToCurrentCategory(){let e="#"+this.scope;if(this.currentCategoryId){e+="/list/categoryId="+this.currentCategoryId;this._primaryFilter&&(e+="&primaryFilter="+this.getHelper().escapeString(this._primaryFilter))}else this._primaryFilter&&(e+="/list/primaryFilter="+this.getHelper().escapeString(this._primaryFilter));this.getRouter().navigate(e);this.updateLastUrl()}selectCurrentCategory(){var e=this.getCategoriesView();if(e){e.setSelected(this.currentCategoryId);e.reRender()}}openCategory(e,t){this.getNestedCategoriesView().isLoading=!0;this.getNestedCategoriesView().reRender();this.getNestedCategoriesView().isLoading=!1;this.nestedCategoriesCollection.reset();this.collection.reset();this.collection.offset=0;this.collection.maxSize=this.defaultMaxSize;this.emptyListContainer();this.currentCategoryId=e;this.currentCategoryName=t||e;this.applyCategoryToNestedCategoriesCollection();this.applyCategoryToCollection();this.collection.abortLastFetch();if(this.nestedCategoriesCollection){this.nestedCategoriesCollection.abortLastFetch();this.hideListContainer();this.$nestedCategoriesContainer.addClass("hidden");Espo.Ui.notifyWait();var i=[this.nestedCategoriesCollection.fetch().then(()=>this.updateHeader()),this.collection.fetch({openCategory:!0})];Promise.all(i).then(()=>{Espo.Ui.notify(!1);this.controlNestedCategoriesVisibility();this.controlListVisibility()})}else this.collection.fetch().then(()=>{Espo.Ui.notify(!1)})}controlListVisibility(){this.isExpanded?this.showListContainer():this.nestedCollectionIsBeingFetched||(!this.collection.models.length&&this.nestedCategoriesCollection&&this.nestedCategoriesCollection.models.length&&!this.hasTextFilter()?this.hideListContainer():this.showListContainer())}controlNestedCategoriesVisibility(){this.$nestedCategoriesContainer.removeClass("hidden")}getTreeCollection(t){this.getCollectionFactory().create(this.categoryScope).then(e=>{e.url=e.entityType+"/action/listTree";e.setOrder(null,null);this.collection.treeCollection=e;e.fetch().then(()=>t.call(this,e))})}applyCategoryToNestedCategoriesCollection(){if(this.nestedCategoriesCollection){this.nestedCategoriesCollection.parentId=this.currentCategoryId;this.nestedCategoriesCollection.currentCategoryId=this.currentCategoryId;this.nestedCategoriesCollection.currentCategoryName=this.currentCategoryName||this.currentCategoryId;this.nestedCategoriesCollection.where=[]}}getNestedCategoriesCollection(t){this.getCollectionFactory().create(this.categoryScope,async e=>{this.nestedCategoriesCollection=e;e.setOrder(null,null);e.url=e.entityType+"/action/listTree";e.data.checkIfEmpty=!0;this.getAcl().checkScope(this.scope,"create")||(e.data.onlyNotEmpty=!0);this.applyCategoryToNestedCategoriesCollection();this.nestedCollectionIsBeingFetched=!0;await e.fetch();this.nestedCollectionIsBeingFetched=!1;this.controlNestedCategoriesVisibility();this.controlListVisibility();this.updateHeader();t.call(this,e)})}getNestedCategoriesView(){return this.getView("nestedCategories")}getCategoriesView(){return this.getView("categories")}loadNestedCategories(){this.getNestedCategoriesCollection(e=>{this.createView("nestedCategories","views/record/list-nested-categories",{collection:e,itemCollection:this.collection,selector:".nested-categories-container",showEditLink:this.showEditLink,isExpanded:this.isExpanded,hasExpandedToggler:this.hasExpandedToggler,hasNavigationPanel:this.hasNavigationPanel,subjectEntityType:this.collection.entityType,primaryFilter:this._primaryFilter},e=>{e.render()})})}loadCategories(){this.getTreeCollection(e=>{this.createView("categories","views/record/list-tree",{collection:e,selector:".categories-container",selectable:!0,showRoot:!0,buttonsDisabled:!0,checkboxes:!1,showEditLink:this.showEditLink,isExpanded:this.isExpanded,hasExpandedToggler:this.hasExpandedToggler,readOnly:!0},e=>{this.currentCategoryId&&e.setSelected(this.currentCategoryId);e.render();this.listenTo(e,"select",i=>{if(this.isExpanded){this.currentCategoryId=null;this.currentCategoryName="";if(i&&i.id){this.currentCategoryId=i.id;this.currentCategoryName=i.attributes.name}this.collection.offset=0;this.collection.maxSize=this.defaultMaxSize;this.collection.reset();this.applyCategoryToCollection();this.collection.abortLastFetch();this.openCategory(this.currentCategoryId,this.currentCategoryName)}else{let e=null,t=null;if(i&&i.id){e=i.id;t=i.attributes.name}this.openCategory(e,t)}this.navigateToCurrentCategory()})})})}applyCategoryToCollection(){this.collection.whereFunction=()=>{let e;var t=this.isExpanded;t||this.hasTextFilter()?this.currentCategoryId&&(e={attribute:this.categoryField,type:this.categoryFilterType,value:this.currentCategoryId}):e=this.isCategoryMultiple?this.currentCategoryId?{attribute:this.categoryField,type:"linkedWith",value:[this.currentCategoryId]}:{attribute:this.categoryField,type:"isNotLinked"}:this.currentCategoryId?{attribute:this.categoryField+"Id",type:"equals",value:this.currentCategoryId}:{attribute:this.categoryField+"Id",type:"isNull"};if(e)return[e]}}getCreateAttributes(){let e;if(this.isCategoryMultiple){if(this.currentCategoryId){var t={};t[this.currentCategoryId]=this.getCurrentCategoryName();e={};var i=this.categoryField+"Ids",s=this.categoryField+"Names";e[i]=[this.currentCategoryId];e[s]=t;return e}return null}i=this.categoryField+"Id",s=this.categoryField+"Name";e={};e[i]=this.currentCategoryId;e[s]=this.getCurrentCategoryName();return e}getCurrentCategoryName(){return this.currentCategoryName||(this.nestedCategoriesCollection&&this.nestedCategoriesCollection.categoryData&&this.nestedCategoriesCollection.categoryData.name?this.nestedCategoriesCollection.categoryData.name:this.currentCategoryId)}actionManageCategories(){this.clearCategoryViews();var e="#"+this.categoryScope,t={};this.currentCategoryId&&(t.currentId=this.currentCategoryId);this.getRouter().navigate(e,{trigger:!1});this.getRouter().dispatch(this.categoryScope,"listTree",t)}getHeader(){if(!this.nestedCategoriesCollection)return super.getHeader();var t=this.nestedCategoriesCollection.path;if(!t||0===t.length)return super.getHeader();let i="#"+this.scope;if(this._primaryFilter){var e=this.getHelper().escapeString(this._primaryFilter);i+="/list/primaryFilter="+e}var e=document.createElement("span"),s=(e.style.userSelect="none",document.createElement("a"));s.href=i;s.textContent=this.translate(this.scope,"scopeNamesPlural");s.dataset.action="openCategory";s.classList.add("action");s.style.userSelect="none";e.append(s);var s=this.getHeaderIconHtml(),s=(s&&e.insertAdjacentHTML("afterbegin",s),[e]),e=this.nestedCategoriesCollection.categoryData.name,a=this.nestedCategoriesCollection.categoryData.upperId,r=this.nestedCategoriesCollection.categoryData.upperName;2<t.length&&s.push("...");if(a){t=this.getHelper().escapeString(a);let e=i+"/list/categoryId="+t;if(this._primaryFilter){t=this.getHelper().escapeString(this._primaryFilter);e+="&primaryFilter="+t}t=document.createElement("a");t.href=e;t.textContent=r;t.classList.add("action");t.dataset.action="openCategory";t.dataset.id=a;t.dataset.name=r;t.style.userSelect="none";s.push(t)}a=document.createElement("span");a.textContent=e;a.dataset.action="fullRefresh";a.style.cursor="pointer";a.style.userSelect="none";s.push(a);return this.buildHeaderHtml(s)}updateHeader(){this.getView("header")&&this.getView("header").reRender()}hideListContainer(){this.$listContainer.addClass("hidden")}showListContainer(){this.$listContainer.removeClass("hidden")}async actionToggleNavigationPanel(){this.hasNavigationPanel=!this.hasNavigationPanel;this.setNavigationPanelStoredValue(this.hasNavigationPanel);await this.reRender();this.loadNestedCategories()}prepareRecordViewOptions(e){super.prepareRecordViewOptions(e);e.forceDisplayTopBar=!1}async actionToggleExpandedFromNavigation(){this.isExpanded=!this.isExpanded;this.hasNavigationPanel=!0;this.setNavigationPanelStoredValue(this.hasNavigationPanel);var e=this.element.querySelector('a[data-role="expandButtonContainer"]');e&&e.classList.add("disabled");Espo.Ui.notifyWait();this.isExpanded?await this.actionExpand():await this.actionCollapse();Espo.Ui.notify()}async actionFullRefresh(){var e;await Promise.all([super.actionFullRefresh(),null==(e=this.nestedCategoriesCollection)?void 0:e.fetch()])}}e.default=s});define("views/global-stream",["exports","view","views/stream/record/list","views/record/search","search-manager"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);i=r(i);s=r(s);a=r(a);function r(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{templateContent=`
|
||
<div class="page-header">
|
||
<div class="row">
|
||
<div class="col-sm-7 col-xs-5">
|
||
<h3>
|
||
<span
|
||
data-action="fullRefresh"
|
||
style="user-select: none; cursor: pointer"
|
||
>{{translate 'GlobalStream' category='scopeNames'}}</span>
|
||
</h3>
|
||
</div>
|
||
<div class="col-sm-5 col-xs-7"></div>
|
||
</div>
|
||
</div>
|
||
<div class="search-container">{{{search}}}</div>
|
||
<div class="row">
|
||
<div class="col-md-8">
|
||
<div class="list-container list-container-panel">{{{list}}}</div>
|
||
</div>
|
||
</div>
|
||
`;collection;setup(){this.wait((async()=>{this.collection=await this.getCollectionFactory().create("Note");this.collection.url="GlobalStream";this.collection.maxSize=this.getConfig().get("recordsPerPage");this.collection.paginationByNumber=!0;this.setupSearchManager();await this.createSearchView()})());this.addActionHandler("fullRefresh",()=>this.actionFullRefresh())}setupSearchManager(){var e=new a.default(this.collection);e.loadStored();this.collection.where=e.getWhere();this.searchManager=e}createSearchView(){this.searchView=new s.default({collection:this.collection,searchManager:this.searchManager,isWide:!0,filtersLayoutName:"filtersGlobal"});return this.assignView("search",this.searchView,".search-container")}afterRender(){this.listView||this.fetchAndRender()}fetchAndRender(){Espo.Ui.notifyWait();this.collection.fetch().then(()=>{this.listView=new i.default({collection:this.collection,isUserStream:!0});this.assignView("list",this.listView,".list-container").then(()=>{Espo.Ui.notify(!1);this.listView.render()})})}async actionFullRefresh(){Espo.Ui.notifyWait();await this.collection.fetch();Espo.Ui.notify()}}e.default=o});define("views/edit",["exports","views/main"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="edit";name="Edit";optionsToPass=["returnUrl","returnDispatchParams","attributes","rootUrl","duplicateSourceId","returnAfterCreate","highlightFieldList"];headerView="views/header";recordView="views/record/edit";rootLinkDisabled=!1;rootUrl;nameAttribute;setup(){this.headerView=this.options.headerView||this.headerView;this.recordView=this.options.recordView||this.recordView;this.rootUrl=this.options.rootUrl||this.options.params.rootUrl||"#"+this.scope;this.nameAttribute=this.getMetadata().get(`clientDefs.${this.entityType}.nameAttribute`)||"name";this.setupHeader();this.setupRecord()}setupFinal(){super.setupFinal();this.wait(this.getHelper().processSetupHandlers(this,"edit"))}setupHeader(){this.createView("header",this.headerView,{model:this.model,fullSelector:"#main > .header",scope:this.scope})}setupRecord(){let t={model:this.model,fullSelector:"#main > .record",scope:this.scope,shortcutKeysEnabled:!0};this.optionsToPass.forEach(e=>{t[e]=this.options[e]});var e=this.options.params||{};e.rootUrl&&(t.rootUrl=e.rootUrl);e.rootData&&(t.rootData=e.rootData);e.focusForCreate&&(t.focusForCreate=!0);return this.createView("record",this.getRecordViewName(),t)}getRecordView(){return this.getView("record")}getRecordViewName(){return this.getMetadata().get("clientDefs."+this.scope+".recordViews.edit")||this.recordView}getHeader(){var e=this.getLanguage().translate(this.scope,"scopeNamesPlural");let t=document.createElement("span");t.text=e;t.style.userSelect="none";if(!this.options.noHeaderLinks&&!this.rootLinkDisabled){var i=document.createElement("a");i.href=this.rootUrl;i.classList.add("action");i.dataset.action="navigateToRoot";i.text=e;t=document.createElement("span");t.style.userSelect="none";t.append(i)}e=this.getHeaderIconHtml();e&&t.insertAdjacentHTML("afterbegin",e);if(this.model.isNew()){i=document.createElement("span");i.textContent=this.getLanguage().translate("create");i.style.userSelect="none";return this.buildHeaderHtml([t,i])}e=this.model.attributes[this.nameAttribute]||this.model.id;let s=document.createElement("span");s.textContent=e;if(!this.options.noHeaderLinks){i=`#${this.scope}/view/`+this.model.id,e=document.createElement("a");e.href=i;e.classList.add("action");e.append(s);s=e}return this.buildHeaderHtml([t,s])}updatePageTitle(){if(this.model.isNew()){let e=this.getLanguage().translate("Create")+" "+this.getLanguage().translate(this.scope,"scopeNames");this.setPageTitle(e)}else{var t=this.model.attributes[this.nameAttribute];let e=t||this.getLanguage().translate(this.scope,"scopeNames");this.setPageTitle(e)}}setupReuse(e){var t=this.getRecordView();t&&t.setupReuse&&t.setupReuse()}}e.default=s});define("views/user/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.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"});if(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",()=>{if(this.model.get("emailAddress")){this.showActionItem("generateNewPassword");this.showActionItem("sendPasswordChangeLink")}else{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","defaultTeam","contact","accounts","type","emailAddress"];e=e.filter(e=>{var t;return!this.model.hasField(e)||(t=this.getMetadata().get(["entityAcl","User","fields",e]),!t)||!!t.nonAdminReadOnly});e.forEach(e=>{this.setFieldReadOnly(e,!0)});this.getAcl().checkScope("Team")||this.setFieldReadOnly("defaultTeam",!0);this.hideField("layoutSet",!0)}}setupFieldAppearance(){this.controlFieldAppearance();this.listenTo(this.model,"change",()=>{this.controlFieldAppearance()})}controlFieldAppearance(){if("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")}else{this.showField("roles");this.showField("teams");this.showField("defaultTeam");this.hideField("portals");this.hideField("portalRoles");this.hideField("contact");this.hideField("accounts");this.hidePanel("portal");if("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")}else this.showField("title")}if(this.model.id===this.getUser().id)this.setFieldReadOnly("type");else if("admin"===this.model.get("type")||"regular"===this.model.get("type")){this.setFieldNotReadOnly("type");this.setFieldOptionList("type",["regular","admin"])}else this.setFieldReadOnly("type");this.getConfig().get("auth2FA")&&(this.model.isRegular()||this.model.isAdmin())||this.hideField("auth2FA")}actionChangePassword(){Espo.Ui.notifyWait();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.notifyWait();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(s){var e=this.options.layoutName||this.layoutName;this.getHelper().layoutManager.get(this.model.entityType,e,e=>{var t=Espo.Utils.cloneDeep(e),i=void 0!==t.find(e=>e.tabBreak);if(!this.getUser().isPortal()){t.push({label:"Teams and Access Control",name:"accessControl",tabBreak:i,tabLabel:this.translate("Settings","scopeNames"),rows:[[{name:"type"},{name:"isActive"}],[{name:"teams"},{name:"defaultTeam"}],[{name:"roles"},!1]]});if(this.model.isPortal()){t.push({label:"Portal",name:"portal",rows:[[{name:"portals"},{name:"accounts"}],[{name:"portalRoles"},{name:"contact"}]]});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"}]]});this.detailLayout=t;i={type:"record",layout:this.convertDetailLayout(t)};s(i)})}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.notifyWait();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",["exports","views/record/detail-side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupPanels(){super.setupPanels();let e=this.model;if(e.isApi()||e.isSystem()){this.hidePanel("activities",!0);this.hidePanel("history",!0);this.hidePanel("tasks",!0);this.hidePanel("stream",!0)}else{var t=this.getAcl().checkPermission("userCalendar",e);t||"team"!==this.getAcl().getPermissionLevel("userCalendar")||this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",()=>{this.getAcl().checkPermission("userCalendar",e)&&this.onPanelsReady(()=>{this.showPanel("activities","acl");this.showPanel("history","acl");e.isPortal()||this.showPanel("tasks","acl")})});if(!t){this.hidePanel("activities",!1,"acl");this.hidePanel("history",!1,"acl");this.hidePanel("tasks",!1,"acl")}e&&this.hidePanel("tasks",!0)}}}e.default=s});define("views/user/modals/select-position",["exports","views/modal","model","views/record/edit-for-modal","views/fields/enum"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);i=r(i);s=r(s);a=r(a);function r(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{templateContent='<div class="record no-side-margin">{{{record}}}</div>';className="dialog dialog-record";shortcutKeys={"Control+Enter":"apply"};constructor(e){super(e);this.props=e}setup(){this.headerText=this.translate("changePosition","actions","User")+" · "+this.props.name;this.buttonList=[{name:"save",label:"Save",style:"primary",onClick:()=>this.apply()},{name:"cancel",label:"Cancel"}];this.model=new i.default;this.model.setMultiple({position:this.props.position});this.recordView=new s.default({model:this.model,detailLayout:[{rows:[[{view:new a.default({name:"position",params:{options:["",...this.props.positionList]},labelText:this.translate("teamRole","fields","User")})},!1]]}]});this.assignView("record",this.recordView,".record")}apply(){if(!this.recordView.validate()){this.props.onApply(this.model.attributes.position);this.close()}}onBackdropClick(){this.recordView.isChanged||this.close()}}e.default=o});define("views/stream/reactions",["exports","view","views/record/list","helpers/misc/reactions"],function(e,t,r,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);r=s(r);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{templateContent=`
|
||
{{#each dataList}}
|
||
<a
|
||
class="reaction-count small text-soft"
|
||
role="button"
|
||
title="{{label}}"
|
||
data-type="{{type}}"
|
||
>
|
||
<span data-role="icon" class="{{iconClass}} {{#if reacted}} text-warning {{/if}}"></span>
|
||
<span data-role="count">{{count}}</span>
|
||
</a>
|
||
{{/each}}
|
||
`;availableReactions;iconClassMap;popover;constructor(e){super(e)}data(){let t=this.model.attributes.reactionCounts||{},i=this.model.attributes.myReactions||[];return{dataList:this.availableReactions.filter(e=>t[e]).map(e=>({type:e,count:t[e].toString(),label:this.translate("Reactions")+" · "+this.translate(e,"reactions"),iconClass:this.iconClassMap[e],reacted:i.includes(e)}))}}setup(){var e=new i.default,e=(this.availableReactions=e.getAvailableReactions(),e.getDefinitionList());this.iconClassMap=e.reduce((e,t)=>{e[t.type]=t.iconClass;return e},{});this.addHandler("click","a.reaction-count",(e,t)=>this.showUsers(t.dataset.type))}async showUsers(e){var t=this.element.querySelector(`a.reaction-count[data-type="${e}"]`);let i=Espo.Ui.popover(t,{placement:"bottom",content:`
|
||
<div class="center-align for-list-view">
|
||
<span class="fas fa-spinner fa-spin text-soft"></span>
|
||
</div>
|
||
`,preventDestroyOnRender:!0,noToggleInit:!0,keepElementTitle:!0,title:this.translate("Reactions")+" · "+this.translate(e,"reactions"),onHide:()=>{this.popover=void 0;this.trigger("popover-hidden")}},this);this.popover=i;var t=i.show(),t=(document.querySelector("#"+t).classList.add("popover-list-view"),`#${t} .popover-content`),s=document.querySelector(t),a=await this.getCollectionFactory().create("User");a.url=`Note/${this.model.id}/reactors/`+e;a.maxSize=this.getConfig().get("recordsPerPageSmall")||5;await a.fetch();if(document.body.contains(s)){s=new r.default({collection:a,listLayout:[{name:"name",view:"views/user/fields/name",link:!0}],checkboxes:!1,displayTotalCount:!1,headerDisabled:!0,buttonsDisabled:!0,rowActionsDisabled:!0});await this.assignView("users",s);s.setSelector(t);await s.render();this.listenToOnce(s,"modal-shown",()=>i.destroy())}else i.hide()}reRenderWhenNoPopover(){this.popover?this.once("popover-hidden",()=>this.reRender()):this.reRender()}}e.default=a});define("views/stream/panel",["exports","views/record/panels/relationship","underscore","views/note/fields/post","view-record-helper","views/fields/text"],function(e,t,i,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=o(t);i=o(i);s=o(s);a=o(a);r=o(r);function o(e){return e&&e.__esModule?e:{default:e}}class n extends t.default{template="stream/panel";rowActionsView="views/stream/record/row-actions/default";postingMode=!1;postDisabled=!1;relatedListFiltersDisabled=!0;layoutName=null;filterList=["all","posts","updates"];collection;_justPosted=!1;pinnedCollection;placeholderText;seed;additionalEvents={'focus textarea[data-name="post"]':function(){this.enablePostingMode(!0)},'keydown textarea[data-name="post"]':function(e){if("Control+Enter"===Espo.Utils.getKeyFromKeyEvent(e)){e.stopPropagation();e.preventDefault();this.post()}},'input textarea[data-name="post"]':function(){this.controlPreviewButton();this.controlPostButtonAvailability(this.postFieldView.getTextAreaElement().value)}};data(){var e=super.data();e.postDisabled=this.postDisabled;e.placeholderText=this.placeholderText;e.allowInternalNotes=this.allowInternalNotes;e.hasPinned=this.hasPinned;return e}controlPreviewButton(){this.$previewButton=this.$previewButton||this.$el.find(".stream-post-preview");""===this.postFieldView.getTextAreaElement().value?this.$previewButton.addClass("hidden"):this.$previewButton.removeClass("hidden")}enablePostingMode(s){this.$el.find(".buttons-panel").removeClass("hide");if(!this.postingMode){this.postFieldView.getTextAreaElement().value&&this.postFieldView.controlTextareaHeight();let i=!1;$("body").on("click.stream-panel",e=>{if(s&&!i)i=!0;else{var t=$(e.target);if(!t.parent().hasClass("remove-attachment")&&!$.contains(this.$postContainer.get(0),e.target)&&""===this.postFieldView.getTextAreaElement().value&&!$(e.target).closest(".popover-content").get(0)){t=this.seed.get("attachmentsIds")||[];t.length||this.getAttachmentsFieldView()&&this.getAttachmentsFieldView().isUploading||this.disablePostingMode()}}})}this.postingMode=!0;this.controlPreviewButton()}disablePostingMode(){this.postingMode=!1;this.setPostText(null);this.getAttachmentsFieldView()&&this.getAttachmentsFieldView().empty();this.$el.find(".buttons-panel").addClass("hide");$("body").off("click.stream-panel");this.postFieldView.getTextAreaElement().rows=1}setup(){this.events={...this.additionalEvents,...this.events};this.addHandler("click","button.post",()=>this.post());this.addActionHandler("switchInternalMode",()=>this.switchInternalMode());this.addActionHandler("preview",()=>this.preview());this.entityType=this.model.entityType;this.filter=this.getStoredFilter();this.setupTitle();this.placeholderText=this.placeholderText||this.translate("writeYourCommentHere","messages");this.allowInternalNotes=!1;this.getUser().isPortal()||(this.allowInternalNotes=this.getMetadata().get(["clientDefs",this.entityType,"allowInternalNotes"]));this.hasPinned="User"!==this.model.entityType;this.isInternalNoteMode=!1;this.storageTextKey=`stream-post-${this.model.entityType}-`+this.model.id;this.storageAttachmentsKey=`stream-post-attachments-${this.model.entityType}-`+this.model.id;this.storageIsInernalKey=`stream-post-is-internal-${this.model.entityType}-`+this.model.id;this.on("remove",()=>{this.storeControl();$(window).off("beforeunload.stream-"+this.cid)});$(window).off("beforeunload.stream-"+this.cid);$(window).on("beforeunload.stream-"+this.cid,()=>{this.storeControl()});this.formRecordHelper=new a.default;let t=this.getSessionStorage().get(this.storageAttachmentsKey);this.setupActions();var e=this.getModelFactory().create("Note",e=>{this.seed=e;if(t){this.hasStoredAttachments=!0;this.seed.set({attachmentsIds:t.idList,attachmentsNames:t.names,attachmentsTypes:t.types})}if(this.allowInternalNotes){this.getMetadata().get(["entityDefs","Note","fields","isInternal","default"])&&(this.isInternalNoteMode=!0);this.getSessionStorage().has(this.storageIsInernalKey)&&(this.isInternalNoteMode=this.getSessionStorage().get(this.storageIsInernalKey))}this.isInternalNoteMode&&this.seed.set("isInternal",!0);this.postFieldView=new s.default({name:"post",mode:"edit",params:{required:!0,rowsMin:1,preview:!1,attachmentField:"attachments"},model:this.seed,placeholderText:this.placeholderText,noResize:!0,recordHelper:this.formRecordHelper});this.assignView("postField",this.postFieldView,".textarea-container").then(e=>{this.initPostEvents(e)});this.wait(this.createCollection().then(()=>this.setupPinned()));this.listenTo(this.seed,"change:attachmentsIds",()=>{this.controlPostButtonAvailability()})});this.wait(e);this.defs.hidden||this.subscribeToWebSocket();this.once("show",()=>{this.isSubscribedToWebSocket||this.subscribeToWebSocket()});this.on("remove",()=>{this.isSubscribedToWebSocket&&this.unsubscribeFromWebSocket()})}switchInternalMode(){this.isInternalNoteMode=!this.isInternalNoteMode;this.internalModeButtonElement&&(this.isInternalNoteMode?this.internalModeButtonElement.classList.add("enabled"):this.internalModeButtonElement.classList.remove("enabled"))}subscribeToWebSocket(){if(this.webSocketManager.isEnabled()&&"User"!==this.model.entityType){var e=`streamUpdate.${this.model.entityType}.`+this.model.id;this.streamUpdateWebSocketTopic=e;this.isSubscribedToWebSocket=!0;this.webSocketManager.subscribe(e,(e,t)=>{if(t.createdById!==this.getUser().id||!this._justPosted){if(t.noteId){let e=this.collection.get(t.noteId);e&&e.fetch().then(()=>this.syncPinnedModel(e,!0));if(!t.pin)return}this.collection.fetchNew()}})}}unsubscribeFromWebSocket(){this.webSocketManager.unsubscribe(this.streamUpdateWebSocketTopic)}setupTitle(){this.title=this.translate("Stream");this.titleHtml=this.title;this.filter&&"all"!==this.filter&&(this.titleHtml+=" · "+this.translate(this.filter,"filters","Note"))}storeControl(){let e=!1;if(this.isRendered()){var t=this.seed.attributes.post;if(t&&t.length){this.getSessionStorage().set(this.storageTextKey,t);e=!0}else this.hasStoredText&&this.getSessionStorage().clear(this.storageTextKey)}t=this.seed.get("attachmentsIds")||[];if(t.length){this.getSessionStorage().set(this.storageAttachmentsKey,{idList:t,names:this.seed.get("attachmentsNames")||{},types:this.seed.get("attachmentsTypes")||{}});e=!0}else this.hasStoredAttachments&&this.getSessionStorage().clear(this.storageAttachmentsKey);e?this.getSessionStorage().set(this.storageIsInernalKey,this.isInternalNoteMode):this.getSessionStorage().clear(this.storageIsInernalKey)}createCollection(){return this.getCollectionFactory().create("Note",e=>{this.collection=e;e.url=`${this.model.entityType}/${this.model.id}/stream`;e.maxSize=this.getConfig().get("recordsPerPageSmall")||5;this.setFilter(this.filter)})}initPostEvents(e){this.listenTo(this.formRecordHelper,"upload-files:attachments",()=>{this.postingMode||this.enablePostingMode()});this.listenTo(e,"add-files",e=>{this.getAttachmentsFieldView().uploadFiles(e);this.postingMode||this.enablePostingMode()})}setPostText(e){this.seed.set("post",e,{silent:!0});this.postFieldView.getTextAreaElement().value=e||""}onSync(){if(this.hasPinned){this.pinnedCollection.add(this.collection.pinnedList);this.createView("pinnedList","views/stream/record/list",{selector:'> .list-container[data-role="pinned"]',collection:this.pinnedCollection,model:this.model,noDataDisabled:!0},e=>{e.render();this.listenTo(this.pinnedCollection,"change",(e,t)=>{t.userReaction&&this.syncPinnedModel(e,!1)});this.listenTo(e,"after:save",e=>{this.syncPinnedModel(e,!1)});this.listenTo(e,"after:delete",e=>{this.collection.remove(e.id);this.collection.trigger("update-sync")});this.listenTo(e,"quote-reply",e=>this.quoteReply(e))})}this.createView("list","views/stream/record/list",{selector:'> .list-container[data-role="stream"]',collection:this.collection,model:this.model},e=>{e.render();if(this.pinnedCollection){this.listenTo(e,"after:delete",e=>{this.pinnedCollection.remove(e.id);this.pinnedCollection.trigger("update-sync")});this.listenTo(e,"after:save",e=>{this.syncPinnedModel(e,!0)});this.listenTo(this.collection,"change",(e,t)=>{t.userReaction&&this.syncPinnedModel(e,!0)});this.listenTo(e,"quote-reply",e=>this.quoteReply(e))}});this.stopListening(this.model,"all");this.stopListening(this.model,"destroy");setTimeout(()=>{this.listenTo(this.model,"all",e=>{["sync","after:relate"].includes(e)&&this.collection.fetchNew()});this.listenTo(this.model,"destroy",()=>{this.stopListening(this.model,"all")})},500)}afterRender(){this.$attachments=this.$el.find("div.attachments");this.$postContainer=this.$el.find(".post-container");this.$postButton=this.$el.find("button.post");var e=this.getSessionStorage().get(this.storageTextKey);if(e&&e.length){this.hasStoredText=!0;this.setPostText(e)}this.controlPostButtonAvailability(e);this.allowInternalNotes&&(this.internalModeButtonElement=this.element.querySelector('.action[data-action="switchInternalMode"]'));this.isInternalNoteMode&&this.internalModeButtonElement.classList.add("enabled");this.defs.hidden?this.once("show",()=>{this.collection.fetch().then(()=>this.onSync())}):this.collection.fetch().then(()=>this.onSync());var e=this.$el.find(".buttons-panel a.stream-post-info"),t=this.translate("infoMention","messages","Stream"),i=this.translate("infoSyntax","messages","Stream");let s=[];[["code","`{text}`"],["multilineCode","```{text}```"],["strongText","**{text}**"],["emphasizedText","*{text}*"],["deletedText","~~{text}~~"],["blockquote","> {text}"],["link","[{text}](url)"]].forEach(e=>{var t=this.translate(e[0],"syntaxItems","Stream"),t=e[1].replace("{text}",t);s.push(t)});var a=$("<ul>").append(s.map(e=>$("<li>").text(e))),t=this.getHelper().transformMarkdownInlineText(t)+"<br><br>"+this.getHelper().transformMarkdownInlineText(i)+":<br>"+a.get(0).outerHTML;Espo.Ui.popover(e,{content:t},this);this.createView("attachments","views/stream/fields/attachment-multiple",{model:this.seed,mode:"edit",selector:"div.attachments-container",name:"attachments",recordHelper:this.formRecordHelper},e=>{e.render()})}syncPinnedModel(e,t){if(!t||this.pinnedCollection){var i=(t?this.pinnedCollection:this.collection).get(e.id);i&&i.setMultiple({post:e.attributes.post,attachmentsIds:e.attributes.attachmentsIds,attachmentsNames:e.attributes.attachmentsNames,attachmentsTypes:e.attributes.attachmentsTypes,data:e.attributes.data,reactionCounts:e.attributes.reactionCounts,myReactions:e.attributes.myReactions})}}afterPost(){this.postFieldView.getTextAreaElement().rows=1}getAttachmentsFieldView(){return this.getView("attachments")}async post(){this.postFieldView.fetchToModel();var e=this.seed.attributes.post||"",t=this.postFieldView.getTextAreaElement();this.disablePostButton();t.disabled=!0;let i=await this.getModelFactory().create("Note");if(this.getAttachmentsFieldView().validateReady()){t.disabled=!1;this.enablePostButton()}else{var s=this.seed.get("attachmentsIds")||[];if(""===e.trim()&&0===s.length){Espo.Ui.error(this.translate("Post cannot be empty"));t.disabled=!1;this.controlPostButtonAvailability();t.focus()}else{i.set("post",e||null);i.set("attachmentsIds",[...s]);i.set("type","Post");i.set("isInternal",this.isInternalNoteMode);this.prepareNoteForPost(i);this._justPosted=!0;setTimeout(()=>this._justPosted=!1,1e3);Espo.Ui.notifyWait();try{await i.save(null)}catch(e){this.postFieldView.getTextAreaElement().disabled=!1;this.controlPostButtonAvailability();return}Espo.Ui.success(this.translate("Posted"));this.collection.fetchNew().then(()=>this.afterPostAndFetch(i));t.disabled=!1;this.disablePostingMode();this.afterPost();this.getPreferences().get("followEntityOnStreamPost")&&this.model.set("isFollowed",!0);this.getSessionStorage().clear(this.storageTextKey);this.getSessionStorage().clear(this.storageAttachmentsKey);this.getSessionStorage().clear(this.storageIsInernalKey)}}}afterPostAndFetch(e){var t=this.getListView().getView(e.id);if(t){t=t.getView("post");t instanceof r.default?t.seeMore():console.error("Post field not obtained.")}}prepareNoteForPost(e){e.set("parentId",this.model.id);e.set("parentType",this.model.entityType)}getButtonList(){return[]}setupActions(){this.actionList=[];this.actionList.push({action:"viewPostList",text:this.translate("View Posts","labels","Note"),onClick:()=>this.actionViewPostList()});"User"!==this.model.entityType&&this.actionList.push({action:"viewAttachmentList",text:this.translate("View Attachments","labels","Note"),onClick:()=>this.actionViewAttachmentList()});"User"===this.model.entityType&&this.actionList.push({action:"viewUserActivity",text:this.translate("View Activity","labels","Note"),onClick:()=>this.actionViewUserActivity()});this.actionList.push(!1);this.filterList.forEach(e=>{var t="all"===e?!this.filter:e===this.filter;this.actionList.push({action:"selectFilter",html:$("<span>").append($("<span>").addClass("check-icon fas fa-check pull-right").addClass(t?"":" hidden"),$("<div>").text(this.translate(e,"filters","Note"))).get(0).innerHTML,data:{name:e}})})}actionViewPostList(){var e=this.model.entityType+"/"+this.model.id+"/posts",e={entityType:"Note",viewOptions:{url:e,title:this.translate("Stream")+" @right "+this.translate("posts","filters","Note"),forceSelectAllAttributes:!0,forcePagination:!0,rowActionsView:"views/stream/record/row-actions/detached"}};this.actionViewRelatedList(e)}actionViewAttachmentList(){var e=`${this.model.entityType}/${this.model.id}/streamAttachments`,t=this.translate("Stream")+" @right "+this.translate("Attachment","scopeNamesPlural"),t={model:this.model,link:"streamAttachments",entityType:"Attachment",title:t,layoutName:"listForStream",defaultOrder:"desc",defaultOrderBy:"createdAt",url:e,listViewName:this.listViewName,createDisabled:!0,selectDisabled:!0,unlinkDisabled:!0,removeDisabled:!0,rowActionsView:null,filtersDisabled:!0,searchPanelDisabled:!0,massActionRemoveDisabled:!0};Espo.Ui.notifyWait();this.createView("modal","views/modals/related-list",t,e=>{Espo.Ui.notify();e.render();this.listenTo(e,"action",(e,t)=>{Espo.Utils.handleAction(this,e,t)})})}actionViewUserActivity(){var e=`User/${this.model.id}/stream/own`,e={entityType:"Note",viewOptions:{url:e,title:this.translate("Stream")+" @right "+this.translate("activity","filters","Note"),forceSelectAllAttributes:!0,filtersLayoutName:"filtersGlobal",forcePagination:!0,rowActionsView:"views/stream/record/row-actions/detached"}};this.actionViewRelatedList(e)}getStoredFilter(){return this.getStorage().get("state","streamPanelFilter"+this.entityType)||null}storeFilter(e){e?this.getStorage().set("state","streamPanelFilter"+this.entityType,e):this.getStorage().clear("state","streamPanelFilter"+this.entityType)}setFilter(e){this.filter=e;this.collection.data.filter=null;e&&(this.collection.data.filter=e)}getListView(){return this.getView("list")}async actionRefresh(){if(this.getListView()){Espo.Ui.notifyWait();await this.getListView().showNewRecords();Espo.Ui.notify()}}preview(){this.postFieldView.preview()}controlPostButtonAvailability(e){var t=this.seed.get("attachmentsIds")||[];let i=this.seed.get("post");void 0!==e&&(i=e);t=!i&&!t.length;t?this.$postButton.hasClass("disabled")||this.disablePostButton():this.$postButton.hasClass("disabled")&&this.enablePostButton()}disablePostButton(){this.$postButton.addClass("disabled").attr("disabled","disabled")}enablePostButton(){this.$postButton.removeClass("disabled").removeAttr("disabled")}setupPinned(){if(this.hasPinned){var e=this.getCollectionFactory().create("Note").then(e=>{this.pinnedCollection=e;this.listenTo(this.collection,"sync",()=>{if(this.collection.pinnedList&&!i.default.isEqual(this.collection.pinnedList,this.pinnedCollection.models.map(e=>e.attributes))){this.pinnedCollection.reset();this.pinnedCollection.add(this.collection.pinnedList);this.pinnedCollection.trigger("sync",this.pinnedCollection,{},{})}});this.listenTo(this.pinnedCollection,"pin unpin",()=>{this.collection.fetchNew()});this.listenTo(this.pinnedCollection,"pin",e=>{var t=this.collection.get(e);t&&t.set("isPinned",!0)});this.listenTo(this.pinnedCollection,"unpin",e=>{var t=this.collection.get(e);t&&t.set("isPinned",!1)})});this.wait(e)}}quoteReply(e){var t="> "+e.split(/\r?\n|\r|\n/g).join("\n> ");let i=this.seed.attributes.post||"";""!==i&&(i+="\n");i+=t+"\n\n";this.setPostText(i);this.controlPreviewButton();this.controlPostButtonAvailability();this.postFieldView.controlTextareaHeight();this.enablePostingMode();setTimeout(()=>{var e=this.postFieldView.getTextAreaElement();e.focus();e.setSelectionRange(e.value.length,e.value.length)},1)}}e.default=n});define("views/stream/record/row-actions/default",["exports","views/record/row-actions/default","helpers/misc/reactions","views/stream/record/row-actions/reactions/reactions"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{pinnedMaxCount;isDetached=!1;availableReactions;reactionHelper;setup(){super.setup();this.parentModel=this.options.parentModel;if(this.options.isThis&&this.parentModel){this.listenTo(this.model,"change:isPinned",()=>this.reRender());this.listenToOnce(this.parentModel,"acl-edit-ready",()=>this.reRender());this.pinnedMaxCount=this.getConfig().get("notePinnedMaxCount")}this.reactionHelper=new i.default;this.availableReactions=this.reactionHelper.getAvailableReactions()}getActionList(){let t=[];this.options.acl.edit&&this.options.isEditable&&t.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},groupIndex:0});this.options.acl.edit&&this.options.isRemovable&&t.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});this.options.isThis&&["Post","EmailReceived","EmailSent"].includes(this.model.attributes.type)&&this.parentModel&&this.getAcl().checkModel(this.parentModel,"edit")&&!this.isDetached&&(this.model.attributes.isPinned?t.push({action:"unpin",label:"Unpin",data:{id:this.model.id},groupIndex:2}):0<this.pinnedMaxCount&&t.push({action:"pin",label:"Pin",data:{id:this.model.id},groupIndex:2}));this.options.isThis&&"Post"===this.model.attributes.type&&this.model.attributes.post&&!this.isDetached&&t.push({action:"quoteReply",label:"Quote Reply",data:{id:this.model.id},groupIndex:1});this.hasReactions()&&this.getReactionItems().forEach(e=>t.push(e));return t}hasReactions(){return"Post"===this.model.attributes.type&&this.availableReactions.length&&!this.options.isNotification}async prepareRender(){if(this.hasReactions()&&1!==this.availableReactions.length){var e=new s.default({reactions:this.availableReactions.map(e=>({type:e,iconClass:this.reactionHelper.getIconClass(e),label:this.translate(e,"reactions"),isReacted:this.isUserReacted(e)}))});await this.assignView("reactions",e,'[data-view-key="reactions"]')}}isUserReacted(e){var t=this.model.attributes.myReactions||[];return t.includes(e)}getReactionItems(){let a=[];if(1<this.availableReactions.length)return[{viewKey:"reactions",groupIndex:11}];this.availableReactions.forEach(e=>{var t=this.reactionHelper.getIconClass(e),i=this.getHelper().escapeString(this.translate(e,"reactions"));let s=t?`<span class="${t} text-soft item-icon"></span><span class="item-text">${i}</span>`:i;t=this.isUserReacted(e);t&&(s='<span class="check-icon fas fa-check pull-right"></span>'+`<div>${s}</div>`);a.push({action:t?"unReact":"react",html:s,data:{id:this.model.id,type:e},groupIndex:3})});return a}}e.default=r});define("views/stream/notes/relate",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/create-related";messageName="relate";data(){return{...super.data(),relatedTypeString:this.translateEntityType(this.entityType),iconHtml:this.getIconHtml(this.entityType,this.entityId)}}init(){this.getUser().isAdmin()&&(this.isRemovable=!0);super.init()}setup(){var e=this.model.get("data")||{};this.entityType=this.model.get("relatedType")||e.entityType||null;this.entityId=this.model.get("relatedId")||e.entityId||null;this.entityName=this.model.get("relatedName")||e.entityName||null;this.messageData.relatedEntityType=this.translateEntityType(this.entityType);this.messageData.relatedEntity=$("<a>").attr("href",`#${this.entityType}/view/`+this.entityId).text(this.entityName).attr("data-scope",this.entityType).attr("data-id",this.entityId);this.createMessage()}}e.default=s});define("views/stream/notes/email-received",["exports","views/stream/note","views/email/fields/body","views/fields/attachment-multiple"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="stream/notes/email-received";isRemovable=!1;isSystemAvatar=!0;detailsIsShown=!1;bodyFieldView;attachmentsFieldView;formModel;emailId;emailNotLoaded=!1;data(){return{...super.data(),emailId:this.emailId,emailName:this.emailName,hasPost:this.hasPost&&(!this.detailsIsShown||!this.bodyFieldView),mutedPost:this.hasPost&&this.detailsIsShown&&!this.bodyFieldView&&!this.emailNotLoaded,hasAttachments:this.hasAttachments,emailIconClassName:this.getMetadata().get(["clientDefs","Email","iconClass"])||"",isPinned:this.isThis&&this.model.get("isPinned")&&this.model.collection&&!this.model.collection.pinnedList,detailsIsShown:this.detailsIsShown,hasExpand:!this.options.isNotification}}setup(){this.addActionHandler("expandDetails",()=>this.toggleDetails());var e=this.model.get("data")||{};this.emailId=e.emailId;this.emailName=e.emailName;if(this.parentModel&&this.model.attributes.parentType===this.parentModel.entityType&&this.model.attributes.parentId===this.parentModel.id){if(this.model.attributes.post){this.createField("post",null,null,"views/stream/fields/post");this.hasPost=!0}if((this.model.attributes.attachmentsIds||[]).length){this.createField("attachments","attachmentMultiple",{},"views/stream/fields/attachment-multiple",{previewSize:this.options.isNotification||this.options.isUserStream?"small":"medium"});this.hasAttachments=!0}}this.messageData.email=$("<a>").attr("href","#Email/view/"+e.emailId).text(e.emailName).attr("data-scope","Email").attr("data-id",e.emailId);this.setupEmailMessage(e);this.isThis&&(this.messageName+="This");this.createMessage()}getPostView(){return this.getView("post")}setupEmailMessage(e){this.messageName="emailReceived";e.isInitial&&(this.messageName+="Initial");if(e.personEntityId){this.messageName+="From";this.messageData.from=$("<a>").attr("href",`#${e.personEntityType}/view/`+e.personEntityId).text(e.personEntityName).attr("data-scope",e.personEntityType).attr("data-id",e.personEntityId)}this.model.attributes.parentType===e.personEntityType&&this.model.attributes.parentId===e.personEntityId&&(this.isThis=!0)}async toggleDetails(){this.detailsIsShown=!this.detailsIsShown;if(!this.detailsIsShown&&this.formModel){this.formModel.abortLastFetch();Espo.Ui.notify()}var t=this.getPostView();await this.reRender();if(this.detailsIsShown&&this.emailId){t&&(t.seeMoreText=!1);if(this.bodyFieldView){this.bodyFieldView.toShowQuotePart=!1;await this.bodyFieldView.reRender()}else{this.formModel=await this.getModelFactory().create("Email");this.formModel.id=this.emailId;Espo.Ui.notifyWait();try{await this.formModel.fetch()}catch(e){this.emailNotLoaded=!0;await this.reRender();return}this.bodyFieldView=new i.default({name:"body",model:this.formModel,mode:"detail",readOnly:!0});await this.assignView("bodyField",this.bodyFieldView,'[data-name="body"]');if(!this.hasAttachments&&this.formModel.attributes.attachmentsIds&&this.formModel.attributes.attachmentsIds.length){this.attachmentsFieldView=new s.default({name:"attachments",model:this.formModel,mode:"detail",readOnly:!0});await this.assignView("attachmentsField",this.attachmentsFieldView,'[data-name="attachments"]')}Espo.Ui.notify();t=t&&t.element?t.element.offsetHeight:null;await this.reRender();if(t){let e=this.bodyFieldView.element;if(e){e.style.minHeight=t+"px";setTimeout(()=>e.style.minHeight="",200)}}}}}}e.default=r});define("views/stream/modals/view-audit-log",["exports","views/modal","views/stream/record/list","jquery"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{templateContent='<div class="record list-container">{{{record}}}</div>';backdrop=!0;constructor(e){super(e)}setup(){var e=this.model.get("name")||this.model.id;this.$header=(0,s.default)("<span>").append((0,s.default)("<span>").text(e),' <span class="chevron-right"></span> ',(0,s.default)("<span>").text(this.translate("Audit Log")));this.buttonList=[{name:"close",label:"Close",onClick:e=>{e.close()}}];this.wait(this.getCollectionFactory().create("Note").then(e=>{e.url=`${this.model.entityType}/${this.model.id}/updateStream`;e.maxSize=this.getConfig().get("recordsPerPage");var t=new i.default({collection:e,model:this.model,skipBuildRows:!0,type:"listAuditLog"});Espo.Ui.notifyWait();return this.assignView("record",t,".record").then(()=>{e.fetch().then(()=>Espo.Ui.notify(!1))})}))}}e.default=r});define("views/site/navbar",["exports","view","jquery","helpers/site/tabs"],function(e,t,v,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);v=s(v);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="site/navbar";currentTab=null;navbarHeaderElement;events={"click .navbar-collapse.in a.nav-link":function(e){var t=(0,v.default)(e.currentTarget),t=t.attr("href");t&&this.xsCollapse()},"click a.nav-link":function(){this.isSideMenuOpened&&this.closeSideMenu()},"click a.navbar-brand.nav-link":function(){this.xsCollapse()},"click a.minimizer":function(){this.switchMinimizer()},"click a.side-menu-button":function(){this.switchSideMenu()},'click [data-action="toggleCollapsable"]':function(){this.toggleCollapsable()},"click li.show-more a":function(e){e.stopPropagation();this.showMoreTabs()},"click .not-in-more > .nav-link-group":function(e){this.handleGroupDropdownClick(e)},"click .in-more .nav-link-group":function(e){this.handleGroupDropdownClick(e)}};data(){return{tabDefsList1:this.tabDefsList.filter(e=>!e.isInMore),tabDefsList2:this.tabDefsList.filter(e=>e.isInMore),title:this.options.title,menuDataList:this.menuDataList,userId:this.getUser().id,logoSrc:this.getLogoSrc(),itemDataList:this.getItemDataList()}}handleGroupDropdownClick(e){var t=(0,v.default)(e.currentTarget).parent();if(t.parent().hasClass("more-dropdown-menu")){e.stopPropagation();t.hasClass("open")?t.removeClass("open"):this.handleGroupDropdownInMoreOpen(t)}else t.hasClass("open")||this.handleGroupDropdownOpen(t)}handleGroupMenuPosition(i,s){if(this.navbarAdjustmentHandler&&this.navbarAdjustmentHandler.handleGroupMenuPosition())this.handleGroupMenuPosition(i,s);else{var a=s.get(0).getBoundingClientRect(),r=window.innerHeight,o=this.isSide();if(o||s.parent().hasClass("more-dropdown-menu")){var n=i.children().length,o=(o?this.$tabs.find("> .tab:not(.tab-divider)"):this.$tabs.find(".tab-group > ul > li:visible")).height(),o=o*n;let e=a.top-1;if(e+o>r){e=r-o-2;e<0&&(e=0)}i.css({top:e+"px"});let t=r-e;this.handleGroupMenuScrolling(i,s,t)}else{let e=r-a.bottom;this.handleGroupMenuScrolling(i,s,e)}}}handleGroupMenuScrolling(e,t,i){e.css({maxHeight:i+"px"});let s=(0,v.default)(window);s.off("scroll.navbar-tab-group");s.on("scroll.navbar-tab-group",()=>{e.get(0)&&t.get(0)&&t.hasClass("open")&&e.scrollTop(s.scrollTop())})}handleGroupDropdownOpen(e){var t=e.find(".dropdown-menu");this.handleGroupMenuPosition(t,e);setTimeout(()=>{this.adjustBodyMinHeight()},50);e.off("hidden.bs.dropdown");e.on("hidden.bs.dropdown",()=>{this.adjustBodyMinHeight()})}handleGroupDropdownInMoreOpen(e){this.$el.find(".tab-group.tab.dropdown").removeClass("open");var t=this.$el.find(".more-dropdown-menu"),i=(e.addClass("open"),e.find(".dropdown-menu")),t=t.get(0).getBoundingClientRect(),s=t.right;i.css({left:s+"px"});this.handleGroupMenuPosition(i,e);this.adjustBodyMinHeight();this.isSide()||s+i.width()>window.innerWidth&&i.css({left:t.left-i.width()-2})}isCollapsibleVisible(){return this.$el.find(".navbar-body").hasClass("in")}toggleCollapsable(){this.isCollapsibleVisible()?this.hideCollapsable():this.showCollapsable()}hideCollapsable(){this.$el.find(".navbar-body").removeClass("in")}showCollapsable(){this.$el.find(".navbar-body").addClass("in")}xsCollapse(){this.hideCollapsable()}isMinimized(){return document.body.classList.contains("minimized")}switchSideMenu(){this.isMinimized()&&(this.isSideMenuOpened?this.closeSideMenu():this.openSideMenu())}openSideMenu(){this.isSideMenuOpened=!0;document.body.classList.add("side-menu-opened");this.$sideMenuBackdrop=(0,v.default)("<div>").addClass("side-menu-backdrop").click(()=>this.closeSideMenu()).appendTo(document.body);this.$sideMenuBackdrop2=(0,v.default)("<div>").addClass("side-menu-backdrop").click(()=>this.closeSideMenu()).appendTo(this.$navbarRightContainer)}closeSideMenu(){this.isSideMenuOpened=!1;document.body.classList.remove("side-menu-opened");this.$sideMenuBackdrop.remove();this.$sideMenuBackdrop2.remove()}switchMinimizer(){if(this.isMinimized()){this.isSideMenuOpened&&this.closeSideMenu();document.body.classList.remove("minimized");this.getStorage().set("state","siteLayoutState","expanded")}else{document.body.classList.add("minimized");this.getStorage().set("state","siteLayoutState","collapsed")}if(window.Event)try{window.dispatchEvent(new Event("resize"))}catch(e){}}getLogoSrc(){var e=this.getConfig().get("companyLogoId");return e?this.getBasePath()+"?entryPoint=LogoImage&id="+e:this.getBasePath()+(this.getThemeManager().getParam("logo")||"client/img/logo.svg")}getTabList(){var e=this.tabsHelper.getTabList();this.isSide()&&e.unshift("Home");return e}setup(){this.addHandler("click","a.action",(e,t)=>{let i,s=t.dataset.name;if(s){var a=this.menuDataList.find(e=>e.name===s);a.handler&&a.actionFunction&&(i={handler:a.handler,actionFunction:a.actionFunction})}Espo.Utils.handleAction(this,e,t,i)});this.getRouter().on("routed",e=>{e.controller?this.selectTab(e.controller):this.selectTab(!1)});this.tabsHelper=new i.default(this.getConfig(),this.getPreferences(),this.getUser(),this.getAcl(),this.getMetadata(),this.getLanguage());let a=this.getMetadata().get("app.clientNavbar.items")||{},e=(this.itemList=Object.keys(a).filter(e=>!a[e].disabled).sort((e,t)=>{var i=a[e].order||0,s=a[t].order||0;return i-s}),()=>{this.setupTabDefsList();return Promise.all(this.itemList.map(e=>this.createItemView(e)))}),t=()=>{e().then(()=>this.reRender())};e();this.listenTo(this.getHelper().settings,"sync",()=>t());this.listenTo(this.getHelper().language,"sync",()=>t());this.listenTo(this.getHelper().preferences,"update",e=>{e&&(e.includes("tabList")||e.includes("addCustomTabs")||e.includes("useCustomTabList"))&&t()});this.once("remove",()=>{(0,v.default)(window).off("resize.navbar");(0,v.default)(window).off("scroll.navbar");(0,v.default)(window).off("scroll.navbar-tab-group");document.body.classList.remove("has-navbar")});this.setupMenu()}getItemDataList(){let i={};this.itemList.forEach(e=>{i[e]=this.getItemDefs(e)});return this.itemList.filter(e=>{var t=i[e];return!(!t||t.accessDataList&&!Espo.Utils.checkAccessDataList(t.accessDataList,this.getAcl(),this.getUser()))&&(t=this.getView(e+"Item"),!("isAvailable"in t)||t.isAvailable())}).map(e=>({key:e+"Item",name:e,class:i[e].class||""}))}getItemDefs(e){return this.getMetadata().get(["app","clientNavbar","items",e])}createItemView(e){var t,i=this.getItemDefs(e);return i&&i.view?(t=e+"Item",this.createView(t,i.view,{selector:`[data-item="${e}"]`})):Promise.resolve()}adjustTop(){let r=this.getThemeManager().getParam("screenWidthXs"),o=this.getNavbarHeight(),e=(0,v.default)(window),n=this.$tabs,l=this.$more,d=this.$moreDropdown;e.off("scroll.navbar");e.off("resize.navbar");this.$moreDropdown.off("shown.bs.dropdown.navbar");this.off("show-more-tabs");e.on("resize.navbar",()=>g());e.on("scroll.navbar",()=>{this.isMoreDropdownShown&&l.scrollTop(e.scrollTop())});this.$moreDropdown.on("shown.bs.dropdown.navbar",()=>{l.scrollTop(e.scrollTop())});this.on("show-more-tabs",()=>{l.scrollTop(e.scrollTop())});let t=()=>{var e=window.innerHeight,t=window.innerWidth;if(t<r){l.css("max-height","");l.css("overflow-y","")}else{l.css("overflow-y","hidden");l.css("max-height",e-o+"px")}};e.on("resize.navbar",()=>t());t();let h=()=>{var e=n.children().length;if(!(e<=1)){e=n.children().eq(e-2);e.prependTo(l)}},c=()=>{var e=l.children().eq(0);e.length&&e.insertBefore(d)},u=(0,v.default)("#navbar .navbar");if(window.innerWidth>=r){n.children("li").each(()=>{h()});u.css("max-height","unset");u.css("overflow","visible")}let m=this.navbarHeaderElement.clientWidth+this.$navbarRight.width(),p=this.tabList.length,i=o+1;this.adjustBodyMinHeightMethodName="adjustBodyMinHeightTop";var s=(0,v.default)("#nav-more-tabs-dropdown");let f=s.closest("li"),g=()=>{var i=window.innerWidth,s=f.width();l.children("li.not-in-more").each(()=>{c()});if(!(i<r)){u.css("max-height",o+"px");u.css("overflow","hidden");l.parent().addClass("hidden");var i=this.$el.width(),a=i-m-s;let e=n.width(),t=0;for(;e>a;){h();e=n.width();t++;if(t>=p){setTimeout(()=>g(),100);break}}u.css("max-height","unset");u.css("overflow","visible");0<l.children().length&&d.removeClass("hidden")}},a=e=>{if(u.height()>i){g();setTimeout(()=>a(!0),200)}else{if(!e){g();setTimeout(()=>a(!0),10)}setTimeout(()=>a(!0),1e3)}};u.height()<=i&&0===l.children().length&&l.parent().addClass("hidden");a()}adjustSide(){let s=this.getThemeManager().getParam("screenWidthXs"),e=(0,v.default)(window),t=this.$tabs,i=this.$more,a=this.$tabs.get(0),r=this.$more.get(0);this.adjustBodyMinHeightMethodName="adjustBodyMinHeightSide";0===i.children().length&&i.parent().addClass("hidden");e.off("scroll.navbar");e.off("resize.navbar");this.$moreDropdown.off("shown.bs.dropdown.navbar");this.off("show-more-tabs");e.on("scroll.navbar",()=>{e.scrollTop()?this.$navbarRight.addClass("shadowed"):this.$navbarRight.removeClass("shadowed");t.scrollTop(e.scrollTop());this.isMoreDropdownShown&&i.scrollTop(e.scrollTop())});this.$moreDropdown.on("shown.bs.dropdown.navbar",()=>{i.scrollTop(e.scrollTop())});this.on("show-more-tabs",()=>{i.scrollTop(e.scrollTop())});let o=()=>{var e=window.innerHeight,t=window.innerWidth,i=this.getStaticItemsHeight();this.$minimizer.removeClass("hidden");if(t<s){a.style.height="auto";r&&(r.style.maxHeight="")}else{a.style.height=e-i+"px";r&&(r.style.maxHeight=e+"px")}};e.on("resize.navbar",()=>{o();this.adjustBodyMinHeight()});o();this.adjustBodyMinHeight()}getNavbarHeight(){return this.getFontSizeFactor()*(this.getThemeManager().getParam("navbarHeight")||43)}isSide(){return"side"===this.getThemeManager().getParam("navbar")}getStaticItemsHeight(){return this.getFontSizeFactor()*(this.getThemeManager().getParam("navbarStaticItemsHeight")||97)}getFontSizeFactor(){return this.getThemeManager().getFontSizeFactor()}adjustBodyMinHeight(){this.adjustBodyMinHeightMethodName&&this[this.adjustBodyMinHeightMethodName]()}adjustBodyMinHeightSide(){let s=this.$tabs.get(0).scrollHeight+this.getStaticItemsHeight(),a=0;this.$more.find("> li:visible").each((e,t)=>{var i=(0,v.default)(t);a+=i.outerHeight(!0)});s=Math.max(s,a);let r=this.$tabs.find("> .tab:not(.tab-divider)").height();this.tabList.forEach((e,t)=>{if("object"==typeof e){var i=this.$el.find('li.tab[data-name="group-'+t+'"]');if(i.hasClass("open")){i=(e.itemList||[]).length,i=r*i;i>s&&(s=i)}}});document.body.style.minHeight=s+"px"}adjustBodyMinHeightTop(){let s=this.getNavbarHeight(),a=(this.$more.find("> li").each((e,t)=>{var i=(0,v.default)(t);if(this.isMoreTabsShown){if(i.hasClass("show-more"))return}else if(i.hasClass("after-show-more"))return;s+=i.height()}),this.$tabs.find(".tab-group > ul > li:visible").height());this.tabList.forEach((e,t)=>{if("object"==typeof e){var i=this.$el.find('li.tab[data-name="group-'+t+'"]');if(i.hasClass("open")){i=(e.itemList||[]).length,i=a*i;i>s&&(s=i)}}});document.body.style.minHeight=s+"px"}afterRender(){this.$tabs=this.$el.find("ul.tabs");this.$more=this.$tabs.find("li.more > ul");this.$minimizer=this.$el.find("a.minimizer");document.body.classList.add("has-navbar");var e=this.$moreDropdown=this.$tabs.find("li.more");e.on("shown.bs.dropdown",()=>{this.isMoreDropdownShown=!0;this.adjustBodyMinHeight()});e.on("hidden.bs.dropdown",()=>{this.isMoreDropdownShown=!1;this.hideMoreTabs();this.adjustBodyMinHeight()});this.selectTab(this.getRouter().getLast().controller);let t=this.getStorage().get("state","siteLayoutState"),i=(t=t||(1320<(0,v.default)(window).width()?"expanded":"collapsed"),!1);"collapsed"===t&&(i=!0);i&&document.body.classList.add("minimized");this.$navbar=this.$el.find("> .navbar");this.$navbarRightContainer=this.$navbar.find("> .navbar-body > .navbar-right-container");this.$navbarRight=this.$navbarRightContainer.children();this.navbarHeaderElement=this.element.querySelector(".navbar-header");e=this.getThemeManager().getParam("navbarAdjustmentHandler");e?Espo.loader.require(e,e=>{var t=new e(this);this.navbarAdjustmentHandler=t;t.process()}):this.getThemeManager().getParam("skipDefaultNavbarAdjustment")||this.adjustAfterRender()}adjustAfterRender(){if(this.isSide()){let e=()=>{this.$navbar.height()<(0,v.default)(window).height()/2?setTimeout(()=>e(),50):this.getThemeManager().isUserTheme()?setTimeout(()=>this.adjustSide(),10):this.adjustSide()};e()}else{let e=()=>{this.$el.width()<(0,v.default)(window).width()/2?setTimeout(()=>e(),50):this.getThemeManager().isUserTheme()?setTimeout(()=>this.adjustTop(),10):this.adjustTop()};e()}}selectTab(e){let t=this.$el.find("ul.tabs");t.find("li.active").removeClass("active");e&&t.find(`li[data-name="${e}"]`).addClass("active");this.currentTab=e;let i=this.getRouter().getCurrentUrl();this.urlList.filter(e=>i.startsWith(e.url)).forEach(e=>{t.find(`li[data-name="${e.name}"]`).addClass("active")})}setupTabDefsList(){this.urlList=[];let i=this.getTabList(),a=(this.tabList=i.filter((e,t)=>{if(!e)return!1;if("object"!=typeof e)return this.tabsHelper.checkTabAccess(e);if(this.tabsHelper.isTabDivider(e))return!!this.isSide()&&t!==i.length-1;if(this.tabsHelper.isTabUrl(e))return this.tabsHelper.checkTabAccess(e);let s=(e.itemList||[]).filter(e=>!!this.tabsHelper.isTabDivider(e)||this.tabsHelper.checkTabAccess(e));s=s.filter((e,t)=>{var i;return!this.tabsHelper.isTabDivider(e)||(i=s[t+1],!i)||!this.tabsHelper.isTabDivider(i)});s=s.filter((e,t)=>!this.tabsHelper.isTabDivider(e)||0!==t&&t!==s.length-1);e.itemList=s;return!!s.length}),!1);this.tabList=this.tabList.filter((e,t)=>{var i=this.tabList[t+1],s=this.tabList[t-1];this.tabsHelper.isTabMoreDelimiter(e)&&(a=!0);return!this.tabsHelper.isTabDivider(e)||!i||!(this.tabsHelper.isTabDivider(i)||this.tabsHelper.isTabDivider(s)&&this.tabsHelper.isTabMoreDelimiter(i)&&a)});if(a){let t=this.tabList.length;for(let e=this.tabList.length-1;0<=e;e--){var s=this.tabList[e];if(!this.tabsHelper.isTabDivider(s))break;t=this.tabList.length-1}this.tabList=this.tabList.slice(0,t)}let r=[];var e=this.getConfig().get("scopeColorsDisabled")||this.getConfig().get("tabColorsDisabled"),t=this.getConfig().get("tabIconsDisabled");let o={colorsDisabled:e,tabIconsDisabled:t},n={moreIsMet:!1,isHidden:!1};this.tabList.forEach((e,t)=>{if(this.tabsHelper.isTabMoreDelimiter(e))if(n.moreIsMet){if(t!==this.tabList.length-1){n.isHidden=!0;r.push({name:"show-more",isInMore:!0,className:"show-more",html:'<span class="fas fa-ellipsis-h more-icon"></span>'})}}else n.moreIsMet=!0;else r.push(this.prepareTabItemDefs(o,e,t,n))});this.tabDefsList=r}prepareTabItemDefs(i,e,t,s){let a,r=null,o=null,n=!1,l=!1,d=!1,h=e,c="nav-link";var u=this.tabsHelper.getTranslatedTabLabel(e);if("Home"===e)a="#";else if(this.tabsHelper.isTabDivider(e)){l=!0;c="nav-divider-text";h="divider-"+t}else if(this.tabsHelper.isTabUrl(e)){d=!0;h="url-"+t;a=e.url||"#";o=e.color;r=e.iconClass;this.urlList.push({name:h,url:a})}else if(this.tabsHelper.isTabGroup(e)){n=!0;o=e.color;r=e.iconClass;h="group-"+t;a=null;c="nav-link-group"}else a="#"+e;var m=u.substring(0,2);i.colorsDisabled||n||l||d||(o=this.getMetadata().get(["clientDefs",e,"color"]));o&&!/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(o)&&(o=null);i.tabIconsDisabled||n||l||d||(r=this.getMetadata().get(["clientDefs",e,"iconClass"]));u={link:a,label:u,shortLabel:m,name:h,isInMore:s.moreIsMet,color:o,iconClass:r,isAfterShowMore:s.isHidden,aClassName:c,isGroup:n,isDivider:l};n&&(u.itemList=e.itemList.map((e,t)=>this.prepareTabItemDefs(i,e,t,s)));s.isHidden&&(u.className="after-show-more");o&&!r&&(u.colorIconClass="color-icon fas fa-square");return u}setupMenu(){let e=this.getHelper().getAvatarHtml(this.getUser().id,"small",20,"avatar-link");e&&(e+=" ");this.menuDataList=[{link:"#User/view/"+this.getUser().id,html:e+this.getHelper().escapeString(this.getUser().get("name"))},{divider:!0}];let o=this.getMetadata().get("app.clientNavbar.menuItems")||{};var t,i=Object.keys(o).sort((e,t)=>{var i=o[e].order,s=o[t].order,a=o[e].groupIndex,r=o[t].groupIndex;return r===a?i-s:a-r});let s=0;for(t of i){var a=o[t];if(a.groupIndex!==s){s=a.groupIndex;this.menuDataList.push({divider:!0})}a.disabled||a.configCheck&&!Espo.Utils.checkActionAvailability(this.getHelper(),a)||a.accessDataList&&!Espo.Utils.checkAccessDataList(a.accessDataList,this.getAcl(),this.getUser())||this.menuDataList.push({name:t,link:a.link,label:this.getLanguage().translatePath(a.labelTranslation),handler:a.handler,actionFunction:a.actionFunction})}}showMoreTabs(){this.$el.find(".tab-group.tab.dropdown").removeClass("open");this.isMoreTabsShown=!0;this.$more.addClass("more-expanded");this.adjustBodyMinHeight();this.trigger("show-more-tabs")}hideMoreTabs(){if(this.isMoreTabsShown){this.$more.removeClass("more-expanded");this.adjustBodyMinHeight();this.isMoreTabsShown=!1}}}e.default=a});define("views/site/master",["exports","view","jquery","views/collapsed-modal-bar","di","helpers/site/shortcut-manager"],function(e,t,i,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=d(t);i=d(i);s=d(s);r=d(r);var o;let n,l;function d(e){return e&&e.__esModule?e:{default:e}}function h(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class c extends t.default{constructor(){super(...arguments);l(this)}template="site/master";views={header:{id:"header",view:"views/site/header"},main:{id:"main",view:!1},footer:{fullSelector:"body > footer",view:"views/site/footer"}};currentViewKey;currentName;collapsedModalBarView;shortcutManager=n(this);showLoadingNotification(){Espo.Ui.notifyWait()}hideLoadingNotification(){Espo.Ui.notify(!1)}setup(){(0,i.default)(window).on("resize."+this.cid,()=>{this.adjustContent()});this.collapsedModalBarView=new s.default;this.assignView("collapsedModalBar",this.collapsedModalBarView,"> .collapsed-modal-bar")}getMainView(){return this.getView("main")}onRemove(){(0,i.default)(window).off("resize."+this.cid)}afterRender(){var e,t=this.getThemeManager().getParam("params"),i=document.body;for(e of Object.keys(t))i.dataset[e]=this.getThemeManager().getParam(e);i.dataset.isDark=this.getThemeManager().getParam("isDark")??!1;i.dataset.themeName=this.getThemeManager().getName();t=this.getView("footer");if(t){var s=t.$el.html()||"";if((s.match(/espocrm/gi)||[]).length<2){s="PHAgY2xhc3M9ImNyZWRpdCBzbWFsbCI+JmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZXNwb2NybS5jb20iPkVzcG9DUk08L2E+PC9wPg==";let e;"function"==typeof window.atob?e=window.atob(s):"function"==typeof atob&&(e=atob(s));e&&t.$el.html(e)}}this.$content=this.$el.find("> #content");this.adjustContent();s=this.getHelper().getAppParam("extensions")||[];this.getConfig().get("maintenanceMode")?this.createView("dialog","views/modal",{templateContent:'<div class="text-danger">{{complexText viewObject.options.message}}</div>',headerText:this.translate("maintenanceMode","fields","Settings"),backdrop:!0,message:this.translate("maintenanceMode","messages"),buttonList:[{name:"close",label:this.translate("Close")}]},e=>{e.render()}):this.getHelper().getAppParam("auth2FARequired")?this.createView("dialog","views/modals/auth2fa-required",{},e=>{e.render()}):0!==s.length&&this.processExtensions(s)}adjustContent(){if(this.isRendered())if(window.innerWidth<this.getThemeManager().getParam("screenWidthXs")){this.isSmallScreen=!0;let e=window.innerHeight-this.$content.get(0).getBoundingClientRect().top;var t=(0,i.default)("#navbar .navbar-body"),t=((t.hasClass("in")||t.hasClass("collapsing"))&&(e+=t.height()),(0,i.default)("#footer").height()||26);e-=t;if(e<=0)return this.$content.css("minHeight",""),void 0;this.$content.css("minHeight",e+"px")}else{this.isSmallScreen&&this.$content.css("minHeight","");this.isSmallScreen=!1}}processExtensions(e){let i=[];e.forEach(e=>{if(e.notify){var t=e.licenseStatusMessage??"extensionLicense"+Espo.Utils.upperCaseFirst(Espo.Utils.hyphenToCamelCase(e.licenseStatus.toLowerCase()));i.push(this.translate(t,"messages").replace("{name}",e.name))}});if(i.length){var t=i.join("\n\n"),t=this.getHelper().transformMarkdownText(t);let e=new Espo.Ui.Dialog({backdrop:"static",buttonList:[{name:"close",text:this.translate("Close"),className:"btn-s-wide",onClick:()=>e.close()}],className:"dialog-confirm text-danger",body:t.toString()});e.show()}}static#_=o=()=>[n,l]=h(this,[],[[(0,a.inject)(r.default),0,"shortcutManager"]],0,void 0,t.default).e}o();e.default=c});define("views/site/header",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="site/header";title="EspoCRM";navbarView="views/site/navbar";customViewPath=["clientDefs","App","navbarView"];data={title:this.title};setup(){var e=this.getMetadata().get(this.customViewPath)||this.navbarView;this.createView("navbar",e,{fullSelector:"#navbar",title:this.title})}}e.default=s});define("views/site/navbar/item",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isAvailable(){return!0}}e.default=s});define("views/record/detail-bottom",["exports","views/record/panels-container"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/bottom";mode="detail";streamPanel=!0;relationshipPanels=!0;readOnly=!1;portalLayoutDisabled=!1;name="bottom";setupPanels(){var e=this.scope;this.panelList=this.getMetadata().get(["clientDefs",e,"bottomPanels",this.type])||this.panelList||[];this.panelList=[...this.panelList].map(e=>{var t;return"reference"in e&&e.reference?(t={...this.getMetadata().get("app.clientRecord.panels."+e.reference),...e},t):e});this.panelList.forEach(e=>{"index"in e||"order"in e&&(e.index=e.order)});this.streamPanel&&this.getMetadata().get(["scopes",e,"stream"])&&this.setupStreamPanel()}setupStreamPanel(){let e=this.getAcl().checkModel(this.model,"stream",!0);null===e&&this.listenToOnce(this.model,"sync",()=>{e=this.getAcl().checkModel(this.model,"stream",!0);e&&this.onPanelsReady(()=>{this.showPanel("stream","acl")})});if(!1!==e){this.panelList.push({name:"stream",label:"Stream",view:this.getMetadata().get(["clientDefs",this.scope,"streamPanelView"])||"views/stream/panel",sticked:!1,hidden:!e,index:2});e||this.recordHelper.setPanelStateParam("stream","hiddenAclLocked",!0)}}init(){this.recordHelper=this.options.recordHelper;this.scope=this.entityType=this.model.name;this.readOnlyLocked=this.options.readOnlyLocked||this.readOnly;this.readOnly=this.options.readOnly||this.readOnly;this.inlineEditDisabled=this.options.inlineEditDisabled||this.inlineEditDisabled;this.portalLayoutDisabled=this.options.portalLayoutDisabled||this.portalLayoutDisabled;this.recordViewObject=this.options.recordViewObject}setup(){this.type=this.mode;"type"in this.options&&(this.type=this.options.type);this.panelList=[];this.setupInitial();this.setupPanels();this.wait(!0);Promise.all([new Promise(t=>{this.getHelper().layoutManager.get(this.scope,"bottomPanels"+Espo.Utils.upperCaseFirst(this.type),e=>{this.layoutData=e;t()})})]).then(()=>{let t=[];this.panelList=this.panelList.filter(e=>{t.push(e.name);if(!e.aclScope||this.getAcl().checkScope(e.aclScope))return!(e.accessDataList&&!Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser()))});if(this.relationshipPanels){var e=(this.model.defs||{}).links||{};if(this.layoutData)for(var i in this.layoutData)if(e[i]){var s=this.layoutData[i];~t.indexOf(i)||s.disabled||this.addRelationshipPanel(i,s)}}this.panelList=this.panelList.map(e=>{var t=Espo.Utils.clone(e);null!==this.recordHelper.getPanelStateParam(e.name,"hidden")?t.hidden=this.recordHelper.getPanelStateParam(e.name,"hidden"):this.recordHelper.setPanelStateParam(e.name,"hidden",t.hidden||!1);return t});this.panelList.forEach(e=>{e.actionsViewKey=e.name+"Actions"});this.alterPanels();this.setupPanelsFinal();this.setupPanelViews();this.wait(!1)})}setReadOnly(){this.readOnly=!0}addRelationshipPanel(e,t){var i=this.scope,s=this.getMetadata().get("scopes")||{};let a;a="string"==typeof t||t instanceof String?{name:t}:Espo.Utils.clone(t||{});a.name=a.name||e;if(a.name){void 0===a.order&&(a.order=5);e=a.name;var r=(this.model.defs||{}).links||{};if(e in r){r=r[e].entity;if(!(s[r]||{}).disabled&&this.getAcl().check(r,"read")){var o,n=this.getMetadata().get(["clientDefs",i,"relationshipPanels",e])||{},n=Espo.Utils.clone(n);for(o in n)o in a||(a[o]=n[o]);a.view||(a.view="views/record/panels/relationship");null!==this.recordHelper.getPanelStateParam(a.name,"hidden")?a.hidden=this.recordHelper.getPanelStateParam(a.name,"hidden"):this.recordHelper.setPanelStateParam(a.name,"hidden",a.hidden||!1);this.panelList.push(a)}}}}}e.default=s});define("views/record/row-actions/relationship",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){let t=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.acl.edit&&!this.options.editDisabled&&t.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},link:"#"+this.model.entityType+"/edit/"+this.model.id,groupIndex:0});this.options.unlinkDisabled||t.push({action:"unlinkRelated",label:"Unlink",data:{id:this.model.id},groupIndex:0});this.getAdditionalActionList().forEach(e=>t.push(e));this.options.acl.delete&&!this.options.removeDisabled&&t.push({action:"removeRelated",label:"Remove",data:{id:this.model.id},groupIndex:0});return t}}e.default=s});define("views/record/panels/default-side",["exports","views/record/panels/side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{complexCreatedDisabled;complexModifiedDisabled;data(){var e=super.data();(this.complexCreatedDisabled&&this.complexModifiedDisabled||!this.hasComplexCreated&&!this.hasComplexModified)&&(e.complexDateFieldsDisabled=!0);e.hasComplexCreated=this.hasComplexCreated;e.hasComplexModified=this.hasComplexModified;return e}setup(){this.fieldList=Espo.Utils.cloneDeep(this.fieldList);var e=this.getFieldManager().getEntityTypeFieldList(this.model.entityType);this.hasComplexCreated=e.includes("createdAt")||e.includes("createdBy");this.hasComplexModified=e.includes("modifiedAt")||e.includes("modifiedBy");super.setup()}setupFields(){super.setupFields();if(this.complexCreatedDisabled)this.recordViewObject.hideField("complexCreated");else if(this.hasComplexCreated){this.fieldList.push({name:"complexCreated",labelText:this.translate("Created"),isAdditional:!0,view:"views/fields/complex-created",readOnly:!0});this.model.get("createdById")||this.model.get("createdAt")||this.recordViewObject.hideField("complexCreated")}if(this.complexModifiedDisabled)this.recordViewObject.hideField("complexModified");else if(this.hasComplexModified){this.fieldList.push({name:"complexModified",labelText:this.translate("Modified"),isAdditional:!0,view:"views/fields/complex-created",readOnly:!0,options:{baseName:"modified"}});this.isModifiedVisible()||this.recordViewObject.hideField("complexModified")}!this.complexCreatedDisabled&&this.hasComplexCreated&&this.listenTo(this.model,"change",()=>{(this.model.hasChanged("createdById")||this.model.hasChanged("createdAt"))&&(this.model.get("createdById")||this.model.get("createdAt"))&&this.recordViewObject.showField("complexCreated")});!this.complexModifiedDisabled&&this.hasComplexModified&&this.listenTo(this.model,"change",()=>{(this.model.hasChanged("modifiedById")||this.model.hasChanged("modifiedAt"))&&this.isModifiedVisible()&&this.recordViewObject.showField("complexModified")});if(this.getMetadata().get(["scopes",this.model.entityType,"stream"])&&!this.getUser().isPortal()){this.fieldList.push({name:"followers",labelText:this.translate("Followers"),isAdditional:!0,view:"views/fields/followers",readOnly:!0});this.controlFollowersField();this.listenTo(this.model,"change:followersIds",()=>this.controlFollowersField())}}isModifiedVisible(){return!!this.hasComplexModified&&!(!this.model.get("modifiedById")&&!this.model.get("modifiedAt")||!this.model.get("modifiedById")&&this.model.get("modifiedAt")===this.model.get("createdAt"))}controlFollowersField(){this.model.get("followersIds")&&this.model.get("followersIds").length?this.recordViewObject.showField("followers"):this.recordViewObject.hideField("followers")}}e.default=s});define("views/notification/record/list",["exports","views/record/list-expanded"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.collection,"sync",(e,t,i)=>{if(i.fetchNew){var s=i.lengthBeforeFetch||0;if(0===s)this.reRender();else{var a=this.$el.find(this.listContainerEl),s=this.collection.length-s;for(let e=s-1;0<=e;e--){var r=this.collection.at(e);a.prepend($(this.getRowContainerHtml(r.id)));this.buildRow(e,r,e=>{e.render()})}}}});this.events["auxclick a[href][data-scope][data-id]"]=e=>{var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){var t=$(e.currentTarget),i=t.attr("data-id"),t=t.attr("data-scope");e.preventDefault();e.stopPropagation();this.actionQuickView({id:i,scope:t})}}}getCellSelector(e,t){var i=this.getSelector(),s=this.getRowSelector(e.id);return"right"===t.field?`${i} ${s} > .cell[data-name="${t.field}"]`:i+` ${s} > .expanded-row > .cell[data-name="${t.field}"]`}showNewRecords(){return this.collection.fetchNew()}}e.default=s});define("views/notification/items/base",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{messageName;messageTemplate;messageData=null;isSystemAvatar=!1;data(){return{avatar:this.getAvatarHtml()}}init(){this.createField("createdAt",null,null,"views/fields/datetime-short");this.messageData={}}createField(e,t,i,s){t=t||this.model.getFieldType(e)||"base";this.createView(e,s||this.getFieldManager().getViewName(t),{model:this.model,defs:{name:e,params:i||{}},selector:".cell-"+e,mode:"list"})}createMessage(){var e=this.model.get("relatedParentType")||null;!this.messageTemplate&&this.messageName&&(this.messageTemplate=this.translate(this.messageName,"notificationMessages",e)||"");if(0===this.messageTemplate.indexOf("{entityType}")&&"string"==typeof this.messageData.entityType){this.messageData.entityTypeUcFirst=Espo.Utils.upperCaseFirst(this.messageData.entityType);this.messageTemplate=this.messageTemplate.replace("{entityType}","{entityTypeUcFirst}")}this.createView("message","views/stream/message",{messageTemplate:this.messageTemplate,selector:".message",model:this.model,messageData:this.messageData})}getAvatarHtml(){let e=this.userId;!this.isSystemAvatar&&e||(e=this.getHelper().getAppParam("systemUserId"));return this.getHelper().getAvatarHtml(e,"small",20)}translateEntityType(e,t){let i=t?this.translate(e,"scopeNamesPlural")||"":this.translate(e,"scopeNames")||"";i=i.toLowerCase();this.toUpperCaseFirstLetter()&&(i=Espo.Utils.upperCaseFirst(i));return i}toUpperCaseFirstLetter(){var e=this.getPreferences().get("language")||this.getConfig().get("language");return["de_DE","nl_NL"].includes(e)}getIconHtml(e,t){var i=this.getMetadata().get(`clientDefs.${e}.iconClass`),s=this.getMetadata().get(`clientDefs.${e}.color`);if(!i)return null;var a=document.createElement("span");a.className="action text-muted icon "+i;a.style.cursor="pointer";a.style.color=s||"";a.title=this.translate("View");a.dataset.action="quickView";a.dataset.id=t;a.dataset.scope=e;return a.outerHTML}}e.default=s});define("views/modals/related-list",["exports","views/modal","search-manager","jquery","helpers/record/select-related","helpers/record/create-related","utils"],function(e,t,i,s,a,r,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);i=n(i);s=n(s);a=n(a);r=n(r);o=n(o);function n(e){return e&&e.__esModule?e:{default:e}}class l extends t.default{template="modals/related-list";className="dialog dialog-record";searchPanel=!0;scope="";noCreateScopeList=["User","Team","Role","Portal"];backdrop=!0;fixedHeaderHeight=!0;mandatorySelectAttributeList=null;layoutName="listSmall";shortcutKeys={"Control+Space":function(e){this.handleShortcutKeyCtrlSpace(e)},"Control+Slash":function(e){this.handleShortcutKeyCtrlSlash(e)},"Control+Comma":function(e){this.handleShortcutKeyCtrlComma(e)},"Control+Period":function(e){this.handleShortcutKeyCtrlPeriod(e)},"Control+ArrowLeft":function(e){this.handleShortcutKeyControlArrowLeft(e)},"Control+ArrowRight":function(e){this.handleShortcutKeyControlArrowRight(e)}};events={'click button[data-action="createRelated"]':function(){this.actionCreateRelated()},"click .action":function(e){var t=Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget);t||this.trigger("action",e.originalEvent,e.currentTarget)}};setup(){this.primaryFilterName=this.options.primaryFilterName||null;this.buttonList=[{name:"cancel",label:"Close"}];this.scope=this.options.scope||this.options.entityType||this.scope;this.defaultOrderBy=this.options.defaultOrderBy;this.defaultOrder=this.options.defaultOrder;this.panelName=this.options.panelName;this.link=this.options.link;this.defs=this.options.defs||{};this.filterList=this.options.filterList;this.filter=this.options.filter;this.layoutName=this.options.layoutName||this.layoutName;this.url=this.options.url;this.listViewName=this.options.listViewName;this.rowActionsView=this.options.rowActionsView;this.createDisabled=this.options.createDisabled||this.createDisabled;this.selectDisabled=this.options.selectDisabled||this.selectDisabled;this.massUnlinkDisabled=this.options.massUnlinkDisabled||this.massUnlinkDisabled;this.massActionRemoveDisabled=this.options.massActionRemoveDisabled||this.massActionRemoveDisabled;this.massActionMassUpdateDisabled=this.options.massActionMassUpdateDisabled||this.massActionMassUpdateDisabled;this.panelCollection=this.options.panelCollection;this.options.searchPanelDisabled&&(this.searchPanel=!1);if(this.panelCollection){this.listenTo(this.panelCollection,"sync",(e,t,i)=>{i.skipCollectionSync||this.collection.fetch()});this.listenTo(this.panelCollection,"change",(e,t)=>{if(!t.xhr&&e.id){var i=this.collection.get(e.id);if(i){var s,a={};for(s in e.attributes)e.hasChanged(s)&&(a[s]=e.attributes[s]);i.set(a)}}});this.model&&this.listenTo(this.model,"after:unrelate",()=>{this.panelCollection.fetch({skipCollectionSync:!0})})}else this.model&&this.listenTo(this.model,"after:relate",()=>{this.collection.fetch()});-1!==this.noCreateScopeList.indexOf(this.scope)&&(this.createDisabled=!0);this.primaryFilterName=this.filter;this.createDisabled||this.getAcl().check(this.scope,"create")&&!this.getMetadata().get(["clientDefs",this.scope,"createDisabled"])||(this.createDisabled=!0);this.unlinkDisabled=this.unlinkDisabled||this.options.unlinkDisabled||this.defs.unlinkDisabled;if(!this.massUnlinkDisabled){(this.unlinkDisabled||this.defs.massUnlinkDisabled||this.defs.unlinkDisabled)&&(this.massUnlinkDisabled=!0);this.getAcl().check(this.model,"edit")||(this.massUnlinkDisabled=!0)}this.selectDisabled||this.buttonList.unshift({name:"selectRelated",label:"Select",pullLeft:!0});this.createDisabled||this.buttonList.unshift({name:"createRelated",label:"Create",pullLeft:!0});this.$header=(0,s.default)("<span>");this.model&&this.model.get("name")&&this.$header.append((0,s.default)("<span>").text(this.model.get("name")),' <span class="chevron-right"></span> ');let e=this.options.title;e=e&&this.getHelper().escapeString(this.options.title).replace(/@right/,'<span class="chevron-right"></span>');this.$header.append(e||(0,s.default)("<span>").text(this.getLanguage().translate(this.link,"links",this.scope)));this.options.listViewUrl&&(this.$header=(0,s.default)("<a>").attr("href",this.options.listViewUrl).append(this.$header));if(!this.options.listViewUrl&&(!this.defs.fullFormDisabled&&this.link&&this.model.hasLink(this.link)||this.options.fullFormUrl)){let e=this.options.fullFormUrl||"#"+this.model.entityType+"/related/"+this.model.id+"/"+this.link;this.buttonList.unshift({name:"fullForm",label:"Full Form",onClick:()=>this.getRouter().navigate(e,{trigger:!0})});this.$header=(0,s.default)("<a>").attr("href",e).append(this.$header)}var t=this.getHelper().getScopeColorIconHtml(this.scope);t&&(this.$header=(0,s.default)("<span>").append(t).append(this.$header));this.waitForView("list");this.searchPanel&&this.waitForView("search");this.getCollectionFactory().create(this.scope,e=>{e.maxSize=this.options.maxSize||this.getConfig().get("recordsPerPage");e.url=this.url;e.setOrder(this.defaultOrderBy,this.defaultOrder,!0);e.parentModel=this.model;this.collection=e;if(this.panelCollection){this.listenTo(e,"change",e=>{var t=this.panelCollection.get(e.id);t&&t.set(e.attributes)});this.listenTo(e,"after:mass-remove",()=>{this.panelCollection.fetch({skipCollectionSync:!0})})}this.setupSearch();this.setupList()});this.once("close",()=>{this.collection.lastSyncPromise&&this.collection.lastSyncPromise.getStatus()<4&&Espo.Ui.notify(!1);this.collection.abortLastFetch()})}setFilter(e){this.searchManager.setPrimary(e)}getSearchView(){return this.getView("search")}getRecordView(){return this.getView("list")}setupSearch(){this.searchManager=new i.default(this.collection,{emptyOnReset:!0});var e=this.primaryFilterName;e&&this.searchManager.setPrimary(e);this.collection.where=this.searchManager.getWhere();let t=Espo.Utils.clone(this.getMetadata().get(["clientDefs",this.scope,"filterList"])||[]);this.options.noDefaultFilters&&(t=[]);this.filterList&&this.filterList.forEach(e=>{let i=!1,s=e.name||e;if(s&&"all"!==s){t.forEach(e=>{var t=e.name||e;s===t&&(i=!0)});i||t.push(e)}});this.options.filtersDisabled&&(t=[]);this.searchPanel&&this.createView("search","views/record/search",{collection:this.collection,fullSelector:this.containerSelector+" .search-container",searchManager:this.searchManager,disableSavePreset:!0,filterList:t,filtersLayoutName:this.options.filtersLayoutName},e=>{this.listenTo(e,"reset",()=>{})})}setupList(){var e=this.listViewName||this.getMetadata().get(["clientDefs",this.scope,"recordViews","listRelated"])||this.getMetadata().get(["clientDefs",this.scope,"recordViews","list"])||"views/record/list",t=this.defs.rowActionList,e=this.createView("list",e,{collection:this.collection,fullSelector:this.containerSelector+" .list-container",rowActionsView:this.rowActionsView,listLayout:this.options.listLayout,layoutName:this.layoutName,searchManager:this.searchManager,buttonsDisabled:!0,skipBuildRows:!0,model:this.model,unlinkMassAction:!this.massUnlinkDisabled,massActionsDisabled:this.options.massActionsDisabled,massActionRemoveDisabled:this.massActionRemoveDisabled,massActionMassUpdateDisabled:this.massActionMassUpdateDisabled,mandatorySelectAttributeList:this.mandatorySelectAttributeList,additionalRowActionList:t,rowActionsOptions:{unlinkDisabled:this.unlinkDisabled,editDisabled:this.defs.editDisabled,removeDisabled:this.defs.removeDisabled},removeDisabled:this.defs.removeDisabled,forcePagination:this.options.forcePagination,pagination:this.getConfig().get("listPagination")||this.getMetadata().get(["clientDefs",this.scope,"listPagination"])||null},e=>{this.listenTo(e,"after:paginate",()=>this.bodyElement.scrollTop=0);this.listenTo(e,"sort",()=>this.bodyElement.scrollTop=0);this.listenToOnce(e,"select",e=>{this.trigger("select",e);this.close()});if(this.multiple){this.listenTo(e,"check",()=>{e.checkedList.length?this.enableButton("select"):this.disableButton("select")});this.listenTo(e,"select-all-results",()=>this.enableButton("select"))}let i=()=>{this.whenRendered().then(()=>{Espo.Ui.notifyWait();this.collection.fetch().then(()=>Espo.Ui.notify(!1))})};this.options.forceSelectAllAttributes||this.forceSelectAllAttributes?i():e.getSelectAttributeList(t=>{~t.indexOf("name")||t.push("name");var e=this.options.mandatorySelectAttributeList||this.mandatorySelectAttributeList||[];e.forEach(e=>{~t.indexOf(e)||t.push(e)});t&&(this.collection.data.select=t.join(","));i()})});this.wait(e)}actionUnlinkRelated(e){let t=e.id;this.confirm({message:this.translate("unlinkRecordConfirmation","messages"),confirmText:this.translate("Unlink")},()=>{Espo.Ui.notifyWait();Espo.Ajax.deleteRequest(this.collection.url,{id:t}).then(()=>{Espo.Ui.success(this.translate("Unlinked"));this.collection.fetch();this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link)})})}actionCreateRelated(){var t=this.defs.createAction||"createRelated";if("createRelated"===t){var e=new r.default(this);e.process(this.model,this.link)}else{var i="action"+Espo.Utils.upperCaseFirst(t);let e=this.getParentView();for(;e;){if(e[i]){e;break}e=e.getParentView()}e[i]({link:this.link,scope:this.scope})}}actionSelectRelated(){var t=this.defs.selectAction||"selectRelated";if("selectRelated"===t){var e=new a.default(this);e.process(this.model,this.link)}else{var i="action"+Espo.Utils.upperCaseFirst(t);let e=this.getParentView();for(;e;){if(e[i]){e;break}e=e.getParentView()}e[i]({link:this.link,primaryFilterName:this.defs.selectPrimaryFilterName,boolFilterList:this.defs.selectBoolFilterList,massSelect:this.defs.massSelect})}}actionRemoveRelated(e){let t=e.id;this.confirm({message:this.translate("removeRecordConfirmation","messages"),confirmText:this.translate("Remove")},()=>{var e=this.collection.get(t);Espo.Ui.notifyWait();e.destroy().then(()=>{Espo.Ui.success(this.translate("Removed"));this.collection.fetch();this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link)})})}handleShortcutKeyCtrlSlash(e){if(this.searchPanel){var t=this.$el.find("input.text-filter").first();if(t.length){e.preventDefault();e.stopPropagation();t.focus()}}}handleShortcutKeyCtrlSpace(e){if(!this.createDisabled&&-1!==this.buttonList.findIndex(e=>"createRelated"===e.name&&!e.hidden&&!e.disabled)){e.preventDefault();e.stopPropagation();this.actionCreateRelated()}}handleShortcutKeyCtrlComma(){this.getSearchView()&&this.getSearchView().selectPreviousPreset()}handleShortcutKeyCtrlPeriod(){this.getSearchView()&&this.getSearchView().selectNextPreset()}handleShortcutKeyControlArrowLeft(e){o.default.isKeyEventInTextInput(e)||this.getRecordView().trigger("request-page","previous")}handleShortcutKeyControlArrowRight(e){o.default.isKeyEventInTextInput(e)||this.getRecordView().trigger("request-page","next")}}e.default=l});define("views/modals/mass-update",["exports","views/modal","helpers/mass-action","ui/select"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);r=s(r);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/mass-update";cssName="mass-update";className="dialog dialog-record";layoutName="massUpdate";ACTION_UPDATE="update";fieldList;data(){return{scope:this.scope,fieldList:this.fieldList,entityType:this.entityType}}setup(){this.addActionHandler("addField",(e,t)=>this.addField(t.dataset.name));this.addActionHandler("reset",()=>this.reset());this.buttonList=[{name:"update",label:"Update",style:"danger",disabled:!0,onClick:()=>this.actionUpdate()},{name:"cancel",label:"Cancel"}];this.entityType=this.options.entityType||this.options.scope;this.scope=this.options.scope||this.entityType;this.ids=this.options.ids;this.where=this.options.where;this.searchParams=this.options.searchParams;this.byWhere=this.options.byWhere;this.hasActionMap={};var e=this.options.totalCount;this.helper=new i.default(this);this.idle=this.byWhere&&this.helper.checkIsIdle(e);this.headerText=this.translate("Mass Update")+" · "+this.translate(this.scope,"scopeNamesPlural");this.wait(this.load());this.addedFieldList=[]}async load(){this.model=await this.getModelFactory().create(this.entityType);let i=this.getAcl().getScopeForbiddenFieldList(this.entityType,"edit")||[];return new Promise(t=>{this.getHelper().layoutManager.get(this.entityType,this.layoutName,e=>{e=e||[];this.fieldList=[];e.forEach(e=>{i.includes(e)||this.getMetadata().get(`entityDefs.${this.entityType}.fields.${e}.disabled`)||this.model.hasField(e)&&this.fieldList.push(e)});t()})})}addField(e){this.$el.find('[data-action="reset"]').removeClass("hidden");this.$el.find(`ul.filter-list li[data-name="${e}"]`).addClass("hidden");0===this.$el.find("ul.filter-list li:not(.hidden)").length&&this.$el.find("button.select-field").addClass("disabled").attr("disabled","disabled");this.addedFieldList.push(e);var t=this.getHelper().escapeString(this.translate(e,"fields",this.entityType)),t=$("<div>").addClass("cell form-group").attr("data-name",e).append($("<label>").addClass("control-label").text(t)).append($("<div>").addClass("field").attr("data-name",e)),t=$("<div>").addClass("item grid-auto-fill-md").attr("data-name",e).append(t),s=(this.$el.find(".fields-container").append(t),this.model.getFieldType(e)),a=this.model.getFieldParam(e,"view")||this.getFieldManager().getViewName(s),s=this.getMetadata().get(["entityDefs",this.entityType,e,"massUpdateActionList"])||this.getMetadata().get(["fields",s,"massUpdateActionList"]),i=null!==s;this.hasActionMap[e]=i;this.disableButton("update");this.createView(e,a,{model:this.model,selector:'.field[data-name="'+e+'"]',defs:{name:e},mode:"edit"},e=>{this.enableButton("update");e.render()});if(i){let i=$("<select>").addClass("item-action form-control").attr("data-name",e);s.forEach(e=>{var t=this.translate(Espo.Utils.upperCaseFirst(e));i.append($("<option>").text(t).val(e))});a=$("<div>").addClass("cell call-action form-group").attr("data-name",e).append($("<label>").addClass("control-label hidden-xs").html(" ")).append($("<div>").addClass("field").attr("data-name",e).append(i));t.append(a);r.default.init(i.get(0))}}getFieldView(e){return this.getView(e)}async actionUpdate(){this.byWhere&&await this.confirm(this.translate("confirmMassUpdate","messages"));this.disableButton("update");let a={},r={};this.addedFieldList.forEach(e=>{let t=this.fetchAction(e),i=this.getFieldView(e).fetch(),s={};this.getFieldManager().getEntityTypeFieldActualAttributeList(this.entityType,e).forEach(e=>{r[e]=t;s[e]=i[e]});Object.assign(a,s)});this.model.set(a);let i=!1;this.addedFieldList.forEach(e=>{var t=this.getFieldView(e);i=t.validate()||i});if(i){Espo.Ui.error(this.translate("Not valid"));this.enableButton("update")}else{Espo.Ui.notify(this.translate("saving","messages"));let e;try{e=await Espo.Ajax.postRequest("MassAction",{action:"update",entityType:this.entityType,params:{ids:this.ids||null,where:this.ids&&0!==this.ids.length?null:this.options.where,searchParams:this.ids&&0!==this.ids.length?null:this.options.searchParams},data:{values:a,actions:r},idle:this.idle})}catch(e){this.enableButton("update");return}if(e.id){var t=await this.helper.process(e.id,"update");this.listenToOnce(t,"close",()=>this.close());this.listenToOnce(t,"success",e=>{this.trigger("after:update",{count:e.count,idle:!0})})}else this.trigger("after:update",{count:e.count})}}fetchAction(e){var t;return this.hasActionMap[e]&&(t=this.$el.find(`select.item-action[data-name="${e}"]`),t.val())||this.ACTION_UPDATE}reset(){this.addedFieldList.forEach(e=>{this.clearView(e);this.$el.find(`.item[data-name="${e}"]`).remove()});this.addedFieldList=[];this.hasActionMap={};this.model.clear();this.$el.find('[data-action="reset"]').addClass("hidden");this.$el.find("button.select-field").removeClass("disabled").removeAttr("disabled");this.$el.find("ul.filter-list").find("li").removeClass("hidden");this.disableButton("update")}}e.default=a});define("views/modals/mass-convert-currency",["exports","views/modal","model","helpers/mass-action"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);r=s(r);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/mass-convert-currency";className="dialog dialog-record";buttonList=[{name:"cancel",label:"Cancel"}];data(){return{}}setup(){this.$header=$("<span>").append($("<span>").text(this.translate(this.options.entityType,"scopeNamesPlural")),' <span class="chevron-right"></span> ',$("<span>").text(this.translate("convertCurrency","massActions")));this.addButton({name:"convert",text:this.translate("Update"),style:"danger"},!0);var e=this.model=new i.default;e.set("currency",this.getConfig().get("defaultCurrency"));e.set("baseCurrency",this.getConfig().get("baseCurrency"));e.set("currencyRates",this.getConfig().get("currencyRates"));e.set("currencyList",this.getConfig().get("currencyList"));this.createView("currency","views/fields/enum",{model:e,params:{options:this.getConfig().get("currencyList")},name:"currency",selector:'.field[data-name="currency"]',mode:"edit",labelText:this.translate("Convert to")});this.createView("baseCurrency","views/fields/enum",{model:e,params:{options:this.getConfig().get("currencyList")},name:"baseCurrency",selector:'.field[data-name="baseCurrency"]',mode:"detail",labelText:this.translate("baseCurrency","fields","Settings"),readOnly:!0});this.createView("currencyRates","views/currency/fields/currency-rates",{model:e,name:"currencyRates",selector:'.field[data-name="currencyRates"]',mode:"edit",labelText:this.translate("currencyRates","fields","Settings")})}getFieldView(e){return this.getView(e)}actionConvert(){this.disableButton("convert");this.getFieldView("currency").fetchToModel();this.getFieldView("currencyRates").fetchToModel();var e=this.model.get("currency"),t=this.model.get("currencyRates"),i=!this.options.ids||0===this.options.ids.length;let s=new r.default(this);var a=i&&s.checkIsIdle(this.options.totalCount);Espo.Ajax.postRequest("MassAction",{entityType:this.options.entityType,action:"convertCurrency",params:{ids:this.options.ids||null,where:i?this.options.where:null,searchParams:i?this.options.searchParams:null},data:{fieldList:this.options.fieldList||null,currency:e,targetCurrency:e,rates:t},idle:a}).then(e=>{if(e.id)s.process(e.id,"convertCurrency").then(e=>{this.listenToOnce(e,"close",()=>this.close());this.listenToOnce(e,"success",e=>{this.trigger("after:update",{count:e.count,idle:!0})})});else{this.trigger("after:update",{count:e.count});this.close()}}).catch(()=>{this.enableButton("convert")})}}e.default=a});define("views/modals/detail",["exports","views/modal","helpers/action-item-setup","backbone","helpers/record-modal","utils"],function(e,t,i,o,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);i=r(i);o=r(o);s=r(s);a=r(a);function r(e){return e&&e.__esModule?e:{default:e}}class n extends t.default{template="modals/detail";cssName="detail-modal";className="dialog dialog-record";editDisabled=!1;fullFormDisabled=!1;detailView=null;removeDisabled=!0;backdrop=!0;fitHeight=!0;sideDisabled=!1;bottomDisabled=!1;fixedHeaderHeight=!0;flexibleHeaderFontSize=!0;duplicateAction=!1;nameAttribute;shortcutKeys={"Control+Space":function(e){if(!this.editDisabled&&!a.default.isKeyEventInTextInput(e)&&-1!==this.buttonList.findIndex(e=>"edit"===e.name)){e.stopPropagation();e.preventDefault();this.actionEdit().then(e=>{e.$el.find(".form-control:not([disabled])").first().focus()})}},"Control+Backslash":function(e){this.getRecordView().handleShortcutKeyControlBackslash(e)},"Control+ArrowLeft":function(e){this.handleShortcutKeyControlArrowLeft(e)},"Control+ArrowRight":function(e){this.handleShortcutKeyControlArrowRight(e)}};constructor(e){super(e)}setup(){this.scope=this.scope||this.options.scope||this.options.entityType;this.entityType=this.options.entityType||this.scope;this.id=this.options.id;this.buttonList=[];"editDisabled"in this.options&&(this.editDisabled=this.options.editDisabled);void 0!==this.options.removeDisabled&&(this.removeDisabled=this.options.removeDisabled);this.editDisabled=this.getMetadata().get(["clientDefs",this.entityType,"editDisabled"])||this.editDisabled;this.removeDisabled=this.getMetadata().get(["clientDefs",this.entityType,"removeDisabled"])||this.removeDisabled;this.nameAttribute=this.getMetadata().get(`clientDefs.${this.entityType}.nameAttribute`)||"name";this.fullFormDisabled=this.options.fullFormDisabled||this.fullFormDisabled;this.layoutName=this.options.layoutName||this.layoutName;this.setupRecordButtons();this.model&&this.controlRecordButtonsVisibility();this.fullFormDisabled||this.buttonList.push({name:"fullForm",label:"Full Form"});this.buttonList.push({name:"cancel",label:"Close",title:"Esc"});if(this.model&&this.model.collection&&!this.navigateButtonsDisabled){this.buttonList.push({name:"previous",html:'<span class="fas fa-chevron-left"></span>',title:this.translate("Previous Entry"),position:"right",className:"btn-icon",style:"text",disabled:!0});this.buttonList.push({name:"next",html:'<span class="fas fa-chevron-right"></span>',title:this.translate("Next Entry"),position:"right",className:"btn-icon",style:"text",disabled:!0});this.indexOfRecord=this.model.collection.indexOf(this.model)}else this.navigateButtonsDisabled=!0;this.waitForView("record");this.sourceModel=this.model;this.getModelFactory().create(this.entityType).then(async e=>{if(this.sourceModel){this.cloneSourceModel();this.setupAfterModelCreated();this.listenTo(this.model,"change",()=>{this.sourceModel.set(this.model.getClonedAttributes())});this.listenTo(this.model,"sync",()=>{this.controlRecordButtonsVisibility();this.trigger("model-sync")});this.once("after:render",()=>{this.model.fetch()});this.setupActionItems();this.createRecordView()}else{this.model=e;this.model.id=this.id;this.setupAfterModelCreated();this.listenTo(this.model,"sync",()=>{this.controlRecordButtonsVisibility();this.trigger("model-sync")});this.listenToOnce(this.model,"sync",()=>{this.setupActionItems();this.createRecordView()});await this.setupLate();await this.model.fetch()}});this.listenToOnce(this.getRouter(),"routed",()=>{this.remove()});this.duplicateAction&&this.getAcl().checkScope(this.entityType,"create")&&this.addDropdownItem({name:"duplicate",label:"Duplicate",groupIndex:0})}cloneSourceModel(){this.model=this.sourceModel.clone();let e=this.sourceModel.collection;if(e){this.model.collection=e.clone();this.listenTo(this.model.collection,"update-source",()=>e.fetch())}}async setupLate(){}setupActionItems(){var e=new i.default;e.setup(this,"modalDetail",e=>this.wait(e),e=>this.addDropdownItem(e),e=>this.showActionItem(e),e=>this.hideActionItem(e),{listenToViewModelSync:!0})}setupAfterModelCreated(){}setupRecordButtons(){this.removeDisabled||this.addRemoveButton();this.editDisabled||this.addEditButton()}controlRecordButtonsVisibility(){this.getAcl().check(this.model,"edit")?this.showButton("edit"):this.hideButton("edit");this.getAcl().check(this.model,"delete")?this.showActionItem("remove"):this.hideActionItem("remove")}addEditButton(){this.addButton({name:"edit",label:"Edit",title:"Ctrl+Space"},!0)}removeEditButton(){this.removeButton("edit")}addRemoveButton(){this.addDropdownItem({name:"remove",label:"Remove",groupIndex:0})}removeRemoveButton(){this.removeButton("remove")}getScope(){return this.scope}createRecordView(e){let t=this.model;var i=this.getScope();this.headerHtml="";this.headerHtml+=$("<span>").text(this.getLanguage().translate(i,"scopeNames")).get(0).outerHTML;if(t.attributes[this.nameAttribute]){this.headerHtml+=" "+$("<span>").addClass("chevron-right").get(0).outerHTML;this.headerHtml+=" "+$("<span>").text(t.attributes[this.nameAttribute]).get(0).outerHTML}if(!this.fullFormDisabled){i=this.options.fullFormUrl||`#${i}/view/`+this.id;this.headerHtml=$("<a>").attr("href",i).addClass("action font-size-flexible").attr("title",this.translate("Full Form")).attr("data-action","fullForm").append(this.headerHtml).get(0).outerHTML}this.headerHtml=this.getHelper().getScopeColorIconHtml(this.entityType)+this.headerHtml;if(!this.editDisabled){i=this.getAcl().check(t,"edit",!0);if(i)this.showButton("edit");else{this.hideButton("edit");null===i&&this.listenToOnce(t,"sync",()=>{this.getAcl().check(t,"edit")&&this.showButton("edit")})}}if(!this.removeDisabled){i=this.getAcl().check(t,"delete",!0);if(i)this.showActionItem("remove");else{this.hideActionItem("remove");null===i&&this.listenToOnce(t,"sync",()=>{this.getAcl().check(t,"delete")&&this.showActionItem("remove")})}}var i=this.detailView||this.getMetadata().get(["clientDefs",t.entityType,"recordViews","detailSmall"])||this.getMetadata().get(["clientDefs",t.entityType,"recordViews","detailQuick"])||"views/record/detail-small",s={model:t,fullSelector:this.containerSelector+" .record-container",type:"detailSmall",layoutName:this.layoutName||"detailSmall",buttonsDisabled:!0,inlineEditDisabled:!0,sideDisabled:this.sideDisabled,bottomDisabled:this.bottomDisabled,recordHelper:this.options.recordHelper,exit:function(){}};this.createView("record",i,s,e)}getRecordView(){return this.getView("record")}afterRender(){super.afterRender();setTimeout(()=>{this.$el.children().first().scrollTop(0)},50);this.navigateButtonsDisabled||this.controlNavigationButtons()}controlNavigationButtons(){var i=this.getRecordView();if(i){var i=this.model.collection,s=this.indexOfRecord;let e=!1,t=!1;(0<s||0<i.offset)&&(e=!0);(s<i.total-1-i.offset||-1===i.total||-2===i.total&&s<i.length-1-i.offset)&&(t=!0);e?this.enableButton("previous"):this.disableButton("previous");t?this.enableButton("next"):this.disableButton("next")}}switchToModelByIndex(e){if(this.model.collection){var t=this.model,i=this.model.collection;this.sourceModel=this.model.collection.at(e);if(!this.sourceModel)throw new Error("Model is not found in collection by index.");this.indexOfRecord=e;this.id=this.sourceModel.id;this.scope=this.sourceModel.entityType;this.cloneSourceModel();this.stopListening(t,"change");this.stopListening(t,"sync");i&&this.stopListening(i,"update-source");this.listenTo(this.model,"change",()=>{this.sourceModel.set(this.model.getClonedAttributes())});this.listenTo(this.model,"sync",()=>{this.controlRecordButtonsVisibility();this.trigger("model-sync")});this.createRecordView(()=>{this.reRender().then(()=>{this.model.fetch()})});this.controlNavigationButtons();this.trigger("switch-model",this.model,t)}}actionPrevious(){if(this.model.collection){let t=this.model.collection;if(!(this.indexOfRecord<=0)||t.offset)if(0===this.indexOfRecord&&0<t.offset&&t.maxSize){t.offset=Math.max(0,t.offset-t.maxSize);t.fetch().then(()=>{var e=t.length-1;e<0||this.switchToModelByIndex(e)})}else{var e=this.indexOfRecord-1;this.switchToModelByIndex(e)}}}actionNext(){if(this.model.collection){var t=this.model.collection;if(!(!(this.indexOfRecord<t.total-1-t.offset)&&0<=this.model.collection.total||-2===t.total&&this.indexOfRecord>=t.length-1-t.offset)){let e=this.indexOfRecord+1;e<=t.length-1-t.offset?this.switchToModelByIndex(e):t.fetch({more:!0,remove:!1}).then(()=>{this.switchToModelByIndex(e)})}}}async actionEdit(){if(this.options.quickEditDisabled){var e={id:this.id,model:this.model,returnUrl:this.getRouter().getCurrentUrl()};this.options.rootUrl&&(e.rootUrl=this.options.rootUrl);this.getRouter().navigate(`#${this.scope}/edit/`+this.id,{trigger:!1});this.getRouter().dispatch(this.scope,"edit",e);return Promise.reject()}e=new s.default,e=await e.showEdit(this,{entityType:this.entityType,id:this.id,fullFormDisabled:this.fullFormDisabled,collapseDisabled:!0,beforeSave:(e,t)=>{this.trigger("before:save",e,t)},afterSave:(e,t)=>{this.model.set(e.getClonedAttributes());this.trigger("after:save",e,t);this.controlRecordButtonsVisibility();this.trigger("model-sync");this.model.trigger("sync",this.model,null,{})},beforeRender:e=>{this.listenToOnce(e,"remove",()=>this.dialog.show());this.listenToOnce(e,"leave",()=>this.remove())}});return e}actionRemove(){let t=this.getRecordView().model;this.confirm(this.translate("removeRecordConfirmation","messages"),()=>{let e=this.dialog.$el.find(".modal-footer button");e.addClass("disabled").attr("disabled","disabled");this.trigger("before:delete",t);t.destroy().then(()=>{this.trigger("after:delete",t);this.trigger("after:destroy",t);this.dialog.close();Espo.Ui.success(this.translate("Removed"))}).catch(()=>{e.removeClass("disabled").removeAttr("disabled")})})}actionFullForm(){let e,t=this.getRouter(),i=this.getScope();e="#"+i+"/view/"+this.id;var s=this.getRecordView().fetch(),a=this.getRecordView().model,s=_.extend(s,a.getClonedAttributes());let r={attributes:s,returnUrl:o.default.history.fragment,model:this.sourceModel||this.model,id:this.id};this.options.rootUrl&&(r.rootUrl=this.options.rootUrl);setTimeout(()=>{t.dispatch(i,"view",r);t.navigate(e,{trigger:!1})},10);this.trigger("leave");this.dialog.close()}actionDuplicate(){Espo.Ui.notifyWait();Espo.Ajax.postRequest(this.scope+"/action/getDuplicateAttributes",{id:this.model.id}).then(e=>{Espo.Ui.notify(!1);var t="#"+this.scope+"/create";this.getRouter().dispatch(this.scope,"create",{attributes:e,returnUrl:this.getRouter().getCurrentUrl(),options:{duplicateSourceId:this.model.id,returnAfterCreate:!0}});this.getRouter().navigate(t,{trigger:!1})})}handleShortcutKeyControlArrowLeft(e){if(this.model.collection&&-1!==this.buttonList.findIndex(e=>"previous"===e.name&&!e.disabled)&&!a.default.isKeyEventInTextInput(e)){e.preventDefault();e.stopPropagation();this.actionPrevious()}}handleShortcutKeyControlArrowRight(e){if(this.model.collection&&-1!==this.buttonList.findIndex(e=>"next"===e.name&&!e.disabled)&&!a.default.isKeyEventInTextInput(e)){e.preventDefault();e.stopPropagation();this.actionNext()}}}e.default=n});define("views/lead-capture/form",["exports","view","views/record/edit","model"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{templateContent=`
|
||
<div class="block-center-5 margin-top">
|
||
{{#if isPosted}}
|
||
<div class="panel paned-default">
|
||
<div class="panel-body">
|
||
<div class="complex-text">{{complexText successText}}</div>
|
||
</div>
|
||
</div>
|
||
{{else}}
|
||
<div class="record">{{{record}}}</div>
|
||
<div class="button-container center-align">
|
||
<button
|
||
class="btn btn-primary btn-x-wide"
|
||
data-action="submit"
|
||
>{{translate 'Submit'}}</button>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
`;isPosted=!1;isPosting=!1;submitButtonElement;constructor(e){super();this.formData=e.formData}data(){return{isPosted:this.isPosted,successText:this.formData.successText}}setup(){this.getMetadata().setData(this.formData.metadata);this.getConfig().setMultiple(this.formData.config);this.getHelper().appParams.setAll(this.formData.appParams);this.getHelper().fieldManager.defs=this.getMetadata().get("fields");this.getDateTime().setSettingsAndPreferences(this.getConfig(),this.getPreferences());this.formData.captchaKey&&grecaptcha.ready(()=>{var e=document.querySelector(".grecaptcha-badge");e&&(e.style.zIndex="4")});for(var e in this.formData.language)this.getLanguage().setScopeData(e,this.formData.language[e]);this.model=new s.default({},{defs:{fields:this.formData.fieldDefs},entityType:"Lead"});this.model.url=this.formData.requestUrl;var t=[...this.formData.text?[{noteText:this.formData.text,noteStyle:"default",rows:[]}]:[],...this.formData.detailLayout];this.recordView=new o({model:this.model,detailLayout:t,sideView:null,bottomView:null,isWide:!0,shortcutKeysEnabled:!0,buttonsDisabled:!0});this.assignView("record",this.recordView,".record");this.whenReady().then(()=>this.initAutocomplete());this.listenTo(this.recordView,"save",()=>this.actionCreate());this.addActionHandler("submit",()=>this.actionCreate())}afterRender(){var e=this.element.querySelector(".detail-button-container .sub-container");e&&e.classList.add("sub-container-center-5");this.submitButtonElement=this.element.querySelector('button[data-action="submit"]')}async actionCreate(){if(!this.isPosting)if(this.recordView.validate())Espo.Ui.error(this.translate("Not valid"));else{this.isPosting=!0;this.recordView.disableActionItems();this.submitButtonElement.classList.add("disabled");this.submitButtonElement.setAttribute("disabled","disabled");Espo.Ui.notifyWait();var t=await this.processCaptcha(),t=t?{"X-Captcha-Token":t}:void 0;let e;try{e=await Espo.Ajax.postRequest(this.model.url,this.model.attributes,{headers:t})}catch(e){this.recordView.enableActionItems();this.submitButtonElement.classList.remove("disabled");this.submitButtonElement.removeAttribute("disabled");this.isPosting=!1;return}Espo.Ui.notify();this.isPosted=!0;this.isPosting=!1;this.recordView.remove();await this.reRender();e.redirectUrl&&(document.location.href=e.redirectUrl)}}async processCaptcha(){return this.formData.captchaKey?new Promise(t=>{grecaptcha.ready(async()=>{var e=await grecaptcha.execute(this.formData.captchaKey,{action:"leadCaptureSubmit"});t(e)})}):null}initAutocomplete(){let t=this.recordView.getFieldView("emailAddress"),i=(t&&this.listenTo(t,"after:render",()=>{var e=t.element.querySelector("input");e&&(e.autocomplete="email")}),this.recordView.getFieldView("phoneNumber")),s=(i&&this.listenTo(i,"after:render",()=>{var e=i.element.querySelector("input");e&&(e.autocomplete="tel")}),this.recordView.getFieldView("name")),a=(this.listenTo(s,"after:render",()=>{var e=s.element.querySelector('input[data-name="firstName"]'),e=(e&&(e.autocomplete="given-name"),s.element.querySelector('input[data-name="lastName"]'));e&&(e.autocomplete="family-name")}),this.recordView.getFieldView("firstName")),r=(a&&this.listenTo(a,"after:render",()=>{var e=a.element.querySelector("input");e&&(e.autocomplete="given-name")}),this.recordView.getFieldView("lastName"));r&&this.listenTo(r,"after:render",()=>{var e=r.element.querySelector("input");e&&(e.autocomplete="family-name")})}}e.default=r;class o extends i.default{handleShortcutKeyCtrlEnter(e){this.trigger("save")}}});define("views/fields/user-with-avatar",["exports","views/fields/user"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="fields/user-with-avatar/list";detailTemplate="fields/user-with-avatar/detail";data(){var e=super.data();if(this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST){e.avatar=this.getAvatarHtml();e.isOwn=this.model.get(this.idName)===this.getUser().id}return e}getAvatarHtml(){var e=this.mode===this.MODE_DETAIL?18:16;return this.getHelper().getAvatarHtml(this.model.get(this.idName),"small",e,"avatar-link")}afterRender(){super.afterRender();this.isEditMode()&&this.controlEditModeAvatar()}setup(){super.setup();this.addHandler("keydown",`input[data-name="${this.nameName}"]`,(e,t)=>{"Enter"!==e.code&&t.classList.add("being-typed")});this.addHandler("change",`input[data-name="${this.nameName}"]`,(e,t)=>{setTimeout(()=>t.classList.remove("being-typed"),200)});this.addHandler("blur",`input[data-name="${this.nameName}"]`,(e,t)=>{t.classList.remove("being-typed")});this.on("change",()=>{if(this.isEditMode()){var e=this.element.querySelector("img.avatar");e&&e.parentNode.removeChild(e);this.controlEditModeAvatar()}})}controlEditModeAvatar(){var e=this.element.querySelector(`input[data-name="${this.nameName}"]`),e=(e.classList.remove("being-typed"),this.model.attributes[this.idName]);if(e){e=this.getHelper().getAvatarHtml(e,"small",18,"avatar-link");if(e){e=(new DOMParser).parseFromString(e,"text/html").body.childNodes[0];if(e instanceof HTMLImageElement){e.classList.add("avatar-in-input");e.draggable=!1;var t=this.element.querySelector(".input-group > input");t&&t.after(e)}}}}}e.default=s});define("views/fields/url",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{constructor(e){super(e)}type="url";listTemplate="fields/url/list";detailTemplate="fields/url/detail";defaultProtocol="https:";validations=["required","valid","maxLength"];noSpellCheck=!0;optionalProtocol=!0;DEFAULT_MAX_LENGTH=255;data(){var e=super.data();e.url=this.getUrl();return e}afterRender(){super.afterRender();this.isEditMode()&&this.$element.on("change",()=>{var e=this.$element.val()||"",t=this.parse(e);if(t!==e){e=t?this.decodeURI(t):"";this.$element.val(e)}})}getValueForDisplay(){var e=this.model.get(this.name);return e?this.decodeURI(e):null}decodeURI(t){try{return decodeURI(t)}catch(e){console.warn(`Malformed URI ${t}.`);return t}}parse(t){t=t.trim();this.params.strip&&(t=this.strip(t));try{t===decodeURI(t)&&(t=encodeURI(t))}catch(e){console.warn(`Malformed URI ${t}.`)}return t}strip(e){-1!==e.indexOf("//")&&(e=e.substring(e.indexOf("//")+2));e=e.replace(/\/+$/,"");return e}getUrl(){let e=this.model.get(this.name);e&&""!==e&&-1===e.indexOf("//")&&(e=this.defaultProtocol+"//"+e);return e}validateValid(){var e=this.model.get(this.name);if(!e)return!1;var t=this.optionalProtocol?"uriOptionalProtocol":"uri",t=this.getMetadata().get(["app","regExpPatterns",t,"pattern"]),t=new RegExp("^"+t+"$");if(t.test(e))return!1;t=this.translate("fieldInvalid","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t);return!0}validateMaxLength(){var e=this.params.maxLength||this.DEFAULT_MAX_LENGTH,t=this.model.get(this.name);if(!t||!t.length)return!1;if(t.length<=e)return!1;t=this.translate("fieldUrlExceedsMaxLength","messages").replace("{maxLength}",e.toString()).replace("{field}",this.getLabelText());this.showValidationMessage(t);return!0}fetch(){var e=super.fetch(),t=e[this.name];t&&(e[this.name]=this.parse(t));return e}}e.default=s});define("views/fields/url-multiple",["exports","views/fields/array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="urlMultiple";maxItemLength=255;displayAsList=!0;defaultProtocol="https:";setup(){super.setup();this.noEmptyString=!0;this.params.pattern="$uriOptionalProtocol"}addValueFromUi(t){t=t.trim();this.params.strip&&(t=this.strip(t));try{t===decodeURI(t)&&(t=encodeURI(t))}catch(e){console.warn(`Malformed URI ${t}.`)}super.addValueFromUi(t)}decodeURI(t){try{return decodeURI(t)}catch(e){console.warn(`Malformed URI ${t}.`);return t}}strip(e){-1!==e.indexOf("//")&&(e=e.substring(e.indexOf("//")+2));e=e.replace(/\/+$/,"");return e}prepareUrl(e){-1===e.indexOf("//")&&(e=this.defaultProtocol+"//"+e);return e}getValueForDisplay(){var e=this.selected.map(e=>$("<a>").attr("href",this.prepareUrl(e)).attr("target","_blank").text(this.decodeURI(e)));return e.map(e=>$("<div>").addClass("multi-enum-item-container").append(e).get(0).outerHTML).join("")}getItemHtml(e){var t=super.getItemHtml(e),t=$(t);t.find("span.text").html($("<a>").attr("href",this.prepareUrl(e)).css("user-drag","none").attr("target","_blank").text(this.decodeURI(e)));return t.get(0).outerHTML}}e.default=s});define("views/fields/range-float",["exports","views/fields/range-int","views/fields/float"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="rangeFloat";validations=["required","float","range","order"];decimalPlacesRawValue=10;setupAutoNumericOptions(){this.autoNumericOptions={digitGroupSeparator:this.thousandSeparator||"",decimalCharacter:this.decimalMark,modifyValueOnWheel:!1,selectOnFocus:!1,decimalPlaces:this.decimalPlacesRawValue,decimalPlacesRawValue:this.decimalPlacesRawValue,allowDecimalPadding:!1,showWarnings:!1,formulaMode:!0}}validateFloat(){var e=e=>{if(isNaN(this.model.get(e))){var t=this.translate("fieldShouldBeFloat","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t,'[data-name="'+e+'"]');return!0}},t=e(this.fromField)||!1;t=e(this.toField)||t;return t}parse(e){return i.default.prototype.parse.call(this,e)}formatNumber(e){return i.default.prototype.formatNumberDetail.call(this,e)}}e.default=a});define("views/fields/phone",["exports","views/fields/varchar","ui/select","intl-tel-input","intl-tel-input-utils","intl-tel-input-globals"],function(e,t,i,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=o(t);i=o(i);s=o(s);a=o(a);r=o(r);function o(e){return e&&e.__esModule?e:{default:e}}class n extends t.default{constructor(e){super(e)}type="phone";editTemplate="fields/phone/edit";detailTemplate="fields/phone/detail";listTemplate="fields/phone/list";validations=["required","phoneData"];maxExtensionLength=6;validationRegExp;isNumeric;events={'click [data-action="switchPhoneProperty"]':function(e){var t=$(e.currentTarget),i=$(e.currentTarget).closest("div.phone-number-block"),s=t.data("property-type"),i=i.find("input.phone-number");if("primary"===s){if(!t.hasClass("active")&&""!==i.val()){this.$el.find('button.phone-property[data-property-type="primary"]').removeClass("active").children().addClass("text-muted");t.addClass("active").children().removeClass("text-muted")}}else{let e=!1;if(t.hasClass("active"))t.removeClass("active").children().addClass("text-muted");else{t.addClass("active").children().removeClass("text-muted");e=!0}"optOut"===s&&(e?i.addClass("text-strikethrough"):i.removeClass("text-strikethrough"));"invalid"===s&&(e?i.addClass("text-danger"):i.removeClass("text-danger"))}this.trigger("change")},'click [data-action="removePhoneNumber"]':function(e){var t=$(e.currentTarget).closest("div.phone-number-block");this.removePhoneNumber(t);this.trigger("change");t=this.$el.find(".phone-number").last();t.length&&t[0].focus({preventScroll:!0})},"change input.phone-number":function(e){var t=$(e.currentTarget),i=t.closest("div.phone-number-block");if(!this._itemJustRemoved){""===t.val()&&i.length?this.removePhoneNumber(i):this.trigger("change");this.manageAddButton()}},"keypress input.phone-number":function(){this.manageAddButton()},"paste input.phone-number":function(){setTimeout(()=>this.manageAddButton(),10)},'click [data-action="addPhoneNumber"]':function(){this.addPhoneNumber()},"keydown input.phone-number":function(e){var t=Espo.Utils.getKeyFromKeyEvent(e),i=$(e.currentTarget);if("Enter"===t){if(!this.$el.find('[data-action="addPhoneNumber"]').hasClass("disabled")){this.addPhoneNumber();e.stopPropagation()}}else if("Backspace"===t&&""===i.val()){t=i.closest("div.phone-number-block");this._itemJustRemoved=!0;setTimeout(()=>this._itemJustRemoved=!1,100);e.stopPropagation();this.removePhoneNumber(t);setTimeout(()=>this.focusOnLast(!0),50)}}};validateRequired(){if(this.isRequired()&&!this.model.get(this.name)){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,"div.phone-number-block:nth-child(1) input.phone-number");return!0}}validatePhoneData(){var e=this.model.get(this.dataFieldName);if(e&&e.length){var t="^"+this.getMetadata().get("app.regExpPatterns.phoneNumberLoose.pattern")+"$";this.validationRegExp=new RegExp(t);let a=[],r=!1;e.forEach((e,t)=>{var i=e.phoneNumber,i=(this.itemValidate(e,t)&&(r=!0),String(i).replace(/[\s+]/g,""));if(a.includes(i)){var s=this.translate("fieldValueDuplicate","messages").replace("{field}",this.getLabelText());this.showValidationMessage(s,"div.phone-number-block:nth-child("+(t+1).toString()+") input.phone-number");r=!0}else a.push(i)});return r}}validateMaxCount(){var e=this.maxCount;if(!e)return!1;var t=this.model.attributes[this.dataFieldName]||[];if(t.length<=e)return!1;t=this.translate("fieldExceedsMaxCount","messages").replace("{maxCount}",e.toString());this.showValidationMessage(t,"div.phone-number-block:last-child input.phone-number");return!0}itemValidate(e,t){var i=e.number,s=(t+1).toString(),s=`div.phone-number-block:nth-child(${s}) input.phone-number`;let a=!1;if(!this.validationRegExp.test(i)){a=!0;i=this.translate("fieldPhoneInvalidCharacters","messages").replace("{field}",this.getLabelText());this.showValidationMessage(i,s)}if(this.useInternational){i=this.$el.find(s).get(0);if(i){var i=this.intlTelInputMap.get(i),r=i&&i.isPossibleNumber();if(i&&!r){a=!0;var o=i.getValidationError(),o=["fieldPhoneInvalid","fieldPhoneInvalidCode","fieldPhoneTooShort","fieldPhoneTooLong"][o||0]||"fieldPhoneInvalid",o=this.translate(o,"messages").replace("{field}",this.getLabelText());this.showValidationMessage(o,s)}if(i&&r&&this.allowExtensions&&i.getExtension()&&i.getExtension().length>this.maxExtensionLength){o=this.translate("fieldPhoneExtensionTooLong","messages").replace("{maxLength}",this.maxExtensionLength.toString()).replace("{field}",this.getLabelText());this.showValidationMessage(o,s);a=!0}}}return a}data(){var e=this.model.get(this.name);let t;if(this.mode===this.MODE_EDIT){t=Espo.Utils.cloneDeep(this.model.get(this.dataFieldName));if((this.model.isNew()||!this.model.get(this.name))&&(!t||!t.length)){let e;e=this.model.isNew()?this.phoneNumberOptedOutByDefault&&"User"!==this.model.entityType:this.model.get(this.isOptedOutFieldName);t=[{phoneNumber:this.model.get(this.name)||"",primary:!0,type:this.defaultType,optOut:e,invalid:!1}]}}else t=this.model.get(this.dataFieldName)||!1;if(t){t=Espo.Utils.cloneDeep(t);t.forEach(e=>{var t=e.phoneNumber||"";e.erased=0===t.indexOf(this.erasedPlaceholder);if(!e.erased){e.valueForLink=this.formatForLink(t);this.isReadMode()&&(e.phoneNumber=this.formatNumber(e.phoneNumber))}e.lineThrough=e.optOut||e.invalid||this.model.get("doNotCall")})}if((!t||0===t.length)&&this.model.get(this.name)){e={phoneNumber:this.formatNumber(e),primary:!0,valueForLink:this.formatForLink(e)};this.isReadMode()&&(e.phoneNumber=this.formatNumber(e.phoneNumber));"edit"===this.mode&&this.model.isNew()&&(e.type=this.defaultType);t=[e]}e={...super.data(),phoneNumberData:t,doNotCall:this.model.get("doNotCall"),lineThrough:this.model.get("doNotCall")||this.model.get(this.isOptedOutFieldName)};if(this.isReadMode()){e.isOptedOut=this.model.get(this.isOptedOutFieldName);e.isInvalid=this.model.get(this.isInvalidFieldName);if(this.model.get(this.name)){e.isErased=0===this.model.get(this.name).indexOf(this.erasedPlaceholder);e.isErased||(e.valueForLink=this.formatForLink(this.model.get(this.name)))}e.valueIsSet=this.model.has(this.name);e.value=this.formatNumber(e.value)}e.itemMaxLength=this.itemMaxLength;e.onlyPrimary=this.params.onlyPrimary;return e}formatForLink(e){if(this.allowExtensions&&this.useInternational)return e.includes(" ext. ")&&(e=e.replace(" ext. ",",")),e;return e.replace(/ /g,"")}focusOnLast(e){var t=this.$el.find("input.form-control").last();t.focus();e&&t[0]&&t[0].setSelectionRange(t[0].value.length,t[0].value.length)}removePhoneNumber(e){1===e.parent().children().length?e.find("input.phone-number").val(""):this.removePhoneNumberBlock(e);this.trigger("change")}formatNumber(e){return e&&""!==e&&this.useInternational?a.default.formatNumber(e,null,a.default.numberFormat.INTERNATIONAL):e}addPhoneNumber(){var e=Espo.Utils.cloneDeep(this.fetchPhoneNumberData()),t={phoneNumber:"",primary:!e.length,type:this.defaultType,optOut:this.phoneNumberOptedOutByDefault,invalid:!1};e.push(t);this.model.set(this.dataFieldName,e,{silent:!0});this.reRender().then(()=>this.focusOnLast())}afterRender(){super.afterRender();this.manageButtonsVisibility();this.manageAddButton();this.mode===this.MODE_EDIT&&this.$el.find("select").toArray().forEach(e=>{i.default.init($(e))})}afterRenderEdit(){super.afterRenderEdit();if(this.useInternational){var e=this.element.querySelectorAll("input.phone-number");e.forEach(e=>{let i=(0,s.default)(e,{nationalMode:!1,autoInsertDialCode:!1,separateDialCode:!0,showFlags:!1,preferredCountries:this.preferredCountryList,localizedCountries:this._codeNames,customPlaceholder:e=>e.replace(/[0-9]/g,"0")});this.intlTelInputMap.set(e,i);e.addEventListener("blur",()=>{if(i.isPossibleNumber()){let e=i.getNumber();var t=i.getExtension();this.allowExtensions&&t&&(e+=" ext. "+t);i.setNumber(e)}})})}}removePhoneNumberBlock(e){let t=!1;e.find('button[data-property-type="primary"]').hasClass("active")&&(t=!0);e.remove();t&&this.$el.find('button[data-property-type="primary"]').first().addClass("active").children().removeClass("text-muted");this.manageButtonsVisibility();this.manageAddButton()}manageAddButton(){var e=this.$el.find("input.phone-number");let i=0;e.each((e,t)=>{""!==t.value&&i++});i===e.length?this.$el.find('[data-action="addPhoneNumber"]').removeClass("disabled").removeAttr("disabled"):this.$el.find('[data-action="addPhoneNumber"]').addClass("disabled").attr("disabled","disabled")}manageButtonsVisibility(){var e=this.$el.find('button[data-property-type="primary"]'),t=this.$el.find('button[data-action="removePhoneNumber"]'),i=this.$el.find(".phone-number-block-container");if(1<e.length){e.removeClass("hidden");t.removeClass("hidden");i.addClass("many")}else{i.removeClass("many");e.addClass("hidden");t.addClass("hidden")}}setup(){this.dataFieldName=this.name+"Data";this.defaultType=this.defaultType||this.getMetadata().get(`entityDefs.${this.model.entityType}.fields.${this.name}.defaultType`);this.isOptedOutFieldName=this.name+"IsOptedOut";this.isInvalidFieldName=this.name+"IsInvalid";this.phoneNumberOptedOutByDefault=this.getConfig().get("phoneNumberIsOptedOutByDefault");this.useInternational=this.getConfig().get("phoneNumberInternational")||!1;this.allowExtensions=this.getConfig().get("phoneNumberExtensions")||!1;this.preferredCountryList=this.getConfig().get("phoneNumberPreferredCountryList")||[];this.maxCount=this.getConfig().get("phoneNumberMaxCount");!this.useInternational||this.isListMode()||this.isSearchMode()||(this._codeNames=r.default.getCountryData().reduce((e,t)=>{e[t.iso2]=t.iso2.toUpperCase();return e},{}));this.model.has("doNotCall")&&this.listenTo(this.model,"change:doNotCall",(e,t,i)=>{"detail"!==this.mode&&"list"!==this.mode||i.ui&&this.reRender()});this.erasedPlaceholder="ERASED:";this.itemMaxLength=this.getMetadata().get(["entityDefs","PhoneNumber","fields","name","maxLength"]);this.intlTelInputMap=new Map;this.once("remove",()=>{for(var e of this.intlTelInputMap.values())e.destroy();this.intlTelInputMap.clear()});this.validations.push(()=>this.validateMaxCount());this.isNumeric=this.getConfig().get("phoneNumberNumericSearch")}fetchPhoneNumberData(){var e=this.$el.find("div.phone-number-block");if(!e.length)return[];let r=[];e.each((e,t)=>{var i={},s=$(t),a=s.find("input.phone-number").get(0);if(a){i.phoneNumber=a.value.trim();if(this.intlTelInputMap.has(a)){i.phoneNumber=this.intlTelInputMap.get(a).getNumber();a=this.intlTelInputMap.get(a).getExtension()||null;this.allowExtensions&&a&&(i.phoneNumber+=" ext. "+a)}if(""!==i.phoneNumber){i.primary=s.find('button[data-property-type="primary"]').hasClass("active");i.type=s.find('select[data-property-type="type"]').val();i.optOut=s.find('button[data-property-type="optOut"]').hasClass("active");i.invalid=s.find('button[data-property-type="invalid"]').hasClass("active");r.push(i)}}});return r}fetch(){let s={};var e=this.fetchPhoneNumberData();if(this.params.onlyPrimary)if(0<e.length){s[this.name]=e[0].phoneNumber;s[this.dataFieldName]=[{phoneNumber:e[0].phoneNumber,primary:!0}]}else{s[this.name]=null;s[this.dataFieldName]=null}else{s[this.dataFieldName]=e;s[this.name]=null;s[this.isOptedOutFieldName]=!1;s[this.isInvalidFieldName]=!1;let i=0;e.forEach((e,t)=>{if(e.primary){i=t;e.optOut&&(s[this.isOptedOutFieldName]=!0);e.invalid&&(s[this.isInvalidFieldName]=!0)}});if(e.length&&0<i){var t=e[0];e[0]=e[i];e[i]=t}if(e.length)s[this.name]=e[0].phoneNumber;else{s[this.isOptedOutFieldName]=null;s[this.isInvalidFieldName]=null}}return s}fetchSearch(){var e=this.fetchSearchType()||"startsWith",t=this.isNumeric?this.name+"Numeric":this.name;if(["isEmpty","isNotEmpty"].includes(e))return"isEmpty"===e?{type:"isNull",attribute:t,data:{type:e}}:{type:"isNotNull",attribute:t,data:{type:e}};let i=this.$element.val().toString().trim();var s=i;this.isNumeric&&(i=i&&i.replace(/[^0-9]/g,""));return i?{type:e,value:i,attribute:t,data:{type:e,value:s}}:null}focusOnInlineEdit(){var e=this.element.querySelector("input.phone-number");e&&e.focus({preventScroll:!0})}}e.default=n});define("views/fields/person-name",["exports","views/fields/varchar","ui/select"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="personName";detailTemplate="fields/person-name/detail";editTemplate="fields/person-name/edit";editTemplateLastFirst="fields/person-name/edit-last-first";editTemplateLastFirstMiddle="fields/person-name/edit-last-first-middle";editTemplateFirstMiddleLast="fields/person-name/edit-first-middle-last";validations=["required","pattern"];salutationField;data(){var e=super.data();e.ucName=Espo.Utils.upperCaseFirst(this.name);e.salutationValue=this.model.get(this.salutationField);e.firstValue=this.model.get(this.firstField);e.lastValue=this.model.get(this.lastField);e.middleValue=this.model.get(this.middleField);e.salutationOptions=this.salutationOptions;e.salutationField=this.salutationField;if(this.isEditMode()){e.firstMaxLength=this.model.getFieldParam(this.firstField,"maxLength");e.lastMaxLength=this.model.getFieldParam(this.lastField,"maxLength");e.middleMaxLength=this.model.getFieldParam(this.middleField,"maxLength")}e.valueIsSet=this.model.has(this.firstField)||this.model.has(this.lastField);this.isDetailMode()?e.isNotEmpty=!!(e.firstValue||e.lastValue||e.salutationValue||e.middleValue):this.isListMode()&&(e.isNotEmpty=!!e.firstValue||!!e.lastValue||!!e.middleValue);(e.isNotEmpty&&this.isDetailMode()||this.isListMode())&&(e.formattedValue=this.getFormattedValue());return e}setup(){super.setup();var e=Espo.Utils.upperCaseFirst(this.name);this.salutationField="salutation"+e;this.firstField="first"+e;this.lastField="last"+e;this.middleField="middle"+e;this.salutationOptions=this.model.getFieldParam(this.salutationField,"options")}afterRender(){super.afterRender();if(this.isEditMode()){this.$salutation=this.$el.find('[data-name="'+this.salutationField+'"]');this.$first=this.$el.find('[data-name="'+this.firstField+'"]');this.$last=this.$el.find('[data-name="'+this.lastField+'"]');this.formatHasMiddle()&&(this.$middle=this.$el.find('[data-name="'+this.middleField+'"]'));this.$salutation.on("change",()=>{this.trigger("change")});this.$first.on("change",()=>{this.trigger("change")});this.$last.on("change",()=>{this.trigger("change")});i.default.init(this.$salutation)}}getFormattedValue(){let e=this.model.get(this.salutationField);var t=this.model.get(this.firstField),i=this.model.get(this.lastField),s=this.model.get(this.middleField);e=e&&this.getLanguage().translateOption(e,"salutationName",this.model.entityType);return this.formatName({salutation:e,first:t,middle:s,last:i})}_getTemplateName(){if(this.isEditMode()){var e="editTemplate"+Espo.Utils.upperCaseFirst(this.getFormat().toString());if(e in this)return this[e]}return super._getTemplateName()}getFormat(){this.format=this.format||this.getConfig().get("personNameFormat")||"firstLast";return this.format}formatHasMiddle(){var e=this.getFormat();return"firstMiddleLast"===e||"lastFirstMiddle"===e}validateRequired(){var e=this.isRequired(),t=e=>{if(this.model.isRequired(e)&&!this.model.get(e)){var t=this.translate("fieldIsRequired","messages").replace("{field}",this.translate(e,"fields",this.model.entityType));this.showValidationMessage(t,'[data-name="'+e+'"]');return!0}};if(e&&!this.model.get(this.firstField)&&!this.model.get(this.lastField)){e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,'[data-name="'+this.lastField+'"]');return!0}e=t(this.salutationField)||!1;e=t(this.firstField)||e;e=t(this.lastField)||e;e=t(this.middleField)||e;return e}validatePattern(){var e=this.fieldValidatePattern(this.firstField)||!1;e=this.fieldValidatePattern(this.lastField)||e;e=this.fieldValidatePattern(this.middleField)||e;return e}hasRequiredMarker(){return!!this.isRequired()||this.model.getFieldParam(this.salutationField,"required")||this.model.getFieldParam(this.firstField,"required")||this.model.getFieldParam(this.middleField,"required")||this.model.getFieldParam(this.lastField,"required")}fetch(){var e={};e[this.salutationField]=this.$salutation.val()||null;e[this.firstField]=this.$first.val().trim()||null;e[this.lastField]=this.$last.val().trim()||null;this.formatHasMiddle()&&(e[this.middleField]=this.$middle.val().trim()||null);e[this.name]=this.formatName({first:e[this.firstField],last:e[this.lastField],middle:e[this.middleField]});return e}formatName(e){let t;var i=this.getFormat(),s=[];s.push(e.salutation);if("firstLast"===i){s.push(e.first);s.push(e.last)}else if("lastFirst"===i){s.push(e.last);s.push(e.first)}else if("firstMiddleLast"===i){s.push(e.first);s.push(e.middle);s.push(e.last)}else if("lastFirstMiddle"===i){s.push(e.last);s.push(e.first);s.push(e.middle)}else{s.push(e.first);s.push(e.last)}t=s.filter(e=>!!e).join(" ").trim();""===t&&(t=null);return t}focusOnInlineEdit(){var e=this.element.querySelector('input.form-control[type="text"]');e&&e.focus({preventScroll:!0})}}e.default=a});define("views/fields/password",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="password";detailTemplate="fields/password/detail";editTemplate="fields/password/edit";validations=["required","confirm"];changePassword(){this.$el.find('[data-action="change"]').addClass("hidden");this.$element.removeClass("hidden");this.changing=!0}data(){return{isNew:this.model.isNew(),...super.data()}}setup(){super.setup();this.addActionHandler("change",()=>this.changePassword())}validateConfirm(){if(this.model.has(this.name+"Confirm")&&this.model.get(this.name)!==this.model.get(this.name+"Confirm")){var e=this.translate("fieldBadPasswordConfirm","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}afterRender(){super.afterRender();this.changing=!1;this.params.readyToChange&&this.changePassword()}fetch(){return this.model.isNew()||this.changing?super.fetch():{}}}e.default=s});define("views/fields/multi-enum",["exports","views/fields/array","helpers/reg-exp-pattern","ui/multi-select"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);r=s(r);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{constructor(e){super(e)}type="multiEnum";listTemplate="fields/array/list";detailTemplate="fields/array/detail";editTemplate="fields/multi-enum/edit";MAX_ITEM_LENGTH=100;restoreOnBackspace=!1;validationElementSelector=".selectize-control";events={};data(){return{...super.data(),optionList:this.params.options||[]}}getTranslatedOptions(){return(this.params.options||[]).map(e=>null!==this.translatedOptions&&e in this.translatedOptions?this.translatedOptions[e]:e)}translateValueToEditLabel(e){let t=e;~(this.params.options||[]).indexOf(e)&&(t=this.getLanguage().translateOption(e,this.name,this.scope));this.translatedOptions&&e in this.translatedOptions&&(t=this.translatedOptions[e]);""===t&&(t=this.translate("None"));return t}afterRender(){if(this.isSearchMode())this.renderSearch();else if(this.isEditMode()){this.$element=this.$el.find('[data-name="'+this.name+'"]');let i=[];var t,s=Espo.Utils.clone(this.selected);for(t in s){let e=s[t];var a=e;""===e&&(e=s[t]="__emptystring__");~(this.params.options||[]).indexOf(e)||i.push({value:e,text:this.translateValueToEditLabel(a)})}this.$element.val(s.join(this.itemDelimiter));(this.params.options||[]).forEach(e=>{var t=e;""===e&&(e="__emptystring__");i.push({value:e,text:this.translateValueToEditLabel(t),style:this.styleMap[e]||void 0})});var e={items:i,delimiter:this.itemDelimiter,matchAnyWord:this.matchAnyWord,draggable:!0,allowCustomOptions:this.allowCustomOptions,restoreOnBackspace:this.restoreOnBackspace,create:e=>this.createCustomOptionCallback(e)};r.default.init(this.$element,e);this.$element.on("change",()=>{this.trigger("change")})}}createCustomOptionCallback(e){if(e.length>this.MAX_ITEM_LENGTH){var t=this.translate("arrayItemMaxLength","messages").replace("{max}",this.MAX_ITEM_LENGTH.toString());this.showValidationMessage(t,".selectize-control");return null}if(this.params.pattern){t=new i.default,t=t.validate(this.params.pattern,e,this.name,this.entityType);if(t)return this.showValidationMessage(t.message,".selectize-control"),null}return{value:e,text:e}}focusOnInlineEdit(){r.default.focus(this.$element)}fetch(){let e=this.$element.val().split(this.itemDelimiter);1===e.length&&""===e[0]&&(e=[]);for(var t in e)"__emptystring__"===e[t]&&(e[t]="");this.params.isSorted&&this.translatedOptions&&(e=e.sort((e,t)=>(this.translatedOptions[e]||e).localeCompare(this.translatedOptions[t]||t)));var i={};i[this.name]=e;return i}validateRequired(){if(this.isRequired()){var e=this.model.get(this.name);if(!e||0===e.length){e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,".selectize-control");return!0}}}validateMaxCount(){if(this.params.maxCount){var e=this.model.get(this.name)||[];if(e.length>this.params.maxCount){e=this.translate("fieldExceedsMaxCount","messages").replace("{field}",this.getLabelText()).replace("{maxCount}",this.params.maxCount.toString());this.showValidationMessage(e,".selectize-control");return!0}}}}e.default=a});define("views/fields/link-parent",["exports","views/fields/base","helpers/record-modal","ui/select","ui/autocomplete"],function(e,t,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);a=i(a);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{constructor(e){super(e)}type="linkParent";listTemplate="fields/link-parent/list";detailTemplate="fields/link-parent/detail";editTemplate="fields/link-parent/edit";searchTemplate="fields/link-parent/search";listLinkTemplate="fields/link-parent/list-link";nameName;idName;typeName;foreignScope=null;foreignScopeList=null;autocompleteDisabled=!1;selectRecordsView="views/modals/select-records";createDisabled=!1;searchTypeList=["is","isEmpty","isNotEmpty"];selectPrimaryFilterName=null;selectBoolFilterList=null;autocompleteMaxCount=null;forceSelectAllAttributes=!1;mandatorySelectAttributeList=null;initialSearchIsNotIdle=!0;autocompleteOnEmpty;displayScopeColorInListMode=!0;displayEntityType;events={'auxclick a[href]:not([role="button"])':function(e){if(this.isReadMode()){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){e.preventDefault();e.stopPropagation();this.quickView()}}}};data(){let e=this.model.get(this.nameName),t=(!e&&this.model.get(this.idName)&&this.model.get(this.typeName)&&(e=this.translate(this.model.get(this.typeName),"scopeNames")),null);(this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST&&this.displayScopeColorInListMode)&&this.foreignScope&&(t=this.getHelper().getScopeColorIconHtml(this.foreignScope));return{...super.data(),idName:this.idName,nameName:this.nameName,typeName:this.typeName,idValue:this.model.get(this.idName),nameValue:e,typeValue:this.model.get(this.typeName),foreignScope:this.foreignScope,foreignScopeList:this.foreignScopeList,valueIsSet:this.model.has(this.idName)||this.model.has(this.typeName),iconHtml:t,displayEntityType:this.displayEntityType&&this.model.get(this.typeName)}}getSelectFilters(){return null}getSelectBoolFilterList(){return this.selectBoolFilterList}getSelectPrimaryFilterName(){return this.selectPrimaryFilterName}getCreateAttributes(){return null}setup(){this.nameName=this.name+"Name";this.typeName=this.name+"Type";this.idName=this.name+"Id";this.foreignScopeList=this.options.foreignScopeList||this.foreignScopeList;this.foreignScopeList=this.foreignScopeList||this.params.entityList||this.model.getLinkParam(this.name,"entityList")||[];this.foreignScopeList=Espo.Utils.clone(this.foreignScopeList).filter(e=>{if(!this.getMetadata().get(["scopes",e,"disabled"]))return!0});this.foreignScope=this.model.get(this.typeName)||this.foreignScopeList[0];this.foreignScope&&!~this.foreignScopeList.indexOf(this.foreignScope)&&this.foreignScopeList.unshift(this.foreignScope);this.listenTo(this.model,"change:"+this.typeName,()=>{this.foreignScope=this.model.get(this.typeName)||this.foreignScopeList[0]});this.autocompleteOnEmpty=this.params.autocompleteOnEmpty||this.autocompleteOnEmpty;"createDisabled"in this.options&&(this.createDisabled=this.options.createDisabled);if(!this.isListMode()){this.addActionHandler("selectLink",()=>this.actionSelect());this.addActionHandler("clearLink",()=>this.actionClearLink());this.events[`change select[data-name="${this.typeName}"]`]=e=>{this.foreignScope=e.currentTarget.value;this.$elementName.val("");this.$elementId.val("")}}}actionClearLink(){if(this.foreignScopeList.length){this.foreignScope=this.foreignScopeList[0];a.default.setValue(this.$elementType,this.foreignScope)}this.$elementName.val("");this.$elementId.val("");this.trigger("change")}async actionSelect(){var e=this.getMetadata().get(`clientDefs.${this.foreignScope}.modalViews.select`)||this.selectRecordsView,t=!this.createDisabled&&this.isEditMode(),t={scope:this.foreignScope,createButton:t,filters:this.getSelectFilters(),boolFilterList:this.getSelectBoolFilterList(),primaryFilterName:this.getSelectPrimaryFilterName(),createAttributes:t?this.getCreateAttributes():null,mandatorySelectAttributeList:this.getMandatorySelectAttributeList(),forceSelectAllAttributes:this.isForceSelectAllAttributes(),layoutName:this.getSelectLayout(),onSelect:e=>{this.select(e[0])}},e=(Espo.Ui.notifyWait(),await this.createView("modal",e,t));await e.render();Espo.Ui.notify()}setupSearch(){var e=this.getSearchParamsData().type;if("is"===e||!e){this.searchData.idValue=this.getSearchParamsData().idValue||this.searchParams.valueId;this.searchData.nameValue=this.getSearchParamsData().nameValue||this.searchParams.valueName;this.searchData.typeValue=this.getSearchParamsData().typeValue||this.searchParams.valueType}this.events["change select.search-type"]=e=>{var t=$(e.currentTarget).val();this.handleSearchType(t)}}handleSearchType(e){["is"].includes(e)?this.$el.find("div.primary").removeClass("hidden"):this.$el.find("div.primary").addClass("hidden")}select(e){this.$elementName.val(e.get("name")||e.id);this.$elementId.val(e.get("id"));this.trigger("change")}getMandatorySelectAttributeList(){return this.mandatorySelectAttributeList}isForceSelectAllAttributes(){return this.forceSelectAllAttributes}getAutocompleteMaxCount(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")}getAutocompleteUrl(e){let t=this.foreignScope+"?maxSize="+this.getAutocompleteMaxCount();if(!this.isForceSelectAllAttributes()){let e=["id","name"];this.getMandatorySelectAttributeList()&&(e=e.concat(this.getMandatorySelectAttributeList()));t+="&select="+e.join(",")}var i=this.getSelectBoolFilterList(),i=(i&&(t+="&"+$.param({boolFilterList:i})),this.getSelectPrimaryFilterName()),i=(i&&(t+="&"+$.param({primaryFilter:i})),this.getSelectFilters());i&&Object.keys(i).length&&(t+="&"+$.param({where:i}));return t}afterRender(){if(this.isEditMode()||this.isSearchMode()){this.$elementId=this.$el.find('input[data-name="'+this.idName+'"]');this.$elementName=this.$el.find('input[data-name="'+this.nameName+'"]');this.$elementType=this.$el.find('select[data-name="'+this.typeName+'"]');this.$elementName.on("change",()=>{if(""===this.$elementName.val()){this.$elementName.val("");this.$elementId.val("");this.trigger("change")}});this.$elementType.on("change",()=>{this.$elementName.val("");this.$elementId.val("");this.trigger("change")});this.$elementName.on("blur",e=>{setTimeout(()=>{this.mode===this.MODE_EDIT&&(e.currentTarget.value=this.model.get(this.nameName)||"")},100)});if(!this.autocompleteDisabled){let i,e=new r.default(this.$elementName.get(0),{name:this.name,focusOnSelect:!0,handleFocusMode:2,autoSelectFirst:!0,triggerSelectOnValidInput:!1,forceHide:!0,minChars:this.autocompleteOnEmpty?0:1,onSelect:t=>{this.getModelFactory().create(this.foreignScope,e=>{e.set(t.attributes);this.select(e);this.$elementName.focus()})},lookupFunction:t=>Promise.resolve(this.getAutocompleteUrl(t)).then(e=>{i&&i.getReadyState()<4&&i.abort();i=Espo.Ajax.getRequest(e,{q:t});return i}).then(e=>e.list.map(e=>({value:e.name,attributes:e})))});this.once("render remove",()=>e.dispose());a.default.init(this.$elementType,{});this.$elementType.on("change",()=>e.clear())}}if(this.isSearchMode()){var e=this.$el.find("select.search-type").val();this.handleSearchType(e);this.$el.find("select.search-type").on("change",()=>{this.trigger("change")})}}getValueForDisplay(){return this.model.get(this.nameName)}validateRequired(){if(this.isRequired()&&(null===this.model.get(this.idName)||!this.model.get(this.typeName))){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}fetch(){var e={};e[this.typeName]=this.$elementType.val()||null;e[this.nameName]=this.$elementName.val()||null;e[this.idName]=this.$elementId.val()||null;null===e[this.idName]&&(e[this.typeName]=null);return e}fetchSearch(){var e,t,i=this.$el.find("select.search-type").val();return"isEmpty"===i?{type:"isNull",field:this.idName,data:{type:i}}:"isNotEmpty"===i?{type:"isNotNull",field:this.idName,data:{type:i}}:(i=this.$elementType.val(),e=this.$elementName.val(),t=this.$elementId.val(),i?t?{type:"and",attribute:this.idName,value:[{type:"equals",field:this.idName,value:t},{type:"equals",field:this.typeName,value:i}],data:{type:"is",idValue:t,nameValue:e,typeValue:i}}:{type:"and",attribute:this.idName,value:[{type:"isNotNull",field:this.idName},{type:"equals",field:this.typeName,value:i}],data:{type:"is",typeValue:i}}:null)}getSearchType(){return this.getSearchParamsData().type||this.searchParams.typeFront}quickView(){var e=this.model.get(this.idName),t=this.model.get(this.typeName);if(e&&t){var i=new s.default;i.showDetail(this,{id:e,entityType:t})}}getSelectLayout(){}}e.default=o});define("views/fields/link-multiple-with-role",["exports","views/fields/link-multiple","ui/select"],function(e,t,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{roleType="enum";columnName="role";roleFieldIsForeign=!0;emptyRoleValue=null;rolePlaceholderText=null;roleMaxLength=50;forceRoles=!1;ROLE_TYPE_ENUM="enum";ROLE_TYPE_VARCHAR="varchar";columns;setup(){super.setup();this.columnsName=this.name+"Columns";this.columns=Espo.Utils.cloneDeep(this.model.get(this.columnsName)||{});this.listenTo(this.model,"change:"+this.columnsName,()=>{this.columns=Espo.Utils.cloneDeep(this.model.get(this.columnsName)||{})});this.roleField=this.getMetadata().get(["entityDefs",this.model.entityType,"fields",this.name,"columns",this.columnName]);this.displayRoleAsLabel=this.getMetadata().get(["entityDefs",this.model.entityType,"fields",this.roleField,"displayAsLabel"]);this.roleFieldScope=this.roleFieldIsForeign?this.foreignScope:this.model.entityType;if(this.roleType===this.ROLE_TYPE_ENUM&&!this.forceRoles){this.roleList=this.getMetadata().get(["entityDefs",this.roleFieldScope,"fields",this.roleField,"options"]);if(!this.roleList){this.roleList=[];this.skipRoles=!0}}this.roleType===this.ROLE_TYPE_ENUM&&(this.styleMap=this.getMetadata().get(["entityDefs",this.model.entityType,"fields",this.roleField,"style"])||{})}getAttributeList(){var e=super.getAttributeList();e.push(this.name+"Columns");return e}getDetailLinkHtml(e,t){t=t||this.nameHash[e]||e;!t&&e&&(t=this.translate(this.foreignScope,"scopeNames"));let i=(this.columns[e]||{})[this.columnName]||"";this.emptyRoleValue&&i===this.emptyRoleValue&&(i="");var s=$("<div>").append($("<a>").attr("href","#"+this.foreignScope+"/view/"+e).attr("data-id",e).text(t));if(this.isDetailMode()){var a=this.getIconHtml(e);a&&s.prepend(a)}if(i){let e=this.styleMap[i],t="text";if(this.displayRoleAsLabel&&e&&"default"!==e){t="label label-sm label";"muted"===e&&(e="default")}else e=e||"muted";t=t+"-"+e;a=this.roleType===this.ROLE_TYPE_ENUM?this.getLanguage().translateOption(i,this.roleField,this.roleFieldScope):i;s.append($("<span>").text(" "),$("<span>").addClass("text-muted middle-dot"),$("<span>").text(" "),$("<span>").text(a).addClass("small").addClass(t))}return s.get(0).outerHTML}getValueForDisplay(){if(this.isDetailMode()||this.isListMode()){let t=[];this.ids.forEach(e=>{t.push(this.getDetailLinkHtml(e))});return t.join("")}}deleteLink(e){this.trigger("delete-link",e);this.trigger("delete-link:"+e);this.deleteLinkHtml(e);var t=this.ids.indexOf(e);-1<t&&this.ids.splice(t,1);delete this.nameHash[e];delete this.columns[e];this.afterDeleteLink(e);this.trigger("change")}addLink(e,t){if(!~this.ids.indexOf(e)){this.ids.push(e);this.nameHash[e]=t;this.columns[e]={};this.columns[e][this.columnName]=null;this.addLinkHtml(e,t);this.trigger("add-link",e);this.trigger("add-link:"+e)}this.trigger("change")}getJQSelect(e,s){let a=$("<select>").addClass("role form-control input-sm").attr("data-id",e);this.roleList.forEach(e=>{var t=this.getLanguage().translateOption(e,this.roleField,this.roleFieldScope),t=$("<option>").val(e).text(t),i=(e===(s||"")&&t.attr("selected","selected"),this.styleMap[e]);i&&t.addClass("text-"+i);a.append(t)});return a}addLinkHtml(e,t){t=t||e;if(this.isSearchMode()||this.skipRoles)return super.addLinkHtml(e,t);var i=this.$el.find(".link-container"),s=this.prepareEditItemElement(e,t),i=(i.append(s),$(s));let a;a=this.roleType===this.ROLE_TYPE_ENUM?i.find("select.role"):i.find("input.role");a&&a.get(0)&&"SELECT"===a.get(0).tagName&&r.default.init(a);if(this.isEditMode()&&a){let t=t=>{if(t&&t.length&&null!==t.val()){let e=t.val().toString().trim();var i=t.data("id");""===e&&(e=null);this.columns[i]=this.columns[i]||{};this.columns[i][this.columnName]=e}};a.on("change",e=>{t($(e.currentTarget));this.trigger("change")});t(a)}return i}prepareEditItemElement(e,t){if(this.isSearchMode()||this.skipRoles)return super.prepareEditItemElement(e,t);var i=(this.columns[e]||{})[this.columnName],s=$("<div>").addClass("form-inline clearfix").addClass("list-group-item link-with-role link-group-item-with-columns").addClass("link-"+e),a=$("<a>").attr("role","button").attr("tabindex","0").attr("data-id",e).attr("data-action","clearLink").addClass("pull-right").append($("<span>").addClass("fas fa-times")),r=$("<div>").addClass("pull-left"),a=$("<div>").append(a),o=$("<div>").addClass("link-item-name").text(t).append(" ");let n;if(this.roleType===this.ROLE_TYPE_ENUM)n=this.getJQSelect(e,i);else{var l=this.rolePlaceholderText||this.translate(this.roleField,"fields",this.roleFieldScope);n=$("<input>").addClass("role form-control input-sm").attr("maxlength",this.roleMaxLength).attr("placeholder",l).attr("data-id",e).attr("value",i||"")}n&&r.append($("<span>").addClass("link-item-column").addClass("link-item-column-"+n.get(0).tagName.toLowerCase()).append(n));r.append(o);s.append(r).append(a);return s.get(0)}fetch(){var e=super.fetch();this.skipRoles||(e[this.columnsName]=Espo.Utils.cloneDeep(this.columns));return e}}e.default=s});define("views/fields/link-multiple-with-primary",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{primaryLink;switchPrimary(e){var t=this.$el.find(`[data-id="${e}"][data-action="switchPrimary"]`);if(!t.hasClass("active")){this.$el.find('button[data-action="switchPrimary"]').removeClass("active").children().addClass("text-muted");t.addClass("active").children().removeClass("text-muted");this.setPrimaryId(e);this.trigger("change")}}getAttributeList(){var e=super.getAttributeList();e.push(this.primaryIdAttribute);e.push(this.primaryNameAttribute);return e}setup(){this.primaryLink=this.options.primaryLink||this.primaryLink||this.model.getFieldParam(this.name,"primaryLink");this.primaryIdAttribute=this.primaryLink+"Id";this.primaryNameAttribute=this.primaryLink+"Name";super.setup();this.primaryId=this.model.get(this.primaryIdAttribute);this.primaryName=this.model.get(this.primaryNameAttribute);this.listenTo(this.model,"change:"+this.primaryIdAttribute,()=>{this.primaryId=this.model.get(this.primaryIdAttribute);this.primaryName=this.model.get(this.primaryNameAttribute)});this.events['click [data-action="switchPrimary"]']=e=>{var t=$(e.currentTarget),t=t.data("id");this.switchPrimary(t)}}setPrimaryId(e){this.primaryId=e;this.primaryName=e?this.nameHash[e]:null}renderLinks(){this.primaryId&&this.addLinkHtml(this.primaryId,this.primaryName);this.ids.forEach(e=>{e!==this.primaryId&&this.addLinkHtml(e,this.nameHash[e])})}getValueForDisplay(){if(this.isDetailMode()||this.isListMode()){let t=[];this.primaryId&&t.push(this.getDetailLinkHtml(this.primaryId,this.primaryName));if(this.ids.length)return this.ids.forEach(e=>{e!==this.primaryId&&t.push(this.getDetailLinkHtml(e))}),t.map(e=>$("<div>").addClass("link-multiple-item").append(e).get(0).outerHTML).join("")}}deleteLink(e){e===this.primaryId&&this.setPrimaryId(null);super.deleteLink(e)}deleteLinkHtml(e){super.deleteLinkHtml(e);this.managePrimaryButton()}addLinkHtml(e,t){t=t||e;if(this.isSearchMode())return super.addLinkHtml(e,t);var i=this.$el.find(".link-container"),s=$("<div>").addClass("form-inline clearfix ").addClass("list-group-item link-with-role link-group-item-with-primary").addClass("link-"+e).attr("data-id",e),a=$("<div>").text(t).append(" "),r=$("<a>").attr("role","button").attr("tabindex","0").attr("data-id",e).attr("data-action","clearLink").addClass("pull-right").append($("<span>").addClass("fas fa-times")),o=$("<div>"),n=$("<div>");o.append(a);n.append(r);s.append(o);s.append(n);a=e===this.primaryId,r=$("<span>").addClass("fas fa-star fa-sm").addClass(a?"":"text-muted"),o=$("<button>").attr("type","button").addClass("btn btn-link btn-sm pull-right hidden").attr("title",this.translate("Primary")).attr("data-action","switchPrimary").attr("data-id",e).append(r);o.insertBefore(s.children().first().children().first());i.append(s);this.managePrimaryButton();return s}managePrimaryButton(){var e=this.$el.find('button[data-action="switchPrimary"]');1<e.length?e.removeClass("hidden"):e.addClass("hidden");if(0===e.filter(".active").length){e=e.first();if(e.length){e.addClass("active").children().removeClass("text-muted");e=e.data("id");this.setPrimaryId(e);e!==this.primaryId&&this.trigger("change")}}}fetch(){var e=super.fetch();e[this.primaryIdAttribute]=this.primaryId;e[this.primaryNameAttribute]=this.primaryName;return e}}e.default=s});define("views/fields/link-multiple-with-columns",["exports","views/fields/link-multiple","helpers/reg-exp-pattern","ui/select","ui/autocomplete"],function(e,t,n,h,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);n=i(n);h=i(h);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{COLUMN_TYPE_VARCHAR="varchar";COLUMN_TYPE_ENUM="enum";COLUMN_TYPE_BOOL="bool";setup(){super.setup();let s=this.columnsDefs||{};this.validations.push("columnPattern");this.columnsDefs={};this.columnsName=this.name+"Columns";this.columns=Espo.Utils.cloneDeep(this.model.get(this.columnsName)||{});this.listenTo(this.model,"change:"+this.columnsName,()=>{this.columns=Espo.Utils.cloneDeep(this.model.get(this.columnsName)||{})});let a=this.getMetadata().get(["entityDefs",this.model.entityType,"fields",this.name,"columns"])||{};this.columnList=this.columnList||Object.keys(a);this.columnList.forEach(e=>{if(e in s)this.columnsDefs[e]=Espo.Utils.cloneDeep(s[e]);else if(e in a){var t=a[e],i={};i.field=t;i.scope=this.foreignScope;!this.getMetadata().get(["entityDefs",this.foreignScope,"fields",t,"type"])&&this.getMetadata().get(["entityDefs",this.model.entityType,"fields",t,"type"])&&(i.scope=this.model.entityType);t=this.getMetadata().get(["entityDefs",i.scope,"fields",t])||{};i.type=t.type;i.type!==this.COLUMN_TYPE_ENUM&&i.type!==this.COLUMN_TYPE_VARCHAR||(i.options=t.options);"default"in t&&(i.default=t.default);"maxLength"in t&&(i.maxLength=t.maxLength);"pattern"in t&&(i.pattern=t.pattern);this.columnsDefs[e]=i}});(this.isEditMode()||this.isDetailMode())&&(this.events['click a[data-action="toggleBoolColumn"]']=e=>{var t=$(e.currentTarget).data("id"),i=$(e.currentTarget).data("column");this.toggleBoolColumn(t,i)});this.on("render",this.disposeColumnAutocompletes,this);this.once("remove",this.disposeColumnAutocompletes,this)}toggleBoolColumn(e,t){this.columns[e][t]=!this.columns[e][t];this.reRender()}getAttributeList(){return[...super.getAttributeList(),this.name+"Columns"]}getDetailLinkHtml(r,e){e=e||this.nameHash[r]||r;var t=$("<a>").attr("href","#"+this.foreignScope+"/view/"+r).attr("data-id",r).text(e);this.mode===this.MODE_LIST&&t.addClass("text-default");let o=$("<div>").append(t);if(this.isDetailMode()){t=this.getIconHtml(r);t&&o.prepend(t)}this.columnList.forEach(e=>{var t=(this.columns[r]||{})[e]||"",i=this.columnsDefs[e].type,s=this.columnsDefs[e].field,a=this.columnsDefs[e].scope;if(i===this.COLUMN_TYPE_ENUM||i===this.COLUMN_TYPE_VARCHAR){i=i===this.COLUMN_TYPE_ENUM?this.getLanguage().translateOption(t,s,a):t;i&&o.append($("<span>").text(" "),$("<span>").addClass("text-muted middle-dot"),$("<span>").text(" "),$("<span>").text(i).addClass("text-muted small"))}});return o.get(0).innerHTML}getValueForDisplay(){if(this.isDetailMode()||this.isListMode()){let t=[];this.ids.forEach(e=>{t.push(this.getDetailLinkHtml(e))});return t.map(e=>$("<div>").addClass("link-multiple-item").html(e).get(0).outerHTML).join("")}}deleteLink(e){this.trigger("delete-link",e);this.trigger("delete-link:"+e);this.deleteLinkHtml(e);var t=this.ids.indexOf(e);-1<t&&this.ids.splice(t,1);delete this.nameHash[e];delete this.columns[e];this.afterDeleteLink(e);this.trigger("change")}getColumnValue(e,t){return(this.columns[e]||{})[t]}addLink(t,e){if(!~this.ids.indexOf(t)){this.ids.push(t);this.nameHash[t]=e;this.columns[t]={};this.columnList.forEach(e=>{this.columns[t][e]=null;"default"in this.columnsDefs[e]&&(this.columns[t][e]=this.columnsDefs[e].default)});this.addLinkHtml(t,e);this.afterAddLink(t);this.trigger("add-link",t);this.trigger("add-link:"+t)}this.trigger("change")}getJQSelect(e,t,i){let s=this.columnsDefs[e].field,a=this.columnsDefs[e].scope;var r=this.columnsDefs[e].options||[];let o=$("<select>").addClass("role form-control input-sm").attr("data-id",t).attr("data-column",e);r.forEach(e=>{var t=this.getLanguage().translateOption(e,s,a),t=$("<option>").val(e).text(t);e===(i||"")&&t.attr("selected","selected");o.append(t)});return o}getJQInput(e,t,i){var s=this.columnsDefs[e].field,a=this.columnsDefs[e].scope,r=this.columnsDefs[e].maxLength,s=this.translate(s,"fields",a),a=$("<input>").addClass("role form-control input-sm").attr("data-column",e).attr("placeholder",s).attr("data-id",t).attr("value",i||"");r&&a.attr("maxlength",r);return a}getJQLi(e,t,i){var s=this.columnsDefs[e].field,a=this.columnsDefs[e].scope,s=this.translate(s,"fields",a);return $("<li>").append($("<a>").attr("role","button").attr("tabindex","0").attr("data-action","toggleBoolColumn").attr("data-column",e).attr("data-id",t).append($("<span>").addClass("check-icon fas fa-check pull-right").addClass(i?"":"hidden")).append($("<div>").text(s)))}addLinkHtml(s,e){if(this.isSearchMode())return super.addLinkHtml(s,e);var t=this.$el.find(".link-container"),i=$("<div>").addClass("form-inline clearfix").addClass("list-group-item link-with-role link-group-item-with-columns").addClass("link-"+s),a=$("<a>").attr("role","button").attr("tabindex","0").attr("data-id",s).attr("data-action","clearLink").addClass("pull-right").append($("<span>").addClass("fas fa-times")),r=$("<div>").addClass("link-item-name").text(e).append(" ");let o=[],n=[],l=(this.columnList.forEach(e=>{var t=(this.columns[s]||{})[e],i=this.columnsDefs[e].type;i===this.COLUMN_TYPE_ENUM?o.push(this.getJQSelect(e,s,t)):i===this.COLUMN_TYPE_VARCHAR?o.push(this.getJQInput(e,s,t)):i===this.COLUMN_TYPE_BOOL&&n.push(this.getJQLi(e,s,t))}),$("<div>"));var d=$("<div>");o.forEach(e=>l.append($("<span>").addClass("link-item-column").addClass("link-item-column-"+e.get(0).tagName.toLowerCase()).append(e)));if(n.length){let t=$("<ul>").addClass("dropdown-menu");n.forEach(e=>t.append(e));l.append($("<div>").addClass("btn-group pull-right").append($("<button>").attr("type","button").attr("data-toggle","dropdown").addClass("btn btn-link btn-sm dropdown-toggle").append($("<span>").addClass("caret"))).append(t))}l.append(r);d.append(a);i.append(l);i.append(d);t.append(i);if(this.isEditMode()){o.forEach(e=>{e.get(0)&&"SELECT"===e.get(0).tagName&&h.default.init(e);let i=t=>{if(t&&t.length){var i=t.data("column");let e=t.val().toString().trim();var s=t.data("id");""===e&&(e=null);this.columns[s]=this.columns[s]||{};this.columns[s][i]=e}};e.on("change",e=>{var t=$(e.currentTarget);i(t);this.trigger("change")});i(e)});this.initAutocomplete(s)}return i}initAutocomplete(s){this._autocompleteList||(this._autocompleteList=[]);this.columnList.forEach(e=>{var i=this.columnsDefs[e].type;if(i===this.COLUMN_TYPE_VARCHAR){i=this.columnsDefs[e].options;if(i&&i.length){let t=this.$el.find(`[data-column="${e}"][data-id="${s}"]`);if(t.length){let e=new a.default(t.get(0),{name:this.name+"Column"+s,triggerSelectOnValidInput:!0,autoSelectFirst:!0,handleFocusMode:1,focusOnSelect:!0,onSelect:()=>{this.trigger("change");t.trigger("change")},lookup:i});this._autocompleteList.push(e);this.once("delete-link:"+s,()=>e.dispose())}}}})}disposeColumnAutocompletes(){if(this._autocompleteList&&this._autocompleteList.length){this._autocompleteList.forEach(e=>{e.dispose()});this._autocompleteList=[]}}validateColumnPattern(){let e=!1;var t,i=this.columnList.filter(e=>this.columnsDefs[e].type===this.COLUMN_TYPE_VARCHAR).filter(e=>this.columnsDefs[e].pattern);for(t of i)for(var s of this.ids){var a=this.getColumnValue(s,t);a&&this.validateColumnPatternValue(s,t,a)&&(e=!0)}return e}validateColumnPatternValue(e,t,i){var s=this.columnsDefs[t].pattern,a=this.columnsDefs[t].field,r=this.columnsDefs[t].scope,o=new n.default,o=o.validate(s,i,a,r);if(!o)return!1;this.showValidationMessage(o.message,'[data-column="'+t+'"][data-id="'+e+'"]');return!0}fetch(){var e=super.fetch();e[this.columnsName]=Espo.Utils.cloneDeep(this.columns);return e}}e.default=s});define("views/fields/image",["exports","views/fields/file"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="image";showPreview=!0;accept=["image/*"];defaultType="image/jpeg";previewSize="small"}e.default=s});define("views/fields/foreign-array",["exports","views/fields/array","views/fields/foreign-enum","helpers/misc/foreign-field"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{type="foreign";foreignEntityType;setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];this.foreignEntityType=t.getEntityType();super.setup()}setupOptions(){i.default.prototype.setupOptions.call(this)}}e.default=r});define("views/fields/enum-int",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="enumInt";listTemplate="fields/enum/detail";detailTemplate="fields/enum/detail";editTemplate="fields/enum/edit";searchTemplate="fields/enum/search";validations=[];fetch(){var e=this.$element.val();if(""===e)return{[this.name]:null};var e=parseInt(e),t={};t[this.name]=e;return t}parseItemForSearch(e){return parseInt(e)}}e.default=s});define("views/fields/entity-type",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{scopesMetadataDefs;checkAvailability(e){var t=this.scopesMetadataDefs[e]||{};if(t.entity&&t.object)return!0}setupOptions(){var e=this.scopesMetadataDefs=this.getMetadata().get("scopes");this.params.options=Object.keys(e).filter(e=>{if(this.checkAvailability(e))return!0}).sort((e,t)=>this.translate(e,"scopeNames").localeCompare(this.translate(t,"scopeNames")));this.params.options.unshift("")}setup(){this.params.translation="Global.scopeNames";this.setupOptions();super.setup()}}e.default=s});define("views/fields/email",["exports","views/fields/varchar","helpers/misc/mailto","ui/autocomplete"],function(e,t,a,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);a=s(a);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{constructor(e){super(e)}type="email";editTemplate="fields/email/edit";detailTemplate="fields/email/detail";listTemplate="fields/email/list";validations=["required","emailData"];events={'click [data-action="mailTo"]':function(e){this.mailTo($(e.currentTarget).data("email-address"))},'click [data-action="switchEmailProperty"]':function(e){var t=$(e.currentTarget),i=$(e.currentTarget).closest("div.email-address-block"),s=t.data("property-type"),i=i.find("input.email-address");if("primary"===s){if(!t.hasClass("active")&&""!==i.val()){this.$el.find('button.email-property[data-property-type="primary"]').removeClass("active").children().addClass("text-muted");t.addClass("active").children().removeClass("text-muted")}}else{let e=!1;if(t.hasClass("active"))t.removeClass("active").children().addClass("text-muted");else{t.addClass("active").children().removeClass("text-muted");e=!0}"optOut"===s&&(e?i.addClass("text-strikethrough"):i.removeClass("text-strikethrough"));"invalid"===s&&(e?i.addClass("text-danger"):i.removeClass("text-danger"))}this.trigger("change")},'click [data-action="removeEmailAddress"]':function(e){var t=$(e.currentTarget).closest("div.email-address-block"),t=(this.removeEmailAddress(t),this.$el.find(".email-address").last());t.length&&t[0].focus({preventScroll:!0})},"change input.email-address":function(e){var t=$(e.currentTarget),i=t.closest("div.email-address-block");if(!this._itemJustRemoved){""===t.val()&&i.length?this.removeEmailAddress(i):this.trigger("change");this.trigger("change");this.manageAddButton()}},"keypress input.email-address":function(){this.manageAddButton()},"paste input.email-address":function(){setTimeout(()=>this.manageAddButton(),10)},'click [data-action="addEmailAddress"]':function(){this.addEmailAddress()},"keydown input.email-address":function(e){var t=Espo.Utils.getKeyFromKeyEvent(e),i=$(e.currentTarget);if("Enter"===t){if(!this.$el.find('[data-action="addEmailAddress"]').hasClass("disabled")){this.addEmailAddress();e.stopPropagation()}}else if("Backspace"===t&&""===i.val()){t=i.closest("div.email-address-block");this._itemJustRemoved=!0;setTimeout(()=>this._itemJustRemoved=!1,100);e.stopPropagation();this.removeEmailAddress(t);setTimeout(()=>this.focusOnLast(!0),50)}}};validateEmailData(){var e=this.model.get(this.dataFieldName);if(e&&e.length){let a=[],r=new RegExp(/^[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+(?:\.[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+)*/.source+/@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]/.source),o=!1;e.forEach((e,t)=>{var i=e.emailAddress||"",s=String(i).toLowerCase();if(r.test(s)||0===i.indexOf(this.erasedPlaceholder))if(a.includes(s)){i=this.translate("fieldValueDuplicate","messages").replace("{field}",this.getLabelText());this.showValidationMessage(i,"div.email-address-block:nth-child("+(t+1).toString()+") input");o=!0}else a.push(s);else{i=this.translate("fieldShouldBeEmail","messages").replace("{field}",this.getLabelText());this.reRender();this.showValidationMessage(i,"div.email-address-block:nth-child("+(t+1).toString()+") input");o=!0}});return!!o||void 0}}validateRequired(){if(this.isRequired()&&!this.model.get(this.name)){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,"div.email-address-block:nth-child(1) input");return!0}}validateMaxCount(){var e=this.maxCount;if(!e)return!1;var t=this.model.attributes[this.dataFieldName]||[];if(t.length<=e)return!1;t=this.translate("fieldExceedsMaxCount","messages").replace("{maxCount}",e.toString());this.showValidationMessage(t,"div.email-address-block:last-child input");return!0}data(){let t;if(this.mode===this.MODE_EDIT){t=Espo.Utils.clone(this.model.get(this.dataFieldName));if((this.model.isNew()||!this.model.get(this.name))&&(!t||!t.length)){let e;e=this.model.isNew()?this.emailAddressOptedOutByDefault&&"User"!==this.model.entityType:this.model.get(this.isOptedOutFieldName);t=[{emailAddress:this.model.get(this.name)||"",primary:!0,optOut:e,invalid:!1}]}}else t=this.model.get(this.dataFieldName)||!1;t&&0!==t.length||!this.model.get(this.name)||(t=[{emailAddress:this.model.get(this.name),primary:!0,optOut:!1,invalid:!1}]);if(t){t=Espo.Utils.cloneDeep(t);t.forEach(e=>{var t=e.emailAddress||"";e.erased=0===t.indexOf(this.erasedPlaceholder);e.lineThrough=e.optOut||e.invalid})}var e={...super.data(),emailAddressData:t};if(this.isReadMode()){e.isOptedOut=this.model.get(this.isOptedOutFieldName);e.isInvalid=this.model.get(this.isInvalidFieldName);this.model.get(this.name)&&(e.isErased=0===this.model.get(this.name).indexOf(this.erasedPlaceholder));e.valueIsSet=this.model.has(this.name)}e.itemMaxLength=this.itemMaxLength;e.onlyPrimary=this.params.onlyPrimary;return e}getAutocompleteMaxCount(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")}focusOnLast(e){var t=this.$el.find("input.form-control").last();t.focus();e&&t[0]}removeEmailAddress(e){1===e.parent().children().length?e.find("input.email-address").val(""):this.removeEmailAddressBlock(e);this.trigger("change")}addEmailAddress(){var e=Espo.Utils.cloneDeep(this.fetchEmailAddressData()),t={emailAddress:"",primary:!e.length,optOut:this.emailAddressOptedOutByDefault,invalid:!1,lower:""};e.push(t);this.model.set(this.dataFieldName,e,{silent:!0});this.reRender().then(()=>this.focusOnLast())}removeEmailAddressBlock(e){let t=!1;e.find('button[data-property-type="primary"]').hasClass("active")&&(t=!0);e.remove();t&&this.$el.find('button[data-property-type="primary"]').first().addClass("active").children().removeClass("text-muted");this.manageButtonsVisibility();this.manageAddButton()}afterRender(){super.afterRender();this.manageButtonsVisibility();this.manageAddButton();if(this.mode===this.MODE_SEARCH){let e=new i.default(this.$element.get(0),{name:this.name,autoSelectFirst:!0,triggerSelectOnValidInput:!0,focusOnSelect:!0,minChars:1,forceHide:!0,handleFocusMode:1,onSelect:e=>{this.$element.val(e.emailAddress)},formatResult:e=>this.getHelper().escapeString(e.name)+" <"+this.getHelper().escapeString(e.id)+">",lookupFunction:e=>Espo.Ajax.getRequest("EmailAddress/search",{q:e,maxSize:this.getAutocompleteMaxCount(),entityType:this.entityType}).then(e=>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})))});this.once("render remove",()=>e.dispose())}}manageAddButton(){var e=this.$el.find("input.email-address");let i=0;e.each((e,t)=>{""!==t.value&&i++});i===e.length?this.$el.find('[data-action="addEmailAddress"]').removeClass("disabled").removeAttr("disabled"):this.$el.find('[data-action="addEmailAddress"]').addClass("disabled").attr("disabled","disabled")}manageButtonsVisibility(){var e=this.$el.find('button[data-property-type="primary"]'),t=this.$el.find('button[data-action="removeEmailAddress"]');if(1<e.length){e.removeClass("hidden");t.removeClass("hidden")}else{e.addClass("hidden");t.addClass("hidden")}}mailTo(e){var t={status:"Draft",to:e},i=this.model.entityType;switch(i){case"Account":case"Lead":t.parentType=i;t.parentName=this.model.get("name");t.parentId=this.model.id;break;case"Contact":if(this.getConfig().get("b2cMode")){t.parentType="Contact";t.parentName=this.model.get("name");t.parentId=this.model.id}else if(this.model.get("accountId")){t.parentType="Account";t.parentName=this.model.get("accountName");t.parentId=this.model.get("accountId")}}if(this.model.collection&&"parentModel"in this.model.collection&&this.model.collection.parentModel&&this.checkParentTypeAvailability(this.model.collection.parentModel.entityType)){t.parentType=this.model.collection.parentModel.entityType;t.parentId=this.model.collection.parentModel.id;t.parentName=this.model.collection.parentModel.get("name")}if(t.parentId){if(t.parentType&&!this.checkParentTypeAvailability(t.parentType)){t.parentType=null;t.parentId=null;t.parentName=null}}else if(this.checkParentTypeAvailability(this.model.entityType)){t.parentType=this.model.entityType;t.parentId=this.model.id;t.parentName=this.model.get("name")}if(["Contact","Lead","Account"].includes(this.model.entityType)){t.nameHash={};t.nameHash[e]=this.model.get("name")}var s=new a.default(this.getConfig(),this.getPreferences(),this.getAcl());if(s.toUse())document.location.href=s.composeLink(t);else{s=this.getMetadata().get("clientDefs."+this.scope+".modalViews.compose")||"views/modals/compose-email";Espo.Ui.notifyWait();this.createView("quickCreate",s,{attributes:t},e=>{e.render();e.notify(!1)})}}checkParentTypeAvailability(e){return~(this.getMetadata().get(["entityDefs","Email","fields","parent","entityList"])||[]).indexOf(e)}setup(){this.dataFieldName=this.name+"Data";this.isOptedOutFieldName=this.name+"IsOptedOut";this.isInvalidFieldName=this.name+"IsInvalid";this.erasedPlaceholder="ERASED:";this.emailAddressOptedOutByDefault=this.getConfig().get("emailAddressIsOptedOutByDefault");this.maxCount=this.getConfig().get("emailAddressMaxCount");this.itemMaxLength=this.getMetadata().get(["entityDefs","EmailAddress","fields","name","maxLength"])||255;this.validations.push(()=>this.validateMaxCount())}fetchEmailAddressData(){let a=[];var e=this.$el.find("div.email-address-block");e.length&&e.each((e,t)=>{var i={},s=$(t);i.emailAddress=s.find("input.email-address").val().trim();if(""!==i.emailAddress){i.primary=s.find('button[data-property-type="primary"]').hasClass("active");i.optOut=s.find('button[data-property-type="optOut"]').hasClass("active");i.invalid=s.find('button[data-property-type="invalid"]').hasClass("active");i.lower=i.emailAddress.toLowerCase();a.push(i)}});return a}fetch(){let s={};var e=this.fetchEmailAddressData();if(this.params.onlyPrimary)if(0<e.length){s[this.name]=e[0].emailAddress;s[this.dataFieldName]=[{emailAddress:e[0].emailAddress,lower:e[0].lower,primary:!0}]}else{s[this.name]=null;s[this.dataFieldName]=null}else{s[this.dataFieldName]=e;s[this.name]=null;s[this.isOptedOutFieldName]=!1;s[this.isInvalidFieldName]=!1;let i=0;e.forEach((e,t)=>{if(e.primary){i=t;e.optOut&&(s[this.isOptedOutFieldName]=!0);e.invalid&&(s[this.isInvalidFieldName]=!0)}});if(e.length&&0<i){var t=e[0];e[0]=e[i];e[i]=t}if(e.length)s[this.name]=e[0].emailAddress;else{s[this.isOptedOutFieldName]=null;s[this.isInvalidFieldName]=null}}return s}fetchSearch(){var e=this.fetchSearchType();return["isEmpty","isNotEmpty"].includes(e)?{type:"isEmpty"===e?"isNull":"isNotNull",attribute:this.name,data:{type:e}}:super.fetchSearch()}}e.default=r});define("views/fields/decimal",["exports","views/fields/int"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{constructor(e){super(e)}type="decimal";editTemplate="fields/float/edit";decimalMark=".";decimalPlacesRawValue=10;validations=["required","range"];decimalPlaces;setup(){super.setup();this.getPreferences().has("decimalMark")?this.decimalMark=this.getPreferences().get("decimalMark"):this.getConfig().has("decimalMark")&&(this.decimalMark=this.getConfig().get("decimalMark"));this.decimalMark||(this.decimalMark=".");this.decimalMark===this.thousandSeparator&&(this.thousandSeparator="");this.decimalPlaces=this.params.decimalPlaces??null}setupAutoNumericOptions(){this.autoNumericOptions={digitGroupSeparator:this.thousandSeparator||"",decimalCharacter:this.decimalMark,modifyValueOnWheel:!1,selectOnFocus:!1,decimalPlaces:this.decimalPlaces,decimalPlacesRawValue:this.decimalPlacesRawValue,allowDecimalPadding:!0,showWarnings:!1,formulaMode:!0};if(null===this.decimalPlaces){this.autoNumericOptions.decimalPlaces=this.decimalPlacesRawValue;this.autoNumericOptions.decimalPlacesRawValue=this.decimalPlacesRawValue;this.autoNumericOptions.allowDecimalPadding=!1}}getValueForDisplay(){var e=isNaN(this.model.get(this.name))?null:this.model.get(this.name);return this.formatNumber(e)}formatNumber(e){return this.disableFormatting?e:this.formatNumberDetail(e)}formatNumberDetail(e){if(null===e)return"";var t=this.decimalPlaces,i=e.toString().split(".");i[0]=i[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandSeparator);if(0===t)return i[0];if(t){let e=0;if(1<i.length){i[1]=i[1].replace(/0+$/,"");e=i[1].length}else i[1]="";if(t&&e<t){var s=t-e;for(let e=0;e<s;e++)i[1]+="0"}}return i.join(this.decimalMark)}parse(e){e=""!==e?e:null;if(null===e)return null;e=e.split(this.thousandSeparator).join("").split(this.decimalMark).join(".");return e}fetch(){var e=(null==(e=this.mainInputElement)?void 0:e.value)??null,e=this.parse(e);return{[this.name]:e}}validateRange(){var e=this.model.get(this.name);if(null!==e){var t=this.params.min,i=this.params.max;if(null!==t&&null!==i){if(Number(e)<Number(t)||Number(e)>Number(i)){var s=this.translate("fieldShouldBeBetween","messages").replace("{field}",this.getLabelText()).replace("{min}",t).replace("{max}",i);this.showValidationMessage(s);return!0}}else if(null!==t){if(Number(e)<Number(t)){s=this.translate("fieldShouldBeGreater","messages").replace("{field}",this.getLabelText()).replace("{value}",t);this.showValidationMessage(s);return!0}}else if(null!==i&&Number(e)>Number(i)){t=this.translate("fieldShouldBeLess","messages").replace("{field}",this.getLabelText()).replace("{value}",i);this.showValidationMessage(t);return!0}}return!1}}e.default=s});define("views/fields/datetime-short",["exports","views/fields/datetime","moment"],function(e,t,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{shortInListMode=!0;shortInDetailMode=!0;data(){var e=super.data();this.toApplyShort()&&(e.titleDateValue=super.getDateStringValue());return e}toApplyShort(){return this.shortInListMode&&this.mode===this.MODE_LIST||this.shortInDetailMode&&this.mode===this.MODE_DETAIL}getDateStringValue(){if(!this.toApplyShort())return super.getDateStringValue();var e=this.model.get(this.name);if(!e)return super.getDateStringValue();let t=this.getDateTime().timeFormat;this.params.hasSeconds&&(t=t.replace(/:mm/,":mm:ss"));var e=this.getDateTime().toMoment(e),i=(0,r.default)().tz(this.getDateTime().timeZone||"UTC"),s=i.clone().startOf("day");s.unix(),s.add(1,"days").unix(),s.unix(),s.add(1,"days").unix();const a=[s.add(-3,"days").unix(),s.add(1,"days").unix()];return e.unix()>a[0]&&e.unix()<a[1]&&this.getLanguage().has("yesterdayShort","strings","Global")?this.translate("yesterdayShort","strings")+" "+e.format(t):e.unix()>i.clone().startOf("day").unix()&&e.unix()<i.clone().add(1,"days").startOf("day").unix()?e.format(t):(s=this.getDateTime().getReadableShortDateFormat(),e.format("YYYY")===i.format("YYYY")?e.format(s):e.format(s+", YY"))}}e.default=s});define("views/fields/currency-converted",["exports","views/fields/currency"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{data(){var e=super.data(),t=this.getConfig().get("defaultCurrency");e.currencyValue=t;e.currencySymbol=this.getMetadata().get(["app","currency","symbolMap",t])||"";return e}}e.default=s});define("views/fields/checklist",["exports","views/fields/array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="checklist";listTemplate="fields/array/list";detailTemplate="fields/checklist/detail";editTemplate="fields/checklist/edit";isInversed=!1;events={};data(){return{optionDataList:this.getOptionDataList(),...super.data()}}setup(){super.setup();this.params.options=this.params.options||[];this.isInversed=this.params.isInversed||this.options.isInversed||this.isInversed}afterRender(){this.isSearchMode()&&this.renderSearch();this.isEditMode()&&this.$el.find("input").on("change",()=>{this.trigger("change")})}getOptionDataList(){let a=this.model.get(this.name)||[],r=[];this.params.options.forEach(e=>{let t=~a.indexOf(e);var i=e,s=this.cid+"-"+Espo.Utils.camelCaseToHyphen(e.replace(/\s+/g,"-"));this.isInversed&&(t=!t);r.push({name:e,isChecked:t,dataName:i,id:s,label:this.translatedOptions[e]||e})});return r}fetch(){let s=[];this.params.options.forEach(e=>{var t=this.$el.find('input[data-name="'+e+'"]');let i=t.get(0)&&t.get(0).checked;this.isInversed&&(i=!i);i&&s.push(e)});var e={};e[this.name]=s;return e}validateRequired(){if(this.isRequired()){var e=this.model.get(this.name);if(!e||0===e.length){e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,".checklist-item-container:last-child input");return!0}}}validateMaxCount(){if(this.params.maxCount){var e=this.model.get(this.name)||[];if(e.length>this.params.maxCount){e=this.translate("fieldExceedsMaxCount","messages").replace("{field}",this.getLabelText()).replace("{maxCount}",this.params.maxCount.toString());this.showValidationMessage(e,".checklist-item-container:last-child input");return!0}}}}e.default=s});define("views/email-template/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{duplicateAction=!0;saveAndContinueEditingAction=!0;setup(){super.setup();this.listenToInsertField();this.hideField("insertField");this.on("before:set-edit-mode",()=>this.showField("insertField"));this.on("before:set-detail-mode",()=>this.hideField("insertField"))}listenToInsertField(){this.listenTo(this.model,"insert-field",e=>{var t=`{${e.entityType}.${e.field}}`,i=this.getFieldView("body");if(i)if(this.model.attributes.isHtml){var s=$(window.getSelection().anchorNode);s.closest(".note-editing-area").length&&i.insertText(t)}else{s=$(i.element.querySelector("textarea.main-element")),i=s.val();i+=t;s.val(i)}})}}e.default=s});define("views/email/detail",["exports","views/detail","email-helper","helpers/record-modal","views/attachment/modals/select-one","utils"],function(e,t,r,o,n,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);r=s(r);o=s(o);n=s(n);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setup(){super.setup();var e=this.model.get("status");if("Draft"===e)this.menu={buttons:[],dropdown:[],actions:[]};else{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);if("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"});if(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:isImportant change:inTrash change:inArchive change:groupStatusFolder",()=>{if(this.isRendered()){var e=this.getHeaderView();e&&e.reRender()}});this.shortcutKeys["Control+Backspace"]=e=>{if(!i.default.isKeyEventInTextInput(e)){var t=this.getRecordView();if(this.model.get("isUsers")&&!this.model.get("inArchive")){e.preventDefault();e.stopPropagation();t.actionMoveToArchive()}}};this.shortcutKeys["Control+Delete"]=e=>{if(!i.default.isKeyEventInTextInput(e)){var t=this.getRecordView();if(this.model.get("isUsers")&&!this.model.get("inTrash")){e.preventDefault();e.stopPropagation();t.actionMoveToTrash()}}};this.shortcutKeys["Control+KeyI"]=e=>{if(!i.default.isKeyEventInTextInput(e)){var t=this.getRecordView();if(this.model.get("isUsers")){e.preventDefault();e.stopPropagation();this.model.get("isImportant")?t.actionMarkAsNotImportant():t.actionMarkAsImportant()}}};this.shortcutKeys["Control+KeyM"]=e=>{if(!i.default.isKeyEventInTextInput(e)){var t=this.getRecordView();if(this.model.get("isUsers")){e.preventDefault();e.stopPropagation();t.actionMoveToFolder()}}}}async actionCreateLead(){var e={},t=new r.default,i=this.model.get("fromString")||this.model.get("fromName");if(i){i=t.parseNameFromStringAddress(i);if(i){var s=i.split(" ").slice(0,-1).join(" "),i=i.split(" ").slice(-1).join(" ");e.firstName=s;e.lastName=i}}if(this.model.get("replyToString")){s=this.model.get("replyToString"),i=s.split(";")[0],s=(e.emailAddress=t.parseAddressFromStringAddress(i),t.parseNameFromStringAddress(i));if(s){t=s.split(" ").slice(0,-1).join(" "),i=s.split(" ").slice(-1).join(" ");e.firstName=t;e.lastName=i}}e.emailAddress||(e.emailAddress=this.model.get("from"));e.originalEmailId=this.model.id;s=new o.default,t=await s.showCreate(this,{entityType:"Lead",attributes:e,afterSave:()=>{this.model.fetch();this.removeMenuItem("createContact");this.removeMenuItem("createLead")}});this.listenTo(t,"before:save",()=>{this.getRecordView().blockUpdateWebSocket(!0)})}async actionCreateCase(){var e={},t=this.model.get("parentId"),i=this.model.get("parentType"),s=this.model.get("parentName"),a=this.model.get("accountId"),r=this.model.get("accountName");if(t)if("Account"===i){e.accountId=t;e.accountName=s}else if("Contact"===i){e.contactId=t;e.contactName=s;e.contactsIds=[t];e.contactsNames={};e.contactsNames[t]=s;if(a){e.accountId=a;e.accountName=r||a}}else if("Lead"===i){e.leadId=t;e.leadName=s}e.originalEmailId=this.model.id;e.name=this.model.get("name");e.description=this.model.get("bodyPlain")||"";r=this.model.get("attachmentsIds")||[];Espo.Ui.notifyWait();if(r.length){a=await Espo.Ajax.postRequest(`Email/${this.model.id}/attachments/copy`,{parentType:"Case",field:"attachments"});e.attachmentsIds=a.ids;e.attachmentsNames=a.names}i=new o.default,t=await i.showCreate(this,{entityType:"Case",attributes:e,afterSave:()=>{this.model.fetch();this.removeMenuItem("createCase")}});this.listenTo(t,"before:save",()=>this.getRecordView().blockUpdateWebSocket(!0))}actionCreateTask(){var e={};e.parentId=this.model.get("parentId");e.parentName=this.model.get("parentName");e.parentType=this.model.get("parentType");e.originalEmailId=this.model.id;var t=this.model.attributes.name,t=(e.description=`[${this.translate("Email","scopeNames")}: ${t}](#Email/view/${this.model.id})
|
||
`,"#Task/create?emailId="+e.originalEmailId),i=new o.default;i.showCreate(this,{entityType:"Task",attributes:e,fullFormUrl:t,afterSave:()=>{this.model.fetch()},beforeRender:e=>{var t=e.getRecordView().getFieldView("name"),i=[];t&&t.params.options&&i.push(...t.params.options);i.push(this.translate("replyToEmail","nameOptions","Task"));e.getRecordView().setFieldOptionList("name",i)}})}async actionCreateContact(){var e={},t=new r.default,i=this.model.get("fromString")||this.model.get("fromName");if(i){i=t.parseNameFromStringAddress(i);if(i){var s=i.split(" ").slice(0,-1).join(" "),i=i.split(" ").slice(-1).join(" ");e.firstName=s;e.lastName=i}}if(this.model.get("replyToString")){s=this.model.get("replyToString"),i=s.split(";")[0],s=(e.emailAddress=t.parseAddressFromStringAddress(i),t.parseNameFromStringAddress(i));if(s){t=s.split(" ").slice(0,-1).join(" "),i=s.split(" ").slice(-1).join(" ");e.firstName=t;e.lastName=i}}e.emailAddress||(e.emailAddress=this.model.get("from"));e.originalEmailId=this.model.id;s=new o.default,t=await s.showCreate(this,{entityType:"Contact",attributes:e,afterSave:()=>{this.model.fetch();this.removeMenuItem("createContact");this.removeMenuItem("createLead")}});this.listenTo(t,"before:save",()=>{this.getRecordView().blockUpdateWebSocket(!0)})}actionReply(e,t,i){var s=new r.default,s=s.getReplyAttributes(this.model,e,i),a=(Espo.Ui.notifyWait(),this.getMetadata().get("clientDefs.Email.modalViews.compose")||"views/modals/compose-email");this.createView("quickCreate",a,{attributes:s,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 r.default;Espo.Ui.notifyWait();Espo.Ajax.postRequest("Email/action/getDuplicateAttributes",{id:this.model.id}).then(e=>{var t=this.model.clone(),t=(t.set("body",e.body),s.getForwardAttributes(t));t.attachmentsIds=e.attachmentsIds;t.attachmentsNames=e.attachmentsNames;Espo.Ui.notifyWait();var i=this.getMetadata().get("clientDefs.Email.modalViews.compose")||"views/modals/compose-email";this.createView("quickCreate",i,{attributes:t},e=>{e.render();e.notify(!1)})})}getHeader(){var e=this.model.attributes.name,t=this.model.attributes.isImportant,i=this.model.attributes.groupFolderId?"Trash"===this.model.attributes.groupStatusFolder:this.model.attributes.inTrash,s=this.model.attributes.groupFolderId?"Archive"===this.model.attributes.groupStatusFolder:this.model.attributes.inArchive,a=this.getLanguage().translate(this.scope,"scopeNamesPlural");let r=document.createElement("span");r.text=a;r.style.userSelect="none";if(!this.rootLinkDisabled){var o=document.createElement("a");o.href=this.rootUrl;o.classList.add("action");o.dataset.action="navigateToRoot";o.text=a;r=document.createElement("span");r.style.userSelect="none";r.append(o)}a=this.getHeaderIconHtml();a&&r.insertAdjacentHTML("afterbegin",a);let n=null;t?n="text-warning":i?n="text-muted":s&&(n="text-info");o=document.createElement("span");o.classList.add("font-size-flexible","title");o.textContent=e;n&&o.classList.add(n);if("detail"===this.getRecordMode()){o.title=this.translate("clickToRefresh","messages");o.dataset.action="fullRefresh";o.style.cursor="pointer"}return this.buildHeaderHtml([r,o])}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(){var e=this.model.getLinkMultipleIdList("attachments");if(e.length){let i=this.model.get("attachmentsNames")||{},s=this.model.get("attachmentsTypes")||{},a=async e=>{var t={};if(this.model.get("accountId")){t.accountsIds=[this.model.get("accountId")];t.accountsNames={};t.accountsNames[this.model.get("accountId")]=this.model.get("accountName")}Espo.Ui.notifyWait();var i=await Espo.Ajax.postRequest("Attachment/copy/"+e,{relatedType:"Document",field:"file"});t.fileId=i.id;t.fileName=i.name;t.name=i.name;i=new o.default;await i.showCreate(this,{entityType:"Document",attributes:t})};if(1===e.length)a(e[0]);else{let t=[];e.forEach(e=>{t.push({id:e,name:i[e]||e,type:s[e]})});e=new n.default({dataList:t,fieldLabel:this.translate("attachments","fields","Email"),onSelect:e=>a(e)});this.assignView("selectModal",e);e.render()}}}}e.default=a});define("views/email/record/list",["exports","views/record/list","helpers/mass-action"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{rowActionsView="views/email/record/row-actions/default";massActionList=["remove","massUpdate"];toRemoveIdList;collectionEventSyncList=["moving-to-trash","retrieving-from-trash","moving-to-archive"];setup(){super.setup();if(this.collection.url===this.entityType){this.addMassAction({name:"retrieveFromTrash",groupIndex:-6},!1);this.addMassAction({name:"moveToTrash",groupIndex:-5},!1);this.addMassAction({name:"moveToArchive",groupIndex:-5},!1);this.addMassAction({name:"moveToFolder",groupIndex:-5},!0);this.addMassAction({name:"markAsImportant",groupIndex:-4},!1);this.addMassAction({name:"markAsNotImportant",groupIndex:-4},!1);this.addMassAction({name:"markAsRead",groupIndex:-3},!1);this.addMassAction({name:"markAsNotRead",groupIndex:-3},!1);this.dropdownItemList.push({name:"markAllAsRead",label:"Mark all as read"});this.controlEmailMassActionsVisibility();this.listenTo(this.collection,"select-folder",()=>this.controlEmailMassActionsVisibility())}this.listenTo(this.collection,"moving-to-trash",(e,t)=>{var i=this.collection.get(e);i&&(i.attributes.groupFolderId?i.set("groupFolderStatus","Trash"):i.set("inTrash",!0));"trash"!==this.rootData.selectedFolderId&&"all"!==this.rootData.selectedFolderId&&(t?this.toRemoveIdList.push(e):this.removeRecordFromList(e))});this.listenTo(this.collection,"retrieving-from-trash",(e,t)=>{var i=this.collection.get(e);i&&(i.attributes.groupFolderId?i.set("groupFolderStatus",null):i.set("inTrash",!1));"all"!==this.rootData.selectedFolderId&&"trash"===this.rootData.selectedFolderId&&(t?this.toRemoveIdList.push(e):this.removeRecordFromList(e))});this.listenTo(this.collection,"moving-to-archive",(e,t)=>{var i=this.collection.get(e);i&&(i.attributes.groupFolderId?i.set("groupFolderStatus","Archive"):i.set("inArchive",!0));"sent"!==this.rootData.selectedFolderId&&"all"!==this.rootData.selectedFolderId&&"archive"!==this.rootData.selectedFolderId&&(t?this.toRemoveIdList.push(e):this.removeRecordFromList(e))});this.toRemoveIdList=[]}removeQueuedRecord(){this.toRemoveIdList.forEach(e=>this.removeRecordFromList(e))}massActionMarkAsRead(){var e,t=[];for(e in this.checkedList)t.push(this.checkedList[e]);Espo.Ajax.postRequest("Email/inbox/read",{ids:t});t.forEach(e=>{var t=this.collection.get(e);t&&t.set("isRead",!0)})}massActionMarkAsNotRead(){var e,t=[];for(e in this.checkedList)t.push(this.checkedList[e]);Espo.Ajax.deleteRequest("Email/inbox/read",{ids:t});t.forEach(e=>{var t=this.collection.get(e);t&&t.set("isRead",!1)})}massActionMarkAsImportant(){var e,t=[];for(e in this.checkedList)t.push(this.checkedList[e]);Espo.Ajax.postRequest("Email/inbox/important",{ids:t});t.forEach(e=>{var t=this.collection.get(e);t&&t.set("isImportant",!0)})}massActionMarkAsNotImportant(){var e,t=[];for(e in this.checkedList)t.push(this.checkedList[e]);Espo.Ajax.deleteRequest("Email/inbox/important",{ids:t});t.forEach(e=>{var t=this.collection.get(e);t&&t.set("isImportant",!1)})}massActionMoveToTrash(){var e,t=[];for(e in this.checkedList)t.push(this.checkedList[e]);Espo.Ajax.postRequest("Email/inbox/inTrash",{ids:t}).then(()=>{Espo.Ui.warning(this.translate("Moved to Trash","labels","Email"))});"trash"!==this.rootData.selectedFolderId&&t.forEach(e=>{this.collection.trigger("moving-to-trash",e);this.uncheckRecord(e,null,!0)})}massActionRetrieveFromTrash(){var e,t=[];for(e in this.checkedList)t.push(this.checkedList[e]);Espo.Ajax.deleteRequest("Email/inbox/inTrash",{ids:t}).then(()=>{Espo.Ui.success(this.translate("Done"))});"trash"===this.rootData.selectedFolderId&&t.forEach(e=>{this.collection.trigger("retrieving-from-trash",e);this.uncheckRecord(e,null,!0)})}async massMoveToFolder(e){var t=this.getMassActionSelectionPostData(),i=new a.default(this),s=!!t.searchParams&&i.checkIsIdle(),t=(Espo.Ui.notify(this.translate("pleaseWait","messages")),await Espo.Ajax.postRequest("MassAction",{entityType:this.entityType,action:"moveToFolder",params:t,idle:s,data:{folderId:e}}));Espo.Ui.notify();if(t.id){s=await i.process(t.id,"moveToFolder");this.listenToOnce(s,"close:success",async()=>{await this.collection.fetch();Espo.Ui.success(this.translate("Done"))})}else if(0===t.count)Espo.Ui.warning(this.translate("No Records Moved","labels","Email"));else if("archive"===e){[...this.checkedList].forEach(e=>{this.collection.trigger("moving-to-archive",e);this.uncheckRecord(e,null,!0)});Espo.Ui.info(this.translate("Moved to Archive","labels","Email"))}else{await this.collection.fetch();Espo.Ui.success(this.translate("Done"))}}getSelectedFolderId(){return this.rootData.selectedFolderId}massActionMoveToFolder(){var e=this.getSelectedFolderId();this.createView("dialog","views/email-folder/modals/select-folder",{headerText:this.translate("Move to Folder","labels","Email"),isGroup:e&&(e.startsWith("group:")||"all"===e),noArchive:"all"===e,currentFolderId:this.rootData.selectedFolderId},e=>{e.render();this.listenToOnce(e,"select",async e=>{this.clearView("dialog");this.allResultIsChecked&&await this.confirm(this.translate("confirmation","messages"));await this.massMoveToFolder(e)})})}massActionMoveToArchive(){this.massMoveToFolder("archive")}actionMarkAsImportant(e){e=e||{};var t=e.id,t=(Espo.Ajax.postRequest("Email/inbox/important",{id:t}),this.collection.get(t));t&&t.set("isImportant",!0)}actionMarkAsNotImportant(e){e=e||{};var t=e.id,t=(Espo.Ajax.deleteRequest("Email/inbox/important",{id:t}),this.collection.get(t));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")}actionMoveToArchive(e){let t=e.id;Espo.Ui.notifyWait();Espo.Ajax.postRequest("Email/inbox/folders/archive",{id:t}).then(()=>{Espo.Ui.info(this.translate("Moved to Archive","labels","Email"));this.collection.trigger("moving-to-archive",t)})}actionMoveToTrash(e){let t=e.id;Espo.Ui.notifyWait();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)})}actionRetrieveFromTrash(e){let t=e.id;Espo.Ui.notifyWait();this.retrieveFromTrash(t).then(()=>{Espo.Ui.warning(this.translate("Retrieved from Trash","labels","Email"));this.collection.trigger("retrieving-from-trash",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)});return 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.notifyWait();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,i=e.folderId;if(i){Espo.Ui.notifyWait();this.moveToFolder(t,i).then(()=>{if("archive"===i){this.collection.trigger("moving-to-archive",t);Espo.Ui.info(this.translate("Moved to Archive","labels","Email"))}else this.collection.fetch().then(()=>Espo.Ui.success(this.translate("Done")))})}else{var s=this.collection.get(t);if(s){var a=this.rootData.selectedFolderId;this.createView("dialog","views/email-folder/modals/select-folder",{headerText:this.translate("Move to Folder","labels","Email"),isGroup:!!s.attributes.groupFolderId||!s.attributes.isUsers,noArchive:!s.attributes.groupFolderId&&!s.attributes.isUsers,currentFolderId:a},e=>{e.render();this.listenToOnce(e,"select",e=>{this.clearView("dialog");Espo.Ui.notifyWait();this.moveToFolder(t,e).then(()=>{this.collection.fetch().then(()=>{Espo.Ui.success(this.translate("Done"))})})})})}}}actionMarkAsRead(e){var t=e.id,i=this.collection.get(t);Espo.Ajax.postRequest("Email/inbox/read",{ids:[t]});i&&i.set("isRead",!0)}actionSend(e){let t=e.id;this.confirm({message:this.translate("sendConfirm","messages","Email"),confirmText:this.translate("Send","labels","Email")}).then(()=>{var e=this.collection.get(t);if(e){Espo.Ui.notify(this.translate("Sending...","labels","Email"));e.save({status:"Sending"}).then(()=>{Espo.Ui.success(this.translate("emailSent","messages","Email"));if("drafts"===this.rootData.selectedFolderId){this.removeRecordFromList(t);this.uncheckRecord(t,null,!0);this.collection.trigger("draft-sent")}})}})}toggleMassMarkAsImportant(){var e=!this.checkedList.map(e=>this.collection.get(e)).find(e=>!e.get("isImportant"));e?this.massActionMarkAsNotImportant():this.massActionMarkAsImportant()}controlEmailMassActionsVisibility(){var e="trash"!==this.rootData.selectedFolderId&&"archive"!==this.rootData.selectedFolderId&&"all"!==this.rootData.selectedFolderId,t="trash"!==this.rootData.selectedFolderId&&"all"!==this.rootData.selectedFolderId,i="important"!==this.rootData.selectedFolderId&&"all"!==this.rootData.selectedFolderId,s="all"!==this.rootData.selectedFolderId;e?this.showMassAction("moveToArchive"):this.hideMassAction("moveToArchive");t?this.showMassAction("moveToTrash"):this.hideMassAction("moveToTrash");i?this.showMassAction("markAsImportant"):this.hideMassAction("markAsImportant");s?this.showMassAction("markAsNotRead"):this.hideMassAction("markAsNotRead");"trash"===this.rootData.selectedFolderId?this.showMassAction("retrieveFromTrash"):this.hideMassAction("retrieveFromTrash")}}e.default=s});define("views/email/record/edit",["exports","views/record/edit","views/email/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{init(){super.init();i.default.prototype.layoutNameConfigure.call(this)}setup(){super.setup();["Archived","Sent"].includes(this.model.get("status"))&&(this.shortcutKeyCtrlEnterAction="save");this.addDropdownItem({name:"send",label:"Send",onClick:()=>this.actionSend()});this.controlSendButton();if("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(){var e=this.model.get("status");"Draft"===e?this.showActionItem("send"):this.hideActionItem("send")}actionSaveDraft(){this.actionSaveAndContinueEditing()}actionSend(){i.default.prototype.send.call(this).then(()=>this.exit()).catch(()=>{})}handleShortcutKeyCtrlS(e){if(!this.inlineEditModeIsOn&&!this.buttonsDisabled){e.preventDefault();e.stopPropagation();this.mode===this.MODE_EDIT&&this.saveAndContinueEditingAction&&this.hasAvailableActionItem("saveAndContinueEditing")&&this.actionSaveAndContinueEditing()}}}e.default=a});define("views/email/modals/schedule-send",["exports","views/modal","model","views/record/edit-for-modal","views/fields/datetime","moment"],function(e,t,i,s,a,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=o(t);i=o(i);s=o(s);a=o(a);r=o(r);function o(e){return e&&e.__esModule?e:{default:e}}class n extends t.default{templateContent='<div class="record no-side-margin">{{{record}}}</div>';formModel;recordView;constructor(e){super(e);this.onSave=e.onSave}setup(){this.headerText=this.translate("Schedule Send","labels","Email");this.buttonList.push({name:"schedule",label:"Schedule",style:"danger",onClick:()=>this.actionSchedule()});this.buttonList.push({name:"cancel",label:"Cancel",onClick:()=>this.close()});this.formModel=new i.default({now:this.getDateTime().getNow(),sendAt:this.getSendAt()});this.recordView=new s.default({model:this.formModel,detailLayout:[{rows:[[{view:new a.default({name:"sendAt",labelText:this.translate("sendAt","fields","Email"),params:{required:!0,after:"now"},otherFieldLabelText:this.translate("Now")})},!1]]}]});this.assignView("record",this.recordView,".record")}getSendAt(){var e=r.default.utc(this.getDateTime().getNow(10));e.isBefore((0,r.default)().add(1,"minutes"))&&e.add(10,"minutes");return e.format(this.getDateTime().internalDateTimeFormat)}async actionSchedule(){if(!this.recordView.validate()){this.disableButton("schedule");Espo.Ui.notifyWait();this.model.set({status:"Draft",sendAt:this.formModel.attributes.sendAt});try{await this.model.save()}catch(e){this.enableButton("schedule");return}var e=this.model.attributes.subject,t="#Email/view/"+this.model.id,e=this.translate("Scheduled")+"\n"+`[${e}](${t})`;Espo.Ui.notify(e,"success",4e3);this.onSave()}}}e.default=n});define("views/email/modals/import-eml",["exports","views/modal","views/record/edit-for-modal","model","views/fields/file"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);i=r(i);s=r(s);a=r(a);function r(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{templateContent=`
|
||
<div class="record no-side-margin">{{{record}}}</div>
|
||
`;setup(){this.headerText=this.translate("Import EML","labels","Email");this.addButton({name:"import",label:"Proceed",style:"danger",onClick:()=>this.actionImport()});this.addButton({name:"cancel",label:"Cancel",onClick:()=>this.close()});this.model=new s.default({},{entityType:"ImportEml"});this.recordView=new i.default({model:this.model,detailLayout:[{rows:[[{view:new a.default({name:"file",params:{required:!0,accept:[".eml"]},labelText:this.translate("file","otherFields","Email")})}]]}]});this.assignView("record",this.recordView,".record")}actionImport(){if(!this.recordView.validate()){this.disableButton("import");Espo.Ui.notifyWait();Espo.Ajax.postRequest("Email/importEml",{fileId:this.model.attributes.fileId}).then(e=>{Espo.Ui.notify(!1);this.getRouter().navigate("Email/view/"+e.id,{trigger:!0})}).catch(()=>this.enableButton("import"))}}}e.default=o});define("views/email/fields/person-string-data",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="email/fields/person-string-data/list";getAttributeList(){return["personStringData","isReplied"]}data(){var e=super.data();e.isReplied=this.model.get("isReplied");return e}}e.default=s});define("views/email/fields/from-address-varchar",["exports","views/fields/base","views/email/fields/email-address","helpers/record-modal","email-helper"],function(e,t,i,a,n){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);a=s(a);n=s(n);function s(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{listTemplateContent=`
|
||
{{#if value}}{{{value}}}{{/if}}
|
||
`;detailTemplate="email/fields/email-address-varchar/detail";validations=["required","email"];skipCurrentInAutocomplete=!0;emailAddressRegExp=new RegExp(/^[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+(?:\.[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+)*/.source+/@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]/.source);setup(){super.setup();this.erasedPlaceholder="ERASED:";this.on("render",()=>{this.mode!==this.MODE_SEARCH&&this.initAddressList()})}events={'click [data-action="createContact"]':function(e){var t=$(e.currentTarget).data("address");this.createPerson("Contact",t)},'click [data-action="createLead"]':function(e){var t=$(e.currentTarget).data("address");this.createPerson("Lead",t)},'click [data-action="addToContact"]':function(e){var t=$(e.currentTarget).data("address");this.addToPerson("Contact",t)},'click [data-action="addToLead"]':function(e){var t=$(e.currentTarget).data("address");this.addToPerson("Lead",t)},"auxclick a[href][data-scope][data-id]":function(e){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){var t=$(e.currentTarget),i=t.attr("data-id"),t=t.attr("data-scope");e.preventDefault();e.stopPropagation();this.quickView({id:i,scope:t})}}};data(){var e=super.data(),t=this.model.get(this.name);!t||t in this.idHash||!this.model.get("parentId")||this.getAcl().check("Contact","edit")&&(e.showCreate=!0);e.valueIsSet=this.model.has(this.name);return e}afterRender(){super.afterRender();this.mode===this.MODE_SEARCH&&this.getAcl().check("Email","create")&&i.default.prototype.initSearchAutocomplete.call(this);this.mode===this.MODE_EDIT&&this.getAcl().check("Email","create")&&i.default.prototype.initSearchAutocomplete.call(this);this.mode===this.MODE_SEARCH&&this.$input.on("input",()=>{this.trigger("change")})}getAutocompleteMaxCount(){return i.default.prototype.getAutocompleteMaxCount.call(this)}initAddressList(){this.nameHash={};this.typeHash=this.model.get("typeHash")||{};this.idHash=this.model.get("idHash")||{};_.extend(this.nameHash,this.model.get("nameHash")||{})}getAttributeList(){var e=super.getAttributeList();e.push("nameHash");e.push("idHash");e.push("accountId");return e}getValueForDisplay(){var e;return this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST?(e=this.model.get(this.name),this.getDetailAddressHtml(e)):super.getValueForDisplay()}getDetailAddressHtml(t){if(!t)return"";var i=this.model.get("fromString")||this.model.get("fromName"),i=this.nameHash[t]||this.parseNameFromStringAddress(i)||null,s=this.typeHash[t]||null,a=this.idHash[t]||null;if(a){let e="";if("User"===s){var r=this.mode===this.MODE_DETAIL?18:16;e=this.getHelper().getAvatarHtml(a,"small",r,"avatar-link")}var r=this.mode===this.MODE_LIST?i:null,o=this.mode===this.MODE_LIST?"text-default":null,s=$('<div class="email-address-detail-item">').append(e,$("<a>").attr("href",`#${s}/view/`+a).attr("data-scope",s).attr("data-id",a).attr("title",r).addClass(o).text(i));this.mode===this.MODE_DETAIL&&s.append(" ",$("<span>").addClass("text-muted middle-dot")," ",$("<span>").text(t));return s.get(0).outerHTML}a=$("<div>");a.addClass("email-address-lines-container");this.mode!==this.MODE_LIST&&(this.getAcl().check("Contact","create")||this.getAcl().check("Lead","create"))&&a.append(this.getCreateHtml(t));if(i){r=$("<span>").addClass("email-address-line").text(i);this.mode===this.MODE_DETAIL&&r.append(" ",$("<span>").addClass("text-muted middle-dot")," ",$("<span>").text(t));a.append(r)}else a.append($("<span>").addClass("email-address-line").text(t));return a.get(0).outerHTML}getCreateHtml(e){var t=$("<ul>").addClass("dropdown-menu").attr("role","menu"),i=$("<span>").addClass("dropdown email-address-create-dropdown pull-right").append($("<button>").addClass("dropdown-toggle btn btn-link btn-sm").attr("data-toggle","dropdown").append($("<span>").addClass("caret text-muted")),t);this.getAcl().check("Contact","create")&&t.append($("<li>").append($("<a>").attr("role","button").attr("tabindex","0").attr("data-action","createContact").attr("data-address",e).text(this.translate("Create Contact","labels","Email"))));this.getAcl().check("Lead","create")&&t.append($("<li>").append($("<a>").attr("role","button").attr("tabindex","0").attr("data-action","createLead").attr("data-address",e).text(this.translate("Create Lead","labels","Email"))));this.getAcl().check("Contact","edit")&&t.append($("<li>").append($("<a>").attr("role","button").attr("tabindex","0").attr("data-action","addToContact").attr("data-address",e).text(this.translate("Add to Contact","labels","Email"))));this.getAcl().check("Lead","edit")&&t.append($("<li>").append($("<a>").attr("role","button").attr("tabindex","0").attr("data-action","addToLead").attr("data-address",e).text(this.translate("Add to Lead","labels","Email"))));if("from"===this.name&&this.getAcl().check("EmailFilter","create")){t.children().length&&t.append('<li class="divider"></li>');var s="#EmailFilter/create?from="+encodeURI(e)+"&returnUrl="+encodeURI(this.getRouter().getCurrentUrl());t.append($("<li>").append($("<a>").attr("tabindex","0").attr("href",s).text(this.translate("Create EmailFilter","labels","EmailFilter"))))}return i.get(0).outerHTML}parseNameFromStringAddress(e){e=e||"";var t=new n.default;return t.parseNameFromStringAddress(e)}createPerson(r,o){var e=this.model.get("fromString")||this.model.get("fromName");let t=this.nameHash[o]||null;if(!t&&"from"===this.name&&e){var i=new n.default;t=i.parseNameFromStringAddress(e)}t=t&&this.getHelper().escapeString(t);i={emailAddress:o};if(this.model.get("accountId")&&"Contact"===r){i.accountId=this.model.get("accountId");i.accountName=this.model.get("accountName")}if(t){var e=t.split(" ").slice(0,-1).join(" "),s=t.split(" ").slice(-1).join(" ");i.firstName=e;i.lastName=s}e=new a.default;e.showCreate(this,{entityType:r,attributes:i,afterSave:e=>{var t=Espo.Utils.clone(this.model.get("nameHash")||{}),i=Espo.Utils.clone(this.model.get("typeHash")||{}),s=Espo.Utils.clone(this.model.get("idHash")||{});s[o]=e.id;t[o]=e.attributes.name;i[o]=r;this.idHash=s;this.nameHash=t;this.typeHash=i;let a={nameHash:t,idHash:s,typeHash:i};setTimeout(()=>{this.model.set(a);this.model.attributes.icsContents&&this.model.fetch()},50)}})}async addToPerson(r,o){var e=this.model.get("fromString")||this.model.get("fromName");let t=this.nameHash[o]||null;if(!t&&"from"===this.name&&e){var i=new n.default;t=i.parseNameFromStringAddress(e)}t=t&&this.getHelper().escapeString(t);if(this.model.get("accountId")&&"Contact"===r){this.model.get("accountId");this.model.get("accountName")}i={};t&&(i.name={type:"equals",field:"name",value:t});let s=e=>{var t=Espo.Utils.clone(this.model.get("nameHash")||{}),i=Espo.Utils.clone(this.model.get("typeHash")||{}),s=Espo.Utils.clone(this.model.get("idHash")||{});s[o]=e.id;t[o]=e.attributes.name;i[o]=r;this.idHash=s;this.nameHash=t;this.typeHash=i;let a={nameHash:t,idHash:s,typeHash:i};setTimeout(()=>{this.model.set(a);this.model.attributes.icsContents&&this.model.fetch()},50)};e=this.getMetadata().get(`clientDefs.${r}.modalViews.select`)||"views/modals/select-records",i={entityType:r,createButton:!1,filters:i,onSelect:async e=>{var t=e[0];if(t.attributes.emailAddress){await t.fetch();var i=[...t.attributes.emailAddressData||[]];i.push({emailAddress:o,primary:0===i.length});await t.save({emailAddressData:i},{patch:!0})}else await t.save({emailAddress:o},{patch:!0});s(t)}},e=(Espo.Ui.notifyWait(),await this.createView("modal",e,i));await e.render();Espo.Ui.notify()}fetchSearch(){var e=this.$element.val().trim();return e?{type:"equals",value:e}:null}validateEmail(){var e=this.model.get(this.name);if(e){var t=String(e).toLowerCase();if(!this.emailAddressRegExp.test(t)&&0!==e.indexOf(this.erasedPlaceholder)){t=this.translate("fieldShouldBeEmail","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t);return!0}}}quickView(e){var t=new a.default;t.showDetail(this,{id:e.id,entityType:e.scope})}}e.default=r});define("views/dashlets/options/base",["exports","views/modal","model","views/record/edit-for-modal"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="dashlets/options/base";cssName="options-modal";className="dialog dialog-record";name;escapeDisabled=!0;saveDisabled=!1;buttonList=[{name:"save",label:"Apply",style:"primary",title:"Ctrl+Enter"},{name:"cancel",label:"Cancel",title:"Esc"}];shortcutKeys={"Control+Enter":function(e){this.handleShortcutKeyCtrlEnter(e)},Escape:function(e){if(!this.saveDisabled){e.stopPropagation();e.preventDefault();var t=this.getRecordView().getFocusedFieldView();t&&this.model.set(t.fetch(),{skipReRender:!0});this.getRecordView().isChanged?this.confirm(this.translate("confirmLeaveOutMessage","messages")).then(()=>this.actionClose()):this.actionClose()}}};data(){return{options:this.optionsData}}getDetailLayout(){var i=this.getMetadata().get(["dashlets",this.name,"options","layout"]);if(!i){i=[{rows:[]}];let e=0,t=[];for(var s in this.fields){if(!(e%2)){t=[];i[0].rows.push(t)}t.push({name:s});e++}}return i}init(){super.init();this.fields=Espo.Utils.cloneDeep(this.options.fields);this.fieldList=Object.keys(this.fields);this.optionsData=this.options.optionsData;this.name=this.options.name}setup(){this.id="dashlet-options";var e=this.model=new i.default;e.name="DashletOptions";e.setDefs({fields:this.fields});e.set(this.optionsData);this.dataObject={dashletName:this.name,userId:this.options.userId};e.dashletName=this.name;e.userId=this.options.userId;this.middlePanelDefs={};this.middlePanelDefsList=[];this.setupBeforeFinal();this.recordView=new s.default({model:e,detailLayout:this.getDetailLayout(),dataObject:this.dataObject});this.assignView("record",this.recordView,".record");this.$header=$("<span>").append($("<span>").text(this.getLanguage().translate("Dashlet Options"))," · ",$("<span>").text(this.getLanguage().translate(this.name,"dashlets")))}setupBeforeFinal(){}onBackdropClick(){this.getRecordView().isChanged||this.close()}getRecordView(){return this.recordView}fetchAttributes(){var e=this.getRecordView().fetch();return this.getRecordView().validate()?null:e}actionSave(){var e=this.fetchAttributes();null!=e&&this.trigger("save",e)}getFieldViews(e){return this.hasView("record")?this.getRecordView().getFieldViews(e):{}}getFieldView(e){return(this.getFieldViews(!0)||{})[e]||null}hideField(e,t){this.getRecordView()?this.getRecordView().hideField(e,t):this.whenRendered().then(()=>this.hideField(e),t)}showField(e){this.getRecordView()?this.getRecordView().showField(e):this.whenRendered().then(()=>this.showField(e))}handleShortcutKeyCtrlEnter(e){e.preventDefault();e.stopPropagation();document.activeElement instanceof HTMLInputElement&&document.activeElement.dispatchEvent(new Event("change",{bubbles:!0}));this.actionSave()}}e.default=r});define("views/dashlets/fields/records/expanded-layout/modals/edit-item",["exports","views/modal","views/record/edit-for-modal","model","views/fields/bool"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=r(t);i=r(i);s=r(s);a=r(a);function r(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{templateContent=`
|
||
<div class="record-container no-side-margin">{{{record}}}</div>
|
||
`;recordView;formModel;constructor(e){super();this.options=e}setup(){this.headerText=this.translate("Edit")+" · "+this.options.label;this.formModel=new s.default;this.formModel.setMultiple({...this.options.data});this.recordView=new i.default({model:this.formModel,detailLayout:[{rows:[[{view:new a.default({name:"soft",labelText:this.translate("soft","otherFields","DashletOptions")})},{view:new a.default({name:"small",labelText:this.translate("small","otherFields","DashletOptions")})}]]}]});this.assignView("record",this.recordView);this.buttonList=[{name:"apply",style:"danger",label:"Apply",onClick:()=>this.actionApply()},{name:"cancel",label:"Cancel",onClick:()=>this.actionClose()}]}actionApply(){if(!this.recordView.validate()){this.options.onApply({soft:this.formModel.attributes.soft,small:this.formModel.attributes.small});this.close()}}}e.default=o});define("views/dashlets/abstract/record-list",["exports","views/dashlets/abstract/base","search-manager","helpers/record-modal"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{templateContent='<div class="list-container">{{{list}}}</div>';additionalRowActionList=void 0;scope;listView=null;listViewColumn="views/record/list";listViewExpanded="views/record/list-expanded";layoutType="expanded";optionsFields={title:{type:"varchar",required:!0},autorefreshInterval:{type:"enumFloat",options:[0,.5,1,2,5,10]},displayRecords:{type:"enumInt",options:[3,4,5,10,15]}};rowActionsView="views/record/row-actions/view-and-edit";hasCollaborators;init(){this.name=this.options.name||this.name;this.scope=this.getMetadata().get(`dashlets.${this.name}.entityType`)||this.scope;this.additionalRowActionList=this.getMetadata().get(`dashlets.${this.name}.rowActionList`)||this.additionalRowActionList;this.hasCollaborators=!!this.getMetadata().get(`scopes.${this.scope}.collaborators`);super.init()}checkAccess(){return this.getAcl().check(this.scope,"read")}getSearchData(){var e=Espo.Utils.cloneDeep(this.getOption("searchData"));if(this.hasCollaborators&&this.getOption("includeShared")){e.bool||(e.bool={});e.bool.shared=!0}return e}afterRender(){this.getCollectionFactory().create(this.scope,t=>{var e=this.getSearchData();this.searchManager=new i.default(t,{defaultData:e});if(this.scope)if(this.checkAccess()){this.collectionUrl&&(t.url=this.collectionUrl);this.collection=t;t.orderBy=this.getOption("orderBy")||this.getOption("sortBy")||this.collection.orderBy;this.getOption("orderBy")&&(t.order="asc");this.hasOption("asc")&&(t.order=!!this.getOption("asc")&&"asc");"asc"===this.getOption("sortDirection")?t.order="asc":"desc"===this.getOption("sortDirection")&&(t.order="desc");"asc"===this.getOption("order")?t.order="asc":"desc"===this.getOption("order")&&(t.order="desc");t.maxSize=this.getOption("displayRecords");t.where=this.searchManager.getWhere();e=this.listView||("expanded"===this.layoutType?this.listViewExpanded:this.listViewColumn);this.createView("list",e,{collection:t,selector:".list-container",pagination:!!this.getOption("pagination"),type:"listDashlet",rowActionsView:this.rowActionsView,checkboxes:!1,showMore:!0,listLayout:this.getOption(this.layoutType+"Layout"),skipBuildRows:!0,additionalRowActionList:this.additionalRowActionList},e=>{e.getSelectAttributeList(e=>{e&&(t.data.select=e.join(","));t.fetch()})})}else this.$el.find(".list-container").html(this.translate("No Access"));else this.$el.find(".list-container").html(this.translate("selectEntityType","messages","DashletOptions"))})}setupActionList(){this.scope&&this.getAcl().checkScope(this.scope,"create")&&this.actionList.unshift({name:"create",text:this.translate("Create "+this.scope,"labels",this.scope),iconHtml:'<span class="fas fa-plus"></span>',url:`#${this.scope}/create`})}actionRefresh(){this.refreshInternal()}autoRefresh(){this.refreshInternal({skipNotify:!0})}async refreshInternal(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(this.collection){e.skipNotify||Espo.Ui.notifyWait();this.collection.where=this.searchManager.getWhere();await this.collection.fetch({previousDataList:this.collection.models.map(e=>Espo.Utils.cloneDeep(e.attributes))});e.skipNotify||Espo.Ui.notify()}}actionCreate(){var e=this.getCreateAttributes()||{};if(this.getOption("populateAssignedUser"))if(this.getMetadata().get(["entityDefs",this.scope,"fields","assignedUsers"])){e.assignedUsersIds=[this.getUser().id];e.assignedUsersNames={};e.assignedUsersNames[this.getUser().id]=this.getUser().get("name")}else{e.assignedUserId=this.getUser().id;e.assignedUserName=this.getUser().get("name")}var t=new s.default;t.showCreate(this,{entityType:this.scope,attributes:e,afterSave:()=>this.actionRefresh()})}getCreateAttributes(){}getColor(){return this.scope?this.getMetadata().get(`clientDefs.${this.scope}.color`):null}}e.default=r});define("ui/timepicker",["exports","jquery"],function(e,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;s=(t=s,t&&t.__esModule?t:{default:t});var t;e.default=class{constructor(e,t){this.$element=(0,s.default)(e);var i=e.closest(".modal-body");this.$element.timepicker({step:t.step,timeFormat:t.timeFormat,appendTo:i?(0,s.default)(i):"body",scrollDefaultNow:t.scrollDefaultNow||!1})}setMinTime(e){this.$element.timepicker("option","minTime",e)}setMaxTime(e){this.$element.timepicker("option","maxTime",e)}addChangeEventListener(e){this.$element.on("change",e)}show(){this.$element.timepicker("show")}destroy(){this.$element[0]&&this.$element.timepicker("remove")}}});define("helpers/misc/field-language",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t){this.metadata=e;this.language=t}translateAttribute(e,t){let i=this.language.translate(t,"fields",e);if(t.indexOf("Id")===t.length-2){var s=t.slice(0,t.length-2);this.metadata.get(["entityDefs",e,"fields",s])&&(i=this.language.translate(s,"fields",e)+" ("+this.language.translate("id","fields")+")")}else if(t.indexOf("Name")===t.length-4){s=t.slice(0,t.length-4);this.metadata.get(["entityDefs",e,"fields",s])&&(i=this.language.translate(s,"fields",e)+" ("+this.language.translate("name","fields")+")")}else if(t.indexOf("Type")===t.length-4){s=t.slice(0,t.length-4);this.metadata.get(["entityDefs",e,"fields",s])&&(i=this.language.translate(s,"fields",e)+" ("+this.language.translate("type","fields")+")")}if(t.indexOf("Ids")===t.length-3){s=t.slice(0,t.length-3);this.metadata.get(["entityDefs",e,"fields",s])&&(i=this.language.translate(s,"fields",e)+" ("+this.language.translate("ids","fields")+")")}else if(t.indexOf("Names")===t.length-5){s=t.slice(0,t.length-5);this.metadata.get(["entityDefs",e,"fields",s])&&(i=this.language.translate(s,"fields",e)+" ("+this.language.translate("names","fields")+")")}else if(t.indexOf("Types")===t.length-5){s=t.slice(0,t.length-5);this.metadata.get(["entityDefs",e,"fields",s])&&(i=this.language.translate(s,"fields",e)+" ("+this.language.translate("types","fields")+")")}return i}}});define("helpers/list/misc/list-tree-draggable",["exports","@shopify/draggable","di","language"],function(e,s,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=(a=i,a&&a.__esModule?a:{default:a});var a,r;let o,n;function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d{language=o(this);blockDraggable=(n(this),!1);draggable;constructor(e){this.view=e}destroy(){this.draggable&&this.draggable.destroy()}init(){this.draggable&&this.draggable.destroy();var e=this.draggable=new s.Draggable(this.view.element,{distance:8,draggable:'.list-group-item > .cell > [data-role="moveHandle"]',mirror:{cursorOffsetX:5,cursorOffsetY:5,appendTo:"body"}});let t,r,i=null,o=null,n=null;e.on("mirror:created",e=>{var t=e.mirror,i=e.source,s=e.originalSource;s.style.display="";i.style.display="none";t.style.display="block";t.style.cursor="grabbing";t.classList.add("draggable-helper","draggable-helper-transparent","text-info");t.classList.remove("link");t.style.pointerEvents="auto";t.removeAttribute("href");t.style.textDecoration="none";t.innerText=t.dataset.title});e.on("mirror:move",e=>{e.mirror.style.pointerEvents="auto"});e.on("drag:start",e=>{if(this.blockDraggable)e.cancel();else{t=Array.from(this.view.element.querySelectorAll(".list-group-tree > .list-group-item"));r=new Map;t.forEach(e=>{let t=0,i=e;for(;i&&i!==this.view.element;){i=i.parentElement;t++}r.set(e,t)});t.sort((e,t)=>r.get(t)-r.get(e));this.view.movedId=e.source.dataset.id;i=e.originalSource;n=i.parentElement.parentElement;o=i.parentElement.querySelector(":scope > a.link");o.classList.add("text-info")}});let l=null,d=null,h=!1;e.on("drag:move",i=>{h=!1;l=null;let s=null;for(var a of t){var r=a.getBoundingClientRect(),o=r.left<i.sensorEvent.clientX&&r.right>i.sensorEvent.clientX&&r.top<i.sensorEvent.clientY&&r.bottom>=i.sensorEvent.clientY;if(o){let e=a.dataset.id??null,t=null;if(!e){o=a.closest(".list-group-item[data-id]");o instanceof HTMLElement&&(t=o.dataset.id)}o=i.sensorEvent.clientY-r.top>=r.bottom-i.sensorEvent.clientY;if(!t||!o){if(e===this.view.movedId)break;if(n.contains(a))break;if(e||t){if(t){r=a.closest(".list-group-item[data-id]");if(r){r=r.querySelectorAll(":scope > .children > .list > .list-group > [data-id]");if(r.length){e=Array.from(r).pop().dataset.id;t=null}}}h=o;d=t;l=e;s=a;break}}}}for(var e of t){e.classList.remove("border-top-highlighted");e.classList.remove("border-bottom-highlighted")}if(s)if(h){s.classList.add("border-bottom-highlighted");s.classList.remove("border-top-highlighted")}else{s.classList.add("border-top-highlighted");s.classList.remove("border-bottom-highlighted")}});e.on("drag:stop",async()=>{let e=()=>{o&&o.classList.remove("text-info");t.forEach(e=>{e.classList.remove("border-bottom-highlighted");e.classList.remove("border-top-highlighted")});t=void 0},s,a=l;if(d||l)if(d){s="into";a=d}else s=h?"after":"before";if(s){this.blockDraggable=!0;let t=this.view.movedId,i=a;Espo.Ui.notifyWait();Espo.Ajax.postRequest(this.view.entityType+"/action/move",{id:this.view.movedId,referenceId:a,type:s}).then(async()=>{var e=[];t&&e.push(this.updateAfter(this.view,t));i&&e.push(this.updateAfter(this.view,i));await Promise.all(e);Espo.Ui.success(this.language.translate("Done"))}).finally(()=>{this.blockDraggable=!1;e()})}s||e();this.view.movedId=null;i=null;n=null;r=void 0;d=null;l=null;h=!1})}async updateAfter(e,t){if(e.collection.has(t)){let t=e.getItemViews().filter(e=>e.isUnfolded&&e.model).map(e=>e.model.id);await e.collection.fetch({noRebuild:!1});e.getItemViews().filter(e=>e&&e.model&&t.includes(e.model.id)).forEach(e=>e.unfold())}else for(var i of e.getItemViews())i.getChildrenView()&&await this.updateAfter(i.getChildrenView(),t)}static#_=r=()=>[o,n]=l(this,[],[[(0,t.inject)(i.default),0,"language"]]).e}e.default=d;r()});define("handlers/select-related",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{viewHelper;constructor(e){this.viewHelper=e}getFilters(e){return Promise.resolve({})}}});define("handlers/row-action",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.view=e;this.collection=this.view.collection}isAvailable(e,t){return!0}process(e,t){}}});define("handlers/login",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t){this.loginView=e;this.data=t}process(){return Promise.resolve({})}}});define("handlers/create-related",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.viewHelper=e}getAttributes(e,t){return Promise.resolve({})}}});define("handlers/model/defaults-preparator",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.viewHelper=e}prepare(e){return Promise.resolve({})}}});define("handlers/map/renderer",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.view=e}render(e){}}});define("controllers/record",["exports","controller","helpers/model/defaults-populator"],function(e,t,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{defaultAction="list";constructor(e,t){super(e,t);this.collectionMap={}}checkAccess(e){return!!this.getAcl().check(this.name,e)}getViewName(e){return this.getMetadata().get(["clientDefs",this.name,"views",e])||"views/"+Espo.Utils.camelCaseToHyphen(e)}beforeList(){this.handleCheckAccess("read")}actionList(o){let n=o.isReturn||this.getRouter().backProcessed,l="list";o.primaryFilter&&(l+="Filter"+Espo.Utils.upperCaseFirst(o.primaryFilter));!n&&this.getStoredMainView(l)&&this.clearStoredMainView(l);this.getCollection().then(e=>{let t={},i=()=>{e.abortLastFetch();t.abort=!0;Espo.Ui.notify(!1)};this.listenToOnce(this.baseController,"action",i);this.listenToOnce(e,"sync",()=>this.stopListening(this.baseController,"action",i));var s={scope:this.name,collection:e,params:o,mediator:t},a=this.getViewName("list"),r={useStored:n,key:l};this.main(a,s,null,r)})}beforeView(){this.handleCheckAccess("read")}createViewView(e,t,i){i=i||this.getViewName("detail");this.main(i,{scope:this.name,model:t,returnUrl:e.returnUrl,returnDispatchParams:e.returnDispatchParams,params:e})}prepareModelView(e,t){}actionView(i){let t=i.id;var e=this.getRouter().backProcessed;if(e){if(this.lastViewActionOptions&&this.lastViewActionOptions.id===t){i=Espo.Utils.clone(this.lastViewActionOptions);i.model&&i.model.get("deleted")&&delete i.model}i.isReturn=!0}else delete this.lastViewActionOptions;this.lastViewActionOptions=i;let s=e=>{this.prepareModelView(e,i);this.createViewView.call(this,i,e)};if("model"in i){let t=i.model;s(t);this.showLoadingNotification();t.fetch().then(()=>this.hideLoadingNotification()).catch(e=>{if(403===e.status&&i.isAfterCreate){this.hideLoadingNotification();e.errorIsHandled=!0;t.trigger("fetch-forbidden")}});this.listenToOnce(this.baseController,"action",()=>{t.abortLastFetch();this.hideLoadingNotification()})}else this.getModel().then(e=>{e.id=t;this.showLoadingNotification();e.fetch({main:!0}).then(()=>{this.hideLoadingNotification();if(e.get("deleted")){this.listenToOnce(e,"after:restore-deleted",()=>{s(e)});this.prepareModelView(e,i);this.createViewView(i,e,"views/deleted-detail")}else s(e)});this.listenToOnce(this.baseController,"action",()=>{e.abortLastFetch()})})}beforeCreate(){this.handleCheckAccess("create")}prepareModelCreate(e,t){this.listenToOnce(e,"before:save",()=>{var e=this.getStoredMainView("list");!e||"storeViewAfterCreate"in e&&e.storeViewAfterCreate||this.clearStoredMainView("list")});this.listenToOnce(e,"after:save",()=>{let e=this.getStoredMainView("list");e&&"storeViewAfterCreate"in e&&e.storeViewAfterCreate&&"collection"in e&&e.collection&&this.listenToOnce(e,"after:render",()=>e.collection.fetch())})}async create(){var e,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=t.options||{},s=await this.getModel(),a=(t.relate&&s.setRelate(t.relate),{scope:this.name,model:s,returnUrl:t.returnUrl,returnDispatchParams:t.returnDispatchParams,params:t});for(e in i)a[e]=i[e];await(new r.default).populate(s);t.attributes&&s.set(t.attributes);this.prepareModelCreate(s,t);this.main(this.getViewName("edit"),a)}actionCreate(e){this.create(e)}beforeEdit(){this.handleCheckAccess("edit")}prepareModelEdit(e,t){this.listenToOnce(e,"before:save",()=>{var e=this.getStoredMainView("list");!e||"storeViewAfterUpdate"in e&&e.storeViewAfterUpdate||this.clearStoredMainView("list")})}actionEdit(s){let e=s.id,a=s.options||{};this.getModel().then(i=>{i.id=e;s.model&&(i=s.model);this.prepareModelEdit(i,s);this.showLoadingNotification();i.fetch({main:!0}).then(()=>{this.hideLoadingNotification();var e,t={scope:this.name,model:i,returnUrl:s.returnUrl,returnDispatchParams:s.returnDispatchParams,params:s};for(e in a)t[e]=a[e];s.attributes&&(t.attributes=s.attributes);s.highlightFieldList&&(t.highlightFieldList=s.highlightFieldList);this.main(this.getViewName("edit"),t)});this.listenToOnce(this.baseController,"action",()=>{i.abortLastFetch()})})}beforeMerge(){this.handleCheckAccess("edit")}actionMerge(e){let o=e.ids.split(",");this.getModel().then(i=>{let s=[],a=()=>{this.main("views/merge",{models:s,scope:this.name,collection:e.collection})},r=0;o.forEach(e=>{var t=i.clone();t.id=e;s.push(t);this.listenToOnce(t,"sync",()=>{r++;r===o.length&&a()});t.fetch()})})}actionRelated(e){let t=e.id,i=e.link,s=this.getViewName("listRelated"),a;this.getModel().then(e=>{a=e;a.id=t;return a.fetch({main:!0})}).then(()=>{var e=a.getLinkParam(i,"entity");if(e)return this.collectionFactory.create(e);throw this.baseController.error404(),new Error(`Bad link '${i}'.`)}).then(e=>{e.url=a.entityType+"/"+t+"/"+i;this.main(s,{scope:this.name,model:a,collection:e,link:i})})}getCollection(e){if(!this.name)throw new Error("No collection for unnamed controller");let t=this.entityType||this.name;var i;return e&&t in this.collectionMap?(i=this.collectionMap[t],Promise.resolve(i)):this.collectionFactory.create(t,e=>{this.collectionMap[t]=e;this.listenTo(e,"sync",()=>e.isFetched=!0)})}getModel(t,i){i=i||this;var e;if(this.name)return e=this.entityType||this.name,this.modelFactory.create(e,e=>{t&&t.call(i,e)});throw new Error("No collection for unnamed controller")}}e.default=s});define("collections/tree",["exports","collection"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{parentId;currentId=null;path;openPath;createSeed(){var e=new this.constructor;e.url=this.url;e.model=this.model;e.name=this.name;e.entityType=this.entityType;e.defs=this.defs;return e}prepareAttributes(e,t){var i=super.prepareAttributes(e,t),s=this.clone();s.reset();this.path=e.path;this.openPath=e.openPath??null;this.categoryData=e.data||null;let a=(e,i)=>{e.forEach(e=>{e.depth=i;var t=this.createSeed();t.parentId=e.id;if(e.childList){if(e.childList.length){a(e.childList,i+1);t.set(e.childList)}e.childCollection=t}else e.childCollection=null===e.childList?null:t})};a(i,0);return i}fetch(e){e=e||{};e.data=e.data||{};this.parentId&&(e.data.parentId=this.parentId);this.currentId&&(e.data.currentId=this.currentId);return super.fetch(e)}clone(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e={...e};e.withModels=!1;return super.clone(e)}}e.default=s});define("views/settings/fields/theme",["exports","views/fields/enum","theme-manager","ui/select"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{editTemplateContent=`
|
||
<div class="grid-auto-fit-xxs">
|
||
<div>
|
||
<select data-name="{{name}}" class="form-control main-element">
|
||
{{options
|
||
params.options value
|
||
scope=scope
|
||
field=name
|
||
translatedOptions=translatedOptions
|
||
includeMissingOption=true
|
||
styleMap=params.style
|
||
}}
|
||
</select>
|
||
</div>
|
||
{{#if navbarOptionList.length}}
|
||
<div>
|
||
<select data-name="themeNavbar" class="form-control">
|
||
{{options navbarOptionList navbar translatedOptions=navbarTranslatedOptions}}
|
||
</select>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
`;data(){let t=super.data();t.navbarOptionList=this.getNavbarOptionList();t.navbar=this.getNavbarValue()||this.getDefaultNavbar();t.navbarTranslatedOptions={};t.navbarOptionList.forEach(e=>{t.navbarTranslatedOptions[e]=this.translate(e,"themeNavbars")});return t}setup(){super.setup();this.initThemeManager();this.model.on("change:theme",(e,t,i)=>{this.initThemeManager();i.ui&&this.reRender().then(()=>s.default.focus(this.$element,{noTrigger:!0}))})}afterRenderEdit(){this.$navbar=this.$el.find('[data-name="themeNavbar"]');this.$navbar.on("change",()=>this.trigger("change"));s.default.init(this.$navbar)}getNavbarValue(){var e=this.model.get("themeParams")||{};return e.navbar}getNavbarDefs(){var e;return this.themeManager&&(e=this.themeManager.getParam("params"),e)&&e.navbar?Espo.Utils.cloneDeep(e.navbar):null}getNavbarOptionList(){var e=this.getNavbarDefs();return e&&(e=e.options||[],e.length)&&1!==e.length?e:[]}getDefaultNavbar(){var e=this.getNavbarDefs()||{};return e.default||null}initThemeManager(){var e=this.model.get("theme");this.themeManager=e?new i.default(this.getConfig(),this.getPreferences(),this.getMetadata(),e):null}getAttributeList(){return[this.name,"themeParams"]}setupOptions(){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(){var e=super.fetch(),t={};this.$navbar.length&&(t.navbar=this.$navbar.val());e.themeParams=t;return e}}e.default=r});define("views/settings/fields/tab-list",["exports","views/fields/array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.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.addActionHandler("editGroup",(e,t)=>{this.editGroup(t.dataset.value)})}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")));if(!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){if(e&&"object"==typeof e){e.id||(e.id=this.generateItemId());var t=this.getItemHtml(e);this.$list.append(t);this.selected.push(e);this.trigger("change")}else super.addValue(e)}removeValue(e){var t=this.getGroupIndexById(e);if(~t){this.$list.children(`[data-value="${e}"]`).remove();this.selected.splice(t,1);this.trigger("change")}else super.removeValue(e)}getItemHtml(e){return e&&"object"==typeof e?this.getGroupItemHtml(e):super.getItemHtml(e)}getGroupItemHtml(t){var e=document.createElement("span");e.textContent=t.text??"";let i;if("group"===t.type){i=document.createElement("span");i.className="far fa-list-alt text-muted"}if("url"===t.type){i=document.createElement("span");i.className="fas fa-link fa-sm text-muted"}"divider"===t.type&&e.classList.add("text-soft","text-italic");var s=document.createElement("span");s.append(e);s.className="text";if(i){i.style.marginRight="var(--4px)";s.prepend(i)}e=document.createElement("div");e.className="list-group-item";e.dataset.value=t.id;e.style.cursor="default";e.append((()=>{var e=document.createElement("span");e.className="drag-handle";e.append((()=>{var e=document.createElement("span");e.className="fas fa-grip fa-sm";return e})());return e})(),(()=>{var e=document.createElement("span");e.className="item-button";e.append((()=>{var e=document.createElement("a");e.role="button";e.tabIndex=0;e.dataset.value=t.id;e.dataset.action="editGroup";e.append((()=>{var e=document.createElement("span");e.className="fas fa-pencil-alt fa-sm";return e})());return e})());return e})(),s,(()=>{var e=document.createElement("a");e.role="button";e.tabIndex=0;e.classList.add("pull-right");e.dataset.value=t.id;e.dataset.action="removeValue";e.append((()=>{var e=document.createElement("span");e.className="fas fa-times";return e})());return e})());return e.outerHTML}fetchFromDom(){let a=[];this.$el.find(".list-group .list-group-item").each((e,t)=>{var i=$(t).data("value").toString(),s=this.getGroupValueById(i);s?a.push(s):a.push(i)});this.selected=a}getGroupIndexById(t){for(let e=0;e<this.selected.length;e++){var i=this.selected[e];if(i&&"object"==typeof i&&i.id===t)return e}return-1}getGroupValueById(e){for(var t of this.selected)if(t&&"object"==typeof t&&t.id===e)return t;return null}editGroup(e){var t=Espo.Utils.cloneDeep(this.getGroupValueById(e)||{});let s=this.getGroupIndexById(e),a=Espo.Utils.cloneDeep(this.selected);var i={divider:"views/settings/modals/edit-tab-divider",url:"views/settings/modals/edit-tab-url"}[t.type]||"views/settings/modals/edit-tab-group";this.createView("dialog",i,{itemData:t,parentType:this.model.entityType},i=>{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(){let t=this.translatedOptions||{};var e=this.selected.map(e=>"string"!=typeof e?" - "+(e.text||"?"):t[e]||e);return e.map(e=>$("<div>").addClass("multi-enum-item-container").text(e).get(0).outerHTML).join("")}}e.default=s});define("multi-collection",["exports","collection"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{seeds=null;prepareAttributes(e,t){this.total=e.total;var i;if("list"in e)return i=e.list,i.map(e=>{var t=e._scope;if(!t)throw new Error("No '_scope' attribute.");e=_.clone(e);delete e._scope;t=this.seeds[t].clone();t.set(e);return t});throw new Error("No 'list' in response.")}clone(e){var t=super.clone(e);t.seeds=this.seeds;return t}}e.default=s});define("app-portal",["exports","app","acl-portal-manager"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{aclName="aclPortal";masterView="views/site-portal/master";createAclManager(){return new i.default(this.user,null,this.settings.get("aclAllowDeleteCreated"))}}e.default=a});define("views/stream",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream";filterList=["all","posts","updates"];filter=!1;events={'click button[data-action="refresh"]':function(){this.actionRefresh()},'click button[data-action="selectFilter"]':function(e){var t=$(e.currentTarget).data();this.actionSelectFilter(t)}};data(){let e=this.filter;!1===e&&(e="all");var t=this.getAcl().checkScope("GlobalStream");return{displayTitle:this.options.displayTitle,filterList:this.filterList,filter:e,hasMenu:t,hasGlobalStreamAccess:t}}setup(){this.filter=this.options.filter||this.filter;this.addActionHandler("createPost",()=>this.actionCreatePost());this.addHandler("keydown.stream","",e=>this.onKeyDown(e));this.addActionHandler("fullRefresh",()=>this.actionFullRefresh())}afterRender(){Espo.Ui.notifyWait();this.getCollectionFactory().create("Note",e=>{this.collection=e;e.url="Stream";this.setFilter(this.filter);e.fetch().then(()=>{this.createView("list","views/stream/record/list",{selector:".list-container",collection:e,isUserStream:!0},e=>{e.notify(!1);e.render().then(e=>{e.$el.find("> .list > .list-group")})})})});this.element.querySelector(".button-container").focus({preventScroll:!0})}getRecordView(){return this.getView("list")}async actionSelectFilter(e){var t=e.name;let i=t,s=t;"all"===i&&(s=!1);this.filter=s;this.setFilter(this.filter);this.filterList.forEach(e=>{var t=this.$el.find('.button-container button[data-action="selectFilter"][data-name="'+e+'"]');e===i?t.addClass("active"):t.removeClass("active")});let a="#Stream";this.filter&&(a+="/"+i);this.getRouter().navigate(a);Espo.Ui.notifyWait();this.getRecordView().element.innerHTML="";this.collection.abortLastFetch();this.collection.reset();try{await this.collection.fetch()}catch(e){return}Espo.Ui.notify(!1)}setFilter(e){this.collection.data.filter=null;e&&(this.collection.data.filter=e);this.collection.offset=0;this.collection.maxSize=this.getConfig().get("recordsPerPage")||this.collection.maxSize}actionCreatePost(){this.createView("dialog","views/stream/modals/create-post",{},e=>{e.render();this.listenToOnce(e,"after:save",()=>{e.close();this.getRecordView().showNewRecords()})})}actionRefresh(){if(this.getRecordView()){let e=this.element.querySelector('button[data-action="refresh"] .icon');if(e){e.classList.add("animation-spin-fast");setTimeout(()=>e.classList.remove("animation-spin-fast"),500)}Espo.Ui.notifyWait();this.getRecordView().showNewRecords().then(()=>Espo.Ui.notify(!1))}}onKeyDown(e){var t=Espo.Utils.getKeyFromKeyEvent(e);if("Control+Space"===t){e.stopPropagation();e.preventDefault();this.actionCreatePost()}}async actionFullRefresh(){Espo.Ui.notifyWait();await this.collection.fetch();Espo.Ui.notify()}}e.default=s});define("views/popup-notification",["exports","view","jquery"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="default";style="default";closeButton=!0;soundPath="client/sounds/pop_cork";init(){super.init();let t=this.options.id,i=this.containerSelector="#"+t;this.setSelector(i);this.notificationSoundsDisabled=this.getConfig().get("notificationSoundsDisabled");this.soundPath=this.getBasePath()+(this.getConfig().get("popupNotificationSound")||this.soundPath);this.on("render",()=>{this.element=void 0;(0,s.default)(i).remove();var e="popup-notification-"+Espo.Utils.toDom(this.type);(0,s.default)("<div>").attr("id",t).addClass("popup-notification").addClass(e).addClass("popup-notification-"+this.style).appendTo("#popup-notifications-container");this.setElement(i)});this.on("after:render",()=>{this.$el.find('[data-action="close"]').on("click",()=>{this.resolveCancel()})});this.once("after:render",()=>{this.onShow()});this.once("remove",function(){(0,s.default)(i).remove()});this.notificationData=this.options.notificationData;this.notificationId=this.options.notificationId;this.id=this.options.id}data(){return{closeButton:this.closeButton,notificationData:this.notificationData,notificationId:this.notificationId}}playSound(){if(!this.notificationSoundsDisabled){var e='<audio autoplay="autoplay"><source src="'+this.soundPath+'.mp3" type="audio/mpeg" /><source src="'+this.soundPath+'.ogg" type="audio/ogg" /><embed hidden="true" autostart="true" loop="false" src="'+this.soundPath+'.mp3" /></audio>',e=(0,s.default)(e);e.get(0).volume=.3;e.get(0).play()}}onShow(){this.options.isFirstCheck||this.playSound()}onConfirm(){}onCancel(){}resolveConfirm(){this.onConfirm();this.trigger("confirm");this.remove()}resolveCancel(){this.onCancel();this.trigger("cancel");this.remove()}confirm(){console.warn("Method 'confirm' in views/popup-notification is deprecated. Use 'resolveConfirm' instead.");this.resolveConfirm()}cancel(){console.warn("Method 'cancel' in views/popup-notification is deprecated. Use 'resolveCancel' instead.");this.resolveCancel()}}e.default=a});define("views/merge",["exports","views/main"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="merge";name="Merge";headerView="views/header";recordView="views/record/merge";setup(){this.models=this.options.models;this.setupHeader();this.setupRecord()}setupHeader(){this.createView("header",this.headerView,{model:this.model,fullSelector:"#main > .page-header"})}setupRecord(){this.createView("body",this.recordView,{fullSelector:"#main > .body",models:this.models,collection:this.collection})}getHeader(){return this.buildHeaderHtml([$("<a>").attr("href","#"+this.models[0].entityType).text(this.getLanguage().translate(this.models[0].entityType,"scopeNamesPlural")),$("<span>").text(this.getLanguage().translate("Merge"))])}updatePageTitle(){this.setPageTitle(this.getLanguage().translate("Merge"))}}e.default=s});define("views/login",["exports","view","js-base64","jquery"],function(e,t,a,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);a=s(a);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="login";views={footer:{fullSelector:"body > footer",view:"views/site/footer"}};anotherUser=null;isPopoverDestroyed=!1;handler=null;fallback=!1;method=null;events={"submit #login-form":function(e){e.preventDefault();this.login()},"click #sign-in":function(){this.signIn()},'click a[data-action="passwordChangeRequest"]':function(){this.showPasswordChangeRequest()},'click a[data-action="showFallback"]':function(){this.showFallback()},keydown:function(e){if("Control+Enter"===Espo.Utils.getKeyFromKeyEvent(e)){e.preventDefault();!this.handler||this.fallback&&this.$username.val()?this.login():this.signIn()}}};data(){return{logoSrc:this.getLogoSrc(),showForgotPassword:this.getConfig().get("passwordRecoveryEnabled"),anotherUser:this.anotherUser,hasSignIn:!!this.handler,hasFallback:!!this.handler&&this.fallback,method:this.method,signInText:this.signInText,logInText:this.logInText}}setup(){this.addActionHandler("toggleShowPassword",()=>this.toggleShowPassword());this.anotherUser=this.options.anotherUser||null;let t=this.getConfig().get("loginData")||{};this.fallback=!!t.fallback;this.method=t.method;if(t.handler){this.wait(Espo.loader.requirePromise(t.handler).then(e=>{this.handler=new e(this,t.data||{})}));this.signInText=this.getLanguage().has(this.method,"signInLabels","Global")?this.translate(this.method,"signInLabels"):this.translate("Sign in")}this.wait(this.getHelper().processSetupHandlers(this,"login"));this.getLanguage().has("Log in","labels","Global")&&(this.logInText=this.translate("Log in"));this.logInText=this.getLanguage().has("Log in","labels","Global")?this.translate("Log in"):this.translate("Login")}getLogoSrc(){var e=this.getConfig().get("companyLogoId");return e?this.getBasePath()+"?entryPoint=LogoImage&id="+e:this.getBasePath()+(this.getConfig().get("logoSrc")||"client/img/logo.svg")}afterRender(){this.$submit=this.$el.find("#btn-login");this.$signIn=this.$el.find("#sign-in");this.$username=this.$el.find("#field-userName");this.$password=this.$el.find("#field-password");this.options.prefilledUsername&&this.$username.val(this.options.prefilledUsername);if(this.handler){this.$username.closest(".cell").addClass("hidden");this.$password.closest(".cell").addClass("hidden");this.$submit.closest(".cell").addClass("hidden")}}signIn(){this.disableForm();this.handler.process().then(e=>{this.proceed(e)}).catch(()=>{this.undisableForm()})}login(){let e,t=this.$username.val();var i=this.$password.val(),s=t.trim();if(s!==t){this.$username.val(s);t=s}if(""===t)this.processEmptyUsername();else{this.disableForm();try{e=a.default.encode(t+":"+i)}catch(e){Espo.Ui.error(this.translate("Error")+": "+e.message,!0);this.undisableForm();throw e}s={Authorization:"Basic "+e,"Espo-Authorization":e};this.proceed(s,t,i)}}proceed(e,s,a){e=Espo.Utils.clone(e);let r=Espo.Utils.clone(e);e["Espo-Authorization-By-Token"]="false";e["Espo-Authorization-Create-Token-Secret"]="true";null!==this.anotherUser&&(e["X-Another-User"]=this.anotherUser);this.notifyLoading();Espo.Ajax.getRequest("App/user",null,{login:!0,headers:e}).then(e=>{Espo.Ui.notify(!1);this.triggerLogin(s,e)}).catch(e=>{this.undisableForm();if(401===e.status){var t=e.responseJSON||{},i=e.getResponseHeader("X-Status-Reason");if("second-step-required"===i){e.errorIsHandled=!0;this.onSecondStepRequired(r,s,a,t)}else"error"===i?this.onError():this.onWrongCredentials()}})}triggerLogin(e,t){this.anotherUser&&(t.anotherUser=this.anotherUser);e=e||(t.user||{}).userName;this.trigger("login",e,t)}processEmptyUsername(){this.isPopoverDestroyed=!1;let e=this.$username;var t=this.getLanguage().translate("userCantBeEmpty","messages","User");e.popover({placement:"bottom",container:"body",content:t,trigger:"manual"}).popover("show");let i=e.closest(".form-group");i.addClass("has-error");e.one("mousedown click",()=>{i.removeClass("has-error");if(!this.isPopoverDestroyed){e.popover("destroy");this.isPopoverDestroyed=!0}})}disableForm(){this.$submit.addClass("disabled").attr("disabled","disabled");this.$signIn.addClass("disabled").attr("disabled","disabled")}undisableForm(){this.$submit.removeClass("disabled").removeAttr("disabled");this.$signIn.removeClass("disabled").removeAttr("disabled")}onSecondStepRequired(e,t,i,s){var a=s.view||"views/login-second-step";this.trigger("redirect",a,e,t,i,s)}onError(){this.onFail("loginError")}onWrongCredentials(){var e=this.handler?"failedToLogIn":"wrongUsernamePassword";this.onFail(e)}onFail(e){let t=(0,i.default)("#login .form-group");t.addClass("has-error");this.$el.one("mousedown click",()=>{t.removeClass("has-error")});Espo.Ui.error(this.translate(e,"messages","User"))}showFallback(){this.$el.find('[data-action="showFallback"]').addClass("hidden");this.$el.find(".panel-body").addClass("fallback-shown");this.$username.closest(".cell").removeClass("hidden");this.$password.closest(".cell").removeClass("hidden");this.$submit.closest(".cell").removeClass("hidden")}notifyLoading(){Espo.Ui.notifyWait()}showPasswordChangeRequest(){this.notifyLoading();this.createView("passwordChangeRequest","views/modals/password-change-request",{url:window.location.href},e=>{e.render();Espo.Ui.notify(!1)})}toggleShowPassword(){var e=this.element.querySelector('[id="field-password"]'),t=this.element.querySelector('[data-action="toggleShowPassword"]'),t=t.children[0];if(e instanceof HTMLInputElement){if("password"===e.type){e.type="text";t.classList.remove("fa-eye");t.classList.add("fa-eye-slash")}else{e.type="password";t.classList.remove("fa-eye-slash");t.classList.add("fa-eye")}e.focus();e.setSelectionRange(e.value.length,e.value.length)}}}e.default=r});define("views/login-second-step",["exports","view","js-base64","jquery"],function(e,t,a,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);a=s(a);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="login-second-step";views={footer:{fullSelector:"body > footer",view:"views/site/footer"}};anotherUser=null;loginData=null;headers=null;isPopoverDestroyed=!1;events={"submit #login-form":function(e){e.preventDefault();this.send()},'click [data-action="backToLogin"]':function(){this.trigger("back")},keydown:function(e){if("Control+Enter"===Espo.Utils.getKeyFromKeyEvent(e)){e.preventDefault();this.send()}}};data(){return{message:this.message}}setup(){this.message=this.translate(this.options.loginData.message,"messages","User");this.anotherUser=this.options.anotherUser||null;this.headers=this.options.headers||{};this.loginData=this.options.loginData}afterRender(){this.$code=(0,i.default)('[data-name="field-code"]');this.$submit=this.$el.find("#btn-send");this.$code.focus()}send(){var e=this.$code.val().trim().replace(/\s/g,"");let t=this.options.userName;var i=this.loginData.token,s=Espo.Utils.clone(this.headers);if(""===e)this.processEmptyCode();else{this.disableForm();if(t&&i){i=a.default.encode(t+":"+i);s.Authorization="Basic "+i;s["Espo-Authorization"]=i}s["Espo-Authorization-Code"]=e;s["Espo-Authorization-Create-Token-Secret"]="true";null!==this.anotherUser&&(s["X-Another-User"]=this.anotherUser);this.notifyLoading();Espo.Ajax.getRequest("App/user",null,{login:!0,headers:s}).then(e=>{Espo.Ui.notify(!1);this.triggerLogin(t,e)}).catch(e=>{this.undisableForm();if(401===e.status){var t=e.getResponseHeader("X-Status-Reason");"error"===t?this.onError():this.onWrongCredentials()}})}}triggerLogin(e,t){this.anotherUser&&(t.anotherUser=this.anotherUser);e=e||(t.user||{}).userName;this.trigger("login",e,t)}processEmptyCode(){this.isPopoverDestroyed=!1;var e=this.getLanguage().translate("codeIsRequired","messages","User");let t=this.$code,i=(t.popover({placement:"bottom",container:"body",content:e,trigger:"manual"}).popover("show"),t.closest(".form-group"));i.addClass("has-error");t.one("mousedown click",()=>{i.removeClass("has-error");if(!this.isPopoverDestroyed){t.popover("destroy");this.isPopoverDestroyed=!0}})}onFail(e){let t=(0,i.default)("#login .form-group");t.addClass("has-error");this.$el.one("mousedown click",()=>{t.removeClass("has-error")});Espo.Ui.error(this.translate(e,"messages","User"))}onError(){this.onFail("loginError")}onWrongCredentials(){this.onFail("wrongCode")}notifyLoading(){Espo.Ui.notifyWait()}disableForm(){this.$submit.addClass("disabled").attr("disabled","disabled")}undisableForm(){this.$submit.removeClass("disabled").removeAttr("disabled")}}e.default=r});define("views/list-tree",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchPanel=!1;createButton=!1;name="listTree";getRecordViewName(){return this.getMetadata().get(["clientDefs",this.scope,"recordViews","listTree"])||"views/record/list-tree"}}e.default=s});define("views/list-related",["exports","views/main","search-manager","helpers/record/create-related"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{template="list";name="ListRelated";headerView="views/header";searchView="views/record/search";recordView="views/record/list";searchPanel=!0;searchManager=null;optionsToPass=[];keepCurrentRootUrl=!1;viewMode="";viewModeList=null;defaultViewMode="list";MODE_LIST="list";rowActionsView="views/record/row-actions/relationship";createButton=!0;unlinkDisabled=!1;filtersDisabled=!1;nameAttribute;allResultDisabled=!1;shortcutKeys={"Control+Space":function(e){this.handleShortcutKeyCtrlSpace(e)},"Control+Slash":function(e){this.handleShortcutKeyCtrlSlash(e)},"Control+Comma":function(e){this.handleShortcutKeyCtrlComma(e)},"Control+Period":function(e){this.handleShortcutKeyCtrlPeriod(e)}};setup(){this.link=this.options.link;if(!this.link)throw console.error("Link not passed."),new Error;if(!this.model)throw console.error("Model not passed."),new Error;if(!this.collection)throw console.error("Collection not passed."),new Error;this.rootUrl=this.options.rootUrl||this.options.params.rootUrl||"#"+this.scope;this.nameAttribute=this.getMetadata().get(`clientDefs.${this.scope}.nameAttribute`)||"name";this.panelDefs=this.getMetadata().get(["clientDefs",this.scope,"relationshipPanels",this.link])||{};if(this.panelDefs.fullFormDisabled)throw console.error("Full-form disabled."),new Error;this.collection.maxSize=this.getConfig().get("recordsPerPage")||this.collection.maxSize;this.collectionUrl=this.collection.url;this.collectionMaxSize=this.collection.maxSize;this.panelDefs.primaryFilter&&(this.collection.data.primaryFilter=this.panelDefs.primaryFilter);this.foreignScope=this.collection.entityType;this.setupModes();this.setViewMode(this.viewMode);this.getMetadata().get(["clientDefs",this.foreignScope,"searchPanelDisabled"])&&(this.searchPanel=!1);this.getUser().isPortal()&&this.getMetadata().get(["clientDefs",this.foreignScope,"searchPanelInPortalDisabled"])&&(this.searchPanel=!1);this.getMetadata().get(["clientDefs",this.foreignScope,"createDisabled"])&&(this.createButton=!1);(!1===this.panelDefs.create||this.panelDefs.createDisabled||this.panelDefs.createAction)&&(this.createButton=!1);this.entityType=this.collection.entityType;this.headerView=this.options.headerView||this.headerView;this.recordView=this.options.recordView||this.recordView;this.searchView=this.options.searchView||this.searchView;this.setupHeader();this.defaultOrderBy=this.panelDefs.orderBy||this.collection.orderBy;this.defaultOrder=this.panelDefs.orderDirection||this.collection.order;this.panelDefs.orderBy&&!this.panelDefs.orderDirection&&(this.defaultOrder="asc");this.collection.setOrder(this.defaultOrderBy,this.defaultOrder,!0);this.searchPanel&&this.setupSearchManager();this.setupSorting();this.searchPanel&&this.setupSearchPanel();this.createButton&&this.setupCreateButton();this.options.params&&this.options.params.fromAdmin&&(this.keepCurrentRootUrl=!0);this.wait(this.getHelper().processSetupHandlers(this,"list"));this.addActionHandler("fullRefresh",()=>this.actionFullRefresh());this.addActionHandler("removeRelated",()=>this.actionRemoveRelated())}setupModes(){this.defaultViewMode=this.options.defaultViewMode||this.getMetadata().get(["clientDefs",this.foreignScope,"listRelatedDefaultViewMode"])||this.defaultViewMode;this.viewMode=this.viewMode||this.defaultViewMode;var t=this.options.viewModeList||this.viewModeList||this.getMetadata().get(["clientDefs",this.foreignScope,"listRelatedViewModeList"]);this.viewModeList=t||[this.MODE_LIST];if(1<this.viewModeList.length){let e=null;t="listRelatedViewMode"+this.scope+this.link;if(this.getStorage().has("state",t)){t=this.getStorage().get("state",t);t&&this.viewModeList.includes(t)&&(e=t)}e=e||this.defaultViewMode;this.viewMode=e}}setupHeader(){this.createView("header",this.headerView,{collection:this.collection,fullSelector:"#main > .page-header",scope:this.scope,isXsSingleRow:!0})}setupCreateButton(){this.menu.buttons.unshift({action:"quickCreate",iconHtml:'<span class="fas fa-plus fa-sm"></span>',text:this.translate("Create "+this.foreignScope,"labels",this.foreignScope),style:"default",acl:"create",aclScope:this.foreignScope,title:"Ctrl+Space"})}setupSearchPanel(){this.createSearchView()}createSearchView(){let t=Espo.Utils.clone(this.getMetadata().get(["clientDefs",this.foreignScope,"filterList"])||[]);this.panelDefs.filterList&&this.panelDefs.filterList.forEach(e=>{let i=!1,s=e.name||e;if(s&&"all"!==s){t.forEach(e=>{var t=e.name||e;s===t&&(i=!0)});i||t.push(e)}});this.filtersDisabled&&(t=[]);return this.createView("search",this.searchView,{collection:this.collection,fullSelector:"#main > .search-container",searchManager:this.searchManager,scope:this.foreignScope,viewMode:this.viewMode,viewModeList:this.viewModeList,isWide:!0,filterList:t},e=>{1<this.viewModeList.length&&this.listenTo(e,"change-view-mode",e=>this.switchViewMode(e))})}switchViewMode(e){this.clearView("list");this.collection.isFetched=!1;this.collection.reset();this.setViewMode(e,!0);this.loadList()}setViewMode(e,t){this.viewMode=e;this.collection.url=this.collectionUrl;this.collection.maxSize=this.collectionMaxSize;if(t){var i="listViewMode"+this.scope+this.link;this.getStorage().set("state",i,e)}this.searchView&&this.getView("search")&&this.getSearchView().setViewMode(e);i="setViewMode"+Espo.Utils.upperCaseFirst(this.viewMode);this[i]&&this[i]()}setupSearchManager(){var e=this.collection,t=new i.default(e);this.panelDefs.primaryFilter&&t.setPrimary(this.panelDefs.primaryFilter);t.scope=this.foreignScope;e.where=t.getWhere();this.searchManager=t}setupSorting(){}getSearchView(){return this.getView("search")}getRecordView(){return this.getView("list")}getRecordViewName(){var e;return this.viewMode===this.MODE_LIST?this.panelDefs.recordListView||this.getMetadata().get(["clientDefs",this.foreignScope,"recordViews",this.MODE_LIST])||this.recordView:(e="record"+Espo.Utils.upperCaseFirst(this.viewMode)+"View",this.getMetadata().get(["clientDefs",this.foreignScope,"recordViews",this.viewMode])||this[e])}afterRender(){Espo.Ui.notify(!1);this.hasView("list")||this.loadList();this.$el.get(0).focus({preventScroll:!0})}loadList(){if("isFetched"in this.collection&&this.collection.isFetched)this.createListRecordView(!1);else{Espo.Ui.notifyWait();this.createListRecordView(!0)}}prepareRecordViewOptions(e){}createListRecordView(){let t={collection:this.collection,selector:".list-container",scope:this.foreignScope,skipBuildRows:!0,shortcutKeysEnabled:!0};this.optionsToPass.forEach(e=>{t[e]=this.options[e]});this.keepCurrentRootUrl&&(t.keepCurrentRootUrl=!0);this.panelDefs.layout&&"string"==typeof this.panelDefs.layout&&(t.layoutName=this.panelDefs.layout);t.rowActionsView=!this.panelDefs.readOnly&&(this.panelDefs.rowActionsView||this.rowActionsView);(this.getConfig().get("listPagination")||this.getMetadata().get(["clientDefs",this.foreignScope,"listPagination"]))&&(t.pagination=!0);var e=this.panelDefs.massUnlinkDisabled||this.panelDefs.unlinkDisabled||this.unlinkDisabled;t={unlinkMassAction:!e,skipBuildRows:!0,buttonsDisabled:!0,forceDisplayTopBar:!0,rowActionsOptions:{unlinkDisabled:this.panelDefs.unlinkDisabled||this.unlinkDisabled,editDisabled:this.panelDefs.editDisabled,removeDisabled:this.panelDefs.removeDisabled},additionalRowActionList:this.panelDefs.rowActionList,...t,settingsEnabled:!0,removeDisabled:this.panelDefs.removeDisabled};this.getHelper().isXsScreen()&&(t.type="listSmall");e=this.model.getLinkParam(this.link,"foreign");if(!this.allResultDisabled&&!this.panelDefs.allResultDisabled&&e){t.forceAllResultSelectable=!0;t.allResultWhereItem={type:"linkedWith",attribute:e,value:[this.model.id]}}this.prepareRecordViewOptions(t);e=this.getRecordViewName();this.createView("list",e,t,e=>{if(this.hasParentView()){this.listenTo(e,"after:paginate",()=>window.scrollTo({top:0}));this.listenTo(e,"sort",()=>window.scrollTo({top:0}));this.listenToOnce(e,"after:render",()=>{if(!this.hasParentView()){e.undelegateEvents();this.clearView("list")}});e.getSelectAttributeList(e=>{if(!this.options.mediator||!this.options.mediator.abort){e&&(this.collection.data.select=e.join(","));Espo.Ui.notifyWait();this.collection.fetch({main:!0}).then(()=>Espo.Ui.notify(!1))}})}else e.undelegateEvents()})}async actionQuickCreate(){var e=this.link,t=new s.default(this);return t.process(this.model,e,{afterSave:()=>{this.collection.fetch()}})}actionUnlinkRelated(e){let t=e.id;this.confirm({message:this.translate("unlinkRecordConfirmation","messages"),confirmText:this.translate("Unlink")},()=>{Espo.Ui.notifyWait();Espo.Ajax.deleteRequest(this.collection.url,{id:t}).then(()=>{Espo.Ui.success(this.translate("Unlinked"));this.collection.fetch();this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link)})})}getHeader(){var e=this.model.attributes[this.nameAttribute]||this.model.id,t=`#${this.scope}/view/`+this.model.id,i=document.createElement("a");i.href=t;i.classList.add("font-size-flexible","title");i.textContent=e;i.style.userSelect="none";this.model.attributes.deleted&&(i.style.textDecoration="line-through");t=this.getLanguage().translate(this.scope,"scopeNamesPlural");let s=document.createElement("span");s.text=t;s.style.userSelect="none";if(!this.rootLinkDisabled){e=document.createElement("a");e.href=this.rootUrl;e.classList.add("action");e.dataset.action="navigateToRoot";e.text=t;s=document.createElement("span");s.style.userSelect="none";s.append(e)}t=this.getHeaderIconHtml(),e=(t&&s.insertAdjacentHTML("afterbegin",t),document.createElement("span"));e.textContent=this.translate(this.link,"links",this.scope);e.title=this.translate("clickToRefresh","messages");e.dataset.action="fullRefresh";e.style.cursor="pointer";e.style.userSelect="none";return this.buildHeaderHtml([s,i,e])}updatePageTitle(){this.setPageTitle(this.getLanguage().translate(this.link,"links",this.scope))}getCreateAttributes(){}handleShortcutKeyCtrlSpace(e){if(this.createButton&&this.getAcl().checkScope(this.foreignScope,"create")){e.preventDefault();e.stopPropagation();this.actionQuickCreate({focusForCreate:!0})}}handleShortcutKeyCtrlSlash(e){if(this.searchPanel){var t=this.$el.find("input.text-filter").first();if(t.length){e.preventDefault();e.stopPropagation();t.focus()}}}handleShortcutKeyCtrlComma(e){this.getSearchView()&&this.getSearchView().selectPreviousPreset()}handleShortcutKeyCtrlPeriod(e){this.getSearchView()&&this.getSearchView().selectNextPreset()}async actionFullRefresh(){Espo.Ui.notifyWait();await this.collection.fetch();Espo.Ui.notify()}async actionRemoveRelated(e){var t=e.id,t=(await this.confirm({message:this.translate("removeRecordConfirmation","messages"),confirmText:this.translate("Remove")}),this.collection.get(t));if(t){Espo.Ui.notifyWait();await t.destroy();Espo.Ui.success(this.translate("Removed"));this.collection.fetch().then(()=>{});this.model.trigger("after:unrelate");this.model.trigger("after:unrelate:"+this.link)}}}e.default=r});define("views/home",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="home";setup(){var e=this.getMetadata().get(["clientDefs","Home","view"])||"views/dashboard";this.createView("content",e,{selector:"> .home-content"})}}e.default=s});define("views/header",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="header";data(){let t={};"getHeader"in this.getParentMainView()&&(t.header=this.getParentMainView().getHeader());t.scope=this.scope||this.getParentMainView().scope;t.items=this.getItems();var e=(t.items||{}).dropdown||[];t.hasVisibleDropdownItems=!1;e.forEach(e=>{e.hidden||(t.hasVisibleDropdownItems=!0)});t.noBreakWords=this.options.fontSizeFlexible;t.isXsSingleRow=this.options.isXsSingleRow;t.menuItemsHidden=this.menuItemsHidden;(t.items.buttons||[]).length<2&&(t.isHeaderAdditionalSpace=!0);return t}setup(){this.scope=this.options.scope;this.model&&this.listenTo(this.model,"after:save",()=>{this.isRendered()&&this.reRender()});this.wasRendered=!1;this.options.fontSizeFlexible&&this.on("action-item-update",()=>{this.isRendered()&&this.adjustFontSize()})}hideAllMenuItems(){this.menuItemsHidden=!0;return this.reRender()}showAllActionItems(){this.menuItemsHidden=!1;return this.reRender()}afterRender(){if(this.options.fontSizeFlexible){this.$headerBreadcrumps=this.$el.find(".header-breadcrumbs");this._titleIsInitiated=!1;this.adjustFontSize()}this.wasRendered&&this.getParentMainView().trigger("header-rendered");this.wasRendered=!0}adjustFontSize(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,t=(e||(this.fontSizePercentage=100),this.$headerBreadcrumps),i=t.width();let s=0;t.children().each((e,t)=>{s+=$(t).outerWidth(!0)});if(!(i>=s))if(7<e){if(!this._titleIsInitiated){this._titleIsInitiated=!0;t.addClass("overlapped");this.$el.find(".title").each((e,t)=>{let i=$(t),s=$(t).text(),a=(i.attr("title",s),!1);i.on("touchstart",()=>{if(!a){i.attr("title","");a=!0;Espo.Ui.popover(i,{content:s,noToggleInit:!0},this)}i.popover("toggle")})})}}else{this.fontSizePercentage-=4;i=this.$el.find(".font-size-flexible");i.css("font-size",this.fontSizePercentage+"%");i.css("position","relative");(6<e||4<e)&&i.css("top","-1px");this.adjustFontSize(e+1)}}getItems(){return this.getParentMainView().getMenu()||{}}getParentMainView(){return this.getParentView()}}e.default=s});define("views/deleted-detail",["exports","views/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{recordView="views/record/deleted-detail";menuDisabled=!0;setup(){super.setup();this.model.get("deleted")&&(this.menuDisabled=!0)}getRecordViewName(){return this.recordView}}e.default=s});define("views/dashlet",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="dashlet";name;id;optionsView=null;data(){var e=this.getBodyView();return{name:this.name,id:this.id,title:this.getTitle(),actionList:e?e.getActionItemDataList():[],buttonList:e?e.buttonList:[],noPadding:!!e&&e.noPadding,color:e?e.getColor():null}}events={"click .action":function(e){var t=Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget);t||this.getBodyView().handleAction(e.originalEvent,e.currentTarget)},"mousedown .panel-heading .dropdown-menu":function(e){e.stopPropagation()},"shown.bs.dropdown .panel-heading .btn-group":function(e){this.controlDropdownShown($(e.currentTarget).parent())},"hide.bs.dropdown .panel-heading .btn-group":function(){this.controlDropdownHide()}};controlDropdownShown(e){var t=this.$el.children().first(),i=e.find(".dropdown-menu").get(0).getBoundingClientRect().bottom,s=t.get(0).getBoundingClientRect().bottom;i<s||t.addClass("has-dropdown-opened")}controlDropdownHide(){this.$el.children().first().removeClass("has-dropdown-opened")}setup(){this.name=this.options.name;this.id=this.options.id;this.on("resize",()=>{var e=this.getView("body");e&&e.trigger("resize")});var e=this.getMetadata().get(["dashlets",this.name,"view"])||"views/dashlets/"+Espo.Utils.camelCaseToHyphen(this.name);this.createView("body",e,{selector:".dashlet-body",id:this.id,name:this.name,readOnly:this.options.readOnly,locked:this.options.locked})}refresh(){this.getBodyView().actionRefresh()}actionRefresh(){this.refresh()}actionOptions(){var e=this.getMetadata().get(["dashlets",this.name,"options","view"])||this.optionsView||"views/dashlets/options/base";Espo.Ui.notifyWait();this.createView("options",e,{name:this.name,optionsData:this.getOptionsData(),fields:this.getBodyView().optionsFields},s=>{s.render();Espo.Ui.notify(!1);this.listenToOnce(s,"save",e=>{var t=this.id;Espo.Ui.notify(this.translate("saving","messages"));this.getPreferences().once("sync",()=>{this.getPreferences().trigger("update");Espo.Ui.notify(!1);s.close();this.trigger("change")});var i=this.getPreferences().get("dashletsOptions")||{};i[t]=e;this.getPreferences().save({dashletsOptions:i},{patch:!0})})})}getOptionsData(){return this.getBodyView().optionsData}getOption(e){return this.getBodyView().getOption(e)}getTitle(){return this.getBodyView().getTitle()}getBodyView(){return this.getView("body")}actionRemove(){this.confirm(this.translate("confirmation","messages"),()=>{this.trigger("remove-dashlet");this.$el.remove();this.remove()})}}e.default=s});define("views/dashboard",["exports","view","gridstack","underscore"],function(e,t,n,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);n=s(n);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="dashboard";dashboardLayout=null;currentTab=null;cellHeight;WIDTH_MULTIPLIER=3;HEIGHT_MULTIPLIER=4;preservedDashletViews=null;preservedDashletElements=null;events={'click button[data-action="selectTab"]':function(e){var t=parseInt($(e.currentTarget).data("tab"));this.selectTab(t)},'click .dashboard-buttons [data-action="addDashlet"]':function(){this.createView("addDashlet","views/modals/add-dashlet",{},e=>{e.render();this.listenToOnce(e,"add",e=>this.addDashlet(e))})},'click .dashboard-buttons [data-action="editTabs"]':function(){this.editTabs()}};data(){return{displayTitle:this.options.displayTitle,currentTab:this.currentTab,tabCount:this.dashboardLayout.length,dashboardLayout:this.dashboardLayout,layoutReadOnly:this.layoutReadOnly,hasAdd:!this.layoutReadOnly&&!this.getPreferences().get("dashboardLocked")}}generateId(){return Math.floor(10000001*Math.random()).toString()}setupCurrentTabLayout(){if(!this.dashboardLayout){var e=[{name:"My Espo",layout:[]}];this.getConfig().get("forcedDashboardLayout")?this.dashboardLayout=this.getConfig().get("forcedDashboardLayout")||[]:this.getUser().get("portalId")?this.dashboardLayout=this.getConfig().get("dashboardLayout")||[]:this.dashboardLayout=this.getPreferences().get("dashboardLayout")||e;0!==this.dashboardLayout.length&&"[object Array]"===Object.prototype.toString.call(this.dashboardLayout)||(this.dashboardLayout=e)}e=this.dashboardLayout||[],e=(e.length<=this.currentTab&&(this.currentTab=0),e[this.currentTab].layout||[]),e=n.default.Utils.sort(e);this.currentTabLayout=e}storeCurrentTab(e){this.getStorage().set("state","dashboardTab",e)}selectTab(e){this.$el.find('.page-header button[data-action="selectTab"]').removeClass("active");this.$el.find(`.page-header button[data-action="selectTab"][data-tab="${e}"]`).addClass("active");this.currentTab=e;this.storeCurrentTab(e);this.setupCurrentTabLayout();this.dashletIdList.forEach(e=>this.clearView("dashlet-"+e));this.dashletIdList=[];this.reRender()}setup(){this.currentTab=this.getStorage().get("state","dashboardTab")||0;this.setupCurrentTabLayout();this.cellHeight=this.getThemeManager().getParam("dashboardCellHeight");this.dashletIdList=[];this.screenWidthXs=this.getThemeManager().getParam("screenWidthXs");if(this.getUser().isPortal()){this.layoutReadOnly=!0;this.dashletsReadOnly=!0}else{var e=this.getAcl().getScopeForbiddenFieldList("Preferences","edit");e.includes("dashboardLayout")&&(this.layoutReadOnly=!0);e.includes("dashletsOptions")&&(this.dashletsReadOnly=!0)}this.once("remove",()=>{this.grid&&this.grid.destroy();this.fallbackModeTimeout&&clearTimeout(this.fallbackModeTimeout);$(window).off("resize.dashboard")})}afterRender(){this.$dashboard=this.$el.find("> .dashlets");window.innerWidth>=this.screenWidthXs?this.initGridstack():this.initFallbackMode();$(window).off("resize.dashboard");$(window).on("resize.dashboard",this.onResize.bind(this))}onResize(){this.isFallbackMode()&&window.innerWidth>=this.screenWidthXs?this.initGridstack():!this.isFallbackMode()&&window.innerWidth<this.screenWidthXs&&this.initFallbackMode()}isFallbackMode(){return this.$dashboard.hasClass("fallback")}preserveDashletViews(){this.preservedDashletViews={};this.preservedDashletElements={};this.currentTabLayout.forEach(e=>{var t="dashlet-"+e.id,i=this.getView(t);this.unchainView(t);this.preservedDashletViews[e.id]=i;t=i.element,i=(this.preservedDashletElements[e.id]=t,t.parentNode);i.removeChild(t)})}async addPreservedDashlet(e){var t=this.preservedDashletViews[e],i=this.preservedDashletElements[e];if(i&&t){var s=this.element.querySelector(`.dashlet-container[data-id="${e}"]`);if(s){s.append(...i.childNodes);t.element=void 0;await this.setView("dashlet-"+e,t)}}}clearPreservedDashlets(){this.preservedDashletViews=null;this.preservedDashletElements=null}hasPreservedDashlets(){return!!this.preservedDashletViews}initFallbackMode(){if(this.grid){this.grid.destroy(!1);this.grid=null;this.preserveDashletViews()}this.$dashboard.empty();let i=this.$dashboard;i.addClass("fallback");this.currentTabLayout.forEach(e=>{var t=this.prepareFallbackItem(e);i.append(t)});this.currentTabLayout.forEach(e=>{e.id&&e.name&&(this.getMetadata().get("dashlets."+e.name)?this.hasPreservedDashlets()?this.addPreservedDashlet(e.id):this.createDashletView(e.id,e.name):console.error(`Dashlet ${e.name} doesn't exist or not available.`))});this.clearPreservedDashlets();this.fallbackModeTimeout&&clearTimeout(this.fallbackModeTimeout);this.$dashboard.css("height","");this.fallbackControlHeights()}fallbackControlHeights(){this.currentTabLayout.forEach(e=>{var t=this.$dashboard.find(`.dashlet-container[data-id="${e.id}"]`),i=t.find(".panel-heading").outerHeight(),s=t.find(".dashlet-body"),s=s.get(0);if(s&&s.scrollHeight>s.offsetHeight){s=s.scrollHeight+i;t.css("height",s+"px")}});this.fallbackModeTimeout=setTimeout(()=>this.fallbackControlHeights(),300)}initGridstack(){this.isFallbackMode()&&this.preserveDashletViews();this.$dashboard.empty();var e=this.$gridstack=this.$dashboard;e.removeClass("fallback");this.fallbackModeTimeout&&clearTimeout(this.fallbackModeTimeout);let t=!1,i=!1;if(this.getUser().isPortal()||this.getPreferences().get("dashboardLocked")){t=!0;i=!0}var s=this.cellHeight,a=this.getThemeManager().getParam("dashboardCellMargin"),r=this.getThemeManager().getFontSizeFactor(),s=Math.ceil(r*s*1.14),r=Math.round(r*a/2);let o=this.grid=n.default.init({cellHeight:s,margin:r,column:12,handle:".panel-heading",disableDrag:t,disableResize:i,disableOneColumnMode:!0,draggable:{distance:10},dragInOptions:{scroll:!1},float:!1,animate:!1,scroll:!1},e.get(0));o.removeAll();this.currentTabLayout.forEach(e=>{var t=this.prepareGridstackItem(e.id,e.name);this.getMetadata().get(["dashlets",e.name])&&o.addWidget(t.get(0),{x:e.x*this.WIDTH_MULTIPLIER,y:e.y*this.HEIGHT_MULTIPLIER,w:e.width*this.WIDTH_MULTIPLIER,h:e.height*this.HEIGHT_MULTIPLIER})});e.find(".grid-stack-item").css("position","absolute");this.currentTabLayout.forEach(e=>{e.id&&e.name&&(this.getMetadata().get("dashlets."+e.name)?this.hasPreservedDashlets()?this.addPreservedDashlet(e.id):this.createDashletView(e.id,e.name):console.error(`Dashlet ${e.name} doesn't exist or not available.`))});this.clearPreservedDashlets();this.grid.on("change",()=>{this.fetchLayout();this.saveLayout()});this.grid.on("resizestop",e=>{var t=$(e.target).data("id"),t=this.getView("dashlet-"+t);t&&t.trigger("resize")})}fetchLayout(){this.dashboardLayout[this.currentTab].layout=i.default.map(this.$gridstack.find(".grid-stack-item"),e=>{var t=$(e),i=t.attr("gs-x"),s=t.attr("gs-y"),a=t.attr("gs-h"),r=t.attr("gs-w");return{id:t.data("id"),name:t.data("name"),x:i/this.WIDTH_MULTIPLIER,y:s/this.HEIGHT_MULTIPLIER,width:r/this.WIDTH_MULTIPLIER,height:a/this.HEIGHT_MULTIPLIER}})}prepareGridstackItem(e,t){var i=$("<div>").addClass("grid-stack-item"),s=$('<div class="grid-stack-item-content dashlet-container"></div>');s.attr("data-id",e);s.attr("data-name",t);i.attr("data-id",e);i.attr("data-name",t);i.append(s);return i}prepareFallbackItem(e){var t=$("<div>"),i=$('<div class="dashlet-container">');i.attr("data-id",e.id);i.attr("data-name",e.name);i.attr("data-x",e.x);i.attr("data-y",e.y);i.attr("data-height",e.height);i.attr("data-width",e.width);i.css("height",e.height*this.cellHeight*this.HEIGHT_MULTIPLIER+"px");t.attr("data-id",e.id);t.attr("data-name",e.name);t.append(i);return t}saveLayout(e){if(!this.layoutReadOnly){e={...e||{},dashboardLayout:this.dashboardLayout};this.getPreferences().save(e,{patch:!0});this.getPreferences().trigger("update")}}removeDashlet(i){let e=!1;if(this.isFallbackMode()){this.initGridstack();e=!0}var t=this.$gridstack.find('.grid-stack-item[data-id="'+i+'"]');this.grid.removeWidget(t.get(0),!0);let s=this.dashboardLayout[this.currentTab].layout;s.forEach((e,t)=>{e.id===i&&s.splice(t,1)});t={};t.dashletsOptions=this.getPreferences().get("dashletsOptions")||{};delete t.dashletsOptions[i];t.dashboardLayout=this.dashboardLayout;if(!this.layoutReadOnly){this.getPreferences().save(t,{patch:!0});this.getPreferences().trigger("update");t=this.dashletIdList.indexOf(i);~t&&this.dashletIdList.splice(t,t);this.clearView("dashlet-"+i);this.setupCurrentTabLayout();e&&this.initFallbackMode()}}addDashlet(e){let t=!1;if(this.isFallbackMode()){this.initGridstack();t=!0}var i="d"+Math.floor(1000001*Math.random()).toString(),s=this.prepareGridstackItem(i,e);this.grid.addWidget(s.get(0),{x:0,y:0,w:2*this.WIDTH_MULTIPLIER,h:2*this.HEIGHT_MULTIPLIER});this.createDashletView(i,e,e,e=>{this.fetchLayout();this.saveLayout();this.setupCurrentTabLayout();e.getBodyView()&&e.getBodyView().afterAdding&&e.getBodyView().afterAdding();t&&this.initFallbackMode()})}createDashletView(t,i,s,a){s&&0;return this.createView("dashlet-"+t,"views/dashlet",{label:i,name:i,id:t,selector:`> .dashlets .dashlet-container[data-id="${t}"]`,readOnly:this.dashletsReadOnly,locked:this.getPreferences().get("dashboardLocked")},e=>{this.dashletIdList.push(t);e.render();this.listenToOnce(e,"change",()=>{this.clearView(t);this.createDashletView(t,i,s)});this.listenToOnce(e,"remove-dashlet",()=>{this.removeDashlet(t)});a&&a.call(this,e)})}editTabs(){var e=this.getPreferences().get("dashboardLocked");this.createView("editTabs","views/modals/edit-dashboard",{dashboardLayout:this.dashboardLayout,dashboardLocked:e,fromDashboard:!0},e=>{e.render();this.listenToOnce(e,"after:save",a=>{e.close();let r=[];a.dashboardTabList.forEach(t=>{let i=[],s=null;this.dashboardLayout.forEach(e=>{if(e.name===t){i=e.layout;s=e.id}});t in a.renameMap&&(t=a.renameMap[t]);var e={name:t,layout:i};s&&(e.id=s);r.push(e)});this.dashletIdList.forEach(e=>{this.clearView("dashlet-"+e)});this.dashboardLayout=r;this.saveLayout({dashboardLocked:a.dashboardLocked});this.storeCurrentTab(0);this.currentTab=0;this.setupCurrentTabLayout();this.reRender()})})}}e.default=a});define("views/clear-cache",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="clear-cache";el="> body";events={'click .action[data-action="clearLocalCache"]':function(){this.clearLocalCache()},'click .action[data-action="returnToApplication"]':function(){this.returnToApplication()}};data(){return{cacheIsEnabled:!!this.options.cache}}clearLocalCache(){this.options.cache.clear();this.$el.find('.action[data-action="clearLocalCache"]').remove();this.$el.find(".message-container").removeClass("hidden");this.$el.find(".message-container span").html(this.translate("Cache has been cleared"));this.$el.find('.action[data-action="returnToApplication"]').removeClass("hidden")}returnToApplication(){this.getRouter().navigate("",{trigger:!0})}}e.default=s});define("views/about",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="about";data(){return{version:this.version,text:this.getHelper().transformMarkdownText(this.text)}}setup(){this.wait(Espo.Ajax.getRequest("App/about").then(e=>{this.text=e.text;this.version=e.version}))}}e.default=s});define("views/wysiwyg/modals/insert-link",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{className="dialog dialog-record";template="wysiwyg/modals/insert-link";events={'input [data-name="url"]':function(){this.controlInputs()},'paste [data-name="url"]':function(){this.controlInputs()}};shortcutKeys={"Control+Enter":function(){this.hasAvailableActionItem("insert")&&this.actionInsert()}};data(){return{labels:this.options.labels||{}}}setup(){var e=this.options.labels||{};this.headerText=e.insert;this.buttonList=[{name:"insert",text:this.translate("Insert"),style:"primary",disabled:!0}];this.linkInfo=this.options.linkInfo||{};this.linkInfo.url&&this.enableButton("insert")}afterRender(){this.$url=this.$el.find('[data-name="url"]');this.$text=this.$el.find('[data-name="text"]');this.$openInNewWindow=this.$el.find('[data-name="openInNewWindow"]');var e=this.linkInfo;this.$url.val(e.url||"");this.$text.val(e.text||"");"isNewWindow"in e&&(this.$openInNewWindow.get(0).checked=!!e.isNewWindow)}controlInputs(){var e=this.$url.val().trim();e?this.enableButton("insert"):this.disableButton("insert")}actionInsert(){var e=this.$url.val().trim(),t=this.$text.val().trim(),i=this.$openInNewWindow.get(0).checked,t={url:e,text:t||e,isNewWindow:i,range:this.linkInfo.range};this.trigger("insert",t);this.close()}}e.default=s});define("views/wysiwyg/modals/insert-image",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{className="dialog dialog-record";template="wysiwyg/modals/insert-image";events={'click [data-action="insert"]':function(){this.actionInsert()},'input [data-name="url"]':function(){this.controlInsertButton()},'paste [data-name="url"]':function(){this.controlInsertButton()}};shortcutKeys={"Control+Enter":function(){this.$el.find('[data-name="insert"]').hasClass("disabled")||this.actionInsert()}};data(){return{labels:this.options.labels||{}}}setup(){var e=this.options.labels||{};this.headerText=e.insert;this.buttonList=[]}afterRender(){var e=this.$el.find('[data-name="files"]');e.replaceWith(e.clone().on("change",e=>{this.trigger("upload",e.target.files||e.target.value);this.close()}).val(""))}controlInsertButton(){var e=this.$el.find('[data-name="url"]').val().trim(),t=this.$el.find('[data-name="insert"]');e?t.removeClass("disabled").removeAttr("disabled"):t.addClass("disabled").attr("disabled","disabled")}actionInsert(){var e=this.$el.find('[data-name="url"]').val().trim();this.trigger("insert",e);this.close()}}e.default=s});define("views/working-time-range/fields/users",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getSelectPrimaryFilterName(){return"active"}}e.default=s});define("views/working-time-range/fields/date-end",["exports","views/fields/date","moment"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setup(){super.setup();this.validations.push(()=>this.validateAfterOrSame())}validateAfterOrSame(){var e=this.model.get(this.name),t=this.model.get("dateStart");if(e&&t&&(0,i.default)(e).unix()<(0,i.default)(t).unix()){e=this.translate("fieldShouldAfter","messages").replace("{field}",this.getLabelText()).replace("{otherField}",this.translate("dateStart","fields",this.model.entityType));this.showValidationMessage(e);return!0}return!1}}e.default=a});define("views/working-time-calendar/fields/time-ranges",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplateContent=`
|
||
<div class="item-list">
|
||
{{#each itemDataList}}
|
||
<span class="item" data-key="{{key}}"
|
||
>{{{var viewKey ../this}}}</span>{{#unless isLast}} · {{/unless}}
|
||
{{/each}}
|
||
</div>
|
||
{{#unless itemDataList.length}}
|
||
<span class="none-value">{{translate 'None'}}</span>
|
||
{{/unless}}
|
||
`;detailTemplateContent=`
|
||
<div class="item-list">
|
||
{{#each itemDataList}}
|
||
<div class="item" data-key="{{key}}">
|
||
{{{var viewKey ../this}}}
|
||
</div>
|
||
{{/each}}
|
||
</div>
|
||
{{#unless itemDataList.length}}
|
||
<span class="none-value">{{translate 'None'}}</span>
|
||
{{/unless}}
|
||
`;editTemplateContent=`
|
||
<div class="item-list">
|
||
{{#each itemDataList}}
|
||
<div class="item" data-key="{{key}}">
|
||
{{{var viewKey ../this}}}
|
||
</div>
|
||
{{/each}}
|
||
</div>
|
||
<div class="add-item-container margin-top-sm">
|
||
<a
|
||
role="button"
|
||
tabindex="0"
|
||
class="add-item"
|
||
title="{{translate 'Add'}}"
|
||
><span class="fas fa-plus"></span></a>
|
||
</div>
|
||
`;data(){var e=super.data();e.itemDataList=this.itemKeyList.map((e,t)=>({key:e.toString(),viewKey:this.composeViewKey(e),isLast:t===this.itemKeyList.length-1}));return e}setup(){super.setup();this.validations=[()=>this.validateRequired(),()=>this.validateValid()];this.addHandler("click",".add-item",()=>this.addItem());this.addHandler("click",".remove-item",(e,t)=>{this.removeItem(parseInt(t.dataset.key))})}prepare(){this.initItems();return this.createItemViews()}initItems(){this.itemKeyList=[];this.getItemListFromModel().forEach((e,t)=>{this.itemKeyList.push(t)})}createItemView(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")});return e})}createItemViews(){this.itemKeyList.forEach(e=>{this.clearView(this.composeViewKey(e))});if(!this.model.has(this.name))return Promise.resolve();let s=this.getItemListFromModel(),a=[];this.itemKeyList.forEach((e,t)=>{var i=s[t],i=this.createItemView(i,e);a.push(i)});return Promise.all(a)}getItemView(e){return this.getView(this.composeViewKey(e))}composeViewKey(e){return"item-"+e}getItemListFromModel(){return Espo.Utils.cloneDeep(this.model.get(this.name)||[])}addItem(){var e=this.getItemListFromModel();let t=null;e.length&&(t=e[e.length-1][1]);var i=[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($("<div>").addClass("item").attr("data-key",s));this.createItemView(i,s).then(e=>e.render()).then(()=>{this.trigger("change")})}removeItem(e){var t=this.itemKeyList.indexOf(e);if(-1!==e){var i=this.getItemListFromModel();this.itemKeyList.splice(t,1);i.splice(t,1);this.model.set(this.name,i,{ui:!0});this.clearView(this.composeViewKey(e));this.$el.find(`.item[data-key="${e}"`).remove();this.trigger("change")}}fetch(){let t=[];this.itemKeyList.forEach(e=>{t.push(this.getItemView(e).fetch())});var e={};e[this.name]=Espo.Utils.cloneDeep(t);0===e[this.name].length&&(e[this.name]=null);return e}validateRequired(){if(!this.isRequired())return!1;if(this.getItemListFromModel().length)return!1;var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,".add-item-container");return!0}validateValid(){if(!this.isRangesInvalid())return!1;var e=this.translate("fieldInvalid","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e,".add-item-container");return!0}isRangesInvalid(){var t=this.getItemListFromModel();for(let e=0;e<t.length;e++){var i=t[e];if(this.isRangeInvalid(i[0],i[1],!0))return!0;if(0!==e){var s=t[e-1];if(this.isRangeInvalid(s[1],i[0]))return!0;if("00:00"===s[1])return!0}}return!1}isRangeInvalid(e,t){var i,s,a=2<arguments.length&&void 0!==arguments[2]&&arguments[2];return null===e||null===t||(i=parseFloat(e.replace(":",".")),s=parseFloat(t.replace(":",".")),!(!a||i!==s||"00:00"===t))||(!a||"00:00"!==t||!i)&&s<i}}e.default=s});define("views/working-time-calendar/fields/time-ranges/item-edit",["exports","view","moment","ui/timepicker"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{templateContent=`
|
||
<div class="row">
|
||
<div class="start-container col-xs-5">
|
||
<input
|
||
class="form-control numeric-text"
|
||
type="text"
|
||
data-name="start"
|
||
value="{{start}}"
|
||
autocomplete="espo-start"
|
||
spellcheck="false"
|
||
>
|
||
</div>
|
||
<div class="start-container col-xs-1 center-align">
|
||
<span class="field-row-text-item"> – </span>
|
||
</div>
|
||
<div class="end-container col-xs-5">
|
||
<input
|
||
class="form-control numeric-text"
|
||
type="text"
|
||
data-name="end"
|
||
value="{{end}}"
|
||
autocomplete="espo-end"
|
||
spellcheck="false"
|
||
>
|
||
</div>
|
||
<div class="col-xs-1 center-align">
|
||
<a
|
||
role="button"
|
||
tabindex="0"
|
||
class="remove-item field-row-text-item"
|
||
data-key="{{key}}"
|
||
title="{{translate 'Remove'}}"
|
||
><span class="fas fa-times"></span></a>
|
||
</div>
|
||
</div>
|
||
`;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;startElement;endElement;startTimepicker;endTimepicker;data(){var e={};e.start=this.convertTimeToDisplay(this.value[0]);e.end=this.convertTimeToDisplay(this.value[1]);e.key=this.key;return e}setup(){this.value=this.options.value||[null,null];this.key=this.options.key;this.on("remove",()=>this.destroyTimepickers())}convertTimeToDisplay(e){var t;return e&&(t=(0,i.default)(e,"HH:mm"),t.isValid())?t.format(this.getDateTime().timeFormat):""}convertTimeFromDisplay(e){var t;return e&&(t=(0,i.default)(e,this.getDateTime().timeFormat),t.isValid())?t.format("HH:mm"):null}afterRender(){this.startElement=this.element.querySelector('[data-name="start"]');this.endElement=this.element.querySelector('[data-name="end"]');if(this.startElement){this.startTimepicker=this.initTimepicker(this.startElement);this.endTimepicker=this.initTimepicker(this.endElement);this.setMinTime();this.startTimepicker.addChangeEventListener(()=>this.setMinTime())}}setMinTime(){var e=this.startElement.value,t=this.convertTimeFromDisplay(e);"00:00"!==t?this.endTimepicker.setMaxTime(this.convertTimeToDisplay("24:00")):this.endTimepicker.setMaxTime(null);if(e){e=(0,i.default)(t,"HH:mm").add(this.minuteStep,"minute").format(this.getDateTime().timeFormat);this.endTimepicker.setMinTime(e)}else this.endTimepicker.setMinTime(null)}initTimepicker(e){var t=new s.default(e,{step:this.minuteStep,timeFormat:this.timeFormatMap[this.getDateTime().timeFormat]});t.addChangeEventListener(()=>this.trigger("change"));e.setAttribute("autocomplete","espo-time-range-item");return t}destroyTimepickers(){this.startTimepicker&&this.startTimepicker.destroy();this.endTimepicker&&this.endTimepicker.destroy()}fetch(){return[this.convertTimeFromDisplay(this.startElement.value),this.convertTimeFromDisplay(this.endElement.value)]}}e.default=r});define("views/working-time-calendar/fields/time-ranges/item-detail",["exports","view","moment"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{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){var t;return e&&(t=(0,i.default)(e,"HH:mm"),t.isValid())?t.format(this.getDateTime().timeFormat):""}}e.default=a});define("views/webhook/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{massActionList=["remove","massUpdate","export"]}e.default=s});define("views/webhook/fields/user",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{selectPrimaryFilterName="activeApi"}e.default=s});define("views/webhook/fields/event",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){let t=[];var e=this.getMetadata().getScopeObjectList().sort((e,t)=>e.localeCompare(t));e.forEach(e=>{t.push(e+".create");t.push(e+".update");t.push(e+".delete")});this.params.options=t}}e.default=s});define("views/user-security/modals/two-factor-sms",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="user-security/modals/two-factor-sms";className="dialog dialog-record";shortcutKeys={"Control+Enter":"apply"};setup(){this.addActionHandler("sendCode",()=>this.actionSendCode());this.buttonList=[{name:"apply",label:"Apply",style:"danger",hidden:!0,onClick:()=>this.actionApply()},{name:"cancel",label:"Cancel"}];this.headerHtml=" ";var e=this.getConfig().get("auth2FASmsCodeLength")||7;let t=new i.default;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(){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(){this.$sendCode.attr("disabled","disabled").addClass("disabled");Espo.Ajax.postRequest("TwoFactorSms/action/sendCode",{id:this.model.id,phoneNumber:this.internalModel.get("phoneNumber")}).then(()=>{this.showActionItem("apply");this.$pInfo.addClass("hidden");this.$pButton.addClass("hidden");this.$pInfoAfter.removeClass("hidden");this.getRecordView().setFieldReadOnly("phoneNumber");this.getRecordView().showField("code")}).catch(()=>{this.$sendCode.removeAttr("disabled").removeClass("disabled")})}getRecordView(){return this.getView("record")}actionApply(){var e=this.getRecordView().processFetch();if(e){this.model.set("code",e.code);this.hideActionItem("apply");this.hideActionItem("cancel");Espo.Ui.notify(this.translate("pleaseWait","messages"));this.model.save().then(()=>{Espo.Ui.notify(!1);this.trigger("done")}).catch(()=>{this.showActionItem("apply");this.showActionItem("cancel")})}}}e.default=a});define("views/user-security/modals/two-factor-email",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="user-security/modals/two-factor-email";className="dialog dialog-record";shortcutKeys={"Control+Enter":"apply"};setup(){this.addActionHandler("sendCode",()=>this.actionSendCode());this.buttonList=[{name:"apply",label:"Apply",style:"danger",hidden:!0,onClick:()=>this.actionApply()},{name:"cancel",label:"Cancel"}];this.headerHtml=" ";var e=this.getConfig().get("auth2FAEmailCodeLength")||7;let t=new i.default;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(){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(){this.$sendCode.attr("disabled","disabled").addClass("disabled");Espo.Ajax.postRequest("TwoFactorEmail/action/sendCode",{id:this.model.id,emailAddress:this.internalModel.get("emailAddress")}).then(()=>{this.showActionItem("apply");this.$pInfo.addClass("hidden");this.$pButton.addClass("hidden");this.$pInfoAfter.removeClass("hidden");this.getRecordView().setFieldReadOnly("emailAddress");this.getRecordView().showField("code")}).catch(()=>{this.$sendCode.removeAttr("disabled").removeClass("disabled")})}getRecordView(){return this.getView("record")}actionApply(){var e=this.getRecordView().processFetch();if(e){this.model.set("code",e.code);this.hideActionItem("apply");this.hideActionItem("cancel");Espo.Ui.notify(this.translate("pleaseWait","messages"));this.model.save().then(()=>{Espo.Ui.notify(!1);this.trigger("done")}).catch(()=>{this.showActionItem("apply");this.showActionItem("cancel")})}}}e.default=a});define("views/user-security/modals/totp",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="user-security/modals/totp";className="dialog dialog-record";shortcutKeys={"Control+Enter":"apply"};setup(){this.buttonList=[{name:"apply",label:"Apply",style:"danger",onClick:()=>this.actionApply()},{name:"cancel",label:"Cancel"}];this.headerHtml=" ";let t=new i.default;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=>{QRCode=e})}afterRender(){new QRCode(this.$el.find(".qrcode").get(0),{text:`otpauth://totp/${this.label}?secret=`+this.secret,width:256,height:256,colorDark:"#000000",colorLight:"#ffffff",correctLevel:QRCode.CorrectLevel.H})}getRecordView(){return this.getView("record")}actionApply(){var e=this.getRecordView().processFetch();if(e){this.model.set("code",e.code);this.hideActionItem("apply");this.hideActionItem("cancel");Espo.Ui.notify(this.translate("pleaseWait","messages"));this.model.save().then(()=>{Espo.Ui.notify(!1);this.trigger("done")}).catch(()=>{this.showActionItem("apply");this.showActionItem("cancel")})}}}e.default=a});define("views/user/password-change-request",["exports","view","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="user/password-change-request";data(){return{requestId:this.options.requestId,notFound:this.options.notFound,notFoundMessage:this.notFoundMessage}}setup(){this.addHandler("click","#btn-submit",()=>this.submit());var e=this.model=new i.default;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());e=this.baseUrl=window.location.href.split("?")[0];this.notFoundMessage=this.translate("passwordChangeRequestNotFound","messages","User").replace("{url}",e)}getFieldView(e){return this.getView(e)}submit(){this.getFieldView("password").fetchToModel();this.getFieldView("passwordConfirm").fetchToModel();var e=this.getFieldView("password").validate()||this.getFieldView("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();var t=e.url||this.baseUrl,i=document.createElement("a");i.href=t;i.innerText=this.translate("Login","labels","User");t=this.translate("passwordChangedByRequest","messages","User"),t=this.getHelper().escapeString(t)+" "+i.outerHTML;this.$el.find(".msg-box").removeClass("hidden").html('<span class="text-success">'+t+"</span>")}).catch(()=>e.removeClass("disabled"))}}}e.default=a});define("views/user/list",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{storeViewAfterUpdate=!1}e.default=s});define("views/user/detail",["exports","views/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.getUser().isPortal()&&(this.rootLinkDisabled=!0);if(this.model.id===this.getUser().id||this.getUser().isAdmin()){(this.getUserModel().isRegular()||this.getUserModel().isAdmin()||this.getUserModel().isPortal())&&this.addMenuItem("dropdown",{name:"preferences",label:"Preferences",action:"preferences",link:"#Preferences/edit/"+this.model.id,onClick:()=>this.actionPreferences()});if(this.getUserModel().isRegular()||this.getUserModel().isAdmin()){(this.getAcl().check("EmailAccountScope")&&this.model.id===this.getUser().id||this.getUser().isAdmin())&&this.addMenuItem("dropdown",{name:"emailAccounts",label:"Email Accounts",action:"emailAccounts",link:"#EmailAccount/list/userId="+this.model.id+"&userName="+encodeURIComponent(this.model.attributes.name),onClick:()=>this.actionEmailAccounts()});this.model.id===this.getUser().id&&this.getAcl().checkScope("ExternalAccount")&&this.addMenuItem("buttons",{name:"externalAccounts",label:"External Accounts",action:"externalAccounts",link:"#ExternalAccount",onClick:()=>this.actionExternalAccounts()})}}if(this.getAcl().checkScope("Calendar")&&(this.getUserModel().isRegular()||this.getUserModel().isAdmin())){var e=this.getAcl().checkPermission("userCalendar",this.getUserModel());e||"team"!==this.getAcl().getPermissionLevel("userCalendar")||this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",()=>{this.getAcl().checkPermission("userCalendar",this.getUserModel())&&this.showHeaderActionItem("calendar")});this.addMenuItem("buttons",{name:"calendar",iconHtml:'<span class="far fa-calendar-alt"></span>',text:this.translate("Calendar","scopeNames"),link:"#Calendar/show/userId="+this.model.id+"&userName="+encodeURIComponent(this.model.attributes.name),hidden:!e})}}getUserModel(){return this.model}actionPreferences(){this.getRouter().navigate("#Preferences/edit/"+this.model.id,{trigger:!0})}actionEmailAccounts(){this.getRouter().navigate(`#EmailAccount/list/userId=${this.model.id}&userName=`+encodeURIComponent(this.model.attributes.name),{trigger:!0})}actionExternalAccounts(){this.getRouter().navigate("#ExternalAccount",{trigger:!0})}}e.default=s});define("views/user/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{rowActionsView="views/user/record/row-actions/default";quickEditDisabled=!0;massActionList=["remove","massUpdate","export"];checkAllResultMassActionList=["massUpdate","export"];setupMassActionItems(){super.setupMassActionItems();if("ApiUser"===this.scope){this.removeMassAction("massUpdate");this.removeMassAction("export");this.layoutName="listApi"}"PortalUser"===this.scope&&(this.layoutName="listPortal");if(!this.getUser().isAdmin()){this.removeMassAction("massUpdate");this.removeMassAction("export")}}getModelScope(e){var t=this.collection.get(e);return t.isPortal()?"PortalUser":this.scope}}e.default=s});define("views/user/record/edit",["exports","views/record/edit","views/user/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{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||"";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(){if(this.isPasswordSendable()&&this.model.get("password"))this.showField("sendAccessInfo");else{this.hideField("sendAccessInfo");this.model.has("sendAccessInfo")&&this.model.set("sendAccessInfo",!1)}}controlSendAccessInfoFieldForNew(){var e=!1===this.recordHelper.getFieldStateParam("sendAccessInfo","hidden");if(this.isPasswordSendable()){this.showField("sendAccessInfo");e||this.model.set("sendAccessInfo",!0)}else{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(n){this.getHelper().layoutManager.get(this.model.entityType,this.options.layoutName||this.layoutName,e=>{var t,i,s=Espo.Utils.cloneDeep(e),a=[];a.push({label:"Teams and Access Control",name:"accessControl",rows:[[{name:"type"},{name:"isActive"}],[{name:"teams"},{name:"defaultTeam"}],[{name:"roles"},!1]]});a.push({label:"Portal",name:"portal",rows:[[{name:"portals"},{name:"accounts"}],[{name:"portalRoles"},{name:"contact"}]]});this.getUser().isAdmin()&&this.model.isPortal()&&a.push({label:"Misc",name:"portalMisc",rows:[[{name:"dashboardTemplate"},!1]]});(this.model.isAdmin()||this.model.isRegular())&&a.push({label:"Misc",name:"misc",rows:[[{name:"workingTimeCalendar"},{name:"layoutSet"}]]});this.type===this.TYPE_EDIT&&this.getUser().isAdmin()&&!this.model.isApi()&&a.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()&&a.push({name:"auth",rows:[[{name:"authMethod"},!1]]});let r=!1;for([t,i]of s.entries())if(i.tabBreak&&0<t){s.splice(t,0,...a);r=!0;break}r||s.push(...a);this.detailLayout=s;var o={type:"record",layout:this.convertDetailLayout(s)};n(o)})}getPasswordSendingMessage(){var e;return this.getConfig().get("outboundEmailFromAddress")?"":(e=this.translate("setupSmtpBefore","messages","User").replace("{url}","#Admin/outboundEmails"),e=this.getHelper().transformMarkdownInlineText(e),e)}fetch(){var e=super.fetch();if(!this.isNew&&"password"in e&&(""===e.password||null==e.password)){delete e.password;delete e.passwordConfirm;this.model.unset("password");this.model.unset("passwordConfirm")}return 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-quick",["exports","views/record/edit","views/user/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{sideView="views/record/edit-side";setup(){super.setup();i.default.prototype.setupNonAdminFieldsAccess.call(this);i.default.prototype.setupFieldAppearance.call(this)}controlFieldAppearance(){i.default.prototype.controlFieldAppearance.call(this)}}e.default=a});define("views/user/record/detail-quick",["exports","views/record/detail","views/user/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{sideView="views/user/record/detail-quick-side";bottomView=null;setup(){super.setup();i.default.prototype.setupNonAdminFieldsAccess.call(this);i.default.prototype.setupFieldAppearance.call(this)}controlFieldAppearance(){i.default.prototype.controlFieldAppearance.call(this)}}e.default=a});define("views/user/record/detail-quick-side",["exports","views/record/detail-side","views/user/record/detail-side"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setupPanels(){i.default.prototype.setupPanels.call(this)}}e.default=a});define("views/user/record/detail-bottom",["exports","views/record/detail-bottom"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupPanels(){super.setupPanels();let e=this.model;var t=this.getAcl().checkPermission("userCalendar",e);t||"team"!==this.getAcl().getPermissionLevel("userCalendar")||this.model.has("teamsIds")||this.listenToOnce(this.model,"sync",()=>{this.getAcl().checkPermission("userCalendar",e)&&this.onPanelsReady(()=>{this.showPanel("stream","acl")})});this.panelList.push({name:"stream",label:"Stream",view:"views/user/record/panels/stream",sticked:!1,hidden:!t});t||this.recordHelper.setPanelStateParam("stream","hiddenAclLocked",!0)}}e.default=s});define("views/user/record/row-actions/relationship-followers",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[],t=this.model;e.push({action:"quickView",label:"View",data:{id:this.model.id},link:`#${this.model.entityType}/view/`+this.model.id});(this.getUser().isAdmin()||"no"!==this.getAcl().getPermissionLevel("followerManagementPermission")||t.isPortal()&&"yes"===this.getAcl().getPermissionLevel("portalPermission")||this.model.id===this.getUser().id)&&e.push({action:"unlinkRelated",label:"Unlink",data:{id:this.model.id}});return e}}e.default=s});define("views/user/record/row-actions/default",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){let e="User";var t=this.model;t.isPortal()?e="PortalUser":t.isApi()&&(e="ApiUser");let i=[{action:"quickView",label:"View",data:{id:this.model.id,scope:e},link:`#${e}/view/`+this.model.id}];this.options.acl.edit&&i.push({action:"quickEdit",label:"Edit",data:{id:this.model.id,scope:e},link:`#${e}/edit/`+this.model.id});this.getAdditionalActionList().forEach(e=>i.push(e));return i}}e.default=s});define("views/user/record/panels/stream",["exports","views/stream/panel"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){var e=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"));super.setup();this.setupPermission(e)}setupPermission(t){var e=this.getAcl().checkPermission("message",t);if(!e){this.postDisabled=!0;null===e&&this.listenToOnce(this.model,"sync",async()=>{if(this.getAcl().checkPermission("message",t)){this.postDisabled=!1;await this.whenRendered();var e=this.element.querySelector(".post-container");e&&e.classList.remove("hidden")}})}}prepareNoteForPost(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")}}e.default=s});define("views/user/record/panels/default-side",["exports","views/record/panels/default-side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{complexCreatedDisabled=!0;complexModifiedDisabled=!0}e.default=s});define("views/user/modals/select-followers",["exports","views/modals/select-records"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){this.filterList=["active"];this.getAcl().getPermissionLevel("portalPermission")&&this.filterList.push("activePortal");super.setup()}}e.default=s});define("views/user/modals/security",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{templateContent='<div class="record no-side-margin">{{{record}}}</div>';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=$("<span>").append($("<span>").text(this.translate("Security")),' <span class="chevron-right"></span> ',$("<span>").text(this.userModel.get("userName")));let 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){if(this.model.get("auth2FA")){e.showField("auth2FAMethod");e.setFieldRequired("auth2FAMethod")}else{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){var t=this.getRecordView().processFetch();if(t){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){if(this.model.get("auth2FA")){var t=this.model.get("auth2FAMethod"),t=this.getMetadata().get(["app","authentication2FAMethods",t,"userApplyView"]);if(t){Espo.Ui.notifyWait();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()})})}else{e&&this.model.set("auth2FA",!1);this.processSave()}}else 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",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{templateContent='<div class="record no-side-margin">{{{record}}}</div>';className="dialog dialog-record";shortcutKeys={"Control+Enter":"apply"};setup(){this.buttonList=[{name:"apply",label:"Apply",style:"danger",onClick:()=>this.actionApply()},{name:"cancel",label:"Cancel"}];this.headerHtml=" ";this.userModel=this.options.userModel;var e=this.model=new i.default;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]]}]})}getRecordView(){return this.getView("record")}actionApply(){var e=this.getRecordView().processFetch();e&&this.trigger("proceed",e)}}e.default=a});define("views/user/modals/mass-update",["exports","views/modals/mass-update"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){"ApiUser"===this.options.scope?this.layoutName="massUpdateApi":"PortalUser"===this.options.scope&&(this.layoutName="massUpdatePortal");super.setup()}}e.default=s});define("views/user/modals/login-as",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{backdrop=!0;templateContent=`
|
||
<div class="well">
|
||
{{translate 'loginAs' category='messages' scope='User'}}
|
||
</div>
|
||
<a href="{{viewObject.url}}" class="text-large">{{translate 'Login Link' scope='User'}}</a>
|
||
`;setup(){this.$header=$("<span>").append($("<span>").text(this.model.get("name"))," ",$("<span>").addClass("chevron-right")," ",$("<span>").text(this.translate("Login")));this.url=`?entryPoint=loginAs&anotherUser=${this.options.anotherUser}&username=`+this.options.username}}e.default=s});define("views/user/modals/detail",["exports","views/modals/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{editDisabled=!0;getScope(){var e=this.model;return e.isPortal()?"PortalUser":"User"}}e.default=s});define("views/user/modals/access",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{cssName="user-access";multiple=!1;template="user/modals/access";backdrop=!0;styleMap={yes:"success",all:"success",account:"info",contact:"info",team:"info",own:"warning",no:"danger",enabled:"success",disabled:"danger","not-set":"default"};data(){return{valuePermissionDataList:this.getValuePermissionList(),levelListTranslation:this.getLanguage().get("Role","options","levelList")||{},styleMap:this.styleMap}}getValuePermissionList(){var e=this.getMetadata().get(["app","acl","valuePermissionList"],[]);let i=[];e.forEach(e=>{var t={};t.name=e;t.value=this.options.aclData[e];i.push(t)});return i}setup(){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,selector:".user-access-table"});this.headerText=this.translate("Access")}}e.default=s});define("views/user/fields/user-name",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.validations.push(()=>this.validateUserName())}afterRender(){super.afterRender();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(){return this.getConfig().get("userNameRegularExpression")||"[^a-z0-9-@_.s]"}validateUserName(){var e=this.model.get(this.name);if(e){var t=this.getUserNameRegularExpression(),t=new RegExp(t,"gi");if(t.test(e)){t=this.translate("fieldInvalid","messages").replace("{field}",this.getLabelText());this.showValidationMessage(t);return!0}}}}e.default=s});define("views/user/fields/teams",["exports","views/fields/link-multiple-with-role"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{forceRoles=!0;setup(){super.setup();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(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(e,t){t=t||this.nameHash[e]||e;var i=(this.columns[e]||{})[this.columnName]||"",s=$("<div>").append($("<a>").attr("href","#"+this.foreignScope+"/view/"+e).attr("data-id",e).text(t));if(i){i=this.getHelper().escapeString(i);s.append($("<span>").text(" "),$("<span>").addClass("text-muted middle-dot"),$("<span>").text(" "),$("<span>").addClass("text-muted").text(i))}return s.get(0).outerHTML}getJQSelect(e,i){var 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=$("<select>").addClass("role form-control input-sm pull-right").attr("data-id",e);t.forEach(e=>{var t=$("<option>").val(e).text(e);e===(i||"")&&t.attr("selected","selected");s.append(t)});return s}}e.default=s});define("views/user/fields/record-access-level",["exports","views/fields/bool"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getValueForDisplay(){var e=this.model.attributes.recordAccessLevels||{},t=this.name.substring("recordAccessLevel".length);return e[t]||!1}}e.default=s});define("views/user/fields/password",["exports","views/fields/password"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{validations=["required","strength","confirm"];init(){var e=[],t=(this.strengthParams=this.options.strengthParams||{passwordStrengthLength:this.getConfig().get("passwordStrengthLength"),passwordStrengthLetterCount:this.getConfig().get("passwordStrengthLetterCount"),passwordStrengthNumberCount:this.getConfig().get("passwordStrengthNumberCount"),passwordStrengthBothCases:this.getConfig().get("passwordStrengthBothCases"),passwordStrengthSpecialCharacterCount:this.getConfig().get("passwordStrengthSpecialCharacterCount")},this.strengthParams.passwordStrengthLength),t=(t&&e.push("* "+this.translate("passwordStrengthLength","messages","User").replace("{length}",t.toString())),this.strengthParams.passwordStrengthLetterCount),t=(t&&e.push("* "+this.translate("passwordStrengthLetterCount","messages","User").replace("{count}",t.toString())),this.strengthParams.passwordStrengthNumberCount),t=(t&&e.push("* "+this.translate("passwordStrengthNumberCount","messages","User").replace("{count}",t.toString())),this.strengthParams.passwordStrengthBothCases);t&&e.push("* "+this.translate("passwordStrengthBothCases","messages","User"));this.strengthParams.passwordStrengthSpecialCharacterCount&&e.push("* "+this.translate("passwordStrengthSpecialCharacterCount","messages","User").replace("{count}",this.strengthParams.passwordStrengthSpecialCharacterCount.toString()));if(e.length){this.tooltip=!0;this.tooltipText=this.translate("Requirements","labels","User")+":\n"+e.join("\n")}super.init()}validateStrength(){if(this.model.get(this.name)){var e=this.model.get(this.name),s=this.strengthParams.passwordStrengthLength;if(s&&e.length<s){s=this.translate("passwordStrengthLength","messages","User").replace("{length}",s.toString());this.showValidationMessage(s);return!0}s=this.strengthParams.passwordStrengthLetterCount;if(s){let t=0;e.split("").forEach(e=>{e.toLowerCase()!==e.toUpperCase()&&t++});if(t<s){s=this.translate("passwordStrengthLetterCount","messages","User").replace("{count}",s.toString());this.showValidationMessage(s);return!0}}s=this.strengthParams.passwordStrengthNumberCount;if(s){let t=0;e.split("").forEach(e=>{"0"<=e&&e<="9"&&t++});if(t<s){s=this.translate("passwordStrengthNumberCount","messages","User").replace("{count}",s.toString());this.showValidationMessage(s);return!0}}s=this.strengthParams.passwordStrengthBothCases;if(s){let t=0,i=(e.split("").forEach(e=>{e.toLowerCase()!==e.toUpperCase()&&e===e.toUpperCase()&&t++}),0);e.split("").forEach(e=>{e.toLowerCase()!==e.toUpperCase()&&e===e.toLowerCase()&&i++});if(!t||!i){s=this.translate("passwordStrengthBothCases","messages","User");this.showValidationMessage(s);return!0}}s=this.strengthParams.passwordStrengthSpecialCharacterCount;if(s){let t=0;e.split("").forEach(e=>{"'-!\"#$%&()*,./:;?@[]^_`{|}~+<=>".includes(e)&&t++});if(t<s){e=this.translate("passwordStrengthSpecialCharacterCount","messages","User").replace("{count}",s.toString());this.showValidationMessage(e);return!0}}}}}e.default=s});define("views/user/fields/name",["exports","views/fields/person-name"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="user/fields/name/list-link";listLinkTemplate="user/fields/name/list-link";data(){var e=this.model;return{...super.data(),avatar:this.getAvatarHtml(),frontScope:e.isPortal()?"PortalUser":"User",isOwn:this.model.id===this.getUser().id}}getAvatarHtml(){return this.getHelper().getAvatarHtml(this.model.id,"small",20,"avatar-link")}}e.default=s});define("views/user/fields/generate-password",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<button
|
||
type="button"
|
||
class="btn btn-default"
|
||
data-action="generatePassword"
|
||
>{{translate 'Generate' scope='User'}}</button>`;events={'click [data-action="generatePassword"]':function(){this.actionGeneratePassword()}};setup(){super.setup();this.listenTo(this.model,"change:password",(e,t,i)=>{i.isGenerated||(void 0!==t?this.model.set("passwordPreview",null):this.model.unset("passwordPreview"))});this.strengthParams=this.options.strengthParams||{};this.passwordStrengthLength=this.strengthParams.passwordStrengthLength??this.getConfig().get("passwordStrengthLength")??null;this.passwordStrengthLetterCount=this.strengthParams.passwordStrengthLetterCount??this.getConfig().get("passwordStrengthLetterCount")??null;this.passwordStrengthNumberCount=this.strengthParams.passwordStrengthNumberCount??this.getConfig().get("passwordStrengthNumberCount")??null;this.passwordStrengthSpecialCharacterCount=this.strengthParams.passwordStrengthSpecialCharacterCount??this.getConfig().get("passwordStrengthSpecialCharacterCount")??null;this.passwordGenerateLength=this.strengthParams.passwordGenerateLength??this.getConfig().get("passwordGenerateLength")??null;this.passwordGenerateLetterCount=this.strengthParams.passwordGenerateLetterCount??this.getConfig().get("passwordGenerateLetterCount")??null;this.passwordGenerateNumberCount=this.strengthParams.passwordGenerateNumberCount??this.getConfig().get("passwordGenerateNumberCount")??null}fetch(){return{}}actionGeneratePassword(){let e=this.passwordStrengthLength,t=this.passwordStrengthLetterCount,i=this.passwordStrengthNumberCount;var s=this.passwordStrengthSpecialCharacterCount,a=this.passwordGenerateLength||10,r=this.passwordGenerateLetterCount||4,o=this.passwordGenerateNumberCount||2;e=void 0===e?a:e;t=void 0===t?r:t;i=void 0===i?o:i;e<a&&(e=a);t<r&&(t=r);i<o&&(i=o);a=this.generatePassword(e,t,i,!0,s);this.model.set({password:a,passwordConfirm:a,passwordPreview:a},{isGenerated:!0})}generatePassword(e,t,i,s,a){let r=["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","0123456789","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz","'-!\"#$%&()*,./:;?@[]^_`{|}~+<=>"],o=0,n=0;if(s){o=1;n=1;2<=t?t-=2:t=0}let l=e-(t+i+o+n+a);l<0&&(l=0);var d=[t,i,l,o,n,a],d=d.map((e,t)=>Array(e).fill(r[t]).map(e=>{var t=new Uint32Array(1),t=(crypto.getRandomValues(t),Math.floor(t[0]/4294967296*e.length));return e[t]}).join("")).concat();return(e=>{let t=e.length;for(;0!==t;){var i=new Uint32Array(1),i=(crypto.getRandomValues(i),Math.floor(i[0]/4294967296*t)),s=(--t,e[t]);e[t]=e[i];e[i]=s}return e})(d).join("")}}e.default=s});define("views/user/fields/default-team",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.validations.push("isUsers")}getOnEmptyAutocomplete(){let t=this.model.get("teamsNames")||{};var e=this.model.getTeamIdList().map(e=>({id:e,name:t[e]||e}));return Promise.resolve(e)}validateIsUsers(){var e=this.model.get("defaultTeamId");if(!e)return!1;if(!this.model.has("teamsIds"))return!1;if(this.model.getTeamIdList().includes(e))return!1;e=this.translate("defaultTeamIsNotUsers","messages","User");this.showValidationMessage(e);return!0}}e.default=s});define("views/user/fields/contact",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{select(e){super.select(e);var t={};if(e.get("accountId")){var i={};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");this.model.isNew()&&!this.model.get("userName")&&t.emailAddress&&(t.userName=t.emailAddress);this.model.set(t)}}e.default=s});define("views/user/fields/avatar",["exports","views/fields/image","model","views/fields/colorpicker"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{getAttributeList(){return this.isEditMode()?[...super.getAttributeList(),"avatarColor"]:[]}setup(){super.setup();this.on("after:inline-save",()=>{this.suspendCache=!0;this.reRender()});this.setupSub()}setupSub(){this.subModel=new i.default;let s=()=>{this.subModel.set({color:this.model.attributes.avatarColor})};s();this.listenTo(this.model,"change:avatarColor",(e,t,i)=>{i.fromView!==this&&s()});this.listenTo(this.subModel,"change",(e,t)=>{t.ui&&this.trigger("change")})}onEditModeSet(){if(this.hasColor())return this.colorView=new s.default({name:"color",model:this.subModel,labelText:this.translate("avatarColor","fields","User"),mode:"edit"}),this.assignView("colorField",this.colorView,'[data-sub-field="color"]')}afterRender(){super.afterRender();if(this.isEditMode()){var e=document.createElement("div");e.setAttribute("data-sub-field","color");e.classList.add("avatar-field-color");this.element.appendChild(e);this.colorView&&this.colorView.render().then(()=>{var e=this.colorView.element.querySelector("input");e.placeholder=this.translate("avatarColor","fields","User")})}}hasColor(){var e;return(!this.recordHelper||!this.recordHelper.getFieldStateParam("avatarColor","readOnly"))&&(e=this.model.get("type"),["regular","admin","api"].includes(e))}fetch(){return this.hasColor()?{...super.fetch(),avatarColor:this.subModel.attributes.color}:super.fetch()}handleUploadingFile(t){return new Promise((i,s)=>{var e=new FileReader;e.onload=e=>{this.createView("crop","views/modals/image-crop",{contents:e.target.result}).then(e=>{e.render();let t=!1;this.listenToOnce(e,"crop",e=>{t=!0;setTimeout(()=>{fetch(e).then(e=>e.blob()).then(e=>{i(new File([e],"avatar.jpg",{type:"image/jpeg"}))})},10)});this.listenToOnce(e,"remove",()=>{if(!t){setTimeout(()=>this.render(),10);s()}this.clearView("crop")})})};e.readAsDataURL(t)})}getValueForDisplay(){if(!this.isReadMode())return"";var e=this.model.get(this.idName),t=this.model.id;let i=this.cacheTimestamp=this.cacheTimestamp||Date.now(),s=(this.suspendCache&&(i=Date.now()),this.getBasePath()+"?entryPoint=avatar&size="+this.previewSize+"&id="+t+"&t="+i+"&attachmentId="+(e||"false"));var a=$("<img>").attr("src",s).attr("alt",this.labelText).css({maxWidth:(this.imageSizes[this.previewSize]||{})[0],maxHeight:(this.imageSizes[this.previewSize]||{})[1]});if(!this.isDetailMode()){this.getCache()&&(i=this.getCache().get("app","timestamp"));let e=`${this.getBasePath()}?entryPoint=avatar&size=${this.previewSize}&id=${t}&t=`+i;a.attr("width","16").attr("src",e).css("maxWidth","16px")}return(e?$("<a>").attr("data-id",e).attr("data-action","showImagePreview").attr("href",this.getBasePath()+"?entryPoint=image&id="+e).append(a):a).get(0).outerHTML}}e.default=r});define("views/user/fields/auto-follow-entity-type-list",["exports","views/fields/multi-enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){this.params.options=Object.keys(this.getMetadata().get("scopes")).filter(e=>this.getMetadata().get(`scopes.${e}.entity`)&&this.getMetadata().get(`scopes.${e}.stream`)).sort((e,t)=>this.translate(e,"scopeNamesPlural").localeCompare(this.translate(t,"scopeNamesPlural")));super.setup()}}e.default=s});define("views/template/record/edit",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{saveAndContinueEditingAction=!0;setup(){super.setup();this.model.isNew()||this.setFieldReadOnly("entityType");this.model.get("entityType")?this.showField("variables"):this.hideField("variables");if(this.model.isNew()){let s={};this.listenTo(this.model,"change:entityType",()=>{var r=this.model.get("entityType");if(r){this.showField("variables");if(r in s){this.model.set("header",s[r].header);this.model.set("body",s[r].body);this.model.set("footer",s[r].footer);this.model.set("style",s[r].style)}else{let e,t,i,s=null,a=null;if(this.getMetadata().get(["entityDefs","Template","defaultTemplates",r]))s=r;else{r=this.getMetadata().get(["scopes",r,"type"]);r&&this.getMetadata().get(["entityDefs","Template","defaultTemplates",r])&&(s=r)}if(s){e=this.getMetadata().get(["entityDefs","Template","defaultTemplates",s,"header"]);t=this.getMetadata().get(["entityDefs","Template","defaultTemplates",s,"body"]);i=this.getMetadata().get(["entityDefs","Template","defaultTemplates",s,"footer"]);a=this.getMetadata().get(["entityDefs","Template","defaultTemplates",s,"style"])}t=t||null;e=e||null;i=i||null;this.model.set("body",t);this.model.set("header",e);this.model.set("footer",i);this.model.set("style",a)}}else{this.model.set("header",null);this.model.set("body",null);this.model.set("footer",null);this.hideField("variables")}});this.listenTo(this.model,"change",(e,t)=>{if(t.ui&&(this.model.hasChanged("header")||this.model.hasChanged("body")||this.model.hasChanged("footer")||this.model.hasChanged("style"))){var i=this.model.get("entityType");i&&(s[i]={header:this.model.get("header"),body:this.model.get("body"),footer:this.model.get("footer"),style:this.model.get("style")})}})}}}e.default=s});define("views/template/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{saveAndContinueEditingAction=!0;setup(){super.setup();this.hideField("variables");this.on("after:set-edit-mode",()=>this.showField("variables"));this.on("after:set-detail-mode",()=>this.hideField("variables"))}}e.default=s});define("views/template/fields/variables",["exports","views/fields/base","ui/select"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{inlineEditDisabled=!0;detailTemplate="template/fields/variables/detail";editTemplate="template/fields/variables/edit";data(){return{attributeList:this.attributeList,entityType:this.model.get("entityType"),translatedOptions:this.translatedOptions}}setup(){this.addHandler("change",'[data-name="variables"]',()=>{var e=this.$el.find('[data-name="variables"]').val(),t=this.$el.find('[data-name="copy"]');""!==e?this.textVariables[e]?t.val("{{{"+e+"}}}"):t.val("{{"+e+"}}"):t.val("")});this.setupAttributeList();this.setupTranslatedOptions();this.listenTo(this.model,"change:entityType",()=>{this.setupAttributeList();this.setupTranslatedOptions();this.reRender()})}setupAttributeList(){this.translatedOptions={};let n=this.model.get("entityType");var e=this.getFieldManager().getEntityTypeFieldList(n);let s=[],t=(e.forEach(e=>{var t=this.getMetadata().get(["entityAcl",n,"fields",e])||{},i=this.getMetadata().get(["entityDefs",n,"fields",e])||{};(t.onlyAdmin||t.forbidden||t.internal||i.disabled||i.utility||i.directAccessDisabled&&!i.loaderClassName||i.templatePlaceholderDisabled)&&s.push(e)}),this.getFieldManager().getEntityTypeAttributeList(n)||[]),i=Espo.Utils.clone(this.getAcl().getScopeForbiddenAttributeList(n));s.forEach(e=>{this.getFieldManager().getEntityTypeFieldAttributeList(n,e).forEach(e=>{i.push(e)})});t=t.filter(e=>{if(!~i.indexOf(e)){var t=this.getMetadata().get(["entityDefs",n,"fields",e,"type"]);if("map"!==t)return!0}});t.push("id");"personName"!==this.getMetadata().get(`entityDefs.${n}.fields.name.type`)||~t.indexOf("name")||t.unshift("name");this.addAdditionalPlaceholders(n,t);t=t.sort((e,t)=>this.translate(e,"fields",n).localeCompare(this.translate(t,"fields",n)));this.attributeList=t;this.textVariables={};this.attributeList.forEach(e=>{~["text","wysiwyg"].indexOf(this.getMetadata().get(["entityDefs",n,"fields",e,"type"]))&&(this.textVariables[e]=!0)});~this.attributeList.indexOf("now")||this.attributeList.unshift("now");~this.attributeList.indexOf("today")||this.attributeList.unshift("today");t.unshift("pagebreak");this.attributeList.unshift("");let l=this.getMetadata().get(`entityDefs.${n}.links`)||{};e=Object.keys(l).sort((e,t)=>this.translate(e,"links",n).localeCompare(this.translate(t,"links",n)));e.forEach(r=>{var o=l[r].type;if("belongsTo"===o||"hasOne"===o){let a=l[r].entity;if(a&&!l[r].disabled&&!l[r].utility&&!(this.getMetadata().get(["entityAcl",n,"links",r,"onlyAdmin"])||this.getMetadata().get(["entityAcl",n,"links",r,"forbidden"])||this.getMetadata().get(["entityAcl",n,"links",r,"internal"]))){o=this.getFieldManager().getEntityTypeFieldList(a);let s=[],e=(o.forEach(e=>{var t=this.getMetadata().get(["entityAcl",a,"fields",e])||{},i=this.getMetadata().get(["entityDefs",a,"fields",e])||{};(t.onlyAdmin||t.forbidden||t.internal||i.disabled||i.utility||i.directAccessDisabled||i.templatePlaceholderDisabled)&&s.push(e)}),this.getFieldManager().getEntityTypeAttributeList(a)||[]),i=Espo.Utils.clone(this.getAcl().getScopeForbiddenAttributeList(a));s.forEach(e=>{this.getFieldManager().getEntityTypeFieldAttributeList(a,e).forEach(e=>{i.push(e)})});e=e.filter(e=>{if(!~i.indexOf(e)){var t=this.getMetadata().get(["entityDefs",a,"fields",e,"type"]);if("map"!==t)return!0}});e.push("id");"personName"===this.getMetadata().get(`entityDefs.${a}.fields.name.type`)&&e.unshift("name");let t=Espo.Utils.clone(e);this.addAdditionalPlaceholders(a,e,r,n);e.sort((e,t)=>this.translate(e,"fields",a).localeCompare(this.translate(t,"fields",a)));e.forEach(e=>{~t.indexOf(e)?this.attributeList.push(r+"."+e):this.attributeList.push(e)});e.forEach(e=>{var t=r+"."+e;~["text","wysiwyg"].indexOf(this.getMetadata().get(["entityDefs",a,"fields",e,"type"]))&&(this.textVariables[t]=!0)})}}});return this.attributeList}addAdditionalPlaceholders(t,i,s,a){let r;function o(t,i){for(let e=0;e<t.length;e++)t[e]===i&&t.splice(e,1)}var n,l=this.getMetadata().get(["entityDefs",t,"fields"])||{};for(n in l){var d=l[n].type;let e=n;s&&(e=s+"."+e);if("image"===d){o(i,n+"Name");o(i,n+"Id");r="imageTag "+e+"Id";i.push(r);this.translatedOptions[r]=this.translate(n,"fields",t);s&&(this.translatedOptions[r]=this.translate(s,"links",a)+" . "+this.translatedOptions[r])}else if("barcode"===d){o(i,n);d=this.getMetadata().get(["entityDefs",t,"fields",n,"codeType"]);r=`barcodeImage ${e} type='${d}'`;i.push(r);this.translatedOptions[r]=this.translate(n,"fields",t);s&&(this.translatedOptions[r]=this.translate(s,"links",a)+" . "+this.translatedOptions[r])}}}setupTranslatedOptions(){let o=this.model.get("entityType");this.attributeList.forEach(s=>{var a=s.split(".")[0];if(~["today","now","pagebreak"].indexOf(s)&&!this.getMetadata().get(["entityDefs",o,"fields",s]))this.translatedOptions[s]=this.getLanguage().translateOption(s,"placeholders","Template");else{let e=s,t=o,i=!1;if(~s.indexOf(".")){i=!0;e=s.split(".")[1];t=this.getMetadata().get(`entityDefs.${o}.links.${a}.entity`)}if(!this.translatedOptions[s]){this.translatedOptions[s]=this.translate(e,"fields",t);if(e.indexOf("Id")===e.length-2){var r=e.substr(0,e.length-2);this.getMetadata().get(["entityDefs",t,"fields",r])&&(this.translatedOptions[s]=this.translate(r,"fields",t)+" ("+this.translate("id","fields")+")")}else if(e.indexOf("Name")===e.length-4){r=e.substr(0,e.length-4);this.getMetadata().get(["entityDefs",t,"fields",r])&&(this.translatedOptions[s]=this.translate(r,"fields",t)+" ("+this.translate("name","fields")+")")}else if(e.indexOf("Type")===e.length-4){r=e.substr(0,e.length-4);this.getMetadata().get(["entityDefs",t,"fields",r])&&(this.translatedOptions[s]=this.translate(r,"fields",t)+" ("+this.translate("type","fields")+")")}if(e.indexOf("Ids")===e.length-3){r=e.substr(0,e.length-3);this.getMetadata().get(["entityDefs",t,"fields",r])&&(this.translatedOptions[s]=this.translate(r,"fields",t)+" ("+this.translate("ids","fields")+")")}else if(e.indexOf("Names")===e.length-5){r=e.substr(0,e.length-5);this.getMetadata().get(["entityDefs",t,"fields",r])&&(this.translatedOptions[s]=this.translate(r,"fields",t)+" ("+this.translate("names","fields")+")")}else if(e.indexOf("Types")===e.length-5){r=e.substr(0,e.length-5);this.getMetadata().get(["entityDefs",t,"fields",r])&&(this.translatedOptions[s]=this.translate(r,"fields",t)+" ("+this.translate("types","fields")+")")}i&&(this.translatedOptions[s]=this.translate(a,"links",o)+" . "+this.translatedOptions[s])}}})}afterRender(){super.afterRender();this.mode===this.MODE_EDIT&&i.default.init(this.$el.find('[data-name="variables"]'))}fetch(){}}e.default=a});define("views/template/fields/style",["exports","views/fields/text"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let s;class a extends t.default{detailTemplateContent=`
|
||
{{#if isNotEmpty}}
|
||
<div id="{{containerId}}">{{value}}</div>
|
||
{{else}}
|
||
<span class="none-value">{{translate 'None'}}</span>
|
||
{{/if}}
|
||
`;editTemplateContent=`
|
||
<div id="{{containerId}}">{{value}}</div>
|
||
`;height=46;maxLineDetailCount=80;maxLineEditCount=200;setup(){super.setup();this.height=this.options.height||this.params.height||this.height;this.maxLineDetailCount=this.options.maxLineDetailCount||this.params.maxLineDetailCount||this.maxLineDetailCount;this.maxLineEditCount=this.options.maxLineEditCount||this.params.maxLineEditCount||this.maxLineEditCount;this.containerId="editor-"+Math.floor(1e4*Math.random()+1).toString();this.mode!==this.MODE_EDIT&&this.mode!==this.MODE_DETAIL||this.wait(this.requireAce());this.on("remove",()=>{this.editor&&this.editor.destroy()})}requireAce(){return Espo.loader.requirePromise("lib!ace").then(e=>{s=e;var t=[Espo.loader.requirePromise("lib!ace-ext-language_tools"),Espo.loader.requirePromise("lib!ace-mode-css")];this.getThemeManager().getParam("isDark")&&t.push(Espo.loader.requirePromise("lib!ace-theme-tomorrow_night"));return Promise.all(t)})}data(){var e=super.data();e.containerId=this.containerId;return e}afterRender(){super.afterRender();this.$editor=this.$el.find("#"+this.containerId);if(this.$editor.length&&(this.mode===this.MODE_EDIT||this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST)){this.$editor.css("fontSize","var(--font-size-base)");this.mode===this.MODE_EDIT&&this.$editor.css("minHeight",this.height+"px");var e=this.editor=s.edit(this.containerId);e.setOptions({fontFamily:"var(--font-family-monospace)"});e.setFontSize("var(--font-size-base)");e.container.style.lineHeight="var(--line-height-computed)";e.renderer.updateFontSize();e.setOptions({maxLines:this.mode===this.MODE_EDIT?this.maxLineEditCount:this.maxLineDetailCount,enableLiveAutocompletion:!0});this.getThemeManager().getParam("isDark")&&e.setOptions({theme:"ace/theme/tomorrow_night"});if(this.isEditMode()){e.getSession().on("change",()=>{this.trigger("change",{ui:!0})});e.getSession().setUseWrapMode(!0)}if(this.isReadMode()){e.setReadOnly(!0);e.renderer.$cursorLayer.element.style.display="none";e.renderer.setShowGutter(!1)}e.setShowPrintMargin(!1);e.getSession().setUseWorker(!1);e.commands.removeCommand("find");e.setHighlightActiveLine(!1);var t=s.require("ace/mode/css").Mode;e.session.setMode(new t)}}fetch(){var e={};e[this.name]=this.editor.getValue()||null;return e}}e.default=a});define("views/template/fields/font-face",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){var e=this.getConfig().get("pdfEngine")||"Dompdf",e=this.getMetadata().get(["app","pdfEngines",e,"fontFaceList"])||[],e=Espo.Utils.clone(e);e.unshift("");this.params.options=e}}e.default=s});define("views/template/fields/entity-type",["exports","views/fields/entity-type"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkAvailability(e){var t=this.scopesMetadataDefs[e]||{};return!!t.pdfTemplate||!(!t.entity||!t.object)}}e.default=s});define("views/template/fields/body",["exports","views/fields/wysiwyg"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{htmlPurificationForEditDisabled=!0;noStylesheet=!0;useIframe=!0;tableClassName="bordered";handlebars=!0}e.default=s});define("views/team/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{quickDetailDisabled=!0;quickEditDisabled=!0;checkAllResultDisabled=!0}e.default=s});define("views/team/record/edit",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{}e.default=s});define("views/team/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{}e.default=s});define("views/team/modals/detail",["exports","views/modals/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{editDisabled=!0}e.default=s});define("views/stream/message",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{data(){return this.dataForTemplate}setup(){let e=this.options.messageTemplate;var t,i=Espo.Utils.clone(this.options.messageData||{});this.dataForTemplate={};for(t in i){var s=i[t]||"";if(0===t.indexOf("html:")){t=t.substring(5);this.dataForTemplate[t]=s;e=e.replace("{"+t+"}","{{{"+t+"}}}")}else if(s instanceof jQuery){this.dataForTemplate[t]=s.get(0).outerHTML;e=e.replace("{"+t+"}","{{{"+t+"}}}")}else if(s instanceof Element){this.dataForTemplate[t]=s.outerHTML;e=e.replace("{"+t+"}","{{{"+t+"}}}")}else if(s.indexOf)if(0===s.indexOf("field:")){var a=s.substring(6),a=(this.createField(t,a),this.getHelper().escapeString(t));e=e.replace("{"+t+"}",`<span data-key="${a}">{{{${t}}}}</span>`)}else{this.dataForTemplate[t]=s;e=e.replace(`{${t}}`,`{{${t}}}`)}}this.templateContent=e}createField(e,t,i,s){i=i||this.model.getFieldType(t)||"base";this.createView(e,this.getFieldManager().getViewName(i),{model:this.model,defs:{name:t,params:s||{}},mode:"detail",readOnly:!0,selector:`[data-key="${e}"]`})}}e.default=s});define("views/stream/record/edit",["exports","views/record/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/record/edit";postingMode=!1;dependencyDefs={targetType:{map:{users:[{action:"hide",fields:["teams","portals"]},{action:"show",fields:["users"]},{action:"setNotRequired",fields:["teams","portals"]},{action:"setRequired",fields:["users"]}],teams:[{action:"hide",fields:["users","portals"]},{action:"show",fields:["teams"]},{action:"setRequired",fields:["teams"]},{action:"setNotRequired",fields:["users","portals"]}],portals:[{action:"hide",fields:["users","teams"]},{action:"show",fields:["portals"]},{action:"setRequired",fields:["portals"]},{action:"setNotRequired",fields:["users","teams"]}]},default:[{action:"hide",fields:["teams","users","portals"]},{action:"setNotRequired",fields:["teams","users","portals"]}]}};setup(){super.setup();this.seed=this.model.clone();var e=["self"];this.model.set("type","Post");this.model.set("targetType","self");var t=this.getAcl().getPermissionLevel("message"),i=this.getAcl().getPermissionLevel("portal");if("team"===t||"all"===t){e.push("users");e.push("teams")}"all"===t&&e.push("all");if("yes"===i){e.push("portals");~e.indexOf("users")||e.push("users")}this.createField("targetType","views/fields/enum",{options:e});this.createField("users","views/note/fields/users",{});this.createField("teams","views/fields/teams",{});this.createField("portals","views/fields/link-multiple",{});this.createField("post","views/note/fields/post",{required:!0,rowsMin:1,noResize:!0});this.createField("attachments","views/stream/fields/attachment-multiple",{});this.listenTo(this.model,"change",()=>{this.postingMode&&this.setConfirmLeaveOut(!0)})}disablePostingMode(){this.postingMode=!1;this.$el.find(".post-control").addClass("hidden");this.setConfirmLeaveOut(!1);$("body").off("click.stream-create-post");this.getFieldView("post").$element.prop("rows",1)}enablePostingMode(){this.$el.find(".post-control").removeClass("hidden");if(!this.postingMode){var e=$("body");e.off("click.stream-create-post");e.on("click.stream-create-post",e=>{!$.contains(window.document.body,e.target)||$.contains(this.$el.get(0),e.target)||$(e.target).closest(".modal-dialog").length||!this.getFieldView("post")||""!==this.getFieldView("post").$element.val()||(this.model.get("attachmentsIds")||[]).length||this.disablePostingMode()})}this.postingMode=!0}afterRender(){this.$postButton=this.$el.find("button.post");var e=this.getFieldView("post");if(e){this.stopListening(e,"add-files");this.listenTo(e,"add-files",e=>{this.enablePostingMode();var t=this.getFieldView("attachments");t&&t.uploadFiles(e)})}}validate(){let e=super.validate();var t=this.model.get("post")||"";""!==t.trim()||(this.model.get("attachmentsIds")||[]).length||(e=!0);return e}post(){this.save()}beforeBeforeSave(){this.disablePostButton()}beforeSave(){Espo.Ui.notifyWait()}afterSave(){Espo.Ui.success(this.translate("Posted"))}afterNotValid(){this.enablePostButton()}disablePostButton(){this.trigger("disable-post-button");this.$postButton.addClass("disable").attr("disabled","disabled")}enablePostButton(){this.trigger("enable-post-button");this.$postButton.removeClass("disable").removeAttr("disabled")}}e.default=s});define("views/stream/record/row-actions/update",["exports","views/stream/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.addActionHandler("restore",()=>this.actionRestore())}getActionList(){var e=super.getActionList();this.hasRestore()&&e.unshift({label:"Restore",data:{id:this.model.id},action:"restore"});return e}hasRestore(){if("listAuditLog"!==this.options.listType)return!1;var e=this.model.get("parentType");if(this.getMetadata().get(`clientDefs.${e}.editDisabled`))return!1;if(!this.getAcl().checkScope(e,"edit"))return!1;var t,i=this.getFieldList();if(!i.length)return!1;for(t of i)if(!this.getAcl().checkField(e,t,"edit"))return!1;return!0}async actionRestore(){await this.confirm({message:this.translate("confirmRestoreFromAudit","messages"),confirmText:this.translate("Proceed")});var e=this.model.get("parentType"),t=this.model.get("parentId");this.getRouter().dispatch(e,"edit",{id:t,attributes:this.getPreviousAttributes(),highlightFieldList:this.getFieldList()});this.getRouter().navigate(`#${e}/edit/`+t,{trigger:!1})}getFieldList(){var e=this.model.get("data")||{};return e.fields||[]}getPreviousAttributes(){var e=this.model.get("data")||{},e=e.attributes||{};return e.was||{}}}e.default=s});define("views/stream/record/row-actions/detached",["exports","views/stream/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isDetached=!0}e.default=s});define("views/stream/notes/update",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/update";messageName="update";rowActionsView="views/stream/record/row-actions/update";statusText;statusStyle;isExpanded=!1;data(){var e=this.fieldDataList.map(e=>e.label).join(", ");return{...super.data(),fieldDataList:this.fieldDataList,parentType:this.model.get("parentType"),iconHtml:this.getIconHtml(),fieldsString:e,statusText:this.statusText,statusStyle:this.statusStyle}}init(){this.getUser().isAdmin()&&(this.isRemovable=!0);super.init()}afterRender(){super.afterRender();if(this.isExpanded){this.isExpanded=!1;this.toggleDetails()}}setup(){this.addActionHandler("expandDetails",()=>this.toggleDetails());this.createMessage();let l=this.model.attributes.data;var e=this.model.attributes.parentType;if(null!=l.value){var t=this.statusField=this.getMetadata().get(`scopes.${e}.statusField`)??"",i=l.value;this.statusStyle=this.getMetadata().get(`entityDefs.${e}.fields.${t}.style.`+i)||"default";this.statusText=this.getLanguage().translateOption(i,t,this.model.attributes.parentType)}this.wait(!0);this.getModelFactory().create(e).then(r=>{let o=r,n=r.clone();l.attributes=l.attributes||{};o.set(l.attributes.was);n.set(l.attributes.became);this.fieldDataList=[];var e=this.fieldList=l.fields??[];e.forEach(e=>{var t,i=r.getFieldType(e)||"base",i=r.getFieldParam(e,"auditView")??r.getFieldParam(e,"view")??this.getFieldManager().getViewName(i),s=this.getFieldManager().getEntityTypeFieldAttributeList(r.entityType,e);let a=!1;for(t of s)if(t in l.attributes.was){a=!0;break}if(a){this.createView(e+"Was",i,{model:o,name:e,readOnly:!0,mode:"detail",inlineEditDisabled:!0,selector:`.row[data-name="${e}"] .cell-was`,auditData:{type:"was"}});this.createView(e+"Became",i,{model:n,name:e,readOnly:!0,mode:"detail",inlineEditDisabled:!0,selector:`.row[data-name="${e}"] .cell-became`,auditData:{type:"became"}});this.fieldDataList.push({field:e,was:e+"Was",became:e+"Became",label:this.translate(e,"fields",this.model.attributes.parentType)})}else this.fieldDataList.push({field:e,noValues:!0,label:this.translate(e,"fields",this.model.attributes.parentType)})});this.wait(!1)})}toggleDetails(){var e=this.element.querySelector('[data-action="expandDetails"]'),t=this.element.querySelector(":scope > .details"),i=this.element.querySelector(":scope > .stream-details-container > .fields"),e=e.querySelector('[data-role="icon"]');if(this.isExpanded){t.classList.add("hidden");null!=i&&i.classList.remove("hidden");e.classList.remove("fa-chevron-up");e.classList.add("fa-chevron-down");this.isExpanded=!1}else{t.classList.remove("hidden");null!=i&&i.classList.add("hidden");this.fieldList.forEach(e=>{var t=this.getView(e+"Was"),i=this.getView(e+"Became");if(t&&i){t.trigger("panel-show-propagated");i.trigger("panel-show-propagated")}});e.classList.remove("fa-chevron-down");e.classList.add("fa-chevron-up");this.isExpanded=!0}}}e.default=s});define("views/stream/notes/unrelate",["exports","views/stream/notes/relate"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/create-related";messageName="unrelate"}e.default=s});define("views/stream/notes/status",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/status";messageName="status";data(){return{...super.data(),style:this.style,statusText:this.statusText,iconHtml:this.getIconHtml()}}init(){this.getUser().isAdmin()&&(this.isRemovable=!0);super.init()}setup(){var e=this.model.get("data"),t=this.model.attributes.parentType,i=this.getMetadata().get(`scopes.${t}.statusField`)??"",s=e.value;this.style=e.style||"default";this.statusText=this.getLanguage().translateOption(s,i,t);this.statusStyle=this.getMetadata().get(`entityDefs.${t}.fields.${i}.style.`+s)||"default";let a=this.translate(i,"fields",t);this.isToUpperCaseStringItems()||(a=a.toLowerCase());this.messageData.field=a;this.createMessage()}}e.default=s});define("views/stream/notes/post",["exports","views/stream/note","views/stream/reactions"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="stream/notes/post";messageName="post";isEditable=!0;isRemovable=!0;data(){var e=super.data();e.showAttachments=!!(this.model.get("attachmentsIds")||[]).length;e.showPost=!!this.model.get("post");e.isInternal=this.isInternal;e.isPinned=this.isThis&&this.model.get("isPinned")&&this.model.collection&&!this.model.collection.pinnedList;return e}setup(){this.addActionHandler("react",(e,t)=>this.react(t.dataset.type));this.addActionHandler("unReact",(e,t)=>this.unReact(t.dataset.type));this.createField("post",null,null,"views/stream/fields/post");this.createField("attachments","attachmentMultiple",{},"views/stream/fields/attachment-multiple",{previewSize:this.options.isNotification||this.options.isUserStream?"small":"medium"});this.isInternal=this.model.get("isInternal");this.setupReactions();if(!this.model.get("post")&&this.model.get("parentId")){this.messageName="attach";this.isThis&&(this.messageName+="This")}this.listenTo(this.model,"change",()=>{(this.model.hasChanged("post")||this.model.hasChanged("attachmentsIds"))&&this.reRender()});"postThis"===this.messageName&&(this.messageTemplate="{user}");if(!this.model.get("parentId"))if(this.model.get("isGlobal"))this.messageName="postTargetAll";else if(this.model.has("teamsIds")&&this.model.get("teamsIds").length){var e=this.model.get("teamsIds");let i=this.model.get("teamsNames")||{};this.messageName="postTargetTeam";1<e.length&&(this.messageName="postTargetTeams");let s=[];e.forEach(e=>{var t=i[e];t&&s.push($("<a>").attr("href","#Team/view/"+e).text(t).get(0).outerHTML)});this.messageData["html:target"]=s.join(", ")}else if(this.model.has("portalsIds")&&this.model.get("portalsIds").length){e=this.model.get("portalsIds");let i=this.model.get("portalsNames")||{};this.messageName="postTargetPortal";1<e.length&&(this.messageName="postTargetPortals");let s=[];e.forEach(e=>{var t=i[e];t&&s.push($("<a>").attr("href","#Portal/view/"+e).text(t).get(0).outerHTML)});this.messageData["html:target"]=s.join(", ")}else if(this.model.has("usersIds")&&this.model.get("usersIds").length){let s=this.model.get("usersIds"),a=this.model.get("usersNames")||{};this.messageName="postTarget";if(1===s.length&&s[0]===this.model.get("createdById"))this.messageName="postTargetSelf";else{let i=[];s.forEach(e=>{if(e===this.getUser().id){this.messageName="postTargetYou";1<s.length&&(e===this.model.get("createdById")?this.messageName="postTargetSelfAndOthers":this.messageName="postTargetYouAndOthers")}else if(e===this.model.get("createdById"))this.messageName="postTargetSelfAndOthers";else{var t=a[e];t&&i.push($("<a>").attr("href","#User/view/"+e).attr("data-scope","User").attr("data-id",e).text(t).get(0).outerHTML)}});this.messageData["html:target"]=i.join(", ")}}this.createMessage()}async react(e){Espo.Ui.notifyWait();var t=this.model.attributes.myReactions,i=this.model.attributes.reactionCounts,s={...i};e in s||(s[e]=0);s[e]++;this.model.set({myReactions:[e],reactionCounts:s},{userReaction:!0});try{await Espo.Ajax.postRequest(`Note/${this.model.id}/myReactions/`+e)}catch(e){this.model.set({myReactions:t,reactionCounts:i},{userReaction:!0});return}Espo.Ui.success(this.translate("Reacted")+" · "+this.translate(e,"reactions"));await this.model.fetch({userReaction:!0,keepRowActions:!0})}async unReact(e){Espo.Ui.notifyWait();var t=this.model.attributes.myReactions,i=this.model.attributes.reactionCounts,s={...i};e in s||(s[e]=0);s[e]--;this.model.set({myReactions:[],reactionCounts:s},{userReaction:!0});try{await Espo.Ajax.deleteRequest(`Note/${this.model.id}/myReactions/`+e)}catch(e){this.model.set({myReactions:t,reactionCounts:i},{userReaction:!0});return}Espo.Ui.warning(this.translate("Reaction Removed"));await this.model.fetch({userReaction:!0,keepRowActions:!0})}setupReactions(){let e=new i.default({model:this.model});this.assignView("reactions",e,".reactions-container");this.listenTo(this.model,"change:reactionCounts change:myReactions",()=>e.reRenderWhenNoPopover())}}e.default=a});define("views/stream/notes/mention-in-post",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/post";messageName="mentionInPost";data(){return{...super.data(),showAttachments:!!(this.model.get("attachmentsIds")||[]).length,showPost:!!this.model.get("post")}}setup(){this.model.get("post")&&this.createField("post",null,null,"views/stream/fields/post");(this.model.get("attachmentsIds")||[]).length&&this.createField("attachments","attachmentMultiple",{},"views/stream/fields/attachment-multiple",{previewSize:this.options.isNotification?"small":null});this.messageData.mentioned=this.options.userId;this.model.get("parentId")||(this.messageName="mentionInPostTarget");if(this.isUserStream&&this.options.userId===this.getUser().id)if(this.model.get("parentId"))this.messageName="mentionYouInPost";else{this.messageName="mentionYouInPostTarget";if(this.model.get("isGlobal"))this.messageName="mentionYouInPostTargetAll";else{this.messageName="mentionYouInPostTarget";if(this.model.has("teamsIds")&&this.model.get("teamsIds").length){var e=this.model.get("teamsIds");let i=this.model.get("teamsNames")||{},s=[];e.forEach(e=>{var t=i[e];t&&s.push($("<a>").attr("href","#Team/view/"+e).text(t).get(0).outerHTML)});this.messageData["html:target"]=s.join(", ")}else if(this.model.has("usersIds")&&this.model.get("usersIds").length){e=this.model.get("usersIds");let i=this.model.get("usersNames")||{};if(1===e.length&&e[0]===this.model.get("createdById")){this.messageName="mentionYouInPostTargetNoTarget";this.createMessage();return}let s=[];e.forEach(e=>{var t=i[e];t&&s.push($("<a>").attr("href","#User/view/"+e).text(t).get(0).outerHTML)});this.messageData["html:target"]=s.join(", ")}else"self"===this.model.get("targetType")&&(this.messageName="mentionYouInPostTargetNoTarget")}}this.createMessage()}}e.default=s});define("views/stream/notes/email-sent",["exports","views/stream/notes/email-received"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isSystemAvatar=!1;setupEmailMessage(e){this.messageName="emailSent";this.messageData.by=$("<a>").attr("href",`#${e.personEntityType}/view/`+e.personEntityId).text(e.personEntityName).attr("data-scope",e.personEntityType).attr("data-id",e.personEntityId)}}e.default=s});define("views/stream/notes/create",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/create";assigned=!1;messageName="create";isRemovable=!1;data(){return{...super.data(),statusText:this.statusText,statusStyle:this.statusStyle,iconHtml:this.getIconHtml()}}setup(){this.model.get("data")&&this.setupData();this.createMessage()}setupData(){var e=this.model.get("data")||{},t=(this.setupUsersData(),this.model.attributes.parentType);if(null!=e.statusValue){var i=this.statusField=this.getMetadata().get(`scopes.${t}.statusField`)??"",e=e.statusValue;this.statusStyle=this.getMetadata().get(`entityDefs.${t}.fields.${i}.style.`+e)||"default";this.statusText=this.getLanguage().translateOption(e,i,t)}}setupUsersData(){var e=this.model.get("data")||{};this.assignedUserId=e.assignedUserId||null;this.assignedUserName=e.assignedUserName||e.assignedUserId||null;if(e.assignedUsers)if(1===e.assignedUsers.length){this.assignedUserId=e.assignedUsers[0].id;this.assignedUserName=e.assignedUsers[0].name}else if(1<e.assignedUsers.length){this.setupUsersDataMulti();this.isThis&&(this.messageName+="This");return}this.messageData.assignee=$("<span>").addClass("nowrap name-avatar").append(this.getHelper().getAvatarHtml(this.assignedUserId,"small",16,"avatar-link"),$("<a>").attr("href","#User/view/"+this.assignedUserId).text(this.assignedUserName).attr("data-scope","User").attr("data-id",this.assignedUserId));let t=!1;this.isUserStream&&this.assignedUserId===this.getUser().id&&(t=!0);if(this.assignedUserId){this.messageName="createAssigned";if(this.isThis){this.messageName+="This";this.assignedUserId===this.model.attributes.createdById&&(this.messageName+="Self")}else this.assignedUserId===this.model.attributes.createdById?this.messageName+="Self":t&&(this.messageName+="You")}}setupUsersDataMulti(){this.messageName="createAssigned";var e=this.model.get("data")||{};this.messageData.assignee=this.createUsersElement(e.assignedUsers)}createUsersElement(a){let r=document.createElement("span");a.forEach((e,t)=>{var i=document.createElement("a");i.href="#User/view/"+e.id;i.text=e.name||e.id;i.dataset.id=e.id;i.dataset.scope="User";var s=document.createElement("span");s.className="nowrap name-avatar";s.innerHTML=this.getHelper().getAvatarHtml(e.id,"small",16,"avatar-link");s.appendChild(i);r.appendChild(s);t<a.length-1&&r.appendChild(document.createTextNode(", "))});return r}}e.default=s});define("views/stream/notes/create-related",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/create-related";messageName="createRelated";data(){return{...super.data(),relatedTypeString:this.translateEntityType(this.entityType),iconHtml:this.getIconHtml(this.entityType,this.entityId)}}init(){this.getUser().isAdmin()&&(this.isRemovable=!0);super.init()}setup(){var e=this.model.get("data")||{};this.entityType=this.model.get("relatedType")||e.entityType||null;this.entityId=this.model.get("relatedId")||e.entityId||null;this.entityName=this.model.get("relatedName")||e.entityName||null;this.messageData.relatedEntityType=this.translateEntityType(this.entityType);this.messageData.relatedEntity=$("<a>").attr("href",`#${this.entityType}/view/`+this.entityId).text(this.entityName).attr("data-scope",this.entityType).attr("data-id",this.entityId);this.createMessage()}}e.default=s});define("views/stream/notes/assign",["exports","views/stream/note"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="stream/notes/assign";messageName="assign";init(){this.getUser().isAdmin()&&(this.isRemovable=!0);super.init()}data(){return{...super.data(),iconHtml:this.getIconHtml()}}setup(){this.setupData();this.createMessage()}setupData(){var e=this.model.get("data")||{};this.assignedUserId=e.assignedUserId||null;this.assignedUserName=e.assignedUserName||e.assignedUserId||null;if(e.addedAssignedUsers){this.setupDataMulti(e);this.isThis&&(this.messageName+="This")}else{this.messageData.assignee=$("<span>").addClass("nowrap name-avatar").append(this.getHelper().getAvatarHtml(e.assignedUserId,"small",16,"avatar-link"),$("<a>").attr("href","#User/view/"+e.assignedUserId).text(this.assignedUserName).attr("data-scope","User").attr("data-id",e.assignedUserId));this.isUserStream?this.assignedUserId?this.assignedUserId===this.model.get("createdById")?this.messageName+="Self":this.assignedUserId===this.getUser().id&&(this.messageName+="You"):this.messageName+="Void":this.assignedUserId?this.assignedUserId===this.model.get("createdById")&&(this.messageName+="Self"):this.messageName+="Void"}}setupDataMulti(e){this.messageName="assignMultiAdd";var t=e.addedAssignedUsers,i=e.removedAssignedUsers;if(t&&i){t.length&&i.length?this.messageName="assignMultiAddRemove":i.length&&(this.messageName="assignMultiRemove");t.length&&(this.messageData.assignee=this.createUsersElement(t));i.length&&(this.messageData.removedAssignee=this.createUsersElement(i))}}createUsersElement(a){let r=document.createElement("span");a.forEach((e,t)=>{var i=document.createElement("a");i.href="#User/view/"+e.id;i.text=e.name||e.id;i.dataset.id=e.id;i.dataset.scope="User";var s=document.createElement("span");s.className="nowrap name-avatar";s.innerHTML=this.getHelper().getAvatarHtml(e.id,"small",16,"avatar-link");s.appendChild(i);r.appendChild(s);t<a.length-1&&r.appendChild(document.createTextNode(", "))});return r}}e.default=s});define("views/stream/modals/create-post",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="record no-side-margin">{{{record}}}</div>
|
||
`;shortcutKeys={"Control+Enter":"post"};setup(){this.headerText=this.translate("Create Post");this.buttonList=[{name:"post",label:"Post",style:"primary",title:"Ctrl+Enter",onClick:()=>this.post()},{name:"cancel",label:"Cancel",title:"Esc",onClick:e=>{e.close()}}];this.wait(!0);this.getModelFactory().create("Note",e=>{this.createView("record","views/stream/record/edit",{model:e,selector:".record"},e=>{this.listenTo(e,"after:save",()=>{this.trigger("after:save")});this.listenTo(e,"disable-post-button",()=>this.disableButton("post"));this.listenTo(e,"enable-post-button",()=>this.enableButton("post"))});this.wait(!1)})}getRecordView(){return this.getView("record")}post(){this.getRecordView().save()}}e.default=s});define("views/stream/fields/post",["exports","views/fields/text"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{data(){var e=super.data();(this.isDetailMode()||this.isListMode())&&(e.htmlValue=this.getTransformedValue());return e}getTransformedValue(){let s=super.getValueForDisplay();if("string"!=typeof s&&!(s instanceof String))return"";var e=this.model.attributes.data||{};let r=e.mentions||{};e=Object.keys(r).sort((e,t)=>t.length-e.length);if(!e.length)return this.getHelper().transformMarkdownText(s);e.forEach(e=>{var t=r[e].name,i=r[e].id,t=`[${t}](#User/view/${i})`;s=s.replace(new RegExp(e,"g"),t)});var t=this.getHelper().transformMarkdownText(s).toString();let o=(new DOMParser).parseFromString(t,"text/html").body;e.forEach(e=>{let s=r[e].id;var t="#User/view/"+s,a=this.getHelper().getAvatarHtml(s,"small",16,"avatar-link");if(a){let i=(new DOMParser).parseFromString(a,"text/html").body.childNodes[0];o.querySelectorAll(`a[href="${t}"]`).forEach(e=>{s===this.getUser().id&&e.classList.add("text-warning");var t=document.createElement("span");t.classList.add("nowrap","name-avatar");t.append(i.cloneNode());e.parentNode.replaceChild(t,e);t.append(e)})}});t=o.innerHTML;return t}}e.default=s});define("views/stream/fields/attachment-multiple",["exports","views/fields/attachment-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{showPreviews=!0;showPreviewsInListMode=!0}e.default=s});define("views/site-portal/navbar",["exports","views/site/navbar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getLogoSrc(){var e=this.getConfig().get("companyLogoId");return e?this.getBasePath()+`?entryPoint=LogoImage&id=${e}&t=`+e:this.getBasePath()+(this.getThemeManager().getParam("logo")||"client/img/logo.svg")}getTabList(){var e=[...this.getConfig().get("tabList")||[]];(this.getThemeManager().getParam("navbarIsVertical")||e.length)&&e.unshift("Home");return e}}e.default=s});define("views/site-portal/master",["exports","views/site/master"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{views={header:{id:"header",view:"views/site-portal/header"},main:{id:"main",view:!1},footer:{fullSelector:"body > footer",view:"views/site/footer"}};afterRender(){super.afterRender();this.element.querySelector("#main").classList.add("main-portal")}}e.default=s});define("views/site-portal/header",["exports","views/site/header"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{navbarView="views/site-portal/navbar";customViewPath=["clientDefs","App","portalNavbarView"]}e.default=s});define("views/site/footer",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="site/footer"}e.default=s});define("views/site/navbar/quick-create",["exports","view","helpers/record-modal"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{templateContent=`
|
||
<a
|
||
id="nav-quick-create-dropdown"
|
||
class="dropdown-toggle"
|
||
data-toggle="dropdown"
|
||
role="button"
|
||
tabindex="0"
|
||
title="{{translate 'Create'}}"
|
||
><i class="fas fa-plus icon"></i></a>
|
||
<ul class="dropdown-menu" role="menu" aria-labelledby="nav-quick-create-dropdown">
|
||
<li class="dropdown-header">{{translate 'Create'}}</li>
|
||
{{#each list}}
|
||
<li><a
|
||
href="#{{./this}}/create"
|
||
data-name="{{./this}}"
|
||
data-action="quickCreate"
|
||
>{{translate this category='scopeNames'}}</a></li>
|
||
{{/each}}
|
||
</ul>
|
||
`;data(){return{list:this.list}}setup(){this.addActionHandler("quickCreate",(e,t)=>{e.preventDefault();this.processCreate(t.dataset.name)});let t=this.getMetadata().get("scopes")||{};var e=this.getConfig().get("quickCreateList")||[];this.list=e.filter(e=>!!t[e]&&((t[e]||{}).disabled?void 0:!(t[e]||{}).acl||this.getAcl().check(e,"create")))}isAvailable(){return 0<this.list.length}async processCreate(e){Espo.Ui.notifyWait();var t=this.getMetadata().get(`clientDefs.${e}.quickCreateModalType`);if(t){t=this.getMetadata().get(`clientDefs.${e}.modalViews.`+t);if(t){t=await this.createView("modal",t,{scope:e});await t.render();Espo.Ui.notify();return}}t=new i.default;await t.showCreate(this,{entityType:e})}}e.default=a});define("views/record/panel-actions",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/panel-actions";data(){return{defs:this.options.defs,buttonList:this.getButtonList(),actionList:this.getActionList(),entityType:this.options.entityType,scope:this.options.scope}}setup(){this.buttonList=this.options.defs.buttonList||[];this.actionList=this.options.defs.actionList||[];this.defs=this.options.defs}getButtonList(){let t=[];this.buttonList.forEach(e=>{e.hidden||t.push(e)});return t}getActionList(){return this.actionList.filter(e=>!e.hidden).map(e=>{e=Espo.Utils.clone(e);if(e.action){e.data=Espo.Utils.clone(e.data||{});e.data.panel=this.options.defs.name}return e})}}e.default=s});define("views/record/merge",["exports","view","jquery"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);n=i(n);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{template="record/merge";scope="";events={'change input[type="radio"][name="check-all"]':function(e){e.stopPropagation();var t=e.currentTarget.value;(0,n.default)('input[data-id="'+t+'"]').prop("checked",!0)},'click button[data-action="cancel"]':function(){this.getRouter().navigate("#"+this.scope,{trigger:!0})},'click button[data-action="merge"]':function(){let t=(0,n.default)('input[type="radio"][name="check-all"]:checked').val(),r,o=(this.models.forEach(e=>{e.id===t&&(r=e)}),{});(0,n.default)("input.field-radio:checked").each((e,t)=>{var i=t.name;let s=(0,n.default)(t).attr("data-id");if(r.id!==s){var a=r.getFieldParam(i,"type"),a=this.getFieldManager().getActualAttributeList(a,i);let t;this.models.forEach(e=>{e.id===s&&(t=e)});a.forEach(e=>{o[e]=t.get(e)})}});Espo.Ui.notifyWait();var e=this.models.filter(e=>e.id!==r.id).map(e=>e.id);Espo.Ajax.postRequest("Action",{entityType:this.scope,action:"merge",id:r.id,data:{sourceIdList:e,attributes:o}}).then(()=>{Espo.Ui.success(this.translate("Merged"),{suppress:!0});this.getRouter().navigate("#"+this.scope+"/view/"+r.id,{trigger:!0});this.collection&&this.collection.fetch()})}};data(){let e=[];this.fields.forEach(t=>{let i={name:t,scope:this.scope,columns:[]};this.models.forEach(e=>{i.columns.push({id:e.id,fieldVariable:e.id+"-"+t,isReadOnly:this.readOnlyFields[t]||!1})});e.push(i)});return{rows:e,modelList:this.models,scope:this.scope,hasCreatedAt:this.hasCreatedAt,width:Math.round((80-5*this.models.length)/this.models.length*10)/10,dataList:this.getDataList()}}afterRender(){(0,n.default)('input[data-id="'+this.models[0].id+'"]').prop("checked",!0)}setup(){this.scope=this.options.models[0].name;this.models=this.options.models;var e=this.getFieldManager();let t=[];var i,s=this.models[0].defs.fields;this.readOnlyFields={};for(i in s){var r=s[i].type;if("linkMultiple"!==r&&(!(s[i].disabled||s[i].utility||s[i].mergeDisabled)&&"createdAt"!==i&&"modifiedAt"!==i&&e.isMergeable(r))){r=e.getActualAttributeList(r,i);let a=!1;r.forEach(t=>{let i=[],s=(this.models.forEach(e=>{i.push(e.get(t))}),i[0]);i.forEach(e=>{_.isEqual(s,e)||(a=!0)})});if(a){t.push(i);this.models[0].isFieldReadOnly(i)&&(this.readOnlyFields[i]=!0)}}}t.sort((e,t)=>this.translate(e,"fields",this.scope).localeCompare(this.translate(t,"fields",this.scope)));t=t.sort((e,t)=>!this.readOnlyFields[e]&&this.readOnlyFields[t]?-1:1);this.fields=t;this.fields.forEach(i=>{let s=this.models[0].getFieldParam(i,"type");this.models.forEach(e=>{var t=e.getFieldParam(i,"view")||this.getFieldManager().getViewName(s);this.createView(e.id+"-"+i,t,{model:e,fullSelector:'.merge [data-id="'+e.id+'"] .field[data-name="'+i+'"]',defs:{name:i},mode:"detail",readOnly:!0})})});this.hasCreatedAt=this.getMetadata().get(["entityDefs",this.scope,"fields","createdAt"]);this.hasCreatedAt&&this.models.forEach(e=>{this.createView(e.id+"-createdAt","views/fields/datetime",{model:e,fullSelector:'.merge [data-id="'+e.id+'"] .field[data-name="createdAt"]',defs:{name:"createdAt"},mode:"detail",readOnly:!0})})}getDataList(){let i=[];this.models.forEach(e=>{var t={};t.id=e.id;t.name=e.get("name");t.createdAtViewName=e.id+"-createdAt";i.push(t)});return i}}e.default=s});define("views/record/list-tree",["exports","views/record/list","helpers/record-modal","helpers/list/misc/list-tree-draggable"],function(e,t,r,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);r=s(r);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="record/list-tree";showMore=!1;showCount=!1;checkboxes=!1;rowActionsView=!1;presentationType="tree";header=!1;listContainerEl=" > .list > ul";checkAllResultDisabled=!0;showRoot=!1;massActionList=["remove"];selectable=!1;createDisabled=!1;selectedData=null;level=0;itemViewName="views/record/list-tree-item";readOnly;expandToggleInactive=!1;rootView;movedId=null;moveSupported;draggableHelper;data(){var e=super.data();e.createDisabled=this.createDisabled;e.showRoot=this.showRoot;e.showRoot&&(e.rootName=this.rootName||this.translate("Top Level"));0===this.level&&this.selectable&&null===(this.selectedData||{}).id&&(e.rootIsSelected=!0);0===this.level&&(e.isExpanded=this.isExpanded);e.noData=e.createDisabled&&!e.rowDataList.length&&!e.showRoot;e.expandToggleInactive=this.expandToggleInactive;e.hasExpandToggle=!this.getUser().isPortal();e.isEditable=0===this.level&&!this.readOnly;return e}setup(){"selectable"in this.options&&(this.selectable=this.options.selectable);this.readOnly=this.options.readOnly;this.createDisabled=this.readOnly||this.options.createDisabled||this.createDisabled;this.isExpanded=this.options.isExpanded;if("showRoot"in this.options){this.showRoot=this.options.showRoot;"rootName"in this.options&&(this.rootName=this.options.rootName)}"level"in this.options&&(this.level=this.options.level);this.rootView=this.options.rootView||this;0===this.level&&(this.selectedData={id:null,path:[],names:{}});"selectedData"in this.options&&(this.selectedData=this.options.selectedData);this.entityType=this.collection.entityType;this.moveSupported=!!this.getMetadata().get(`entityDefs.${this.entityType}.fields.order`);super.setup();this.selectable&&this.on("select",e=>{if(e.id){this.$el.find('a.link[data-id="'+e.id+'"]').addClass("text-bold");if(0===this.level){this.$el.find("a.link").removeClass("text-bold");this.$el.find('a.link[data-id="'+e.id+'"]').addClass("text-bold");this.setSelected(e.id);e.selectedData=this.selectedData}}0<this.level&&this.getParentView().trigger("select",e)});0===this.level&&this.once("after:render",()=>{var e=this.collection;if(e.openPath){let a=async(e,t)=>{t=[...t];let i=t.shift();var s=e.getItemViews().find(e=>e.model.id===i);if(s){await s.unfold();t.length&&await a(s.getChildrenView(),t)}};a(this,e.openPath);e.openPath=null}});this.listenTo(this.collection,"model-sync",(t,e)=>{if("destroy"===e.action){var i=this.rowList.findIndex(e=>e===t.id);-1<i&&this.rowList.splice(i,1)}})}onRemove(){super.onRemove();this.draggableHelper&&this.draggableHelper.destroy()}afterRender(){super.afterRender();0===this.level&&!this.readOnly&&this.moveSupported&&this.initDraggableRoot()}setSelected(i){this.selectedData.id=null===i?null:i;this.rowList.forEach(e=>{var t=this.getView(e);t.model.id===i?t.setIsSelected():t.isSelected=!1;t.hasView("children")&&t.getChildrenView().setSelected(i)})}getItemViews(){return this.rowList.map(e=>this.getView(e))}buildRows(a){this.checkedList=[];this.rowList=[];if(0<this.collection.length){this.wait(!0);var e=this.collection.models;let i=e.length,s=0;e.forEach(e=>{var t=e.id;this.rowList.push(t);this.createView(t,this.itemViewName,{model:e,collection:this.collection,selector:this.getRowSelector(e.id),createDisabled:this.createDisabled,readOnly:this.readOnly,level:this.level,isSelected:e.id===this.selectedData.id,selectedData:this.selectedData,selectable:this.selectable,setViewBeforeCallback:this.options.skipBuildRows&&!this.isRendered(),rootView:this.rootView,moveSupported:this.moveSupported},()=>{s++;if(s===i){"function"==typeof a&&a();this.wait(!1)}})})}else"function"==typeof a&&a()}getRowSelector(e){return'li[data-id="'+e+'"]'}getCellSelector(e,t){return`${this.getSelector()+this.getRowSelector(e.id)} span.cell[data-name="${t.name}"]`}getCreateAttributes(){return{}}actionCreate(e,t){t.stopPropagation();let i=this.getCreateAttributes(),s=0;this.collection.models.forEach(e=>{e.get("order")>s&&(s=e.get("order"))});i.order=s+1;i.parentId=null;i.parentName=null;if(this.model){i.parentId=this.model.id;i.parentName=this.model.attributes.name}var a=new r.default;a.showCreate(this,{entityType:this.entityType,attributes:i,afterSave:e=>{var t=this.collection;e.set("childCollection",t.createSeed());if(e.attributes.parentId!==i.parentId){let e=this;for(;;){if(!e.level)break;e=e.getParentView().getParentView()}e.collection.fetch()}else this.collection.fetch()}})}actionSelectRoot(){this.trigger("select",{id:null});if(this.selectable){this.$el.find("a.link").removeClass("text-bold");this.$el.find('a.link[data-action="selectRoot"]').addClass("text-bold");this.setSelected(null)}}initDraggableRoot(){this.draggableHelper||(this.draggableHelper=new i.default(this));this.draggableHelper.init()}}e.default=a});define("views/record/list-tree-item",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/list-tree-item";isEnd=!1;level=0;listViewName="views/record/list-tree";rootView;isUnfolded=!1;data(){return{name:this.model.attributes.name,isUnfolded:this.isUnfolded,showFold:this.isUnfolded&&!this.isEnd,showUnfold:!this.isUnfolded&&!this.isEnd,isEnd:this.isEnd,isSelected:this.isSelected,readOnly:this.readOnly,isMovable:this.options.moveSupported&&!this.options.readOnly}}constructor(e){super(e);this.options=e}setIsSelected(){this.isSelected=!0;this.selectedData.id=this.model.id;var e=this.selectedData.path,t=this.selectedData.names;e.length=0;let i=this;for(;;){e.unshift(i.model.id);t[i.model.id]=i.model.attributes.name;if(!i.getParentListView().level)break;i=i.getParentView().getParentView()}}setup(){this.addActionHandler("unfold",e=>{this.unfold();e.stopPropagation()});this.addActionHandler("fold",e=>{this.fold();e.stopPropagation()});this.addActionHandler("remove",e=>{this.actionRemove();e.stopPropagation()});"level"in this.options&&(this.level=this.options.level);"isSelected"in this.options&&(this.isSelected=this.options.isSelected);"selectedData"in this.options&&(this.selectedData=this.options.selectedData);this.readOnly=this.options.readOnly;"createDisabled"in this.options&&(this.createDisabled=this.options.createDisabled);this.readOnly&&(this.createDisabled=!0);this.rootView=this.options.rootView;this.scope=this.model.entityType;this.isUnfolded=!1;var e=this.model.get("childCollection");if(e&&0===e.length||this.model.isEnd)this.createDisabled&&(this.isEnd=!0);else if(e){e.models.forEach(e=>{~this.selectedData.path.indexOf(e.id)&&(this.isUnfolded=!0)});this.isUnfolded&&this.createChildren()}this.on("select",e=>{this.getParentListView().trigger("select",e)})}getParentListView(){return this.getParentView()}createChildren(){var e=this.model.get("childCollection");let t=null;this.isRendered()&&(t=e=>{this.listenToOnce(e,"after:render",()=>{this.trigger("children-created")});e.render()});this.createView("children",this.listViewName,{collection:e,selector:"> .children",createDisabled:this.options.createDisabled,readOnly:this.options.readOnly,level:this.level+1,selectedData:this.selectedData,model:this.model,selectable:this.options.selectable,rootView:this.rootView},t)}checkLastChildren(){Espo.Ajax.getRequest(this.collection.entityType+"/action/lastChildrenIdList",{parentId:this.model.id}).then(e=>{let i=this.getChildrenView();if(i){e.forEach(e=>{var t=this.model.get("childCollection").get(e),t=(t&&(t.isEnd=!0),i.getView(e));if(t){t.isEnd=!0;t.afterIsEnd()}});this.model.lastAreChecked=!0}})}async unfold(){this.createDisabled&&this.once("children-created",()=>{this.model.lastAreChecked||this.checkLastChildren()});var e=this.model.get("childCollection");if(null!=e){this.createChildren();this.isUnfolded=!0;this.afterUnfold();this.trigger("after:unfold")}else{let e=await this.getCollectionFactory().create(this.scope);e.url=this.collection.url;e.parentId=this.model.id;Espo.Ui.notifyWait();this.listenToOnce(e,"sync",()=>{Espo.Ui.notify(!1);this.model.set("childCollection",e);this.createChildren();this.isUnfolded=!0;if(e.length||!this.createDisabled){this.afterUnfold();this.trigger("after:unfold")}else{this.isEnd=!0;this.afterIsEnd()}});await e.fetch()}}fold(){this.clearView("children");this.isUnfolded=!1;this.afterFold()}afterRender(){this.isUnfolded?this.afterUnfold():this.afterFold();this.isEnd&&this.afterIsEnd();if(!this.readOnly){let e=this.$el.find('> .cell [data-action="remove"]');this.$el.find("> .cell").on("mouseenter",()=>{this.rootView.movedId||e.removeClass("hidden")});this.$el.find("> .cell").on("mouseleave",()=>{e.addClass("hidden")})}}afterFold(){this.$el.find('a[data-action="fold"][data-id="'+this.model.id+'"]').addClass("hidden");this.$el.find('a[data-action="unfold"][data-id="'+this.model.id+'"]').removeClass("hidden");this.$el.find(" > .children").addClass("hidden")}afterUnfold(){this.$el.find('a[data-action="unfold"][data-id="'+this.model.id+'"]').addClass("hidden");this.$el.find('a[data-action="fold"][data-id="'+this.model.id+'"]').removeClass("hidden");this.$el.find(" > .children").removeClass("hidden")}afterIsEnd(){this.$el.find('a[data-action="unfold"][data-id="'+this.model.id+'"]').addClass("hidden");this.$el.find('a[data-action="fold"][data-id="'+this.model.id+'"]').addClass("hidden");this.$el.find('span[data-name="white-space"][data-id="'+this.model.id+'"]').removeClass("hidden");this.$el.find(" > .children").addClass("hidden")}async actionRemove(){await this.confirm({message:this.translate("removeRecordConfirmation","messages",this.scope),confirmText:this.translate("Remove")});await this.model.destroy({wait:!0});this.remove()}getChildrenView(){return this.getView("children")}}e.default=s});define("views/record/list-pagination",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/list-pagination";isComponent=!0;data(){var e=this.collection.total,t=this.collection.offset,i=this.collection.length,s=this.collection.hasNextPage(),a=s&&0<=e,r=t+1,t=t+i,i=this.getCurrentPageNumber(),o=this.getLastPageNumber(),n=!this.displayTotalCount||e<0;return{hasGoToPage:1<o||e<0,currentPageNumber:i,lastPageNumber:o,hasLastPageNumber:1<o,total:this.getHelper().numberUtil.formatInt(e),from:this.getHelper().numberUtil.formatInt(r),to:this.getHelper().numberUtil.formatInt(t),previous:this.collection.hasPreviousPage(),next:s,last:a,noTotal:n,noData:0===t}}setup(){this.recordView=this.options.recordView;this.listenTo(this.collection,"update",()=>{this.element&&this.reRender()});this.addHandler("change","input.page-input",(e,t)=>{if(""===t.value)t.value=this.getCurrentPageNumber();else{var i=this.goToNumber(parseInt(t.value));i||(t.value=this.getCurrentPageNumber())}});this.addHandler("focus","input.page-input",(e,t)=>{t.select()});this.addHandler("input","input.page-input",(e,t)=>{t.value=t.value.replace(/[^0-9.]/g,"")});this.addHandler("click",".page-input-group > .input-group-addon",e=>{e.preventDefault();e.stopImmediatePropagation()});this.displayTotalCount=this.options.displayTotalCount}getCurrentPageNumber(){return Math.floor(this.collection.offset/this.collection.maxSize)+1}getLastPageNumber(){return 0<=this.collection.total?Math.floor(this.collection.total/this.collection.maxSize)+1:null}goToNumber(e){var t=(e-1)*this.collection.maxSize;if(0<=this.collection.total&&t>this.collection.total)return Espo.Ui.warning(this.translate("pageNumberIsOutOfBound","messages")),null;Espo.Ui.notifyWait();return this.collection.setOffset(t).then(()=>{Espo.Ui.notify(!1);this.recordView.trigger("after:paginate")})}}e.default=s});define("views/record/list-nested-categories",["exports","view","helpers/record-modal"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="record/list-nested-categories";isLoading=!1;events={"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget)}};collection;constructor(e){super(e);this.collection=e.collection}itemCollection;hasNavigationPanel;isExpanded;subjectEntityType;categoryEntityType;showCreate;data(){var t={};this.isLoading||(t.list=this.getDataList());t.scope=this.collection.entityType;t.isExpanded=this.isExpanded;t.isLoading=this.isLoading;t.currentId=this.collection.currentCategoryId;t.currentName=this.collection.currentCategoryName;t.categoryData=this.collection.categoryData;t.showFolders=!this.isExpanded;t.hasExpandedToggler=this.options.hasExpandedToggler;t.showEditLink=this.options.showEditLink;t.showCreate=this.showCreate;t.hasNavigationPanel=this.hasNavigationPanel;t.createCategoryLabel=this.translate("Create "+this.categoryEntityType,"labels",this.categoryEntityType);var i=this.collection.categoryData||{};if(this.showCreate){t.createLink=`#${this.categoryEntityType}/create`;let e="#"+this.subjectEntityType;i.id&&(e+="/list/categoryId="+i.id);t.createLink+="?returnUrl="+encodeURIComponent(e);i.id&&(t.createLink+=`&parentId=${i.id}&parentName=`+i.name)}t.upperLink=i.upperId?"#"+this.subjectEntityType+"/list/categoryId="+i.upperId:"#"+this.subjectEntityType;if(this.options.primaryFilter){var e="primaryFilter="+this.getHelper().escapeString(this.options.primaryFilter);i.upperId?t.upperLink+="&"+e:t.upperLink+="/list/"+e}t.isExpandedResult=t.isExpanded||this.itemCollection.data.textFilter||this.itemCollection.where&&this.itemCollection.where.find(e=>"textFilter"===e.type);return t}getDataList(){let s=[];this.collection.forEach(e=>{let t=`#${this.subjectEntityType}/list/categoryId=`+e.id;this.options.primaryFilter&&(t+="&primaryFilter="+this.getHelper().escapeString(this.options.primaryFilter));var i={id:e.id,name:e.get("name"),recordCount:e.get("recordCount"),isEmpty:e.get("isEmpty"),link:t};s.push(i)});return s}setup(){this.isExpanded=this.options.isExpanded;this.subjectEntityType=this.options.subjectEntityType;this.hasNavigationPanel=this.options.hasNavigationPanel;this.itemCollection=this.options.itemCollection;this.categoryEntityType=this.collection.entityType;this.showCreate=this.getAcl().check(this.categoryEntityType,"create");this.listenTo(this.collection,"sync",()=>this.reRender());this.listenTo(this.itemCollection,"sync",()=>this.reRender());this.addActionHandler("createCategory",e=>this.handleCreateCategory(e))}actionShowMore(){this.$el.find(".category-item.show-more").addClass("hidden");this.collection.fetch({remove:!1,more:!0})}async handleCreateCategory(e){e.preventDefault();var t=this.collection.categoryData||{},t=await(new i.default).showCreate(this,{entityType:this.categoryEntityType,attributes:{parentId:t.id??null,parentName:t.name??null},rootUrl:this.getRouter().getCurrentUrl(),afterSave:()=>{this.collection.fetch()}});await t.render()}}e.default=a});define("views/record/kanban",["exports","views/record/list","helpers/record-modal"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="record/kanban";itemViewName="views/record/kanban-item";rowActionsView="views/record/row-actions/default-kanban";type="kanban";name="kanban";showCount=!0;headerDisabled=!1;layoutName="kanban";portalLayoutDisabled=!1;minColumnWidthPx=220;showMore=!0;quickDetailDisabled=!1;quickEditDisabled=!1;_internalLayout=null;buttonsDisabled=!1;backDragStarted=!0;paginationDisabled=!0;columnResize=!1;groupRawDataList;subCollectionList;buttonList=[];seedCollection;styleMap;constructor(e){super(e);this.onGroupOrder=e.onGroupOrder;this.getCreateAttributes=e.getCreateAttributes;this.createActionHandler=e.createActionHandler;this.groupChangeSaveHandler=e.groupChangeSaveHandler}events={"click a.link":function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey)){e.stopPropagation();if(this.scope&&!this.selectable){e.preventDefault();var t=$(e.currentTarget).data("id"),i=this.collection.get(t),s=this.getModelScope(t),i={id:t,model:i};this.options.keepCurrentRootUrl&&(i.rootUrl=this.getRouter().getCurrentUrl());this.getRouter().navigate("#"+s+"/view/"+t,{trigger:!1});this.getRouter().dispatch(s,"view",i)}}},'click [data-action="groupShowMore"]':function(e){var t=$(e.currentTarget),t=t.data("name");this.groupShowMore(t)},"click .action":function(e){Espo.Utils.handleAction(this,e.originalEvent,e.currentTarget,{actionItems:[...this.buttonList],className:"list-action-item"})},"mouseenter th.group-header":function(e){if(this.isCreatable){var t=$(e.currentTarget).attr("data-name");this.showPlus(t)}},"mouseleave th.group-header":function(e){var t=$(e.currentTarget).attr("data-name");this.hidePlus(t)},'click [data-action="createInGroup"]':function(e){var t=$(e.currentTarget).attr("data-group");this.actionCreateInGroup(t)},"mousedown .kanban-columns td":function(e){$(e.originalEvent.target).closest(".item").length||this.initBackDrag(e.originalEvent)},"auxclick a.link":function(e){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){var t=$(e.currentTarget),i=t.attr("data-id");if(i&&!this.quickDetailDisabled){t=t.parent().closest(`[data-id="${i}"]`).find(`ul.list-row-dropdown-menu[data-id="${i}"] a[data-action="quickView"]`);if(t.length){e.preventDefault();e.stopPropagation();this.actionQuickView({id:i})}}}}};data(){var e=!this.options.topBarDisabled&&(this.displayTotalCount||this.buttonList.length&&!this.buttonsDisabled||!!this._listSettingsHelper);return{scope:this.scope,header:this.header,topBar:e,showCount:this.showCount&&0<this.collection.total,buttonList:this.buttonList,displayTotalCount:this.displayTotalCount&&0<=this.collection.total&&!this._renderEmpty,totalCount:this.collection.total,groupDataList:this.groupDataList,minTableWidthPx:this.minColumnWidthPx*this.groupDataList.length,isEmptyList:0===this.collection.models.length,totalCountFormatted:this.getNumberUtil().formatInt(this.collection.total),noDataDisabled:this._renderEmpty}}init(){this.listLayout=this.options.listLayout||this.listLayout;this.type=this.options.type||this.type;this.layoutName=this.options.layoutName||this.layoutName||this.type;this.rowActionsView=(_.isUndefined(this.options.rowActionsView)?this:this.options).rowActionsView;this.massActionsDisabled&&!this.selectable&&(this.checkboxes=!1);this.rowActionsDisabled=this.options.rowActionsDisabled||this.rowActionsDisabled;"buttonsDisabled"in this.options&&(this.buttonsDisabled=this.options.buttonsDisabled)}getModelScope(e){return this.scope}setup(){if(void 0===this.collection)throw new Error("Collection has not been injected into Record.List view.");this.listenTo(this.collection,"sync",(e,t)=>{this.subCollectionList=void 0;this.groupRawDataList=t.groups});this.layoutLoadCallbackList=[];this.entityType=this.collection.entityType||null;this.scope=this.options.scope||this.entityType;this.buttonList=Espo.Utils.clone(this.buttonList);"showCount"in this.options&&(this.showCount=this.options.showCount);this.displayTotalCount=this.showCount&&this.getConfig().get("displayListViewRecordCount");this.minColumnWidthPx=this.getConfig().get("kanbanMinColumnWidth")||this.minColumnWidthPx;"displayTotalCount"in this.options&&(this.displayTotalCount=this.options.displayTotalCount);this.getUser().isPortal()&&!this.portalLayoutDisabled&&this.getMetadata().get(["clientDefs",this.scope,"additionalLayouts",this.layoutName+"Portal"])&&(this.layoutName+="Portal");if("canReOrder"in this.options)this.orderDisabled=!this.options.canReOrder;else{this.orderDisabled=this.getMetadata().get(["scopes",this.scope,"kanbanOrderDisabled"]);this.getUser().isPortal()&&(this.orderDisabled=!0)}this.setupStatusField();this.seedCollection=this.collection.clone();this.seedCollection.reset();this.seedCollection.url=this.scope;this.seedCollection.maxSize=this.collection.maxSize;this.seedCollection.entityType=this.collection.entityType;this.seedCollection.orderBy=this.collection.defaultOrderBy;this.seedCollection.order=this.collection.defaultOrder;this.setupRowActionDefs();this.setupSettings();this.listenTo(this.collection,"sync",()=>{this._renderEmpty=!1;this.buildRowsAndRender()});this.collection.listenTo(this.collection,"change:"+this.statusField,this.onChangeGroup.bind(this),this);this.buildRows();this.on("remove",()=>{$(window).off("resize.kanban-a-"+this.cid);$(window).off("scroll.kanban-"+this.cid);$(window).off("resize.kanban-"+this.cid)});"canChangeGroup"in this.options?this.statusFieldIsEditable=this.options.canChangeGroup:this.statusFieldIsEditable=this.getAcl().checkScope(this.entityType,"edit")&&!this.getAcl().getScopeForbiddenFieldList(this.entityType,"edit").includes(this.statusField)&&!this.getMetadata().get(["clientDefs",this.scope,"editDisabled"])&&!this.getMetadata().get(["entityDefs",this.entityType,"fields",this.statusField,"readOnly"]);"canCreate"in this.options?this.isCreatable=this.options.canCreate:this.isCreatable=this.statusFieldIsEditable&&this.getAcl().check(this.entityType,"create")&&!this.getMetadata().get(`clientDefs.${this.scope}.createDisabled`);this.moveOverRowAction=!0;"moveOverRowAction"in this.options&&(this.moveOverRowAction=this.options.moveOverRowAction);this._renderEmpty=this.options.skipBuildRows;this.wait(this.getHelper().processSetupHandlers(this,"record/kanban"));this.hasStars=this.getMetadata().get(`scopes.${this.entityType}.stars`)||!1}setupStatusField(){this.statusField=this.options.statusField||this.getMetadata().get(["scopes",this.scope,"statusField"]);if(!this.statusField)throw new Error(`No status field for entity type '${this.scope}'.`);this.styleMap=this.getMetadata().get(`entityDefs.${this.scope}.fields.${this.statusField}.style`)??{};var e=this.getMetadata().get(`entityDefs.${this.scope}.fields.${this.statusField}.optionsReference`);if(e){var[e,t]=e.split(".");this.styleMap=this.getMetadata().get(`entityDefs.${e}.fields.${t}.style`)??{}}}afterRender(){var e=$(window);this.$listKanban=this.$el.find(".list-kanban");this.$content=$("#content");this.$groupColumnList=this.$listKanban.find(".group-column-list");this.$container=this.$el.find(".list-kanban-container");e.off("resize.kanban-a-"+this.cid);e.on("resize.kanban-a-"+this.cid,()=>this.adjustMinHeight());this.$container.on("scroll",()=>this.syncHeadScroll());this.adjustMinHeight();this.statusFieldIsEditable&&this.initSortable();this.initStickableHeader();this.$showMore=this.$el.find(".group-column .show-more");this.plusElementMap={};this.groupDataList.forEach(e=>{var t=CSS.escape(e.name);this.plusElementMap[e.name]=this.$el.find(`.kanban-head .create-button[data-group="${t}"]`)})}initStickableHeader(){let a=this.$headContainer=this.$el.find(".kanban-head-container"),r=(this.getThemeManager().getParam("navbarHeight")||30)*this.getThemeManager().getFontSizeFactor(),o=this.getThemeManager().getParam("screenWidthXs"),n=this.$el.find(".kanban-columns-container"),l=$(window),d=$("<div>").addClass("kanban-head-placeholder").html(" ").hide().insertAfter(a);l.off("scroll.kanban-"+this.cid);l.on("scroll.kanban-"+this.cid,()=>{e()});l.off("resize.kanban-"+this.cid);l.on("resize.kanban-"+this.cid,()=>e());let e=()=>{var e=n.width();if($(window.document).width()<o){a.removeClass("sticked");a.css("width","");d.hide();a.show();a.get(0).scrollLeft=0;a.children().css("width","")}else{var t=this.$listKanban.offset().top-r,i=n.offset().top+n.outerHeight(!0),s=l.scrollTop();if(s<i){if(t<s){i=this.$container.width()-3;a.children().css("width",e);a.css("width",i+"px");if(!a.hasClass("sticked")){a.addClass("sticked");d.show()}}else{a.css("width","");if(a.hasClass("sticked")){a.removeClass("sticked");d.hide()}}a.show();this.syncHeadScroll()}else{a.css("width",e+"px");a.hide();d.show();a.get(0).scrollLeft=0;a.children().css("width","")}}}}initSortable(){let r=this.$groupColumnList,o=(r.find("> .item").on("touchstart",e=>{e.originalEvent.stopPropagation()}),this.orderDisabled),i=this.$el.find(".group-column-list");r.sortable({distance:10,connectWith:".group-column-list",cancel:".btn-group *",containment:this.getSelector(),scroll:!1,over:function(){$(this).addClass("drop-hover")},out:function(){$(this).removeClass("drop-hover")},sort:e=>{this.blockScrollControl||this.controlHorizontalScroll(e.originalEvent)},start:(e,t)=>{i.addClass("drop-active");r.sortable("refreshPositions");$(t.item).find(".btn-group.open > .dropdown-toggle").parent().removeClass("open");this.draggedGroupFrom=$(t.item).closest(".group-column-list").data("name");this.$showMore.addClass("hidden");this.sortIsStarted=!0;this.sortWasCentered=!1;this.$draggable=t.item},stop:(e,t)=>{this.blockScrollControl=!1;this.sortIsStarted=!1;this.$draggable=null;var i=$(t.item);this.$el.find(".group-column-list").removeClass("drop-active");let s=i.closest(".group-column-list").data("name");i=i.data("id");let a=this.draggedGroupFrom;this.draggedGroupFrom=null;this.$showMore.removeClass("hidden");if(s!==a){let e=this.collection.get(i);if(!e)return r.sortable("cancel"),void 0;let t={};t[this.statusField]=s;this.handleAttributesOnGroupChange(e,t,s);r.sortable("disable");(async()=>{if(this.groupChangeSaveHandler)return e.set(t,{isDrop:!0}),this.groupChangeSaveHandler(e);return e.save(t,{patch:!0,isDrop:!0})})().then(()=>{Espo.Ui.success(this.translate("Saved"));r.sortable("destroy");this.initSortable();this.moveModelBetweenGroupCollections(e,a,s);if(!o){this.reOrderGroup(s);this.storeGroupOrder(s)}this.rebuildGroupDataList()}).catch(()=>{r.sortable("cancel");r.sortable("enable")})}else if(o){r.sortable("cancel");r.sortable("enable")}else{this.reOrderGroup(s);this.storeGroupOrder(s);this.rebuildGroupDataList()}}})}storeGroupOrder(e,t){var i=this.getGroupOrderFromDom(e);t&&i.unshift(t);return this.onGroupOrder?this.onGroupOrder(e,i):Espo.Ajax.putRequest("Kanban/order",{entityType:this.entityType,group:e,ids:i})}getGroupOrderFromDom(e){let i=[];var t=this.$el.find('.group-column-list[data-name="'+e+'"]');t.children().each((e,t)=>{i.push($(t).data("id"))});return i}reOrderGroup(e){let i=this.getGroupCollection(e);var t=this.getGroupOrderFromDom(e);let s={};i.models.forEach(e=>{s[e.id]=e});for(;i.models.length;)i.pop({silent:!0});t.forEach(e=>{var t=s[e];t&&i.add(t,{silent:!0})})}rebuildGroupDataList(){this.groupDataList.forEach(e=>{e.dataList=[];for(var t of e.collection.models)e.dataList.push({key:t.id,id:t.id})})}moveModelBetweenGroupCollections(e,t,i){let s=this.getGroupCollection(t);if(s){s.remove(e.id,{silent:!0});s=this.getGroupCollection(i);s&&s.add(e,{silent:!0})}}handleAttributesOnGroupChange(e,t,i){}adjustMinHeight(){if(0!==this.collection.models.length&&this.$container){let e=this.getHelper().calculateContentContainerHeight(this.$el.find(".kanban-columns-container"));var t=this.$container.get(0);t&&t.scrollWidth>t.clientWidth&&(e-=18);e<100&&(e=100);this.$listKanban.find("td.group-column").css({minHeight:e+"px"})}}getListLayout(t){this.listLayout?t.call(this,this.listLayout):this._loadListLayout(e=>{this.listLayout=e;t.call(this,e)})}async getSelectAttributeList(e){var t=await super.getSelectAttributeList();if(!t)return null;t.includes(this.statusField)||t.push(this.statusField);e&&e(t);return t}buildRows(a){let s=this.groupRawDataList;this.subCollectionList&&s&&this.subCollectionList.forEach((e,t)=>{var i=s[t];if(i){i.list=e.models.map(e=>e.getClonedAttributes());i.total=e.total}else console.warn("No group.",e)});s=s||[];this.collection.reset();this.subCollectionList=[];this.wait(!0);this.groupDataList=[];let r=0,o=0;this.getListLayout(e=>{this.listLayout=e;s.forEach(e=>{var t=this.seedCollection.clone();this.listenTo(t,"destroy",(e,t,i)=>{i.fromList||this.removeRecordFromList(e.id)});t.total=e.total;t.url=this.collection.url;t.where=this.collection.where;t.entityType=this.seedCollection.entityType;t.maxSize=this.seedCollection.maxSize;t.orderBy=this.seedCollection.orderBy;t.order=this.seedCollection.order;t.whereAdditional=[{field:this.statusField,type:"equals",value:e.name}];t.data.groupName=e.name;t.add(e.list);this.subCollectionList.push(t);this.collection.add(t.models);let i=[];t.models.forEach(e=>{r++;i.push({key:e.id,id:e.id})});var s=e.style||this.styleMap[e.name],a=e.label||this.getLanguage().translateOption(e.name,this.statusField,this.scope),a={name:e.name,label:a,dataList:i,collection:t,hasShowMore:t.total>t.length||-1===t.total,style:s};this.groupDataList.push(a)});if(0===r){this.wait(!1);a&&a()}else this.groupDataList.forEach(s=>{s.dataList.forEach((e,t)=>{var i=s.collection.get(e.id);this.buildRow(t,i,()=>{o++;if(o===r){this.wait(!1);a&&a()}})})})})}buildRow(e,t,i){var s=t.id;let a=this._listSettingsHelper?this._listSettingsHelper.getHiddenColumnMap():{};var r=this.listLayout.filter(e=>{var t=e.name;return!t||!a[t]&&(!e.hidden||t in a)});this.createView(s,this.itemViewName,{model:t,selector:`.item[data-id="${t.id}"]`,itemLayout:r,rowActionsDisabled:this.rowActionsDisabled,rowActionsView:this.rowActionsView,rowActionHandlers:this._rowActionHandlers||{},setViewBeforeCallback:this.options.skipBuildRows&&!this.isRendered(),statusFieldIsEditable:this.statusFieldIsEditable,moveOverRowAction:this.moveOverRowAction,additionalRowActionList:this._additionalRowActionList,scope:this.scope,hasStars:this.hasStars},i)}removeRecordFromList(t){this.collection.remove(t);0<this.collection.total&&this.collection.total--;this.collection.trigger("update-total");this.totalCount=this.collection.total;this.$el.find(".total-count-span").text(this.totalCount.toString());this.clearView(t);this.$el.find('.item[data-id="'+t+'"]').remove();this.subCollectionList.forEach(e=>{e.get(t)&&e.remove(t)});for(var i of this.groupDataList)for(let e=0;e<i.dataList.length;e++){var s=i.dataList[e];if(s.id===t){i.dataList.splice(e,1);0<i.collection.total&&i.collection.total--;i.hasShowMore=i.collection.total>i.collection.length||-1===i.collection.total;break}}}onChangeGroup(e,t,s){if("fetch"!==s.action){let t=e.id;var a,r=e.get(this.statusField);this.subCollectionList.forEach(e=>{if(e.get(t)){e.remove(t);0<e.total&&e.total--}});let i;for(a of this.groupDataList)for(let e=0;e<a.dataList.length;e++){var o=a.dataList[e];if(o.id===t){i=o;a.dataList.splice(e,1);break}}if(r&&!s.isDrop){for(var n of this.groupDataList)if(n.name===r){n.collection.unshift(e);n.collection.total++;if(i){n.dataList.unshift(i);n.hasShowMore=n.collection.total>n.collection.length||-1===n.collection.total}}var l=this.$el.find('.item[data-id="'+t+'"]'),d=this.$el.find('.group-column[data-name="'+r+'"] .group-column-list');d.length?d.prepend(l):l.remove();this.orderDisabled||this.storeGroupOrder(r)}}}groupShowMore(t){let i;for(var e in this.groupDataList){i=this.groupDataList[e];if(i.name===t)break;i=null}if(i){let e=i.collection;var s=this.$el.find('.group-column-list[data-name="'+t+'"]'),a=this.$el.find('.group-column[data-name="'+t+'"] .show-more');e.data.select=this.collection.data.select;this.showMoreRecords({},e,s,a,()=>{this.noRebuild=!1;e.models.forEach(e=>{if(!this.collection.get(e.id)){this.collection.add(e);i.dataList.push({key:e.id,id:e.id})}})})}}getDomRowItem(e){return this.$el.find('.item[data-id="'+e+'"]')}getRowContainerHtml(e){return $("<div>").attr("data-id",e).addClass("item").get(0).outerHTML}actionMoveOver(e){var t=this.collection.get(e.id);this.createView("moveOverDialog","views/modals/kanban-move-over",{model:t,statusField:this.statusField},e=>{e.render()})}getGroupCollection(t){let i=null;this.subCollectionList.forEach(e=>{e.data.groupName===t&&(i=e)});return i}showPlus(e){var t=this.plusElementMap[e];t&&t.removeClass("hidden")}hidePlus(e){var t=this.plusElementMap[e];t&&t.addClass("hidden")}async actionCreateInGroup(t){if(this.createActionHandler)this.createActionHandler(t);else{var e=await(this.getCreateAttributes?this.getCreateAttributes(t):Promise.resolve({[this.statusField]:t})),i=new s.default;await i.showCreate(this,{attributes:e,entityType:this.scope,afterSave:async e=>{this.orderDisabled||await this.storeGroupOrder(t,e.id);await this.collection.fetch({maxSize:this.collection.maxSize})},beforeRender:e=>{e.getRecordView().setFieldReadOnly(this.statusField,!0)}})}}initBackDrag(e){this.backDragStarted=!0;let i=this.$container.get(0);i.style.cursor="grabbing";i.style.userSelect="none";var t=$(document);let s=i.scrollLeft,a=e.clientX;t.on("mousemove."+this.cid,e=>{var t=e.originalEvent.clientX-a;i.scrollLeft=s-t;this.syncHeadScroll()});t.one("mouseup."+this.cid,()=>{this.stopBackDrag()})}stopBackDrag(){this.$container.get(0).style.cursor="default";this.$container.get(0).style.userSelect="none";$(document).off("mousemove."+this.cid)}syncHeadScroll(){this.$headContainer.hasClass("sticked")&&(this.$headContainer.get(0).scrollLeft=this.$container.get(0).scrollLeft)}controlHorizontalScroll(t){if(this.sortIsStarted&&this.$draggable){var i=this.$draggable.get(0).getBoundingClientRect(),s=i.left,i=i.right,a=this.$container.get(0),r=a.getBoundingClientRect();let e=2;var o=r.right-70<i&&a.scrollLeft+a.offsetWidth<a.scrollWidth,n=s<r.left+70&&0<a.scrollLeft;this.$groupColumnList.sortable("refreshPositions");if(o&&this.sortWasCentered){i=r.right-i,i=(i<17.5&&(e*=3),Math.min(e,a.offsetWidth-a.scrollLeft));a.scrollLeft=a.scrollLeft+i;this.syncHeadScroll();if(a.scrollLeft+a.offsetWidth===a.scrollWidth)this.blockScrollControl=!1;else{this.blockScrollControl=!0;setTimeout(()=>this.controlHorizontalScroll(t),5)}}else if(n&&this.sortWasCentered){i=-(r.left-s),r=(i<17.5&&(e*=3),Math.min(e,a.scrollLeft));a.scrollLeft=a.scrollLeft-r;this.syncHeadScroll();if(0===a.scrollLeft)this.blockScrollControl=!1;else{this.blockScrollControl=!0;setTimeout(()=>this.controlHorizontalScroll(t),5)}}else{!this.blockScrollControl||n||o||(this.blockScrollControl=!1);n||o||(this.sortWasCentered=!0)}}}async afterSettingsChange(e){this._internalLayout=null;if("toggleColumn"===e.action||"resetToDefault"===e.action){var t=await this.getSelectAttributeList();t&&(this.collection.data.select=t.join(","))}Espo.Ui.notifyWait();await this.collection.fetch({maxSize:this.collection.maxSize});Espo.Ui.notify(!1)}setCanCreate(e){this.isCreatable=e}setCanReOrder(e){this.orderDisabled=!e}}e.default=a});define("views/record/kanban-item",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="record/kanban-item";data(){return{layoutDataList:this.layoutDataList,rowActionsDisabled:this.rowActionsDisabled,isStarred:this.hasStars&&this.model.attributes.isStarred}}setup(){this.itemLayout=this.options.itemLayout;this.rowActionsView=this.options.rowActionsView;this.rowActionsDisabled=this.options.rowActionsDisabled;this.hasStars=this.options.hasStars;this.layoutDataList=[];this.itemLayout.forEach((e,t)=>{var i=e.name,s=i+"Field",a={name:i,isAlignRight:"right"===e.align,isLarge:e.isLarge,isMuted:e.isMuted,isFirst:0===t,key:s};this.layoutDataList.push(a);let r=e.view||this.model.getFieldParam(i,"view");if(!r){a=this.model.getFieldType(i)||"base";r=this.getFieldManager().getViewName(a)}let o="list";e.link&&(o="listLink");this.createView(s,r,{model:this.model,name:i,mode:o,readOnly:!0,selector:'.field[data-name="'+i+'"]'})});if(!this.rowActionsDisabled){var e={edit:this.getAcl().checkModel(this.model,"edit"),delete:this.getAcl().checkModel(this.model,"delete")};this.createView("itemMenu",this.rowActionsView,{selector:".item-menu-container",model:this.model,acl:e,moveOverRowAction:this.options.moveOverRowAction,statusFieldIsEditable:this.options.statusFieldIsEditable,rowActionHandlers:this.options.rowActionHandlers||{},additionalActionList:this.options.additionalRowActionList,scope:this.options.scope})}}}e.default=s});define("views/record/edit-small",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{}e.default=s});define("views/record/edit-side",["exports","views/record/detail-side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{mode="edit";defaultPanelDefs={name:"default",label:!1,view:"views/record/panels/side",isForm:!0,options:{fieldList:[{name:":assignedUser"},{name:"teams",view:"views/fields/teams"}]}}}e.default=s});define("views/record/edit-bottom",["exports","views/record/detail-bottom"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{mode="edit";streamPanel=!1;relationshipPanels=!1}e.default=s});define("views/record/detail-small",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{}e.default=s});define("views/record/detail-middle",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{init(){this.recordHelper=this.options.recordHelper;this.scope=this.model.entityType}data(){return{hiddenPanels:this.recordHelper.getHiddenPanels(),hiddenFields:this.recordHelper.getHiddenFields()}}showPanel(e){if(!this.recordHelper.getPanelStateParam(e,"hiddenLocked")){this.showPanelInternal(e);this.recordHelper.setPanelStateParam(e,"hidden",!1)}}showPanelInternal(e){this.isRendered()&&this.$el.find('.panel[data-name="'+e+'"]').removeClass("hidden");var t=!this.recordHelper.getPanelStateParam(e,"hidden");!t&&this.options.panelFieldListMap&&this.options.panelFieldListMap[e]&&this.options.panelFieldListMap[e].forEach(e=>{var t=this.getFieldView(e);t&&t.reRender()})}hidePanel(e){this.hidePanelInternal(e);this.recordHelper.setPanelStateParam(e,"hidden",!0)}hidePanelInternal(e){this.isRendered()&&this.$el.find('.panel[data-name="'+e+'"]').addClass("hidden")}hideField(s){this.recordHelper.setFieldStateParam(s,"hidden",!0);let e=()=>{var e=this.getFieldView(s);if(e){var e=e.$el,t=e.closest('.cell[data-name="'+s+'"]'),i=t.find('label.control-label[data-name="'+s+'"]');e.addClass("hidden");i.addClass("hidden");t.addClass("hidden-cell")}else{this.$el.find('.cell[data-name="'+s+'"]').addClass("hidden-cell");this.$el.find('.field[data-name="'+s+'"]').addClass("hidden");this.$el.find('label.control-label[data-name="'+s+'"]').addClass("hidden")}};this.isRendered()?e():this.once("after:render",()=>{e()});var t=this.getFieldView(s);t&&t.setDisabled()}showField(s){if(!this.recordHelper.getFieldStateParam(s,"hiddenLocked")){this.recordHelper.setFieldStateParam(s,"hidden",!1);let e=()=>{var e=this.getFieldView(s);if(e){var e=e.$el,t=e.closest('.cell[data-name="'+s+'"]'),i=t.find('label.control-label[data-name="'+s+'"]');e.removeClass("hidden");i.removeClass("hidden");t.removeClass("hidden-cell")}else{this.$el.find('.cell[data-name="'+s+'"]').removeClass("hidden-cell");this.$el.find('.field[data-name="'+s+'"]').removeClass("hidden");this.$el.find('label.control-label[data-name="'+s+'"]').removeClass("hidden")}};this.isRendered()?e():this.once("after:render",()=>{e()});var t=this.getFieldView(s);!t||t.disabledLocked||t.setNotDisabled()}}getFieldViews(){var e,t={};for(e in this.nestedViews){var i=this.nestedViews[e].name;t[i]=this.nestedViews[e]}return t}getFieldView(e){return(this.getFieldViews()||{})[e]}getView(e){let t=super.getView(e);t=t||this.getFieldView(e);return t}}e.default=s});define("views/record/deleted-detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{bottomView=null;sideView="views/record/deleted-detail-side";setupBeforeFinal(){super.setupBeforeFinal();this.buttonList=[];this.dropdownItemList=[];this.addDropdownItem({name:"restoreDeleted",label:"Restore"})}actionRestoreDeleted(){Espo.Ui.notifyWait();Espo.Ajax.postRequest(this.model.entityType+"/action/restoreDeleted",{id:this.model.id}).then(()=>{Espo.Ui.notify(!1);this.model.set("deleted",!1);this.model.trigger("after:restore-deleted")})}}e.default=s});define("views/record/deleted-detail-side",["exports","views/record/detail-side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{additionalPanelsDisabled=!0}e.default=s});define("views/record/row-actions/view-only",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){return[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}]}}e.default=s});define("views/record/row-actions/view-and-remove",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.acl.delete&&e.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});return e}}e.default=s});define("views/record/row-actions/view-and-edit",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){let t=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.acl.edit&&(t=t.concat([{action:"quickEdit",label:"Edit",data:{id:this.model.id},link:"#"+this.model.entityType+"/edit/"+this.model.id,groupIndex:0}]));this.getAdditionalActionList().forEach(e=>t.push(e));return t}}e.default=s});define("views/record/row-actions/remove-only",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){return this.options.acl.delete?[{action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0}]:[]}}e.default=s});define("views/record/row-actions/relationship-view-only",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){return[{action:"viewRelated",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}]}}e.default=s});define("views/record/row-actions/relationship-view-and-unlink",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.acl.edit&&!this.options.unlinkDisabled&&e.push({action:"unlinkRelated",label:"Unlink",data:{id:this.model.id},groupIndex:0});return e}}e.default=s});define("views/record/row-actions/relationship-view-and-edit",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.acl.edit&&e.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},link:"#"+this.model.entityType+"/edit/"+this.model.id,groupIndex:0});return e}}e.default=s});define("views/record/row-actions/relationship-unlink-only",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){return this.options.acl.edit&&!this.options.unlinkDisabled?[{action:"unlinkRelated",label:"Unlink",data:{id:this.model.id},groupIndex:0}]:[]}}e.default=s});define("views/record/row-actions/relationship-remove-only",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){return this.options.acl.delete?[{action:"removeRelated",label:"Remove",data:{id:this.model.id},groupIndex:0}]:[]}}e.default=s});define("views/record/row-actions/relationship-no-unlink",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){let e=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.acl.edit&&(e=e.concat([{action:"quickEdit",label:"Edit",data:{id:this.model.id},link:"#"+this.model.entityType+"/edit/"+this.model.id,groupIndex:0}]));this.options.acl.delete&&e.push({action:"removeRelated",label:"Remove",data:{id:this.model.id},groupIndex:0});return e}}e.default=s});define("views/record/row-actions/relationship-no-remove",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[];e.push({action:"quickView",label:"View",data:{id:this.model.id},link:`#${this.model.entityType}/view/`+this.model.id,groupIndex:0});if(this.options.acl.edit){e.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},link:`#${this.model.entityType}/edit/`+this.model.id,groupIndex:0});this.options.unlinkDisabled||e.push({action:"unlinkRelated",label:"Unlink",data:{id:this.model.id},groupIndex:0})}return e}}e.default=s});define("views/record/row-actions/relationship-edit-and-remove",["exports","views/record/row-actions/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[];this.options.acl.edit&&e.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},groupIndex:0});this.options.acl.delete&&e.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});return e}}e.default=s});define("views/record/row-actions/empty",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){return[]}}e.default=s});define("views/record/row-actions/edit-and-remove",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=[];this.options.acl.edit&&e.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},link:"#"+this.model.entityType+"/edit/"+this.model.id,groupIndex:0});this.options.acl.delete&&e.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});return e}}e.default=s});define("views/record/row-actions/default-kanban",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){let t=[{action:"quickView",label:"View",data:{id:this.model.id},link:"#"+this.model.entityType+"/view/"+this.model.id,groupIndex:0}];this.options.moveOverRowAction&&this.options.statusFieldIsEditable&&t.push({action:"moveOver",label:"Move Over",data:{id:this.model.id},groupIndex:1});this.options.acl.edit&&t.push({action:"quickEdit",label:"Edit",data:{id:this.model.id},link:"#"+this.model.entityType+"/edit/"+this.model.id,groupIndex:0});this.getAdditionalActionList().forEach(e=>t.push(e));this.options.acl.delete&&t.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});return t}}e.default=s});define("views/preferences/edit",["exports","views/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{userName="";setup(){super.setup();this.userName=this.model.get("name")}getHeader(){return this.buildHeaderHtml([$("<span>").text(this.translate("Preferences")),$("<span>").text(this.userName)])}updatePageTitle(){let e=this.getLanguage().translate(this.scope,"scopeNames");this.model.id!==this.getUser().id&&this.userName&&(e+=" · "+this.userName);this.setPageTitle(e)}}e.default=s});define("views/preferences/record/edit",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{sideView=null;saveAndContinueEditingAction=!1;buttonList=[{name:"save",label:"Save",style:"primary"},{name:"cancel",label:"Cancel"}];setup(){this.dynamicLogicDefs=Espo.Utils.cloneDeep(this.getMetadata().get("logicDefs.Preferences"));super.setup();var e=this.model,t=(this.addDropdownItem({name:"reset",text:this.getLanguage().translate("Reset to Default","labels","Admin"),style:"danger",onClick:()=>this.actionReset()}),this.getAcl().getScopeForbiddenFieldList("Preferences","edit"));t.includes("dashboardLayout")||e.isPortal()||this.addDropdownItem({name:"resetDashboard",text:this.getLanguage().translate("Reset Dashboard to Default","labels","Preferences"),onClick:()=>this.actionResetDashboard()});e.isPortal()&&(this.layoutName="detailPortal");if(this.model.id===this.getUser().id){let s=this.getPreferences();this.on("save",(e,t)=>{var i=this.model.getClonedAttributes();delete i.smtpPassword;s.set(i);s.trigger("update",t)})}if(!this.getUser().isAdmin()||e.isPortal()){this.hidePanel("dashboard");this.hideField("dashboardLayout")}this.controlFollowCreatedEntityListVisibility();this.listenTo(this.model,"change:followCreatedEntities",this.controlFollowCreatedEntityListVisibility);this.controlColorsField();this.listenTo(this.model,"change:scopeColorsDisabled",()=>this.controlColorsField());let i=!0;if(!this.getConfig().get("assignmentEmailNotifications")||e.isPortal()){this.hideField("receiveAssignmentEmailNotifications",!0);this.hideField("assignmentEmailNotificationsIgnoreEntityTypeList",!0)}else i=!1;0===(this.getConfig().get("assignmentEmailNotificationsEntityList")||[]).length&&this.hideField("assignmentEmailNotificationsIgnoreEntityTypeList",!0);0===(this.getConfig().get("assignmentNotificationsEntityList")||[]).length||e.isPortal()?this.hideField("assignmentNotificationsIgnoreEntityTypeList"):i=!1;this.getConfig().get("emailForceUseExternalClient")&&this.hideField("emailUseExternalClient");!this.getConfig().get("mentionEmailNotifications")||e.isPortal()?this.hideField("receiveMentionEmailNotifications"):i=!1;!this.getConfig().get("streamEmailNotifications")&&!e.isPortal()||!this.getConfig().get("portalStreamEmailNotifications")&&e.isPortal()?this.hideField("receiveStreamEmailNotifications"):i=!1;i&&this.hidePanel("notifications");this.getConfig().get("userThemesDisabled")&&this.hideField("theme");this.on("save",e=>{if(this.model.get("language")!==e.language||this.model.get("theme")!==e.theme||(this.model.get("themeParams")||{}).navbar!==(e.themeParams||{}).navbar||this.model.get("pageContentWidth")!==e.pageContentWidth){this.setConfirmLeaveOut(!1);window.location.reload()}})}controlFollowCreatedEntityListVisibility(){this.model.get("followCreatedEntities")?this.hideField("followCreatedEntityTypeList"):this.showField("followCreatedEntityTypeList")}controlColorsField(){this.model.get("scopeColorsDisabled")?this.hideField("tabColorsDisabled"):this.showField("tabColorsDisabled")}actionReset(){this.confirm(this.translate("resetPreferencesConfirmation","messages"),()=>{Espo.Ajax.deleteRequest("Preferences/"+this.model.id).then(e=>{Espo.Ui.success(this.translate("resetPreferencesDone","messages"));this.model.set(e);for(var t in e)this.setInitialAttributeValue(t,e[t]);this.getPreferences().set(this.model.getClonedAttributes());this.getPreferences().trigger("update");this.setIsNotChanged()})})}actionResetDashboard(){this.confirm(this.translate("confirmation","messages"),()=>{Espo.Ajax.postRequest("Preferences/action/resetDashboard",{id:this.model.id}).then(e=>{var t,i=this.isChanged;Espo.Ui.success(this.translate("Done"));this.model.set(e);for(t in e)this.setInitialAttributeValue(t,e[t]);this.getPreferences().set(this.model.getClonedAttributes());this.getPreferences().trigger("update");i||this.setIsNotChanged()})})}exit(e){if("cancel"===e){let e="#User/view/"+this.model.id;this.getAcl().checkModel(this.getUser())||(e="#");this.getRouter().navigate(e,{trigger:!0})}}handleShortcutKeyCtrlS(e){this.handleShortcutKeyCtrlEnter(e)}}e.default=s});define("views/preferences/fields/week-start",["exports","views/fields/enum-int"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Espo.Utils.clone(this.params.options);this.params.options.unshift(-1);this.translatedOptions={};var e=this.getLanguage().get("Global","lists","dayNames")||[],t=(e.forEach((e,t)=>this.translatedOptions[t]=e),this.getConfig().get("weekStart"));this.translatedOptions[-1]=this.translate("Default")+" · "+e[t]}}e.default=s});define("views/preferences/fields/time-zone",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Espo.Utils.clone(this.getHelper().getAppParam("timeZoneList"))||[];this.translatedOptions=this.params.options.reduce((e,t)=>{e[t]=t.replace("/"," / ");return e},{});var e=this.getConfig().get("timeZone")??"",e=e.replace("/"," / ");this.params.options.unshift("");this.translatedOptions[""]=this.translate("Default")+" · "+e}}e.default=s});define("views/preferences/fields/time-format",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Espo.Utils.clone(this.getMetadata().get(["app","dateTime","timeFormatList"])||[]);this.params.options.unshift("");this.translatedOptions=this.translatedOptions||{};this.translatedOptions[""]=this.translate("Default")+" · "+this.getConfig().get("timeFormat")}}e.default=s});define("views/preferences/fields/theme",["exports","views/settings/fields/theme"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Object.keys(this.getMetadata().get("themes")||{}).sort((e,t)=>"EspoRtl"===t?-1:this.translate(e,"themes").localeCompare(this.translate(t,"themes")));this.params.options.unshift("")}setupTranslation(){super.setupTranslation();this.translatedOptions=this.translatedOptions||{};var e=this.getConfig().get("theme"),e=this.translatedOptions[e]||e;this.translatedOptions[""]=this.translate("Default")+" · "+e}afterRenderDetail(){var e=this.getNavbarValue()||this.getDefaultNavbar();e&&this.$el.append(" ").append($("<span>").addClass("text-muted chevron-right")).append(" ").append($("<span>").text(this.translate(e,"themeNavbars")))}}e.default=s});define("views/preferences/fields/tab-list",["exports","views/settings/fields/tab-list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.params.options=this.params.options.filter(e=>{if("_delimiter_"===e||"Home"===e)return!0;var t=this.getMetadata().get(["scopes",e]);if(t)if(!t.disabled)return t.acl?this.getAcl().check(e):!t.tabAclPermission||(t=this.getAcl().getPermissionLevel(t.tabAclPermission),t&&"no"!==t)})}}e.default=s});define("views/preferences/fields/signature",["exports","views/fields/wysiwyg"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{fetchEmptyValueAsNull=!0;setupToolbar(){super.setupToolbar();var e=this.getConfig().get("wysiwygCodeEditorDisabled")?"codeview":"aceCodeview";this.toolbar=[["style",["bold","italic","underline","clear"]],["color",["color"]],["height",["height"]],["table",["espoLink"]],["misc",[e,"fullscreen"]]]}}e.default=s});define("views/preferences/fields/language",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Espo.Utils.clone(this.getMetadata().get(["app","language","list"])||[]).sort((e,t)=>this.getLanguage().translateOption(e,"language").localeCompare(this.getLanguage().translateOption(t,"language")));this.params.options.unshift("");this.translatedOptions=Espo.Utils.clone(this.getLanguage().translate("language","options")||{});var e=this.translatedOptions[this.getConfig().get("language")]||this.getConfig().get("language");this.translatedOptions[""]=this.translate("Default")+" · "+e}}e.default=s});define("views/preferences/fields/default-currency",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Espo.Utils.clone(this.getConfig().get("currencyList")||[]);this.params.options.unshift("");this.translatedOptions=this.translatedOptions||{};this.translatedOptions[""]=this.translate("Default")+" · "+this.getConfig().get("defaultCurrency")}}e.default=s});define("views/preferences/fields/date-format",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=Espo.Utils.clone(this.getMetadata().get(["app","dateTime","dateFormatList"])||[]);this.params.options.unshift("");this.translatedOptions=this.translatedOptions||{};this.translatedOptions[""]=this.translate("Default")+" · "+this.getConfig().get("dateFormat")}}e.default=s});define("views/preferences/fields/dashboard-tab-list",["exports","views/fields/array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{maxItemLength=36;setup(){super.setup();this.translatedOptions={};var e=this.model.get(this.name)||[];e.forEach(e=>{this.translatedOptions[e]=e});this.validations.push("uniqueLabel")}getItemHtml(e){e=e.toString();var t=this.translatedOptions[e]||e;return $("<div>").addClass("list-group-item link-with-role form-inline").attr("data-value",e).append((()=>{var e=document.createElement("span");e.className="drag-handle pull-left";e.append((()=>{var e=document.createElement("span");e.className="fas fa-grip fa-sm";return e})());return e})()).append($("<div>").addClass("pull-left").css("width","calc(100% - var(--36px))").css("display","inline-block").append($("<input>").attr("maxLength",this.maxItemLength).attr("data-name","translatedValue").attr("data-value",e).addClass("role form-control input-sm").attr("value",t).css("width","calc(100% - var(--4px))"))).append($("<div>").css("width","var(--18px)").css("display","inline-block").css("vertical-align","top").append($("<a>").attr("role","button").attr("tabindex","0").addClass("pull-right").attr("data-value",e).attr("data-action","removeValue").append($("<span>").addClass("fas fa-times")))).get(0).outerHTML}validateUniqueLabel(){var e,t=this.model.get(this.name)||[],i=this.model.get("translatedOptions")||{},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(){let i=super.fetch();i.translatedOptions={};(i[this.name]||[]).forEach(e=>{var t=CSS.escape(e);i.translatedOptions[e]=this.$el.find(`input[data-name="translatedValue"][data-value="${t}"]`).val()||e});return i}}e.default=s});define("views/preferences/fields/calendar-slot-duration",["exports","views/fields/enum-int"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){super.setupOptions();this.translatedOptions={};this.translatedOptions[""]=this.translate("Default")}}e.default=s});define("views/preferences/fields/calendar-scroll-hour",["exports","views/fields/enum-int","moment"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{setupOptions(){super.setupOptions();this.translatedOptions={};this.translatedOptions[""]=this.translate("Default");let i=this.getDateTime().getTimeFormat(),s=this.getDateTime().getToday();this.params.options.forEach(e=>{if(""!==e){var t=s+" "+e.toString().padStart(2,"0")+":00";this.translatedOptions[e]=a.default.utc(t).format(i)}})}}e.default=s});define("views/preferences/fields/auto-follow-entity-type-list",["exports","views/fields/multi-enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){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")));super.setup()}}e.default=s});define("views/preferences/fields/assignment-notifications-ignore-entity-type-list",["exports","views/fields/checklist"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isInversed=!0;setupOptions(){this.params.options=Espo.Utils.clone(this.getConfig().get("assignmentNotificationsEntityList"))||[]}}e.default=s});define("views/preferences/fields/assignment-email-notifications-ignore-entity-type-list",["exports","views/fields/checklist"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isInversed=!0;setupOptions(){this.params.options=Espo.Utils.clone(this.getConfig().get("assignmentEmailNotificationsEntityList"))||[]}}e.default=s});define("views/portal-user/list",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultOrderBy="createdAt";defaultOrder="desc";async actionCreate(e){var t={entityType:"Contact",primaryFilterName:"notPortalUsers",createButton:!1,mandatorySelectAttributeList:["salutationName","firstName","lastName","accountName","accountId","emailAddress","emailAddressData","phoneNumber","phoneNumberData"],onSelect:e=>{var t=e[0],i={};i.contactId=t.id;i.contactName=t.attributes.name;if(t.attributes.accountId){var s={};s[t.attributes.accountId]=t.attributes.accountName;i.accountsIds=[t.attributes.accountId];i.accountsNames=s}i.firstName=t.get("firstName");i.lastName=t.get("lastName");i.salutationName=t.get("salutationName");i.emailAddress=t.get("emailAddress");i.emailAddressData=t.get("emailAddressData");i.phoneNumber=t.get("phoneNumber");i.phoneNumberData=t.get("phoneNumberData");i.userName=i.emailAddress;i.userName&&(i.userName=i.userName.toLowerCase());i.type="portal";s=`#${this.scope}/create`;this.getRouter().dispatch(this.scope,"create",{attributes:i});this.getRouter().navigate(s,{trigger:!1})},onSkip:()=>{var e=`#${this.scope}/create`;this.getRouter().dispatch(this.scope,"create",{attributes:{type:"portal"}});this.getRouter().navigate(e,{trigger:!1})}},i=await Espo.loader.requirePromise("modules/crm/views/contact/modals/select-for-portal-user"),i=new i(t);await this.assignView("modal",i);await i.render()}}e.default=s});define("views/o-auth-provider/fields/authorization-params",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let s;class a extends t.default{detailTemplateContent=`
|
||
{{#if isNotEmpty}}
|
||
<div id="{{containerId}}">{{value}}</div>
|
||
{{else}}
|
||
{{#if isSet}}
|
||
<span class="none-value">{{translate 'None'}}</span>
|
||
{{else}}
|
||
<span class="loading-value"></span>
|
||
{{/if}}
|
||
{{/if}}
|
||
`;editTemplateContent=`
|
||
<div id="{{containerId}}">{{value}}</div>
|
||
`;height=46;maxLineDetailCount=80;maxLineEditCount=200;data(){var t=super.data(),e=this.model.attributes[this.name];t.containerId=this.containerId;t.isNotEmpty=null!=e;t.isSet=void 0!==e;try{t.value=e?JSON.stringify(e,null," "):null}catch(e){t.value=null}return t}setup(){super.setup();this.height=this.options.height||this.params.height||this.height;this.maxLineDetailCount=this.options.maxLineDetailCount||this.params.maxLineDetailCount||this.maxLineDetailCount;this.maxLineEditCount=this.options.maxLineEditCount||this.params.maxLineEditCount||this.maxLineEditCount;this.containerId="editor-"+Math.floor(1e4*Math.random()+1).toString();this.mode!==this.MODE_EDIT&&this.mode!==this.MODE_DETAIL||this.wait(this.requireAce());this.on("remove",()=>{this.editor&&this.editor.destroy()});this.validations.push(()=>this.validateJson())}requireAce(){return Espo.loader.requirePromise("lib!ace").then(e=>{s=e;var t=[Espo.loader.requirePromise("lib!ace-ext-language_tools"),Espo.loader.requirePromise("lib!ace-mode-json")];this.getThemeManager().getParam("isDark")&&t.push(Espo.loader.requirePromise("lib!ace-theme-tomorrow_night"));return Promise.all(t)})}afterRender(){super.afterRender();this.$editor=this.$el.find("#"+this.containerId);if(this.$editor.length&&(this.mode===this.MODE_EDIT||this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST)){this.$editor.css("fontSize","var(--font-size-base)");this.mode===this.MODE_EDIT&&this.$editor.css("minHeight",this.height+"px");var e=this.editor=s.edit(this.containerId);e.setOptions({fontFamily:"var(--font-family-monospace)"});e.setFontSize("var(--font-size-base)");e.container.style.lineHeight="var(--line-height-computed)";e.renderer.updateFontSize();e.setOptions({maxLines:this.mode===this.MODE_EDIT?this.maxLineEditCount:this.maxLineDetailCount,enableLiveAutocompletion:!0});this.getThemeManager().getParam("isDark")&&e.setOptions({theme:"ace/theme/tomorrow_night"});if(this.isEditMode()){e.getSession().on("change",()=>{this.trigger("change",{ui:!0})});e.getSession().setUseWrapMode(!0)}if(this.isReadMode()){e.setReadOnly(!0);e.renderer.$cursorLayer.element.style.display="none";e.renderer.setShowGutter(!1)}e.setShowPrintMargin(!1);e.getSession().setUseWorker(!1);e.commands.removeCommand("find");e.setHighlightActiveLine(!1);var t=s.require("ace/mode/json").Mode;e.session.setMode(new t)}}validateJson(){var t=this.editor.getValue();if(t)try{JSON.parse(t)}catch(e){t=this.translate("Not valid");this.showValidationMessage(t,".ace_editor");return!0}return!1}fetch(){let e=null;var t=this.editor.getValue();if(!t)return{[this.name]:null};try{e=JSON.parse(t)}catch(e){}return{[this.name]:e}}}e.default=a});define("views/o-auth-account/records/panels/connection",["exports","views/record/panels/side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
{{#if hasDisconnect}}
|
||
<div class="margin-bottom">
|
||
<span
|
||
class="label label-success label-md"
|
||
>{{translate 'Connected' scope='ExternalAccount'}}</span>
|
||
</div>
|
||
<button
|
||
class="btn btn-default"
|
||
data-action="disconnect"
|
||
>{{translate 'Disconnect' scope='ExternalAccount'}}</button>
|
||
{{/if}}
|
||
|
||
{{#if hasConnect}}
|
||
<div class="margin-bottom">
|
||
<span
|
||
class="label label-default label-md"
|
||
>{{translate 'Disconnected' scope='ExternalAccount'}}</span>
|
||
</div>
|
||
<button
|
||
class="btn btn-default"
|
||
data-action="connect"
|
||
>{{translate 'Connect' scope='ExternalAccount'}}</button>
|
||
{{/if}}
|
||
`;inProcess=!1;data(){var e=void 0!==this.model.attributes.hasAccessToken,t=!this.inProcess&&e&&this.model.attributes.hasAccessToken,e=!this.inProcess&&e&&!this.model.attributes.hasAccessToken&&this.model.attributes.providerIsActive;return{hasDisconnect:t,hasConnect:e}}setup(){super.setup();this.listenTo(this.model,"sync",()=>this.reRender());this.addActionHandler("connect",()=>this.actionConnect());this.addActionHandler("disconnect",()=>this.actionDisconnect())}async actionDisconnect(){this.inProcess=!0;await this.reRender();Espo.Ui.notifyWait();await Espo.Ajax.deleteRequest(`OAuth/${this.model.id}/connection`);await this.model.fetch();Espo.Ui.notify();this.inProcess=!1;await this.reRender()}async actionConnect(){var e=this.model.attributes.data||{},t=e.endpoint,i=e.redirectUri,s=e.clientId,a=e.scope,r=e.prompt,e=e.params,o=window.open("about:blank","ConnectWithOAuth","location=0,status=0,width=800,height=800"),t=await this.processWithData({endpoint:t,redirectUri:i,clientId:s,scope:a,prompt:r,params:e},o);this.inProcess=!0;await this.reRender();Espo.Ui.notifyWait();try{await Espo.Ajax.postRequest(`OAuth/${this.model.id}/connection`,{code:t.code})}catch(e){this.inProcess=!1;await this.reRender();return}await this.model.fetch();Espo.Ui.notify();this.inProcess=!1;await this.reRender()}processWithData(e,t){var i={client_id:e.clientId,redirect_uri:e.redirectUri,response_type:"code",prompt:e.prompt};e.scope&&(i.scope=e.scope);if(e.params)for(var s in e.params)i[s]=e.params[s];var a=Object.entries(i).map(e=>{var[t,i]=e;return t+"="+encodeURIComponent(i)}),a=e.endpoint+"?"+a.join("&");return this.processWindow(a,void 0,t)}processWindow(e,r,o){o.location.href=e;return new Promise((i,e)=>{let s=()=>{window.clearInterval(a);o.closed||o.close();e()},a=window.setInterval(()=>{if(o.closed)s();else{let e;try{e=o.location.href}catch(e){return}if(e){var t=this.parseWindowUrl(e);if(t){if((t.error||t.code)&&r&&t.state!==r){s();Espo.Ui.error("State mismatch",!0)}else if(t.error){s();Espo.Ui.error(t.errorDescription||this.translate("Error"),!0)}else if(t.code){window.clearInterval(a);o.close();i({code:t.code})}}else{s();Espo.Ui.error("Could not parse URL",!0)}}}},300)})}parseWindowUrl(e){try{var t=new URL(e).searchParams;return{code:t.get("code"),state:t.get("state"),error:t.get("error"),errorDescription:t.get("errorDescription")}}catch(e){return null}}}e.default=s});define("views/notification/panel",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="notification/panel";setup(){this.addActionHandler("markAllNotificationsRead",()=>this.actionMarkAllRead());this.addActionHandler("openNotifications",()=>this.actionOpenNotifications());this.addActionHandler("closePanel",()=>this.close());this.addHandler("keydown","",e=>{"Escape"===e.code&&this.close()});var e=this.getCollectionFactory().create("Notification",e=>{this.collection=e;this.collection.maxSize=this.getConfig().get("notificationsMaxSize")||5;this.listenTo(this.collection,"sync",()=>{this.trigger("collection-fetched")})});this.wait(e);this.navbarPanelHeightSpace=this.getThemeManager().getParam("navbarPanelHeightSpace")||100;this.navbarPanelBodyMaxHeight=this.getThemeManager().getParam("navbarPanelBodyMaxHeight")||600;this.once("remove",()=>{$(window).off("resize.notifications-height");if(this.overflowWasHidden){$("body").css("overflow","unset");this.overflowWasHidden=!1}this.collection&&this.collection.abortLastFetch()})}afterRender(){this.collection.fetch().then(()=>this.createRecordView()).then(e=>e.render());var e=$(window);e.off("resize.notifications-height");e.on("resize.notifications-height",this.processSizing.bind(this));this.processSizing();$("#navbar li.notifications-badge-container").addClass("open");this.$el.find("> .panel").focus()}onRemove(){$("#navbar li.notifications-badge-container").removeClass("open")}createRecordView(){var e=this.getMetadata().get(["clientDefs","Notification","recordViews","list"])||"views/notification/record/list";return this.createView("list",e,{selector:".list-container",collection:this.collection,showCount:!1,listLayout:{rows:[[{name:"data",view:"views/notification/fields/container",options:{containerSelector:this.getSelector()}}]],right:{name:"read",view:"views/notification/fields/read",width:"var(--10px)"}}})}actionMarkAllRead(){Espo.Ajax.postRequest("Notification/action/markAllRead").then(()=>this.trigger("all-read"))}processSizing(){var e=$(window),t=e.height(),e=e.width(),i=this.$el.find(".panel-heading").outerHeight(),s={};if(e<=this.getThemeManager().getParam("screenWidthXs")){s.height=t-i+"px";s.overflow="auto";$("body").css("overflow","hidden");this.overflowWasHidden=!0}else{s.height="unset";s.overflow="none";if(this.overflowWasHidden){$("body").css("overflow","unset");this.overflowWasHidden=!1}if(t-this.navbarPanelBodyMaxHeight<this.navbarPanelHeightSpace){e=t-this.navbarPanelHeightSpace;s.maxHeight=e+"px"}}this.$el.find(".panel-body").css(s)}close(){this.trigger("close")}actionOpenNotifications(){this.getRouter().navigate("#Notification",{trigger:!0});this.close()}}e.default=s});define("views/notification/list",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="notification/list";setup(){this.addActionHandler("refresh",()=>this.actionRefresh());this.addActionHandler("markAllNotificationsRead",()=>this.actionMarkAllRead());var e=this.getCollectionFactory().create("Notification").then(e=>{this.collection=e;this.collection.maxSize=this.getConfig().get("recordsPerPage")||20});this.wait(e)}actionRefresh(){Espo.Ui.notifyWait();let e=this.$el.find('[data-action="refresh"]');e.addClass("disabled").attr("disabled","disabled");this.animateRefreshButton();this.getRecordView().showNewRecords().then(()=>{Espo.Ui.notify(!1)}).finally(()=>e.removeClass("disabled").removeAttr("disabled"))}animateRefreshButton(){let e=this.element.querySelector('button[data-action="refresh"] span');if(e){e.classList.add("animation-spin-fast");setTimeout(()=>e.classList.remove("animation-spin-fast"),500)}}afterRender(){let e=this.getMetadata().get(["clientDefs","Notification","recordViews","list"])||"views/notification/record/list",t={selector:".notification-list",collection:this.collection,showCount:!1,listLayout:{rows:[[{name:"data",view:"views/notification/fields/container",options:{containerSelector:this.getSelector()}}]],right:{name:"read",view:"views/notification/fields/read-with-menu",width:"var(--10px)"}}};this.collection.fetch().then(()=>this.createView("list",e,t)).then(e=>e.render()).then(e=>{e.$el.find("> .list > .list-group")})}actionMarkAllRead(){Espo.Ui.notifyWait();let e=this.$el.find('[data-action="markAllNotificationsRead"]');e.attr("disabled","disabled").addClass("disabled");Espo.Ajax.postRequest("Notification/action/markAllRead").then(()=>{this.trigger("all-read");Espo.Ui.notify(!1);this.$el.find(".badge-circle-warning").remove()}).finally(()=>e.removeAttr("disabled").removeClass("disabled"))}getRecordView(){return this.getView("list")}}e.default=s});define("views/notification/badge",["exports","view","di","web-socket-manager"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);s=n(s);var a;let r,o;function n(e){return e&&e.__esModule?e:{default:e}}function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d extends t.default{constructor(){super(...arguments);o(this)}template="notification/badge";notificationsCheckInterval=10;groupedCheckInterval=15;waitInterval=2;useWebSocket=!1;timeout=null;groupedTimeout=null;popupNotificationsData;soundPath="client/sounds/pop_cork";webSocketManager=r(this);setup(){this.addActionHandler("showNotifications",()=>this.showNotifications());this.soundPath=this.getBasePath()+(this.getConfig().get("notificationSound")||this.soundPath);this.notificationSoundsDisabled=!0;this.useWebSocket=this.webSocketManager.isEnabled();let e=()=>{this.timeout&&clearTimeout(this.timeout);this.groupedTimeout&&clearTimeout(this.groupedTimeout);for(var e in this.popupTimeouts)clearTimeout(this.popupTimeouts[e])};this.once("remove",()=>e());this.listenToOnce(this.getHelper().router,"logout",()=>e());this.notificationsCheckInterval=this.getConfig().get("notificationsCheckInterval")||this.notificationsCheckInterval;this.groupedCheckInterval=this.getConfig().get("popupNotificationsCheckInterval")||this.groupedCheckInterval;this.lastId=0;this.shownNotificationIds=[];this.closedNotificationIds=[];this.popupTimeouts={};delete localStorage.messageBlockPlayNotificationSound;delete localStorage.messageClosePopupNotificationId;delete localStorage.messageNotificationRead;window.addEventListener("storage",e=>{if("messageClosePopupNotificationId"===e.key){var t=localStorage.getItem("messageClosePopupNotificationId");if(t){var i="popup-"+t;if(this.hasView(i)){this.markPopupRemoved(t);this.clearView(i)}}}"messageNotificationRead"===e.key&&!this.isBroadcastingNotificationRead&&localStorage.getItem("messageNotificationRead")&&this.checkUpdates()},!1)}afterRender(){this.$badge=this.$el.find(".notifications-button");this.$number=this.$el.find(".number-badge");this.runCheckUpdates(!0);this.$popupContainer=$("#popup-notifications-container");$(this.$popupContainer).length||(this.$popupContainer=$("<div>").attr("id","popup-notifications-container").addClass("hidden").appendTo("body"));var e,t=this.popupNotificationsData=this.getMetadata().get("app.popupNotifications")||{};for(e in t)this.checkPopupNotifications(e);this.hasGroupedPopupNotifications()&&this.checkGroupedPopupNotifications()}playSound(){if(!this.notificationSoundsDisabled){var e=$("<audio>").attr("autoplay","autoplay").append($("<source>").attr("src",this.soundPath+".mp3").attr("type","audio/mpeg")).append($("<source>").attr("src",this.soundPath+".ogg").attr("type","audio/ogg")).append($("<embed>").attr("src",this.soundPath+".mp3").attr("hidden","true").attr("autostart","true").attr("false","false")).get(0);e.volume=.3;e.play()}}showNotRead(e){this.$badge.attr("title",this.translate("New notifications")+": "+e);this.$number.removeClass("hidden").html(e.toString());this.getHelper().pageTitle.setNotificationNumber(e)}hideNotRead(){this.$badge.attr("title",this.translate("Notifications"));this.$number.addClass("hidden").html("");this.getHelper().pageTitle.setNotificationNumber(0)}checkBypass(){var e=this.getRouter().getLast()||{},t=(e.options||{}).page||null;return!("Admin"!==e.controller||"page"!==e.action||!["upgrade","extensions"].includes(t))}async checkUpdates(e){if(!this.checkBypass()){var t=await Espo.Ajax.getRequest("Notification/action/notReadCount");if(!e&&t>this.unreadCount){var i=localStorage.getItem("messageBlockPlayNotificationSound");if(!i){this.playSound();localStorage.setItem("messageBlockPlayNotificationSound","true");setTimeout(()=>{delete localStorage.messageBlockPlayNotificationSound},1e3*this.notificationsCheckInterval)}}this.unreadCount=t;t?this.showNotRead(t):this.hideNotRead()}}runCheckUpdates(e){this.checkUpdates(e);this.useWebSocket?this.initWebSocketCheckUpdates():this.timeout=setTimeout(()=>this.runCheckUpdates(),1e3*this.notificationsCheckInterval)}initWebSocketCheckUpdates(){let t=!1,i=!1,s=()=>{if(t)i=!0;else{this.checkUpdates();t=!0;setTimeout(()=>{var e=i;t=!1;i=!1;e&&s()},1e3*this.waitInterval)}};this.webSocketManager.subscribe("newNotification",()=>s());this.webSocketManager.subscribeToReconnect(s);this.once("remove",()=>this.webSocketManager.unsubscribe("newNotification"));this.once("remove",()=>this.webSocketManager.unsubscribeFromReconnect(s))}hasGroupedPopupNotifications(){for(var e in this.popupNotificationsData){e=this.popupNotificationsData[e]||{};if(e.grouped&&(!e.portalDisabled||!this.getUser().isPortal()))return!0}return!1}checkGroupedPopupNotifications(){this.checkBypass()||Espo.Ajax.getRequest("PopupNotification/action/grouped").then(e=>{for(let t in e){var i=e[t];i.forEach(e=>this.showPopupNotification(t,e))}});this.useWebSocket||(this.groupedTimeout=setTimeout(()=>this.checkGroupedPopupNotifications(),1e3*this.groupedCheckInterval))}checkPopupNotifications(i,t){var s=this.popupNotificationsData[i]||{};let a=s.url,r=s.interval;var o=s.disabled||!1;if(!(o||s.portalDisabled&&this.getUser().isPortal())){let e=this.useWebSocket&&s.useWebSocket;if(e){o="popupNotifications."+(s.webSocketCategory||i);this.webSocketManager.subscribe(o,(e,t)=>{t.list&&t.list.forEach(e=>{this.showPopupNotification(i,e)})})}s.grouped||a&&r&&new Promise(e=>{this.checkBypass()?e():Espo.Ajax.getRequest(a).then(e=>e.forEach(e=>this.showPopupNotification(i,e,t))).finally(()=>e())}).then(()=>{e||(this.popupTimeouts[i]=setTimeout(()=>this.checkPopupNotifications(i,!0),1e3*r))})}}showPopupNotification(e,i,s){var a=this.popupNotificationsData[e].view;if(a){let t=i.id||null;if(t){t=e+"_"+t;if(~this.shownNotificationIds.indexOf(t)){var r=this.getView("popup-"+t);r&&r.trigger("update-data",i.data);return}if(~this.closedNotificationIds.indexOf(t))return}else t=this.lastId++;this.shownNotificationIds.push(t);this.createView("popup-"+t,a,{notificationData:i.data||{},notificationId:i.id,id:t,isFirstCheck:!s},e=>{e.render();this.$popupContainer.removeClass("hidden");this.listenTo(e,"remove",()=>{this.markPopupRemoved(t);localStorage.setItem("messageClosePopupNotificationId",t)})})}}markPopupRemoved(e){var t=this.shownNotificationIds.indexOf(e);-1<t&&this.shownNotificationIds.splice(t,1);0===this.shownNotificationIds.length&&this.$popupContainer.addClass("hidden");this.closedNotificationIds.push(e)}broadcastNotificationsRead(){if(this.useWebSocket){this.isBroadcastingNotificationRead=!0;localStorage.setItem("messageNotificationRead","true");setTimeout(()=>{this.isBroadcastingNotificationRead=!1;delete localStorage.messageNotificationRead},500)}}showNotifications(){this.closeNotifications();let t=$("<div>").attr("id","notifications-panel");t.appendTo(this.$el.find(".notifications-panel-container"));this.createView("panel","views/notification/panel",{fullSelector:"#notifications-panel"},e=>{e.render();this.$el.closest(".navbar-body").removeClass("in");this.listenTo(e,"all-read",()=>{this.hideNotRead();this.$el.find(".badge-circle-warning").remove();this.broadcastNotificationsRead()});this.listenTo(e,"collection-fetched",()=>{this.checkUpdates();this.broadcastNotificationsRead()});this.listenToOnce(e,"close",()=>{this.closeNotifications()})});var e=$(document);e.on("mouseup.notification",e=>{t.is(e.target)||0!==t.has(e.target).length||$(e.target).closest("div.modal-dialog").length||e.target.classList.contains("modal")||this.closeNotifications()});window.innerWidth<this.getThemeManager().getParam("screenWidthXs")&&this.listenToOnce(this.getRouter(),"route",()=>{this.closeNotifications()})}closeNotifications(){var e=$("#notifications-panel"),e=(e.remove(),$(document));this.hasView("panel")&&this.getView("panel").remove();e.off("mouseup.notification")}static#_=a=()=>[r,o]=l(this,[],[[(0,i.inject)(s.default),0,"webSocketManager"]],0,void 0,t.default).e}a();e.default=d});define("views/notification/items/user-reaction",["exports","views/notification/items/base","helpers/misc/reactions"],function(e,t,o){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);o=i(o);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{templateContent=`
|
||
<div class="stream-head-container">
|
||
<div class="pull-left">
|
||
{{{avatar}}}
|
||
</div>
|
||
<div class="stream-head-text-container">
|
||
<span
|
||
class="{{reactionIconClass}} text-muted action icon"
|
||
style="cursor: pointer;"
|
||
title="{{translate 'View'}}"
|
||
data-action="quickView"
|
||
data-id="{{noteId}}"
|
||
data-scope="Note"
|
||
></span><span class="text-muted message">{{{message}}}</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="stream-date-container">
|
||
<span class="text-muted small">{{{createdAt}}}</span>
|
||
</div>
|
||
`;messageName="userPostReaction";reactionIconClass;noteId;data(){return{...super.data(),reactionIconClass:this.reactionIconClass,noteId:this.noteId}}setup(){var e=this.model.attributes.data||{},t=this.model.attributes.relatedParentId,i=this.model.attributes.relatedParentType;this.userId=this.model.attributes.createdById||e.userId;this.noteId=this.model.attributes.relatedId;var s=e.userName||this.model.attributes.createdByName,a=(this.messageData.type=this.translate(e.type,"reactions"),new o.default),a=(this.reactionIconClass=a.getIconClass(e.type),document.createElement("a"));a.href="#User/view/"+this.model.attributes.createdById;a.dataset.id=this.model.attributes.createdById;a.dataset.scope="User";a.textContent=s;this.messageData.user=a;if(t&&i){s=document.createElement("a");s.href=`#${i}/view/`+t;s.dataset.id=t;s.dataset.scope=i;s.textContent=e.entityName||i;this.messageData.entityType=this.translateEntityType(i);this.messageData.entity=s;this.messageName="userPostInParentReaction"}let r=this.getLanguage().translateOption("Post","type","Note");this.toUpperCaseFirstLetter()||(r=Espo.Utils.lowerCaseFirst(r));a=document.createElement("a");a.href="#Note/view/"+this.noteId;a.dataset.id=this.noteId;a.dataset.scope="Note";a.textContent=r;this.messageData.post=a;this.createMessage()}}e.default=s});define("views/notification/items/system",["exports","views/notification/items/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.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","dompurify"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a 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=this.getHelper().transformMarkdownText(t);this.messageTemplate=i.default.sanitize(t,{}).toString();this.userId=e.userId;this.style=e.style||"text-muted";this.messageData.entityType=this.translateEntityType(e.entityType);this.messageData.user=$("<a>").attr("href","#User/view/"+e.userId).attr("data-id",e.userId).attr("data-scope","User").text(e.userName);this.messageData.entity=$("<a>").attr("href","#"+e.entityType+"/view/"+e.entityId).attr("data-id",e.entityId).attr("data-scope",e.entityType).text(e.entityName);this.createMessage()}}e.default=a});define("views/notification/items/entity-removed",["exports","views/notification/items/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.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=$("<a>").attr("href","#User/view/"+e.userId).attr("data-id",e.userId).attr("data-scope","User").text(e.userName);this.messageData.entity=$("<a>").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){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{messageName="emailReceived";template="notification/items/email-received";data(){return{...super.data(),emailId:this.emailId,emailName:this.emailName}}setup(){var e=this.model.get("data")||{};this.userId=e.userId;this.messageData.entityType=this.translateEntityType(e.entityType);if(e.personEntityId)this.messageData.from=$("<a>").attr("href","#"+e.personEntityType+"/view/"+e.personEntityId).attr("data-id",e.personEntityId).attr("data-scope",e.personEntityType).text(e.personEntityName);else{var t=e.fromString||this.translate("empty address");this.messageData.from=$("<span>").text(t)}this.emailId=e.emailId;this.emailName=e.emailName;this.createMessage()}}e.default=s});define("views/notification/items/email-inbox",["exports","views/notification/items/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{messageName="emailInbox";templateContent=`
|
||
<div class="stream-head-container">
|
||
<div class="pull-left">{{{avatar}}}</div>
|
||
<div class="stream-head-text-container">
|
||
<span
|
||
class="fas fa-envelope text-muted action icon"
|
||
style="cursor: pointer;"
|
||
title="{{translate 'View'}}"
|
||
data-action="quickView"
|
||
data-id="{{model.attributes.relatedId}}"
|
||
data-scope="Email"
|
||
></span><span class="text-muted message">{{{message}}}</span>
|
||
</div>
|
||
</div>
|
||
<div class="stream-date-container">
|
||
<span class="text-muted small">{{{createdAt}}}</span>
|
||
</div>
|
||
`;setup(){var e=this.model.attributes.data||{};this.userId=e.userId;this.messageData.entityType=this.translateEntityType("Email");var t=document.createElement("a");t.href="#Email/view/"+this.model.attributes.relatedId;t.dataset.id=this.model.attributes.relatedId;t.dataset.scope="Email";t.innerText=e.emailName;var i=document.createElement("a");i.href="#User/view/"+e.userId;i.dataset.id=e.userId;i.dataset.scope="User";i.innerText=e.userName;this.messageData.entity=t;this.messageData.user=i;this.createMessage()}}e.default=s});define("views/notification/items/collaborating",["exports","views/notification/items/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="stream-head-container">
|
||
<div class="pull-left">
|
||
{{{avatar}}}
|
||
</div>
|
||
<div class="stream-head-text-container text-muted">
|
||
{{#if iconHtml}}{{{iconHtml}}}{{/if}}<span class="message"">{{{message}}}</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="stream-date-container">
|
||
<span class="text-muted small">{{{createdAt}}}</span>
|
||
</div>
|
||
`;messageName="addedToCollaborators";data(){var e=this.model.attributes.relatedType&&this.model.attributes.relatedId?this.getIconHtml(this.model.attributes.relatedType,this.model.attributes.relatedId):null;return{...super.data(),iconHtml:e}}setup(){this.userId=this.model.attributes.createdById;this.messageData.user=(()=>{var e=document.createElement("a");e.href="#User/view/"+this.model.attributes.createdById;e.dataset.id=this.model.attributes.createdById;e.dataset.scope="User";e.textContent=this.model.attributes.createdByName;return e})();this.messageData.entityType=this.translateEntityType(this.model.attributes.relatedType);this.messageData.entity="field:related";this.createMessage()}}e.default=s});define("views/notification/items/assign",["exports","views/notification/items/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.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=$("<a>").attr("href","#"+e.entityType+"/view/"+e.entityId).attr("data-id",e.entityId).attr("data-scope",e.entityType).text(e.entityName);this.messageData.user=$("<a>").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){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="read";listTemplate="notification/fields/read";detailTemplate="notification/fields/read";inlineEditDisabled=!0;data(){return{isRead:this.model.get("read")}}}e.default=s});define("views/notification/fields/read-with-menu",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="read";listTemplate="notification/fields/read-with-menu";detailTemplate="notification/fields/read-with-menu";inlineEditDisabled=!0;data(){return{isRead:this.model.get("read")}}}e.default=s});define("views/notification/fields/container",["exports","views/fields/base","views/notification/record/list"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="notification";listTemplate="notification/fields/container";detailTemplate="notification/fields/container";types=["Assign","EmailReceived","EntityRemoved","Message","System","UserReaction","Collaborating"];inlineEditDisabled=!0;isGroupExpanded=!1;data(){return{hasGrouped:1<(this.model.attributes.groupedCount??0),isGroupExpanded:this.isGroupExpanded}}setup(){switch(this.model.attributes.type){case"Note":this.processNote(this.model.attributes.noteData);break;case"MentionInPost":this.processMentionInPost(this.model.attributes.noteData);break;default:this.process()}this.addActionHandler("showGrouped",()=>this.showGrouped())}process(){let t=this.model.get("type");if(t){t=Espo.Utils.upperCaseFirst(t.replace(/ /g,""));let e=this.getMetadata().get("clientDefs.Notification.itemViews."+t);if(!e){if(!this.types.includes(t))return;e="views/notification/items/"+Espo.Utils.camelCaseToHyphen(t)}var i=this.options.containerSelector??this.getSelector();this.createView("notification",e,{model:this.model,fullSelector:`${i} li[data-id="${this.model.id}"]`})}}processNote(s){if(s){this.wait(!0);this.getModelFactory().create("Note",e=>{e.set(s);let t=this.getMetadata().get("clientDefs.Note.itemViews."+s.type);t=t||"views/stream/notes/"+Espo.Utils.camelCaseToHyphen(s.type);var i=this.options.containerSelector??this.getSelector();this.createView("notification",t,{model:e,isUserStream:!0,fullSelector:`${i} li[data-id="${this.model.id}"] .cell[data-name="data"]`,onlyContent:!0,isNotification:!0});this.wait(!1)})}}processMentionInPost(i){if(i){this.wait(!0);this.getModelFactory().create("Note",e=>{e.set(i);var t=this.options.containerSelector??this.getSelector();this.createView("notification","views/stream/notes/mention-in-post",{model:e,userId:this.model.get("userId"),isUserStream:!0,fullSelector:`${t} li[data-id="${this.model.id}"]`,onlyContent:!0,isNotification:!0});this.wait(!1)})}}async showGrouped(){var e=await this.getCollectionFactory().create("Notification"),t=(e.url=`Notification/${this.model.id}/group`,this.element.querySelector('a[data-action="showGrouped"]'));t instanceof HTMLElement&&t.classList.add("disabled");Espo.Ui.notifyWait();try{await e.fetch()}catch(e){await this.reRender();return}Espo.Ui.notify();this.isGroupExpanded=!0;t=new i.default({collection:e,showCount:!1,selector:".notification-grouped",listLayout:{rows:[[{name:"data",view:"views/notification/fields/container"}]],right:{name:"read",view:"views/notification/fields/read",width:"var(--10px)"}}});await this.assignView("groupedList",t);await this.reRender()}}e.default=a});define("views/note/detail",["exports","views/main","helpers/util/debounce","di","web-socket-manager"],function(e,t,i,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=l(t);i=l(i);a=l(a);var r;let o,n;function l(e){return e&&e.__esModule?e:{default:e}}function d(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class h extends t.default{constructor(){super(...arguments);n(this)}templateContent=`
|
||
<div class="header page-header">{{{header}}}</div>
|
||
<div class="record list-container list-container-panel block-center">{{{record}}}</div>
|
||
`;isDeleted=!1;webSocketDebounceHelper;webSocketManager=o(this);setup(){this.scope=this.model.entityType;this.setupHeader();this.setupRecord();this.setupWebSocket();this.listenToOnce(this.model,"remove",()=>{this.clearView("record");this.isDeleted=!0;this.getHeaderView().reRender()});this.addActionHandler("fullRefresh",()=>this.actionFullRefresh())}setupHeader(){this.createView("header","views/header",{selector:"> .header",scope:this.scope,fontSizeFlexible:!0})}setupRecord(){this.wait((async()=>{this.collection=await this.getCollectionFactory().create(this.scope);this.collection.add(this.model);var e=await this.createView("record","views/stream/record/list",{selector:"> .record",collection:this.collection,isUserStream:!0});this.webSocketDebounceHelper&&this.listenTo(e,"before:save",()=>this.webSocketDebounceHelper.block())})())}getHeader(){let t=this.model.attributes.parentType,i=this.model.attributes.parentId;var e=document.createElement("span");e.textContent=this.getLanguage().translateOption(this.model.attributes.type,"type","Note");(this.model.attributes.deleted||this.isDeleted)&&(e.style.textDecoration="line-through");e.title=this.translate("clickToRefresh","messages");e.dataset.action="fullRefresh";e.style.cursor="pointer";return t&&i?this.buildHeaderHtml([(()=>{var e=document.createElement("a");e.href="#"+t;e.textContent=this.translate(t,"scopeNamesPlural");return e})(),(()=>{var e=document.createElement("a");e.href=`#${t}/view/`+i;e.textContent=this.model.attributes.parentName||i;return e})(),(()=>{var e=document.createElement("span");e.textContent=this.translate("Stream","scopeNames");return e})(),e]):this.buildHeaderHtml([(()=>{var e=document.createElement("span");e.textContent=this.translate("Stream","scopeNames");return e})(),e])}async actionFullRefresh(){Espo.Ui.notifyWait();await this.model.fetch();Espo.Ui.notify()}onRemove(){super.onRemove();this.webSocketManager.isEnabled()&&this.webSocketManager.unsubscribe("recordUpdate.Note."+this.model.id)}setupWebSocket(){if(this.webSocketManager.isEnabled()){this.webSocketDebounceHelper=new i.default({handler:()=>this.handleRecordUpdate()});var e="recordUpdate.Note."+this.model.id;this.webSocketManager.subscribe(e,()=>this.webSocketDebounceHelper.process())}}async handleRecordUpdate(){await this.model.fetch({highlight:!0})}static#_=r=()=>[o,n]=d(this,[],[[(0,s.inject)(a.default),0,"webSocketManager"]],0,void 0,t.default).e}e.default=h;r()});define("views/note/record/edit",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{sideView=null;isWide=!0;setup(){super.setup();this.controlRequiredFields();this.listenTo(this.model,"change:attachmentsIds",()=>{this.controlRequiredFields()})}controlRequiredFields(){(this.model.get("attachmentsIds")||[]).length?this.setFieldNotRequired("post"):this.setFieldRequired("post")}}e.default=s});define("views/note/modals/edit",["exports","views/modals/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{fullFormDisabled=!0;setup(){super.setup();this.once("ready",()=>{let i=this.getView("edit")||this.getView("record");if(i){var e=i.getFieldView("post");e&&this.listenTo(e,"add-files",e=>{var t=i.getFieldView("attachments");t&&t.uploadFiles(e)})}})}}e.default=s});define("views/note/fields/users",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{init(){this.messagePermission=this.getAcl().getPermissionLevel("message");this.portalPermission=this.getAcl().getPermissionLevel("portal");"no"===this.messagePermission&&"no"===this.portalPermission&&(this.readOnly=!0);super.init()}getSelectBoolFilterList(){return"team"===this.messagePermission?["onlyMyTeam"]:"yes"===this.portalPermission?null:void 0}getSelectPrimaryFilterName(){return"yes"===this.portalPermission&&"no"===this.messagePermission?"activePortal":"active"}getSelectFilterList(){return"yes"===this.portalPermission?"no"===this.messagePermission?["activePortal"]:["active","activePortal"]:null}prepareEditItemElement(e,t){var i=super.prepareEditItemElement(e,t),s=this.getHelper().getAvatarHtml(e,"small",18,"avatar-link");if(s){s=(new DOMParser).parseFromString(s,"text/html").body.childNodes[0];i.prepend(s)}return i}}e.default=s});define("views/note/fields/type",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchTypeList=["anyOf","noneOf"]}e.default=s});define("views/note/fields/related",["exports","views/fields/link-parent"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){this.foreignScopeList=Object.keys(this.getMetadata().get("scopes")).filter(e=>{var t=this.getMetadata().get("scopes."+e)||{};return!(!t.entity||!t.object)&&this.getAcl().checkScope(e,"stream")});super.setup()}}e.default=s});define("views/note/fields/parent",["exports","views/fields/link-parent"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){this.foreignScopeList=Object.keys(this.getMetadata().get("scopes")).filter(e=>{var t=this.getMetadata().get("scopes."+e)||{};return!!(t.stream&&t.entity&&t.object)&&this.getAcl().checkScope(e,"stream")});super.setup()}}e.default=s});define("views/modals/view-map",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent='<div class="map-container no-side-margin">{{{map}}}</div>';backdrop=!0;setup(){var e=this.options.field,t="#AddressMap/view/"+this.model.entityType+"/"+this.model.id+"/"+e,i=this.translate(e,"fields",this.model.entityType),t=(this.headerElement=$("<a>").attr("href","#"+t).text(i).get(0),this.model.getFieldParam(e+"Map","view")||this.getFieldManager().getViewName("map"));this.createView("map",t,{model:this.model,name:e+"Map",selector:".map-container",height:"auto"})}}e.default=s});define("views/modals/select-records-with-categories",["exports","views/modals/select-records"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/select-records-with-categories";categoryField="category";categoryFilterType="inCategory";categoryScope;isExpanded=!0;isCategoryMultiple;data(){return{...super.data(),categoriesDisabled:this.categoriesDisabled}}setup(){this.scope=this.entityType=this.options.scope||this.scope||this.options.entityType;this.categoryScope=this.categoryScope||this.scope+"Category";this.categoryField=this.getMetadata().get(`scopes.${this.categoryScope}.categoryField`)||this.categoryField;this.isCategoryMultiple="linkMultiple"===this.getMetadata().get(`entityDefs.${this.scope}.fields.${this.categoryField}.type`);this.categoriesDisabled=this.categoriesDisabled||this.getMetadata().get(["scopes",this.categoryScope,"disabled"])||!this.getAcl().checkScope(this.categoryScope);super.setup();this.addActionHandler("toggleExpandedFromNavigation",()=>this.actionToggleExpandedFromNavigation())}setupList(){this.categoriesDisabled||this.setupCategories();super.setupList()}setupCategories(){this.getCollectionFactory().create(this.categoryScope,e=>{this.treeCollection=e;e.url=e.entityType+"/action/listTree";e.data.onlyNotEmpty=!0;e.fetch().then(()=>this.createCategoriesView())})}getCategoriesView(){return this.getView("categories")}createCategoriesView(){this.createView("categories","views/record/list-tree",{collection:this.treeCollection,selector:".categories-container",selectable:!0,readOnly:!0,showRoot:!0,buttonsDisabled:!0,checkboxes:!1,isExpanded:this.isExpanded},e=>{this.isRendered()?e.render():this.listenToOnce(this,"after:render",()=>e.render());this.listenTo(e,"select",e=>{this.currentCategoryId=null;this.currentCategoryName="";if(e&&e.id){this.currentCategoryId=e.id;this.currentCategoryName=e.get("name")}this.applyCategoryToCollection();Espo.Ui.notifyWait();this.collection.fetch().then(()=>Espo.Ui.notify(!1))})})}async actionToggleExpandedFromNavigation(){this.isExpanded=!this.isExpanded;var e=this.element.querySelector('a[data-role="expandButtonContainer"]');e&&e.classList.add("disabled");this.applyCategoryToCollection();this.getCategoriesView().isExpanded=this.isExpanded;Espo.Ui.notifyWait();await this.collection.fetch();this.getCategoriesView().reRender().then(()=>{});Espo.Ui.notify()}applyCategoryToCollection(){this.collection.whereFunction=()=>{let e;var t=this.isExpanded;t||this.hasTextFilter()?this.currentCategoryId&&(e={attribute:this.categoryField,type:this.categoryFilterType,value:this.currentCategoryId}):e=this.isCategoryMultiple?this.currentCategoryId?{attribute:this.categoryField,type:"linkedWith",value:[this.currentCategoryId]}:{attribute:this.categoryField,type:"isNotLinked"}:this.currentCategoryId?{attribute:this.categoryField+"Id",type:"equals",value:this.currentCategoryId}:{attribute:this.categoryField+"Id",type:"isNull"};if(e)return[e]}}hasTextFilter(){return!!this.collection.data.textFilter||this.collection.where&&this.collection.where.find(e=>"textFilter"===e.type)}}e.default=s});define("views/modals/select-category-tree-records",["exports","views/modals/select-records","search-manager"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setup(){this.filters=this.options.filters||{};this.boolFilterList=this.options.boolFilterList||{};this.primaryFilterName=this.options.primaryFilterName||null;"multiple"in this.options&&(this.multiple=this.options.multiple);this.createButton=!1;this.massRelateEnabled=this.options.massRelateEnabled;this.buttonList=[{name:"cancel",label:"Cancel"}];this.multiple&&this.buttonList.unshift({name:"select",style:"danger",label:"Select",onClick:e=>{var t=this.getRecordView();if(t.allResultIsChecked){var i={massRelate:!0,where:t.getWhereForAllResult(),searchParams:this.collection.data};this.trigger("select",i);this.options.onMassSelect&&this.options.onMassSelect(i)}else{i=t.getSelected();if(i.length){this.trigger("select",i);this.options.onSelect&&this.options.onSelect(i)}}e.close()}});this.scope=this.entityType=this.options.entityType||this.options.scope;this.$header=$("<span>");this.$header.append($("<span>").text(this.translate("Select")+" · "+this.getLanguage().translate(this.entityType,"scopeNamesPlural")));this.$header.prepend(this.getHelper().getScopeColorIconHtml(this.entityType));this.waitForView("list");this.getCollectionFactory().create(this.entityType,e=>{e.maxSize=this.getConfig().get("recordsPerPageSelect")||5;this.collection=e;let t=new s.default(e);t.emptyOnReset=!0;this.filters&&t.setAdvanced(this.filters);this.boolFilterList&&t.setBool(this.boolFilterList);this.primaryFilterName&&t.setPrimary(this.primaryFilterName);e.where=t.getWhere();e.url=e.entityType+"/action/listTree";let i=this.getMetadata().get(`clientDefs.${this.entityType}.recordViews.listSelectCategoryTree`)||"views/record/list-tree";this.listenToOnce(e,"sync",()=>{this.createView("list",i,{collection:e,fullSelector:this.containerSelector+" .list-container",readOnly:!0,selectable:!0,checkboxes:this.multiple,massActionsDisabled:!0,searchManager:t,checkAllResultDisabled:!0,buttonsDisabled:!0},e=>{e.once("select",e=>{Array.isArray(e)||(e=[e]);this.trigger("select",e);this.options.onSelect&&this.options.onSelect(e);this.close()})})});e.fetch()})}}e.default=a});define("views/modals/save-filters",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/save-filters";cssName="save-filters";data(){return{dashletList:this.dashletList}}setup(){this.buttonList=[{name:"save",label:"Save",style:"primary"},{name:"cancel",label:"Cancel"}];this.headerText=this.translate("Save Filter");var e=new i.default;this.createView("name","views/fields/varchar",{selector:'.field[data-name="name"]',defs:{name:"name",params:{required:!0}},mode:"edit",model:e,labelText:this.translate("name","fields")})}getFieldView(e){return this.getView(e)}actionSave(){var e=this.getFieldView("name");e.fetchToModel();if(!e.validate())return this.trigger("save",e.model.get("name")),!0}}e.default=a});define("views/modals/resolve-save-conflict",["exports","views/modal","ui/select"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{templateContent=`
|
||
<div class="margin-bottom-3x">
|
||
<p>{{translate 'resolveSaveConflict' category='messages'}}</p>
|
||
</div>
|
||
|
||
<div class="panel panel-default no-side-margin">
|
||
<table class="table" style="table-layout: fixed;">
|
||
<thead>
|
||
<tr>
|
||
<th style="width: 25%">{{translate 'Field'}}</th>
|
||
<th style="width: 25%">{{translate 'Resolution'}}</th>
|
||
<th>{{translate 'Value'}}</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{{#each dataList}}
|
||
<tr>
|
||
<td class="cell cell-nowrap">
|
||
<span>
|
||
{{translate field category='fields' scope=../entityType}}
|
||
</span>
|
||
</td>
|
||
<td class="cell">
|
||
<select class="form-control" data-name="resolution" data-field="{{field}}">
|
||
{{options ../resolutionList resolution field='saveConflictResolution'}}
|
||
</select>
|
||
</td>
|
||
<td class="cell">
|
||
<div data-name="field" data-field="{{field}}">
|
||
{{{var viewKey ../this}}}
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
{{/each}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
`;backdrop=!0;resolutionList=["current","actual","original"];defaultResolution="current";fieldList;data(){let i=[];this.fieldList.forEach(e=>{var t={field:e,viewKey:e+"Field",resolution:this.defaultResolution};i.push(t)});return{dataList:i,entityType:this.entityType,resolutionList:this.resolutionList}}setup(){this.headerText=this.translate("Resolve Conflict");this.buttonList=[{name:"apply",label:"Apply",style:"danger"},{name:"cancel",label:"Cancel"}];this.entityType=this.model.entityType;this.originalModel=this.model;this.originalAttributes=Espo.Utils.cloneDeep(this.options.originalAttributes);this.currentAttributes=Espo.Utils.cloneDeep(this.options.currentAttributes);this.actualAttributes=Espo.Utils.cloneDeep(this.options.actualAttributes);let s=this.options.attributeList,a=[];this.getFieldManager().getEntityTypeFieldList(this.entityType).forEach(e=>{let t=this.getFieldManager().getEntityTypeFieldAttributeList(this.entityType,e);var i=s.filter(e=>t.includes(e));i.length&&a.push(e)});this.fieldList=a;this.wait(this.getModelFactory().create(this.entityType).then(e=>{this.model=e;this.fieldList.forEach(e=>{this.setResolution(e,this.defaultResolution)});this.fieldList.forEach(e=>{this.createField(e)})}))}setResolution(e,t){var i,s=this.getFieldManager().getEntityTypeFieldAttributeList(this.entityType,e),a={};let r=this.currentAttributes;"actual"===t?r=this.actualAttributes:"original"===t&&(r=this.originalAttributes);for(i of s)a[i]=r[i]||null;this.model.set(a)}createField(e){var t=this.model.getFieldType(e),t=this.model.getFieldParam(e,"view")||this.getFieldManager().getViewName(t);this.createView(e+"Field",t,{readOnly:!0,model:this.model,name:e,selector:`[data-name="field"][data-field="${e}"]`,mode:"list"})}afterRender(){this.$el.find('[data-name="resolution"]').on("change",e=>{var t=$(e.currentTarget),i=t.attr("data-field"),t=t.val();this.setResolution(i,t)});this.fieldList.forEach(e=>{var t=this.element.querySelector(`select[data-field="${e}"]`);i.default.init(t)})}actionApply(){var e=this.model.attributes;this.originalModel.set(e);this.trigger("resolve");this.close()}}e.default=a});define("views/modals/password-change-request",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/password-change-request";cssName="password-change-request";className="dialog dialog-centered";noFullHeight=!0;footerAtTheTop=!1;setup(){this.buttonList=[{name:"submit",label:"Submit",style:"danger",className:"btn-s-wide"},{name:"cancel",label:"Close",pullLeft:!0,className:"btn-s-wide"}];this.headerText=this.translate("Password Change Request","labels","User");this.once("close remove",()=>{this.$userName&&this.$userName.popover("destroy");this.$emailAddress&&this.$emailAddress.popover("destroy")})}afterRender(){this.$userName=this.$el.find('input[name="username"]');this.$emailAddress=this.$el.find('input[name="emailAddress"]')}actionSubmit(){let t=this.$userName,i=this.$emailAddress;var e=t.val(),s=i.val();let a=!0;if(""===e){a=!1;var r=this.getLanguage().translate("userCantBeEmpty","messages","User");this.isPopoverUserNameDestroyed=!1;t.popover({container:"body",placement:"bottom",content:r,trigger:"manual"}).popover("show");let e=t.closest(".form-group");e.addClass("has-error");t.one("mousedown click",()=>{e.removeClass("has-error");if(!this.isPopoverUserNameDestroyed){t.popover("destroy");this.isPopoverUserNameDestroyed=!0}})}if(""===s){a=!1;r=this.getLanguage().translate("emailAddressCantBeEmpty","messages","User");this.isPopoverEmailAddressDestroyed=!1;i.popover({container:"body",placement:"bottom",content:r,trigger:"manual"}).popover("show");let e=i.closest(".form-group");e.addClass("has-error");i.one("mousedown click",()=>{e.removeClass("has-error");if(!this.isPopoverEmailAddressDestroyed){i.popover("destroy");this.isPopoverEmailAddressDestroyed=!0}})}if(a){let t=this.$el.find('button[data-name="submit"]');t.addClass("disabled");Espo.Ui.notify(this.translate("pleaseWait","messages"));Espo.Ajax.postRequest("User/passwordChangeRequest",{userName:e,emailAddress:s,url:this.options.url}).then(()=>{Espo.Ui.notify(!1);var e=this.translate("uniqueLinkHasBeenSent","messages","User");e+=" "+this.translate("passwordRecoverySentIfMatched","messages","User");this.$el.find(".cell-userName").addClass("hidden");this.$el.find(".cell-emailAddress").addClass("hidden");t.addClass("hidden");this.$el.find(".msg-box").removeClass("hidden");this.$el.find(".msg-box").html('<span class="text-success">'+e+"</span>")}).catch(e=>{if(404===e.status){Espo.Ui.error(this.translate("userNameEmailAddressNotFound","messages","User"));e.errorIsHandled=!0}if(403===e.status&&"Already-Sent"===e.getResponseHeader("X-Status-Reason")){Espo.Ui.error(this.translate("forbidden","messages","User"),!0);e.errorIsHandled=!0}t.removeClass("disabled")})}}}e.default=s});define("views/modals/mass-action",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/mass-action";className="dialog dialog-record";checkInterval=4e3;data(){return{infoText:this.translate("infoText","messages","MassAction")}}setup(){this.action=this.options.action;this.id=this.options.id;this.status="Pending";this.headerText=this.translate("Mass Action","scopeNames")+" · "+this.translate(this.action,"massActions",this.options.scope);this.model=new i.default;this.model.name="MassAction";this.model.setDefs({fields:{status:{type:"enum",readOnly:!0,options:["Pending","Running","Success","Failed"],style:{Success:"success",Failed:"danger"}},processedCount:{type:"int",readOnly:!0}}});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","MassAction")},{name:"processedCount",labelText:this.translate("processedCount","fields","MassAction")}]]}]});this.on("close",()=>{var e=this.model.get("status");"Pending"!==e&&"Running"!==e||Espo.Ajax.postRequest(`MassAction/${this.id}/subscribe`)});this.checkStatus()}checkStatus(){Espo.Ajax.getRequest(`MassAction/${this.id}/status`).then(e=>{var t=e.status;this.model.set("status",t);if("Pending"===t||"Running"===t)setTimeout(()=>this.checkStatus(),this.checkInterval);else{this.model.set({processedCount:e.processedCount});"Success"===t&&this.trigger("success",{count:e.processedCount});this.$el&&this.$el.find(".info-text").addClass("hidden")}})}}e.default=a});define("views/modals/last-viewed",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{scope="ActionHistoryRecord";className="dialog dialog-record";template="modals/last-viewed";backdrop=!0;setup(){this.events["click .list .cell > a"]=()=>{this.close()};this.$header=$("<a>").attr("href","#LastViewed").attr("data-action","listView").addClass("action").text(this.getLanguage().translate("LastViewed","scopeNamesPlural"));this.waitForView("list");this.getCollectionFactory().create(this.scope,e=>{e.maxSize=this.getConfig().get("recordsPerPage");e.url="LastViewed";this.collection=e;this.loadList();e.fetch()})}actionListView(){this.getRouter().navigate("#LastViewed",{trigger:!0});this.close()}loadList(){let e=this.getMetadata().get("clientDefs."+this.scope+".recordViews.listLastViewed")||"views/record/list";this.listenToOnce(this.collection,"sync",()=>{this.createView("list",e,{collection:this.collection,fullSelector:this.containerSelector+" .list-container",selectable:!1,checkboxes:!1,massActionsDisabled:!0,rowActionsView:!1,searchManager:this.searchManager,checkAllResultDisabled:!0,buttonsDisabled:!0,headerDisabled:!0,layoutName:"listForLastViewed",layoutAclDisabled:!0})})}}e.default=s});define("views/modals/kanban-move-over",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/kanban-move-over";backdrop=!0;data(){return{optionDataList:this.optionDataList}}events={'click [data-action="move"]':function(e){var t=$(e.currentTarget).data("value");this.moveTo(t)}};setup(){this.scope=this.model.entityType;var e=this.getHelper().getScopeColorIconHtml(this.scope);this.statusField=this.options.statusField;this.$header=$("<span>");this.$header.append($("<span>").text(this.getLanguage().translate(this.scope,"scopeNames")));if(this.model.get("name")){this.$header.append(' <span class="chevron-right"></span> ');this.$header.append($("<span>").text(this.model.get("name")))}this.$header.prepend(e);this.buttonList=[{name:"cancel",label:"Cancel"}];this.optionDataList=[];(this.getMetadata().get(["entityDefs",this.scope,"fields",this.statusField,"options"])||[]).forEach(e=>{this.optionDataList.push({value:e,label:this.getLanguage().translateOption(e,this.statusField,this.scope)})})}moveTo(e){let t=this.model.attributes[this.statusField];this.model.save({[this.statusField]:e},{patch:!0,isMoveTo:!0}).then(()=>{Espo.Ui.success(this.translate("Done"))}).catch(()=>{this.model.setMultiple({[this.statusField]:t},{isMoveTo:!0})});this.close()}}e.default=s});define("views/modals/image-preview",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let s;class a extends t.default{template="modals/image-preview";cssName="image-preview";size="";backdrop=!0;isMaximizable=!0;transformClassList=["transform-flip","transform-rotate-180","transform-flip-and-rotate-180","transform-flip-and-rotate-270","transform-rotate-90","transform-flip-and-rotate-90","transform-rotate-270"];imageContainerElement;imageElement;imageId;imageName;imageList;events={keydown:function(e){"ArrowLeft"===e.code?this.switchToPrevious(!0):"ArrowRight"===e.code&&this.switchToNext(!0)}};data(){return{name:this.imageName,url:this.getImageUrl(),originalUrl:this.getOriginalImageUrl(),showOriginalLink:this.size}}setup(){this.buttonList=[];this.headerHtml=" ";this.imageId=this.options.id;this.imageName=this.options.name;this.imageList=this.options.imageList||[];this.navigationEnabled=1<this.imageList.length;this.wait(Espo.loader.requirePromise("lib!exif-js").then(e=>s=e));this.onImageLoadBind=this.onImageLoad.bind(this);this.onImageClickBind=this.onImageClick.bind(this);this.onWindowResizeBind=this.onWindowResize.bind(this)}onRemove(){window.removeEventListener("resize",this.onWindowResizeBind);if(this.imageElement){this.imageElement.removeEventListener("load",this.onImageLoadBind);this.imageElement.removeEventListener("click",this.onImageClickBind)}}getImageUrl(){let e=this.getBasePath()+"?entryPoint=image&id="+this.imageId;this.size&&(e+="&size="+this.size);this.getUser().get("portalId")&&(e+="&portalId="+this.getUser().get("portalId"));return e}getOriginalImageUrl(){let e=this.getBasePath()+"?entryPoint=image&id="+this.imageId;this.getUser().get("portalId")&&(e+="&portalId="+this.getUser().get("portalId"));return e}onImageLoad(){let t=this.imageElement;s.getData(t,()=>{if("from-image"!==window.getComputedStyle(t).imageOrientation){var e=s.getTag(t,"Orientation");switch(e){case 2:t.classList.add("transform-flip");break;case 3:t.classList.add("transform-rotate-180");break;case 4:t.classList.add("transform-rotate-180");t.classList.add("transform-flip");break;case 5:t.classList.add("transform-rotate-270");t.classList.add("transform-flip");break;case 6:t.classList.add("transform-rotate-90");break;case 7:t.classList.add("transform-rotate-90");t.classList.add("transform-flip");break;case 8:t.classList.add("transform-rotate-270")}}})}afterRender(){if(this.isMultiple()){var e=this.dialog.getElement().querySelector(".modal-header .modal-title");if(e){e.classList.add("text-muted");e.style.userSelect="none"}this.dialog.setHeaderText((this.getImageIndex()+1).toString())}this.imageContainerElement=this.element.querySelector(".image-container");this.imageElement=this.imageContainerElement.querySelector("img");this.imageElement.addEventListener("load",this.onImageLoadBind);this.navigationEnabled&&(this.imageElement.style.cursor="pointer");this.imageElement.addEventListener("click",this.onImageClickBind);window.removeEventListener("resize",this.onWindowResizeBind);window.addEventListener("resize",this.onWindowResizeBind);setTimeout(()=>this.onWindowResize(),100)}onWindowResize(){if(this.imageContainerElement){var e=this.imageContainerElement.clientWidth;this.imageElement.style.maxWidth=e+"px"}}onImageClick(){this.switchToNext()}isMultiple(){return 1<this.imageList.length}switchToPrevious(t){if(this.isMultiple()){let e=this.getImageIndex();if(!t||0!==e){this.imageElement&&this.transformClassList.forEach(e=>{this.imageElement.classList.remove(e)});e--;e<0&&(e=this.imageList.length-1);this.imageId=this.imageList[e].id;this.imageName=this.imageList[e].name;this.reRender()}}}switchToNext(t){if(this.isMultiple()){let e=this.getImageIndex();if(!t||e!==this.imageList.length-1){this.imageElement&&this.transformClassList.forEach(e=>{this.imageElement.classList.remove(e)});e++;e>this.imageList.length-1&&(e=0);this.imageId=this.imageList[e].id;this.imageName=this.imageList[e].name;this.reRender()}}}getImageIndex(){let i=-1;this.imageList.forEach((e,t)=>{e.id===this.imageId&&(i=t)});return i}onMaximize(){var e=this.imageContainerElement.clientWidth;this.imageElement.style.maxWidth=e+"px"}onMinimize(){var e=this.imageContainerElement.clientWidth;this.imageElement.style.maxWidth=e+"px"}}e.default=a});define("views/modals/image-crop",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/image-crop";cssName="image-crop";events={'click [data-action="zoomIn"]':function(){this.$img.cropper("zoom",.1)},'click [data-action="zoomOut"]':function(){this.$img.cropper("zoom",-.1)}};setup(){this.buttonList=[{name:"crop",label:"Submit",style:"primary"},{name:"cancel",label:"Cancel"}];this.wait(Espo.loader.requirePromise("lib!cropper"));this.on("remove",()=>{if(this.$img.length){this.$img.cropper("destroy");this.$img.parent().empty()}})}afterRender(){let e=this.$img=$("<img>").attr("src",this.options.contents).addClass("hidden");this.$el.find(".image-container").append(e);setTimeout(()=>{e.cropper({aspectRatio:1,movable:!0,resizable:!0,rotatable:!1})},50)}actionCrop(){var e=this.$img.cropper("getDataURL","image/jpeg");this.trigger("crop",e);this.close()}}e.default=s});define("views/modals/followers-list",["exports","views/modals/related-list","helpers/record/select-related"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{massActionRemoveDisabled=!0;massActionMassUpdateDisabled=!0;mandatorySelectAttributeList=["type"];setup(){this.getUser().isAdmin()||"no"!==this.getAcl().getPermissionLevel("followerManagementPermission")||"no"!==this.getAcl().getPermissionLevel("portalPermission")||(this.unlinkDisabled=!0);super.setup()}actionSelectRelated(){let e="active";this.getUser().isAdmin()||"no"!==this.getAcl().getPermissionLevel("followerManagementPermission")||"yes"!==this.getAcl().getPermissionLevel("portalPermission")||(e="activePortal");var t=new i.default(this);t.process(this.model,this.link,{primaryFilterName:e,massSelect:!1,foreignEntityType:"User",viewKey:"selectFollowers"})}}e.default=a});define("views/modals/edit-dashboard",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/edit-dashboard";className="dialog dialog-record";cssName="edit-dashboard";data(){return{hasLocked:this.hasLocked}}events={"click button.add":function(e){var t=$(e.currentTarget).data("name");this.getParentDashboardView().addDashlet(t);this.close()}};shortcutKeys={"Control+Enter":"save"};getParentDashboardView(){return this.getParentView()}setup(){this.buttonList=[{name:"save",label:this.options.fromDashboard?"Save":"Apply",style:"primary",title:"Ctrl+Enter"},{name:"cancel",label:"Cancel",title:"Esc"}];var e=this.options.dashboardLayout||[];let t=[];e.forEach(e=>{e.name&&t.push(e.name)});e=this.model=new i.default({},{entityType:"Preferences"});e.set("dashboardTabList",t);this.hasLocked="dashboardLocked"in this.options;this.hasLocked&&e.set("dashboardLocked",this.options.dashboardLocked||!1);this.createView("dashboardTabList","views/preferences/fields/dashboard-tab-list",{selector:'.field[data-name="dashboardTabList"]',defs:{name:"dashboardTabList",params:{required:!0,noEmptyString:!0}},mode:"edit",model:e});this.hasLocked&&this.createView("dashboardLocked","views/fields/bool",{selector:'.field[data-name="dashboardLocked"]',mode:"edit",model:e,defs:{name:"dashboardLocked"}});this.headerText=this.translate("Edit Dashboard");this.dashboardLayout=this.options.dashboardLayout}getFieldView(e){return this.getView(e)}actionSave(){var e=this.getFieldView("dashboardTabList");e.fetchToModel();if(this.hasLocked){var t=this.getFieldView("dashboardLocked");t.fetchToModel()}if(!e.validate()){t={};t.dashboardTabList=this.model.get("dashboardTabList");this.hasLocked&&(t.dashboardLocked=this.model.get("dashboardLocked"));var i,s=this.model.get("translatedOptions"),a={};for(i in s)i!==s[i]&&(a[i]=s[i]);t.renameMap=a;this.trigger("after:save",t);this.dialog.close()}}}e.default=a});define("views/modals/duplicate",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/duplicate";cssName="duplicate-modal";data(){return{scope:this.scope,duplicates:this.duplicates}}setup(){let e="Save";this.model&&this.model.isNew()&&(e="Create");this.buttonList=[{name:"save",label:e,style:"danger",onClick:e=>{this.trigger("save");e.close()}},{name:"cancel",label:"Cancel"}];this.scope=this.options.scope;this.duplicates=this.options.duplicates;this.scope&&this.setupRecord()}setupRecord(){var e=new Promise(i=>{this.getHelper().layoutManager.get(this.scope,"listSmall",t=>{t=Espo.Utils.cloneDeep(t);t.forEach(e=>e.notSortable=!0);this.getCollectionFactory().create(this.scope).then(e=>{e.add(this.duplicates);this.createView("record","views/record/list",{selector:".list-container",collection:e,listLayout:t,buttonsDisabled:!0,massActionsDisabled:!0,rowActionsDisabled:!0});i()})})});this.wait(e)}}e.default=s});define("views/modals/convert-currency",["exports","views/modals/mass-convert-currency"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.headerText=this.translate("convertCurrency","massActions")}actionConvert(){this.disableButton("convert");this.getFieldView("currency").fetchToModel();this.getFieldView("currencyRates").fetchToModel();var e=this.model.get("currency"),t=this.model.get("currencyRates");Espo.Ajax.postRequest("Action",{entityType:this.options.entityType,action:"convertCurrency",id:this.options.model.id,data:{targetCurrency:e,rates:t,fieldList:this.options.fieldList||null}}).then(e=>{this.trigger("after:update",e);this.close()}).catch(()=>{this.enableButton("convert")})}}e.default=s});define("views/modals/compose-email",["exports","views/modals/edit","helpers/misc/mailto","views/email/modals/schedule-send"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{scope="Email";layoutName="composeSmall";saveDisabled=!0;fullFormDisabled=!0;isCollapsible=!0;wasModified=!1;shortcutKeys={"Control+Enter":function(e){if(-1!==this.buttonList.findIndex(e=>"send"===e.name&&!e.hidden&&!e.disabled)){e.stopPropagation();e.preventDefault();this.actionSend()}},"Control+KeyS":function(e){if(-1!==this.buttonList.findIndex(e=>"saveDraft"===e.name&&!e.hidden&&!e.disabled)){e.preventDefault();e.stopPropagation();this.actionSaveDraft()}},Escape:function(e){e.stopPropagation();e.preventDefault();var t=this.getRecordView().getFocusedFieldView();t&&this.model.set(t.fetch());this.getRecordView().isChanged?this.confirm(this.translate("confirmLeaveOutMessage","messages")).then(()=>this.actionClose()):this.actionClose()}};setup(){super.setup();this.buttonList.unshift({name:"saveDraft",text:this.translate("Save Draft","labels","Email"),title:"Ctrl+S",onClick:()=>this.actionSaveDraft()});this.buttonList.unshift({name:"send",text:this.translate("Send","labels","Email"),style:"primary",title:"Ctrl+Enter",onClick:()=>this.actionSend()});this.dropdownItemList.push({name:"scheduleSend",text:this.translate("Schedule Send","labels","Email"),onClick:()=>this.actionScheduleSend()});this.$header=$("<a>").attr("role","button").attr("tabindex","0").attr("data-action","fullFormDraft").text(this.getLanguage().translate("Compose Email"));this.events['click a[data-action="fullFormDraft"]']=()=>this.actionFullFormDraft();this.once("remove",()=>{this.dialogIsHidden=!1});let t=new i.default(this.getConfig(),this.getPreferences(),this.getAcl());if(t.toUse()){this.once("after:render",()=>this.actionClose());this.getRouter().confirmLeaveOut=!1;let e=this.options.attributes||{};this.once("after:render",()=>document.location.href=t.composeLink(e))}}async setupLate(){this.listenTo(this.model,"change",(e,t)=>{t.ui&&(this.wasModified=!0)})}createRecordView(e,t){var i=this.getMetadata().get("clientDefs."+e.entityType+".recordViews.compose")||"views/email/record/compose",s={model:e,fullSelector:this.containerSelector+" .edit-container",type:"editSmall",layoutName:this.layoutName||"detailSmall",buttonsDisabled:!0,selectTemplateDisabled:this.options.selectTemplateDisabled,removeAttachmentsOnSelectTemplate:this.options.removeAttachmentsOnSelectTemplate,signatureDisabled:this.options.signatureDisabled,appendSignature:this.options.appendSignature,focusForCreate:this.options.focusForCreate,exit:()=>{}};this.createView("edit",i,s,t)}actionSend(){let e=this.dialog,t=this.getRecordView(),i=t.model,s=()=>{this.dialogIsHidden=!1;this.trigger("after:save",i);this.trigger("after:send",i);e.close();this.stopListening(t,"before:save",a);this.stopListening(t,"error:save",r);this.remove()},a=()=>{this.dialogIsHidden=!0;e.hideWithBackdrop();t.setConfirmLeaveOut(!1);this.forceRemoveIsInitiated||this.initiateForceRemove()},r=()=>{this.dialogIsHidden=!1;this.isRendered()&&e.show();this.stopListening(t,"before:save",a);this.stopListening(t,"error:save",r)};this.listenToOnce(t,"after:send",s);this.disableButton("send");this.disableButton("saveDraft");this.listenToOnce(t,"cancel:save",()=>{this.enableButton("send");this.enableButton("saveDraft");this.stopListening(t,"after:send",s);this.stopListening(t,"before:save",a);this.stopListening(t,"error:save",r)});this.listenToOnce(t,"before:save",a);this.listenToOnce(t,"error:save",r);t.send()}actionSaveDraft(e){let t=this.getRecordView(),i=t.model;this.disableButton("send");this.disableButton("saveDraft");let s=()=>{this.enableButton("send");this.enableButton("saveDraft");Espo.Ui.success(this.translate("savedAsDraft","messages","Email"));this.trigger("after:save",i);this.$el.find('button[data-name="cancel"]').html(this.translate("Close"))};t.once("after:save",()=>s());t.once("cancel:save",()=>{this.enableButton("send");this.enableButton("saveDraft");t.off("after:save",s)});return t.saveDraft(e)}initiateForceRemove(){this.forceRemoveIsInitiated=!0;var e=this.getParentView();if(!e)return!0;e.once("remove",()=>{this.dialogIsHidden&&this.remove()})}actionFullFormDraft(){this.actionSaveDraft({skipNotModifiedWarning:!0}).then(()=>{this.getRecordView().setConfirmLeaveOut(!1);this.getRouter().navigate("#Email/edit/"+this.model.id,{trigger:!0});this.close()}).catch(e=>{if("notModified"===e){Espo.Ui.notify(!1);this.getRouter().navigate("#Email/edit/"+this.model.id,{trigger:!0})}})}beforeCollapse(){this.wasModified&&this.actionSaveDraft({skipNotModifiedWarning:!0}).then(()=>{this.getRecordView().setConfirmLeaveOut(!1);this.getRouter().removeWindowLeaveOutObject(this)});return super.beforeCollapse()}async actionScheduleSend(){this.model.set("status","Sending");if(this.getRecordView().validate()){Espo.Ui.error(this.translate("Not valid"));this.model.set("status","Draft")}else{this.model.set("status","Draft");var e=new s.default({model:this.model,onSave:()=>{this.trigger("after:save",this.model);this.close()}});await this.assignView("dialog",e);await e.render()}}}e.default=r});define("views/modals/change-password",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/change-password";cssName="change-password";className="dialog dialog-record";setup(){this.buttonList=[{name:"change",label:"Change",style:"danger"},{name:"cancel",label:"Cancel"}];this.headerText=this.translate("Change Password","labels","User");var e=this.getModelFactory().create("User",e=>{this.model=e;this.createView("currentPassword","views/fields/password",{model:e,mode:"edit",selector:'.field[data-name="currentPassword"]',defs:{name:"currentPassword",params:{required:!0}}});this.createView("password","views/user/fields/password",{model:e,mode:"edit",selector:'.field[data-name="password"]',defs:{name:"password",params:{required:!0}}});this.createView("passwordConfirm","views/fields/password",{model:e,mode:"edit",selector:'.field[data-name="passwordConfirm"]',defs:{name:"passwordConfirm",params:{required:!0}}})});this.wait(e)}getFieldView(e){return this.getView(e)}actionChange(){this.getFieldView("currentPassword").fetchToModel();this.getFieldView("password").fetchToModel();this.getFieldView("passwordConfirm").fetchToModel();var e=this.getFieldView("currentPassword").validate()||this.getFieldView("password").validate()||this.getFieldView("passwordConfirm").validate();if(!e){this.$el.find('button[data-name="change"]').addClass("disabled");Espo.Ajax.putRequest("UserSecurity/password",{currentPassword:this.model.get("currentPassword"),password:this.model.get("password")}).then(()=>{Espo.Ui.success(this.translate("passwordChanged","messages","User"));this.trigger("changed");this.close()}).catch(()=>{this.$el.find('button[data-name="change"]').removeClass("disabled")})}}}e.default=s});define("views/modals/auth2fa-required",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{noCloseButton=!0;escapeDisabled=!0;events={'click [data-action="proceed"]':"actionProceed",'click [data-action="logout"]':"actionLogout"};templateContent=`
|
||
<div class="complex-text">{{complexText viewObject.messageText}}</div>
|
||
<div class="button-container btn-group" style="margin-top: 30px">
|
||
<button class="btn btn-primary" data-action="proceed">{{translate 'Proceed'}}</button>
|
||
<button class="btn btn-default" data-action="logout">{{translate 'Log Out'}}</button></div>
|
||
`;setup(){this.buttonList=[];this.headerText=this.translate("auth2FARequiredHeader","messages","User");this.messageText=this.translate("auth2FARequired","messages","User")}actionProceed(){this.createView("dialog","views/user/modals/security",{userModel:this.getUser()},e=>{e.render();this.listenToOnce(e,"done",()=>{this.clearView("dialog");this.close()})})}actionLogout(){this.getRouter().logout()}}e.default=s});define("views/modals/array-field-add",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/array-field-add";cssName="add-modal";backdrop=!0;data(){return{optionDataList:this.getOptionDataList()}}events={"click .add":function(e){var t=$(e.currentTarget).attr("data-value");this.trigger("add",t)},'click input[type="checkbox"]':function(e){var t=$(e.currentTarget).attr("data-value");if(e.target.checked)this.checkedList.push(t);else{t=this.checkedList.indexOf(t);-1!==t&&this.checkedList.splice(t,1)}this.checkedList.length?this.enableButton("select"):this.disableButton("select")},'keyup input[data-name="quick-search"]':function(e){this.processQuickSearch(e.currentTarget.value)}};setup(){this.headerText=this.translate("Add Item");this.checkedList=[];this.translations=Espo.Utils.clone(this.options.translatedOptions||{});this.optionList=this.options.options||[];this.optionList.forEach(e=>{e in this.translations||(this.translations[e]=e)});this.buttonList=[{name:"select",style:"danger",label:"Select",disabled:!0,onClick:()=>{this.trigger("add-mass",this.checkedList)}},{name:"cancel",label:"Cancel"}]}afterRender(){this.$noData=this.$el.find(".no-data");setTimeout(()=>{this.$el.find('input[data-name="quick-search"]').focus()},100)}getOptionDataList(){return this.optionList.map(e=>({value:e,label:e in this.translations?this.translations[e]:e}))}processQuickSearch(e){e=e.trim();var t=this.$noData;t.addClass("hidden");if(e){let a=[],r=e.toLowerCase();this.optionList.forEach(e=>{var t,i=this.translations[e].toLowerCase();for(t of i.split(" ")){var s=0===t.indexOf(r);if(s)return a.push(e),void 0}});if(0===a.length){this.$el.find("ul .list-group-item").addClass("hidden");t.removeClass("hidden")}else this.optionList.forEach(e=>{var t=this.$el.find(`ul .list-group-item[data-name="${e}"]`);~a.indexOf(e)?t.removeClass("hidden"):t.addClass("hidden")})}else this.$el.find("ul .list-group-item").removeClass("hidden")}}e.default=s});define("views/modals/add-dashlet",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="modals/add-dashlet";cssName="add-dashlet";backdrop=!0;events={"click .add":function(e){var t=$(e.currentTarget).data("name");this.trigger("add",t);this.close()},'keyup input[data-name="quick-search"]':function(e){this.processQuickSearch(e.currentTarget.value)}};data(){return{dashletList:this.dashletList}}setup(){this.headerText=this.translate("Add Dashlet");var e=Object.keys(this.getMetadata().get("dashlets")||{}).sort((e,t)=>this.translate(e,"dashlets").localeCompare(this.translate(t,"dashlets")));this.translations={};this.dashletList=e.filter(e=>{var t=this.getMetadata().get(["dashlets",e,"aclScope"])||null,i=this.getMetadata().get(["dashlets",e,"accessDataList"])||null;if("Settings"!==this.options.parentType){if("Portal"===this.options.parentType)return!i||!i.find(e=>e.inPortalDisabled);if(t&&!this.getAcl().check(t))return!1;if(i&&!Espo.Utils.checkAccessDataList(i,this.getAcl(),this.getUser()))return!1;this.translations[e]=this.translate(e,"dashlets")}return!0});this.dashletList.forEach(e=>{this.translations[e]=this.translate(e,"dashlets")})}afterRender(){this.$noData=this.$el.find(".no-data");setTimeout(()=>{this.$el.find('input[data-name="quick-search"]').focus()},100)}processQuickSearch(e){e=e.trim();var t=this.$noData;t.addClass("hidden");if(e){let a=[],r=e.toLowerCase();this.dashletList.forEach(e=>{if(e in this.translations){var t,i=this.translations[e].toLowerCase();for(t of i.split(" ")){var s=0===t.indexOf(r);if(s)return a.push(e),void 0}}});if(0===a.length){this.$el.find("ul .list-group-item").addClass("hidden");t.removeClass("hidden")}else this.dashletList.forEach(e=>{var t=this.$el.find(`ul .list-group-item[data-name="${e}"]`);~a.indexOf(e)?t.removeClass("hidden"):t.addClass("hidden")})}else this.$el.find("ul .list-group-item").removeClass("hidden")}}e.default=s});define("views/modals/action-history",["exports","views/modal","search-manager"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="modals/action-history";scope="ActionHistoryRecord";className="dialog dialog-record";backdrop=!0;setup(){super.setup();this.buttonList=[{name:"cancel",label:"Close"}];this.scope=this.entityType=this.options.scope||this.scope;this.$header=$("<a>").attr("href","#ActionHistoryRecord").addClass("action").attr("data-action","listView").text(this.getLanguage().translate(this.scope,"scopeNamesPlural"));this.waitForView("list");this.getCollectionFactory().create(this.scope,e=>{e.maxSize=this.getConfig().get("recordsPerPage")||20;this.collection=e;this.setupSearch();this.setupList();e.fetch()})}actionListView(){this.getRouter().navigate("#ActionHistoryRecord",{trigger:!0});this.close()}setupSearch(){this.searchManager=new i.default(this.collection);this.collection.data.boolFilterList=["onlyMy"];this.collection.where=this.searchManager.getWhere();this.createView("search","views/record/search",{collection:this.collection,fullSelector:this.containerSelector+" .search-container",searchManager:this.searchManager,disableSavePreset:!0,textFilterDisabled:!0})}setupList(){let e=this.getMetadata().get(`clientDefs.${this.scope}.recordViews.list`)||"views/record/list";this.listenToOnce(this.collection,"sync",()=>{this.createView("list",e,{collection:this.collection,fullSelector:this.containerSelector+" .list-container",selectable:!1,checkboxes:!1,massActionsDisabled:!0,rowActionsView:"views/record/row-actions/view-only",type:"listSmall",searchManager:this.searchManager,checkAllResultDisabled:!0,buttonsDisabled:!0})})}}e.default=a});define("views/lead-capture/opt-in-confirmation-success",["exports","view","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="lead-capture/opt-in-confirmation-success";setup(){var e=new i.default;this.resultData=this.options.resultData;if(this.resultData.message){e.set("message",this.resultData.message);this.createView("messageField","views/fields/text",{selector:'.field[data-name="message"]',mode:"detail",inlineEditDisabled:!0,model:e,name:"message"})}}data(){return{resultData:this.options.resultData,defaultMessage:this.getLanguage().translate("optInIsConfirmed","messages","LeadCapture")}}}e.default=a});define("views/lead-capture/opt-in-confirmation-expired",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="lead-capture/opt-in-confirmation-expired";setup(){this.resultData=this.options.resultData}data(){return{defaultMessage:this.getLanguage().translate("optInConfirmationExpired","messages","LeadCapture")}}}e.default=s});define("views/lead-capture/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{massActionList=["remove","massUpdate","export"]}e.default=s});define("views/lead-capture/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupActionItems(){super.setupActionItems();this.addDropdownItem({label:"Generate New API Key",name:"generateNewApiKey",onClick:()=>this.actionGenerateNewApiKey()});this.addDropdownItem({label:"Generate New Form ID",name:"generateNewFormId",onClick:()=>this.actionGenerateNewFormId()})}actionGenerateNewApiKey(){this.confirm(this.translate("confirmation","messages"),()=>{Espo.Ajax.postRequest("LeadCapture/action/generateNewApiKey",{id:this.model.id}).then(e=>{this.model.set(e);Espo.Ui.success(this.translate("Done"))})})}async actionGenerateNewFormId(){await this.confirm(this.translate("confirmation","messages"));var e=await Espo.Ajax.postRequest("LeadCapture/action/generateNewFormId",{id:this.model.id});this.model.set(e);Espo.Ui.success(this.translate("Done"))}}e.default=s});define("views/lead-capture/record/panels/request",["exports","views/record/panels/side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{fieldList=["exampleRequestUrl","exampleRequestMethod","exampleRequestHeaders","exampleRequestPayload"]}e.default=s});define("views/lead-capture/record/panels/form",["exports","views/record/panels/side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{fieldList=["formUrl"]}e.default=s});define("views/lead-capture/fields/smtp-account",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{dataUrl="LeadCapture/action/smtpAccountDataList";getAttributeList(){return[this.name,"inboundEmailId"]}data(){var e=super.data();e.valueIsSet=this.model.has("inboundEmailId");e.isNotEmpty=this.model.has("inboundEmailId");e.value=this.getValueForDisplay();e.valueTranslated=null!=e.value?this.translatedOptions[e.value]:void 0;return e}setupOptions(){super.setupOptions();this.params.options=[];this.translatedOptions={};this.params.options.push("");if(this.loadedOptionList)this.loadedOptionList.forEach(e=>{this.params.options.push(e);this.translatedOptions[e]=(this.loadedOptionTranslations[e]||e)+" ("+this.translate("group","labels","MassEmail")+")"});else if(this.model.get("inboundEmailId")){var e="inboundEmail:"+this.model.get("inboundEmailId");this.params.options.push(e);this.translatedOptions[e]=(this.model.get("inboundEmailName")||this.model.get("inboundEmailId"))+" ("+this.translate("group","labels","MassEmail")+")"}this.translatedOptions[""]=this.getConfig().get("outboundEmailFromAddress")+" ("+this.translate("system","labels","MassEmail")+")"}getValueForDisplay(){return this.model.has(this.name)?this.model.get(this.name):this.model.has("inboundEmailId")&&this.model.get("inboundEmailId")?"inboundEmail:"+this.model.get("inboundEmailId"):""}setup(){super.setup();(this.getAcl().checkScope("MassEmail","create")||this.getAcl().checkScope("MassEmail","edit"))&&Espo.Ajax.getRequest(this.dataUrl).then(e=>{if(e.length){this.loadedOptionList=[];this.loadedOptionTranslations={};this.loadedOptionAddresses={};this.loadedOptionFromNames={};e.forEach(e=>{this.loadedOptionList.push(e.key);this.loadedOptionTranslations[e.key]=e.emailAddress;this.loadedOptionAddresses[e.key]=e.emailAddress;this.loadedOptionFromNames[e.key]=e.fromName||""});this.setupOptions();this.reRender()}})}fetch(){var e={},t=this.$element.val();e[this.name]=t;if(t&&""!==t){t=t.split(":");if(1<t.length){e.inboundEmailId=t[1];e.inboundEmailName=this.translatedOptions[e.inboundEmailId]||e.inboundEmailId}}else{e.inboundEmailId=null;e.inboundEmailName=null}return e}}e.default=s});define("views/lead-capture/fields/phone-number-country",["exports","views/fields/enum","intl-tel-input-globals"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setupOptions(){this.params.options=["",...i.default.getCountryData().map(e=>e.iso2)];this.translatedOptions=i.default.getCountryData().reduce((e,t)=>{e[t.iso2]=t.iso2.toUpperCase()+" +"+t.dialCode;return e},{})}}e.default=a});define("views/lead-capture/fields/form-theme",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){var e=Object.keys(this.getMetadata().get("themes")||{}).sort((e,t)=>"EspoRtl"===t?-1:this.translate(e,"theme").localeCompare(this.translate(t,"theme")));this.params.options=["",...e]}}e.default=s});define("views/lead-capture/fields/field-list",["exports","views/fields/array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{detailTemplateContent=`
|
||
{{#unless isEmpty}}
|
||
{{#each items}}
|
||
<div
|
||
class="multi-enum-item-container"
|
||
style="{{#if strikeThrough}} text-decoration: line-through; {{/if}}"
|
||
>{{label}}{{#if required}} *{{/if}}</div>
|
||
{{/each}}
|
||
{{else}}
|
||
{{#if valueIsSet}}<span class="none-value">{{translate 'None'}}</span>
|
||
{{else}}
|
||
<span class="loading-value"></span>
|
||
{{/if}}
|
||
{{/unless}}
|
||
`;webFormNotAllowedFields;data(){var e=this.model.get(this.name);return e?(e=e.map(e=>({label:this.translatedOptions[e]||e,strikeThrough:this.model.attributes.formEnabled&&this.webFormNotAllowedFields.includes(e),required:this.isFieldRequired(e)})),{...super.data(),items:e}):super.data()}getAttributeList(){return[...super.getAttributeList(),"formEnabled","fieldParams"]}setup(){this.webFormNotAllowedFields=[];super.setup();this.listenTo(this.model,"change:formEnabled",(e,t,i)=>{i.ui&&this.isDetailMode()&&this.reRender()});this.addActionHandler("toggleRequired",(e,t)=>this.toggleRequired(t.dataset.value))}setupOptions(){this.params.options=[];this.translatedOptions={};var e,t=this.getMetadata().get(["entityDefs","Lead","fields"])||{},i=this.getMetadata().get("entityDefs.LeadCapture.fields.fieldList.ignoreFieldList")||[],s=this.getMetadata().get("entityDefs.LeadCapture.fields.fieldList.webFormFieldTypeList")||[];for(e in t){var a=t[e];if(!(a.disabled||a.utility||a.readOnly)&&!i.includes(e)){s.includes(a.type)||this.webFormNotAllowedFields.push(e);this.params.options.push(e);this.translatedOptions[e]=this.translate(e,"fields","Lead")}}}getItemHtml(e){var t=super.getItemHtml(e),i=document.createElement("div"),t=(i.innerHTML=t,i.querySelector(".list-group-item")),s=document.createElement("div"),a=(s.classList.add("btn-group","pull-right","item-button"),document.createElement("button"));a.classList.add("btn","btn-link","btn-sm","dropdown-toggle");a.innerHTML='<span class="caret"></span>';a.dataset.toggle="dropdown";a.type="button";var r=document.createElement("ul"),o=(r.classList.add("dropdown-menu","pull-right"),document.createElement("li")),n=document.createElement("a");n.dataset.value=e;n.dataset.action="toggleRequired";n.role="button";n.tabIndex=0;this.isFieldRequired(e)&&(n.innerHTML+='<span class="check-icon fas fa-check pull-right"></span>');var l=document.createElement("div");l.textContent=this.translate("required","fields","Admin");n.append(l);o.append(n);r.append(o);s.append(a,r);t.append(s);if(this.isFieldRequired(e)){l=i.querySelector(".text");l&&(l.innerHTML+=" *")}return i.innerHTML}isFieldRequired(e){var t=this.model.attributes.fieldParams||{},t=t[e]||{};return!!t.required}toggleRequired(e){let t=Espo.Utils.cloneDeep(this.model.attributes.fieldParams||{});t[e]||(t[e]={});"required"in t[e]||(t[e].required=!1);t[e].required=!t[e].required;let i={};var s=this.model.attributes.fieldList||[];s.forEach(e=>i[e]=t[e]);this.model.set("fieldParams",i,{ui:!0});this.reRender()}addValue(e){var t=this.model.get(this.name);let i=!1;t&&!t.includes(e)&&(i=!0);super.addValue(e);i&&this.getMetadata().get(`entityDefs.Lead.fields.${e}.required`)&&!this.isFieldRequired(e)&&this.toggleRequired(e)}}e.default=s});define("views/last-viewed/list",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchPanel=!1;createButton=!1;setup(){super.setup();this.collection.url="LastViewed"}}e.default=s});define("views/last-viewed/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{layoutName="listForLastViewed";rowActionsDisabled=!0;massActionsDisabled=!0;headerDisabled=!0}e.default=s});define("views/global-search/status-field",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplateContent=`
|
||
{{~#if stringValue}}
|
||
<span class="label label-sm label-state label-{{style}}">{{stringValue}}</span>
|
||
{{/if~}}
|
||
`;data(){var e,t,i=this.model.attributes._scope,s=this.getMetadata().get(`scopes.${i}.statusField`);return s&&(e=this.model.attributes[s],e)?(t=this.getLanguage().translateOption(e,s,i),i=this.getMetadata().get(`entityDefs.${i}.fields.${s}.style.`+e)??"default",{stringValue:t,style:i}):{}}}e.default=s});define("views/global-search/scope-badge",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="global-search/scope-badge";data(){return{label:this.translate(this.model.get("_scope"),"scopeNames")}}}e.default=s});define("views/global-search/panel",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="global-search/panel";setup(){this.addHandler("click",'[data-action="closePanel"]',()=>this.close());this.maxSize=this.getConfig().get("globalSearchMaxSize")||10;this.navbarPanelHeightSpace=this.getThemeManager().getParam("navbarPanelHeightSpace")||100;this.navbarPanelBodyMaxHeight=this.getThemeManager().getParam("navbarPanelBodyMaxHeight")||600}onRemove(){$(window).off("resize.global-search-height");if(this.overflowWasHidden){$("body").css("overflow","unset");this.overflowWasHidden=!1}}afterRender(){this.collection.reset();this.collection.maxSize=this.maxSize;this.collection.fetch().then(()=>this.createRecordView()).then(e=>e.render());var e=$(window);e.off("resize.global-search-height");e.on("resize.global-search-height",this.processSizing.bind(this));this.processSizing()}createRecordView(){return this.createView("list","views/record/list-expanded",{selector:".list-container",collection:this.collection,listLayout:{rows:[[{name:"name",view:"views/global-search/name-field"}],[{name:"status",view:"views/global-search/status-field"}]],right:{name:"read",view:"views/global-search/scope-badge",width:"80px"}}})}processSizing(){var e=$(window),t=e.height(),e=e.width(),i=this.$el.find(".panel-heading").outerHeight(),s={};if(e<=this.getThemeManager().getParam("screenWidthXs")){s.height=t-i+"px";s.overflow="auto";$("body").css("overflow","hidden");this.overflowWasHidden=!0}else{s.height="unset";s.overflow="none";if(this.overflowWasHidden){$("body").css("overflow","unset");this.overflowWasHidden=!1}if(t-this.navbarPanelBodyMaxHeight<this.navbarPanelHeightSpace){e=t-this.navbarPanelHeightSpace;s.maxHeight=e+"px"}}this.$el.find(".panel-body").css(s)}close(){this.trigger("close")}}e.default=s});define("views/global-search/name-field",["exports","views/fields/base","helpers/record-modal"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{listTemplate="global-search/name-field";data(){var e=this.model.attributes._scope;return{scope:e,name:this.model.attributes.name||this.translate("None"),id:this.model.id,iconHtml:this.getHelper().getScopeColorIconHtml(e)}}setup(){this.addHandler("auxclick",'a[href]:not([role="button"])',e=>{if(this.isReadMode()){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){e.preventDefault();e.stopPropagation();this.quickView()}}})}quickView(){var e=new i.default;e.showDetail(this,{id:this.model.id,entityType:this.model.attributes._scope})}}e.default=a});define("views/global-search/global-search",["exports","ui/autocomplete","helpers/site/tabs","views/site/navbar/item"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends s.default{template="global-search/global-search";containerElement;inputElement;tabQuickSearch;hasGlobalSearch;tabsHelper;autocomplete;tabDataList;data(){return{hasSearchButton:this.hasGlobalSearch}}setup(){this.addHandler("keydown","input.global-search-input","onKeydown");this.addHandler("focus","input.global-search-input","onFocus");this.addHandler("click",'[data-action="search"]',()=>this.runSearch());var e=this.getCollectionFactory().create("GlobalSearch",e=>{this.collection=e;this.collection.url="GlobalSearch"});this.wait(e);this.closeNavbarOnShow=/iPad|iPhone|iPod/.test(navigator.userAgent);this.onMouseUpBind=this.onMouseUp.bind(this);this.onClickBind=this.onClick.bind(this);this.tabQuickSearch=this.getConfig().get("tabQuickSearch")||!1;this.hasGlobalSearch=0<(this.getConfig().get("globalSearchEntityList")||[]).length;this.tabsHelper=new i.default(this.getConfig(),this.getPreferences(),this.getUser(),this.getAcl(),this.getMetadata(),this.getLanguage());this.tabDataList=this.getTabDataList()}onFocus(e){var t=e.target;t.select()}onKeydown(e){if(this.hasGlobalSearch){var t=Espo.Utils.getKeyFromKeyEvent(e);"Enter"===e.key||"Enter"===t||"Control+Enter"===t?this.runSearch():"Escape"===t&&this.closePanel()}}afterRender(){this.$input=this.$el.find("input.global-search-input");this.inputElement=this.$input.get(0);if(this.tabQuickSearch){this.autocomplete=new t.default(this.inputElement,{minChars:1,lookupFunction:async e=>{let s=e.toLowerCase();return this.tabDataList.filter(e=>!!e.words.find(e=>e.startsWith(s))||!!e.lowerLabel.toLowerCase().startsWith(s)).sort((e,t)=>{var i;return e.lowerLabel.startsWith(s)&&!t.lowerLabel.startsWith(s)?-1:!e.lowerLabel.startsWith(s)&&t.lowerLabel.startsWith(s)?1:(i=e.lowerLabel.length-t.lowerLabel.length,0!=i?i:e.lowerLabel.localeCompare(t.lowerLabel))}).map(e=>({value:e.label,url:e.url}))},formatResult:e=>{var t=document.createElement("a");t.text=e.value;t.href=e.url;t.classList.add("text-default");return t.outerHTML},onSelect:e=>{window.location.href=e.url;this.inputElement.value=""}});this.once("render remove",()=>{this.autocomplete.dispose();this.autocomplete=void 0})}}runSearch(){var e=this.$input.val().trim();""!==e&&2<=e.length&&this.search(e)}search(e){this.collection.url=this.collection.urlRoot="GlobalSearch?q="+encodeURIComponent(e);this.showPanel()}onMouseUp(e){if(0===e.button){var t=e.target;if(t instanceof HTMLElement&&!(this.containerElement===t||this.containerElement.contains(t)||t.classList.contains("modal")||t.closest(".dialog.modal")))return this.closePanel()}}onClick(e){var t=e.target;t instanceof HTMLAnchorElement&&("showMore"===t.dataset.action||t.classList.contains("global-search-button")||setTimeout(()=>this.closePanel(),100))}showPanel(){this.closePanel();this.autocomplete&&this.autocomplete.hide();this.closeNavbarOnShow&&this.$el.closest(".navbar-body").removeClass("in");var e=this.$container=$("<div>").attr("id","global-search-panel");this.containerElement=this.$container.get(0);e.appendTo(this.$el.find(".global-search-panel-container"));this.createView("panel","views/global-search/panel",{fullSelector:"#global-search-panel",collection:this.collection},e=>{e.render();this.listenToOnce(e,"close",this.closePanel)});document.addEventListener("mouseup",this.onMouseUpBind);document.addEventListener("click",this.onClickBind)}closePanel(){var e=$("#global-search-panel");e.remove();this.hasView("panel")&&this.getView("panel").remove();document.removeEventListener("mouseup",this.onMouseUpBind);document.removeEventListener("click",this.onClickBind)}getTabDataList(){let s=[],a=e=>{var t=this.tabsHelper.getTranslatedTabLabel(e),i=this.tabsHelper.isTabScope(e)?"#"+e:e.url;return{url:i,label:t,words:t.split(" ").map(e=>e.toLowerCase()),lowerLabel:t.toLowerCase()}},r=e=>(this.tabsHelper.isTabScope(e)||this.tabsHelper.isTabUrl(e))&&this.tabsHelper.checkTabAccess(e);for(var e of this.tabsHelper.getTabList())if(r(e))s.push(a(e));else if(this.tabsHelper.isTabGroup(e)&&e.itemList)for(var t of e.itemList)r(t)&&s.push(a(t));if(this.getUser().isAdmin()){var i=this.getMetadata().get("app.adminPanel")||{};Object.entries(i).map(e=>e[1]).sort((e,t)=>e.order-t.order).filter(e=>e.itemList).forEach(e=>{e.itemList.filter(e=>e.tabQuickSearch&&e.label).filter(t=>!s.find(e=>e.url===t.url)).forEach(e=>{var t=this.translate(e.label,"labels","Admin");s.push({label:this.translate(e.label,"labels","Admin"),url:e.url,lowerLabel:t.toLowerCase(),words:t.split(" ").map(e=>e.toLowerCase())})})})}s=s.filter((t,e)=>s.findIndex(e=>e.url===t.url)===e&&s.findIndex(e=>e.lowerLabel===t.lowerLabel)===e);i=this.getMetadata().get("scopes")||{};Object.entries(i).filter(e=>{var[t,i]=e;return i.tab&&r(t)}).forEach(e=>{var[t]=e;let i=a(t);s.find(e=>e.lowerLabel===i.lowerLabel)||s.push(i)});return s.filter((t,e)=>s.findIndex(e=>e.lowerLabel===t.lowerLabel)===e)}isAvailable(){if(this.tabQuickSearch&&!this.getUser().isPortal())return!0;let e=!1;var t,i=this.getConfig().get("globalSearchEntityList")||[];for(t of i)if(this.getAcl().checkScope(t)){e=!0;break}return e}}e.default=r});define("views/fields/varchar-column",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchTypeList=["startsWith","contains","equals","endsWith","like","isEmpty","isNotEmpty"];fetchSearch(){var e=this.fetchSearchType()||"startsWith";if(~["isEmpty","isNotEmpty"].indexOf(e))return"isEmpty"===e?{typeFront:e,where:{type:"or",value:[{type:"columnIsNull",field:this.name},{type:"columnEquals",field:this.name,value:""}]}}:{typeFront:e,where:{type:"and",value:[{type:"columnNotEquals",field:this.name,value:""},{type:"columnIsNotNull",field:this.name,value:null}]}};let t=this.$element.val().toString().trim();t=t.trim();return t?{value:t,type:"column".Espo.Utils.upperCaseFirst(e),data:{type:e,value:t}}:null}}e.default=s});define("views/fields/users",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{init(){this.assignmentPermission=this.getAcl().getPermissionLevel("assignmentPermission");"no"===this.assignmentPermission&&(this.readOnly=!0);super.init()}getSelectBoolFilterList(){if("team"===this.assignmentPermission||"no"===this.assignmentPermission)return["onlyMyTeam"]}getSelectPrimaryFilterName(){return"active"}}e.default=s});define("views/fields/teams",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{init(){this.assignmentPermission=this.getAcl().getPermissionLevel("assignmentPermission");super.init()}getSelectBoolFilterList(){if("team"===this.assignmentPermission||"no"===this.assignmentPermission)return["onlyMy"]}getOnEmptyAutocomplete(){if(!this.autocompleteOnEmpty&&"no"!==this.assignmentPermission){let t=this.getUser().get("teamsNames")||{};var e=this.getUser().getTeamIdList().filter(e=>!this.ids.includes(e)).map(e=>({id:e,name:t[e]||e}));return Promise.resolve(e)}}}e.default=s});define("views/fields/range-currency",["exports","views/fields/range-float","views/fields/currency","ui/select"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{type="rangeCurrency";editTemplate="fields/range-currency/edit";data(){return{currencyField:this.currencyField,currencyValue:this.model.get(this.fromCurrencyField)||this.getPreferences().get("defaultCurrency")||this.getConfig().get("defaultCurrency"),currencyList:this.currencyList,...super.data()}}setup(){super.setup();var e=Espo.Utils.upperCaseFirst(this.name);this.fromCurrencyField="from"+e+"Currency";this.toCurrencyField="to"+e+"Currency";this.currencyField=this.name+"Currency";this.currencyList=this.getConfig().get("currencyList")||["USD"];this.decimalPlaces=this.getConfig().get("currencyDecimalPlaces")}setupAutoNumericOptions(){this.autoNumericOptions={digitGroupSeparator:this.thousandSeparator||"",decimalCharacter:this.decimalMark,modifyValueOnWheel:!1,selectOnFocus:!1,decimalPlaces:this.decimalPlaces,allowDecimalPadding:!0,showWarnings:!1,formulaMode:!0};if(null===this.decimalPlaces){this.autoNumericOptions.decimalPlaces=this.decimalPlacesRawValue;this.autoNumericOptions.decimalPlacesRawValue=this.decimalPlacesRawValue;this.autoNumericOptions.allowDecimalPadding=!1}}afterRender(){super.afterRender();if(this.mode===this.MODE_EDIT){this.$currency=this.$el.find('[data-name="'+this.currencyField+'"]');s.default.init(this.$currency)}}formatNumber(e){return i.default.prototype.formatNumberDetail.call(this,e)}getValueForDisplay(){var e=this.model.get(this.fromField),t=this.model.get(this.toField),e=isNaN(e)?null:e,t=isNaN(t)?null:t,i=this.model.get(this.fromCurrencyField)||this.model.get(this.toCurrencyField),i=this.getMetadata().get(["app","currency","symbolMap",i])||i;return null!==e&&null!==t?this.formatNumber(e)+" – "+this.formatNumber(t)+" "+i:e?">= "+this.formatNumber(e)+" "+i:t?"<= "+this.formatNumber(t)+" "+i:this.translate("None")}fetch(){var e=super.fetch(),t=this.$currency.val();null!==e[this.fromField]?e[this.fromCurrencyField]=t:e[this.fromCurrencyField]=null;null!==e[this.toField]?e[this.toCurrencyField]=t:e[this.toCurrencyField]=null;return e}}e.default=r});define("views/fields/number",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="number";validations=[];inlineEditDisabled=!0;readOnly=!0;data(){return{...super.data(),textClass:"numeric-text"}}fetch(){return{}}}e.default=s});define("views/fields/map",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="map";detailTemplate="fields/map/detail";listTemplate="fields/map/detail";addressField;provider;height=300;DEFAULT_PROVIDER="Google";data(){var e=super.data();e.hasAddress=this.hasAddress();return e}setup(){this.addressField=this.name.slice(0,this.name.length-3);this.provider=this.provider||this.getConfig().get("mapProvider")||this.DEFAULT_PROVIDER;this.height=this.options.height||this.params.height||this.height;let e=Object.keys(this.getMetadata().get("fields.address.fields")||{}).map(e=>this.addressField+Espo.Utils.upperCaseFirst(e));this.listenTo(this.model,"sync",t=>{let i=!1;e.forEach(e=>{t.hasChanged(e)&&(i=!0)});i&&this.isRendered()&&this.reRender()});this.listenTo(this.model,"after:save",()=>{this.isRendered()&&this.reRender()})}hasAddress(){return!!this.model.get(this.addressField+"City")||!!this.model.get(this.addressField+"PostalCode")}onRemove(){$(window).off("resize."+this.cid)}afterRender(){this.addressData={city:this.model.get(this.addressField+"City"),street:this.model.get(this.addressField+"Street"),postalCode:this.model.get(this.addressField+"PostalCode"),country:this.model.get(this.addressField+"Country"),state:this.model.get(this.addressField+"State")};this.$map=this.$el.find(".map");this.hasAddress()&&this.renderMap()}renderMap(){this.processSetHeight(!0);if("auto"===this.height){$(window).off("resize."+this.cid);$(window).on("resize."+this.cid,this.processSetHeight.bind(this))}var e=this.getMetadata().get(["app","mapProviders",this.provider,"renderer"]);if(e)Espo.loader.require(e,e=>{new e(this).render(this.addressData)});else{e="afterRender"+this.provider.replace(/\s+/g,"");"function"==typeof this[e]&&this[e]()}}processSetHeight(e){let t=this.height;if("auto"===this.height){t=this.$el.parent().height();if(e&&t<=0)return setTimeout(()=>this.processSetHeight(!0),50),void 0}this.$map.css("height",t+"px")}}e.default=s});define("views/fields/link-one",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchTypeList=["is","isEmpty","isNotEmpty","isOneOf"];fetchSearch(){var e=this.$el.find("select.search-type").val(),t=this.$el.find('[data-name="'+this.idName+'"]').val();return["isOneOf"].includes(e)&&!this.searchData.oneOfIdList.length?{type:"isNotNull",attribute:"id",data:{type:e}}:"isOneOf"===e?!!t&&{type:"linkedWith",field:this.name,value:this.searchData.oneOfIdList,data:{type:e,oneOfIdList:this.searchData.oneOfIdList,oneOfNameHash:this.searchData.oneOfNameHash}}:"is"!==e&&e?"isEmpty"===e?{type:"isNotLinked",data:{type:e}}:"isNotEmpty"===e?{type:"isLinked",data:{type:e}}:void 0:!!t&&{type:"linkedWith",field:this.name,value:t,data:{type:e,nameValue:this.$el.find('[data-name="'+this.nameName+'"]').val()}}}}e.default=s});define("views/fields/link-multiple-with-status",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{canceledStatusList;setup(){super.setup();this.columnsName=this.name+"Columns";this.columns=Espo.Utils.cloneDeep(this.model.get(this.columnsName)||{});this.listenTo(this.model,"change:"+this.columnsName,()=>{this.columns=Espo.Utils.cloneDeep(this.model.get(this.columnsName)||{})});this.statusField=this.getMetadata().get(["entityDefs",this.model.entityType,"fields",this.name,"columns","status"]);this.styleMap=this.getMetadata().get(["entityDefs",this.foreignScope,"fields",this.statusField,"style"])||{};this.canceledStatusList=[]}getAttributeList(){var e=super.getAttributeList();e.push(this.name+"Columns");return e}getDetailLinkHtml(e,t){var i=(this.columns[e]||{}).status;if(!i)return super.getDetailLinkHtml(e,t);var s=this.styleMap[i];if(!s||!~["success","info","danger","warning"].indexOf(s))return super.getDetailLinkHtml(e,t);let a="";"success"===s?a="fas fa-check text-success small":this.canceledStatusList.includes(i)&&(a=`fas fa-times text-${s} small`);return`<span class="${a}" style="display: inline-block; min-width: 12px"></span> `+super.getDetailLinkHtml(e,t)}}e.default=s});define("views/fields/link-multiple-with-columns-with-primary",["exports","views/fields/link-multiple-with-columns","views/fields/link-multiple-with-primary"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{primaryLink;getAttributeList(){var e=super.getAttributeList();e.push(this.primaryIdAttribute);e.push(this.primaryNameAttribute);return e}setup(){this.primaryLink=this.primaryLink||this.model.getFieldParam(this.name,"primaryLink");this.primaryIdAttribute=this.primaryLink+"Id";this.primaryNameAttribute=this.primaryLink+"Name";super.setup();this.events['click [data-action="switchPrimary"]']=e=>{var t=$(e.currentTarget),t=t.data("id");this.switchPrimary(t)};this.primaryId=this.model.get(this.primaryIdAttribute);this.primaryName=this.model.get(this.primaryNameAttribute);this.listenTo(this.model,"change:"+this.primaryIdAttribute,()=>{this.primaryId=this.model.get(this.primaryIdAttribute);this.primaryName=this.model.get(this.primaryNameAttribute)})}setPrimaryId(e){this.primaryId=e;this.primaryName=e?this.nameHash[e]:null}switchPrimary(e){var t=this.$el.find(`[data-id="${e}"][data-action="switchPrimary"]`);if(!t.hasClass("active")){this.$el.find('button[data-action="switchPrimary"]').removeClass("active").children().addClass("text-muted");t.addClass("active").children().removeClass("text-muted");this.setPrimaryId(e);this.trigger("change")}}renderLinks(){this.primaryId&&this.addLinkHtml(this.primaryId,this.primaryName);this.ids.forEach(e=>{e!==this.primaryId&&this.addLinkHtml(e,this.nameHash[e])})}getValueForDisplay(){if(this.isDetailMode()||this.isListMode()){let t=[];this.primaryId&&t.push(this.getDetailLinkHtml(this.primaryId,this.primaryName));if(this.ids.length)return this.ids.forEach(e=>{e!==this.primaryId&&t.push(this.getDetailLinkHtml(e))}),t.map(e=>$("<div>").append(e).addClass("link-multiple-item").get(0).outerHTML).join("")}}deleteLink(e){e===this.primaryId&&this.setPrimaryId(null);super.deleteLink(e)}deleteLinkHtml(e){super.deleteLinkHtml(e);this.managePrimaryButton()}addLinkHtml(e,t){t=t||e;if(this.isSearchMode())return super.addLinkHtml(e,t);if(this.skipRoles)return a.default.prototype.addLinkHtml.call(this,e,t);var i=super.addLinkHtml(e,t),s=e===this.primaryId,s=$("<span>").addClass("fas fa-star fa-sm").addClass(s?"":"text-muted"),s=$("<button>").attr("type","button").addClass("btn btn-link btn-sm pull-right hidden").attr("title",this.translate("Primary")).attr("data-action","switchPrimary").attr("data-id",e).append(s);s.insertAfter(i.children().first().children().first());this.managePrimaryButton();return i}managePrimaryButton(){var e=this.$el.find('button[data-action="switchPrimary"]');1<e.length?e.removeClass("hidden"):e.addClass("hidden");if(0===e.filter(".active").length){e=e.first();if(e.length){e.addClass("active").children().removeClass("text-muted");e=e.data("id");this.setPrimaryId(e);e!==this.primaryId&&this.trigger("change")}}}fetch(){var e=super.fetch();e[this.primaryIdAttribute]=this.primaryId;e[this.primaryNameAttribute]=this.primaryName;return e}}e.default=s});define("views/fields/link-multiple-category-tree",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{selectRecordsView="views/modals/select-category-tree-records";autocompleteDisabled=!1;getUrl(e){return"#"+this.entityType+"/list/categoryId="+e}}e.default=s});define("views/fields/link-category-tree",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{selectRecordsView="views/modals/select-category-tree-records";autocompleteDisabled=!1;getUrl(){var e;return"CategoryTree"===this.getMetadata().get(`scopes.${this.entityType}.type`)?super.getUrl():(e=this.model.get(this.idName),e?"#"+this.entityType+"/list/categoryId="+e:null)}}e.default=s});define("views/fields/json-object",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="jsonObject";listTemplate="fields/json-object/detail";detailTemplate="fields/json-object/detail";data(){var e=super.data();e.valueIsSet=this.model.has(this.name);e.isNotEmpty=!!this.model.get(this.name);return e}getValueForDisplay(){var e=this.model.get(this.name);return e?JSON.stringify(e,null,2).replace(/(\r\n|\n|\r)/gm,"<br>").replace(/\s/g," "):null}}e.default=s});define("views/fields/id",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchTypeList=["equals","notEquals"]}e.default=s});define("views/fields/formula",["exports","views/fields/text"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let s;class a extends t.default{detailTemplate="fields/formula/detail";editTemplate="fields/formula/edit";height=308;maxLineDetailCount=80;maxLineEditCount=200;insertDisabled=!1;checkSyntaxDisabled=!1;smallFont=!1;events={'click [data-action="addAttribute"]':function(){this.addAttribute()},'click [data-action="addFunction"]':function(){this.addFunction()},'click [data-action="checkSyntax"]':function(){this.checkSyntax()}};setup(){super.setup();this.height=this.options.height||this.params.height||this.height;this.smallFont=this.options.smallFont||this.params.smallFont||this.smallFont;this.maxLineDetailCount=this.options.maxLineDetailCount||this.params.maxLineDetailCount||this.maxLineDetailCount;this.maxLineEditCount=this.options.maxLineEditCount||this.params.maxLineEditCount||this.maxLineEditCount;this.targetEntityType=this.options.targetEntityType||this.params.targetEntityType||this.targetEntityType;this.insertDisabled=this.insertDisabled||this.options.insertDisabled;this.checkSyntaxDisabled=this.checkSyntaxDisabled||this.options.checkSyntaxDisabled;this.containerId="editor-"+Math.floor(1e4*Math.random()+1).toString();this.mode!==this.MODE_EDIT&&this.mode!==this.MODE_DETAIL||this.wait(this.requireAce());this.on("remove",()=>{this.editor&&this.editor.destroy()})}requireAce(){return Espo.loader.requirePromise("lib!ace").then(e=>{s=e;var t=[Espo.loader.requirePromise("lib!ace-mode-javascript"),Espo.loader.requirePromise("lib!ace-ext-language_tools")];this.getThemeManager().getParam("isDark")&&t.push(Espo.loader.requirePromise("lib!ace-theme-tomorrow_night"));return Promise.all(t)})}data(){var e=super.data();e.containerId=this.containerId;e.targetEntityType=this.targetEntityType;e.hasSide=!this.insertDisabled||!this.checkSyntaxDisabled;e.hasInsert=!this.insertDisabled;e.hasCheckSyntax=!this.checkSyntaxDisabled;return e}afterRender(){super.afterRender();this.$editor=this.$el.find("#"+this.containerId);if(this.$editor.length&&(this.mode===this.MODE_EDIT||this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST)){var e=this.smallFont?"var(--font-size-small)":"var(--font-size-base)",t=this.smallFont?"var(--line-height-small)":"var(--line-height-computed)";this.$editor.css("fontSize",e);if(this.mode===this.MODE_EDIT){var i=(this.height*this.getThemeManager().getFontSizeFactor()).toString();this.$editor.css("minHeight",i+"px")}i=this.editor=s.edit(this.containerId);i.setOptions({fontFamily:"var(--font-family-monospace)"});i.setFontSize(e);i.container.style.lineHeight=t;i.renderer.updateFontSize();i.setOptions({maxLines:this.mode===this.MODE_EDIT?this.maxLineEditCount:this.maxLineDetailCount});this.getThemeManager().getParam("isDark")&&i.setOptions({theme:"ace/theme/tomorrow_night"});if(this.isEditMode()){i.getSession().on("change",()=>{this.trigger("change",{ui:!0})});i.getSession().setUseWrapMode(!0)}if(this.isReadMode()){i.setReadOnly(!0);i.renderer.$cursorLayer.element.style.display="none";i.renderer.setShowGutter(!1)}i.setShowPrintMargin(!1);i.getSession().setUseWorker(!1);i.commands.removeCommand("find");i.setHighlightActiveLine(!1);e=s.require("ace/mode/javascript").Mode;i.session.setMode(new e);this.insertDisabled||this.isReadMode()||this.initAutocomplete()}}fetch(){var e={};let t=this.editor.getValue();""===t&&(t=null);e[this.name]=t;return e}addAttribute(){this.createView("dialog","views/admin/formula/modals/add-attribute",{scope:this.targetEntityType},e=>{e.render();this.listenToOnce(e,"add",e=>{this.editor.insert(e);this.clearView("dialog")})})}addFunction(){this.createView("dialog","views/admin/formula/modals/add-function",{scope:this.targetEntityType,functionDataList:this.getFunctionDataList()},e=>{e.render();this.listenToOnce(e,"add",e=>{this.editor.insert(e);this.clearView("dialog")})})}getFunctionDataList(){let e=[...this.getMetadata().get(["app","formula","functionList"],[])].filter(e=>e.insertText),i=(this.options.additionalFunctionDataList&&(e=e.concat(this.options.additionalFunctionDataList)),this.options.allowedFunctionList);i&&(e=e.filter(e=>{for(var t of i){if(t.endsWith("\\")&&e.name.startsWith(t))return!0;if(e.name===t)return!0}return!1}));this.targetEntityType||(e=e.filter(e=>0!==e.name.indexOf("entity\\")));return e}initAutocomplete(){let n=this.getFunctionDataList().filter(e=>e.insertText),l=this.getFormulaAttributeList();s.require("ace/ext/language_tools");this.editor.setOptions({enableBasicAutocompletion:!0,enableLiveAutocompletion:!0});var e={identifierRegexps:[/[\\a-zA-Z0-9{}\[\].$'"]/],getCompletions:function(e,t,i,s,a){var r=n.filter(e=>{var t=e.name.toString().toLowerCase();return 0===t.indexOf(s)||(t=t.split("\\"),0===t[t.length-1].indexOf(s))||2<t.length&&0===t[t.length-2].indexOf(s)});let o=r.map(e=>({caption:e.name+"()",value:e.insertText,meta:e.returnType||null,completer:{insertMatch:(e,t)=>{e.completer.insertMatch({value:t.value});var i=t.value.indexOf("(");if(~i&&!~t.value.indexOf("()")){var s=e.selection.getCursor();e.gotoLine(s.row+1,s.column-t.value.length+i+1)}}}}));r=l.filter(e=>0===e.indexOf(s)),r=r.map(e=>({name:e,value:e,meta:"attribute"}));o=o.concat(r);a(null,o)}};this.editor.completers=[e]}getFormulaAttributeList(){if(!this.targetEntityType)return[];let i=this.getFieldManager().getEntityTypeAttributeList(this.targetEntityType).concat(["id"]).sort(),s=this.getMetadata().get(["entityDefs",this.targetEntityType,"links"])||{},a=[];Object.keys(s).forEach(e=>{var t=s[e].type;t&&~["belongsToParent","hasOne","belongsTo"].indexOf(t)&&a.push(e)});a.sort();a.forEach(t=>{var e=s[t].entity;if(e&&!s[t].disabled){e=this.getFieldManager().getEntityTypeAttributeList(e).sort();e.forEach(e=>{i.push(t+"."+e)})}});return i}checkSyntax(){var e=this.editor.getValue();e?Espo.Ajax.postRequest("Formula/action/checkSyntax",{expression:e}).then(t=>{if(t.isSuccess)Espo.Ui.success(this.translate("checkSyntaxSuccess","messages","Formula"));else{let e=this.translate("checkSyntaxError","messages","Formula");t.message&&(e+=" "+t.message);Espo.Ui.error(e)}}):Espo.Ui.success(this.translate("checkSyntaxSuccess","messages","Formula"))}}e.default=a});define("views/fields/foreign",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="foreign"}e.default=s});define("views/fields/foreign-varchar",["exports","views/fields/varchar","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-url",["exports","views/fields/url","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";readOnly=!0;setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-url-multiple",["exports","views/fields/url-multiple","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";readOnly=!0;setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-text",["exports","views/fields/text","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-phone",["exports","views/fields/phone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="foreign";readOnly=!0;setup(){super.setup();this.isNumeric=!1}}e.default=s});define("views/fields/foreign-multi-enum",["exports","views/fields/multi-enum","views/fields/foreign-array","helpers/misc/foreign-field"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{type="foreign";foreignEntityType;setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];this.foreignEntityType=t.getEntityType();super.setup()}setupOptions(){i.default.prototype.setupOptions.call(this)}}e.default=r});define("views/fields/foreign-int",["exports","views/fields/int","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];this.disableFormatting=i.disableFormatting;super.setup()}}e.default=a});define("views/fields/foreign-float",["exports","views/fields/float","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-email",["exports","views/fields/email"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="foreign";readOnly=!0}e.default=s});define("views/fields/foreign-datetime",["exports","views/fields/datetime","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-date",["exports","views/fields/date","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/foreign-currency-converted",["exports","views/fields/currency-converted"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="foreign"}e.default=s});define("views/fields/foreign-checklist",["exports","views/fields/checklist","helpers/misc/foreign-field","views/fields/foreign-array"],function(e,t,s,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);s=a(s);i=a(i);function a(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{type="foreign";foreignEntityType;setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];this.foreignEntityType=t.getEntityType();super.setup()}setupOptions(){i.default.prototype.setupOptions.call(this)}}e.default=r});define("views/fields/foreign-bool",["exports","views/fields/bool","helpers/misc/foreign-field"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="foreign";setup(){var e,t=new s.default(this),i=t.getForeignParams();for(e in i)this.params[e]=i[e];super.setup()}}e.default=a});define("views/fields/followers",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{foreignScope="User";portionSize=6;linkClass="text-default";setup(){super.setup();this.addActionHandler("showMoreFollowers",(e,t)=>{this.showMoreFollowers();$(t).remove()});this.portionSize=this.getConfig().get("recordFollowersLoadLimit")||this.portionSize;this.limit=this.portionSize;this.listenTo(this.model,"change:isFollowed",()=>{var e=this.model.get(this.idsName)||[];if(this.model.get("isFollowed")){if(!e.includes(this.getUser().id)){e.unshift(this.getUser().id);var t=this.model.get(this.nameHashName)||{};t[this.getUser().id]=this.getUser().get("name");this.model.trigger("change:"+this.idsName);this.reRender()}}else{t=e.indexOf(this.getUser().id);if(~t){e.splice(t,1);this.model.trigger("change:"+this.idsName);this.reRender()}}})}showMoreFollowers(){this.getCollectionFactory().create("User",e=>{e.url=this.model.entityType+"/"+this.model.id+"/followers";e.offset=this.ids.length||0;e.maxSize=this.portionSize;e.data.select=["id","name"].join(",");e.orderBy=null;e.order=null;this.listenToOnce(e,"sync",()=>{let t=this.model.get(this.idsName)||[],i=this.model.get(this.nameHashName)||{};e.forEach(e=>{t.push(e.id);i[e.id]=e.get("name")});this.limit+=this.portionSize;this.model.trigger("change:"+this.idsName);this.reRender()});e.fetch()})}getValueForDisplay(){if(this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST){let t=[],e=(this.ids.forEach(e=>{t.push(this.getDetailLinkHtml(e))}),null);t.length&&(e=""+t.join(", "));t.length>=this.limit&&(e+=', <a role="button" data-action="showMoreFollowers">...</a>');return e}}}e.default=s});define("views/fields/enum-styled",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{}e.default=s});define("views/fields/enum-float",["exports","views/fields/enum-int"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="enumFloat";fetch(){var e=this.$element.val();if(""===e)return{[this.name]:null};var e=parseFloat(e),t={};t[this.name]=e;return t}parseItemForSearch(e){return parseFloat(e)}}e.default=s});define("views/fields/enum-column",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{searchTypeList=["anyOf","noneOf"];fetchSearch(){var e=this.fetchSearchType();let i=this.$element.val().split(":,:");1===i.length&&""===i[0]&&(i=[]);i.forEach((e,t)=>{i[t]=this.parseItemForSearch(e)});return"anyOf"===e?0===i.length?{data:{type:"anyOf",valueList:i}}:{type:"columnIn",value:i,data:{type:"anyOf",valueList:i}}:"noneOf"===e?0===i.length?{data:{type:"noneOf",valueList:i}}:{type:"or",value:[{type:"columnIsNull",attribute:this.name},{type:"columnNotIn",value:i,attribute:this.name}],data:{type:"noneOf",valueList:i}}:null}}e.default=s});define("views/fields/entity-type-list",["exports","views/fields/multi-enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkAvailability(e){var t=this.scopesMetadataDefs[e]||{};if(t.entity&&t.object)return!0}setupOptions(){var e=this.scopesMetadataDefs=this.getMetadata().get("scopes");this.params.options=Object.keys(e).filter(e=>{if(this.checkAvailability(e))return!0}).sort((e,t)=>this.translate(e,"scopeNames").localeCompare(this.translate(t,"scopeNames")))}setup(){this.params.translation||(this.params.translation="Global.scopeNames");this.setupOptions();super.setup()}}e.default=s});define("views/fields/email-address",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{editTemplate="fields/email-address/edit";validations=["required","emailAddress"];emailAddressRe=new RegExp(/^[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+(?:\.[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+)*/.source+/@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]/.source);validateEmailAddress(){var e=this.model.get(this.name);if(!e)return!1;if(""===e||this.emailAddressRe.test(e))return!1;e=this.translate("fieldShouldBeEmail","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}e.default=s});define("views/fields/duration",["exports","views/fields/enum","ui/select","moment"],function(e,t,s,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{type="duration";listTemplate="fields/base/detail";detailTemplate="fields/varchar/detail";editTemplate="fields/duration/edit";_justFocused=!1;data(){var e=this.model.has(this.startField)&&this.model.has(this.endField);return{valueIsSet:e,durationOptions:this.durationOptions,...super.data()}}calculateSeconds(){this.seconds=0;var e=this.model.get(this.startField),t=this.model.get(this.endField);(this.isEditMode()||this.isDetailMode())&&this.model.isNew()&&(this.seconds=this.model.getFieldParam(this.name,"default")||0);if(this.model.attributes.isAllDay&&this.hasAllDay){var i=this.model.attributes[this.startDateField],s=this.model.attributes[this.endDateField];if(i&&s)return this.seconds=(0,r.default)(s).add(1,"days").unix()-(0,r.default)(i).unix(),void 0}if(e&&t)this.seconds=(0,r.default)(this.model.get(this.endField)).unix()-(0,r.default)(this.model.get(this.startField)).unix();else if(e){t=this._getDateEnd();this.model.set(this.endField,t,{silent:!0})}}init(){super.init();this.listenTo(this,"render",()=>{this.calculateSeconds();this.durationOptions="";this.getOptions().forEach(e=>{var t=document.createElement("option");t.value=e.toString();t.text=this.stringifyDuration(e);e===this.seconds&&t.setAttribute("selected","selected");this.durationOptions+=t.outerHTML});this.stringValue=this.stringifyDuration(this.seconds)})}getOptions(){var e=Espo.Utils.clone(this.model.getFieldParam(this.name,"options")??[]);this.model.attributes.isAllDay||-1!==e.indexOf(this.seconds)||e.push(this.seconds);e.sort((e,t)=>e-t);return e}setup(){this.startField=this.model.getFieldParam(this.name,"start");this.endField=this.model.getFieldParam(this.name,"end");this.startDateField=this.startField+"Date";this.endDateField=this.endField+"Date";this.hasAllDay="datetimeOptional"===this.model.getFieldType(this.startField);if(!this.startField||!this.endField)throw new Error(`Bad definition for field '${this.name}'.`);this.calculateSeconds();this.blockDateEndChangeListener=!1;this.listenTo(this.model,"change:"+this.endField,(e,t,i)=>{if(!this.blockDateEndChangeListener){var s=this.model.get(this.startField),a=this.model.get(this.endField);if(a&&s){this.seconds=r.default.utc(a).unix()-r.default.utc(s).unix();i.updatedByDuration||this.updateDuration()}}});this.listenTo(this.model,"change:"+this.startField,(e,t,i)=>{if(i.ui){var s=this.model.attributes[this.startDateField];if(s&&this.hasAllDay){s=this.seconds%86400;0!=s&&(this.seconds=this.seconds-s+86400)}this.blockDateEndChangeListener=!0;setTimeout(()=>this.blockDateEndChangeListener=!1,100);this.updateDateEnd(this.startField);setTimeout(()=>this.updateDuration(),110)}else!this.isEditMode()&&i.xhr||this.updateDateEnd()})}getValueForDisplay(){return this.stringValue}stringifyDuration(e){if(!e)return"0";if(e<60)return"0";var t=e,i=Math.floor(t/86400),s=(t%=86400,Math.floor(t/3600)),t=(t%=3600,Math.floor(t/60)),a=[];i&&a.push(i+""+this.getLanguage().translate("d","durationUnits"));s&&a.push(s+""+this.getLanguage().translate("h","durationUnits"));t&&a.push(t+""+this.getLanguage().translate("m","durationUnits"));return a.join(" ")}focusOnInlineEdit(){s.default.focus(this.$duration)}afterRender(){var e=this.getParentView();e&&"getView"in e&&(this.endFieldView=e.getView(this.endField));if(this.isEditMode()){this.$duration=this.$el.find(".main-element");this.$duration.on("change",()=>{this.seconds=parseInt(this.$duration.val());this.updateDateEnd()});var e=this.model.get(this.startField),t=this.model.get(this.endField),i=this.$duration.val();!t&&e&&i&&this.endFieldView&&(this.endFieldView.isRendered()?this.updateDateEnd():this.endFieldView.once("after:render",()=>{this.updateDateEnd()}));s.default.init(this.$duration,{sortBy:"$score",sortDirection:"desc",score:(e,t)=>{var i,s=parseInt(t.value),a=parseInt(e);return!isNaN(a)&&(i=Number.MAX_SAFE_INTEGER-s,0===a&&0===s||60*a===s||60*a*60===s||60*a*60*24===s)?i:0},load:(e,t)=>{var i=parseInt(e);if(!(isNaN(i)||i<=0||59<i)){var s=[],a=60*i;s.push({value:a.toString(),text:this.stringifyDuration(a)});if(i<=9){a=3600*i;s.push({value:a.toString(),text:this.stringifyDuration(a)})}t(s)}},onFocus:()=>{this._justFocused=!0;setTimeout(()=>this._justFocused=!1,150)}})}}_getDateEndDate(){var e=this.seconds,t=this.model.attributes[this.startDateField];if(t)return e?(e=r.default.utc(t).unix()+e,r.default.unix(e).utc().add(-1,"day").format(this.getDateTime().internalDateFormat)):t}_getDateEnd(){var t=this.seconds,i=this.model.get(this.startField);if(i){let e;if(t){t=r.default.utc(i).unix()+t;e=r.default.unix(t).utc().format(this.getDateTime().internalDateTimeFormat)}else e=i;return e}}updateDateEnd(t){if(this.model.attributes.isAllDay&&this.hasAllDay){let e=this._getDateEndDate();setTimeout(()=>{this.model.set(this.endDateField,e,{updatedByDuration:!0,fromField:t})},1)}else{let e=this._getDateEnd();setTimeout(()=>{this.model.set(this.endField,e,{updatedByDuration:!0,fromField:t});this.hasAllDay&&this.model.set(this.endDateField,null,{fromField:t})},100)}}updateDuration(){var e=this.seconds;if(this.isEditMode()&&this.$duration&&this.$duration.length&&!this._justFocused){var t=this.getOptions().map(e=>({value:e.toString(),text:this.stringifyDuration(e)}));s.default.setValue(this.$duration,"");s.default.setOptions(this.$duration,t);s.default.setValue(this.$duration,e.toString())}else this.reRender()}fetch(){return{}}}e.default=a});define("views/fields/datetime-optional",["exports","views/fields/datetime","moment"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{constructor(e){super(e)}type="datetimeOptional";setup(){super.setup();this.noneOption=this.translate("None");this.nameDate=this.name+"Date"}isDate(){var e=this.model.get(this.nameDate);return!(!e||""===e)}data(){var e=super.data();if(this.isDate()){var t=this.model.get(this.nameDate);e.date=this.getDateTime().toDisplayDate(t);e.time=this.noneOption}return e}getDateStringValue(){var e;return this.isDate()?(e=this.model.get(this.nameDate),this.stringifyDateValue(e)):super.getDateStringValue()}setDefaultTime(){this.$time.val(this.noneOption)}initTimepicker(){let e=this.$time;var t=this.element.closest(".modal-body"),t={step:this.params.minuteStep||30,scrollDefaultNow:!0,timeFormat:this.timeFormatMap[this.getDateTime().timeFormat],noneOption:[{label:this.noneOption,value:this.noneOption}],appendTo:t?$(t):"body"};(this.emptyTimeInInlineEditDisabled&&this.isInlineEditMode()||this.noneOptionIsHidden)&&delete t.noneOption;e.timepicker(t);e.parent().find("button.time-picker-btn").on("click",()=>{e.timepicker("show")})}fetch(){var e={},t=this.$date.val(),i=this.$time.val();let s=null;if(i!==this.noneOption&&""!==i){""!==t&&""!==i&&(s=this.parse(t+" "+i));e[this.name]=s;e[this.nameDate]=null}else if(""!==t){e[this.nameDate]=this.getDateTime().fromDisplayDate(t);i=e[this.nameDate]+" 00:00:00",i=a.default.tz(i,this.getConfig().get("timeZone")||"UTC").add(this.isEnd?1:0,"days").utc().format(this.getDateTime().internalDateTimeFullFormat);e[this.name]=i}else{e[this.nameDate]=null;e[this.name]=null}return e}validateAfter(){var e=this.params.after;if(e){var t=e+"Date",i=this.model.get(this.name)||this.model.get(this.nameDate),t=this.model.get(e)||this.model.get(t);if(i&&t){i=this.validateAfterAllowSameDay&&this.model.get(this.nameDate)?(0,a.default)(i).unix()<(0,a.default)(t).unix():(0,a.default)(i).unix()<=(0,a.default)(t).unix();if(i){t=this.translate("fieldShouldAfter","messages").replace("{field}",this.getLabelText()).replace("{otherField}",this.translate(e,"fields",this.entityType));this.showValidationMessage(t);return!0}}}}validateBefore(){var e=this.params.before;if(e){var t=e+"Date",i=this.model.get(this.name)||this.model.get(this.nameDate),t=this.model.get(e)||this.model.get(t);if(i&&t&&(0,a.default)(i).unix()>=(0,a.default)(t).unix()){i=this.translate("fieldShouldBefore","messages").replace("{field}",this.getLabelText()).replace("{otherField}",this.translate(e,"fields",this.entityType));this.showValidationMessage(i);return!0}}}validateRequired(){if(this.isRequired()&&null===this.model.get(this.name)&&null===this.model.get(this.nameDate)){var e=this.translate("fieldIsRequired","messages").replace("{field}",this.getLabelText());this.showValidationMessage(e);return!0}}getStartDateForDatePicker(){var e;if(this.isEditMode()&&this.params.after)return e=this.model.attributes[this.params.after+"Date"],e?this.getDateTime().toDisplayDate(e):super.getStartDateForDatePicker()}}e.default=s});define("views/fields/currency-list",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){this.params.options=[];(this.getConfig().get("currencyList")||[]).forEach(e=>{this.params.options.push(e)})}}e.default=s});define("views/fields/complex-expression",["exports","views/fields/text"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let s;class a extends t.default{detailTemplate="fields/formula/detail";editTemplate="fields/formula/edit";height=46;maxLineDetailCount=80;maxLineEditCount=200;smallFont=!1;events={'click [data-action="addAttribute"]':function(){this.addAttribute()},'click [data-action="addFunction"]':function(){this.addFunction()}};setup(){super.setup();this.height=this.options.height||this.params.height||this.height;this.smallFont=this.options.smallFont||this.params.smallFont||this.smallFont;this.maxLineDetailCount=this.options.maxLineDetailCount||this.params.maxLineDetailCount||this.maxLineDetailCount;this.maxLineEditCount=this.options.maxLineEditCount||this.params.maxLineEditCount||this.maxLineEditCount;this.targetEntityType=this.options.targetEntityType||this.params.targetEntityType||this.targetEntityType;this.containerId="editor-"+Math.floor(1e4*Math.random()+1).toString();this.mode!==this.MODE_EDIT&&this.mode!==this.MODE_DETAIL||this.wait(this.requireAce());this.on("remove",()=>{this.editor&&this.editor.destroy()})}requireAce(){return Espo.loader.requirePromise("lib!ace").then(e=>{s=e;var t=[Espo.loader.requirePromise("lib!ace-ext-language_tools")];this.getThemeManager().getParam("isDark")&&t.push(Espo.loader.requirePromise("lib!ace-theme-tomorrow_night"));return Promise.all(t)})}data(){var e=super.data();e.containerId=this.containerId;e.targetEntityType=this.targetEntityType;e.hasInsert=!0;return e}afterRender(){super.afterRender();this.$editor=this.$el.find("#"+this.containerId);if(this.$editor.length&&(this.mode===this.MODE_EDIT||this.mode===this.MODE_DETAIL||this.mode===this.MODE_LIST)){var e=this.smallFont?"var(--font-size-small)":"var(--font-size-base)",t=this.smallFont?"var(--line-height-small)":"var(--line-height-computed)";this.$editor.css("fontSize",e);this.mode===this.MODE_EDIT&&this.$editor.css("minHeight",this.height+"px");var i=this.editor=s.edit(this.containerId);i.setOptions({fontFamily:"var(--font-family-monospace)"});i.setFontSize(e);i.container.style.lineHeight=t;i.renderer.updateFontSize();i.setOptions({maxLines:this.mode===this.MODE_EDIT?this.maxLineEditCount:this.maxLineDetailCount});this.getThemeManager().getParam("isDark")&&i.setOptions({theme:"ace/theme/tomorrow_night"});if(this.isEditMode()){i.getSession().on("change",()=>{this.trigger("change",{ui:!0})});i.getSession().setUseWrapMode(!0)}if(this.isReadMode()){i.setReadOnly(!0);i.renderer.$cursorLayer.element.style.display="none";i.renderer.setShowGutter(!1)}i.setShowPrintMargin(!1);i.getSession().setUseWorker(!1);i.commands.removeCommand("find");i.setHighlightActiveLine(!1);this.isReadMode()||this.initAutocomplete()}}fetch(){var e={};e[this.name]=this.editor.getValue();return e}getFunctionDataList(){return this.getMetadata().get(["app","complexExpression","functionList"])||[]}initAutocomplete(){let n=this.getFunctionDataList().filter(e=>e.insertText),l=this.getFormulaAttributeList();s.require("ace/ext/language_tools");this.editor.setOptions({enableBasicAutocompletion:!0,enableLiveAutocompletion:!0});var e={identifierRegexps:[/[\\a-zA-Z0-9{}\[\].$'"]/],getCompletions:function(e,t,i,s,a){var r=n.filter(e=>{var t=e.name.toLowerCase();return 0===t.indexOf(s.toLowerCase())});let o=r.map(e=>({caption:e.name+"()",value:e.insertText,meta:e.returnType||null}));r=l.filter(e=>0===e.indexOf(s)),r=r.map(e=>({name:e,value:e,meta:"attribute"}));o=o.concat(r);a(null,o)}};this.editor.completers=[e]}getFormulaAttributeList(){if(!this.targetEntityType)return[];let s=this.getFieldManager().getEntityTypeAttributeList(this.targetEntityType,{ignoreTypeList:["map","linkMultiple","attachmentMultiple"],onlyAvailable:!0}).sort(),a=(s.unshift("id"),this.getMetadata().get(["entityDefs",this.targetEntityType,"links"])||{}),i=[];Object.keys(a).forEach(e=>{var t=a[e].type;t&&["hasMany","hasOne","belongsTo"].includes(t)&&i.push(e)});i.sort();i.forEach(t=>{var e=a[t],i=e.entity;if(i&&!e.disabled&&!e.utility){s.push(t+".id");e=this.getFieldManager().getEntityTypeAttributeList(i,{ignoreTypeList:["map","linkMultiple","attachmentMultiple"],onlyAvailable:!0}).sort();e.forEach(e=>s.push(t+"."+e))}});return s}addAttribute(){this.createView("dialog","views/admin/formula/modals/add-attribute",{scope:this.targetEntityType,attributeList:this.getFormulaAttributeList()},e=>{e.render();this.listenToOnce(e,"add",e=>{this.editor.insert(e);this.clearView("dialog")})})}addFunction(){this.createView("dialog","views/admin/complex-expression/modals/add-function",{scope:this.targetEntityType,functionDataList:this.getFunctionDataList()},e=>{e.render();this.listenToOnce(e,"add",e=>{this.editor.insert(e);this.clearView("dialog")})})}}e.default=a});define("views/fields/complex-created",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{detailTemplateContent=`
|
||
{{~#if hasAt~}}
|
||
<span data-name="{{baseName}}At" class="field">{{{atField}}}</span>
|
||
{{~/if~}}
|
||
{{~#if hasBoth~}}
|
||
<span style="user-select: none"> <span class="text-muted middle-dot"></span> </span>
|
||
{{~/if~}}
|
||
{{~#if hasBy~}}
|
||
<span data-name="{{baseName}}By" class="field">{{{byField}}}</span>
|
||
{{~/if~}}
|
||
`;baseName="created";getAttributeList(){return[this.fieldAt,this.fieldBy]}init(){this.baseName=this.options.baseName||this.baseName;this.fieldAt=this.baseName+"At";this.fieldBy=this.baseName+"By";super.init()}setup(){super.setup();this.createField("at");this.createField("by")}data(){var e=this.model.has(this.fieldBy+"Id"),t=this.model.has(this.fieldAt);return{baseName:this.baseName,hasBy:e,hasAt:t,hasBoth:t&&e,...super.data()}}createField(e){var t=this.baseName+Espo.Utils.upperCaseFirst(e),i=this.model.getFieldType(t)||"base",i=this.model.getFieldParam(t,"view")||this.getFieldManager().getViewName(i);this.createView(e+"Field",i,{name:t,model:this.model,mode:this.MODE_DETAIL,readOnly:!0,readOnlyLocked:!0,selector:'[data-name="'+t+'"]'})}fetch(){return{}}}e.default=s});define("views/fields/collaborators",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{linkClass="text-default";init(){this.assignmentPermission=this.getAcl().getPermissionLevel("assignmentPermission");"no"===this.assignmentPermission&&(this.readOnly=!0);super.init()}getSelectBoolFilterList(){if("team"===this.assignmentPermission)return["onlyMyTeam"]}getSelectPrimaryFilterName(){return"active"}getDetailLinkHtml(e,t){var i=super.getDetailLinkHtml(e),s=this.isDetailMode()?this.getHelper().getAvatarHtml(e,"small",18,"avatar-link"):"";return s?""+s+i:i}getOnEmptyAutocomplete(){if(!this.params.autocompleteOnEmpty)return this.ids&&this.ids.includes(this.getUser().id)?Promise.resolve([]):Promise.resolve([{id:this.getUser().id,name:this.getUser().attributes.name}])}prepareEditItemElement(e,t){var i=super.prepareEditItemElement(e,t),s=this.getHelper().getAvatarHtml(e,"small",18,"avatar-link");if(s){var s=(new DOMParser).parseFromString(s,"text/html").body.childNodes[0],a=i.querySelector(".text");null!=a&&a.prepend(s)}return i}}e.default=s});define("views/fields/barcode",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;let s,r;class a extends t.default{type="barcode";listTemplate="fields/barcode/detail";detailTemplate="fields/barcode/detail";setup(){this.validations.push("valid");let e=255;switch(this.params.codeType){case"EAN2":e=2;break;case"EAN5":e=5;break;case"EAN8":e=8;break;case"EAN13":e=13;break;case"UPC":e=12;break;case"UPCE":e=11;break;case"ITF14":e=14;break;case"pharmacode":e=6}this.params.maxLength=e;if("QRcode"!==this.params.codeType){this.isSvg=!0;this.wait(Espo.loader.requirePromise("lib!jsbarcode").then(e=>s=e))}else this.wait(Espo.loader.requirePromise("lib!qrcodejs").then(e=>r=e));super.setup();$(window).on("resize."+this.cid,()=>{this.isRendered()&&this.controlWidth()});this.listenTo(this.recordHelper,"panel-show",()=>this.controlWidth())}data(){var e=super.data();e.isSvg=this.isSvg;return e}onRemove(){$(window).off("resize."+this.cid)}afterRender(){super.afterRender();if(this.isListMode()||this.isDetailMode()){let e=this.model.get(this.name);if(e)if("QRcode"===this.params.codeType)this.initQrcode(e);else{var t=$(this.getSelector()+" .barcode");t.length?this.initBarcode(e):setTimeout(()=>{this.initBarcode(e);this.controlWidth()},100)}this.controlWidth()}}initQrcode(i){let s=128;192<i.length&&(s*=2);this.isListMode()&&(s=64);var t=this.$el.width();t<s&&t&&(s=t);let a=this.$el.find(".barcode");t=e=>{var t={text:i,width:s,height:s,colorDark:"#000000",colorLight:"#ffffff",correctLevel:e||r.CorrectLevel.H};new r(a.get(0),t)};try{t()}catch(e){try{a.empty();t(r.CorrectLevel.L)}catch(e){console.error(this.name+": "+e.message)}}}initBarcode(e){var t=this.getThemeManager().getFontSizeFactor();try{s(this.getSelector()+" .barcode",e,{format:this.params.codeType,height:50*t,fontSize:14*t,margin:0,lastChar:this.params.lastChar})}catch(e){console.error(this.name,e)}}controlWidth(){this.$el.find(".barcode").css("max-width",this.$el.width()+"px")}validateValid(){if("QRcode"!==this.params.codeType){var e=this.model.get(this.name);if(e){let t;try{s({},e,{format:this.params.codeType,lastChar:this.params.lastChar,valid:e=>t=e})}catch(e){return!0}if(!t){e=this.translate("barcodeInvalid","messages").replace("{field}",this.getLabelText()).replace("{type}",this.params.codeType);this.showValidationMessage(e);return!0}}}}}e.default=a});define("views/fields/autoincrement",["exports","views/fields/int"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="autoincrement";validations=[];inlineEditDisabled=!0;readOnly=!0;disableFormatting=!0;parse(e){e=""!==e?e:null;null!==e&&(e=-1!==e.indexOf(".")||-1!==e.indexOf(",")?NaN:parseInt(e));return e}fetch(){return{}}}e.default=s});define("views/fields/assigned-users",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{linkClass="text-default";init(){this.assignmentPermission=this.getAcl().getPermissionLevel("assignmentPermission");"no"===this.assignmentPermission&&(this.readOnly=!0);super.init()}getSelectBoolFilterList(){if("team"===this.assignmentPermission)return["onlyMyTeam"]}getSelectPrimaryFilterName(){return"active"}getDetailLinkHtml(e,t){var i=super.getDetailLinkHtml(e),s=this.isDetailMode()||this.isListMode()?this.getHelper().getAvatarHtml(e,"small",18,"avatar-link"):"";return s?s+i:i}getOnEmptyAutocomplete(){if(!this.params.autocompleteOnEmpty)return this.ids&&this.ids.includes(this.getUser().id)?Promise.resolve([]):Promise.resolve([{id:this.getUser().id,name:this.getUser().get("name")}])}prepareEditItemElement(e,t){var i=super.prepareEditItemElement(e,t),s=this.getHelper().getAvatarHtml(e,"small",18,"avatar-link");if(s){var s=(new DOMParser).parseFromString(s,"text/html").body.childNodes[0],a=i.querySelector(".text");null!=a&&a.prepend(s)}return i}}e.default=s});define("views/fields/assigned-user",["exports","views/fields/user-with-avatar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{init(){this.assignmentPermission=this.getAcl().getPermissionLevel("assignmentPermission");"no"===this.assignmentPermission&&this.setReadOnly(!0);super.init()}getSelectBoolFilterList(){if("team"===this.assignmentPermission)return["onlyMyTeam"]}getSelectPrimaryFilterName(){return"active"}getOnEmptyAutocomplete(){if(!this.params.autocompleteOnEmpty)return Promise.resolve([{id:this.getUser().id,name:this.getUser().get("name")}])}}e.default=s});define("views/fields/array-int",["exports","views/fields/array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{type="arrayInt";fetchFromDom(){let s=[];this.$el.find(".list-group .list-group-item").each((e,t)=>{let i=$(t).data("value");("string"==typeof i||i instanceof String)&&(i=parseInt($(t).data("value")));s.push(i)});this.selected=s}addValue(e){e=parseInt(e);isNaN(e)||super.addValue(e)}removeValue(e){e=parseInt(e);if(!isNaN(e)){var t=CSS.escape(e.toString()),t=(this.$list.children('[data-value="'+t+'"]').remove(),this.selected.indexOf(e));this.selected.splice(t,1);this.trigger("change")}}}e.default=s});define("views/fields/address",["exports","views/fields/base","views/fields/varchar","ui/autocomplete"],function(e,t,s,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class r extends t.default{type="address";listTemplate="fields/address/detail";detailTemplate="fields/address/detail";editTemplate="fields/address/edit";editTemplate1="fields/address/edit-1";editTemplate2="fields/address/edit-2";editTemplate3="fields/address/edit-3";editTemplate4="fields/address/edit-4";searchTemplate="fields/address/search";listLinkTemplate="fields/address/list-link";postalCodeField;streetField;cityField;stateField;countryField;validations=["required","pattern"];events={'click [data-action="viewMap"]':function(e){e.preventDefault();e.stopPropagation();this.viewMapAction()}};data(){let t=super.data();t.ucName=Espo.Utils.upperCaseFirst(this.name);this.addressPartList.forEach(e=>{t[e+"Value"]=this.model.get(this[e+"Field"])});if(this.isReadMode()){t.formattedAddress=this.getFormattedAddress();t.isNone=null===t.formattedAddress;if(-1===t.formattedAddress){t.formattedAddress=null;t.isLoading=!0}if(this.params.viewMap&&this.canBeDisplayedOnMap()){t.viewMap=!0;t.viewMapLink="#AddressMap/view/"+this.model.entityType+"/"+this.model.id+"/"+this.name}}if(this.isEditMode()){t.stateMaxLength=this.stateMaxLength;t.streetMaxLength=this.streetMaxLength;t.postalCodeMaxLength=this.postalCodeMaxLength;t.cityMaxLength=this.cityMaxLength;t.countryMaxLength=this.countryMaxLength}return t}setupSearch(){this.searchData.value=this.getSearchParamsData().value||this.searchParams.additionalValue}canBeDisplayedOnMap(){return!!this.model.get(this.name+"City")||!!this.model.get(this.name+"PostalCode")}getFormattedAddress(){let t=!1,i=!1;this.addressAttributeList.forEach(e=>{t=t||this.model.get(e);i=i||this.model.has(e)});var e=!t;return e?this.mode===this.MODE_LIST?"":i?null:-1:(e="getFormattedAddress"+this.getAddressFormat().toString(),e in this?this[e]():void 0)}getFormattedAddress1(){var e=this.model.get(this.postalCodeField),t=this.model.get(this.streetField),i=this.model.get(this.cityField),s=this.model.get(this.stateField),a=this.model.get(this.countryField);let r="";t&&(r+=t);if(i||s||e){""!==r&&(r+="\n");i&&(r+=i);if(s){i&&(r+=", ");r+=s}if(e){(i||s)&&(r+=" ");r+=e}}if(a){""!==r&&(r+="\n");r+=a}return r}getFormattedAddress2(){var e=this.model.get(this.postalCodeField),t=this.model.get(this.streetField),i=this.model.get(this.cityField),s=this.model.get(this.stateField),a=this.model.get(this.countryField);let r="";t&&(r+=t);if(i||e){""!==r&&(r+="\n");if(e){r+=e;i&&(r+=" ")}i&&(r+=i)}if(s||a){""!==r&&(r+="\n");if(s){r+=s;a&&(r+=" ")}a&&(r+=a)}return r}getFormattedAddress3(){var e=this.model.get(this.postalCodeField),t=this.model.get(this.streetField),i=this.model.get(this.cityField),s=this.model.get(this.stateField),a=this.model.get(this.countryField);let r="";a&&(r+=a);if(i||s||e){""!==r&&(r+="\n");e&&(r+=e);if(s){e&&(r+=" ");r+=s}if(i){(e||s)&&(r+=" ");r+=i}}if(t){""!==r&&(r+="\n");r+=t}return r}getFormattedAddress4(){var e=this.model.get(this.postalCodeField),t=this.model.get(this.streetField),i=this.model.get(this.cityField),s=this.model.get(this.stateField),a=this.model.get(this.countryField);let r="";t&&(r+=t);if(i){""!==r&&(r+="\n");r+=i}if(a||s||e){""!==r&&(r+="\n");a&&(r+=a);if(s){a&&(r+=" - ");r+=s}if(e){(a||s)&&(r+=" ");r+=e}}return r}_getTemplateName(){if(this.mode===this.MODE_EDIT){var e="editTemplate"+this.getAddressFormat().toString();if(e in this)return this[e]}return super._getTemplateName()}getAddressFormat(){return this.getConfig().get("addressFormat")||1}afterRender(){if(this.mode===this.MODE_EDIT){this.$street=this.$el.find(`[data-name="${this.streetField}"]`);this.$postalCode=this.$el.find(`[data-name="${this.postalCodeField}"]`);this.$state=this.$el.find(`[data-name="${this.stateField}"]`);this.$city=this.$el.find(`[data-name="${this.cityField}"]`);this.$country=this.$el.find(`[data-name="${this.countryField}"]`);this.$street.on("change",()=>this.trigger("change"));this.$postalCode.on("change",()=>this.trigger("change"));this.$state.on("change",()=>this.trigger("change"));this.$city.on("change",()=>this.trigger("change"));this.$country.on("change",()=>this.trigger("change"));var t=this.getCountryList(),i=this.getConfig().get("addressCityList")||[],s=this.getConfig().get("addressStateList")||[];if(t.length){let e=new a.default(this.$country.get(0),{name:this.name+"Country",triggerSelectOnValidInput:!0,autoSelectFirst:!0,handleFocusMode:1,focusOnSelect:!0,lookup:t,lookupFunction:this.getCountryAutocompleteLookupFunction(t),onSelect:()=>this.trigger("change")});this.once("render remove",()=>e.dispose())}if(i.length){let e=new a.default(this.$city.get(0),{name:this.name+"City",triggerSelectOnValidInput:!0,autoSelectFirst:!0,handleFocusMode:1,focusOnSelect:!0,lookup:i,onSelect:()=>this.trigger("change")});this.once("render remove",()=>e.dispose())}if(s.length){let e=new a.default(this.$state.get(0),{name:this.name+"State",triggerSelectOnValidInput:!0,autoSelectFirst:!0,handleFocusMode:1,focusOnSelect:!0,lookup:s,onSelect:()=>this.trigger("change")});this.once("render remove",()=>e.dispose())}this.controlStreetTextareaHeight();this.$street.on("input",()=>this.controlStreetTextareaHeight())}}controlStreetTextareaHeight(e){var t=this.$street.prop("scrollHeight"),i=this.$street.prop("clientHeight");if(void 0===e&&0===i)setTimeout(this.controlStreetTextareaHeight.bind(this),10);else if(i!==e){if(i+1<t){t=this.$street.prop("rows");this.$street.attr("rows",t+1);this.controlStreetTextareaHeight(i)}0===this.$street.val().length&&this.$street.attr("rows",1)}}setup(){super.setup();var e=this.getMetadata().get(["fields",this.type,"actualFields"])||["street","city","state","country","postalCode"];this.addressAttributeList=[];this.addressPartList=[];e.forEach(e=>{var t=this.name+Espo.Utils.upperCaseFirst(e);this.addressAttributeList.push(t);this.addressPartList.push(e);this[e+"Field"]=t;this[e+"MaxLength"]=this.getMetadata().get(["entityDefs",this.entityType,"fields",t,"maxLength"])})}validateRequired(){var e=e=>{if(this.model.isRequired(e)&&""===this.model.get(e)){var t=this.translate("fieldIsRequired","messages").replace("{field}",this.translate(e,"fields",this.entityType));this.showValidationMessage(t,'[data-name="'+e+'"]');return!0}},t=e(this.postalCodeField)||!1;t=e(this.streetField)||t;t=e(this.stateField)||t;t=e(this.cityField)||t;t=e(this.countryField)||t;return t}isRequired(){return this.model.getFieldParam(this.postalCodeField,"required")||this.model.getFieldParam(this.streetField,"required")||this.model.getFieldParam(this.stateField,"required")||this.model.getFieldParam(this.cityField,"required")||this.model.getFieldParam(this.countryField,"required")}validatePattern(){var e,t=[this.postalCodeField,this.stateField,this.cityField,this.countryField];let i=!1;for(e of t)i=s.default.prototype.fieldValidatePattern.call(this,e)||i;return i}fetch(){let t={};t[this.postalCodeField]=this.$postalCode.val().toString().trim();t[this.streetField]=this.$street.val().toString().trim();t[this.stateField]=this.$state.val().toString().trim();t[this.cityField]=this.$city.val().toString().trim();t[this.countryField]=this.$country.val().toString().trim();var e=[this.postalCodeField,this.streetField,this.stateField,this.cityField,this.countryField];e.forEach(e=>{""===t[e]&&(t[e]=null)});return t}fetchSearch(){var e=this.$el.find("input.main-element").val().toString().trim();return e?{type:"or",value:[{type:"like",field:this.postalCodeField,value:e+"%"},{type:"like",field:this.streetField,value:e+"%"},{type:"like",field:this.cityField,value:e+"%"},{type:"like",field:this.stateField,value:e+"%"},{type:"like",field:this.countryField,value:e+"%"}],data:{value:e}}:null}viewMapAction(){this.createView("mapDialog","views/modals/view-map",{model:this.model,field:this.name},e=>e.render())}getCountryList(){var e=(this.getHelper().getAppParam("addressCountryData")||{}).list||[];return e.length?e:[]}getCountryAutocompleteLookupFunction(s){let a=(this.getHelper().getAppParam("addressCountryData")||{}).preferredList||[];if(a.length)return e=>{if(0===e.length){let e=a.map(e=>({value:e}));return Promise.resolve(e)}let t=e.toLowerCase(),i=s.filter(e=>{if(0===e.toLowerCase().indexOf(t))return e.length!==t.length}).map(e=>({value:e}));return Promise.resolve(i)}}}e.default=r});define("views/fields/address-state",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){var e=this.getConfig().get("addressStateList")||[];e.length&&(this.params.options=Espo.Utils.clone(e))}}e.default=s});define("views/fields/address-country",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){var e=this.getCountryList();e.length&&(this.params.options=Espo.Utils.clone(e))}getCountryList(){var e=(this.getHelper().getAppParam("addressCountryData")||{}).list||[];return e.length?e:[]}getAutocompleteLookupFunction(){let a=(this.getHelper().getAppParam("addressCountryData")||{}).preferredList||[];if(a.length){let s=this.params.options||[];return e=>{if(0===e.length){let e=a.map(e=>({value:e}));return Promise.resolve(e)}let t=e.toLowerCase(),i=s.filter(e=>{if(0===e.toLowerCase().indexOf(t))return e.length!==t.length}).map(e=>({value:e}));return Promise.resolve(i)}}}}e.default=s});define("views/fields/address-city",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){var e=this.getConfig().get("addressCityList")||[];e.length&&(this.params.options=Espo.Utils.clone(e))}}e.default=s});define("views/export/record/record",["exports","views/record/edit-for-modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{formatList=null;customParams=null;setupBeforeFinal(){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());super.setupBeforeFinal()}setupExportFieldDefs(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||{};this.customParams[e]=[];for(t in 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(e){this.detailLayout=[];var t={rows:[[{name:"format"},!1],[{name:"exportAllFields"},!1],[{name:"fieldList",options:{translatedOptions:e.translations}}]]};this.detailLayout.push(t);this.formatList.forEach(t=>{var 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(){this.dynamicLogicDefs={fields:{}};this.formatList.forEach(s=>{let a=this.getFormatParamsDefs(s).dynamicLogic||{};this.customParams[s].forEach(e=>{var t=a[e]||{};t.visible||(t.visible={});t.visible.conditionGroup||(t.visible.conditionGroup=[]);t.visible.conditionGroup.push({type:"equals",attribute:"format",value:s});var i=this.modifyParamName(s,e);this.dynamicLogicDefs.fields[i]=t})})}getFormatParamList(e){return Object.keys(this.getFormatParamsDefs(e).fields||{})}getFormatParamsDefs(e){var t=this.getMetadata().get(["app","export","formatDefs",e])||{};return Espo.Utils.cloneDeep(t.params||{})}modifyParamName(e,t){return e+Espo.Utils.upperCaseFirst(t)}getExportFieldsData(){let s=this.getFieldManager().getEntityTypeFieldList(this.scope),t=this.getAcl().getScopeForbiddenFieldList(this.scope);s=s.filter(e=>!~t.indexOf(e));s=s.filter(e=>{var t=this.getMetadata().get(["entityDefs",this.scope,"fields",e])||{};return!(t.disabled||t.exportDisabled||"map"===t.type||t.utility)});this.getLanguage().sortFieldList(this.scope,s);s.unshift("id");let a={};s.forEach(e=>{a[e]=this.getLanguage().translate(e,"fields",this.scope)});var e=this.model.get("fieldList")||[];e.forEach(e=>{if(!~s.indexOf(e)&&~e.indexOf("_")){var t=e.split("_"),i=(s.push(e),this.getMetadata().get(["entityDefs",this.scope,"links",t[0],"entity"]));i&&(a[e]=this.getLanguage().translate(t[0],"links",this.scope)+"."+this.getLanguage().translate(t[1],"fields",i))}});return{list:s,translations:a}}controlAllFields(){this.model.get("exportAllFields")?this.hideField("fieldList"):this.showField("fieldList")}controlFormatField(){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)})}}e.default=s});define("views/export/modals/idle",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{template="export/modals/idle";className="dialog dialog-record";checkInterval=4e3;data(){return{infoText:this.translate("infoText","messages","Export")}}setup(){this.addActionHandler("download",()=>this.actionDownload());this.action=this.options.action;this.id=this.options.id;this.status="Pending";this.headerText=this.translate("Export");this.model=new i.default;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(){Espo.Ajax.getRequest(`Export/${this.id}/status`).then(e=>{var t=e.status;this.model.set("status",t);if("Pending"===t||"Running"===t)setTimeout(()=>this.checkStatus(),this.checkInterval);else{this.model.set({attachmentId:e.attachmentId});if("Success"===t){this.trigger("success",{attachmentId:e.attachmentId});this.showDownload()}this.$el&&this.$el.find(".info-text").addClass("hidden")}})}showDownload(){this.$el.find(".download-container").removeClass("hidden");var e=this.$el.find('[data-action="download"]');e.removeClass("hidden")}actionDownload(){this.trigger("download",this.model.get("attachmentId"));this.close()}}e.default=a});define("views/export/modals/export",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{cssName="export-modal";className="dialog dialog-record";template="export/modals/export";shortcutKeys={"Control+Enter":"export"};setup(){this.buttonList=[{name:"export",label:"Export",style:"danger",title:"Ctrl+Enter"},{name:"cancel",label:"Cancel"}];this.model=new i.default;this.model.name="Export";this.scope=this.options.scope;if(this.options.fieldList){var e=this.options.fieldList.filter(e=>{var t=this.getMetadata().get(`entityDefs.${this.scope}.fields.`+e)||{};return!t.exportDisabled&&!t.utility});this.model.set("fieldList",e);this.model.set("exportAllFields",!1)}else this.model.set("exportAllFields",!0);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(){return this.getView("record")}actionExport(){let i=this.getRecordView(),a=i.fetch();this.model.set(a);if(!i.validate()){let s={exportAllFields:a.exportAllFields,format:a.format};if(!a.exportAllFields){let i=[];a.fieldList.forEach(e=>{if("id"===e)i.push("id");else{var t=this.getMetadata().get(["entityDefs",this.scope,"fields",e,"type"]);t&&this.getFieldManager().getAttributeList(t,e).forEach(e=>{i.push(e)});~e.indexOf("_")&&i.push(e)}});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()}}}e.default=a});define("views/event/fields/name-for-history",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listLinkTemplate="event/fields/name-for-history/list-link";data(){var e=super.data(),t=this.model.get("status"),i=this.getMetadata().get(["scopes",this.model.entityType,"canceledStatusList"])||[];e.strikethrough=i.includes(t);return e}}e.default=s});define("views/email-template/list",["exports","views/list-with-categories"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{quickCreate=!1}e.default=s});define("views/email-template/record/edit",["exports","views/record/edit","views/email-template/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{saveAndContinueEditingAction=!0;setup(){super.setup();i.default.prototype.listenToInsertField.call(this)}}e.default=a});define("views/email-template/record/edit-quick",["exports","views/record/edit","views/email-template/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setup(){super.setup();i.default.prototype.listenToInsertField.call(this)}}e.default=a});define("views/email-template/record/panels/information",["exports","views/record/panels/side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent="{{{infoText}}}";data(){var e=this.getMetadata().get(["clientDefs","EmailTemplate","placeholderList"])||[];let a=this.getMetadata().get("app.emailTemplate.placeholders")||{};var t=Object.keys(a).sort((e,t)=>{var i=a[e].order||0,s=a[t].order||0;return i-s}),t=[...t,...e];return t.length?(e=$("<h4>").text(this.translate("Available placeholders","labels","EmailTemplate")+":"),t=t.map(e=>$("<li>").append($("<code>").text("{"+e+"}")," – ",$("<span>").text(this.translate(e,"placeholderTexts","EmailTemplate")))),t=$("<ul>").append(t),e=$("<span>").addClass("complex-text").append(e,t),{infoText:e[0].outerHTML}):{infoText:""}}}e.default=s});define("views/email-template/fields/insert-field",["exports","views/fields/base","ui/select"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{inlineEditDisabled=!0;detailTemplate="email-template/fields/insert-field/detail";editTemplate="email-template/fields/insert-field/edit";data(){return{}}setup(){this.addActionHandler("insert",()=>{var e=this.$entityType.val(),t=this.$field.val();t&&this.insert(e,t)});if(this.mode!==this.MODE_LIST){let t=this.getMetadata().get("scopes");var e=Object.keys(t).filter(e=>{if("Email"!==e&&this.getAcl().checkScope(e))return t[e].entity&&t[e].object});this.translatedOptions={};let a={};e.forEach(i=>{this.translatedOptions[i]={};a[i]=this.getScopeAttributeList(i);a[i].forEach(e=>{this.translatedOptions[i][e]=this.translatePlaceholder(i,e)});let s=this.getMetadata().get(`entityDefs.${i}.links`)||{};var e=Object.keys(s).sort((e,t)=>this.translate(e,"links",i).localeCompare(this.translate(t,"links",i)));e.forEach(t=>{var e=s[t].type;if("belongsTo"===e){e=s[t].entity;if(e&&!s[t].disabled&&!s[t].utility&&!(this.getMetadata().get(["entityAcl",i,"links",t,"onlyAdmin"])||this.getMetadata().get(["entityAcl",i,"links",t,"forbidden"])||this.getMetadata().get(["entityAcl",i,"links",t,"internal"]))){e=this.getScopeAttributeList(e,!0);e.forEach(e=>{a[i].push(t+"."+e);this.translatedOptions[i][t+"."+e]=this.translatePlaceholder(i,t+"."+e)})}}})});a.Person=["name","firstName","lastName","salutationName","emailAddress","assignedUserName"];this.translatedOptions.Person={};this.entityList=e;this.entityFields=a}}getScopeAttributeList(a){let r=1<arguments.length&&void 0!==arguments[1]&&arguments[1],e=this.getFieldManager().getEntityTypeFieldList(a),o=[];e=e.sort((e,t)=>this.translate(e,"fields",a).localeCompare(this.translate(t,"fields",a)));e.forEach(e=>{var t=this.getMetadata().get(["entityDefs",a,"fields",e,"type"]),i=this.getMetadata().get(["entityAcl",a,"fields",e])||{},s=this.getMetadata().get(["entityDefs",a,"fields",e])||{};if(i.onlyAdmin||i.forbidden||i.internal||s.disabled||s.utility||s.directAccessDisabled&&(r||!s.loaderClassName)||s.templatePlaceholderDisabled)return!1;if("map"!==t&&"linkMultiple"!==t&&"attachmentMultiple"!==t&&!(this.getMetadata().get(["entityAcl",a,"fields",e,"onlyAdmin"])||this.getMetadata().get(["entityAcl",a,"fields",e,"forbidden"])||this.getMetadata().get(["entityAcl",a,"fields",e,"internal"]))){i=this.getFieldManager().getAttributeList(t,e);i.forEach(e=>{o.includes(e)||o.push(e)})}});let t=this.getAcl().getScopeForbiddenAttributeList(a);o=o.filter(e=>{if(!~t.indexOf(e))return!0});o.push("id");"personName"===this.getMetadata().get("entityDefs."+a+".fields.name.type")&&o.unshift("name");return o}translatePlaceholder(e,t){let i=t,s=e,a=!1,r;if(t.includes(".")){a=!0;i=t.split(".")[1];r=t.split(".")[0];s=this.getMetadata().get(`entityDefs.${e}.links.${r}.entity`)}let o=this.translate(i,"fields",s);if(i.indexOf("Id")===i.length-2){var n=i.substr(0,i.length-2);this.getMetadata().get(["entityDefs",s,"fields",n])&&(o=this.translate(n,"fields",s)+" ("+this.translate("id","fields")+")")}else if(i.indexOf("Name")===i.length-4){n=i.substr(0,i.length-4);this.getMetadata().get(["entityDefs",s,"fields",n])&&(o=this.translate(n,"fields",s)+" ("+this.translate("name","fields")+")")}else if(i.indexOf("Type")===i.length-4){n=i.substr(0,i.length-4);this.getMetadata().get(["entityDefs",s,"fields",n])&&(o=this.translate(n,"fields",s)+" ("+this.translate("type","fields")+")")}if(i.indexOf("Ids")===i.length-3){n=i.substr(0,i.length-3);this.getMetadata().get(["entityDefs",s,"fields",n])&&(o=this.translate(n,"fields",s)+" ("+this.translate("ids","fields")+")")}else if(i.indexOf("Names")===i.length-5){n=i.substr(0,i.length-5);this.getMetadata().get(["entityDefs",s,"fields",n])&&(o=this.translate(n,"fields",s)+" ("+this.translate("names","fields")+")")}else if(i.indexOf("Types")===i.length-5){n=i.substr(0,i.length-5);this.getMetadata().get(["entityDefs",s,"fields",n])&&(o=this.translate(n,"fields",s)+" ("+this.translate("types","fields")+")")}a&&(o=this.translate(r,"links",e)+" . "+o);return o}afterRender(){super.afterRender();if(this.mode===this.MODE_EDIT){let t={};this.entityList.forEach(e=>{t[e]=this.translate(e,"scopeNames")});this.entityList.sort((e,t)=>e.localeCompare(t));let i=this.$entityType=this.$el.find('[data-name="entityType"]');this.$field=this.$el.find('[data-name="field"]');i.on("change",()=>{this.changeEntityType()});i.append($("<option>").val("Person").text(this.translate("Person")));this.entityList.forEach(e=>{i.append($("<option>").val(e).text(t[e]))});s.default.init(this.$field);this.changeEntityType();s.default.init(this.$entityType)}}changeEntityType(){let t=this.$entityType.val();var e=this.entityFields[t];s.default.setValue(this.$field,"");s.default.setOptions(this.$field,e.map(e=>({value:e,label:this.translateItem(t,e)})))}translateItem(e,t){return this.translatedOptions[e][t]||this.translate(t,"fields")}insert(e,t){this.model.trigger("insert-field",{entityType:e,field:t})}}e.default=a});define("views/email-template/fields/body",["exports","views/fields/wysiwyg"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{htmlPurificationForEditDisabled=!0;hasBodyPlainField=!0}e.default=s});define("views/email-folder/list",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{quickCreate=!0;setup(){super.setup();this.collection.data={boolFilterList:["onlyMy"]}}}e.default=s});define("views/email-folder/list-side",["exports","view"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="email-folder/list-side";FOLDER_ALL="all";FOLDER_INBOX="inbox";FOLDER_DRAFTS="drafts";data(){var e={};e.selectedFolderId=this.selectedFolderId;e.showEditLink=this.options.showEditLink;e.scope=this.scope;return e}actionSelectFolder(e){this.$el.find("li.selected").removeClass("selected");this.selectFolder(e);this.$el.find(`li[data-id="${e}"]`).addClass("selected")}setup(){this.addActionHandler("selectFolder",(e,t)=>{e.preventDefault();this.actionSelectFolder(t.dataset.id)});this.scope="EmailFolder";this.selectedFolderId=this.options.selectedFolderId||this.FOLDER_ALL;this.emailCollection=this.options.emailCollection;this.loadNotReadCounts();this.listenTo(this.emailCollection,"sync",this.loadNotReadCounts);this.listenTo(this.emailCollection,"folders-update",this.loadNotReadCounts);this.listenTo(this.emailCollection,"all-marked-read",()=>{this.countsData=this.countsData||{};for(var e in this.countsData)e!==this.FOLDER_DRAFTS&&(this.countsData[e]=0);this.renderCounts()});this.listenTo(this.emailCollection,"draft-sent",()=>{this.decreaseNotReadCount(this.FOLDER_DRAFTS);this.renderCounts()});this.listenTo(this.emailCollection,"change:isRead",e=>{this.countsIsBeingLoaded||this.manageCountsDataAfterModelChanged(e)});this.listenTo(this.emailCollection,"model-removing",e=>{var t=this.emailCollection.get(e);!t||this.countsIsBeingLoaded||this.manageModelRemoving(t)});this.listenTo(this.emailCollection,"moving-to-trash",(e,t)=>{t=this.emailCollection.get(e)||t;!t||this.countsIsBeingLoaded||this.manageModelRemoving(t)});this.listenTo(this.emailCollection,"retrieving-from-trash",(e,t)=>{t=this.emailCollection.get(e)||t;!t||this.countsIsBeingLoaded||this.manageModelRetrieving(t)})}manageModelRemoving(e){if("Draft"===e.get("status")){this.decreaseNotReadCount(this.FOLDER_DRAFTS);this.renderCounts()}else if(e.get("isUsers")&&!e.get("isRead")){var t=e.get("groupFolderId")?"group:"+e.get("groupFolderId"):e.get("folderId")||this.FOLDER_INBOX;this.decreaseNotReadCount(t);this.renderCounts()}}manageModelRetrieving(e){if(e.get("isUsers")&&!e.get("isRead")){var t=e.get("groupFolderId")?"group:"+e.get("groupFolderId"):e.get("folderId")||this.FOLDER_INBOX;this.increaseNotReadCount(t);this.renderCounts()}}manageCountsDataAfterModelChanged(e){if(e.get("isUsers")){var t=e.get("groupFolderId")?"group:"+e.get("groupFolderId"):e.get("folderId")||this.FOLDER_INBOX;e.get("isRead")?this.decreaseNotReadCount(t):this.increaseNotReadCount(t);this.renderCounts()}}increaseNotReadCount(e){this.countsData=this.countsData||{};this.countsData[e]=this.countsData[e]||0;this.countsData[e]++}decreaseNotReadCount(e){this.countsData=this.countsData||{};this.countsData[e]=this.countsData[e]||0;this.countsData[e]&&this.countsData[e]--}selectFolder(e){this.emailCollection.reset();this.emailCollection.abortLastFetch();this.selectedFolderId=e;this.trigger("select",e)}afterRender(){this.countsData&&this.renderCounts()}loadNotReadCounts(){if(!this.countsIsBeingLoaded){this.countsIsBeingLoaded=!0;Espo.Ajax.getRequest("Email/inbox/notReadCounts").then(e=>{this.countsData=e;if(this.isRendered()){this.renderCounts();this.countsIsBeingLoaded=!1}else this.once("after:render",()=>{this.renderCounts();this.countsIsBeingLoaded=!1})})}}renderCounts(){var t,i=this.countsData;for(t in i){let e="";i[t]&&(e=i[t].toString());this.$el.find(`li a.count[data-id="${t}"]`).text(e)}}}e.default=s});define("views/email-folder/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{massUpdateDisabled=!0;mergeDisabled=!0;exportDisabled=!0;removeDisabled=!0;rowActionsView="views/email-folder/record/row-actions/default";actionMoveUp(e){var t=this.collection.get(e.id);if(t){var i=this.collection.indexOf(t);0!==i&&Espo.Ajax.postRequest("EmailFolder/action/moveUp",{id:t.id}).then(()=>{this.collection.fetch()})}}actionMoveDown(e){var t=this.collection.get(e.id);if(t){var i=this.collection.indexOf(t);i===this.collection.length-1&&this.collection.length===this.collection.total||Espo.Ajax.postRequest("EmailFolder/action/moveDown",{id:t.id}).then(()=>{this.collection.fetch()})}}}e.default=s});define("views/email-folder/record/edit-small",["exports","views/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{afterSave(){this.getBaseController().clearScopeStoredMainView("Email");super.afterSave()}}e.default=s});define("views/email-folder/record/row-actions/default",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getActionList(){var e=super.getActionList();if(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}})}return e}}e.default=s});define("views/email-folder/modals/select-folder",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{template="email-folder/modals/select-folder";cssName="select-folder";backdrop=!0;FOLDER_ALL="all";FOLDER_INBOX="inbox";FOLDER_IMPORTANT="important";FOLDER_SENT="sent";FOLDER_DRAFTS="drafts";FOLDER_TRASH="trash";FOLDER_ARCHIVE="archive";data(){return{folderDataList:this.folderDataList}}currentFolderId;setup(){this.addActionHandler("selectFolder",(e,t)=>{var i=t.dataset.id,s=t.dataset.name;this.trigger("select",i,s);this.close()});this.headerText=this.options.headerText||"";this.isGroup=this.options.isGroup||!1;this.noArchive=this.options.noArchive||!1;this.currentFolderId=this.options.currentFolderId;""===this.headerText&&this.buttonList.push({name:"cancel",label:"Cancel"});Espo.Ui.notifyWait();this.wait(Espo.Ajax.getRequest("EmailFolder/action/listAll").then(e=>{Espo.Ui.notify(!1);let t=[this.FOLDER_INBOX,this.FOLDER_IMPORTANT,this.FOLDER_SENT,this.FOLDER_DRAFTS,this.FOLDER_TRASH,this.FOLDER_ARCHIVE];var i={[this.FOLDER_ALL]:"far fa-hdd",[this.FOLDER_TRASH]:"far fa-trash-alt",[this.FOLDER_SENT]:"far fa-paper-plane",[this.FOLDER_INBOX]:"fas fa-inbox",[this.FOLDER_ARCHIVE]:"far fa-caret-square-down"};this.folderDataList=e.list.filter(e=>!(this.isGroup&&!e.id.startsWith("group:")||t.includes(e.id))).map(e=>{var t=e.id.startsWith("group:");return{disabled:e.id===this.currentFolderId,id:e.id,name:e.name,isGroup:t,iconClass:t?"far fa-circle":"far fa-folder"}});this.folderDataList.unshift({id:"inbox",name:this.isGroup?this.translate("all","presetFilters","Email"):this.translate("inbox","presetFilters","Email"),iconClass:this.isGroup?i[this.FOLDER_ALL]:i[this.FOLDER_INBOX]});this.noArchive||this.folderDataList.push({id:this.FOLDER_ARCHIVE,name:this.translate("archive","presetFilters","Email"),iconClass:i[this.FOLDER_ARCHIVE],disabled:this.currentFolderId===this.FOLDER_ARCHIVE})}))}}e.default=s});define("views/email-filter/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{massActionList=["remove","export"]}e.default=s});define("views/email-filter/modals/edit",["exports","views/modals/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{fullFormDisabled=!0}e.default=s});define("views/email-filter/fields/parent",["exports","views/fields/link-parent"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getSelectPrimaryFilterName(){if(this.foreignScope)return{User:"active"}[this.foreignScope]}}e.default=s});define("views/email-filter/fields/email-folder",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{createDisabled=!0;autocompleteDisabled=!0;getSelectFilters(){if(this.getUser().isAdmin()&&"User"===this.model.get("parentType")&&this.model.get("parentId"))return{assignedUser:{type:"equals",attribute:"assignedUserId",value:this.model.get("parentId"),data:{nameValue:this.model.get("parentName")}}}}}e.default=s});define("views/email/list",["exports","views/list","utils"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{createButton=!1;template="email/list";folderId=null;folderScope="EmailFolder";selectedFolderId=null;defaultFolderId="inbox";keepCurrentRootUrl=!0;stickableTop=null;FOLDER_ALL="all";FOLDER_INBOX="inbox";FOLDER_IMPORTANT="important";FOLDER_SENT="sent";FOLDER_DRAFTS="drafts";FOLDER_TRASH="trash";FOLDER_ARCHIVE="archive";noDropFolderIdList=["sent","drafts"];createListRecordView(e){return super.createListRecordView(e).then(e=>{this.listenTo(e,"after:render",()=>this.initDraggable(null));this.listenTo(e,"after:show-more",e=>this.initDraggable(e))})}initDroppable(){this.$el.find(".folders-container .folder-list > .droppable").droppable({accept:".list-row",tolerance:"pointer",over:e=>{if(this.isDroppable(e)){var t=$(e.target);t.removeClass("success");t.addClass("active");t.find("a").css("pointer-events","none")}},out:e=>{if(this.isDroppable(e)){var t=$(e.target);t.removeClass("active");t.find("a").css("pointer-events","")}},drop:(t,i)=>{if(this.isDroppable(t)){let e=$(t.target);var s=$(i.helper),a=(e.find("a").css("pointer-events",""),e.attr("data-id")),s=s.attr("data-id"),s=""===s||s;this.onDrop(a,s);e.removeClass("active");e.addClass("success");setTimeout(()=>{e.removeClass("success")},1e3)}}})}initDraggable(e){e=e||0;var t="ontouchstart"in window||0<navigator.maxTouchPoints;if(!t){let t=this.$el.find(".list-container > .list"),s=this.getEmailRecordView();this.collection.models.slice(e).forEach(i=>{var e=t.find(`.list-row[data-id="${i.id}"]`).first();e.draggable({cancel:"input,textarea,button,select,option,.dropdown-menu",helper:()=>{let e=this.translate("Moving to Folder","labels","Email"),t=(s.isIdChecked(i.id)&&!s.allResultIsChecked&&1<s.checkedList.length&&(e+=" · "+s.checkedList.length),i.id);s.isIdChecked(i.id)&&!s.allResultIsChecked&&(t="");return $("<div>").attr("data-id",t).css("cursor","grabbing").addClass("draggable-helper").text(e)},distance:8,containment:this.$el,appendTo:"body",cursor:"grabbing",cursorAt:{top:0,left:0},drag:()=>{if(s.allResultIsChecked)return!1},start:e=>{if(!s.allResultIsChecked){var t=$(e.target);t.closest("tr").addClass("active")}},stop:()=>{s.isIdChecked(i.id)||t.find(`.list-row[data-id="${i.id}"]`).first().removeClass("active")}})})}}isDroppable(e){var t=$(e.target),t=t.attr("data-id");return this.selectedFolderId!==this.FOLDER_DRAFTS&&(this.selectedFolderId!==this.FOLDER_SENT||t!==this.FOLDER_INBOX)&&(this.selectedFolderId===this.FOLDER_ALL?0===t.indexOf("group:"):t===this.FOLDER_ALL?0===this.selectedFolderId.indexOf("group:"):this.selectedFolderId===this.FOLDER_DRAFTS?0===t.indexOf("group:")||t!==this.FOLDER_TRASH&&t!==this.FOLDER_ARCHIVE:0!==this.selectedFolderId.indexOf("group:")||!(![this.FOLDER_ALL,this.FOLDER_ARCHIVE,this.FOLDER_TRASH].includes(t)&&!t.startsWith("group:")))}setup(){super.setup();this.addMenuItem("dropdown",!1);this.getAcl().checkScope("EmailAccountScope")&&this.addMenuItem("dropdown",{name:"reply",label:"Email Accounts",link:"#EmailAccount/list/userId="+this.getUser().id+"&userName="+encodeURIComponent(this.getUser().get("name"))});this.getAcl().checkScope("Import")||this.hideHeaderActionItem("archiveEmail");this.getUser().isAdmin()&&this.addMenuItem("dropdown",{link:"#InboundEmail",label:"Inbound Emails"});this.foldersDisabled=this.foldersDisabled||this.getConfig().get("emailFoldersDisabled")||this.getMetadata().get(["scopes",this.folderScope,"disabled"])||!this.getAcl().checkScope(this.folderScope);var e=this.options.params||{};this.selectedFolderId=e.folder||this.defaultFolderId;this.foldersDisabled&&(this.selectedFolderId=null);this.applyFolder();this.initEmailShortcuts();this.on("remove",()=>{$(window).off("resize.email-folders");$(window).off("scroll.email-folders")})}data(){var e={};e.foldersDisabled=this.foldersDisabled;return e}createSearchView(){var e=super.createSearchView();e.then(e=>{this.listenTo(e,"update-ui",()=>{this.stickableTop=null;setTimeout(()=>{$(window).trigger("scroll");this.stickableTop=null},100)})});return e}initEmailShortcuts(){this.shortcutKeys["Control+Delete"]=e=>{if(!i.default.isKeyEventInTextInput(e)&&this.hasSelectedRecords()){e.preventDefault();e.stopPropagation();this.getEmailRecordView().massActionMoveToTrash()}};this.shortcutKeys["Control+Backspace"]=e=>{if(!i.default.isKeyEventInTextInput(e)&&this.hasSelectedRecords()){e.preventDefault();e.stopPropagation();this.getEmailRecordView().massActionMoveToArchive()}};this.shortcutKeys["Control+KeyI"]=e=>{if(this.hasSelectedRecords()){e.preventDefault();e.stopPropagation();this.getEmailRecordView().toggleMassMarkAsImportant()}};this.shortcutKeys["Control+KeyM"]=e=>{if(this.hasSelectedRecords()){e.preventDefault();e.stopPropagation();this.getEmailRecordView().massActionMoveToFolder()}};this.shortcutKeys["Control+KeyQ"]=e=>{e.preventDefault();e.stopPropagation();this.hasSelectedRecords()?this.getEmailRecordView().massActionMarkAsRead():this.getEmailRecordView().actionMarkAllAsRead()}}hasSelectedRecords(){var e=this.getEmailRecordView();return e.checkedList&&e.checkedList.length&&!e.allResultIsChecked}setupReuse(e){super.setupReuse(e);this.applyRoutingParams(e);this.initDroppable();this.initStickableFolders();var t=this.getRecordView();t.removeQueuedRecord()}actionComposeEmail(e){e=e||{};Espo.Ui.notifyWait();var t=this.getMetadata().get("clientDefs.Email.modalViews.compose")||"views/modals/compose-email",i={attributes:{status:"Draft"},focusForCreate:e.focusForCreate};this.createView("quickCreate",t,i,e=>{e.render();e.notify(!1);this.listenToOnce(e,"after:save",()=>{this.collection.fetch()})})}afterRender(){super.afterRender();this.foldersDisabled||this.hasView("folders")||this.loadFolders()}getFolderCollection(t){this.getCollectionFactory().create(this.folderScope,e=>{e.url="EmailFolder/action/listAll";e.maxSize=200;this.listenToOnce(e,"sync",()=>{t.call(this,e)});e.fetch()})}loadFolders(){let t=null,s=[this.FOLDER_TRASH,this.FOLDER_DRAFTS,this.FOLDER_ALL,this.FOLDER_INBOX,this.FOLDER_IMPORTANT,this.FOLDER_SENT,this.FOLDER_ARCHIVE],a={[this.FOLDER_TRASH]:"far fa-trash-alt",[this.FOLDER_SENT]:"far fa-paper-plane",[this.FOLDER_INBOX]:"fas fa-inbox",[this.FOLDER_ARCHIVE]:"far fa-caret-square-down",[this.FOLDER_DRAFTS]:"far fa-file",[this.FOLDER_IMPORTANT]:"far fa-star"};this.getFolderCollection(i=>{i.forEach((e,t)=>{-1===this.noDropFolderIdList.indexOf(e.id)&&(e.droppable=!0);(e.id===this.FOLDER_INBOX||e.id===this.FOLDER_ARCHIVE||e.id===this.FOLDER_TRASH&&!i.models.find(e=>e.id===this.FOLDER_ARCHIVE)||0===e.id.indexOf("group:")&&i.models.findIndex(e=>0===e.id.indexOf("group:"))===t)&&(e.groupStart=!0);e.iconClass=a[e.id];if(0===e.id.indexOf("group:")){e.title=this.translate("groupFolder","fields","Email");e.iconClass="far fa-circle"}else if(-1===s.indexOf(e.id)){e.title=this.translate("folder","fields","Email");e.iconClass="far fa-folder"}});this.createView("folders","views/email-folder/list-side",{collection:i,emailCollection:this.collection,selector:".folders-container",showEditLink:this.getAcl().check(this.folderScope,"edit"),selectedFolderId:this.selectedFolderId},e=>{e.render().then(()=>this.initDroppable()).then(()=>this.initStickableFolders());this.listenTo(e,"select",e=>{this.selectedFolderId=e;this.applyFolder();t&&t.readyState<4&&t.abort();Espo.Ui.notifyWait();this.collection.offset=0;t=this.collection.fetch().then(()=>Espo.Ui.notify(!1));e!==this.defaultFolderId?this.getRouter().navigate("#Email/list/folder="+e):this.getRouter().navigate("#Email");this.updateLastUrl()})})})}applyFolder(){this.rootData.selectedFolderId=this.selectedFolderId;this.collection.trigger("select-folder");this.selectedFolderId?this.collection.whereFunction=()=>[{type:"inFolder",attribute:"folderId",value:this.selectedFolderId}]:this.collection.whereFunction=null}getFoldersView(){return this.getView("folders")}applyRoutingParams(e){let t;if("folder"in e){t=e.folder||"inbox";if(!e.isReturnThroughLink&&t!==this.selectedFolderId){var i=this.getFoldersView();if(i){i.actionSelectFolder(t);i.reRender();$(window).scrollTop(0)}}}}onDrop(e,t){let i=this.getEmailRecordView();if(e===this.FOLDER_IMPORTANT)setTimeout(()=>{!0===t?i.massActionMarkAsImportant():i.actionMarkAsImportant({id:t})},10);else if(this.selectedFolderId===this.FOLDER_TRASH)e!==this.FOLDER_TRASH&&(!0===t?i.massRetrieveFromTrashMoveToFolder(e):i.actionRetrieveFromTrashMoveToFolder({id:t,folderId:e}));else if(e===this.FOLDER_TRASH)!0===t?i.massActionMoveToTrash():i.actionMoveToTrash({id:t});else{0===this.selectedFolderId.indexOf("group:")&&e===this.FOLDER_ALL&&(e=this.FOLDER_INBOX);!0===t?i.massMoveToFolder(e):i.actionMoveToFolder({id:t,folderId:e})}}getEmailRecordView(){return this.getRecordView()}initStickableFolders(){let i=$(window),s=this.$el.find(".list-container"),a=this.$el.find(".folders-container"),r=this.$el.find(".left-container").first();var e=this.getThemeManager().getParam("screenWidthXs");let o=$(window.document).width()<e;e=this.getThemeManager().getFontSizeFactor();let n=this.getThemeManager().getParam("navbarHeight")*e+(this.getThemeManager().getParam("buttonsContainerHeight")||47)*e,l=parseInt(window.getComputedStyle($("#content").get(0)).paddingBottom,10),d=e=>{let t=e.get(0),i=0;for(;t;){i+=isNaN(t.offsetTop)?0:t.offsetTop;t=t.offsetParent}return o?i:i-n},t=(this.stickableTop=d(s),()=>{let e=this.stickableTop;null===e&&(e=this.stickableTop=d(s));var t=i.scrollTop();if(t<=e||o){a.removeClass("sticked").width("").scrollTop(0);a.css({maxHeight:""})}else if(t>e){t=i.scrollTop()-e,t=(a.addClass("sticked").width(r.outerWidth(!0)).scrollTop(t),parseInt(window.getComputedStyle(a.get(0)).top)),t=i.height()-t-l;a.css({maxHeight:t})}});i.on("resize.email-folders",()=>t());i.on("scroll.email-folders",()=>t())}handleShortcutKeyCtrlSpace(e){if(!i.default.isKeyEventInTextInput(e)&&this.getAcl().checkScope(this.scope,"create")){e.preventDefault();e.stopPropagation();this.actionComposeEmail({focusForCreate:!0})}}}e.default=a});define("views/email/record/list-related",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{massActionList=["remove","massUpdate"]}e.default=s});define("views/email/record/list-expanded",["exports","views/record/list-expanded","views/email/record/list"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{actionMarkAsImportant(e){i.default.prototype.actionMarkAsImportant.call(this,e)}actionMarkAsNotImportant(e){i.default.prototype.actionMarkAsNotImportant.call(this,e)}actionMoveToTrash(e){i.default.prototype.actionMoveToTrash.call(this,e)}}e.default=a});define("views/email/record/edit-quick",["exports","views/email/record/edit"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isWide=!0;sideView=!1}e.default=s});define("views/email/record/detail-side",["exports","views/record/detail-side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{}e.default=s});define("views/email/record/detail-quick",["exports","views/email/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isWide=!0;sideView=!1}e.default=s});define("views/email/record/compose",["exports","views/record/edit","views/email/record/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{isWide=!0;sideView=!1;initialBody;initialIsHtml;setupBeforeFinal(){super.setupBeforeFinal();this.initialBody=this.model.attributes.body;this.initialIsHtml=this.model.attributes.isHtml;if(!this.model.attributes.isHtml&&this.getPreferences().get("emailReplyForceHtml")){this.initialBody=(this.initialBody||"").replace(/\n/g,"<br>")||null;this.initialIsHtml=!0}let t=this.initialBody;if(!this.options.signatureDisabled&&this.hasSignature()){let e="prependSignature";this.options.appendSignature&&(e="appendSignature");t=this[e](t||"",this.initialIsHtml)||null}this.model.set("body",t,{silent:!0});this.model.set("isHtml",this.initialIsHtml,{silent:!0})}setup(){super.setup();this.isBodyChanged=!1;this.listenTo(this.model,"change:body",()=>{this.isBodyChanged=!0});if(!this.options.removeAttachmentsOnSelectTemplate){this.initialAttachmentsIds=this.model.get("attachmentsIds")||[];this.initialAttachmentsNames=this.model.get("attachmentsNames")||{}}this.initInsertTemplate();this.options.selectTemplateDisabled&&this.hideField("selectTemplate")}initInsertTemplate(){this.listenTo(this.model,"insert-template",e=>{var t=this.model.get("body")||"";let i=t.replace(/<br\s*\/?>/gm,"");i=i.replace(/<\/p\s*\/?>/gm,"");i=i.replace(/ /g,"");i=i.replace(/\n/g,"");t=$("<div>").html(i);i=t.text();""!==i&&this.isBodyChanged?this.confirm({message:this.translate("confirmInsertTemplate","messages","Email"),confirmText:this.translate("Yes")}).then(()=>this.insertTemplate(e)):this.insertTemplate(e)})}insertTemplate(t){let i=t.body;this.hasSignature()&&(i=this.appendSignature(i||"",t.isHtml));if(this.initialBody&&!this.isBodyChanged){let e=this.initialBody;t.isHtml!==this.initialIsHtml&&(e=t.isHtml?this.plainToHtml(e):this.htmlToPlain(e));i+=e}this.model.set("isHtml",t.isHtml);t.subject&&this.model.set("name",t.subject);this.model.set("body","");this.model.set("body",i);this.options.removeAttachmentsOnSelectTemplate||this.initialAttachmentsIds.forEach(e=>{t.attachmentsIds&&t.attachmentsIds.push(e);t.attachmentsNames&&(t.attachmentsNames[e]=this.initialAttachmentsNames[e]||e)});this.model.set({attachmentsIds:t.attachmentsIds,attachmentsNames:t.attachmentsNames});this.isBodyChanged=!1}prependSignature(t,e){if(e){let e=this.getSignature();t&&(e+="");return"<p><br></p>"+e+t}let i=this.getPlainTextSignature();t&&(i+="\n");return"\n\n"+i+t}appendSignature(t,e){if(e){let e=this.getSignature();return t+""+e}let i=this.getPlainTextSignature();return t+"\n\n"+i}hasSignature(){return!!this.getPreferences().get("signature")}getSignature(){return this.getPreferences().get("signature")||""}getPlainTextSignature(){var e=this.getSignature().replace(/<br\s*\/?>/gm,"\n"),e=$("<div>").html(e).text();return e}afterSave(){super.afterSave();this.isSending&&"Sent"===this.model.get("status")&&Espo.Ui.success(this.translate("emailSent","messages","Email"))}send(){i.default.prototype.send.call(this)}saveDraft(e){var t=this.model,i=(t.set("status","Draft"),this.getFieldView("subject"));if(i){i.fetchToModel();t.get("name")||t.set("name",this.translate("No Subject","labels","Email"))}return this.save(e)}htmlToPlain(e){e=e||"";let t=e.replace(/<br\s*\/?>/gm,"\n");t=t.replace(/<\/p\s*\/?>/gm,"\n\n");var i=$("<div>").html(t);i.find("style").remove();i.find('link[ref="stylesheet"]').remove();t=i.text();return t}plainToHtml(e){e=e||"";return e.replace(/\n/g,"<br>")}errorHandlerSendingFail(e){i.default.prototype.errorHandlerSendingFail.call(this,e)}focusForCreate(){if(this.model.get("to"))if(this.model.get("subject"))if(this.model.get("isHtml")){var e=this.$el.find('.field[data-name="body"] .note-editable');e.length&&e.focus()}else this.$el.find('.field[data-name="body"] textarea').prop("selectionEnd",0).focus();else this.$el.find('.field[data-name="subject"] input').focus();else this.$el.find('.field[data-name="to"] input').focus()}}e.default=a});define("views/email/record/row-actions/default",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.model,"change:isImportant change:inTrash change:groupStatusFolder",()=>{setTimeout(()=>this.reRender(),10)})}getActionList(){let e=[{action:"quickView",label:"View",data:{id:this.model.id},groupIndex:0}];this.model.get("createdById")!==this.getUser().id||"Draft"!==this.model.get("status")||this.model.attributes.inTrash||e.push({action:"send",label:"Send",data:{id:this.model.id}});this.options.acl.edit&&(e=e.concat([{action:"quickEdit",label:"Edit",data:{id:this.model.id},groupIndex:0}]));this.model.get("isUsers")&&(this.model.get("isImportant")?e.push({action:"markAsNotImportant",label:"Unmark Importance",data:{id:this.model.id},groupIndex:1}):this.model.get("inTrash")||e.push({action:"markAsImportant",label:"Mark as Important",data:{id:this.model.id},groupIndex:1}));this.model.attributes.isUsers&&!this.model.attributes.isRead&&e.push({action:"markAsRead",label:"Mark Read",data:{id:this.model.id},groupIndex:1});if(this.model.attributes.isUsers&&"Draft"!==this.model.attributes.status||this.model.attributes.groupFolderId){var t=this.model.attributes.groupFolderId?"Trash"===this.model.attributes.groupStatusFolder:this.model.attributes.inTrash,i=this.model.attributes.groupFolderId?"Archive"===this.model.attributes.groupStatusFolder:this.model.attributes.inArchive;t?e.push({action:"retrieveFromTrash",label:"Retrieve from Trash",data:{id:this.model.id},groupIndex:2}):e.push({action:"moveToTrash",label:"Move to Trash",data:{id:this.model.id},groupIndex:2});i||e.push({action:"moveToArchive",text:this.getLanguage().translatePath("Email.actions.moveToArchive"),data:{id:this.model.id},groupIndex:2});e.push({action:"moveToFolder",label:"Move to Folder",data:{id:this.model.id},groupIndex:2})}else this.model.attributes.isUsers||this.model.attributes.groupFolderId||"Archived"!==this.model.attributes.status||e.push({action:"moveToFolder",label:"Move to Folder",data:{id:this.model.id},groupIndex:2});this.options.acl.delete&&e.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});return e}}e.default=s});define("views/email/record/row-actions/dashlet",["exports","views/record/row-actions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.model,"change:isImportant",()=>{setTimeout(()=>this.reRender(),10)})}getActionList(){let e=[{action:"quickView",label:"View",data:{id:this.model.id},groupIndex:0}];this.options.acl.edit&&(e=e.concat([{action:"quickEdit",label:"Edit",data:{id:this.model.id},groupIndex:0}]));this.model.get("isUsers")&&"Draft"!==this.model.get("status")&&(this.model.get("inTrash")?e.push({action:"retrieveFromTrash",label:"Retrieve from Trash",data:{id:this.model.id},groupIndex:1}):e.push({action:"moveToTrash",label:"Move to Trash",data:{id:this.model.id},groupIndex:1}));this.getAcl().checkModel(this.model,"delete")&&e.push({action:"quickRemove",label:"Remove",data:{id:this.model.id},groupIndex:0});this.model.get("isUsers")&&(this.model.get("isImportant")?e.push({action:"markAsNotImportant",label:"Unmark Importance",data:{id:this.model.id},groupIndex:1}):e.push({action:"markAsImportant",label:"Mark as Important",data:{id:this.model.id},groupIndex:1}));return e}}e.default=s});define("views/email/record/panels/event",["exports","views/record/panels/side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupFields(){super.setupFields();this.fieldList.push({name:"icsEventDateStart",readOnly:!0,labelText:this.translate("dateStart","fields","Meeting")});this.fieldList.push({name:"createdEvent",readOnly:!0});this.fieldList.push({name:"createEvent",readOnly:!0,noLabel:!0});this.controlEventField();this.listenTo(this.model,"change:icsEventData",this.controlEventField,this);this.listenTo(this.model,"change:createdEventId",this.controlEventField,this)}controlEventField(){if(this.model.get("icsEventData")){var e=this.model.get("icsEventData");if(e.createdEvent){this.recordViewObject.hideField("createEvent");this.recordViewObject.showField("createdEvent")}else if(this.model.get("createdEventId")){this.recordViewObject.hideField("createEvent");this.recordViewObject.showField("createdEvent")}else{this.recordViewObject.hideField("createdEvent");this.recordViewObject.showField("createEvent")}}else{this.recordViewObject.hideField("createEvent");this.recordViewObject.showField("createdEvent")}}}e.default=s});define("views/email/record/panels/default-side",["exports","views/record/panels/default-side"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupFields(){super.setupFields();this.fieldList.push({name:"isAutoReply"});this.fieldList.push({name:"hasAttachment",view:"views/email/fields/has-attachment",noLabel:!0});this.controlHasAttachmentField();this.listenTo(this.model,"change:hasAttachment",()=>this.controlHasAttachmentField());this.controlIsAutoReply();this.listenTo(this.model,"change:isAutoReply",()=>this.controlIsAutoReply())}controlHasAttachmentField(){this.model.attributes.hasAttachment?this.recordViewObject.showField("hasAttachment"):this.recordViewObject.hideField("hasAttachment")}controlIsAutoReply(){this.model.attributes.isAutoReply?this.recordViewObject.showField("isAutoReply"):this.recordViewObject.hideField("isAutoReply")}}e.default=s});define("views/email/modals/insert-field",["exports","views/modal","helpers/misc/field-language"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{backdrop=!0;templateContent=`
|
||
{{#each viewObject.dataList}}
|
||
<div class="margin-bottom">
|
||
<h5>{{label}}: {{translate entityType category='scopeNames'}}</h5>
|
||
</div>
|
||
<ul class="list-group no-side-margin">
|
||
{{#each dataList}}
|
||
<li class="list-group-item clearfix">
|
||
<a role="button"
|
||
data-action="insert" class="text-bold" data-name="{{name}}" data-type="{{../type}}">
|
||
{{label}}
|
||
</a>
|
||
|
||
<div class="pull-right"
|
||
style="width: 50%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;">
|
||
{{valuePreview}}
|
||
</div>
|
||
</li>
|
||
{{/each}}
|
||
</ul>
|
||
{{/each}}
|
||
|
||
{{#unless viewObject.dataList.length}}
|
||
{{translate 'No Data'}}
|
||
{{/unless}}
|
||
`;setup(){super.setup();this.headerText=this.translate("Insert Field","labels","Email");this.fieldLanguage=new i.default(this.getMetadata(),this.getLanguage());this.wait(Espo.Ajax.getRequest("Email/insertFieldData",{parentId:this.options.parentId,parentType:this.options.parentType,to:this.options.to}).then(e=>{this.fetchedData=e;this.prepareData()}));this.addActionHandler("insert",(e,t)=>{var i=t.dataset.name,s=t.dataset.type;this.insert(s,i)})}prepareData(){this.dataList=[];let r=this.fetchedData;["parent","to"].forEach(e=>{if(r[e]){var t,i=r[e].entityType,s=r[e].id;for(t of this.dataList)if(t.id===s&&t.entityType===i)return;var a=this.prepareDisplayValueList(r[e].entityType,r[e].values);a.length&&this.dataList.push({type:e,entityType:i,id:s,name:r[e].name,dataList:a,label:this.translate(e,"fields","Email")})}})}prepareDisplayValueList(i,a){let r=[],e=Object.keys(a),o={};e.forEach(e=>{o[e]=this.fieldLanguage.translateAttribute(i,e)});e=e.sort((e,t)=>o[e].localeCompare(o[t]));let n=["id","modifiedAt","modifiedByName"];var t=this.getFieldManager();t.getEntityTypeFieldList(i).forEach(e=>{var t=this.getMetadata().get(["entityDefs",i,"fields",e,"type"]);["link","linkOne","image","filed","linkParent"].includes(t)&&n.push(e+"Id");"linkParent"===t&&n.push(e+"Type")});e.forEach(t=>{if(!~n.indexOf(t)){let e=a[t];if(null!==e&&""!==e&&"boolean"!=typeof e){if(Array.isArray(e)){for(var i in e)if("string"!=typeof i)return;e=e.split(", ")}e=this.getHelper().sanitizeHtml(e);var s=e.replace(/<br( \/)?>/gm," ");e=e.replace(/(?:\r\n|\r|\n)/g,"");e=e.replace(/<br( \/)?>/gm,"\n");r.push({name:t,label:o[t],value:e,valuePreview:s})}}});return r}insert(e,t){for(var i of this.dataList)if(i.type===e){for(var s of i.dataList)if(s.name===t){this.trigger("insert",s.value);break}break}this.close()}}e.default=a});define("views/email/modals/detail",["exports","views/modals/detail","views/email/detail"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{setup(){super.setup();this.addButton({name:"reply",label:"Reply",hidden:this.model&&"Draft"===this.model.get("status"),style:"danger",position:"right"},!0);this.model&&this.listenToOnce(this.model,"sync",()=>{setTimeout(()=>{this.model.set("isRead",!0)},50)})}controlRecordButtonsVisibility(){super.controlRecordButtonsVisibility();"Draft"!==this.model.get("status")&&this.getAcl().check("Email","create")?this.showActionItem("reply"):this.hideActionItem("reply")}actionReply(e,t){i.default.prototype.actionReply.call(this,{},t,this.getPreferences().get("emailReplyToAllByDefault"))}}e.default=a});define("views/email/modals/body-plain",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{backdrop=!0;templateContent=`
|
||
<div class="panel no-side-margin">
|
||
<div class="panel-body">
|
||
<div class="field" data-name="body-plain">{{{bodyPlain}}}</div>
|
||
</div>
|
||
|
||
</div>
|
||
`;setup(){super.setup();this.buttonList.push({name:"cancel",label:"Close"});this.headerText=this.model.get("name");this.createView("bodyPlain","views/fields/text",{selector:'.field[data-name="bodyPlain"]',model:this.model,defs:{name:"bodyPlain",params:{readOnly:!0,inlineEditDisabled:!0,displayRawText:!0}}})}}e.default=s});define("views/email/modals/attachments",["exports","views/modal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{backdrop=!0;templateContent='<div class="record no-side-margin">{{{record}}}</div>';setup(){super.setup();this.headerText=this.translate("attachments","fields","Email");this.createView("record","views/record/detail",{model:this.model,selector:".record",readOnly:!0,sideView:null,buttonsDisabled:!0,detailLayout:[{rows:[[{name:"attachments",noLabel:!0},!1]]}]});this.model.has("attachmentsIds")||this.wait(this.model.fetch())}}e.default=s});define("views/email/fields/subject",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listLinkTemplate="email/fields/subject/list-link";data(){var e=super.data();e.isRead=this.model.get("sentById")===this.getUser().id||this.model.get("isRead");e.isImportant=this.model.has("isImportant")&&this.model.get("isImportant");e.hasAttachment=this.model.has("hasAttachment")&&this.model.get("hasAttachment");e.isReplied=this.model.has("isReplied")&&this.model.get("isReplied");e.isAutoReply=this.model.has("isAutoReply")&&this.model.attributes.isAutoReply;e.hasIcon=e.hasAttachment||e.isAutoReply;if(e.hasIcon){e.iconCount=1;e.hasAttachment&&e.isAutoReply&&(e.iconCount=2)}e.inTrash=this.model.attributes.groupFolderId?"Trash"===this.model.attributes.groupStatusFolder:this.model.attributes.inTrash;e.inArchive=this.model.attributes.groupFolderId?"Archive"===this.model.attributes.groupStatusFolder:this.model.attributes.inArchive;e.style=null;e.isImportant?e.style="warning":e.inTrash?e.style="muted":e.inArchive&&(e.style="info");e.isRead||this.model.has("isRead")||(e.isRead=!0);e.isNotEmpty||null!==this.model.get("name")&&""!==this.model.get("name")&&this.model.has("name")&&(e.isNotEmpty=!0);return e}getValueForDisplay(){return this.model.get("name")}getAttributeList(){return["name","subject","isRead","isImportant","hasAttachment","inTrash","groupStatusFolder","isAutoReply"]}setup(){super.setup();this.events['click [data-action="showAttachments"]']=e=>{e.stopPropagation();this.showAttachments()};this.listenTo(this.model,"change:isRead change:isImportant change:groupStatusFolder",()=>{this.mode!==this.MODE_LIST&&this.mode!==this.MODE_LIST_LINK||this.reRender()})}fetch(){var e=super.fetch();e.name=e.subject;return e}showAttachments(){Espo.Ui.notifyWait();this.createView("dialog","views/email/modals/attachments",{model:this.model}).then(e=>{e.render();Espo.Ui.notify(!1)})}}e.default=s});define("views/email/fields/select-template",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{editTemplate="email/fields/select-template/edit";foreignScope="EmailTemplate";setup(){super.setup();this.on("change",()=>{var e=this.model.get(this.idName);e&&this.loadTemplate(e)})}getSelectPrimaryFilterName(){return"actual"}loadTemplate(e){let t=this.model.get("to")||"",i=null;t=t.trim();t&&(i=t.split(";")[0].trim());Espo.Ajax.postRequest(`EmailTemplate/${e}/prepare`,{emailAddress:i,parentType:this.model.get("parentType"),parentId:this.model.get("parentId"),relatedType:this.model.get("relatedType"),relatedId:this.model.get("relatedId")}).then(e=>{this.model.trigger("insert-template",e);this.emptyField()}).catch(()=>{this.emptyField()})}emptyField(){this.model.set(this.idName,null);this.model.set(this.nameName,null)}}e.default=s});define("views/email/fields/replies",["exports","views/fields/link-multiple"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getAttributeList(){var e=super.getAttributeList();e.push(this.name+"Columns");return e}getDetailLinkHtml(e){var t=super.getDetailLinkHtml(e),i=this.model.get(this.name+"Columns")||{},i=(i[e]||{}).status;return $("<div>").append($("<span>").addClass("fas fa-arrow-right fa-sm link-multiple-item-icon").addClass("Draft"===i?"text-warning":"text-success")).append(t).html()}}e.default=s});define("views/email/fields/replied",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{afterRender(){super.afterRender();if(this.mode===this.MODE_DETAIL){var e=this.$el.find("a");e.get(0)&&$('<span class="fas fa-arrow-left fa-sm link-field-icon text-soft"></span>').insertBefore(e)}}}e.default=s});define("views/email/fields/person-string-data-for-expanded",["exports","views/email/fields/person-string-data"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="email/fields/person-string-data/list-for-expanded"}e.default=s});define("views/email/fields/icon",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="email/fields/icon/detail";detailTemplate="email/fields/icon/detail"}e.default=s});define("views/email/fields/has-attachment",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="email/fields/has-attachment/detail";detailTemplate="email/fields/has-attachment/detail";data(){var e=super.data();e.isSmall=this.mode===this.MODE_LIST;return e}setup(){super.setup();this.addActionHandler("show",e=>{e.stopPropagation();this.show()})}show(){Espo.Ui.notifyWait();this.createView("dialog","views/email/modals/attachments",{model:this.model}).then(e=>{e.render();Espo.Ui.notify(!1)})}}e.default=s});define("views/email/fields/from-email-address",["exports","views/fields/link"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplate="email/fields/from-email-address/detail";detailTemplate="email/fields/from-email-address/detail"}e.default=s});define("views/email/fields/folder-string",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{detailTemplateContent=`
|
||
{{#if valueIsSet}}
|
||
{{#if value}}
|
||
{{#if isList}}
|
||
{{#each value}}
|
||
<div class="multi-enum-item-container">{{this}}</div>
|
||
{{/each}}
|
||
{{else}}
|
||
{{value}}
|
||
{{/if}}
|
||
|
||
{{else}}
|
||
<span class="none-value">{{translate 'None'}}</span>
|
||
{{/if}}
|
||
{{else}}
|
||
<span class="loading-value"></span>
|
||
{{/if}}
|
||
`;data(){var e;return this.model.has("folderId")?(e=this.getFolderString(),{valueIsSet:!0,value:this.getFolderString(),isList:Array.isArray(e)}):{valueIsSet:!1}}getAttributeList(){return["isUsers","folderId","folderName","groupFolderId","groupFolderName","inArchive","inTrash","isUsersSent","groupStatusFolder"]}getFolderString(){if(this.model.attributes.groupFolderName){let e=this.translate("group","strings","Email")+" · "+this.model.attributes.groupFolderName;"Archive"===this.model.attributes.groupStatusFolder?e+=" · "+this.translate("archive","presetFilters","Email"):"Trash"===this.model.attributes.groupStatusFolder&&(e+=" · "+this.translate("trash","presetFilters","Email"));return this.model.attributes.isUsersSent?[e,this.translate("sent","presetFilters","Email")]:e}let e;this.model.attributes.inTrash&&(e=this.translate("trash","presetFilters","Email"));this.model.attributes.inArchive&&(e=this.translate("archive","presetFilters","Email"));this.model.attributes.folderName&&this.model.attributes.folderId&&(e=this.model.attributes.folderName);return e&&this.model.attributes.isUsersSent?[e,this.translate("sent","presetFilters","Email")]:this.model.attributes.isUsersSent?this.translate("sent","presetFilters","Email"):this.model.attributes.createdById===this.getUser().id&&"Draft"===this.model.attributes.status?this.translate("drafts","presetFilters","Email"):this.model.attributes.isUsers?this.translate("inbox","presetFilters","Email"):void 0}}e.default=s});define("views/email/fields/email-address-varchar",["exports","views/fields/base","views/email/fields/from-address-varchar","views/email/fields/email-address","ui/autocomplete"],function(e,t,r,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);r=a(r);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class o extends t.default{detailTemplate="email/fields/email-address-varchar/detail";editTemplate="email/fields/email-address-varchar/edit";emailAddressRegExp=new RegExp(/^[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+(?:\.[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+)*/.source+/@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]/.source);data(){var e=super.data();e.valueIsSet=this.model.has(this.name);e.maxLength=254;e.hasSelectAddress=this.hasSelectAddress;return e}events={'click a[data-action="clearAddress"]':function(e){var t=$(e.currentTarget).data("address").toString();this.deleteAddress(t)},"keyup input":function(e){if(this.isEditMode()){var t=Espo.Utils.getKeyFromKeyEvent(e);if("Comma"===t||"Semicolon"===t||"Enter"===t){var t=$(e.currentTarget),i=this.obtainEmailAddressFromString(t.val());if(i){this.addAddress(i,"");t.val("")}}}},"change input":function(e){if(this.isEditMode()){var t=$(e.currentTarget),i=this.obtainEmailAddressFromString(t.val());if(i){this.addAddress(i,"");t.val("")}}},'click [data-action="createContact"]':function(e){var t=$(e.currentTarget).data("address");r.default.prototype.createPerson.call(this,"Contact",t)},'click [data-action="createLead"]':function(e){var t=$(e.currentTarget).data("address");r.default.prototype.createPerson.call(this,"Lead",t)},'click [data-action="addToContact"]':function(e){var t=$(e.currentTarget).data("address");r.default.prototype.addToPerson.call(this,"Contact",t)},'click [data-action="addToLead"]':function(e){var t=$(e.currentTarget).data("address");r.default.prototype.addToPerson.call(this,"Lead",t)},"auxclick a[href][data-scope][data-id]":function(e){var t=1===e.button&&(e.ctrlKey||e.metaKey);if(t){var t=$(e.currentTarget),i=t.attr("data-id"),t=t.attr("data-scope");e.preventDefault();e.stopPropagation();r.default.prototype.quickView.call(this,{id:i,scope:t})}}};obtainEmailAddressFromString(e){e=e.replace(",","").replace(";","").trim();var t=e.split(" ").find(e=>e.includes("@"));if(t&&this.checkEmailAddressInString(t))return t}getAutocompleteMaxCount(){return this.autocompleteMaxCount||this.getConfig().get("recordsPerPage")}getAttributeList(){var e=super.getAttributeList();e.push("nameHash");e.push("typeHash");e.push("idHash");e.push("accountId");e.push(this.name+"EmailAddressesNames");e.push(this.name+"EmailAddressesIds");return e}setup(){this.setupSelectAddress();this.on("render",()=>this.initAddressList())}setupSelectAddress(){var e=this.getConfig().get("emailAddressSelectEntityTypeList")||[];this.selectAddressEntityTypeList=e.filter(e=>this.getAcl().checkScope(e));this.hasSelectAddress=0!==this.selectAddressEntityTypeList.length;this.addActionHandler("selectAddress",()=>{var e=this.selectAddressEntityTypeList[0];this.processSelectEntityType(e)})}async processSelectEntityType(t){var e=this.getMetadata().get(["clientDefs",t,"modalViews","select"])||"views/modals/select-records",i=this.translate("Select")+" · "+this.translate(this.name,"fields","Email"),s={emailAddress:{type:"isNotNull",data:{type:"isNotEmpty"}},emailAddressIsInvalid:{type:"isFalse",data:{type:"isFalse"}}};if("Contact"===t&&(this.model.attributes.parentId&&"Account"===this.model.attributes.parentType||this.model.attributes.accountId)){var a=this.model.attributes.accountId||this.model.attributes.parentId,r=this.model.attributes.accountId?this.model.attributes.accountName:this.model.attributes.parentName;s.accounts={field:"accounts",type:"linkedWith",value:[a],data:{nameHash:{[a]:r}}}}a={entityType:t,multiple:!0,createButton:!1,mandatorySelectAttributeList:["emailAddress"],headerText:i,filters:s,onSelect:e=>{e.filter(e=>e.attributes.emailAddress).forEach(e=>{var t=e.attributes.emailAddress;if(!this.addressList.includes(t)){this.addressList.push(t);this.nameHash[t]=e.attributes.name;this.idHash[t]=e.id;this.typeHash[t]=e.entityType;this.addAddressHtml(t,e.attributes.name)}});this.trigger("change")}};let o=await this.createView("modal",e,a);this.selectAddressEntityTypeList.forEach(e=>{o.addButton({name:"selectEntityType"+e,style:"text",position:"right",label:this.translate(e,"scopeNamesPlural"),className:e===t?"active btn-xs-wide":"btn-xs-wide",disabled:e===t,onClick:()=>{this.clearView("modal");this.processSelectEntityType(e)}},!1,!0)});await o.render()}initAddressList(){this.nameHash={};this.addressList=(this.model.get(this.name)||"").split(";").filter(e=>""!==e).map(e=>e.trim());this.idHash=this.idHash||{};this.typeHash=this.typeHash||{};this.nameHash=this.nameHash||{};_.extend(this.typeHash,this.model.get("typeHash")||{});_.extend(this.nameHash,this.model.get("nameHash")||{});_.extend(this.idHash,this.model.get("idHash")||{});this.nameHash=_.clone(this.nameHash);this.typeHash=_.clone(this.typeHash);this.idHash=_.clone(this.idHash)}afterRender(){super.afterRender();if(this.isEditMode()){this.$input=this.$element=this.$el.find("input");this.addressList.forEach(e=>{this.addAddressHtml(e,this.nameHash[e]||"")});let t,e=new s.default(this.$input.get(0),{name:this.name,autoSelectFirst:!0,triggerSelectOnValidInput:!1,focusOnSelect:!0,minChars:1,forceHide:!0,onSelect:e=>{this.addAddress(e.emailAddress,e.entityName,e.entityType,e.entityId);this.$input.val("")},formatResult:e=>this.getHelper().escapeString(e.name)+" <"+this.getHelper().escapeString(e.id)+">",lookupFunction:e=>{t&&t.getReadyState()<4&&t.abort();t=Espo.Ajax.getRequest("EmailAddress/search",{q:e,maxSize:this.getAutocompleteMaxCount(),onlyActual:!0});return t.then(e=>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})))}});this.once("render remove",()=>e.dispose())}"search"===this.mode&&this.getAcl().check("Email","create")&&i.default.prototype.initSearchAutocomplete.call(this);"search"===this.mode&&this.$input.on("input",()=>{this.trigger("change")})}checkEmailAddressInString(e){var t=e.match(this.emailAddressRegExp);if(t&&t.length)return!0}addAddress(e,t,i,s){if(""===t){var a=this.model.attributes.nameHash??{};e in a&&(t=a[e])}if(void 0===i){a=this.model.attributes.typeHash??{};e in a&&(i=a[e])}if(void 0===s){a=this.model.attributes.idHash??{};e in a&&(s=a[e])}this.justAddedAddress&&this.deleteAddress(this.justAddedAddress);this.justAddedAddress=e;setTimeout(()=>{this.justAddedAddress=null},100);e=e.trim();if(!i){a=e.match(this.emailAddressRegExp);if(!a||!a.length)return;e=a[0]}if(!~this.addressList.indexOf(e)){this.addressList.push(e);this.nameHash[e]=t;i&&(this.typeHash[e]=i);s&&(this.idHash[e]=s);this.addAddressHtml(e,t);this.trigger("change")}}addAddressHtml(e,t){var i=this.$el.find(".link-container"),s=this.typeHash[e],a=this.idHash[e];let r="";var o=$("<span>");if(t){"User"===s&&a&&(r=this.getHelper().getAvatarHtml(a,"small",18,"avatar-link"));o.append($("<span>").text(t),'<span class="no-select"> </span>',$("<span>").addClass("text-muted middle-dot"),'<span class="no-select"> </span>')}o.append($("<span>").text(e));s=$("<div>").attr("data-address",e).addClass("list-group-item").append(r,$("<a>").attr("data-address",e).attr("role","button").attr("tabindex","0").attr("data-action","clearAddress").addClass("pull-right").append($("<span>").addClass("fas fa-times")),o);i.append(s)}deleteAddress(e){this.deleteAddressHtml(e);var t=this.addressList.indexOf(e);-1<t&&this.addressList.splice(t,1);delete this.nameHash[e];this.trigger("change")}deleteAddressHtml(e){this.$el.find('.list-group-item[data-address="'+e+'"]').remove()}fetch(){var e={};e[this.name]=this.addressList.join(";");return e}fetchSearch(){var e=this.$element.val().trim();return e?{type:"equals",value:e}:null}getValueForDisplay(){if(this.isDetailMode()){let t=[];this.addressList.forEach(e=>{t.push(this.getDetailAddressHtml(e))});return t.join("")}}getDetailAddressHtml(t){if(!t)return"";var i=this.nameHash[t]||null,s=this.typeHash[t]||null,a=this.idHash[t]||null;if(a){let e="";"User"===s&&(e=this.getHelper().getAvatarHtml(a,"small",18,"avatar-link"));return $('<div class="email-address-detail-item">').append(e,$("<a>").attr("href",`#${s}/view/`+a).attr("data-scope",s).attr("data-id",a).text(i),' <span class="text-muted middle-dot"></span> ',$("<span>").text(t)).get(0).outerHTML}s=$("<div>");i?s.append($("<span>").addClass("email-address-line").text(i).append(' <span class="text-muted middle-dot"></span> ').append($("<span>").text(t))):s.append($("<span>").addClass("email-address-line").text(t));(this.getAcl().check("Contact","create")||this.getAcl().check("Lead","create"))&&s.prepend(r.default.prototype.getCreateHtml.call(this,t));return s.get(0).outerHTML}validateRequired(){return"Draft"!==this.model.get("status")&&super.validateRequired()}}e.default=o});define("views/email/fields/date-sent",["exports","views/fields/datetime-short"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{shortInDetailMode=!1}e.default=s});define("views/email/fields/created-event",["exports","views/fields/link-parent"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{data(){var e=super.data(),t=this.model.get("icsEventData")||{};if(this.isReadMode()&&!e.idValue&&t.createdEvent){e.idValue=t.createdEvent.id;e.typeValue=t.createdEvent.entityType;e.nameValue=t.createdEvent.name}return e}getAttributeList(){var e=super.getAttributeList();e.push("icsEventData");return e}}e.default=s});define("views/email/fields/create-event",["exports","views/fields/base","helpers/record-modal"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{detailTemplate="email/fields/create-event/detail";eventEntityType="Meeting";getAttributeList(){return["icsEventData","createdEventId"]}setup(){super.setup();this.addActionHandler("createEvent",()=>this.createEvent())}createEvent(){var e=this.model.get("icsEventData")||{},e=Espo.Utils.cloneDeep(e.valueMap||{});e.parentId=this.model.get("parentId");e.parentType=this.model.get("parentType");e.parentName=this.model.get("parentName");this.addFromAddressToAttributes(e);var t=new i.default;t.showCreate(this,{entityType:this.eventEntityType,attributes:e,afterSave:async()=>{await this.model.fetch();Espo.Ui.success(this.translate("Done"))}})}addFromAddressToAttributes(e){var t=this.model.get("from"),i=this.model.get("idHash")||{},s=this.model.get("typeHash")||{},a=this.model.get("nameHash")||{};if(t){i=i[t]||null,s=s[t]||null,a=a[t]||null,t=this.getAttendeeLink(s);if(t){e[t+"Ids"]=e[t+"Ids"]||[];e[t+"Names"]=e[t+"Names"]||{};if(!~e[t+"Ids"].indexOf(i)){e[t+"Ids"].push(i);e[t+"Names"][i]=a}}}}getAttendeeLink(e){return"User"===e?"users":"Contact"===e?"contacts":"Lead"===e?"leads":null}}e.default=a});define("views/email/fields/compose-from-address",["exports","views/fields/base","ui/select"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{detailTemplate="email/fields/email-address-varchar/detail";editTemplate="email/fields/compose-from-address/edit";data(){let e=this.translate("noSmtpSetup","messages","Email");var t=$("<a>").attr("href","#EmailAccount").text(this.translate("EmailAccount","scopeNamesPlural")).get(0).outerHTML;e=e.replace("{link}",t);return{list:this.list,noSmtpMessage:e,...super.data()}}setup(){super.setup();this.nameHash={...this.model.get("nameHash")||{}};this.typeHash=this.model.get("typeHash")||{};this.idHash=this.model.get("idHash")||{};this.list=this.getUser().get("emailAddressList")||[]}afterRenderEdit(){this.$element.length&&i.default.init(this.$element)}getValueForDisplay(){var e;return this.isDetailMode()?(e=this.model.get(this.name),this.getDetailAddressHtml(e)):super.getValueForDisplay()}getDetailAddressHtml(e){if(!e)return"";var t=this.nameHash[e]||null,i=this.typeHash[e]||null,s=this.idHash[e]||null;if(s&&t)return $("<div>").append($("<a>").attr("href",`#${i}/view/`+s).attr("data-scope",i).attr("data-id",s).text(t)," ",$("<span>").addClass("text-muted chevron-right")," ",$("<span>").text(e)).get(0).outerHTML;i=$("<div>");t?i.append($("<span>").addClass("email-address-line").text(t).append(" ",$("<span>").addClass("text-muted chevron-right")," ",$("<span>").text(e))):i.append($("<span>").addClass("email-address-line").text(e));return i.get(0).outerHTML}}e.default=a});define("views/dashlets/stream",["exports","views/dashlets/abstract/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Stream";templateContent='<div class="list-container">{{{list}}}</div>';actionRefresh(){this.refreshInternal()}autoRefresh(){this.refreshInternal({skipNotify:!0})}async refreshInternal(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(this.getRecordView()){e.skipNotify||Espo.Ui.notifyWait();await this.getRecordView().showNewRecords();e.skipNotify||Espo.Ui.notify()}}afterRender(){this.getCollectionFactory().create("Note",e=>{this.collection=e;e.url="Stream";e.maxSize=this.getOption("displayRecords");this.getOption("skipOwn")&&(e.data.skipOwn=!0);e.fetch().then(()=>{this.createView("list","views/stream/record/list",{selector:"> .list-container",collection:e,isUserStream:!0,noEdit:!1},e=>{e.render()})})})}getRecordView(){return this.getView("list")}setupActionList(){this.actionList.unshift({name:"viewList",text:this.translate("View"),iconHtml:'<span class="fas fa-align-justify"></span>',url:"#Stream"});this.getUser().isPortal()||this.actionList.unshift({name:"create",text:this.translate("Create Post","labels"),iconHtml:'<span class="fas fa-plus"></span>'})}actionCreate(){this.createView("dialog","views/stream/modals/create-post",{},e=>{e.render();this.listenToOnce(e,"after:save",()=>{e.close();this.actionRefresh()})})}actionViewList(){this.getRouter().navigate("#Stream",{trigger:!0})}}e.default=s});define("views/dashlets/records",["exports","views/dashlets/abstract/record-list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Records";rowActionsView="views/record/row-actions/view-and-edit";listView="views/email/record/list-expanded";init(){super.init();this.scope=this.getOption("entityType")}getSearchData(){var e={primary:this.getOption("primaryFilter")};"all"===e.primary&&delete e.primary;let t={};(this.getOption("boolFilterList")||[]).forEach(e=>{t[e]=!0});e.bool=t;return e}setupActionList(){var e=this.getOption("entityType");e&&this.getAcl().checkScope(e,"create")&&this.actionList.unshift({name:"create",text:this.translate("Create "+e,"labels",e),iconHtml:'<span class="fas fa-plus"></span>',url:"#"+e+"/create"})}}e.default=s});define("views/dashlets/memo",["exports","views/dashlets/abstract/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Memo";templateContent=`
|
||
{{#if text}}
|
||
<div class="complex-text complex-text-memo">{{complexText text}}</div>
|
||
{{/if}}
|
||
`;data(){return{text:this.getOption("text")}}afterAdding(){this.getContainerView().actionOptions()}}e.default=s});define("views/dashlets/iframe",["exports","views/dashlets/abstract/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Iframe";sandboxDisabled=!1;templateContent=`
|
||
<iframe
|
||
style="margin: 0; border: 0;"
|
||
{{#unless viewObject.sandboxDisabled}}
|
||
sandbox="allow-scripts"
|
||
{{/unless}}
|
||
></iframe>
|
||
`;setup(){var t=this.getOption("url"),e=this.getConfig().get("iframeSandboxExcludeDomainList")||[];if(t)for(var i of e)try{var s=new URL(t);if(s.hostname===i){this.sandboxDisabled=!0;break}}catch(e){console.warn(`Invalid URL ${t}.`)}}afterRender(){var e=this.$el.find("iframe"),t=this.getOption("url");t&&e.attr("src",t);this.$el.addClass("no-padding");this.$el.css("overflow","hidden");t=this.$el.height();e.css("height",t);e.css("width","100%")}afterAdding(){this.getContainerView().actionOptions()}}e.default=s});define("views/dashlets/emails",["exports","views/dashlets/abstract/record-list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{name="Emails";scope="Emails";rowActionsView="views/email/record/row-actions/dashlet";listView="views/email/record/list-expanded";setupActionList(){this.getAcl().checkScope(this.scope,"create")&&this.actionList.unshift({name:"compose",text:this.translate("Compose Email","labels",this.scope),iconHtml:'<span class="fas fa-plus"></span>'})}actionCompose(){var e=this.getCreateAttributes()||{},t=(Espo.Ui.notifyWait(),this.getMetadata().get("clientDefs."+this.scope+".modalViews.compose")||"views/modals/compose-email");this.createView("modal",t,{scope:this.scope,attributes:e},e=>{e.render();Espo.Ui.notify(!1);this.listenToOnce(e,"after:save",()=>{this.actionRefresh()})})}getSearchData(){return{advanced:[{attribute:"folderId",type:"inFolder",value:this.getOption("folder")||"inbox"}]}}}e.default=s});define("views/dashlets/options/record-list",["exports","views/dashlets/options/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{hasCollaborators;setup(){var e=this.getMetadata().get(`dashlets.${this.name}.entityType`);this.hasCollaborators=e&&!!this.getMetadata().get(`scopes.${e}.collaborators`);super.setup();this.hasCollaborators||this.getRecordView().hideField("includeShared")}}e.default=s});define("views/dashlets/fields/records/sort-direction",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.model,"change:entityType",()=>{this.setupOptions();this.reRender()})}}e.default=s});define("views/dashlets/fields/records/sort-by",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.model,"change:entityType",()=>{this.setupOptions();this.reRender()})}setupOptions(){var e=this.model.get("entityType");let s=e;if(e){let t=this.getMetadata().get(`entityDefs.${s}.fields`)||{};e=Object.keys(t).filter(e=>!t[e].orderDisabled&&!t[e].utility).sort((e,t)=>this.translate(e,"fields",s).localeCompare(this.translate(t,"fields",s)));let i={};e.forEach(e=>{i[e]=this.translate(e,"fields",s)});this.params.options=e;this.translatedOptions=i}else this.params.options=[]}}e.default=s});define("views/dashlets/fields/records/primary-filter",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.model,"change:entityType",()=>{this.setupOptions();this.reRender()})}setupOptions(){let t=this.model.get("entityType");if(t){var e=this.getMetadata().get(["clientDefs",t,"filterList"])||[];this.params.options=[];e.forEach(e=>{if("object"==typeof e&&e.name){if(e.accessDataList&&!Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser(),null,!0))return!1;this.params.options.push(e.name)}else this.params.options.push(e)});this.params.options.unshift("all");this.getMetadata().get(`scopes.${t}.stars`)&&this.params.options.push("starred");this.translatedOptions={};this.params.options.forEach(e=>{this.translatedOptions[e]=this.translate(e,"presetFilters",t)})}else this.params.options=[]}}e.default=s});define("views/dashlets/fields/records/expanded-layout",["exports","views/fields/base","ui/multi-select","views/dashlets/fields/records/expanded-layout/modals/edit-item"],function(e,t,l,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);l=s(l);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{editTemplateContent=`
|
||
<div class="layout-container">
|
||
{{#each rowDataList}}
|
||
<div data-role="layoutRow">
|
||
<div
|
||
style="display: inline-block; width: calc(100% - var(--40px));"
|
||
>
|
||
<input
|
||
type="text"
|
||
value="{{value}}"
|
||
data-index="{{index}}"
|
||
>
|
||
</div>
|
||
{{#if hasEdit}}
|
||
<div class="btn-group pull-right">
|
||
<button
|
||
class="btn btn-text dropdown-toggle"
|
||
data-toggle="dropdown"
|
||
><span class="caret"></span></button>
|
||
<ul class="dropdown-menu pull-right">
|
||
<li class="dropdown-header">{{translate 'Edit'}}</li>
|
||
{{#each itemList}}
|
||
<li>
|
||
<a
|
||
role="button"
|
||
tabindex="0"
|
||
data-action="editItem"
|
||
data-name="{{name}}"
|
||
>{{label}}</a>
|
||
</li>
|
||
{{/each}}
|
||
</ul>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
{{/each}}
|
||
</div>
|
||
`;delimiter=":,:";targetEntityType;data(){let i=this.getRowList();var e=[...i,[]].map((e,t)=>({index:t,value:e.map(e=>e.name).join(this.delimiter),hasEdit:t<i.length,itemList:e.map(e=>({name:e.name,label:this.translate(e.name,"fields",this.targetEntityType)}))}));return{rowDataList:e}}setup(){this.addHandler("change",'div[data-role="layoutRow"] input',()=>{setTimeout(()=>{this.trigger("change");this.reRender()},1)});this.addActionHandler("editItem",(e,t)=>this.editItem(t.dataset.name));this.targetEntityType=this.model.attributes.entityType??this.getMetadata().get(["dashlets",this.dataObject.dashletName,"entityType"]);this.listenTo(this.model,"change:entityType",()=>{this.model.attributes.entityType&&(this.targetEntityType=this.model.attributes.entityType)})}getRowList(){return Espo.Utils.cloneDeep((this.model.get(this.name)||{}).rows||[])}afterRenderEdit(){let o=Espo.Utils.cloneDeep(this.getRowList()),n=(o.push([]),this.getFieldDataList());o.forEach((e,i)=>{let s=[],a=[];o.forEach((e,t)=>{a.push(...e.map(e=>e.name));t!==i&&s.push(...e.map(e=>e.name))});var t=n.filter(e=>!s.includes(e.value)).map(e=>{if(a.includes(e.value)){var t=this.getItemData(e.value)||{};t.soft&&(e.style="soft");t.small&&(e.small=!0)}return e}),r=this.element.querySelector(`input[data-index="${i.toString()}"]`),t={items:t,delimiter:this.delimiter,matchAnyWord:this.matchAnyWord,draggable:!0};l.default.init(r,t)})}getFieldDataList(){let i=this.model.get("entityType")||this.getMetadata().get(["dashlets",this.dataObject.dashletName,"entityType"]);if(!i)return[];let s=this.getMetadata().get(["entityDefs",i,"fields"])||{},a=this.getAcl().getScopeForbiddenFieldList(i);var e=Object.keys(s).sort((e,t)=>this.translate(e,"fields",i).localeCompare(this.translate(t,"fields",i))).filter(e=>{var t,i=s[e];return!(i.disabled||i.listLayoutDisabled||i.utility||(t=i.layoutAvailabilityList,t&&!t.includes("list"))||(t=i.layoutIgnoreList||[],t.includes("list"))||-1!==a.indexOf(e))});let t=[];e.forEach(e=>{t.push({value:e,text:this.translate(e,"fields",i)})});return t}async editItem(t){var e=this.getItemData(t),e=new i.default({label:this.translate(t,"fields",this.targetEntityType),data:e,onApply:e=>this.applyItem(t,e)});await this.assignView("modal",e);await e.render()}getItemData(e){let t;for(var i of this.getRowList())for(var s of i)s.name===e&&(t={soft:s.soft||!1,small:s.small||!1});return t}fetch(){let s={rows:[]},a={};for(var e of this.getRowList())for(var t of e)a[t.name]=t;this.element.querySelectorAll("input").forEach(e=>{let i=[],t=e.value.split(this.delimiter);1===t.length&&""===t[0]&&(t=[]);if(0!==t.length){t.forEach(e=>{var t={name:e};"name"===e&&(t.link=!0);if(a[e]){t.soft=a[e].soft||!1;t.small=a[e].small||!1}i.push(t)});s.rows.push(i)}});return{[this.name]:s}}applyItem(e,t){var i,s=this.getRowList();for(i of s)for(var a of i)if(a.name===e){a.soft=t.soft;a.small=t.small}this.model.set(this.name,{rows:s},{ui:!0});this.reRender()}}e.default=a});define("views/dashlets/fields/records/entity-type",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.on("change",()=>{var e={primaryFilter:null,boolFilterList:[],title:this.translate("Records","dashlets"),sortBy:null,sortDirection:"asc",expandedLayout:{rows:[]}},t=this.model.get("entityType");if(t){e.title=this.translate(t,"scopeNamesPlural");e.sortBy=this.getMetadata().get(["entityDefs",t,"collection","orderBy"]);var i=this.getMetadata().get(["entityDefs",t,"collection","order"]);e.sortDirection=i||"asc";e.expandedLayout={rows:[[{name:"name",link:!0,scope:t}]]}}this.model.set(e)})}setupOptions(){this.params.options=Object.keys(this.getMetadata().get("scopes")).filter(e=>{if(!this.getMetadata().get(`scopes.${e}.disabled`)&&this.getAcl().checkScope(e,"read")&&this.getMetadata().get(["scopes",e,"entity"])&&this.getMetadata().get(["scopes",e,"object"]))return!0}).sort((e,t)=>this.translate(e,"scopeNames").localeCompare(this.translate(t,"scopeNames")));this.params.options.unshift("")}}e.default=s});define("views/dashlets/fields/records/bool-filter-list",["exports","views/fields/multi-enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){super.setup();this.listenTo(this.model,"change:entityType",()=>{this.setupOptions();this.reRender()})}setupOptions(){let t=this.model.get("entityType");if(t){var e=this.getMetadata().get(["clientDefs",t,"boolFilterList"])||[];this.params.options=[];e.forEach(e=>{if("object"==typeof e&&e.name){if(e.accessDataList&&!Espo.Utils.checkAccessDataList(e.accessDataList,this.getAcl(),this.getUser(),null,!0))return!1;this.params.options.push(e.name)}else this.params.options.push(e)});this.getMetadata().get(["scopes",t,"stream"])&&this.getAcl().checkScope(t,"stream")&&this.params.options.push("followed");this.getMetadata().get(`scopes.${t}.collaborators`)&&this.params.options.push("shared");this.translatedOptions={};this.params.options.forEach(e=>{this.translatedOptions[e]=this.translate(e,"boolFilters",t)})}else this.params.options=[]}}e.default=s});define("views/dashlets/fields/emails/folder",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{folderDataList;setup(){super.setup();var e=this.dataObject.userId??this.getUser().id;this.wait(Espo.Ajax.getRequest("EmailFolder/action/listAll",{userId:e}).then(e=>this.folderDataList=e.list).then(()=>this.setupOptions()));this.setupOptions()}setupOptions(){if(this.folderDataList){this.params.options=this.folderDataList.map(e=>e.id).filter(e=>"inbox"!==e&&"trash"!==e);this.params.options.unshift("");this.translatedOptions={"":this.translate("inbox","presetFilters","Email")};this.folderDataList.forEach(e=>{this.translatedOptions[e.id]=e.name})}}}e.default=s});define("views/dashboard-template/detail",["exports","views/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionDeployToUsers(){this.createView("dialog","views/dashboard-template/modals/deploy-to-users",{model:this.model},e=>{e.render()})}actionDeployToTeam(){this.createView("dialog","views/dashboard-template/modals/deploy-to-team",{model:this.model},e=>{e.render()})}}e.default=s});define("views/dashboard-template/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{massActionList=["remove","export"]}e.default=s});define("views/dashboard-template/modals/deploy-to-users",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{className="dialog dialog-record";templateContent='<div class="record">{{{record}}}</div>';setup(){this.buttonList=[{name:"deploy",text:this.translate("Deploy for Users","labels","DashboardTemplate"),style:"danger",onClick:()=>this.actionDeploy()},{name:"cancel",label:"Cancel"}];this.headerText=this.model.get("name");this.formModel=new i.default;this.formModel.name="None";this.formModel.setDefs({fields:{users:{type:"linkMultiple",view:"views/fields/users",entity:"User",required:!0},append:{type:"bool"}}});this.createView("record","views/record/edit-for-modal",{scope:"None",model:this.formModel,selector:".record",detailLayout:[{rows:[[{name:"users",labelText:this.translate("users","links")},{name:"append",labelText:this.translate("append","fields","DashboardTemplate")}]]}]})}getRecordView(){return this.getView("record")}actionDeploy(){this.getRecordView().processFetch()&&Espo.Ajax.postRequest("DashboardTemplate/action/deployToUsers",{id:this.model.id,userIdList:this.formModel.get("usersIds"),append:this.formModel.get("append")}).then(()=>{Espo.Ui.success(this.translate("Done"));this.close()})}}e.default=a});define("views/dashboard-template/modals/deploy-to-team",["exports","views/modal","model"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{className="dialog dialog-record";templateContent='<div class="record">{{{record}}}</div>';setup(){this.buttonList=[{name:"deploy",text:this.translate("Deploy for Team","labels","DashboardTemplate"),style:"danger",onClick:()=>this.actionDeploy()},{name:"cancel",label:"Cancel"}];this.headerText=this.model.get("name");this.formModel=new i.default;this.formModel.name="None";this.formModel.setDefs({fields:{team:{type:"link",entity:"Team",required:!0},append:{type:"bool"}}});this.createView("record","views/record/edit-for-modal",{scope:"None",model:this.formModel,selector:".record",detailLayout:[{rows:[[{name:"team",labelText:this.translate("team","links")},{name:"append",labelText:this.translate("append","fields","DashboardTemplate")}]]}]})}getRecordView(){return this.getView("record")}actionDeploy(){this.getRecordView().processFetch()&&Espo.Ajax.postRequest("DashboardTemplate/action/deployToTeam",{id:this.model.id,teamId:this.formModel.get("teamId"),append:this.formModel.get("append")}).then(()=>{Espo.Ui.success(this.translate("Done"));this.close()})}}e.default=a});define("views/currency-record-rate/fields/rate",["exports","views/fields/decimal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{listTemplateContent=`
|
||
{{#if isNotEmpty~}}
|
||
<span class="text-soft">{{targetCode}} = </span>
|
||
<span class="numeric-text">{{value}}</span>
|
||
<span class="text-soft">{{baseCode}}</span>
|
||
{{~/if~}}
|
||
`;detailTemplateContent=`
|
||
{{~#if isNotEmpty~}}
|
||
<span class="text-soft">{{targetCode}} = </span>
|
||
<span class="numeric-text">{{value}}</span>
|
||
<span class="text-soft">{{baseCode}}</span>
|
||
{{~else~}}
|
||
{{~#if valueIsSet~}}
|
||
<span class="none-value">{{translate 'None'}}</span>
|
||
{{~else~}}<span class="loading-value"></span>
|
||
{{~/if}}
|
||
{{~/if~}}
|
||
`;editTemplateContent=`
|
||
<div class="input-group">
|
||
<span class="input-group-addon radius-left" style="width: 24%">1 {{targetCode}} = </span>
|
||
<span class="input-group-item">
|
||
<input
|
||
type="text"
|
||
class="main-element form-control numeric-text"
|
||
data-name="{{name}}"
|
||
value="{{value}}"
|
||
autocomplete="espo-{{name}}"
|
||
pattern="[\\-]?[0-9]*"
|
||
style="text-align: end;"
|
||
>
|
||
</span>
|
||
<span class="input-group-addon radius-right" style="width: 21%">{{baseCode}}</span>
|
||
</div>
|
||
`;getAttributeList(){return[...super.getAttributeList(),"baseCode","recordName"]}data(){let e=this.model.attributes.baseCode,t=this.model.attributes.recordName;if("CurrencyRecord"===this.model.entityType){e=this.getConfig().get("baseCurrency");t=this.model.attributes.code}return{...super.data(),baseCode:e,targetCode:t}}}e.default=s});define("views/currency-record/list",["exports","views/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{keepCurrentRootUrl=!0}e.default=s});define("views/currency-record/record/panels/rates",["exports","views/record/panels/relationship"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setup(){this.model.attributes.code===this.getConfig().get("baseCurrency")&&(this.defs.createDisabled=!0);super.setup()}}e.default=s});define("views/currency/fields/currency-rates",["exports","views/fields/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{editTemplateContent=`
|
||
{{#each rateValues}}
|
||
<div class="input-group">
|
||
<span class="input-group-addon radius-left" style="width: 25%">1 {{@key}} = </span>
|
||
<span class="input-group-item">
|
||
<input
|
||
class="form-control"
|
||
type="text"
|
||
data-currency="{{@key}}"
|
||
value="{{./this}}"
|
||
style="text-align: right;"
|
||
>
|
||
</span>
|
||
<span class="input-group-addon radius-right" style="width: 22%">{{../baseCurrency}}</span>
|
||
</div>
|
||
{{/each}}
|
||
`;data(){let t=this.model.get("baseCurrency"),i=this.model.get("currencyRates")||{},s={};(this.model.get("currencyList")||[]).forEach(e=>{if(e!==t){s[e]=i[e];if(!s[e]){i[t]&&(s[e]=Math.round(1/i[t]*1e3)/1e3);s[e]||(s[e]=1)}}});return{rateValues:s,baseCurrency:t}}fetch(){var e={};let i={},s=this.model.get("baseCurrency");var t,a=this.model.get("currencyList")||[];a.forEach(e=>{if(e!==s){var t=this.$el.find(`input[data-currency="${e}"]`).val()||"1";i[e]=parseFloat(t)}});delete i[s];for(t in i)~a.indexOf(t)||delete i[t];e[this.name]=i;return e}}e.default=s});define("views/attachment/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{rowActionsView="views/record/row-actions/view-and-remove";massActionList=["remove"]}e.default=s});define("views/attachment/record/detail",["exports","views/record/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{readOnly=!0}e.default=s});define("views/attachment/modals/detail",["exports","views/modals/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{editDisabled=!0}e.default=s});define("views/attachment/fields/parent",["exports","views/fields/link-parent"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{ignoreScopeList=["Preferences","ExternalAccount","Notification","Note","ArrayValue","Attachment"];displayEntityType=!0;setup(){super.setup();this.foreignScopeList=this.getMetadata().getScopeEntityList().filter(e=>!(!this.getUser().isAdmin()&&!this.getAcl().checkScopeHasAcl(e)||this.ignoreScopeList.includes(e)||!this.getAcl().checkScope(e)));this.getLanguage().sortEntityList(this.foreignScopeList);this.foreignScope=this.model.get(this.typeName)||this.foreignScopeList[0]}}e.default=s});define("views/attachment/fields/name",["exports","views/fields/varchar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{detailTemplate="attachment/fields/name/detail";data(){var e=super.data();let t=this.getBasePath()+"?entryPoint=download&id="+this.model.id;this.getUser().get("portalId")&&(t+="&portalId="+this.getUser().get("portalId"));e.url=t;return e}}e.default=s});define("views/attachment/fields/name-for-stream",["exports","model","views/fields/file","views/fields/base"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=a(t);i=a(i);s=a(s);function a(e){return e&&e.__esModule?e:{default:e}}class r extends s.default{listTemplateContent=`
|
||
<span>{{{subField}}}</span>
|
||
`;prepare(){var e=new t.default({fileId:this.model.id,fileName:this.model.attributes.name,fileType:this.model.attributes.type}),e=new i.default({name:"file",model:e,params:{showPreview:!0,listPreviewSize:"small"},mode:"list"});return this.assignView("subField",e)}}e.default=r});define("views/address-map/view",["exports","views/main"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{templateContent=`
|
||
<div class="header page-header">{{{header}}}</div>
|
||
<div class="map-container">{{{map}}}</div>
|
||
`;setup(){this.scope=this.model.entityType;this.createView("header","views/header",{model:this.model,fullSelector:"#main > .header",scope:this.model.entityType,fontSizeFlexible:!0})}afterRender(){var e=this.options.field,t=this.model.getFieldParam(e+"Map","view")||this.getFieldManager().getViewName("map");this.createView("map",t,{model:this.model,name:e+"Map",selector:".map-container",height:this.getHelper().calculateContentContainerHeight(this.$el.find(".map-container"))},e=>{e.render()})}getHeader(){let e=this.model.get("name");e=e||this.model.id;var t=`#${this.model.entityType}/view/`+this.model.id,i=this.getLanguage().translate(this.model.entityType,"scopeNamesPlural"),s=this.translate(this.options.field,"fields",this.model.entityType),a=this.options.rootUrl||this.options.params.rootUrl||"#"+this.model.entityType,t=$("<a>").attr("href",t).append($("<span>").addClass("font-size-flexible title").text(e)),a=(this.model.get("deleted")&&t.css("text-decoration","line-through"),$("<span>").append($("<a>").attr("href",a).addClass("action").attr("data-action","navigateToRoot").text(i))),i=this.getHeaderIconHtml(),i=(i&&a.prepend(i),$("<span>").text(s));return this.buildHeaderHtml([a,t,i])}}e.default=s});define("views/action-history-record/record/list",["exports","views/record/list"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{rowActionsView="views/record/row-actions/view-and-remove";massActionList=["remove","export"]}e.default=s});define("views/action-history-record/modals/detail",["exports","views/modals/detail"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{fullFormDisabled=!0;editDisabled=!0;sideDisabled=!0}e.default=s});define("views/action-history-record/fields/target",["exports","views/fields/link-parent"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{displayScopeColorInListMode=!0;ignoreScopeList=["Preferences","ExternalAccount","Notification","Note","ArrayValue"];setup(){super.setup();this.foreignScopeList=this.getMetadata().getScopeEntityList().filter(e=>!(!this.getUser().isAdmin()&&!this.getAcl().checkScopeHasAcl(e)||this.ignoreScopeList.includes(e)||!this.getAcl().checkScope(e)));this.getLanguage().sortEntityList(this.foreignScopeList);this.foreignScope=this.model.get(this.typeName)||this.foreignScopeList[0]}}e.default=s});define("views/action-history-record/fields/target-type",["exports","views/fields/enum"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{setupOptions(){super.setupOptions();this.params.options=this.getMetadata().getScopeEntityList()}}e.default=s});define("helpers/misc/list-select-attributes",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e,t,i){this.scope=e;this.storage=t;this.key="textSearches";this.maxCount=i||100;this.list=null}match(e,t){e=e.toLowerCase().trim();var i,s=this.get(),a=[];for(i of s){i.toLowerCase().startsWith(e)&&a.push(i);if(void 0!==t&&a.length===t)break}return a}get(){null===this.list&&(this.list=this.getFromStorage());return this.list}getFromStorage(){return this.storage.get(this.key,this.scope)||[]}store(e){e=e.trim();let t=this.getFromStorage();var i=t.indexOf(e);-1!==i&&t.splice(i,1);t.unshift(e);t.length>this.maxCount&&(t=t.slice(0,this.maxCount));this.list=t;this.storage.set(this.key,this.scope,t)}remove(e){e=e.trim();var t=this.getFromStorage(),i=t.indexOf(e);if(-1!==i){t.splice(i,1);this.list=t;this.storage.set(this.key,this.scope,t)}}}});define("helpers/misc/foreign-field-params",["exports","di","metadata"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=(s=i,s&&s.__esModule?s:{default:s});var s,a;let r,o;function n(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class l{constructor(){o(this)}metadata=r(this);get(e,t){var i,s=this.metadata.get(`entityDefs.${e}.fields.`+t);return s&&(i=s.field,s=s.link,s=this.metadata.get(`entityDefs.${e}.links.${s}.entity`),s)?this.metadata.get(`entityDefs.${s}.links.`+i):null}static#_=a=()=>[r,o]=n(this,[],[[(0,t.inject)(i.default),0,"metadata"]]).e}e.default=l;a()});define("helpers/misc/authentication-provider",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.view=e;this.metadata=e.getMetadata();this.model=e.model;let i=e.getMetadata().get(["authenticationMethods"])||{};this.methodList=Object.keys(i).filter(e=>{var t=i[e].provider||{};return t.isAvailable});this.authFields={};this.dynamicLogicDefs={fields:{},panels:{}}}setupPanelsVisibility(e){this.handlePanelsVisibility(e);this.view.listenTo(this.model,"change:method",()=>this.handlePanelsVisibility(e))}getFromMetadata(e,t){return this.metadata.get(["authenticationMethods",e,"provider",t])||this.metadata.get(["authenticationMethods",e,"settings",t])}setupMethods(){this.methodList.forEach(e=>this.setupMethod(e));return this.dynamicLogicDefs}setupMethod(e){let t=this.getFromMetadata(e,"fieldList")||[];t=t.filter(e=>this.model.hasField(e));this.authFields[e]=t;var i,s=(this.getFromMetadata(e,"dynamicLogic")||{}).fields||{};for(i in s)if(t.includes(i)){var a=this.modifyDynamicLogic(s[i]);this.dynamicLogicDefs.fields[i]=Espo.Utils.cloneDeep(a)}}modifyDynamicLogic(t){t=Espo.Utils.clone(t);if(Array.isArray(t))return t.map(e=>this.modifyDynamicLogic(e));if("object"!=typeof t)return t;var i,s={};for(i in t){let e=t[i];"attribute"===i&&"authenticationMethod"===e&&(e="method");s[i]=this.modifyDynamicLogic(e)}return s}modifyDetailLayout(i){this.methodList.forEach(e=>{var t=this.getFromMetadata(e,"layout");if(t){t=Espo.Utils.cloneDeep(t);t.name=e;this.prepareLayout(t,e);i.push(t)}})}prepareLayout(e,i){e.rows.forEach(e=>{e.filter(e=>!e.noLabel&&!e.labelText&&e.name).forEach(e=>{if(null!==e){var t=this.view.translate(e.name,"fields","Settings");e.options=e.options||{};t&&0===t.toLowerCase().indexOf(i.toLowerCase()+" ")&&(e.labelText=t.substring(i.length+1));e.options.tooltipText=this.view.translate(e.name,"tooltips","Settings")}})});e.rows=e.rows.map(e=>{e=e.map(e=>!(e&&e.name&&!this.model.hasField(e.name))&&e);return e})}handlePanelsVisibility(i){let s=this.model.get("method");this.methodList.forEach(e=>{var t=this.authFields[e]||[];if(e!==s){this.view.hidePanel(e);t.forEach(e=>{this.view.hideField(e)})}else{this.view.showPanel(e);t.forEach(e=>this.view.showField(e));i()}})}}});define("helpers/field/link-icon",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(t,e){this.view=t;this.options=e;t.listenTo(t,"after:render",()=>{t.isEditMode()&&this.control()});t.addHandler("keydown",`input[data-name="${t.nameName}"]`,(e,t)=>{"Enter"!==e.code&&t.classList.add("being-typed")});t.addHandler("change",`input[data-name="${t.nameName}"]`,(e,t)=>{setTimeout(()=>t.classList.remove("being-typed"),200)});t.addHandler("blur",`input[data-name="${t.nameName}"]`,(e,t)=>{t.classList.remove("being-typed")});t.on("change",()=>{if(t.isEditMode()){var e=t.element.querySelector("span.icon-in-input");e&&e.parentNode.removeChild(e);setTimeout(()=>this.control(),0)}})}control(){var e=this.view,t=e.element.querySelector(`input[data-name="${e.nameName}"]`),t=(t.classList.remove("being-typed"),document.createElement("span"));t.className="icon-in-input "+this.options.iconClass;t.style.color=this.options.getColor();var i=this.options.getIconClass();if(i){t.className+=" "+i;i=e.element.querySelector(".input-group > input");i&&i.after(t)}}}});define("handlers/working-time-range",["exports","bullbone"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;class i{constructor(e){this.view=e}process(){this.listenTo(this.view.model,"change:dateStart",(e,t,i)=>{i.ui&&!e.get("dateEnd")&&setTimeout(()=>e.set("dateEnd",t),50)})}}Object.assign(i.prototype,t.Events);e.default=i});define("handlers/navbar-menu",["exports","action-handler"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{logout(){this.view.getRouter().logout()}lastViewed(){Espo.Ui.notifyWait();this.view.createView("dialog","views/modals/last-viewed",{},e=>{e.render();Espo.Ui.notify(!1)})}}e.default=s});define("handlers/import",["exports","action-handler"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{errorExport(){Espo.Ajax.postRequest(`Import/${this.view.model.id}/exportErrors`).then(e=>{if(e.attachmentId)window.location=this.view.getBasePath()+"?entryPoint=download&id="+e.attachmentId;else{var t=this.view.translate("noErrors","messages","Import");Espo.Ui.warning(t)}})}}e.default=s});define("handlers/email-filter",["exports","dynamic-handler"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{init(){!this.model.isNew()||this.recordView.getUser().isAdmin()||this.recordView.hideField("isGlobal");this.model.isNew()||this.recordView.getUser().isAdmin()||this.model.get("isGlobal")||this.recordView.hideField("isGlobal");if(this.model.isNew()&&!this.model.get("parentId")){this.model.set("parentType","User");this.model.set("parentId",this.recordView.getUser().id);this.model.set("parentName",this.recordView.getUser().get("name"));this.recordView.getUser().isAdmin()||this.recordView.setFieldReadOnly("parent")}else if(this.model.get("parentType")&&!this.recordView.options.duplicateSourceId){this.recordView.setFieldReadOnly("parent");this.recordView.setFieldReadOnly("isGlobal")}this.recordView.listenTo(this.model,"change:isGlobal",(e,t,i)=>{i.ui&&t&&this.model.set({action:"Skip",parentName:null,parentType:null,parentId:null,emailFolderId:null,groupEmailFolderId:null,markAsRead:!1})});this.recordView.listenTo(this.model,"change:parentType",(e,t,i)=>{i.ui&&setTimeout(()=>{"User"!==t&&this.model.set("markAsRead",!1);if("EmailAccount"===t){this.model.set("action","Skip");this.model.set("emailFolderId",null);this.model.set("groupEmailFolderId",null);this.model.set("markAsRead",!1)}else if("InboundEmail"!==t){"Move to Group Folder"===this.model.get("action")&&this.model.set("action","Skip");this.model.set("groupEmailFolderId",null)}else if("User"!==t){"Move to Folder"===this.model.get("action")&&this.model.set("action","Skip");this.model.set("groupFolderId",null)}},40)})}}e.default=s});define("handlers/user/select-contact",["exports","handlers/select-related"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{async getFilters(e){var t=e.attributes.accountsIds;return t&&t.length?{advanced:{accounts:{field:"accounts",type:"linkedWith",value:t,data:{nameHash:e.attributes.accountsNames||{}}}}}:{}}}e.default=s});define("handlers/user/change-team-position-row-action",["exports","handlers/row-action","views/user/modals/select-position"],function(e,t,r){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);r=i(r);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{async process(i,e){if(i.collection&&i.collection.parentModel){let t=i.collection.parentModel;var s=t.attributes.positionList||[],a=i.attributes.teamRole,a=new r.default({position:a,positionList:s,name:i.attributes.name,onApply:e=>{this.savePosition(t.id,i,e)}});await this.view.assignView("dialog",a);await a.render()}else console.error("Team model cannot be obtained.")}isAvailable(e,t){return!!(e.collection&&e.collection.parentModel&&this.view.getAcl().checkModel(e,"edit")&&this.view.getUser().isAdmin())}async savePosition(e,t,i){Espo.Ui.notifyWait();await Espo.Ajax.putRequest(`Team/${e}/userPosition`,{id:t.id,position:i});t.setMultiple({teamRole:i});Espo.Ui.success(this.view.translate("Saved"))}}e.default=s});define("handlers/select-related/same-account",["exports","handlers/select-related"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getFilters(e){var t={};let i=null,s=null;if(e.get("accountId")){i=e.get("accountId");s=e.get("accountName")}if(!i&&"Account"===e.get("parentType")&&e.get("parentId")){i=e.get("parentId");s=e.get("parentName")}i&&(t.account={attribute:"accountId",type:"equals",value:i,data:{type:"is",nameValue:s}});return Promise.resolve({advanced:t})}}e.default=s});define("handlers/select-related/same-account-many",["exports","handlers/select-related"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getFilters(e){var t={};let i=null,s=null;if(e.get("accountId")){i=e.get("accountId");s=e.get("accountName")}if(!i&&"Account"===e.get("parentType")&&e.get("parentId")){i=e.get("parentId");s=e.get("parentName")}if(i){var a={};a[i]=s;t.accounts={field:"accounts",type:"linkedWith",value:[i],data:{nameHash:a}}}return Promise.resolve({advanced:t})}}e.default=s});define("handlers/record/view-user-access",["exports","views/modals/related-list"],function(e,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;i=(t=i,t&&t.__esModule?t:{default:t});var t;e.default=class{toShow;constructor(e){this.view=e;this.metadata=e.getMetadata();this.entityType=this.view.entityType;this.model=this.view.model;var t=this.view.getAcl().getPermissionLevel("user");this.toShow=("all"===t||"team"===t)&&(this.metadata.get(`scopes.${this.entityType}.object`)||this.metadata.get(`scopes.${this.entityType}.acl`));this.view.getAcl().checkScope("User")}isAvailable(){return this.toShow}async show(){var e=this.getActionList();let t=[{name:"name",link:!0,view:"views/user/fields/name"}];e.forEach(e=>{t.push({name:"recordAccessLevel"+e,customLabel:this.view.translate(e,"recordActions"),view:"views/user/fields/record-access-level",notSortable:!0,width:16})});e=new i.default({model:this.model,link:"usersAccess",entityType:"User",title:this.view.translate("View User Access"),url:`${this.entityType}/${this.model.id}/usersAccess`,createDisabled:!0,selectDisabled:!0,massActionsDisabled:!0,maxSize:this.view.getConfig().get("recordsPerPageSmall"),rowActionsView:null,listLayout:t,filter:"active"});await this.view.assignView("dialog",e);await e.render()}getActionList(){let e=this.metadata.get(`scopes.${this.entityType}.aclActionList`);if(!e){e=["read","edit","delete"];this.metadata.get(`scopes.${this.entityType}.stream`)&&e.push("stream")}return e.filter(e=>"create"!==e)}}});define("handlers/record/view-audit-log",["exports","views/stream/modals/view-audit-log"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;e.default=class{constructor(e){this.view=e;this.metadata=e.getMetadata();this.entityType=this.view.entityType;this.model=this.view.model;this.hasAudited=this.metadata.get(`scopes.${this.entityType}.statusField`)||void 0!==this.model.getFieldList().find(e=>this.model.getFieldParam(e,"audited"));"User"!==this.entityType||this.view.getUser().isAdmin()||(this.hasAudited=!1);this.view.getUser().isPortal()&&(this.hasAudited=!1);"yes"!==this.view.getAcl().getPermissionLevel("audit")&&(this.hasAudited=!1)}isAvailable(){return this.hasAudited}show(){let e=new t.default({model:this.model});this.view.assignView("dialog",e).then(()=>{e.render()})}}});define("handlers/note/record-detail-setup",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.view=e}process(){this.controlFields();this.view.listenTo(this.view.model,"sync",()=>this.controlFields())}controlFields(){var e=this.view.model.attributes.attachmentsIds;e&&e.length?this.view.showField("attachments"):this.view.hideField("attachments")}}});define("handlers/map/google-maps-renderer",["exports","handlers/map/renderer"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{render(t){if("google"in window&&window.google.maps)this.initMapGoogle(t);else if("function"==typeof window.mapapiloaded){let e=window.mapapiloaded;window.mapapiloaded=()=>{this.initMapGoogle(t);e()}}else{window.mapapiloaded=()=>this.initMapGoogle(t);let e="https://maps.googleapis.com/maps/api/js?callback=mapapiloaded&loading=async&v=weekly&libraries=marker";var i=this.view.getConfig().get("googleMapsApiKey"),i=(i&&(e+="&key="+i),document.createElement("script"));i.setAttribute("defer","defer");i.src=e;document.head.appendChild(i)}}initMapGoogle(e){var t=new google.maps.Geocoder;let i;var s=this.view.getConfig().get("googleMapsMapId")||"DEMO_MAP_ID";try{i=new google.maps.Map(this.view.$el.find(".map").get(0),{zoom:15,center:{lat:0,lng:0},scrollwheel:!1,mapId:s})}catch(e){console.error(e.message);return}let a="";e.street&&(a+=e.street);if(e.city){""!==a&&(a+=", ");a+=e.city}if(e.state){""!==a&&(a+=", ");a+=e.state}if(e.postalCode){e.state||e.city?a+=" ":a&&(a+=", ");a+=e.postalCode}if(e.country){""!==a&&(a+=", ");a+=e.country}t.geocode({address:a},(e,t)=>{if(t===google.maps.GeocoderStatus.OK){i.setCenter(e[0].geometry.location);new google.maps.marker.AdvancedMarkerElement({map:i,position:e[0].geometry.location})}})}}e.default=s});define("handlers/login/oidc",["exports","handlers/login","js-base64"],function(e,t,a){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);a=i(a);function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{process(){let i=window.open("about:blank","ConnectWithOAuth","location=0,status=0,width=800,height=800");Espo.Ui.notifyWait();return new Promise((s,t)=>{Espo.Ajax.getRequest("Oidc/authorizationData").then(e=>{Espo.Ui.notify(!1);this.processWithData(e,i).then(e=>{var t=e.code,i=e.nonce,t=a.default.encode("**oidc:"+t),t={"Espo-Authorization":t,Authorization:"Basic "+t,"X-Oidc-Authorization-Nonce":i};s(t)}).catch(()=>{i.close();t()})}).catch(()=>{Espo.Ui.notify(!1);i.close();t()})})}processWithData(e,t){var i=(Math.random()+1).toString(36).substring(4),s=(Math.random()+1).toString(36).substring(4),a={client_id:e.clientId,redirect_uri:e.redirectUri,response_type:"code",scope:e.scopes.join(" "),state:i,nonce:s,prompt:e.prompt};!e.maxAge&&0!==e.maxAge||(a.max_age=e.maxAge);e.claims&&(a.claims=e.claims);a=Object.entries(a).map(e=>{var[t,i]=e;return t+"="+encodeURIComponent(i)}),a=e.endpoint+"?"+a.join("&");return this.processWindow(a,i,s,t)}processWindow(e,r,o,n){n.location.href=e;return new Promise((i,e)=>{let s=()=>{window.clearInterval(a);n.closed||n.close();e()},a=window.setInterval(()=>{if(n.closed)s();else{let e;try{e=n.location.href}catch(e){return}if(e){var t=this.parseWindowUrl(e);if(t){if((t.error||t.code)&&t.state!==r){s();Espo.Ui.error("State mismatch",!0)}else if(t.error){s();Espo.Ui.error(t.errorDescription||this.loginView.translate("Error"),!0)}else if(t.code){window.clearInterval(a);n.close();i({code:t.code,nonce:o})}}else{s();Espo.Ui.error("Could not parse URL",!0)}}}},300)})}parseWindowUrl(e){try{var t=new URL(e).searchParams;return{code:t.get("code"),state:t.get("state"),error:t.get("error"),errorDescription:t.get("errorDescription")}}catch(e){return null}}}e.default=s});define("handlers/email/select-user",["exports","handlers/select-related"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{async getFilters(e){var t=this.viewHelper.acl,t=t.getPermissionLevel("assignment"),i=[];"team"===t?i.push("onlyMyTeam"):"own"===t&&i.push("onlyMe");return{bool:i}}}e.default=s});define("handlers/email/list-actions",["exports","action-handler","views/email/modals/import-eml"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{async importEml(){var e=new i.default;await this.view.assignView("dialog",e);await e.render()}checkImportEml(){var e=this.view.getAcl();return e.checkScope("Email","create")&&e.checkScope("Import")}}e.default=a});define("handlers/currency-record-rate/default-preparator",["exports","handlers/model/defaults-preparator","di","models/settings"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);s=n(s);var a;let r,o;function n(e){return e&&e.__esModule?e:{default:e}}function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d extends t.default{constructor(){super(...arguments);o(this)}config=r(this);async prepare(e){return{baseCode:this.config.get("baseCurrency")}}static#_=a=()=>[r,o]=l(this,[],[[(0,i.inject)(s.default),0,"config"]],0,void 0,t.default).e}e.default=d;a()});define("handlers/currency-record/record-detail",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;e.default=class{constructor(e){this.view=e}process(){let e=this.view.model;this.view.listenTo(e,"after:relate:rates after:unrelate:rates after:related-change:rates",()=>{e.fetch()})}}});define("handlers/currency-record/menu-action-settings",["exports","action-handler"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{isVisible(){var e=(null==(e=this.view.options)?void 0:e.params)??{};return e.fromSettings??!1}}e.default=s});define("handlers/create-related/set-parent",["exports","handlers/create-related","di","model-factory"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);s=n(s);var a;let r,o;function n(e){return e&&e.__esModule?e:{default:e}}function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d extends t.default{constructor(){super(...arguments);o(this)}modelFactory=r(this);async getAttributes(e,t){var i=e.getLinkParam(t,"entity");return i&&(i=await this.modelFactory.create(i),i=i.getFieldParam("parent","entityList")??[],i.includes(e.entityType))?{parentId:e.id,parentName:e.attributes.name,parentType:e.entityType}:{}}static#_=a=()=>[r,o]=l(this,[],[[(0,i.inject)(s.default),0,"modelFactory"]],0,void 0,t.default).e}e.default=d;a()});define("handlers/api-user/open-api-spec-action",["exports","action-handler","di","router"],function(e,t,i,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=n(t);s=n(s);var a;let r,o;function n(e){return e&&e.__esModule?e:{default:e}}function l(d,t,h,i,c,e){var A,P,u,m,p,s,a=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,r=Object.create,F=[r(null),r(null)],o=t.length;function _(s,a,r){return function(e,t){a&&(t=e,e=d);for(var i=0;i<s.length;i++)t=s[i].apply(e,r?[t]:[]);return r?t:e}}function O(e,t,i,s){if("function"==typeof e||!s&&void 0===e)return e;throw new TypeError(t+" must "+(i||"be")+" a function"+(s?"":" or undefined"))}function f(r,t,e,i,s,a,o,n,l,d,h){function c(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var u=[].concat(t[0]),m=t[3],p=!o,f=1===s,g=3===s,v=4===s,y=2===s;function b(i,s,a){return function(e,t){return s&&(t=e,e=r),a&&a(e),w[i].call(e,t)}}if(!p){var w={},M=[],T=g?"get":v||f?"set":"value";if(l?(d||f?w={get:I(function(){return m(this)},i,"get"),set:function(e){t[4](this,e)}}:w[T]=m,d||I(w[T],i,y?"":T)):d||(w=Object.getOwnPropertyDescriptor(r,i)),!d&&!l){if((P=F[+n][i])&&7!=(P^s))throw Error("Decorating two elements with the same name ("+w[T].name+") is not supported yet");F[+n][i]=s<3?1:s}}for(var L=r,C=u.length-1;0<=C;C-=e?2:1){var E=O(u[C],"A decorator","be",!0),x=e?u[C-1]:void 0,S={},D={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:A,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");O(t,"An initializer","be",!0),a.push(t)}.bind(null,S)};if(p)P=E.call(x,L,D),S.v=1,O(P,"class decorators","return")&&(L=P);else if(D.static=n,D.private=l,P=D.access={has:l?h.bind():function(e){return i in e}},v||(P.get=l?y?function(e){return c(e),w.value}:b("get",0,c):function(e){return e[i]}),y||g||(P.set=l?b("set",0,c):function(e,t){e[i]=t}),L=E.call(x,f?{get:w.get,set:w.set}:w[T],D),S.v=1,f){if("object"==typeof L&&L)(P=O(L.get,"accessor.get"))&&(w.get=P),(P=O(L.set,"accessor.set"))&&(w.set=P),(P=O(L.init,"accessor.init"))&&M.unshift(P);else if(void 0!==L)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else O(L,(d?"field":"method")+" decorators","return")&&(d?M.unshift(L):w[T]=L)}return s<2&&o.push(_(M,n,1),_(a,n,0)),d||p||(l?f?o.splice(-1,0,b("get",n),b("set",n)):o.push(y?w[T]:O.call.bind(w[T])):k(r,i,w)),L}function n(e){return k(e,a,{configurable:!0,enumerable:!0,value:A})}return void 0!==e&&(A=e[a]),A=r(null==A?null:A),p=[],r=function(e){e&&p.push(_(e))},s=function(e,t){for(var i,s=0;s<h.length;s++){var a=h[s],r=a[1],o=7&r;if((8&r)==e&&!o==t){var n=a[2],l=!!a[3],r=16&r;f(e?d:d.prototype,a,r,l?"#"+n:(i=n,a=void 0,a=((e,t)=>{if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")})(i,"string"),"symbol"==typeof a?a:a+""),o,o<2?[]:e?m=m||[]:u=u||[],p,!!e,l,t,e&&l?function(e){return(e=>{if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?typeof e:"null"));return e})(e)===d}:c)}}},s(8,0),s(0,0),s(8,1),s(0,1),r(u),r(m),P=p,o||n(d),{e:P,get c(){var e=[];return o&&[n(d=f(d,[t],i,d.name,5,e)),_(e,1)]}}}function I(e,t,i){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:i?i+" "+t:t})}catch(e){}return e}class d extends t.default{constructor(){super(...arguments);o(this)}router=r(this);process(){window.open("api/v1/OpenApi","_blank")}static#_=a=()=>[r,o]=l(this,[],[[(0,i.inject)(s.default),0,"router"]],0,void 0,t.default).e}e.default=d;a()});define("handlers/admin/address-country/populate-defaults",["exports","action-handler"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{async populate(){var e=this.view.translate("confirmPopulateDefaults","messages","AddressCountry");await this.view.confirm(e);Espo.Ui.notifyWait();await Espo.Ajax.postRequest("AddressCountry/action/populateDefaults");await this.view.collection.fetch();Espo.Ui.success(this.view.translate("Done"))}}e.default=s});define("controllers/user",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{getCollection(e){return super.getCollection().then(e=>{e.data.userType="internal";return e})}createViewView(e,t,i){if(t.get("deleted")){i="views/deleted-detail";super.createViewView(e,t,i)}else t.isPortal()?this.getRouter().dispatch("PortalUser","view",{id:t.id,model:t}):t.isApi()?this.getRouter().dispatch("ApiUser","view",{id:t.id,model:t}):super.createViewView(e,t,i)}}e.default=s});define("controllers/team",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkAccess(e){return"read"===e||!!this.getUser().isAdmin()}}e.default=s});define("controllers/stream",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="index";actionIndex(){var e=this.getRouter().backProcessed;e||this.clearStoredMainView("index");this.main("views/stream",{displayTitle:!0},void 0,{key:"index",useStored:e})}actionPosts(){var e=this.getRouter().backProcessed;e||this.clearStoredMainView("index");this.main("views/stream",{displayTitle:!0,filter:"posts"},void 0,{key:"index",useStored:e})}actionUpdates(){var e=this.getRouter().backProcessed;e||this.clearStoredMainView("index");this.main("views/stream",{displayTitle:!0,filter:"updates"},void 0,{key:"index",useStored:e})}}e.default=s});define("controllers/record-tree",["exports","controllers/record","collections/tree"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{defaultAction="listTree";beforeView(e){super.beforeView(e);e=e||{};if(e.model){e.model.unset("childCollection");e.model.unset("childList")}}beforeListTree(){this.handleCheckAccess("read")}async actionListTree(e){var t=e.currentId,i=await this.getCollection();if(!(i instanceof s.default))throw new Error("Wrong collection.");i.url=i.entityType+"/action/listTree";i.currentId=t??null;t=e.isReturn||this.getRouter().backProcessed;this.main(this.getViewName("listTree"),{scope:this.name,collection:i},void 0,{key:"listTree",useStored:t})}async create(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(e.parentId){e.attributes??={};e.attributes.parentId=e.parentId;e.attributes.parentName=e.parentName;delete e.parentId;delete e.parentName}return super.create(e)}}e.default=a});define("controllers/preferences",["exports","controllers/record","models/preferences"],function(e,t,s){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=i(t);s=i(s);function i(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{defaultAction="own";getModel(e,t){let i=new s.default({},{defs:this.getMetadata().get("entityDefs.Preferences")||{}});i.setSettings(this.getConfig());e&&e.call(this,i);return new Promise(e=>{e(i)})}checkAccess(e){return!0}actionOwn(){this.actionEdit({id:this.getUser().id})}actionList(e){}}e.default=a});define("controllers/portal-user",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{entityType="User";getCollection(e){return super.getCollection().then(e=>{e.data.userType="portal";return e})}createViewView(e,t,i){t.isPortal()?super.createViewView(e,t,i):t.isApi()?this.getRouter().dispatch("ApiUser","view",{id:t.id,model:t}):this.getRouter().dispatch("User","view",{id:t.id,model:t})}actionCreate(e){e=e||{};e.attributes=e.attributes||{};e.attributes.type="portal";super.actionCreate(e)}checkAccess(e){return"yes"===this.getAcl().getPermissionLevel("portalPermission")}}e.default=s});define("controllers/password-change-request",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionPasswordChange(e){e=e||{};if(!e.id)throw new Error;this.entire("views/user/password-change-request",{requestId:e.id,strengthParams:e.strengthParams,notFound:e.notFound},e=>{e.render()})}}e.default=s});define("controllers/notification",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="index";actionIndex(){this.main("views/notification/list",{},e=>{e.render()})}}e.default=s});define("controllers/note",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionView(e){let t=e.id;if(!t)throw new Espo.Exceptions.NotFound;let i=this.getMetadata().get(["clientDefs",this.name,"views","detail"])||"views/note/detail",s;this.showLoadingNotification();this.modelFactory.create("Note").then(e=>{s=e;s.id=t;return s.fetch({main:!0})}).then(()=>{this.hideLoadingNotification();this.main(i,{model:s})})}}e.default=s});define("controllers/login-as",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionLogin(e){var t=e.anotherUser,i=e.username;if(!t)throw new Error("No anotherUser.");this.baseController.login({anotherUser:t,username:i});this.listenToOnce(this.baseController,"login",()=>{this.baseController.once("router-set",()=>{var e=window.location.href.split("?")[0];window.location.replace(e)})})}}e.default=s});define("controllers/lead-capture-opt-in-confirmation",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionOptInConfirmationSuccess(e){var t=this.getMetadata().get(["clientDefs","LeadCapture","optInConfirmationSuccessView"])||"views/lead-capture/opt-in-confirmation-success";this.entire(t,{resultData:e},e=>{e.render()})}actionOptInConfirmationExpired(e){var t=this.getMetadata().get(["clientDefs","LeadCapture","optInConfirmationExpiredView"])||"views/lead-capture/opt-in-confirmation-expired";this.entire(t,{resultData:e},e=>{e.render()})}}e.default=s});define("controllers/lead-capture-form",["exports","controller","views/lead-capture/form"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{actionShow(e){this.prepareContainer();let t=new i.default({formData:e});t.setSelector("body > .content");this.viewFactory.prepare(t,()=>t.render())}prepareContainer(){var e=document.body.querySelector(".container"),e=(e.remove(),document.createElement("div"));e.classList.add("container","content");document.body.prepend(e)}}e.default=a});define("controllers/layout-set",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionEditLayouts(e){var t=e.id;if(!t)throw new Error("ID not passed.");this.main("views/layout-set/layouts",{layoutSetId:t,scope:e.scope,type:e.type})}}e.default=s});define("controllers/last-viewed",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{entityType="ActionHistoryRecord";checkAccess(e){return this.getAcl().check(this.entityType,e)}}e.default=s});define("controllers/inbound-email",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkAccess(e){return!!this.getUser().isAdmin()}}e.default=s});define("controllers/import",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="index";storedData;checkAccessGlobal(){return!!this.getAcl().checkScope("Import")}checkAccess(e){return!!this.getAcl().checkScope("Import")}actionIndex(e){e=e||{};let t=null,i=(e.step&&(t=parseInt(t)),null),s=null;e.formData&&(this.storedData=void 0);if(this.storedData){i=this.storedData.formData;s=this.storedData.fileContents}i||(t=null);i=i||e.formData;this.main("views/import/index",{step:t,formData:i,fileContents:s,fromAdmin:e.fromAdmin},e=>{this.listenTo(e,"change",()=>{this.storedData={formData:e.formData,fileContents:e.fileContents}});this.listenTo(e,"done",()=>{this.storedData=void 0});e.render()})}}e.default=s});define("controllers/home",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionIndex(){this.main("views/home",null)}}e.default=s});define("controllers/global-stream",["exports","controller","views/global-stream"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=s(t);i=s(i);function s(e){return e&&e.__esModule?e:{default:e}}class a extends t.default{actionIndex(){var e=this.getRouter().backProcessed,t=(e||this.clearStoredMainView("index"),new i.default);this.main(t,void 0,void 0,{key:"index",useStored:e})}}e.default=a});define("controllers/external-account",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="list";actionList(){this.collectionFactory.create("ExternalAccount",e=>{e.once("sync",()=>{this.main("ExternalAccount.Index",{collection:e})});e.fetch()})}actionEdit(e){let t=e.id;this.collectionFactory.create("ExternalAccount",e=>{e.once("sync",()=>{this.main("ExternalAccount.Index",{collection:e,id:t})});e.fetch()})}}e.default=s});define("controllers/email",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{prepareModelView(e,t){super.prepareModelView(e,t);this.listenToOnce(e,"after:send",()=>{var e=this.getStoredMainView("list");e&&this.clearStoredMainView("list")})}}e.default=s});define("controllers/email-filter",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{actionCreate(e){var t={...e.attributes};if(e.from){t.from=e.from;t.name=e.from;e.attributes=t}super.actionCreate(e)}}e.default=s});define("controllers/dashboard",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="index";actionIndex(){this.main("views/dashboard",{displayTitle:!0},e=>{e.render()})}}e.default=s});define("controllers/api-user",["exports","controllers/record"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{entityType="User";getCollection(e){return super.getCollection().then(e=>{e.data.userType="api";return e})}createViewView(e,t,i){t.isApi()?super.createViewView(e,t,i):t.isPortal()?this.getRouter().dispatch("PortalUser","view",{id:t.id,model:t}):this.getRouter().dispatch("User","view",{id:t.id,model:t})}actionCreate(e){e=e||{};e.attributes=e.attributes||{};e.attributes.type="api";super.actionCreate(e)}}e.default=s});define("controllers/address-map",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="index";actionIndex(){this.error404()}actionView(i){this.modelFactory.create(i.entityType).then(t=>{t.id=i.id;t.fetch().then(()=>{var e=this.getMetadata().get(["AddressMap","view"])||"views/address-map/view";this.main(e,{model:t,field:i.field})})})}}e.default=s});define("controllers/about",["exports","controller"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{defaultAction="about";actionAbout(){this.main("About",{},e=>{e.render()})}}e.default=s});define("collections/note",["exports","collection"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{paginationByNumber=!1;reactionsCheckDate=null;pinnedList;reactionsCheckMaxSize=0;prepareAttributes(e,t){var i=this.total,s=super.prepareAttributes(e,t);t.data&&t.data.after&&(this.total=0<=i&&0<=e.total?i+e.total:i);e.pinnedList&&(this.pinnedList=Espo.Utils.cloneDeep(e.pinnedList));this.reactionsCheckDate=e.reactionsCheckDate;i=e.updatedReactions;i&&i.forEach(e=>{var t=this.get(e.id);t&&t.set(e)});return s}fetchNew(e){e=e||{};e.data=e.data||{};e.fetchNew=!0;e.noRebuild=!0;e.lengthBeforeFetch=this.length;if(this.length){e.data.after=this.models[0].get("createdAt");e.remove=!1;e.at=0;e.maxSize=null;if(this.reactionsCheckMaxSize){e.data.reactionsAfter=this.reactionsCheckDate||e.data.after;e.data.reactionsCheckNoteIds=this.models.filter(e=>"Post"===e.attributes.type).map(e=>e.id).slice(0,this.reactionsCheckMaxSize).join(",")}}return this.fetch(e)}fetch(e){e={...e};if(this.paginationByNumber&&e.more){e.more=!1;e.data=e.data||{};var t=this.models.at(this.length-1);t&&(e.data.beforeNumber=t.get("number"))}return super.fetch(e)}}e.default=s});define("acl-portal/preferences",["exports","acl-portal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkIsOwner(e){return this.getUser().id===e.id}}e.default=s});define("acl-portal/notification",["exports","acl-portal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkIsOwner(e){return this.getUser().id===e.get("userId")}}e.default=s});define("acl-portal/email",["exports","acl-portal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkModelRead(e,t,i){var s=this.checkModel(e,t,"read",i);if(s)return!0;if(!1===t)return!1;var a=t||{};if("no"===a.read)return!1;if(e.has("usersIds")){if(~(e.get("usersIds")||[]).indexOf(this.getUser().id))return!0}else if(i)return null;return s}}e.default=s});define("acl/user",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkModelRead(e,t,i){return!(!e.isPortal()||"yes"!==this.getPermissionLevel("portalPermission"))||this.checkModel(e,t,"read",i)}checkIsOwner(e){return this.getUser().id===e.id}}e.default=s});define("acl/team",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkInTeam(e){var t=this.getUser().getTeamIdList();return-1!==t.indexOf(e.id)}}e.default=s});define("acl/preferences",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkIsOwner(e){return this.getUser().id===e.id}}e.default=s});define("acl/notification",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkIsOwner(e){return this.getUser().id===e.get("userId")}}e.default=s});define("acl/import",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkScope(e,t,i,s){return!!e}checkModelRead(e,t,i){return!0}checkIsOwner(e){return this.getUser().id===e.get("createdById")}checkModelDelete(e,t,i){return!0}}e.default=s});define("acl/foreign",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkIsOwner(e){return!0}checkInTeam(e){return!0}}e.default=s});define("acl/email",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkModelRead(e,t,i){var s=this.checkModel(e,t,"read",i);if(s)return!0;if(!1===t)return!1;var a=t||{};if("no"===a.read)return!1;if(e.has("usersIds")){if(~(e.get("usersIds")||[]).indexOf(this.getUser().id))return!0}else if(i)return null;return s}checkIsOwner(e){return this.getUser().id===e.get("assignedUserId")||this.getUser().id===e.get("createdById")||(e.has("assignedUsersIds")?!!~(e.get("assignedUsersIds")||[]).indexOf(this.getUser().id):null)}checkModelEdit(e,t,i){return"Draft"===e.get("status")&&e.get("createdById")===this.getUser().id||this.checkModel(e,t,"edit",i)}checkModelDelete(e,t,i){var s,a=this.checkModel(e,t,"delete",i);return!!a||!1!==t&&(s=t||{},"no"!==s.read)&&(e.get("createdById")===this.getUser().id&&"Sent"!==e.get("status")&&"Archived"!==e.get("status")||a)}}e.default=s});define("acl/currency-record-rate",["exports","acl"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0});e.default=void 0;t=(i=t,i&&i.__esModule?i:{default:i});var i;class s extends t.default{checkScope(e,t,i,s){"create"!==t&&"delete"!==t||(t="edit");return super.checkScope(e,t,i,s)}}e.default=s});Espo.loader.mapBundleFile("admin","client/lib/espo-admin.js");Espo.loader.mapBundleFile("extra","client/lib/espo-extra.js");Espo.loader.mapBundleFile("crm","client/lib/espo-crm.js");Espo.loader.mapBundleDependencies("chart",["flotr2","espo-funnel-chart"]);Espo.loader.mapBundleFile("chart","client/lib/espo-chart.js");Espo.loader.mapBundleDependencies("calendar",["fullcalendar"]);Espo.loader.mapBundleFile("calendar","client/lib/espo-calendar.js");Espo.loader.mapBundleDependencies("timeline",["vis-data","vis-timeline"]);Espo.loader.mapBundleFile("timeline","client/lib/espo-timeline.js");Espo.loader.addBundleMapping({"views/admin/layouts/base":"admin","views/admin/layouts/rows":"admin","views/admin/layouts/side-panels-detail":"admin","views/admin/dynamic-logic/conditions-string/item-base":"admin","views/admin/link-manager/modals/edit-params":"admin","views/admin/layouts/grid":"admin","views/admin/layouts/default-page":"admin","views/admin/layouts/bottom-panels-detail":"admin","views/admin/layouts/modals/create":"admin","views/admin/field-manager/detail-fields/attributes":"admin","views/admin/dynamic-logic/conditions-string/item-operator-only-base":"admin","views/admin/dynamic-logic/conditions/field-types/base":"admin","views/settings/record/edit":"admin","views/settings/fields/quick-create-list":"admin","views/role/record/table":"admin","views/role/record/list":"admin","views/role/record/edit":"admin","views/role/record/detail":"admin","views/inbound-email/record/detail":"admin","views/admin/index":"admin","views/admin/link-manager/index":"admin","views/admin/layouts/list":"admin","views/admin/layouts/index":"admin","views/admin/layouts/detail":"admin","views/admin/layouts/bottom-panels-edit":"admin","views/admin/integrations/edit":"admin","views/admin/field-manager/modals/view-details":"admin","views/admin/field-manager/fields/options":"admin","views/admin/entity-manager/record/edit-formula":"admin","views/admin/entity-manager/modals/export":"admin","views/admin/entity-manager/fields/primary-filters":"admin","views/admin/entity-manager/fields/acl-contact-link":"admin","views/admin/dynamic-logic/conditions-string/item-operator-only-date":"admin","views/admin/dynamic-logic/conditions-string/group-base":"admin","views/admin/dynamic-logic/conditions/group-base":"admin","views/admin/dynamic-logic/conditions/field-types/link-multiple":"admin","views/email-account/fields/test-send":"admin","views/email-account/fields/test-connection":"admin","views/email-account/fields/folders":"admin","views/email-account/fields/folder":"admin","views/templates/event/record/detail":"admin","views/settings/edit":"admin","views/settings/modals/tab-list-field-add":"admin","views/settings/modals/edit-tab-url":"admin","views/settings/modals/edit-tab-group":"admin","views/settings/modals/edit-tab-divider":"admin","views/settings/fields/time-zone":"admin","views/settings/fields/time-format":"admin","views/settings/fields/thousand-separator":"admin","views/settings/fields/tab-url":"admin","views/settings/fields/stream-email-with-content-entity-type-list":"admin","views/settings/fields/stream-email-notifications-entity-list":"admin","views/settings/fields/sms-provider":"admin","views/settings/fields/phone-number-preferred-country-list":"admin","views/settings/fields/pdf-engine":"admin","views/settings/fields/outbound-email-from-address":"admin","views/settings/fields/oidc-teams":"admin","views/settings/fields/oidc-redirect-uri":"admin","views/settings/fields/language":"admin","views/settings/fields/history-entity-list":"admin","views/settings/fields/group-tab-list":"admin","views/settings/fields/global-search-entity-list":"admin","views/settings/fields/fiscal-year-shift":"admin","views/settings/fields/email-address-lookup-entity-type-list":"admin","views/settings/fields/default-currency":"admin","views/settings/fields/date-format":"admin","views/settings/fields/dashboard-layout":"admin","views/settings/fields/currency-list":"admin","views/settings/fields/calendar-entity-list":"admin","views/settings/fields/busy-ranges-entity-list":"admin","views/settings/fields/baseline-role":"admin","views/settings/fields/available-reactions":"admin","views/settings/fields/authentication-method":"admin","views/settings/fields/auth-two-fa-method-list":"admin","views/settings/fields/assignment-notifications-entity-list":"admin","views/settings/fields/assignment-email-notifications-entity-list":"admin","views/settings/fields/address-preview":"admin","views/settings/fields/activities-entity-list":"admin","views/scheduled-job/list":"admin","views/scheduled-job/record/list":"admin","views/scheduled-job/record/detail":"admin","views/scheduled-job/record/panels/log":"admin","views/scheduled-job/fields/scheduling":"admin","views/scheduled-job/fields/job":"admin","views/role/list":"admin","views/role/record/detail-side":"admin","views/role/record/panels/side":"admin","views/role/modals/add-field":"admin","views/role/fields/permission":"admin","views/role/fields/info":"admin","views/portal-role/list":"admin","views/portal-role/record/table":"admin","views/portal-role/record/list":"admin","views/portal-role/record/edit":"admin","views/portal-role/record/detail":"admin","views/portal/record/list":"admin","views/portal/fields/tab-list":"admin","views/portal/fields/quick-create-list":"admin","views/portal/fields/custom-id":"admin","views/lead-capture-log-record/modals/detail":"admin","views/layout-set/layouts":"admin","views/layout-set/record/list":"admin","views/layout-set/fields/layout-list":"admin","views/layout-set/fields/edit":"admin","views/inbound-email/record/list":"admin","views/inbound-email/record/edit":"admin","views/inbound-email/fields/test-send":"admin","views/inbound-email/fields/test-connection":"admin","views/inbound-email/fields/target-user-position":"admin","views/inbound-email/fields/name":"admin","views/inbound-email/fields/folders":"admin","views/inbound-email/fields/folder":"admin","views/inbound-email/fields/email-address":"admin","views/extension/record/row-actions":"admin","views/extension/record/list":"admin","views/authentication-provider/record/edit":"admin","views/authentication-provider/record/detail":"admin","views/authentication-provider/fields/method":"admin","views/api-user/list":"admin","views/admin/user-interface":"admin","views/admin/sms":"admin","views/admin/settings":"admin","views/admin/outbound-emails":"admin","views/admin/notifications":"admin","views/admin/jobs-settings":"admin","views/admin/inbound-emails":"admin","views/admin/currency":"admin","views/admin/currency-main":"admin","views/admin/authentication":"admin","views/admin/upgrade/ready":"admin","views/admin/upgrade/index":"admin","views/admin/upgrade/done":"admin","views/admin/template-manager/index":"admin","views/admin/template-manager/edit":"admin","views/admin/template-manager/fields/body":"admin","views/admin/system-requirements/index":"admin","views/admin/panels/notifications":"admin","views/admin/link-manager/modals/edit":"admin","views/admin/link-manager/fields/foreign-link-entity-type-list":"admin","views/admin/layouts/side-panels-edit":"admin","views/admin/layouts/side-panels-edit-small":"admin","views/admin/layouts/side-panels-detail-small":"admin","views/admin/layouts/mass-update":"admin","views/admin/layouts/list-small":"admin","views/admin/layouts/kanban":"admin","views/admin/layouts/filters":"admin","views/admin/layouts/detail-small":"admin","views/admin/layouts/detail-convert":"admin","views/admin/layouts/default-side-panel":"admin","views/admin/layouts/bottom-panels-edit-small":"admin","views/admin/layouts/bottom-panels-detail-small":"admin","views/admin/layouts/record/edit-attributes":"admin","views/admin/layouts/modals/panel-attributes":"admin","views/admin/layouts/modals/edit-attributes":"admin","views/admin/layouts/fields/width-complex":"admin","views/admin/label-manager/index":"admin","views/admin/label-manager/edit":"admin","views/admin/label-manager/category":"admin","views/admin/job/list":"admin","views/admin/job/record/list":"admin","views/admin/job/record/detail-small":"admin","views/admin/job/modals/detail":"admin","views/admin/job/fields/name":"admin","views/admin/integrations/oauth2":"admin","views/admin/integrations/index":"admin","views/admin/integrations/google-maps":"admin","views/admin/formula-sandbox/index":"admin","views/admin/formula-sandbox/record/edit":"admin","views/admin/formula/modals/add-function":"admin","views/admin/formula/modals/add-attribute":"admin","views/admin/formula/fields/attribute":"admin","views/admin/field-manager/list":"admin","views/admin/field-manager/index":"admin","views/admin/field-manager/header":"admin","views/admin/field-manager/edit":"admin","views/admin/field-manager/modals/add-field":"admin","views/admin/field-manager/fields/source-list":"admin","views/admin/field-manager/fields/pattern":"admin","views/admin/field-manager/fields/options-with-style":"admin","views/admin/field-manager/fields/options-reference":"admin","views/admin/field-manager/fields/not-actual-options":"admin","views/admin/field-manager/fields/entity-list":"admin","views/admin/field-manager/fields/dynamic-logic-options":"admin","views/admin/field-manager/fields/dynamic-logic-conditions":"admin","views/admin/field-manager/fields/currency-default":"admin","views/admin/field-manager/fields/text/attachment-field":"admin","views/admin/field-manager/fields/phone/default":"admin","views/admin/field-manager/fields/options/default":"admin","views/admin/field-manager/fields/options/default-multi":"admin","views/admin/field-manager/fields/link-multiple/default":"admin","views/admin/field-manager/fields/link/default":"admin","views/admin/field-manager/fields/int/max":"admin","views/admin/field-manager/fields/foreign/link":"admin","views/admin/field-manager/fields/foreign/field":"admin","views/admin/field-manager/fields/date/default":"admin","views/admin/field-manager/fields/date/after-before":"admin","views/admin/extensions/ready":"admin","views/admin/extensions/index":"admin","views/admin/extensions/done":"admin","views/admin/entity-manager/scope":"admin","views/admin/entity-manager/index":"admin","views/admin/entity-manager/formula":"admin","views/admin/entity-manager/edit":"admin","views/admin/entity-manager/record/edit":"admin","views/admin/entity-manager/modals/select-icon":"admin","views/admin/entity-manager/modals/select-formula":"admin","views/admin/entity-manager/fields/icon-class":"admin","views/admin/entity-manager/fields/duplicate-check-field-list":"admin","views/admin/entity-manager/fields/acl-account-link":"admin","views/admin/dynamic-logic/modals/edit":"admin","views/admin/dynamic-logic/modals/add-field":"admin","views/admin/dynamic-logic/fields/user-id":"admin","views/admin/dynamic-logic/fields/field":"admin","views/admin/dynamic-logic/conditions-string/item-value-varchar":"admin","views/admin/dynamic-logic/conditions-string/item-value-link":"admin","views/admin/dynamic-logic/conditions-string/item-value-enum":"admin","views/admin/dynamic-logic/conditions-string/item-multiple-values-base":"admin","views/admin/dynamic-logic/conditions-string/item-is-today":"admin","views/admin/dynamic-logic/conditions-string/item-in-past":"admin","views/admin/dynamic-logic/conditions-string/item-in-future":"admin","views/admin/dynamic-logic/conditions-string/group-not":"admin","views/admin/dynamic-logic/conditions/or":"admin","views/admin/dynamic-logic/conditions/not":"admin","views/admin/dynamic-logic/conditions/and":"admin","views/admin/dynamic-logic/conditions/field-types/multi-enum":"admin","views/admin/dynamic-logic/conditions/field-types/link":"admin","views/admin/dynamic-logic/conditions/field-types/link-parent":"admin","views/admin/dynamic-logic/conditions/field-types/enum":"admin","views/admin/dynamic-logic/conditions/field-types/date":"admin","views/admin/dynamic-logic/conditions/field-types/current-user":"admin","views/admin/dynamic-logic/conditions/field-types/current-user-teams":"admin","views/admin/complex-expression/modals/add-function":"admin","views/admin/authentication/fields/test-connection":"admin","views/admin/auth-token/list":"admin","views/admin/auth-token/record/list":"admin","views/admin/auth-token/record/detail":"admin","views/admin/auth-token/record/detail-small":"admin","views/admin/auth-token/record/row-actions/default":"admin","views/admin/auth-token/modals/detail":"admin","views/admin/auth-log-record/list":"admin","views/admin/auth-log-record/record/list":"admin","views/admin/auth-log-record/record/detail":"admin","views/admin/auth-log-record/record/detail-small":"admin","views/admin/auth-log-record/modals/detail":"admin","views/admin/auth-log-record/fields/authentication-method":"admin","views/admin/app-secret/fields/value":"admin","views/admin/app-log-record/record/list":"admin","controllers/role":"admin","controllers/portal-role":"admin","controllers/admin":"admin","views/import/record/panels/imported":"extra","views/email-account/record/detail":"extra","views/personal-data/record/record":"extra","views/personal-data/modals/personal-data":"extra","views/outbound-email/modals/test-send":"extra","views/import-error/fields/validation-failures":"extra","views/import-error/fields/line-number":"extra","views/import/step2":"extra","views/import/step1":"extra","views/import/list":"extra","views/import/index":"extra","views/import/detail":"extra","views/import/record/list":"extra","views/import/record/detail":"extra","views/import/record/row-actions/duplicates":"extra","views/import/record/panels/updated":"extra","views/import/record/panels/duplicates":"extra","views/group-email-folder/list":"extra","views/group-email-folder/record/list":"extra","views/group-email-folder/record/edit-small":"extra","views/group-email-folder/record/row-actions/default":"extra","views/external-account/oauth2":"extra","views/external-account/index":"extra","views/email-account/list":"extra","views/email-account/record/list":"extra","views/email-account/record/edit":"extra","views/email-account/modals/select-folder":"extra","views/email-account/fields/email-folder":"extra","views/email-account/fields/email-address":"extra","modules/crm/views/meeting/fields/attendees":"crm","modules/crm/views/calendar/fields/teams":"crm","modules/crm/knowledge-base-helper":"crm","modules/crm/views/task/record/list":"crm","modules/crm/views/record/panels/tasks":"crm","modules/crm/views/record/panels/activities":"crm","modules/crm/views/meeting/detail":"crm","modules/crm/views/meeting/record/list":"crm","modules/crm/views/mass-email/record/edit":"crm","modules/crm/views/mass-email/modals/send-test":"crm","modules/crm/views/dashlets/options/chart":"crm","modules/crm/views/contact/record/detail":"crm","modules/crm/views/call/record/list":"crm","modules/crm/views/call/fields/contacts":"crm","modules/crm/views/calendar/modals/edit-view":"crm","modules/crm/views/calendar/fields/users":"crm","modules/crm/acl/meeting":"crm","modules/crm/views/user/record/panels/tasks":"crm","modules/crm/views/task/list":"crm","modules/crm/views/task/detail":"crm","modules/crm/views/task/record/list-expanded":"crm","modules/crm/views/task/record/detail":"crm","modules/crm/views/task/record/row-actions/default":"crm","modules/crm/views/task/record/row-actions/dashlet":"crm","modules/crm/views/task/modals/detail":"crm","modules/crm/views/task/fields/tasks":"crm","modules/crm/views/task/fields/priority-for-dashlet":"crm","modules/crm/views/task/fields/is-overdue":"crm","modules/crm/views/task/fields/date-end":"crm","modules/crm/views/target-list/record/detail":"crm","modules/crm/views/target-list/record/row-actions/opted-out":"crm","modules/crm/views/target-list/record/row-actions/default":"crm","modules/crm/views/target-list/record/panels/relationship":"crm","modules/crm/views/target-list/record/panels/opted-out":"crm","modules/crm/views/target-list/fields/target-status":"crm","modules/crm/views/target-list/fields/including-action-list":"crm","modules/crm/views/stream/notes/event-confirmation":"crm","modules/crm/views/record/list-activities-dashlet":"crm","modules/crm/views/record/row-actions/tasks":"crm","modules/crm/views/record/row-actions/relationship-target":"crm","modules/crm/views/record/row-actions/history":"crm","modules/crm/views/record/row-actions/activities":"crm","modules/crm/views/record/row-actions/activities-dashlet":"crm","modules/crm/views/record/panels/target-lists":"crm","modules/crm/views/record/panels/history":"crm","modules/crm/views/opportunity/detail":"crm","modules/crm/views/opportunity/record/list":"crm","modules/crm/views/opportunity/record/kanban":"crm","modules/crm/views/opportunity/record/edit":"crm","modules/crm/views/opportunity/record/edit-small":"crm","modules/crm/views/opportunity/record/panels/activities":"crm","modules/crm/views/opportunity/fields/stage":"crm","modules/crm/views/opportunity/fields/lead-source":"crm","modules/crm/views/opportunity/fields/last-stage":"crm","modules/crm/views/opportunity/fields/contacts":"crm","modules/crm/views/opportunity/fields/contact-role":"crm","modules/crm/views/opportunity/admin/field-manager/fields/probability-map":"crm","modules/crm/views/notification/items/event-attendee":"crm","modules/crm/views/meeting/popup-notification":"crm","modules/crm/views/meeting/record/list-expanded":"crm","modules/crm/views/meeting/record/edit-small":"crm","modules/crm/views/meeting/record/detail":"crm","modules/crm/views/meeting/record/row-actions/default":"crm","modules/crm/views/meeting/record/row-actions/dashlet":"crm","modules/crm/views/meeting/record/panels/scheduler":"crm","modules/crm/views/meeting/record/panels/attendees":"crm","modules/crm/views/meeting/modals/send-invitations":"crm","modules/crm/views/meeting/modals/send-cancellation":"crm","modules/crm/views/meeting/modals/detail":"crm","modules/crm/views/meeting/modals/acceptance-status":"crm","modules/crm/views/meeting/fields/users":"crm","modules/crm/views/meeting/fields/reminders":"crm","modules/crm/views/meeting/fields/date-start":"crm","modules/crm/views/meeting/fields/date-end":"crm","modules/crm/views/meeting/fields/contacts":"crm","modules/crm/views/meeting/fields/acceptance-status":"crm","modules/crm/views/mass-email/detail":"crm","modules/crm/views/mass-email/record/list-for-campaign":"crm","modules/crm/views/mass-email/record/edit-small":"crm","modules/crm/views/mass-email/record/detail":"crm","modules/crm/views/mass-email/record/detail-bottom":"crm","modules/crm/views/mass-email/record/row-actions/for-campaign":"crm","modules/crm/views/mass-email/fields/smtp-account":"crm","modules/crm/views/mass-email/fields/from-address":"crm","modules/crm/views/mass-email/fields/email-template":"crm","modules/crm/views/lead/detail":"crm","modules/crm/views/lead/convert":"crm","modules/crm/views/lead/record/detail":"crm","modules/crm/views/lead/record/detail-side":"crm","modules/crm/views/lead/record/panels/converted-to":"crm","modules/crm/views/lead/fields/industry":"crm","modules/crm/views/lead/fields/created-opportunity":"crm","modules/crm/views/lead/fields/created-contact":"crm","modules/crm/views/lead/fields/acceptance-status":"crm","modules/crm/views/knowledge-base-article/list":"crm","modules/crm/views/knowledge-base-article/record/list":"crm","modules/crm/views/knowledge-base-article/record/edit":"crm","modules/crm/views/knowledge-base-article/record/edit-quick":"crm","modules/crm/views/knowledge-base-article/record/detail":"crm","modules/crm/views/knowledge-base-article/record/detail-quick":"crm","modules/crm/views/knowledge-base-article/modals/select-records":"crm","modules/crm/views/knowledge-base-article/fields/status":"crm","modules/crm/views/knowledge-base-article/fields/language":"crm","modules/crm/views/fields/ico":"crm","modules/crm/views/event-confirmation/confirmation":"crm","modules/crm/views/email-queue-item/list":"crm","modules/crm/views/email-queue-item/record/list":"crm","modules/crm/views/document/list":"crm","modules/crm/views/document/modals/select-records":"crm","modules/crm/views/document/fields/name":"crm","modules/crm/views/document/fields/file":"crm","modules/crm/views/dashlets/tasks":"crm","modules/crm/views/dashlets/meetings":"crm","modules/crm/views/dashlets/calls":"crm","modules/crm/views/dashlets/calendar":"crm","modules/crm/views/dashlets/activities":"crm","modules/crm/views/dashlets/options/sales-pipeline":"crm","modules/crm/views/dashlets/options/calendar":"crm","modules/crm/views/dashlets/options/activities":"crm","modules/crm/views/dashlets/options/sales-pipeline/fields/team":"crm","modules/crm/views/contact/detail":"crm","modules/crm/views/contact/record/detail-small":"crm","modules/crm/views/contact/modals/select-for-portal-user":"crm","modules/crm/views/contact/fields/title":"crm","modules/crm/views/contact/fields/opportunity-role":"crm","modules/crm/views/contact/fields/name-for-account":"crm","modules/crm/views/contact/fields/accounts":"crm","modules/crm/views/contact/fields/account":"crm","modules/crm/views/contact/fields/account-role":"crm","modules/crm/views/case/record/detail":"crm","modules/crm/views/case/record/panels/activities":"crm","modules/crm/views/campaign-tracking-url/record/edit":"crm","modules/crm/views/campaign-tracking-url/record/edit-small":"crm","modules/crm/views/campaign-log-record/fields/data":"crm","modules/crm/views/campaign/unsubscribe":"crm","modules/crm/views/campaign/tracking-url":"crm","modules/crm/views/campaign/detail":"crm","modules/crm/views/campaign/record/detail":"crm","modules/crm/views/campaign/record/panels/campaign-stats":"crm","modules/crm/views/campaign/record/panels/campaign-log-records":"crm","modules/crm/views/campaign/modals/mail-merge-pdf":"crm","modules/crm/views/campaign/fields/template":"crm","modules/crm/views/campaign/fields/int-with-percentage":"crm","modules/crm/views/call/detail":"crm","modules/crm/views/call/record/list-expanded":"crm","modules/crm/views/call/record/edit-small":"crm","modules/crm/views/call/record/detail":"crm","modules/crm/views/call/record/row-actions/default":"crm","modules/crm/views/call/record/row-actions/dashlet":"crm","modules/crm/views/call/fields/leads":"crm","modules/crm/views/call/fields/date-start":"crm","modules/crm/views/calendar/mode-buttons":"crm","modules/crm/views/calendar/calendar-page":"crm","modules/crm/views/calendar/modals/shared-options":"crm","modules/crm/views/calendar/modals/edit":"crm","modules/crm/views/admin/entity-manager/fields/status-list":"crm","modules/crm/views/activities/list":"crm","modules/crm/views/account/detail":"crm","modules/crm/views/account/fields/shipping-address":"crm","modules/crm/view-setup-handlers/document/record-list-drag-n-drop":"crm","modules/crm/handlers/task/reminders-handler":"crm","modules/crm/handlers/task/menu":"crm","modules/crm/handlers/task/detail-actions":"crm","modules/crm/handlers/opportunity/defaults-preparator":"crm","modules/crm/handlers/opportunity/contacts-create":"crm","modules/crm/handlers/knowledge-base-article/send-in-email":"crm","modules/crm/handlers/knowledge-base-article/move":"crm","modules/crm/handlers/event/reminders-handler":"crm","modules/crm/handlers/case/detail-actions":"crm","modules/crm/handlers/campaign/mass-emails-create":"crm","modules/crm/controllers/unsubscribe":"crm","modules/crm/controllers/tracking-url":"crm","modules/crm/controllers/task":"crm","modules/crm/controllers/lead":"crm","modules/crm/controllers/event-confirmation":"crm","modules/crm/controllers/calendar":"crm","modules/crm/controllers/activities":"crm","modules/crm/acl-portal/document":"crm","modules/crm/acl-portal/contact":"crm","modules/crm/acl-portal/account":"crm","modules/crm/acl/mass-email":"crm","modules/crm/acl/campaign-tracking-url":"crm","modules/crm/acl/call":"crm","modules/crm/views/dashlets/abstract/chart":"chart","modules/crm/views/dashlets/sales-pipeline":"chart","modules/crm/views/dashlets/sales-by-month":"chart","modules/crm/views/dashlets/opportunities-by-stage":"chart","modules/crm/views/dashlets/opportunities-by-lead-source":"chart","modules/crm/views/calendar/calendar":"calendar","modules/crm/views/scheduler/scheduler":"timeline","modules/crm/views/calendar/timeline":"timeline"});Espo.layoutTemplates={record:'<% var hasHiddenPanel = false; %>\r\n\r\n<% _.each(layout, function (panel, columnNumber) { %>\r\n <% hasHiddenPanel = panel.hidden || hasHiddenPanel; %>\r\n <div\r\n class="panel panel-<%= panel.style %><%= panel.label ? \' headered\' : \'\' %><%= panel.tabNumber ? \' tab-hidden\' : \'\' %><% if (panel.name) { %>{{#if hiddenPanels.<%= panel.name %>}} hidden{{/if}}<% } %>"\r\n <% if (panel.name) print(\'data-name="\'+panel.name+\'"\') %>\r\n <% if (panel.style) print(\'data-style="\'+panel.style+\'"\') %>\r\n data-tab="<%= panel.tabNumber %>"\r\n >\r\n <% if (panel.label) { %>\r\n <div class="panel-heading"><h4 class="panel-title"><%= panel.label %></h4></div>\r\n <% } %>\r\n <div class="panel-body panel-body-form">\r\n\r\n <% if (panel.noteText) { %>\r\n <div class="alert alert-<%= panel.noteStyle %>"><%= panel.noteText %></div>\r\n <% } %>\r\n\r\n <% var rows = panel.rows || [] %>\r\n <% var columns = panel.columns || [] %>\r\n\r\n <% _.each(rows, function (row, rowNumber) { %>\r\n <div class="row">\r\n <% var columnCount = row.length; %>\r\n <% _.each(row, function (cell, cellNumber) { %>\r\n\r\n <%\r\n var spanClassBase;\r\n if (columnCount === 1) {\r\n spanClassBase = \'col-sm-12\';\r\n } else if (columnCount === 2) {\r\n spanClassBase = \'col-sm-6\';\r\n } else if (columnCount === 3) {\r\n spanClassBase = \'col-sm-4\';\r\n } else if (columnCount === 4) {\r\n spanClassBase = \'col-md-3 col-sm-6\';\r\n } else {\r\n spanClass = \'col-sm-12\';\r\n }\r\n %>\r\n <% if (cell != false) { %>\r\n <%\r\n var spanClass;\r\n if (columnCount === 1 || cell.fullWidth) {\r\n spanClass = \'col-sm-12\';\r\n } else if (columnCount === 2) {\r\n if (cell.span === 2) {\r\n spanClass = \'col-sm-12\';\r\n } else {\r\n spanClass = \'col-sm-6\';\r\n }\r\n } else if (columnCount === 3) {\r\n if (cell.span === 2) {\r\n spanClass = \'col-sm-8\';\r\n } else if (cell.span === 3) {\r\n spanClass = \'col-sm-12\';\r\n } else {\r\n spanClass = \'col-sm-4\';\r\n }\r\n } else if (columnCount === 4) {\r\n if (cell.span === 2) {\r\n spanClass = \'col-sm-6\';\r\n } else if (cell.span === 3) {\r\n spanClass = \'col-sm-9\';\r\n } else if (cell.span === 4) {\r\n spanClass = \'col-sm-12\';\r\n } else {\r\n spanClass = \'col-md-3 col-sm-6\';\r\n }\r\n } else {\r\n spanClass = \'col-sm-12\';\r\n }\r\n %>\r\n <div\r\n class="cell <%= spanClass %> form-group<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden-cell{{/if}}<% } %>"\r\n data-name="<%= cell.field %>"\r\n tabindex="-1"\r\n >\r\n <% if (!cell.noLabel) { %><label class="control-label<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><span class="label-text"><%\r\n if (\'customLabel\' in cell) {\r\n print (cell.customLabel);\r\n } else {\r\n var label = cell.label || cell.field;\r\n print ("{{translate \\""+label+"\\" scope=\\""+model.name+"\\" category=\'fields\'}}");\r\n }\r\n %></span></label><% } %>\r\n <div class="field<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><%\r\n if (\'customCode\' in cell) {\r\n print (cell.customCode);\r\n } else {\r\n print ("{{{this."+cell.name+"}}}");\r\n }\r\n %></div>\r\n </div>\r\n <% } else { %>\r\n <div class="<%= spanClassBase %>"></div>\r\n <% } %>\r\n <% }); %>\r\n </div>\r\n <% }); %>\r\n\r\n <%\r\n var columnCount = columns.length;\r\n if (columnCount) {\r\n %>\r\n <div class="row">\r\n <%\r\n }\r\n %>\r\n <% _.each(columns, function (column, columnNumber) { %>\r\n <%\r\n var spanClass;\r\n if (!columnCount) return;\r\n\r\n if (columnCount === 1 || column.fullWidth) {\r\n spanClass = \'col-sm-12\';\r\n } else if (columnCount === 2) {\r\n if (column.span === 2) {\r\n spanClass = \'col-sm-12\';\r\n } else {\r\n spanClass = \'col-sm-6\';\r\n }\r\n } else if (columnCount === 3) {\r\n if (column.span === 2) {\r\n spanClass = \'col-sm-8\';\r\n } else if (column.span === 3) {\r\n spanClass = \'col-sm-12\';\r\n } else {\r\n spanClass = \'col-sm-4\';\r\n }\r\n } else if (columnCount === 4) {\r\n if (column.span === 2) {\r\n spanClass = \'col-sm-6\';\r\n } else if (column.span === 3) {\r\n spanClass = \'col-sm-9\';\r\n } else if (column.span === 4) {\r\n spanClass = \'col-sm-12\';\r\n } else {\r\n spanClass = \'col-md-3 col-sm-6\';\r\n }\r\n } else {\r\n spanClass = \'col-sm-12\';\r\n }\r\n %>\r\n <div class="column <%= spanClass %>">\r\n <% _.each(column, function (cell, cellNumber) { %>\r\n <div class="cell form-group<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden-cell{{/if}}<% } %>" data-name="<%= cell.field %>">\r\n <% if (!cell.noLabel) { %><label class="control-label<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><span class="label-text"><%\r\n if (\'customLabel\' in cell) {\r\n print (cell.customLabel);\r\n } else {\r\n print ("{{translate \\""+cell.field+"\\" scope=\\""+model.name+"\\" category=\'fields\'}}");\r\n }\r\n %></span></label><% } %>\r\n <div class="field<% if (cell.field) { %>{{#if hiddenFields.<%= cell.field %>}} hidden{{/if}}<% } %>" data-name="<%= cell.field %>"><%\r\n if (\'customCode\' in cell) {\r\n print (cell.customCode);\r\n } else {\r\n print ("{{{this."+cell.name+"}}}");\r\n }\r\n %></div>\r\n </div>\r\n <% }); %>\r\n </div>\r\n <% }); %>\r\n <%\r\n if (columnCount) {\r\n %>\r\n </div>\r\n <%\r\n }\r\n %>\r\n </div>\r\n </div>\r\n<% }); %>\r\n\r\n<%\r\nif (hasHiddenPanel) {\r\n%>\r\n<div class="panel panel-default panels-show-more-delimiter" data-name="showMoreDelimiter" data-tab="0">\r\n <a role="button" tabindex="0" data-action="showMoreDetailPanels" title="{{translate \'Show more\'}}">\r\n <span class="fas fa-ellipsis-h fa-lg"></span>\r\n </a>\r\n</div>\r\n<%\r\n}\r\n%>\r\n',"list-row":"<% _.each(layout, function (defs, key) { %>\r\n <%\r\n let width = null;\r\n\r\n if (defs.options && defs.options.defs && defs.options.defs.width !== undefined) {\r\n width = (defs.options.defs.width + '%') || null;\r\n }\r\n\r\n if (defs.options && defs.options.defs && defs.options.defs.widthPx !== undefined) {\r\n width = defs.options.defs.widthPx || null;\r\n }\r\n\r\n let align = false;\r\n\r\n if (defs.options && defs.options.defs) {\r\n align = defs.options.defs.align || false;\r\n }\r\n %>\r\n <td\r\n class=\"cell\"\r\n data-name=\"<%= defs.columnName %>\"\r\n <% if (width || align) { %>\r\n style=\"<% if (width) print('width: ' + width); %>;<% if (align) print(' text-align: ' + align);%>\"\r\n <% } %>\r\n >\r\n <%\r\n var tag = 'tag' in defs ? defs.tag : false;\r\n if (tag) {\r\n print( '<' + tag);\r\n if ('id' in defs) {\r\n print(' id=\"'+defs.id+'\"');\r\n }\r\n if ('class' in defs) {\r\n print(' class=\"'+defs.class+'\"');\r\n };\r\n print('>');\r\n }\r\n %>{{{this.<%= defs.name %>}}}<%\r\n if (tag) {\r\n print( '</' + tag + '>');\r\n }\r\n %>\r\n </td>\r\n<% }); %>\r\n","list-row-expanded":"<% if (layout.right) { %>\r\n<div class=\"pull-right right cell\" data-name=\"buttons\">\r\n {{{<%= layout.right.name %>}}}\r\n</div>\r\n<% } %>\r\n<% _.each(layout.rows, function (row, key) { %><div class=\"expanded-row\"><% _.each(row, function (defs, key) { %><span class=\"cell<%= defs.align ? ' pull-right' : '' %><%= defs.small ? ' small' : '' %><%= defs.soft ? ' text-soft' : '' %>\" data-name=\"<%= defs.field %>\"><%\r\n var tag = 'tag' in defs ? defs.tag : false;\r\n if (tag) {\r\n print( '<' + tag);\r\n if ('id' in defs) {\r\n print(' id=\"'+defs.id+'\"');\r\n }\r\n if ('class' in defs) {\r\n print(' class=\"'+defs.class+'\"');\r\n };\r\n print('>');\r\n }\r\n %>{{{this.<%= defs.name %>}}}<%\r\n if (tag) {\r\n print( '</' + tag + '>');\r\n }\r\n %></span><% }); %></div>\r\n<% }); %>\r\n",default:"<% _.each(layout, function (defs, key) {\r\n var tag = 'tag' in defs ? defs.tag : 'div';\r\n print( '<' + tag);\r\n if ('id' in defs) {\r\n print(' id=\"'+defs.id+'\"');\r\n }\r\n if ('class' in defs) {\r\n print(' class=\"'+defs.class+'\"');\r\n }\r\n print('>');\r\n %>\r\n {{{this.<%= defs.name %>}}}\r\n <%= '</' + tag + '>' %>\r\n<% }); %>\r\n","columns-2":"<% _.each(layout, function (row, rowNumber) { %>\r\n <div class=\"col-sm-6\">\r\n <% _.each(row, function (defs, key) { %>\r\n <%\r\n var tag = 'tag' in defs ? defs.tag : 'div';\r\n print( '<' + tag);\r\n if ('id' in defs) {\r\n print(' id=\"'+defs.id+'\"');\r\n }\r\n print(' class=\"');\r\n if ('class' in defs) {\r\n print(defs.class);\r\n };\r\n print('\"');\r\n print('>');\r\n %>\r\n {{{this.<%= defs.name %>}}}\r\n <%= '</' + tag + '>' %>\r\n <% }); %>\r\n </div>\r\n<% }); %>\r\n"};
|
||
//# sourceMappingURL=espo-main.js.map |