PageSourceSearch

https://portal.iventuresolutions.com/6021.d565eeafa801c59a.js

js iventuresolutions.com collected 2026-10-04 08:56:01 UTC 149,231 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkCloudRadial=self.webpackChunkCloudRadial||[]).push([[6021],{82064:(je,V,l)=>{l.d(V,{H:()=>d});var L=l(50841),y=l(55209),_=l(50617);class d{constructor(b={}){if(this.columnType=L.$.Field,this.sortable=!0,this.filterType=y.R.None,this.showOperators=!0,this.spinners=!0,this.hidden=!1,this.autoSize=!1,this.menuItems=[],this.filterOperators=[_.t.StartsWith,_.t.Contains,_.t.EqualTo],this.defaultOperator=_.t.Contains,b){if(!b.filterType||!b.filterOperators)switch(b.filterType){case y.R.String:b.filterOperators=[_.t.StartsWith,_.t.Contains,_.t.EqualTo],null==b.defaultOperator&&(b.defaultOperator=_.t.Contains);break;case y.R.Numeric:b.filterOperators=[_.t.EqualTo,_.t.GreaterThan,_.t.GreaterThanOrEqualTo,_.t.LessThan,_.t.LessThanOrEqualTo],null==b.defaultOperator&&(b.defaultOperator=_.t.EqualTo),null==b.format&&(b.format="n0");break;case y.R.Date:case y.R.DateRange:b.filterOperators=[_.t.EqualTo,_.t.GreaterThan,_.t.GreaterThanOrEqualTo,_.t.LessThan,_.t.LessThanOrEqualTo],null==b.defaultOperator&&(b.defaultOperator=_.t.EqualTo);break;case y.R.Dropdown:b.filterOperators=[_.t.EqualTo],null==b.defaultOperator&&(b.defaultOperator=_.t.EqualTo);break;default:b.filterOperators=[_.t.StartsWith,_.t.Contains,_.t.EqualTo],null==b.defaultOperator&&(b.defaultOperator=_.t.Contains)}Object.assign(this,b)}}}},20765:(je,V,l)=>{l.d(V,{o:()=>d});var L=l(54438),y=l(51188),_=l(99065);function d(k){return()=>{const b=(0,L.WQX)(y.Ix);return(0,L.WQX)(_.h).isFeatureEnabled(k)||b.createUrlTree(["editions-and-features/request"],{queryParams:{feature:k}})}}},86021:(je,V,l)=>{l.r(V),l.d(V,{ProjectsPlanningModule:()=>Vi});var L=l(6744),y=l(35867),_=l(93873),d=l(55670),k=l(81860),b=l(20319),X=l(21413),re=l(84572),ze=l(99172),q=l(7673),S=l(9310),F=l(47655),Y=l(15915),me=l(96354),x=l(56977),e=l(54438),ae=l(93509),R=l(54397),T=l(60177),se=l(81391),He=l(36249);const Qe=(n,a)=>({"top.px":n,"left.px":a});function Je(n,a){if(1&n){const t=e.RV6();e.j41(0,"li",3),e.bIt("click",function(){const i=e.eBV(t).$implicit,r=e.XpG(2);return e.Njj(r.executeAction(i))}),e.nrm(1,"span"),e.EFF(2),e.k0s()}if(2&n){const t=a.$implicit;e.R7$(),e.ZvI("",t.iconClasses," margin-right"),e.R7$(),e.SpI("",t.label," ")}}function We(n,a){if(1&n&&(e.j41(0,"div",1)(1,"ul"),e.DNE(2,Je,3,4,"li",2),e.k0s()()),2&n){const t=e.XpG();e.Y8G("ngStyle",e.l_i(2,Qe,t.yPos,t.xPos)),e.R7$(2),e.Y8G("ngForOf",t.actions)}}let ye=(()=>{class n{constructor(t){this.actions=[],this.visible=!1,this.xPos=0,this.yPos=0,this.contextMenuService=t}ngOnInit(){this.visibilitySubscription=this.contextMenuService.contextMenuVisibility$.subscribe(t=>{this.visible=t.visible,this.xPos=t.xPos,this.yPos=t.yPos})}ngOnDestroy(){this.visibilitySubscription.unsubscribe()}executeAction(t){t.callback(),this.hide()}documentClick(){this.hide()}hide(){this.contextMenuService.hideContextMenu()}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(He.K))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-context-menu"]],hostBindings:function(o,i){1&o&&e.bIt("click",function(){return i.documentClick()},!1,e.EBC)},inputs:{actions:"actions"},decls:1,vars:1,consts:[["class","context-menu",3,"ngStyle",4,"ngIf"],[1,"context-menu",3,"ngStyle"],[3,"click",4,"ngFor","ngForOf"],[3,"click"]],template:function(o,i){1&o&&e.DNE(0,We,3,5,"div",0),2&o&&e.Y8G("ngIf",i.visible)},dependencies:[T.Sq,T.bT,T.B3],styles:[".context-menu[_ngcontent-%COMP%]{position:fixed;background:var(--blade-background);box-shadow:0 2px 10px #0003;z-index:1000;width:200px}.context-menu[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0}.context-menu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{padding:8px 12px;cursor:pointer}.context-menu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]:hover{background:var(--blade-hover-background);color:var(--main-link-color)}.margin-right[_ngcontent-%COMP%]{margin-right:.5rem}"]})}}return n})();var xe=l(41680),O=l(58544);const z=(n,a,t)=>[n,a,"symbol-narrow","1.0-0",t];function qe(n,a){1&n&&e.nrm(0,"span",12)}function Ke(n,a){if(1&n&&(e.j41(0,"div",13),e.EFF(1),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.SpI(" ",t.plannerCard.summary," ")}}function Ze(n,a){if(1&n&&(e.qex(0),e.j41(1,"div",14)(2,"span")(3,"b"),e.EFF(4,"Schedule"),e.k0s()(),e.j41(5,"span"),e.EFF(6),e.nI1(7,"localizedShortDate"),e.k0s()(),e.bVm()),2&n){const t=e.XpG();e.R7$(6),e.SpI(" Estimated Close: ",e.bMT(7,1,t.plannerCard.estimatedCloseDate),"")}}function et(n,a){if(1&n&&(e.j41(0,"div")(1,"span"),e.EFF(2),e.nI1(3,"localizedShortDate"),e.k0s()()),2&n){const t=e.XpG(3);e.R7$(2),e.SpI("Estimated End: ",e.bMT(3,1,t.plannerCard.estimatedEndDate),"")}}function tt(n,a){if(1&n&&(e.j41(0,"div",14)(1,"span")(2,"b"),e.EFF(3,"Sc
1hedule"),e.k0s()(),e.j41(4,"span"),e.EFF(5),e.nI1(6,"localizedShortDate"),e.k0s(),e.DNE(7,et,4,3,"div",16),e.k0s()),2&n){const t=e.XpG(2);e.R7$(5),e.SpI("Estimated Start: ",e.bMT(6,2,t.plannerCard.estimatedStartDate),""),e.R7$(2),e.Y8G("ngIf",t.plannerCard.estimatedEndDate)}}function nt(n,a){if(1&n&&e.DNE(0,tt,8,4,"div",15),2&n){const t=e.XpG();e.Y8G("ngIf",t.plannerCard.productType===t.productType.ProjectDates||t.plannerCard.productType===t.productType.Projects&&t.plannerCard.estimatedStartDate)}}function ot(n,a){1&n&&(e.j41(0,"span",20),e.EFF(1," (estimated) "),e.k0s())}function it(n,a){if(1&n&&(e.j41(0,"div",21)(1,"span"),e.EFF(2),e.nI1(3,"currency"),e.k0s(),e.j41(4,"span"),e.EFF(5),e.nI1(6,"currency"),e.k0s()()),2&n){const t=e.XpG(2);e.R7$(2),e.SpI(" Monthly: ",e.iJd(3,2,e.sMw(14,z,t.plannerCard.monthlyUnitPrice*t.plannerCard.monthlyUnits,t.userService.UserProfile.partner.currencyCode,t.userService.UserProfile.partner.locale))," "),e.R7$(3),e.SpI(" Project: ",e.iJd(6,8,e.sMw(18,z,t.plannerCard.projectUnitPrice*t.plannerCard.projectUnits,t.userService.UserProfile.partner.currencyCode,t.userService.UserProfile.partner.locale))," ")}}function rt(n,a){if(1&n&&(e.j41(0,"span",22),e.nI1(1,"currency"),e.EFF(2),e.nI1(3,"currency"),e.k0s(),e.j41(4,"span",22),e.nI1(5,"currency"),e.EFF(6),e.nI1(7,"currency"),e.k0s()),2&n){const t=e.XpG(2);e.FCK("title","Monthly: ",t.plannerCard.monthlyUnits," @ ",e.iJd(1,8,e.sMw(32,z,t.plannerCard.monthlyUnitPrice,t.userService.UserProfile.partner.currencyCode,t.userService.UserProfile.partner.locale)),""),e.R7$(2),e.SpI(" Monthly: ",e.iJd(3,14,e.sMw(36,z,t.plannerCard.monthlyUnitPrice*t.plannerCard.monthlyUnits,t.userService.UserProfile.partner.currencyCode,t.userService.UserProfile.partner.locale))," "),e.R7$(2),e.FCK("title","Project: ",t.plannerCard.projectUnits," @ ",e.iJd(5,20,e.sMw(40,z,t.plannerCard.projectUnitPrice,t.userService.UserProfile.partner.currencyCode,t.userService.UserProfile.partner.locale)),""),e.R7$(2),e.SpI(" Project: ",e.iJd(7,26,e.sMw(44,z,t.plannerCard.projectUnitPrice*t.plannerCard.projectUnits,t.userService.UserProfile.partner.currencyCode,t.userService.UserProfile.partner.locale))," ")}}function at(n,a){if(1&n&&(e.j41(0,"div",17)(1,"div")(2,"b"),e.EFF(3,"Pricing"),e.k0s(),e.DNE(4,ot,2,0,"span",18),e.k0s(),e.DNE(5,it,7,22,"div",19)(6,rt,8,48,"ng-template",null,1,e.C5r),e.k0s()),2&n){const t=e.sdS(7),o=e.XpG();e.R7$(4),e.Y8G("ngIf",o.plannerCard.isShowEstimated),e.R7$(),e.Y8G("ngIf",o.plannerCard.productType===o.productType.Quotes)("ngIfElse",t)}}function st(n,a){if(1&n&&(e.j41(0,"b"),e.EFF(1,"Priority / Status"),e.k0s(),e.EFF(2),e.nI1(3,"enumValue"),e.j41(4,"span",23),e.EFF(5),e.nI1(6,"enumValue"),e.k0s()),2&n){const t=e.XpG(2);e.R7$(2),e.SpI(" ",e.i5U(3,3,t.plannerCard.priority,t.priorityList)," "),e.R7$(2),e.Y8G("ngClass",t.getSpanClass(t.plannerCard)),e.R7$(),e.JRh(e.i5U(6,6,t.plannerCard.status,t.statusList))}}function lt(n,a){if(1&n&&(e.j41(0,"b"),e.EFF(1,"Status"),e.k0s(),e.EFF(2)),2&n){let t;const o=e.XpG(2);e.R7$(2),e.SpI(" ",null!==(t=o.plannerCard.projectStatus)&&void 0!==t?t:o.plannerCard.quoteStatus," ")}}function ct(n,a){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.SpI("\xa0(",t.plannerCard.statusComplete,"%)")}}function dt(n,a){if(1&n&&(e.j41(0,"div",11),e.DNE(1,st,7,9)(2,lt,3,1)(3,ct,2,1,"span"),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.vxM(t.plannerCard.productType!==t.productType.Projects&&t.plannerCard.productType!==t.productType.Quotes?1:2),e.R7$(2),e.vxM(t.plannerCard.statusComplete>0?3:-1)}}function pt(n,a){if(1&n&&(e.j41(0,"div",24),e.EFF(1),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.JRh(t.plannerCard.clientLabel)}}function ut(n,a){1&n&&(e.j41(0,"div",25),e.EFF(1,"Strongly Recommended"),e.k0s())}function mt(n,a){if(1&n&&e.DNE(0,pt,2,1,"div",24)(1,ut,2,0,"div",25),2&n){const t=e.XpG();e.vxM(t.plannerCard.clientLabel?0:1)}}let ht=(()=>{class n{constructor(t){this.userService=t,this.canDrag=!1,this.priorityList=d.Og,this.statusList=d.MY,this.productType=d.ch,this.displayClientLabel=!1,this.getStatusClass=o=>{switch(o.status){case d.MY.Draft:return"draftStatus";case d.MY.Client_Approved:case d.MY.Completed:case d.MY.In_Planning:case d.MY.In_Progress:return"approvedStatus";case d.MY.Client_Declined:case d.MY.Archive:return"declinedStatus";default:return""}}
1,this.getSpanClass=o=>{switch(o.status){case d.MY.Proposed:return"proposedText";case d.MY.Draft:return"draftText";case d.MY.Client_Approved:case d.MY.Completed:case d.MY.In_Planning:case d.MY.In_Progress:return"approvedText";case d.MY.Client_Declined:case d.MY.Archive:return"declinedText";default:return""}}}ngOnInit(){this.displayClientLabel=!this.plannerCard.currentlyInstalled&&(this.plannerCard.isShowClientLabel||this.plannerCard.isStronglyRecommended)}get showStatusInfo(){return!this.plannerCard.currentlyInstalled&&(this.plannerCard.productType===d.ch.Projects||this.plannerCard.productType===d.ch.Quotes||this.plannerCard.status===d.MY.In_Planning||this.plannerCard.status===d.MY.In_Progress)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(R.DL))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-board-card"]],viewQuery:function(o,i){if(1&o&&e.GBs(ye,5),2&o){let r;e.mGM(r=e.lsd())&&(i.contextMenu=r.first)}},inputs:{plannerCard:"plannerCard",columnId:"columnId",onContextMenu:"onContextMenu",openPlannerItem:"openPlannerItem",canDrag:"canDrag"},decls:15,vars:16,consts:[["standard",""],["withTooltip",""],["cdkDrag","",1,"planner-card",3,"click","contextmenu","cdkDragData","cdkDragDisabled","ngClass"],["cdkDragHandle","","notranslate","",1,"planner-card-header"],[1,"fal","fa-bars","header-icon"],[1,"planner-card-body"],["notranslate","",1,"planner-card-subject"],["class","fa fa-check-circle completed",4,"ngIf"],["class","planner-card-summary","notranslate","",4,"ngIf"],[4,"ngIf","ngIfElse"],["class","planner-card-pricing",4,"ngIf"],[1,"planner-card-priority"],[1,"fa","fa-check-circle","completed"],["notranslate","",1,"planner-card-summary"],[1,"planner-card-schedule"],["class","planner-card-schedule",4,"ngIf"],[4,"ngIf"],[1,"planner-card-pricing"],["class","estimated",4,"ngIf"],["class","d-flex flex-column",4,"ngIf","ngIfElse"],[1,"estimated"],[1,"d-flex","flex-column"],[3,"title"],[3,"ngClass"],["notranslate","",1,"client-flag"],[1,"client-flag"]],template:function(o,i){if(1&o){const r=e.RV6();e.j41(0,"div",2),e.bIt("click",function(){return e.eBV(r),e.Njj(i.openPlannerItem(i.plannerCard.id,i.plannerCard.subject,i.plannerCard.productType))})("contextmenu",function(p){return e.eBV(r),e.Njj(i.onContextMenu(p,i.plannerCard.id))}),e.j41(1,"div",3),e.nrm(2,"span",4),e.EFF(3),e.k0s(),e.j41(4,"div",5)(5,"div",6),e.EFF(6),e.DNE(7,qe,1,0,"span",7),e.k0s(),e.DNE(8,Ke,2,1,"div",8)(9,Ze,8,3,"ng-container",9)(10,nt,1,1,"ng-template",null,0,e.C5r)(12,at,8,3,"div",10)(13,dt,4,2,"div",11)(14,mt,2,1),e.k0s()()}if(2&o){const r=e.sdS(11);e.Y8G("cdkDragData",i.plannerCard)("cdkDragDisabled",!i.canDrag)("ngClass",i.getStatusClass(i.plannerCard)),e.R7$(),e.xc7("border-color",i.plannerCard.productCategory.color)("color",i.plannerCard.productCategory.color),e.R7$(2),e.SpI(" ",i.plannerCard.productCategory.name," "),e.R7$(3),e.SpI(" ",i.plannerCard.subject," "),e.R7$(),e.Y8G("ngIf",i.plannerCard.currentlyInstalled),e.R7$(),e.Y8G("ngIf",i.plannerCard.productType==i.productType.None&&!i.plannerCard.currentlyInstalled||i.plannerCard.productType==i.productType.Projects),e.R7$(),e.Y8G("ngIf",i.plannerCard.productType===i.productType.Quotes)("ngIfElse",r),e.R7$(3),e.Y8G("ngIf",i.plannerCard.isShowPrice&&(i.plannerCard.productType!==i.productType.None||i.plannerCard.currentlyInstalled)),e.R7$(),e.vxM(i.showStatusInfo?13:-1),e.R7$(),e.vxM(i.displayClientLabel?14:-1)}},dependencies:[T.YU,T.bT,se.T1,se.Fb,T.oe,xe.hq,O.qY],styles:['.planner-card[_ngcontent-%COMP%]{border-radius:var(--default-border-radius);border:solid 1px var(--main-border-color);border-top:none;background-color:var(--main-alt-background);color:var(--main-text-color)!important}.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:.5}.planner-card-header[_ngcontent-%COMP%]{border-top-left-radius:var(--default-border-radius);border-top-right-radius:var(--default-border-radius);padding:5px;border-top:4px solid rgb(220,152,5);font-weight:600;font-size:10px;page-break-inside:avoid;border-bottom:solid 1px var(--main-border-color);cursor:move}.header-icon[_ngcontent-%COMP%]{padding:0 5px}.planner-card-body[_ngcontent-%COMP%]{padding:5px 10px 10px;cursor:pointer;font-size:12px;display:flex;flex-direction:column;gap:.75rem}.planner-card-subject[_ngcontent-%COMP%]{font-weight:600;font-size:15px;line-height:18px}.planner-card-schedule[_ngcontent-%COMP%], .planner-card-pricing[_ngcontent-%COMP%]{display:flex;flex-direction:column}.client-flag[_ngcontent-%COMP%]{font-size:10px;text-align:center;color:var(--alert-color);font-weight:600;padding-top:5px}.draftStatus[_ngcontent-%COMP%]{border:dashed 1px var(--main-border-color)!important;border-top:none!important;background:var(--main-hover-background)!important}.draftText[_ngcontent-%COMP%]{color:var(--text-muted-accessible)!important;font-weight:700!important}.draftText[_ngcontent-%COMP%]:before{content:"\\f040";font-family:"Font Awesome 5 Pro";display:inline-block;width:14px;color:var(--text-muted-accessible);font-size:10px}.approvedText[_ngcontent-%COMP%]{color:var(--good-color);font-weight:700}.approvedText[_ngcontent-%COMP%]:before{content:"\\f058";font-family:"Font Awesome 5 Pro";display:inline-block;width:14px;color:var(--good-color);font-size:10px}.declinedText[_ngcontent-%COMP%]{color:var(--alert-color);font-weight:700}.declinedText[_ngcontent-%COMP%]:before{content:"\\f057";font-family:"Font Awesome 5 Pro";display:inline-block;width:14px;color:var(--alert-color);font-size:10px}.completed[_ngcontent-%COMP%]{color:var(--good-color);padding-left:5px}.estimated[_ngcontent-%COMP%]{font-size:14px}.planner-card-priority[_ngcontent-%COMP%]{display:flex;flex-direction:column}'],changeDetection:0})}}return n})();var he=l(30948),Se=l(65588);let ft=(()=>{class n{static{this.\u0275fac=function(o){return new(o||n)}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-board-skeleton"]],decls:8,vars:6,consts:[[1,"skeleton-container"],[1,"skeleton-header"],["shape","text",1,"skeleton-title",3,"width","height"],[1,"skeleton-body"],["shape","text",1,"skeleton-subject",3,"height"],["shape","text",1,"skeleton-text",3,"height"]],template:function(o,i){1&o&&(e.j41(0,"kendo-card",0)(1,"kendo-card-header",1),e.nrm(2,"kendo-skeleton",2),e.k0s(),e.j41(3,"kendo-card-body",3),e.nrm(4,"kendo-skeleton",4)(5,"kendo-skeleton",5)(6,"kendo-skeleton",5)(7,"kendo-skeleton",5),e.k0s()()),2&o&&(e.R7$(2),e.Y8G("width",100)("height",20),e.R7$(2),e.Y8G("height",40),e.R7$(),e.Y8G("height",20),e.R7$(),e.Y8G("height",20),e.R7$(),e.Y8G("height",20))},dependencies:[he.ib,he.qH,he.lM,Se.NO],styles:[".skeleton-container[_ngcontent-%COMP%]{border-radius:var(--default-border-radius);border:solid 1px var(--main-border-color);display:flex;flex-direction:column;width:90%!important}.skeleton-header[_ngcontent-%COMP%]{border-top-left-radius:var(--default-border-radius);border-top-right-radius:var(--default-border-radius);border-bottom:solid 1px var(--main-border-color);display:flex;align-items:center;padding:0 10px}.skeleton-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:start;padding:10px}.skeleton-title[_ngcontent-%COMP%]{width:40%}.skeleton-subject[_ngcontent-%COMP%]{width:90%}.skeleton-text[_ngcontent-%COMP%]{width:60%}kendo-skeleton[_ngcontent-%COMP%]{background-color:var(--main-border-color)}"]})}}return n})();const Me=(n,a,t)=>[n,a,"symbol-narrow","1.0-0",t];function gt(n,a){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"currency"),e.k0s(),e.EFF(3,"\xa0 ")),2&n){const t=e.XpG(),o=e.XpG();e.R7$(),e.SpI("",e.iJd(2,1,e.sMw(7,Me,t.recurring,o.userService.UserProfile.partner.currencyCode,o.userService.UserProfile.partner.locale))," /m")}}function _t(n,a){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"currency"),e.k0s()),2&n){const t=e.XpG(),o=e.XpG();e.R7$(),e.JRh(e.iJd(2,1,e.sMw(7,Me,t.project,o.userService.UserProfile.partner.currencyCode,o.userService.UserProfile.partner.locale)))}}function Ct(n,a){1&n&&(e.j41(0,"span"),e.EFF(1,"*"),e.k0s())}function vt(n,a){if(1&n&&(e.j41(0,"div",3),e.DNE(1,gt,4,11)(2,_t,3,11,"span")(3,Ct,2,0,"span"),e.k0s()),2&n){const t=a;e.R7$(),e.vxM(0!=t.recurring?1:-1),e.R7$(),e.vxM(0!=t.project?2:-1),e.R7$(),e.vxM(t.isEstimated?3:-1)}}function bt(n,a){1&n&&e.nrm(0,"az-planner-board-skeleton")}function Tt(n,a){if(1&n&&(e.j41(0,"div")(1,"div",5),e.DNE(2,bt,1,0,"az-planner-board-skeleton",6),e.k0s()()),2&n){const t=e.XpG();e.R7$(2),e.Y8G("ngForOf",t.skeletonArray)}}function Pt(n,a){if(1&n&&e.nrm(0,"az-planner-board-card",10),2&n){const t=a.$implicit,o=e.XpG(3);e.Y8G("plannerCard",t)("onContextMenu",o.onContextMenu)("openPlannerItem",o.openPlannerItem)("canDrag",o.hasBoardEditPermission)}}function kt(n,a){if(1&n){const t=e.RV6();e.j41(0,"div",8),e.bIt("cdkDropListDropped",function(i){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onDrop(i))}),e.DNE(1,Pt,1,4,"az-planner-board-card",9),e.k0s()}if(2&n){const t=a.ngIf,o=e.XpG(2);e.Y8G("id",o.columnId)("cdkDropListData",t)("cdkDropListDisabled",!o.hasBoardEditPermission),e.R7$(),e.Y8G("ngForOf",t)}}function jt(n,a){if(1&n&&(e.DNE(0,kt,2,4,"div",7),e.nI1(1,"async")),2&n){const t=e.XpG();e.Y8G("ngIf",e.bMT(1,1,t.plannerCards$))}}let yt=(()=>{class n{constructor(t,o,i){this.globalErrorHandlerService=t,this.store=o,this.userService=i,this.hasBoardEditPermission=!1,this.plannerCards$=null,this.skeletonArray=Array.from({length:5},(r,c)=>c),this.columnTypeEnum=k.$,this.unsubscribe$=new X.B,this.dispatchFetchPlannerItems=()=>{this.store.dispatch(F.S.fetchPlannerItems({columnId:this.columnId,columnType:this.columnType}))},this.subscribeToPlannerCards=()=>{this.plannerCards$=(0,re.z)([this.store.pipe((0,S.Lt)((0,Y.AZ)(this.columnId))),this.store.pipe((0,S.Lt)(r=>(0,Y.jo)(r)))]).pipe((0,me.T)(([r,c])=>c?r:[]),(0,ze.Z)(null)),this.plannerCards$.pipe((0,x.Q)(this.unsubscribe$)).subscribe(r=>{r&&(this.productTotal$=this.getColumnTotals(r))})},this.getColumnTotals=r=>{const c=r.filter(p=>p.isShowPrice);return(0,q.of)({recurring:c.reduce((p,u)=>p+u.monthlyUnits*u.monthlyUnitPrice,0),project:c.reduce((p,u)=>p+u.projectUnits*u.projectUnitPrice,0),isEstimated:c.some(p=>p.isShowEstimated)})},this.getColumnTitle=()=>{switch(this.columnType){case k.$.Recommended:return this.customLabel?this.customLabel:"Recommended";case k.$.Planning:return"Planning";case k.$.InProgress:return"In Progress";case k.$.Completed:return this.customLabel?this.customLabel:"Completed";default:return""}},this.onDrop=r=>
1{if(!this.validateMoveByCardType(r.item.data))return;const c=r.previousContainer.data.filter(u=>u.productType!==d.ch.Quotes&&u.productType!==d.ch.Projects),p=r.container.data.filter(u=>u.productType!==d.ch.Quotes&&u.productType!==d.ch.Projects);r.previousContainer===r.container?this.moveWithinColumn(r.item.data,p,r.previousIndex,r.currentIndex):this.moveAcrossColumns(r.item.data,c,p,r.previousIndex,r.currentIndex,r.previousContainer.id)},this.validateMoveByCardType=r=>r.productType!==d.ch.Quotes&&r.productType!==d.ch.Projects||(this.globalErrorHandlerService.handleError(new Error("Cannot move a Quote or Project Card."),!0),!1),this.moveWithinColumn=(r,c,p,u)=>{const g=this.reorderSingleColumn(c,p,u,r);this.store.dispatch(F.S.moveItemWithinColumn({columnId:this.columnId,targetColumn:g,originalState:{targetColumn:c,previousColumn:null}}))},this.reorderSingleColumn=(r,c,p,u)=>{const g=[...r];return g.splice(c,1),g.splice(p,0,u),g.map((C,P)=>({...C,order:P}))},this.moveAcrossColumns=(r,c,p,u,g,f)=>{const C={previousColumn:c,targetColumn:p};r=this.updateItemByColumnType(r);const{updatedPreviousColumn:P,updatedTargetColumn:G}=this.reorderColumns(c,p,u,g,r);this.store.dispatch(F.S.moveItemAcrossColumns({targetColumnId:this.columnId,previousColumnId:f,previousColumn:P,targetColumn:G,originalState:C}))},this.updateItemByColumnType=r=>{switch(this.columnType){case k.$.Recommended:return this.moveToRecommended(r);case k.$.Planning:return this.moveToPlanning(r);case k.$.InProgress:return this.moveToInProgress(r);case k.$.Completed:return this.moveToComplete(r);default:return r}},this.reorderColumns=(r,c,p,u,g)=>{const f=[...r],C=[...c];return f.splice(p,1),C.splice(u,0,g),{updatedPreviousColumn:f,updatedTargetColumn:C.map((G,Pe)=>({...G,order:Pe}))}},this.moveToRecommended=r=>({...r,currentlyInstalled:!1,status:d.MY.Proposed,installDate:null}),this.moveToPlanning=r=>({...r,currentlyInstalled:!1,status:d.MY.In_Planning,installDate:null}),this.moveToInProgress=r=>({...r,currentlyInstalled:!1,status:d.MY.In_Progress,installDate:null}),this.moveToComplete=r=>({...r,currentlyInstalled:!0,status:d.MY.Completed,installDate:b.c9.now().toJSDate()})}ngOnInit(){this.setLoadingObservable(),this.dispatchFetchPlannerItems(),this.subscribeToPlannerCards()}ngOnDestroy(){this.unsubscribe$.next(),this.unsubscribe$.complete()}setLoadingObservable(){this.isLoading$=this.store.pipe((0,S.Lt)((0,Y.IM)(this.columnId)))}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(ae.r),e.rXU(S.il),e.rXU(R.DL))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-board-column"]],inputs:{columnType:"columnType",columnId:"columnId",onContextMenu:"onContextMenu",openPlannerItem:"openPlannerItem",customLabel:"customLabel",plannerSettings:"plannerSettings",hasBoardEditPermission:"hasBoardEditPermission"},decls:9,vars:9,consts:[["content",""],[1,"d-flex","flex-column","h-100","overflow-hidden","p-0","border-right"],[1,"column-title","p-3",3,"title"],[1,"totals-data"],[4,"ngIf","ngIfElse"],[1,"h-100","overflow-auto","px-3","card-container"],[4,"ngFor","ngForOf"],["cdkDropList","","class","h-100 overflow-auto px-3 card-container",3,"id","cdkDropListData","cdkDropListDisabled","cdkDropListDropped",4,"ngIf"],["cdkDropList","",1,"h-100","overflow-auto","px-3","card-container",3,"cdkDropListDropped","id","cdkDropListData","cdkDropListDisabled"],[3,"plannerCard","onContextMenu","openPlannerItem","canDrag",4,"ngFor","ngForOf"],[3,"plannerCard","onContextMenu","openPlannerItem","canDrag"]],template:function(o,i){if(1&o&&(e.j41(0,"div",1)(1,"div",2),e.EFF(2),e.DNE(3,vt,4,3,"div",3),e.nI1(4,"async"),e.k0s(),e.DNE(5,Tt,3,1,"div",4),e.nI1(6,"async"),e.DNE(7,jt,2,3,"ng-template",null,0,e.C5r),e.k0s()),2&o){let r;const c=e.sdS(8);e.R7$(),e.FS9("title",i.getColumnTitle()),e.R7$(),e.SpI(" ",i.getColumnTitle()," "),e.R7$(),e.vxM((r=(i.columnType===i.columnTypeEnum.Planning||i.columnType===i.columnTypeEnum.InProgress)&&e.bMT(4,5,i.productTotal$))?3:-1,r),e.R7$(2),e.Y8G("ngIf",e.bMT(6,7,i.isLoading$))("ngIfElse",c)}},dependencies:[T.Sq,T.bT,se.O7,ht,ft,T.Jj,T.oe],styles:[".border-right[_ngcontent-%COMP%]{border-right:solid 1px var(--main-border-color)}.column-title[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;font-size:15px;font-weight:700}.card-container[_ngcontent-%COMP%]{display:flex;gap:1rem;flex-direction:column;scrollbar-width:none}.totals-data[_ngcontent-%COMP%]{text-align:right;font-size:12px;font-weight:400}"]})}}return n})();var Ee=l(93952);let xt=(()=>{class n{static{this.\u0275fac=function(o){return new(o||n)}}static{this.\u0275mod=e.$C({type:n})}static{this.\u0275inj=e.G2t({imports:[L.sb,_.G,y._]})}}return n})();e.wjB(k.i,[T.bT,Ee.V,ye,se.RK,yt],[T.Jj]);var St=l(10728),M=l(51188),K=l(70877),Z=l(91575),I=l(79547),B=l(80821),Mt=l(20765),U=l(90979),H=l(71581),fe=l(65752),Et=l(22844),ge=l(87136),Ft=l(72585),h=l(39408),le=l(8996),It=l(80377),ce=l(20100),ee=l(97812),Dt=l(1134),Q=l(96268),Fe=l(44155),_e=l(38484),j=l(89417),wt=l(44602),Ie=l(46196),te=l(31050),Rt=l(29036),Ot=l(12772),Bt=l(94676);const $t=["templateModal"];function Nt(n,a){1&n&&(e.j41(0,"div"),e.EFF(1," No Results Found "),e.k0s())}function Gt(n,a){if(1&n){const t=e.RV6();e.j41(0,"div")(1,"div",10),e.bIt("click",function(){const i=e.eBV(t).$implicit,r=e.XpG();return e.Njj(r.selectTemplate(i))}),e.EFF(2),e.k0s()()}if(2&n){const t=a.$implicit;e.R7$(2),e.SpI(" ",t.name," ")}}let Lt=(()=>{class n{constructor(t){this.templateService=t,this.templateSelectEvent=ne
1w e.bkB,this.searchModel={text:"",isDebounce:!0,isEnter:!0},this.searchResults=[]}searchForTemplate(){this.templateService.search(this.searchModel.text).subscribe(t=>this.searchResults=t)}selectTemplate(t){this.templateSelectEvent.emit(t),this.closeTemplateModal()}showTemplateModal(){return this.templateModal&&this.templateModal.show(),!1}closeTemplateModal(){this.templateModal&&this.templateModal.hide()}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(_e.k))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["template-selection-modal"]],viewQuery:function(o,i){if(1&o&&e.GBs($t,5),2&o){let r;e.mGM(r=e.lsd())&&(i.templateModal=r.first)}},outputs:{templateSelectEvent:"templateSelectEvent"},decls:17,vars:4,consts:[["templateModal",""],[1,"app-modal-header"],[1,"app-modal-body"],[2,"font-size","14px","color","gray","margin-bottom","2px"],[3,"onSubmit","model","label"],[2,"height","200px","width","100%","margin-top","10px","overflow-y","scroll"],[4,"ngIf"],[4,"ngFor","ngForOf"],[1,"app-modal-footer"],["type","button",1,"btn","btn-secondary",2,"margin-left","10px",3,"click"],["notranslate","",1,"searchResult",3,"click"]],template:function(o,i){if(1&o){const r=e.RV6();e.j41(0,"app-modal",null,0)(2,"div",1),e.EFF(3,"Lookup"),e.k0s(),e.j41(4,"div",2)(5,"div",3),e.EFF(6," Leave blank or enter text for search. Then, press Enter. "),e.k0s(),e.j41(7,"searchBox",4),e.bIt("onSubmit",function(){return e.eBV(r),e.Njj(i.searchForTemplate())}),e.k0s(),e.j41(8,"div",5)(9,"div")(10,"strong"),e.EFF(11,"Search Results"),e.k0s()(),e.DNE(12,Nt,2,0,"div",6)(13,Gt,3,1,"div",7),e.k0s()(),e.j41(14,"div",8)(15,"button",9),e.bIt("click",function(){return e.eBV(r),e.Njj(i.closeTemplateModal())}),e.EFF(16,"Cancel"),e.k0s()()()}2&o&&(e.R7$(7),e.Y8G("model",i.searchModel)("label","Search..."),e.R7$(5),e.Y8G("ngIf",0==i.searchResults.length),e.R7$(),e.Y8G("ngForOf",i.searchResults))},dependencies:[T.Sq,T.bT,Ot.z,Bt.T],encapsulation:2})}}return n})();var Xt=l(97710);const Ut=["templateSelectionModal"];function At(n,a){if(1&n&&(e.j41(0,"div",27),e.EFF(1),e.k0s()),2&n){const t=a.$implicit;e.R7$(),e.SpI(" ",t," ")}}function Vt(n,a){if(1&n&&(e.j41(0,"div"),e.DNE(1,At,2,1,"div",26),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.Y8G("ngForOf",t.errors)}}function Yt(n,a){1&n&&(e.j41(0,"small",28),e.EFF(1,"Subject is required"),e.k0s())}function zt(n,a){1&n&&(e.j41(0,"small",28),e.EFF(1,"Notes are required"),e.k0s())}function Ht(n,a){if(1&n&&(e.j41(0,"div")(1,"div",29),e.EFF(2," Attachments "),e.k0s(),e.nrm(3,"upload-editor",30),e.k0s()),2&n){const t=e.XpG(2);e.R7$(3),e.Y8G("showQueue",!0)("showUpload",!1)("uploader",t.uploader)("removedAttachments",t.model.removedFiles)("attachments",t.model.files)}}function Qt(n,a){if(1&n){const t=e.RV6();e.j41(0,"form",6,0),e.bIt("ngSubmit",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.submitForm())}),e.DNE(2,Vt,2,1,"div",7),e.j41(3,"div")(4,"div",8)(5,"label",9),e.EFF(6,"Status"),e.k0s(),e.j41(7,"select",10,1),e.mxI("ngModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.model.status,i)||(r.model.status=i),e.Njj(i)}),e.j41(9,"option",11),e.EFF(10,"Planned"),e.k0s(),e.j41(11,"option",11),e.EFF(12,"Completed"),e.k0s()(),e.j41(13,"small",12),e.EFF(14,"Select meeting status."),e.k0s()(),e.j41(15,"div",8)(16,"label",13),e.EFF(17,"Subject"),e.k0s(),e.j41(18,"a",14),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.showTemplateModal())}),e.EFF(19,"Add a meeting template"),e.k0s(),e.j41(20,"input",15,2),e.mxI("ngModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.model.subject,i)||(r.model.subject=i),e.Njj(i)}),e.k0s(),e.DNE(22,Yt,2,0,"small",16),e.k0s(),e.j41(23,"div",8)(24,"label",17),e.EFF(25,"Meeting Date"),e.k0s(),e.nrm(26,"date2-editor",18),e.k0s(),e.j41(27,"div",8)(28,"label",19),e.EFF(29,"Organizer"),e.k0s(),e.j41(30,"input",20,3),e.mxI("ngModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.model.userName,i)||(r.model.userName=i),e.Njj(i)}),e.k0s(),e.j41(32,"small",12),e.EFF(33,"Person organizing this meeting."),e.k0s()(),e.j41(34,"div",21)(35,"div",22),e.mxI("froalaModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.model.notes,i)||(r.model.notes=i),e.Njj(i)}
1),e.k0s(),e.DNE(36,zt,2,0,"small",16),e.j41(37,"small",12),e.EFF(38,"Edit your notes and add images using the image toolbar button."),e.k0s()()(),e.DNE(39,Ht,4,5,"div",7),e.j41(40,"blade-footer")(41,"button",23),e.EFF(42,"Submit"),e.k0s(),e.j41(43,"button",24),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.cancelForm())}),e.EFF(44," Cancel "),e.k0s()(),e.j41(45,"template-selection-modal",25,4),e.bIt("templateSelectEvent",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.applyTemplate(i))}),e.k0s()()}if(2&n){const t=e.sdS(1),o=e.sdS(21),i=e.XpG();e.R7$(2),e.Y8G("ngIf",i.errors.length>0),e.R7$(5),e.R50("ngModel",i.model.status),e.R7$(2),e.Y8G("value",0),e.R7$(2),e.Y8G("value",10),e.R7$(9),e.R50("ngModel",i.model.subject),e.R7$(2),e.Y8G("ngIf",o.touched&&(null==o.errors?null:o.errors.required)),e.R7$(4),e.Y8G("model",i.model)("required",!0)("field","meetingDate"),e.R7$(4),e.R50("ngModel",i.model.userName),e.R7$(5),e.Y8G("froalaEditor",i.froalaOptionsVideo),e.R50("froalaModel",i.model.notes),e.R7$(),e.Y8G("ngIf",i.froalaService.isTouched&&!i.model.notes),e.R7$(3),e.Y8G("ngIf",i.uploader),e.R7$(2),e.Y8G("disabled",!i.model.notes||t.invalid||!i.model.meetingDate||i._dataService.isBusy)}}let Jt=(()=>{class n{set meeting(t){this.model=t}constructor(t,o,i,r){this._dataService=t,this._user=o,this.froalaService=i,this.templateService=r,this.errors=[],this.uploader=null,this.onSubmit=new e.bkB,this.onCancel=new e.bkB,this.isNotesInputDirty=!1,this.searchModel={text:"",isDebounce:!0,isEnter:!0},this.searchResults=[],this.lastAppliedTemplate=null}ngOnInit(){this.froalaOptionsVideo=this.froalaService.froalaOptionsVideo,this.froalaOptionsVideo.events={"froalaEditor.contentChanged":(t,o)=>{this.isNotesInputDirty=!0}},this.model&&""===this.model.subject&&this.templateService.getDefaultTemplate(1).subscribe(o=>{this.model&&(this.lastAppliedTemplate=o,this.model.subject=o.subject,this.model.notes=o.html)})}submitForm(){this.onSubmit.emit()}cancelForm(){this.onCancel.emit()}showTemplateModal(){return this.templateSelectionModal&&this.templateSelectionModal.showTemplateModal(),!1}applyTemplate(t){this.model&&(this.model.subject=t.subject,this.model.notes=""===this.model.notes?t.html:!this.isNotesInputDirty&&this.lastAppliedTemplate?this.model.notes.replace(this.lastAppliedTemplate.html,t.html):`${this.model.notes}<br />${t.html}`,this.lastAppliedTemplate=t,this.isNotesInputDirty=!1)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(H.jK),e.rXU(ee.D),e.rXU(Fe.T),e.rXU(_e.k))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["meeting-editor"]],viewQuery:function(o,i){if(1&o&&e.GBs(Ut,5),2&o){let r;e.mGM(r=e.lsd())&&(i.templateSelectionModal=r.first)}},inputs:{meeting:"meeting",errors:"errors",uploader:"uploader"},outputs:{onSubmit:"onSubmit",onCancel:"onCancel"},features:[e.Jv_([Fe.T,_e.k])],decls:1,vars:1,consts:[["f","ngForm"],["status","ngModel"],["articleSubject","ngModel"],["author","ngModel"],["templateSelectionModal",""],["autocomplete","off",3,"ngSubmit",4,"ngIf"],["autocomplete","off",3,"ngSubmit"],[4,"ngIf"],[1,"mb-3"],["for","status",1,"labelRequired"],["required","","name","status","id","status",1,"form-select",3,"ngModelChange","ngModel"],[3,"value"],[1,"d-block","form-text","text-muted"],["for","articleSubject",1,"labelRequired"],["id","showTemplateLink","href","",3,"click"],["required","","name","articleSubject","id","articleSubject","type","text","placeholder","",1,"form-control",3,"ngModelChange","ngModel"],["class","fieldErrorMessage",4,"ngIf"],["for","meetingDate",1,"labelRequired"],[3,"model","required","field"],["for","author",1,"labelRequired"],["name","author","required","","id","author","type","text","placeholder","",1,"form-control",3,"ngModelChange","ngModel"],[1,"mb-3","froalaText"],["name","articleBody","required","","notranslate","",3,"froalaModelChange","froalaEditor","froalaModel"],["type","submit",1,"btn","btn-primary","me-2",3,"disabled"],["type","button",1,"btn","btn-secondary",3,"click"],[3,"templateSelectEvent"],["class","alert alert-danger","role","alert",4,"ngFor","ngForOf"],["role","alert",1,"alert","alert-danger"],[1,"fieldErrorMessage"],[1,"clearfix",2,"padding-bottom","10px"],[3,"showQueue","showUpload","uploader","removedAttachments","attachments"]],template:function(o,i){1&o&&e.DNE(0,Qt,47,15,"form",5),2&o&&e.Y8G("ngIf",i.model)},dependencies:[T.Sq,T.bT,j.qT,j.xH,j.y7,j.me,j.wz,j.BC,j.cb,j.YS,j.vS,j.cV,wt.Yn,Ie.C3,te.J,Rt.$,Lt,Xt.u],styles:["#showTemplateLink[_ngcontent-%COMP%]{padding-left:10px}"]})}static{this.\u0275prov=e.jDH({token:n,factory:n.\u0275fac})}}return n})();var de=l(89786),Wt=l(53612),De=l(1695),qt=l(32394),Kt=l(27452),ne=l(47220);const Zt=()=>({allowUnsort:!1,mode:"single"}),en=()=>[10,20,50,100],tn=n=>({pageSizes:n}),nn=()=>({mode:"single"});function on(n,a){1&n&&(e.j41(0,"div"),e.EFF(1," Searching... "),e.k0s())}function rn(n,a){1&n&&(e.j41(0,"div"),e.EFF(1," No records available. "),e.k0s())}function an(n,a){if(1&n&&e.DNE(0,on,2,0,"div")(1,rn,2,0,"div"),2&n){const t=e.XpG();e.vxM(t._dataService.isBusy?0:1)}}function sn(n,a){1&n&&e.nrm(0,"span",15)}function ln(n,a){if(1&n){const t=e.RV6();e.j41(0,"a",16),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.toggleFilter())}),e.nrm(1,"span",17),e.k0s()}}function cn(n,a){if(1&n&&(e.j41(0,"span",18),e.EFF(1),e.k0s()),2&n){const t=a.$implicit;e.R7$(),e.JRh(t.subject)}}function dn(n,a){1&n&&(e.j41(0,"span",19),e.EFF(1,"Subject"),e.k0s())}function pn(n,a){1&n&&(e.EFF(0),e.nI1(1,"localizedShortDateZ")),2&n&&e.SpI(" ",e.bMT(1,1,a.$implicit.meetingDate)," ")}function un(n,a){1&n&&(e.j41(0,"span",20),e.EFF(1,"Date"),e.k0s())}function mn(n,a){if(1&n&&(e.EFF(0),e.nI1(1,"enumValue")),2&n){const t=a.$implicit,o=e.XpG();e.SpI(" ",e.i5U(1,1,t.status,o.statusList)," ")}}function hn(n,a){1&n&&(e.j41(0,"span",21),e.EFF(1,"Status"),e.k0s())}function fn(n,a){if(1&n){const t=e.RV6();e.j41(0,"kendo-dropdownlist",22),e.bIt("valueChange",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.onDropDownChange(i,"status"))}),e.k0s()}if(2&n){const t=e.XpG();e.Y8G("data",t.meetingStatuses)("value",t.selectedDropDownItem)("valuePrimitive",!0)("textField","name")("valueField","value")}}function gn(n,a){if(1&n&&(e.j41(0,"span",23),e.EFF(1),e.k0s()),2&n){const t=a.$implicit;e.R7$(),e.JRh(t.userName)}}function _n(n,a){1&n&&(e.j41(0,"span",24),e.EFF(1,"Organizer"),e.k0s())}function Cn(n,a){if(1&n){const t=e.RV6();e.j41(0,"button",46),e.bIt("click",function(){const i=e.eBV(t).$implicit,r=e.XpG(3);return e.Njj(r.openAttachment(i))}),e.j41(1,"span",47),e.EFF(2,"Download "),e.j41(3,"var"),e.EFF(4),e.k0s()(),e.j41(5,"span",48),e.EFF(6),e.k0s()()}if(2&n){const t=a.$implicit;e.R7$(4),e.JRh(t.name),e.R7$(2),e.JRh(t.name)}}function vn(n,a){if(1&n&&(e.j41(0,"div",42)(1,"div",36),e.EFF(2," Attachments "),e.k0s(),e.j41(3,"div",44),e.Z7z(4,Cn,7,2,"button",45,e.fX1),e.k0s()()),2&n){const t=e.XpG(2);e.R7$(4),e.Dyx(t.displayMeeting.files)}}function bn(n,a){if(1&n){const t=e.RV6();e.j41(0,"blade-display",25),e.bIt("onEscape",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.closeMeeting())}),e.j41(1,"div",26)(2,"div",27),e.EFF(3," Meeting "),e.k0s(),e.j41(4,"div",28)(5,"span")(6,"rbac-button",29),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.deleteMeeting(i.displayMeeting))}),e.k0s(),e.j41(7,"rbac-button",30),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.openEntityEventsBlade())}),e.k0s(),e.j41(8,"rbac-button",2),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.editMeeting(i.displayMeeting))}),e.k0s()(),e.j41(9,"button",31),e.bIt("click",function(){e.eBV(t);const i=e.XpG();
1return e.Njj(i.cancelForm())}),e.nrm(10,"span",32),e.EFF(11,"Close"),e.k0s()()(),e.j41(12,"div",33)(13,"h3",34),e.EFF(14),e.k0s(),e.j41(15,"div",35)(16,"div",36),e.EFF(17," Details "),e.k0s(),e.j41(18,"div",37)(19,"div",38),e.EFF(20," Status "),e.k0s(),e.j41(21,"div",39),e.EFF(22),e.nI1(23,"enumValue"),e.k0s()(),e.j41(24,"div",37)(25,"div",38),e.EFF(26," Meeting Date "),e.k0s(),e.j41(27,"div",39),e.EFF(28),e.nI1(29,"localizedLongDateZ"),e.k0s()(),e.j41(30,"div",37)(31,"div",38),e.EFF(32," Organizer "),e.k0s(),e.j41(33,"div",40),e.EFF(34),e.k0s()(),e.j41(35,"div",36),e.EFF(36," Notes "),e.k0s(),e.nrm(37,"div",41),e.nI1(38,"SafeHtml"),e.DNE(39,vn,6,0,"div",42),e.k0s(),e.j41(40,"blade-footer")(41,"button",43),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.cancelForm())}),e.EFF(42,"Close"),e.k0s()()()()}if(2&n){const t=e.XpG();e.R7$(6),e.HbH("pageHeaderButtonImage pageHeaderDelete"),e.Y8G("title","Delete")("icon","fal fa-trash")("moduleType",t.moduleType)("permission","Delete"),e.R7$(),e.HbH("pageHeaderButton"),e.Y8G("title","Audit Trail")("icon","fal fa-book")("moduleType",t.moduleType)("feature","Partner_Security_AuditTrail")("permission","Full"),e.R7$(),e.HbH("pageHeaderButton"),e.Y8G("title","Edit")("label","Edit")("icon","fal fa-pencil")("moduleType",t.moduleType)("permission","Edit"),e.R7$(6),e.SpI(" ",t.displayMeeting.subject," "),e.R7$(8),e.SpI(" ",e.i5U(23,26,t.displayMeeting.status,t.statusList)," "),e.R7$(6),e.SpI(" ",e.bMT(29,29,t.displayMeeting.meetingDate)," "),e.R7$(6),e.SpI(" ",t.displayMeeting.userName," "),e.R7$(3),e.Y8G("innerHTML",e.bMT(38,31,t.displayMeeting.notes),e.npT),e.R7$(2),e.vxM(t.displayMeeting.files.length>0?39:-1)}}function Tn(n,a){if(1&n){const t=e.RV6();e.j41(0,"blade-display",14)(1,"div",26)(2,"div",27),e.EFF(3," Edit Meeting "),e.k0s(),e.j41(4,"div",28)(5,"button",31),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.cancelForm())}),e.nrm(6,"span",32),e.EFF(7,"Cancel"),e.k0s()()(),e.j41(8,"div",33)(9,"meeting-editor",49),e.bIt("onSubmit",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.submitForm())})("onCancel",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.cancelForm())}),e.k0s()()()}if(2&n){const t=e.XpG();e.R7$(9),e.Y8G("meeting",t.meetingModel)("errors",t.errors)("uploader",t.uploader)}}let we=(()=>{class n{constructor(t,o,i,r,c,p,u,g,f,C,P){this._blade=t,this._browserutils=o,this._confirmService=i,this._route=r,this._router=c,this._gridService=p,this._slimLoading=u,this._dataService=g,this._user=f,this.fileUploadService=C,this.auditTrailService=P,this.SWIPE_ACTION={LEFT:"swipeleft",RIGHT:"swiperight"},this.path="",this.statusList=Et.e,this.maxFileSize=20971520,this.moduleType="",this.meetingStatuses=[{value:-1,name:"All"},{value:0,name:"Planned"},{value:10,name:"Completed"}],this.meetingModel={id:0,companyId:0,companyName:"",notes:"",meetingDate:"",subject:"",userId:"",userName:"",files:[],status:0,removedFiles:[]},this.newMeetingModel={id:0,companyId:0,companyName:"",notes:"",meetingDate:"",subject:"",userId:"",userName:"",files:[],status:0,removedFiles:[]},this.displayMeeting={id:0,companyId:0,companyName:"",notes:"",meetingDate:"",subject:"",userId:"",userName:"",files:[],status:0,removedFiles:[]},this.errors=[],this.showForm=!1,this.showEdit=!1,this.relatedArticles=[],this.showPdf=!1,this.state={skip:0,take:this._user.UserProfile.user.rowsPerPage},this.sort=[{field:"meetingDate",dir:"desc"}],this.baseFilter=[{field:"text",operator:"contains",value:"",ignoreCase:!0}],this.baseComposite={logic:"and",filters:this.baseFilter},this.selectedDropDownItem=-1,this.filterFieldName="",this.isRowSelected=G=>!1,this.isFilter=!0,this._gridService.setBaseURL("/api/meetings"),this.gridData=p,this.moduleType=h.nR.ProjectsPlanning_Meetings,this.uploader=this.fileUploadService.instance({url:"/api/meetings/files",maxFileSize:this.maxFileSize},G=>{G.additionalParameter={meetingId:this.meetingModel.id}}),this._router.url.includes("/meetings")&&(this.path="/projects-planning/meetings"),this.fillData()}ngOnInit(){this.paramsSubscription=this._route.params.subscribe(t=>
1{if(t.id){const o=t.id;isNaN(o)||this.showMeeting(+o)}})}ngOnDestroy(){this.paramsSubscription&&this.paramsSubscription.unsubscribe()}fillData(){const t=this._gridService.convertFrom(this.state,this.sort,this.filter);this._gridService.query(t)}submitForm(){return this._slimLoading.start(),this._dataService.post(this.meetingModel,"/api/meetings").subscribe(t=>{this.meetingModel=t.data,this.fillData(),this.cancelForm(),this.uploader.uploadAll(),this._slimLoading.complete(),this._browserutils.openToast(this.meetingModel.id>0?"Meeting successfully updated.":"Meeting successfully created.","Done!",U.R.success),this.meetingModel=t.data},t=>{this.errors=this._dataService.processErrors(t)}),!1}showMeeting(t){this.showPdf=!1;const o=new H.Yj;return o.filters="id",o.conditions="eq",o.values=t.toString(),this._slimLoading.start(),this._dataService.get(o,"/api/meetings").subscribe(i=>{i.data.length>0&&(this.displayMeeting=i.data[0],this._slimLoading.complete(),this.showForm=!0,this._blade.showMe(),this.path.includes(t.toString())||history.replaceState(null,"",this.path+"/"+t.toString()))},i=>{this.errors=this._dataService.processErrors(i)}),!1}editMeeting(t){const o=new H.Yj;return o.filters="id",o.conditions="eq",o.values=t.id.toString(),this._slimLoading.start(),this._dataService.get(o,"/api/meetings").subscribe(i=>{i.data.length>0&&(this.meetingModel=i.data[0]),this._slimLoading.complete(),this.errors=[],this.uploader.clearQueue(),this.displayMeeting.id=0}),!1}deleteMeeting(t){return this._confirmService.activate('Are you sure you want to delete "'+t.subject+'"?').then(o=>{o==fe.x.OK&&this._dataService.delete(t.id,"/api/meetings").subscribe(i=>{this.displayMeeting.id=0,this.fillData(),this.closeMeeting(),this._browserutils.openToast("Meeting successfully deleted.","Done!",U.R.success)},i=>{this.errors=this._dataService.processErrors(i),this._browserutils.pushErrorToast(this.errors[0])})}),!1}cancelForm(){return this.closeMeeting()}closeMeeting(){return this.showForm=!1,this.displayMeeting.id=0,this._blade.closeMe(),history.replaceState(null,"",this.path),!1}addMeeting(){return this.meetingModel=JSON.parse(JSON.stringify(this.newMeetingModel)),this.showForm=!0,this.uploader.clearQueue(),this.errors=[],!1}closeMe(){this._blade.closeMe(),this.showForm=!1,this.displayMeeting.id=0}clickEdit(){return this.showEdit=!this.showEdit,this.showEdit?this._blade.showMe():this._blade.closeMe(),!1}dataStateChange(t){this._user.UserProfile.user.rowsPerPage!=t.take&&this._dataService.updateRowsPerpage(t.take),this._user.UserProfile.user.rowsPerPage=t.take,this.state.skip=t.sort!=this.state.sort?0:t.skip,this.state.filter=t.filter,this.state.take=t.take,this.state.sort=t.sort;const o=this._gridService.convertFrom(this.state,this.state.sort,this.state.filter);-1!=this.selectedDropDownItem&&(o.filters+="^"+this.filterFieldName,o.conditions+="^eq",o.values+="^"+this.selectedDropDownItem.toString()),this._gridService.query(o)}onDropDownChange(t,o){this.selectedDropDownItem=t,this.filterFieldName=o,this.dataStateChange({skip:0,take:this.state.take,filter:this.filter,group:[],sort:this.state.sort})}gridUserSelectionChange(t){this.showMeeting(t.selectedRows[0].dataItem.id)}toggleFilter(){return this.isFilter=!this.isFilter,!1}openAttachment(t){return this._slimLoading.start(),this._browserutils.busyCursor(),this._dataService.downloadFileNoAuth(t.viewUrl).subscribe(o=>{this._dataService.downloadContent(o,t.name),this._slimLoading.complete(),this._browserutils.normalCursor()},o=>{this._browserutils.normalCursor(),this._dataService.processErrors(o)}),!1}openEntityEventsBlade(){this.displayMeeting&&this.auditTrailService.displayEvents(Ft.F.ProductMeeting,this.displayMeeting.id)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(le.C),e.rXU(U.b),e.rXU(fe.G),e.rXU(M.nX),e.rXU(M.Ix),e.rXU(It.M),e.rXU(ce.KO),e.rXU(H.jK),e.rXU(ee.D),e.rXU(ge.P),e.rXU(Dt.L))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-company"]],features:[e.Jv_([ge.P])],decls:26,vars:32,consts:[[1,"d-flex","flex-column","h-100"],[3,"title","helpTopic"],[3,"click","title","label","icon","moduleType","permission"],[1,"row","h-100","overflow-auto"],[1,"h-100","overflow-hidden",3,"selectionChange","dataStateChange","data","reorderable","resizable","sortable","sort","filter","pageSize","skip","pageable","rowSelected","selectable","filterable"],["kendoGridNoRecordsTemplate",""],["media","(min-width: 1200px)",1,"gridGraphic",3,"width"],["kendoGridCellTemplate",""],["kendoGridHeaderTemplate",""],["field","subject","title","Subject"],["field","meetingDate","title","Date","media","md",3,"filterable"],["field","status","title","Status","media","lg"],["kendoGridFilterCellTemplate",""],["field","userName","title","Organizer","media","lg"],[1,"w-45-responsive"],[1,"fal","fa-handshake"],["t
1itle","Toggle search","href","",2,"font-size","10px",3,"click"],[1,"fa","fa-search"],["notranslate","",1,"fw-semibold"],["kendoTooltip","","tooltipClass","kendoHeaderToolTip","title","Subject"],["kendoTooltip","","tooltipClass","kendoHeaderToolTip","title","Meeting date"],["kendoTooltip","","tooltipClass","kendoHeaderToolTip","title","Status"],[3,"valueChange","data","value","valuePrimitive","textField","valueField"],["notranslate",""],["kendoTooltip","","tooltipClass","kendoHeaderToolTip","title","Organizer name"],[1,"w-45-responsive",3,"onEscape"],[1,"bladeHeader","clearfix"],[1,"bladeTitle"],[1,"bladeCommands"],[3,"click","title","icon","moduleType","permission"],[3,"click","title","icon","moduleType","feature","permission"],["title","Close",1,"pageHeaderButton",3,"click"],[1,"fal","fa-times"],[1,"bladeBody"],["notranslate","",1,"clearfix"],[1,"bladeSpecs"],[1,"title"],[1,"row"],[1,"col","col-4"],[1,"col","col-8"],["notranslate","",1,"col","col-8"],["notranslate","",1,"froalaText","fr-view",3,"innerHTML"],[2,"padding-top","30px"],[1,"btn","btn-secondary",3,"click"],[1,"clearfix"],["type","button",1,"downloadBox"],["type","button",1,"downloadBox",3,"click"],[1,"visually-hidden"],["notranslate","","aria-hidden","true"],[3,"onSubmit","onCancel","meeting","errors","uploader"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"page-header",1)(2,"span")(3,"rbac-button",2),e.bIt("click",function(){return i.addMeeting()}),e.k0s()()(),e.j41(4,"div",3)(5,"kendo-grid",4),e.nI1(6,"async"),e.bIt("selectionChange",function(c){return i.gridUserSelectionChange(c)})("dataStateChange",function(c){return i.dataStateChange(c)}),e.DNE(7,an,2,1,"ng-template",5),e.j41(8,"kendo-grid-column",6),e.DNE(9,sn,1,0,"ng-template",7)(10,ln,2,0,"ng-template",8),e.k0s(),e.j41(11,"kendo-grid-column",9),e.DNE(12,cn,2,1,"ng-template",7)(13,dn,2,0,"ng-template",8),e.k0s(),e.j41(14,"kendo-grid-column",10),e.DNE(15,pn,2,3,"ng-template",7)(16,un,2,0,"ng-template",8),e.k0s(),e.j41(17,"kendo-grid-column",11),e.DNE(18,mn,2,4,"ng-template",7)(19,hn,2,0,"ng-template",8)(20,fn,1,5,"ng-template",12),e.k0s(),e.j41(21,"kendo-grid-column",13),e.DNE(22,gn,2,1,"ng-template",7)(23,_n,2,0,"ng-template",8),e.k0s()()()(),e.DNE(24,bn,43,33,"blade-display",14)(25,Tn,10,3,"blade-display",14)),2&o&&(e.R7$(),e.Y8G("title",i._user.GetPortalString("Meetings","Meetings"))("helpTopic","planner"),e.R7$(2),e.HbH("pageHeaderButton"),e.Y8G("title","Add meeting")("label","Add")("icon","fal fa-plus")("moduleType",i.moduleType)("permission","Full"),e.R7$(2),e.Y8G("data",e.bMT(6,25,i.gridData))("reorderable",!0)("resizable",!0)("sortable",e.lJ4(27,Zt))("sort",i.state.sort)("filter",i.state.filter)("pageSize",i._user.UserProfile.user.rowsPerPage)("skip",i.state.skip)("pageable",e.eq3(29,tn,e.lJ4(28,en)))("rowSelected",i.isRowSelected)("selectable",e.lJ4(31,nn))("filterable",i.isFilter),e.R7$(3),e.Y8G("width",35),e.R7$(6),e.Y8G("filterable",!1),e.R7$(10),e.vxM(i.showForm&&i.displayMeeting.id>0?24:-1),e.R7$(),e.vxM(i.showForm&&0==i.displayMeeting.id?25:-1))},dependencies:[le.C,Q._ab,Q.Ioe,Q.i4w,Q.jqs,Q.TiO,Q.YCj,Jt,de.y,Wt.dg,De.S,te.J,qt.V9,Kt.j,T.Jj,xe.hq,O.Y_,O.eN,ne.$n]})}}return n})();var Pn=l(8544),Re=l(61453),kn=l(55971),jn=l(61405);const Oe=n=>(0,kn.d)(n,jn.O.Planner);var Ce=l(67376),yn=l(80924),oe=l(36185),pe=l(93512),Be=l(78030),D=l(75417),ie=l(9604),ue=l(81127),$e=l(22296),xn=l(21552),v=l(50841),J=l(75542),m=l(55209),A=l(82064),s=l(50617),Ne=l(23560),Ge=l(48256);function Sn(n,a){if(1&n){const t=e.RV6();e.j41(0,"button",12),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.deleteProduct())}),e.nrm(1,"span",13),e.k0s()}}function Mn(n,a){if(1&n){const t=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(t);const i=e.XpG();
1return e.Njj(i.restore())}),e.nrm(1,"span",15),e.EFF(2,"Restore "),e.k0s()}}function En(n,a){if(1&n){const t=e.RV6();e.j41(0,"button",16),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.downloadPdf())}),e.nrm(1,"span",17),e.EFF(2,"Download "),e.k0s()}}function Fn(n,a){if(1&n&&(e.j41(0,"div",19),e.nrm(1,"span",24),e.j41(2,"span",18),e.EFF(3),e.k0s()()),2&n){const t=e.XpG(2);e.R7$(),e.Y8G("ngClass",t.statusDotClass),e.R7$(2),e.JRh(t.statusLabel)}}function In(n,a){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"localizedShortDate"),e.k0s()),2&n){const t=e.XpG(3);e.R7$(),e.SpI(" on ",e.bMT(2,1,t.product.reviewedDate),"")}}function Dn(n,a){if(1&n&&(e.j41(0,"div",20),e.EFF(1),e.DNE(2,In,3,3,"span"),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.SpI(" ",t.reviewedByLabel,""),e.R7$(),e.vxM(t.product.reviewedDate?2:-1)}}function wn(n,a){if(1&n&&(e.j41(0,"div",9)(1,"h3",18),e.EFF(2),e.k0s(),e.DNE(3,Fn,4,2,"div",19)(4,Dn,3,2,"div",20),e.j41(5,"div",21)(6,"div",22),e.EFF(7," Description "),e.k0s()(),e.nrm(8,"div",23),e.nI1(9,"SafeHtml"),e.k0s()),2&n){const t=e.XpG();e.R7$(2),e.SpI(" ",t.product.subject," "),e.R7$(),e.vxM(t.statusLabel?3:-1),e.R7$(),e.vxM(t.reviewedByLabel?4:-1),e.R7$(4),e.Y8G("innerHTML",e.bMT(9,4,t.product.body),e.npT)}}let Rn=(()=>{class n{constructor(t,o,i,r,c,p,u,g){this.activeOffcanvas=t,this.plannerService=o,this.store=i,this.confirmService=r,this.toastrService=c,this.globalErrorHandlerService=p,this.slimLoadingService=u,this.userPermissionsService=g,this.canRestore=!1,this.restore=()=>{this.slimLoadingService.start(),this.plannerService.togglePlannerItem(this.productId).subscribe({next:()=>{this.slimLoadingService.complete(),this.toastrService.success("Planner Item restored successfully."),this.closeBlade(),this.plannerService.triggerRefresh()},error:()=>{this.slimLoadingService.complete(),this.globalErrorHandlerService.handleError(new Error("Failed to restore Planner Item."),!0)}})},this.deleteProduct=()=>{this.confirmService.activate(`Are you sure you want to delete "${this.product.subject}"?`).then(f=>{f&&(this.slimLoadingService.start(),this.store.dispatch(F.S.deletePlannerItem({productId:this.productId})))})},this.downloadPdf=()=>{this.plannerService.downloadPlannerItem(this.productId,this.product.subject)},this.closeBlade=()=>this.activeOffcanvas.close()}get statusLabel(){switch(this.product?.status){case d.MY.Draft:return"Draft";case d.MY.Proposed:return"Proposed";case d.MY.Client_Approved:return"Approved";case d.MY.In_Planning:return"Planning";case d.MY.In_Progress:return"In Progress";case d.MY.Completed:return"Completed";case d.MY.Client_Declined:return"Declined";case d.MY.Archive:return"Archived";default:return""}}get statusDotClass(){switch(this.product?.status){case d.MY.Draft:return"status-draft";case d.MY.Proposed:return"status-proposed";case d.MY.Client_Approved:return"status-approved";case d.MY.In_Planning:case d.MY.In_Progress:return"status-in-progress";case d.MY.Completed:return"status-completed";case d.MY.Client_Declined:case d.MY.Archive:return"status-declined";default:return""}}get reviewedByLabel(){return this.product?.reviewedBy?`Declined by ${this.product.reviewedBy}`:""}ngOnInit(){this.permissionSubscription=this.userPermissionsService.checkPermission$(h.aX.Delete,h.nR.Account_Planner).subscribe(t=>this.canRestore=t),this.plannerService.getPlannerItem(this.productId,!1).subscribe({next:t=>this.product=t,error:()=>this.globalErrorHandlerService.handleError(new Error("Error retrieving Product data."))}),this.errorSubscription=this.store.pipe((0,S.Lt)((0,Y.DP)())).subscribe(t=>{(t?.errors?.length||t?.message)&&(this.slimLoadingService.complete(),this.globalErrorHandlerService.handleError(new Error(t.message??"Failed to delete Planner Item."),!0),this.store.dispatch(F.S.clearApiActionError()))}),this.deleteSubscription=this.store.pipe((0,S.Lt)((0,Y.F4)())).subscribe(t=>{t&&(this.slimLoadingService.complete(),this.toastrService.success("Planner Item deleted successfully."),this.closeBlade(),this.plannerService.triggerRefresh())})}ngOnDestroy(){this.permissionSubscription?.unsubscribe(),this.errorSubscription?.unsubscribe(),this.deleteSubscription?.unsubscribe(),this.store.dispatch(F.S.clearApiActionError()),this.store.dispatch(F.S.clearDeleteSuccess())}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(D.DI),e.rXU(ie.C),e.rXU(S.il),e.rXU(fe.G),e.rXU(Ge.tw),e.rXU(ae.r),e.rXU(ce.KO),e.rXU(ue.N))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-archived-item"]],inputs:{productId:"productId"},decls:15,vars:4,consts:[[1,"d-flex","flex-column"],[1,"bladeHeaderFlex"],[1,"bladeTitleFlex"],[1,"bladeCommandsFlex"],["title","Delete",1,"pageHeaderButtonImage","pageHeaderDelete"],["title","Restore from archive",1,"pageHeaderButton"],["title","Download PDF",1,"pageHeaderButton"],["title","Close",1,"pageHeaderButton",3,"click"],[1,"fal","fa-times"],[1,"bladeBodyFlex"],[1,"bladeFooterFlex"],[1,"btn","btn-secondary",3,"click"],["title","Delete",1,"pageHeaderButtonImage","pageHeaderDelete",3,"click"],[1,"fal","fa-tras
1h"],["title","Restore from archive",1,"pageHeaderButton",3,"click"],[1,"fal","fa-box-open"],["title","Download PDF",1,"pageHeaderButton",3,"click"],[1,"fal","fa-file-pdf"],["notranslate",""],[1,"blade-status"],["notranslate","",1,"blade-reviewed-by"],[1,"bladeSpecs"],[1,"title"],["notranslate","",1,"froalaText","fr-view",3,"innerHTML"],[1,"status-dot",3,"ngClass"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"div",1)(2,"div",2),e.EFF(3," Archived Item "),e.k0s(),e.j41(4,"div",3),e.DNE(5,Sn,2,0,"button",4)(6,Mn,3,0,"button",5)(7,En,3,0,"button",6),e.j41(8,"button",7),e.bIt("click",function(){return i.closeBlade()}),e.nrm(9,"span",8),e.EFF(10,"Close "),e.k0s()()(),e.DNE(11,wn,10,6,"div",9),e.j41(12,"blade-footer",10)(13,"button",11),e.bIt("click",function(){return i.closeBlade()}),e.EFF(14," Close "),e.k0s()()()),2&o&&(e.R7$(5),e.vxM(null!=i.product&&i.product.canBeDeleted?5:-1),e.R7$(),e.vxM(i.canRestore?6:-1),e.R7$(),e.vxM(i.product?7:-1),e.R7$(4),e.vxM(i.product?11:-1))},dependencies:[T.YU,te.J,O.qY,ne.$n],styles:["[_nghost-%COMP%]     .froalaText.fr-view{background:transparent;color:var(--blade-text-color, inherit)}.blade-status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-size:13px;margin-bottom:12px;color:var(--blade-text-color, inherit)}.blade-reviewed-by[_ngcontent-%COMP%]{font-size:12px;color:var(--text-muted-accessible);margin-top:-6px;margin-bottom:12px}.status-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;display:inline-block;background-color:var(--text-muted-accessible)}.status-dot.status-draft[_ngcontent-%COMP%]{background-color:#868e96}.status-dot.status-proposed[_ngcontent-%COMP%]{background-color:#1c7ed6}.status-dot.status-approved[_ngcontent-%COMP%]{background-color:#2f9e44}.status-dot.status-in-progress[_ngcontent-%COMP%]{background-color:#f08c00}.status-dot.status-completed[_ngcontent-%COMP%]{background-color:#0ca678}.status-dot.status-declined[_ngcontent-%COMP%]{background-color:#e03131}"]})}}return n})();var On=l(99416),Bn=l(21942);const $n=["saveAsModal"],Nn=()=>[10,20,50,100],Gn=n=>({pageSizes:n});let Ln=(()=>{class n{constructor(t,o,i,r,c,p){this.userService=t,this.plannerService=o,this.globalErrorHandlerService=i,this.toastrService=r,this.slimLoading=c,this.offCanvasService=p,this.isActive=!0,this.controller="'api/products/account/active'",this.gridViewSelectionChange=new e.bkB,this.rowClick=new e.bkB,this.columns=[],this.contextMenuActions=[],this.optionCallback=u=>{const g=this.isActive?"Planner Item archived successfully.":"Planner Item restored successfully.";this.plannerService.togglePlannerItem(u.id).subscribe({next:()=>{this.toastrService.success(g),this.azDataGrid.rebind()},error:()=>{this.globalErrorHandlerService.handleError(new Error("Failed to update Planner Item."),!0)}})},this.closeBlade=()=>this.offcanvasRef?.close(),this.onSaveAsFactory=u=>()=>{this.slimLoading.start();const g={...u,id:0,subject:`${u.subject} (copy)`,currentlyInstalled:!1,order:0,productType:d.ch.None};this.closeBlade(),this.plannerService.postPlannerItem(g).subscribe({next:()=>{this.toastrService.success("Planner Item copied successfully."),this.azDataGrid.rebind()},error:()=>{this.globalErrorHandlerService.handleError(new Error("Failed to copy Planner Item."),!0)},complete:()=>{this.slimLoading.complete()}})},this.openSaveAsModal=u=>{if(this.onSaveAs=this.onSaveAsFactory(u),this.saveAsModal)return this.saveAsModal.activate(u,h.sO.Planner_Items),!1},this.openPlannerItem=(u,g=null)=>{if(!this.isActive)return this.offcanvasRef=this.offCanvasService.open(Rn,{position:"end",panelClass:"w-45-responsive offCanvasThemeStyles"}),void(this.offcanvasRef.componentInstance.productId=u);this.offcanvasRef=this.offCanvasService.open(Ne.l,{position:"end",panelClass:"w-45-responsive offCanvasThemeStyles"}),this.offcanvasRef.componentInstance.productId=u,this.offcanvasRef.componentInstance.columnId=g,this.offcanvasRef.componentInstance.openSaveAsModal=this.openSaveAsModal,this.offcanvasRef.componentInstance.moduleType=h.nR.Account_Planner},this.getStatusList=()=>Object.keys(d.MY).filter(u=>isNaN(Number(u))).filter(u=>"All"!==u&&"Draft"!==u).map(u=>({id:d.MY[u],name:u.replace(/_/g," ")}))}ngOnInit(){this.initializeColumns([]),this.loadData(),this.refreshSubscription=this.plannerService.refresh$.subscribe(()=>{this.azDataGrid.rebind()})}ngOnChanges(t){t.isActive&&t.isActive.currentValue&&this.loadData()}ngOnDestroy(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()}loadData(){this.plannerService.getColumnHeaders().subscribe({next:t=>this.customColumnLabels=t,error:t=>this.globalErrorHandlerService.handleError(t,!0)}),this.plannerService.getPlannerCategories().subscribe({next:t=>this.initializeColumns(t),error:t=>this.globalErrorHandlerService.handleError(t,!0)})}initializeColumns(t){this.columns=[new A.H({field:"icon",title:"",width:35,columnType:v.$.Icon,iconClass:"fal fa-map"}),new A.H({field:"subject",title:"Planner Item",columnType:v.$.Field,tooltip:"Planner item subject",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain,s.t.IsNull,s.t.IsNotNull,s.t.EndsWith,s.t.StartsWith],defaultOperator:s.t.Contains,sortable:!0}),new A.H({field:"id",title:"",width:40,columnType:v.$.Menu,iconClass:"fas fa-ellipsis-v vertical-menu",menuItems:this.getMenuItems()}),new A.H({field:"category",title:"Category",columnType:v.$.Field,filterType:m.R.Dropdown,filterData:t,filterValueField:"name",filterTextField:"name",sortable:!0}),new A.H({field:"installLabel",title:"Timeline",columnType:v.$.Template,template:o=>{const{installLabel:i}=o;return`<span class="${"completed"==i.toLowerCase()?"success":""}">${"Completed"===i?this.customColumnLabels?.plannerCompletedColumnLabel||"Completed":"Not Completed"===i?this.customColumnLabels?.plannerRecommendedColumnLabel||"Recommended":i}</span>`},sortable:!1}),new A.H({field:"statusLabel",title:"Status",columnType:v.$.Template,template:o=>`${o.statusLabel?o.statusLabel:"-"}`,filterType:m.R.Dropdown,filterData:this.getStatusList(),filterValueField:"id",filterTextField:"name",sortable:!0}),new A.H({field:"installDate",title:"Completion Date",columnType:v.$.Field,format:this.userService.GetLocaleMediumDateFormat(),sortable:!0})]}rebind(){this.azDataGrid&&this.azDataGrid.rebind()}onClick(t){this.rowClick.emit(t),this.openPlannerItem(t.id)}getMenuItems(){return[new On.D({text:this.isActive?"Move to Archive":"Restore",icon:this.isActive?"fal fa-box fa-fw":"fal fa-box-open fa-fw",visible:()=>this.hasArchivePermission,action:i=>this.optionCallback(i)})]}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(ee.D),e.rXU(ie.C),e.rXU(ae.r),e.rXU(Ge.tw),e.rXU(Bn.KO),e.rXU(D.RS))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-list-view"]],viewQuery:function(o,i){if(1&o&&(e.GBs($n,5),e.GBs(J.I,5)),2&o){let r;e.mGM(r=e.lsd())&&(i.saveAsModal=r.first),e.mGM(r=e.lsd())&&(i.azDataGrid=r.first)}},inputs:{state:"state",isRowSelected:"isRowSelected",hasArchivePermission:"hasArchivePermission",isActive:"isActive",_dataService:"_dataService",controller:"controller",dataStateChange:"dataStateChange"},outputs:{gridViewSelectionChange:"gridViewSelectionChange",rowClick:"rowClick"},features:[e.OA$],decls:3,vars:12,consts:[["saveAsModal",""],[3,"rowClick","columns","controller","selectable","scrollable","pageable","isFilterable"],[3,"localSave","saveAsCallback","closeBladeCallback"]],template:function(o,i){if(1&o){const r=e.RV6();e.j41(0,"az-data-grid",1),e.bIt("rowClick",function(p){return e.eBV(r),e.Njj(i.onClick(p))}),e.k0s(),e.nrm(1,"saveAsContent",2,0)}2&o&&(e.Y8G("columns",i.columns)("controller",i.controller)("selectable",!1)("scrollable",!0)("pageable",e.eq3(10,Gn,e.lJ4(9,Nn)))("isFilterable",!0),e.R7$(),e.Y8G("localSave",!0)("saveAsCallback",i.onSaveAs)("closeBladeCallback",i.closeBlade))}
1,dependencies:[Ee.V,J.I],styles:[".grid-wrapper[_ngcontent-%COMP%]{height:100%;overflow:auto}kendo-grid[_ngcontent-%COMP%]{height:100%}"]})}}return n})();const An=n=>new Date(n.getFullYear(),3*Math.floor(n.getMonth()/3)+3,0);function zn(n,a){if(0===n.length)return[];const i=function Yn(n,a,t){if(((n,a)=>12*(a.getFullYear()-n.getFullYear())+(a.getMonth()-n.getMonth())+1)(n,a)>=t)return null;const o=(n=>new Date(n.getFullYear(),3*Math.floor(n.getMonth()/3),1))(n),i=new Date(o.getFullYear(),o.getMonth()+t,0);return{start:o,end:An(new Date(Math.max(i.getTime(),a.getTime())))}}(new Date(Math.min(...n.map(r=>r.ganttStart.getTime()))),new Date(Math.max(...n.map(r=>r.ganttEnd.getTime()))),a);return i?[{ganttId:"range-spacer",subject:"",ganttStart:i.start,ganttEnd:i.end,ganttCompletion:0,ganttParentId:null,order:Number.MAX_SAFE_INTEGER,productType:d.ch.None,sourceId:0,isSynthetic:!0,isRangeSpacer:!0,color:null,status:null}]:[]}var E=l(23155),ve=l(41496),w=l(49620);const Qn=(n,a)=>a.id;function Jn(n,a){1&n&&(e.j41(0,"div",7),e.EFF(1,"Loading\u2026"),e.k0s())}function Wn(n,a){1&n&&(e.j41(0,"div",7),e.EFF(1,"Unable to load this project."),e.k0s())}function qn(n,a){if(1&n&&(e.j41(0,"span",21),e.nrm(1,"span",23),e.j41(2,"span",10),e.EFF(3),e.k0s()()),2&n){const t=e.XpG(2),o=e.XpG();e.R7$(),e.xc7("background-color",o.statusColor(t.status)),e.R7$(2),e.JRh(t.status)}}function Kn(n,a){if(1&n&&(e.j41(0,"span",22),e.EFF(1),e.nI1(2,"number"),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.SpI(" ",e.i5U(2,1,t.projectSchedule.percentageCompleted,"1.0-0"),"% complete ")}}function Zn(n,a){if(1&n&&(e.j41(0,"div",11),e.DNE(1,qn,4,3,"span",21)(2,Kn,3,4,"span",22),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.vxM(t.status?1:-1),e.R7$(),e.vxM(null!=(null==t.projectSchedule?null:t.projectSchedule.percentageCompleted)?2:-1)}}function eo(n,a){if(1&n&&(e.j41(0,"div",12),e.nrm(1,"div",24),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.xc7("width",t.projectSchedule.percentageCompleted,"%")}}function to(n,a){if(1&n&&(e.j41(0,"div",13)(1,"div",15),e.EFF(2,"Project description"),e.k0s(),e.nrm(3,"div",25),e.nI1(4,"SafeHtml"),e.k0s()),2&n){const t=e.XpG();e.R7$(3),e.Y8G("innerHTML",e.bMT(4,1,t.projectDescription),e.npT)}}function no(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"Status"),e.k0s(),e.j41(3,"div",27),e.nrm(4,"span",23),e.EFF(5),e.k0s()()),2&n){const t=e.XpG(),o=e.XpG();e.R7$(4),e.xc7("background-color",o.statusColor(t.status)),e.R7$(),e.SpI(" ",t.status," ")}}function oo(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"Site"),e.k0s(),e.j41(3,"div",27),e.EFF(4),e.k0s()()),2&n){const t=e.XpG();e.R7$(4),e.JRh(t.projectManager.site)}}function io(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"Project Manager"),e.k0s(),e.j41(3,"div",27),e.EFF(4),e.k0s()()),2&n){const t=e.XpG();e.R7$(4),e.JRh(t.projectManager.name)}}function ro(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"Type"),e.k0s(),e.j41(3,"div",27),e.EFF(4),e.k0s()()),2&n){const t=e.XpG();e.R7$(4),e.JRh(t.projectType)}}function ao(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"Start Date"),e.k0s(),e.j41(3,"div",28),e.EFF(4),e.nI1(5,"localizedShortDate"),e.k0s()()),2&n){const t=e.XpG();e.R7$(4),e.JRh(e.bMT(5,1,t.projectSchedule.startDate))}}function so(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"End Date"),e.k0s(),e.j41(3,"div",28),e.EFF(4),e.nI1(5,"localizedShortDate"),e.k0s()()),2&n){const t=e.XpG();e.R7$(4),e.JRh(e.bMT(5,1,t.projectSchedule.endDate))}}function lo(n,a){if(1&n&&(e.j41(0,"div",16)(1,"div",26),e.EFF(2,"Percentage Complete"),e.k0s(),e.j41(3,"div",28),e.EFF(4),e.nI1(5,"number"),e.k0s()()),2&n){const t=e.XpG();e.R7$(4),e.SpI("",e.i5U(5,1,t.projectSchedule.percentageCompleted,"1.0-0"),"%")}}function co(n,a){if(1&n&&(e.j41(0,"div",29),e.nrm(1,"span",23),e.j41(2,"span",30),e.EFF(3),e.k0s(),e.j41(4,"span",31),e.EFF(5),e.k0s(),e.j41(6,"span",32),e.EFF(7),e.k0s()()),2&n){const t=a.$implicit,o=e.XpG(3);e.R7$(),e.xc7("background-color",o.statusColor(t.status)),e.R7$(2),e.JRh(t.name),e.R7$(2),e.JRh(o.phaseDateRange(t)),e.R7$(2),e.SpI("",o.phaseCompletion(t),"%")}}function po(n,a){if(1&n&&(e.j41(0,"div",18),e.Z7z(1,co,8,5,"div",29,Qn),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.Dyx(t.expanded.phases)}}function uo(n,a){1&n&&(e.j41(0,"div",19),e.EFF(1,"No phases for this project."),e.k0s())}function mo(n,a){if(1&n){const t=e.RV6();e.j41(0,"h3",10),e.EFF(1),e.k0s(),e.DNE(2,Zn,3,2,"div",11)(3,eo,2,2,"div",12)(4,to,5,3,"div",13),e.j41(5,"div",14)(6,"div",15),e.EFF(7,"Details"),e.k0s(),e.DNE(8,no,6,3,"div",16)(9,oo,5,1,"div",16)(10,io,5,1,"div",16)(11,ro,5,1,"div",16)(12,ao,6,3,"div",16)(13,so,6,3,"div",16)(14,lo,6,4,"div",16),e.k0s(),e.j41(15,"div",13)(16,"div",15),e.EFF(17," Phases "),e.j41(18,"span",17),e.EFF(19,"(read-only \u2014 no ticket detail)"),e.k0s()(),e.DNE(20,po,3,0,"div",18)(21,uo,2,0,"div",19),e.k0s(),e.j41(22,"button",20),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.viewInProjects())}),e.EFF(23," View in Projects "),e.k0s()}if(2&n){const t=a,o=e.XpG();e.R7$(),e.JRh(t.projectName),e.R7$(),e.vxM(t.status||null!=(null==t.projectSchedule?null:t.projectSchedule.percentageCompleted)?2:-1),e.R7$(),e.vxM(null!=(null==t.projectSchedule?null:t.projectSchedule.percentageCompleted)?3:-1),e.R7$(),e.vxM(t.projectDescription?4:-1),e.R7$(4),e.vxM(t.status?8:-1),e.R7$(),e.vxM(null!=t.projectManager&&t.projectManager.site?9:-1),e.R7$(),e.vxM(null!=t.projectManager&&t.projectManager.name?10:-1),e.R7$(),e.vxM(t.projectType?11:-1),e.R7$(),e.vxM(null!=t.projectSchedule&&t.projectSchedule.startDate?12:-1),e.R7$(),e.vxM(null!=t.projectSchedule&&t.projectSchedule.endDate?13:-1),e.R7$(),e.vxM(null!=(null==t.projectSchedule?null:t.projectSchedule.percentageCompleted)?14:-1),e.R7$(6),e.vxM(null!=o.expanded.phases&&o.expanded.phases.length?20:21)}}let ho=(()=>{class n{constructor(t,o,i,r){this.activeOffcanvas=t,this.psaProjectsService=o,this.router=i,this.userService=r,this.loading=!0,this.error=!1,this.destroy$=new X.B}get psaProjectLabel(){const t=this.userService.UserProfile?.partner?.psaType??E.r_.None,o=E.FK[t];return t!==E.r_.None&&o?`${o} Project`:"PSA Project"}ngOnInit(){if(null==this.projectId)return this.loading=!1,void(this.error=!0);this.psaProjectsService.getProjectExpanded(this.projectId).pipe((0,x.Q)(this.destroy$)).subscribe({next:t=>{t?.phases&&(t.phases=[...t.phases].sort((o,i)=>o.sequence-i.sequence)),this.expanded=t,this.loading=!1},error:()=>{this.error=!0,this.loading=!1}})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}statusColor(t){return(0,ve.I3)(t)}phaseCompletion(t){const o=(this.expanded?.tickets??[]).filter(r=>r.phaseId===t.id);if(0===o.length)return Math.round(t.completionPct??0);const i=o.filter(r=>(0,ve.EH)(r.status)).length;return Math.round(i/o.length*100)}phaseDateRange(t){const o=c=>c?b.c9.fromJSDate(new Date(c)).toFormat("MMM d"):"",i=o(t.startDate),r=o(t.endDate);return i&&r?`${i} - ${r}`:i||r||"\u2014"}viewInProjects(){this.activeOffcanvas.close(),this.router.navigate(["/projects-planning/project-tickets"],{queryParams:{projectId:this.projectId}})}close(){this.activeOffcanvas.close()}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(D.DI),e.rXU(w.E),e.rXU(M.Ix),e.rXU(R.DL))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-psa-project-blade"]],inputs:{projectId:"projectId"},decls:15,vars:4,consts:[[1,"d-flex","flex-column"],[1,"bladeHeaderFlex"],[1,"bladeTitleFlex"],[1,"bladeCommandsFlex"],["title","Close",1,"pageHeaderButton",3,"click"],[1,"fal","fa-times"],[1,"bladeBodyFlex"],[1,"psa-state"],[1,"bladeFooterFlex"],[1,"btn","btn-secondary",3,"click"],["notranslate",""],[1,"psa-summary"],[1,"psa-progress"],[1,"psa-section"],[1,"bladeSpecs"],[1,"title"],[1,"row"],[1,"title-note"],[1,"psa-phases"],[1,"psa-empty-phases"],["type","button",1,"btn","btn-secondary","psa-view-projects",3,"click"],[1,"psa-status-pill"],[1,"psa-complete"],[1,"status-dot"],[1,"psa-progress-fill"],["notranslate","",1,"set-wrap",3,"innerHTML"],[1,"col","col-5"],["notranslate","",1,"col","col-7"],[1,"col","col-7"],[1,"psa-phase"],["notranslate","",1,"psa-phase-name"],[1,"psa-phase-dates"],[1,"psa-phase-pct"]],template:function(o,i){if(1&o&&(e.j41(0,"div",0)(1,"div",1)(2,"div",2),e.EFF(3),e.k0s(),e.j41(4,"div",3)(5,"button",4),e.bIt("click",function(){return i.close()}),e.nrm(6,"span",5),e.EFF(7,"Close "),e.k0s()()(),e.j41(8,"div",6),e.DNE(9,Jn,2,0,"div",7)(10,Wn,2,0,"div",7)(11,mo,24,12),e.k0s(),e.j41(12,"blade-footer",8)(13,"button",9),e.bIt("click",function(){return i.close()}),e.EFF(14,"Close"),e.k0s()()()),2&o){let r;e.R7$(3),e.SpI(" ",i.psaProjectLabel," "),e.R7$(6),e.vxM(i.loading?9:-1),e.R7$(),e.vxM(!i.loading&&i.error?10:-1),e.R7$(),e.vxM((r=!i.loading&&!i.error&&(null==i.expanded?null:i.exp
1anded.project))?11:-1,r)}},dependencies:[te.J,T.QX,O.qY,ne.$n],styles:["[_nghost-%COMP%]{display:block}.psa-summary[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin:8px 0 6px}.psa-status-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--kendo-color-border);font-size:13px}.psa-complete[_ngcontent-%COMP%]{font-size:13px;color:var(--kendo-color-subtle)}.psa-progress[_ngcontent-%COMP%]{height:6px;border-radius:3px;background:var(--kendo-color-base-subtle);overflow:hidden;margin-bottom:16px}.psa-progress-fill[_ngcontent-%COMP%]{height:100%;background:var(--kendo-color-primary)}.status-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.psa-section[_ngcontent-%COMP%]{margin-top:16px}.psa-section[_ngcontent-%COMP%]   .title[_ngcontent-%COMP%]{font-size:14px;font-weight:700;padding-bottom:8px}.psa-section[_ngcontent-%COMP%]   .title-note[_ngcontent-%COMP%]{font-weight:400;font-size:12px;color:var(--kendo-color-subtle)}.psa-phases[_ngcontent-%COMP%]{display:flex;flex-direction:column}.psa-phase[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--kendo-color-border);font-size:13px}.psa-phase[_ngcontent-%COMP%]:last-child{border-bottom:0}.psa-phase-name[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0}.psa-phase-dates[_ngcontent-%COMP%]{color:var(--kendo-color-subtle);white-space:nowrap}.psa-phase-pct[_ngcontent-%COMP%]{width:48px;text-align:right;font-weight:600}.psa-empty-phases[_ngcontent-%COMP%], .psa-state[_ngcontent-%COMP%]{color:var(--kendo-color-subtle);font-size:13px;padding:8px 0}.psa-view-projects[_ngcontent-%COMP%]{width:100%;margin-top:20px}"]})}}return n})();var fo=l(27468),be=l(99437),Le=l(97897),W=l(61155);const go=(n,a)=>a.status;function _o(n,a){if(1&n){const t=e.RV6();e.j41(0,"button",6),e.bIt("click",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.togglePsaProjects())}),e.EFF(1),e.k0s()}if(2&n){const t=e.XpG(2);e.AVh("active",t.showPsaProjects),e.BMQ("aria-pressed",t.showPsaProjects),e.R7$(),e.SpI(" ",t.psaProjectsLabel," ")}}function Co(n,a){if(1&n&&(e.j41(0,"span",10),e.nrm(1,"span"),e.EFF(2),e.k0s()),2&n){const t=a.$implicit,o=e.XpG(2);e.R7$(),e.ZvI("legend-swatch ",o.getStatusBarClass(t.status),""),e.R7$(),e.SpI(" ",t.label," ")}}function vo(n,a){if(1&n){const t=e.RV6();e.j41(0,"div",1)(1,"div",5)(2,"button",6),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.togglePlannerItems())}),e.EFF(3),e.k0s(),e.DNE(4,_o,2,4,"button",7),e.k0s(),e.j41(5,"div",8)(6,"div",9),e.Z7z(7,Co,3,4,"span",10,go),e.k0s()()()}if(2&n){const t=e.XpG();e.R7$(2),e.AVh("active",t.showPlannerItems),e.BMQ("aria-pressed",t.showPlannerItems),e.R7$(),e.SpI(" ",t.plannerItemsLabel," "),e.R7$(),e.vxM(t.projectsEnabled?4:-1),e.R7$(3),e.Dyx(t.legendEntries)}}function bo(n,a){1&n&&(e.j41(0,"div",2),e.nrm(1,"kendo-loader",11),e.k0s()),2&n&&(e.R7$(),e.Y8G("type","infinite-spinner")("size","large"))}function To(n,a){if(1&n&&(e.j41(0,"div",3),e.nrm(1,"i",12),e.j41(2,"p"),e.EFF(3),e.k0s()()),2&n){const t=e.XpG();e.R7$(3),e.JRh(t.emptyStateMessage)}}function Po(n,a){if(1&n&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&n){const t=a.$implicit,o=e.XpG(2);e.R7$(),e.JRh(o.barLabel(t))}}function ko(n,a){if(1&n){const t=e.RV6();e.j41(0,"kendo-gantt",13),e.bIt("taskClick",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.onTaskClick(i))})("cellClick",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.onCellClick(i))}),e.nrm(1,"kendo-gantt-column",14),e.DNE(2,Po,2,1,"ng-template",15),e.nrm(3,"kendo-gantt-timeline-year-view",16),e.k0s()}if(2&n){const t=e.XpG();e.Y8G("initiallyExpanded",!0)("kendoGanttFlatBinding",t.displayData)("taskModelFields",t.taskModelFields)("currentTimeMarker",!1)("columnsResizable",!0)("timelinePaneOptions",t.timelinePaneOptions)("taskClass",t.taskClass)("rowClass",t.rowClass),e.R7$(),e.Y8G("width",250)("expandable",!0),e.R7$(2),e.Y8G("slotWidth",t.yearSlotWidth)}}let jo=(()=>{class n{static{this.MIN_WINDOW_MONTHS=12}static{this.NAMES_PANE_WIDTH=270}constructor(t,o,i,r,c,p,u,g,f){this.plannerService=t,this.psaProjectsService=o,this.offcanvasService=i,this.el=r,this.zone=c,this.userService=p,this.store=u,this.userPermissionsService=g,this.settingsService=f,this.ganttData=[],this.displayData=[],this.quarters=[],this.isLoading=!0,this.showPlannerItems=!0,this.showPsaProjects=!0,this.plannerSettingsLoaded=!1,this.showProjectCards=!1,this.hasProjectsModulePermission=!1,this.partnerDisplaysProjects=!0,this.latestLoadRequestId=0,this.psaGroupId="psa-group",this.legendEntries=[{status:d.MY.Draft,label:"Draft"},{status:d.MY.Proposed,label:"Proposed"},{status:d.MY.Client_Approved,label:"Approved"},{status:d.MY.In_Progress,label:"In Progress"},{status:d.MY.Completed,label:"Completed"},{status:d.MY.Client_Declined,label:"Declined"}],this.taskModelFields={id:"ganttId",title:"subject",start:"ganttStart",end:"ganttEnd",completionRatio:"ganttCompletion",parentId:"ganttParentId",orderId:"order"},this.timelinePaneOptions={size:`calc(100% - ${n.NAMES_PANE_WIDTH}px)`}
1,this.yearSlotWidth=100,this.destroy$=new X.B,this.reanchorToToday=!0,this.taskClass=C=>C?C.isRangeSpacer?"range-spacer-task":C.isSynthetic?"synthetic-parent-task":C.productType===d.ch.Projects?"psa-task":this.getStatusBarClass(C.status):"",this.rowClass=({dataItem:C})=>C?.isRangeSpacer?"range-spacer-row":C?.isSynthetic?"gantt-group-row":""}get plannerItemsLabel(){return"Planner Items"}get psaProjectsLabel(){const t=this.userService.UserProfile?.partner?.psaType??E.r_.None,o=E.FK[t];return t!==E.r_.None&&o?`${o} Projects`:"Projects"}get psaSupportsProjects(){const t=this.userService.UserProfile?.partner?.psaType;return t===E.r_.ConnectWise||t===E.r_.Autotask||t===E.r_.Halo||t===E.r_.Kaseya_BMS}get projectsEnabled(){return this.psaSupportsProjects&&this.plannerSettingsLoaded&&this.partnerDisplaysProjects&&this.showProjectCards&&this.hasProjectsModulePermission}ngOnInit(){this.loadData(),this.psaSupportsProjects&&(this.store.dispatch(F.S.fetchPlannerBoardSettings()),(0,re.z)([this.store.pipe((0,S.Lt)((0,Y._9)())),this.userPermissionsService.checkPermission$(h.aX.Read,h.nR.Account_Projects),this.settingsService.getPlannerPartnerSettings().pipe((0,be.W)(()=>(0,q.of)({displayProjectsInPlanner:!0,displayQuotesInPlanner:!0})))]).pipe((0,x.Q)(this.destroy$)).subscribe(([t,o,i])=>{this.plannerSettingsLoaded=null!=t,this.showProjectCards=t?.showProjectCards??!1,this.hasProjectsModulePermission=o,this.partnerDisplaysProjects=i?.displayProjectsInPlanner??!0,this.loadData()})),this.plannerService.currentDate$.pipe((0,x.Q)(this.destroy$)).subscribe(()=>{this.loadData()}),this.plannerService.refresh$.pipe((0,x.Q)(this.destroy$)).subscribe(()=>{this.loadData()}),this.resizeObserver=new ResizeObserver(()=>{this.zone.run(()=>this.updateSlotWidth())}),this.resizeObserver.observe(this.el.nativeElement)}ngAfterViewInit(){this.updateSlotWidth()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.resizeObserver?.disconnect()}updateSlotWidth(){const t=this.el.nativeElement.clientWidth;if(!t||0===this.displayData.length)return;const o=this.displayData.flatMap(u=>[u.ganttStart.getTime(),u.ganttEnd.getTime()]),i=new Date(Math.min(...o)),r=new Date(Math.max(...o)),c=Math.max(1,12*(r.getFullYear()-i.getFullYear())+(r.getMonth()-i.getMonth())+1),p=t-n.NAMES_PANE_WIDTH-18;p<=0||(this.yearSlotWidth=Math.max(80,Math.floor(p/c)),this.reanchorToToday&&(this.reanchorToToday=!1,this.zone.runOutsideAngular(()=>setTimeout(()=>{this.scrollToToday(i,r),this.renderQuarterHeaderRow(i,r)}))))}scrollToToday(t,o){const i=this.el.nativeElement.querySelector(".k-gantt-timeline .k-grid-content"),r=this.el.nativeElement.querySelector(".k-gantt-timeline .k-gantt-columns");if(!i||!r)return;const c=r.getBoundingClientRect().width;if(c<=0)return;const p=new Date(t.getFullYear(),t.getMonth(),1).getTime(),u=new Date(o.getFullYear(),o.getMonth()+1,1).getTime();if(u<=p)return;const f=(Math.min(Math.max(Date.now(),p),u)-p)/(u-p)*c;i.scrollLeft=Math.max(0,f-.25*i.clientWidth)}renderQuarterHeaderRow(t,o){const i=this.el.nativeElement.querySelector(".k-gantt-timeline .k-grid-header-table > tbody");if(!i)return;i.querySelector(".planner-quarter-row")?.remove();const r=new Date(t.getFullYear(),t.getMonth()-1,1),c=new Date(o.getFullYear(),o.getMonth()+1,1),p=[];for(const f=new Date(r);f<=c;f.setMonth(f.getMonth()+1)){const C=Math.floor(f.getMonth()/3)+1,P=p[p.length-1];P&&P.quarter===C?P.span++:p.push({quarter:C,span:1})}const u=i.rows[i.rows.length-1],g=p.reduce((f,C)=>f+C.span,0);if(u&&u.cells.length===g){const f=document.createElement("tr");f.className="k-table-row planner-quarter-row";for(const C of p){const P=document.createElement("td");P.className="k-header k-table-td planner-quarter-cell",P.colSpan=C.span,P.textContent=`Q${C.quarter}`,f.appendChild(P)}i.insertBefore(f,u)}this.syncTreelistHeaderHeight()}syncTreelistHeaderHeight(){const t=this.el.nativeElement.querySelector(".k-gantt-timeline .k-grid-header"),o=this.el.nativeElement.querySelector(".k-gantt-treelist .k-grid-header tr");!t||!o||(o.style.height=`${t.offsetHeight}px`)}loadData(){const t=++this.latestLoadRequestId,o=this.plannerService.getCurrentDate();this.quarters=this.plannerService.getQuarters(o),this.isLoading=!0;const i=this.projectsEnabled?this.psaProjectsService.getProjectPlannerItems().pipe((0,be.W)(()=>(0,q.of)([]))):(0,q.of)([]);(0,fo.p)([this.plannerService.getScheduledPlannerItems().pipe((0,be.W)(()=>(0,q.of)([]))),i]).pipe((0,x.Q)(this.destroy$)).subscribe({next:([r,c])=>{if(t!==this.latestLoadRequestId)return;const g=[...this.mapPlannerCardsToGanttItems(r),...this.mapProjectCardsToGanttItems(c)],f=this.buildSyntheticParents(g,r);this.ganttData=[...f,...g],this.applyTypeFilter(),this.isLoading=!1},error:()=>{t===this.latestLoadRequestId&&(this.isLoading=!1)}})}mapPlannerCardsToGanttItems(t){return t.filter(o=>o.productType===d.ch.QuarterOffset||o.productType===d.ch.ProjectDates).map(o=>{let i,r;if(o.productType===d.ch.QuarterOffset){const p=this.quarters[o.quarterOffset]||this.quarters[0];i=new Date(p.start),r=new Date(p.end)}else i=this.parseDate(o.estimatedStartDate)??new Date(this.quarters[0].start),r=this.parseDate(o.estimatedEndDate)??new Date(this.quarters[0].end);return{ganttId:`planner-${o.id}`,subject:o.subject,ganttStart:i,ganttEnd:r,ganttCompletion:(o.statusComplete||0)/100,ganttParentId:o.productCategory?`category-${o.productCategory.id}`:null,order:o.order,productType:o.productType,sourceId:o.id,isSynthetic:!1,color:o.productCategory?.color??null,status:o.status??null}})}mapProjectCardsToGanttItems(t){return t.map(o=>{const i=this.parseDate(o.estimatedStartDate)??new Date(this.quarters[0].start),r=this.parseDate(o.estimatedEndDate)??new Date(this.quarters[this.quarters.length-1].end);return{ganttId:`project-${o.id}`,subject:o.subject,ganttStart:i,ganttEnd:r,ganttCompletion:(o.statusComplete||0)/100,ganttParentId:this.psaGroupId,order:o.order,productType:d.ch.Projects,sourceId:o.id,isSynthetic:!1,color:o.productCategory?.color??null,status:null}})}buildSyntheticParents(t,o){const i=[],r=new Map;for(const p of o)p.productCategory&&(p.productType===d.ch.QuarterOffset||p.productType===d.ch.ProjectDates)&&r.set(p.productCategory.id,p.productCategory);for(const[p,u]of r){const g=t.filter(P=>P.ganttParentId===`category-${p}`);
1if(0===g.length)continue;const f=new Date(Math.min(...g.map(P=>P.ganttStart.getTime()))),C=new Date(Math.max(...g.map(P=>P.ganttEnd.getTime())));i.push({ganttId:`category-${p}`,subject:u.name,ganttStart:f,ganttEnd:C,ganttCompletion:0,ganttParentId:null,order:u.order,productType:d.ch.None,sourceId:p,isSynthetic:!0,color:u.color??null,status:null})}const c=t.filter(p=>p.productType===d.ch.Projects);if(c.length>0){const p=new Date(Math.min(...c.map(f=>f.ganttStart.getTime()))),u=new Date(Math.max(...c.map(f=>f.ganttEnd.getTime()))),g=i.reduce((f,C)=>Math.max(f,C.order),-1);i.push({ganttId:this.psaGroupId,subject:this.psaProjectsLabel,ganttStart:p,ganttEnd:u,ganttCompletion:0,ganttParentId:null,order:g+1,productType:d.ch.None,sourceId:0,isSynthetic:!0,color:null,status:null})}return i}isPsaRow(t){return t.productType===d.ch.Projects||t.ganttId===this.psaGroupId}applyTypeFilter(){this.displayData=function Hn(n,a,t,o,i){const r=n.filter(p=>o(p)?t:a),c=zn(r.filter(p=>!p.isSynthetic),i);return[...r,...c]}(this.ganttData,this.showPlannerItems,this.showPsaProjects,t=>this.isPsaRow(t),n.MIN_WINDOW_MONTHS),this.reanchorToToday=!0,this.updateSlotWidth()}togglePlannerItems(){this.showPlannerItems=!this.showPlannerItems,this.applyTypeFilter()}togglePsaProjects(){this.showPsaProjects=!this.showPsaProjects,this.applyTypeFilter()}get hasVisibleItems(){return this.displayData.some(t=>!t.isSynthetic)}get emptyStateMessage(){return this.showPlannerItems||this.showPsaProjects?`No ${this.plannerItemsLabel} or ${this.psaProjectsLabel} to show for this period.`:`Both filters are off. Turn on ${this.plannerItemsLabel} or ${this.psaProjectsLabel} to see the timeline.`}onTaskClick(t){this.handleItemActivated(t.dataItem)}onCellClick(t){this.handleItemActivated(t.dataItem)}handleItemActivated(t){!t||t.isSynthetic||(t.productType===d.ch.QuarterOffset||t.productType===d.ch.ProjectDates?this.openProductBlade(t.sourceId):t.productType===d.ch.Projects&&this.openPsaProjectBlade(t.sourceId))}getStatusBarClass(t){switch(t){case d.MY.Draft:return"gantt-bar-draft";case d.MY.Proposed:return"gantt-bar-proposed";case d.MY.Client_Approved:return"gantt-bar-approved";case d.MY.In_Planning:case d.MY.In_Progress:return"gantt-bar-in-progress";case d.MY.Completed:return"gantt-bar-completed";case d.MY.Client_Declined:return"gantt-bar-declined";default:return""}}barLabel(t){return`${Math.round(100*(t.ganttCompletion??0))}%`}parseDate(t){if(!t)return null;const o=new Date(t);return isNaN(o.getTime())||o.getFullYear()<1900?null:o}openProductBlade(t){this.offcanvasRef=this.offcanvasService.open(Ne.l,{position:"end",panelClass:"w-45-responsive offCanvasThemeStyles"}),this.offcanvasRef.componentInstance.productId=t,this.offcanvasRef.componentInstance.isFromPlanner=!0}openPsaProjectBlade(t){this.offcanvasRef=this.offcanvasService.open(ho,{position:"end",panelClass:"w-45-responsive offCanvasThemeStyles"}),this.offcanvasRef.componentInstance.projectId=t}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(ie.C),e.rXU(w.E),e.rXU(D.RS),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(R.DL),e.rXU(S.il),e.rXU(ue.N),e.rXU(Le.h))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-timeline"]],decls:5,vars:2,consts:[[1,"timeline-card","d-flex","flex-column","h-100"],[1,"timeline-header"],[1,"d-flex","justify-content-center","align-items-center","flex-grow-1"],[1,"timeline-empty","flex-grow-1"],["kendoGanttExpandable","","idField","ganttId","parentIdField","ganttParentId",1,"flex-grow-1",3,"initiallyExpanded","kendoGanttFlatBinding","taskModelFields","currentTimeMarker","columnsResizable","timelinePaneOptions","taskClass","rowClass"],[1,"timeline-filters"],["type","button",1,"planner-pill",3,"click"],["type","button",1,"planner-pill",3,"active"],[1,"timeline-header-end"],[1,"timeline-legend"],[1,"timeline-legend-item"],[3,"type","size"],[1,"fal","fa-stream"],["kendoGanttExpandable","","idField","ganttId","parentIdField","ganttParentId",1,"flex-grow-1",3,"taskClick","cellClick","initiallyExpanded","kendoGanttFlatBinding","taskModelFields","currentTimeMarker","columnsResizable","timelinePaneOptions","taskClass","rowClass"],["field","subject","title","Name",3,"width","expandable"],["kendoGanttTaskContentTemplate",""],[3,"slotWidth"],[1,"task-bar-label"]],template:function(o,i){1&o&&(e.j41(0,"div",0),e.DNE(1,vo,9,5,"div",1)(2,bo,2,2,"div",2)(3,To,4,1,"div",3)(4,ko,4,11,"kendo-gantt",4),e.k0s()),2&o&&(e.R7$(),e.vxM(i.isLoading?-1:1),e.R7$(),e.vxM(i.isLoading?2:i.hasVisibleItems?4:3))},dependencies:[W.eO,W.od,W._U,W.Au,W.yz,W.dU,Se.VU],styles:[".planner-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;font-size:13px;line-height:1.4;border:1px solid var(--kendo-color-border);border-radius:999px;background:transparent;color:var(--kendo-color-subtle);cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.planner-pill[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:13px}.planner-pill[_ngcontent-%COMP%]:hover{border-color:var(--kendo-color-primary)}.planner-pill[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--kendo-color-primary);outline-offset:1px}.planner-pill.active[_ngcontent-%COMP%]{background:var(--kendo-color-primary);border-color:var(--kendo-color-primary);color:var(--kendo-color-on-primary)}[_nghost-%COMP%]{display:block;height:100%}.timeline-card[_ngcontent-%COMP%]{border:1px solid var(--kendo-color-border);border-radius:8px;overflow:hidden}kendo-gantt.flex-grow-1[_ngcontent-%COMP%]{min-height:0}.timeline-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding:8px 12px;border-bottom:1px solid var(--kendo-color-border)}.timeline-filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.timeline-header-end[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.timeline-legend[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--main-alt-text-color)}.timeline-legend-item[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.legend-swatch[_ngcontent-%COMP%]{width:12px;height:12px;border-radius:3px;display:inline-block;background-color:var(--kendo-color-subtle)}.legend-swatch.gantt-bar-draft[_ngcontent-%COMP%]{background-color:#868e96}.legend-swatch.gantt-bar-proposed[_ngcontent-%COMP%]{background-color:#1c7ed6}.legend-swatch.gantt-bar-approved[_ngcontent-%COMP%]{background-color:#2f9e44}.legend-swatch.gantt-bar-in-progress[_ngcontent-%COMP%]{background-color:#f08c00}.legend-swatch.gantt-bar-completed[_ngcontent-%COMP%]{background-color:#0ca678}.legend-swatch.gantt-bar-declined[_ngcontent-%COMP%]{background-color:#e03131}.timeline-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;color:var(--main-alt-text-color)}.timeline-empty[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:32px;opacity:.5}.timeline-empty[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;max-width:360px;font-size:14px}  .k-gantt-treelist,   .k-gantt-treelist .k-table-td,   .k-gantt-treelist .k-header{background-color:var(--kendo-color-app-surface, transparent);color:var(--kendo-color-on-app-surface, inherit)}  .k-gantt-timeline,   .k-gantt-timeline .k-grid-header,   .k-gantt-timeline .k-grid-content,   .k-gantt-timeline .k-header{background-color:var(--kendo-color-app-surface, transparent);color:var(--kendo-color-on-app-surface, inherit)}  .k-gantt-treelist .k-table-th,   .k-gantt-treelist .k-header{text-transform:none!important}  .k-gantt-timeline .k-grid-header .k-header,   .k-gantt-header .k-header{text-align:center}  .k-gantt-timeline .k-grid-header .k-table-row:first-child .k-header,   .k-gantt-header .k-table-row:first-child .k-header{font-weight:700}  .planner-quarter-row .planner-quarter-cell{font-weight:400}  .k-gantt .k-table-alt-row,   .k-gantt .k-table-alt-row>td,   .k-gantt .k-table-alt-row>.k-table-td{background-color:transparent}  .k-gantt .k-table-row>td,   .k-gantt .k-table-row>.k-table-td{box-shadow:inset 0 -1px 0 var(--kendo-color-border)}  .gantt-group-row{font-weight:600}  .gantt-group-row td,   .gantt-group-row .k-table-td,   .k-gantt-tasks .k-table-row:has(.k-summary-wrap)>.k-table-td{background-color:#8080801f!important}  .k-gantt{border-width:0;border-radius:0;height:100%}  .k-gantt .k-gantt-toolbar,   .k-gantt .k-gantt-views-wrapper{display:none}  .synthetic-parent-task.k-task-summary{display:none}
1  .range-spacer-task{display:none!important}  .range-spacer-row{display:none!important}  .k-gantt-tasks .k-table-row:has(.range-spacer-task){display:none!important}  .k-gantt-tasks .k-task-wrap{height:100%;padding-block:0}  .task-bar-label{color:#fff;font-size:12px}  .k-task-single .k-task-complete{background-color:#ffffff73}  .gantt-bar-draft.k-task-single{background-color:#868e96;border-color:#868e96;color:#fff}  .gantt-bar-proposed.k-task-single{background-color:#1c7ed6;border-color:#1c7ed6;color:#fff}  .gantt-bar-approved.k-task-single{background-color:#2f9e44;border-color:#2f9e44;color:#fff}  .gantt-bar-in-progress.k-task-single{background-color:#f08c00;border-color:#f08c00;color:#fff}  .gantt-bar-completed.k-task-single{background-color:#0ca678;border-color:#0ca678;color:#fff}  .gantt-bar-declined.k-task-single{background-color:#e03131;border-color:#e03131;color:#fff}  .psa-task.k-task-single{background-color:#7048e8;border-color:#7048e8;color:#fff}  .k-task-actions{display:none}"]})}}return n})();var Xe=l(18359);function yo(n,a){1&n&&(e.j41(0,"small",4),e.EFF(1," Disabled by your partner in PSA settings. "),e.k0s())}function xo(n,a){if(1&n){const t=e.RV6();e.j41(0,"div",0)(1,"input",1),e.mxI("ngModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.showProjects,i)||(r.showProjects=i),e.Njj(i)}),e.bIt("ngModelChange",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onSettingsChange())}),e.k0s(),e.j41(2,"label",2),e.EFF(3,"Show Projects from PSA?"),e.k0s(),e.j41(4,"small",3),e.EFF(5," Show filters for Projects from your PSA on the Planner Board. "),e.k0s(),e.DNE(6,yo,2,0,"small",4),e.k0s()}if(2&n){const t=e.XpG();e.R7$(),e.R50("ngModel",t.showProjects),e.Y8G("disabled",!t.partnerDisplaysProjects),e.R7$(5),e.vxM(t.partnerDisplaysProjects?-1:6)}}function So(n,a){1&n&&(e.j41(0,"small",4),e.EFF(1," Disabled by your partner in PSA settings. "),e.k0s())}function Mo(n,a){if(1&n){const t=e.RV6();e.j41(0,"div",0)(1,"input",5),e.mxI("ngModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.showQuotes,i)||(r.showQuotes=i),e.Njj(i)}),e.bIt("ngModelChange",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onSettingsChange())}),e.k0s(),e.j41(2,"label",6),e.EFF(3,"Show Quotes from PSA?"),e.k0s(),e.j41(4,"small",3),e.EFF(5," Show filters for Quotes from your PSA on the Planner Board. "),e.k0s(),e.DNE(6,So,2,0,"small",4),e.k0s()}if(2&n){const t=e.XpG();e.R7$(),e.R50("ngModel",t.showQuotes),e.Y8G("disabled",!t.partnerDisplaysQuotes),e.R7$(5),e.vxM(t.partnerDisplaysQuotes?-1:6)}}let Eo=(()=>{class n{constructor(t,o,i,r,c){this.userService=t,this.plannerService=o,this.userPermissionsService=i,this.mixpanelService=r,this.settingsService=c,this.hasProjectsModulePermission=!1,this.hasQuotesModulePermission=!1,this.partnerDisplaysProjects=!0,this.partnerDisplaysQuotes=!0,this.settingsChange=new e.bkB,this.subscriptions=new Xe.yU}ngOnInit(){this.checkModulePermissions(),this.loadSettings(),this.loadPartnerSettings()}ngOnDestroy(){this.subscriptions.unsubscribe()}checkModulePermissions(){const t=this.userPermissionsService.checkPermission$(h.aX.Read,h.nR.Account_Projects).subscribe(i=>this.hasProjectsModulePermission=i),o=this.userPermissionsService.checkPermission$(h.aX.Read,h.nR.Account_Quotes).subscribe(i=>this.hasQuotesModulePermission=i);this.subscriptions.add(t),this.subscriptions.add(o)}loadSettings(){this.plannerService.getPlannerBoardCardsDisplaySettings(this.userService.UserProfile.company.companyId).subscribe(t=>{const o=Oe(t);this.showProjects=o.showProjectCards,this.showQuotes=o.showQuoteCards})}loadPartnerSettings(){const t=this.settingsService.getPlannerPartnerSettings().subscribe({next:o=>{this.partnerDisplaysProjects=o?.displayProjectsInPlanner??!0,this.partnerDisplaysQuotes=o?.displayQuotesInPlanner??!0},error:o=>console.warn("Failed to load partner planner settings",o)});this.subscriptions.add(t)}onSettingsChange(){const t={showProjectCards:this.showProjects,showQuoteCards:this.showQuotes};this.mixpanelService.trackEvent(pe.N.PlannerSettingsChange,t),this.settingsChange.emit(t)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(R.DL),e.rXU(ie.C),e.rXU(ue.N),e.rXU(pe.U),e.rXU(Le.h))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner-projects-quotes-settings"]],outputs:{settingsChange:"settingsChange"},decls:2,vars:2,consts:[[1,"form-check","mb-3"],["type","checkbox","id","showProjects","name","showProjects",1,"form-check-input",3,"ngModelChange","ngModel","disabled"],["for","showProjects",1,"form-check-label"],[1,"d-block","text-muted"],[1,"d-block","text-muted","fst-italic"],["type","checkbox","id","showQuotes","name","showQuotes",1,"form-check-input",3,"ngModelChange","ngModel","disabled"],["for","showQuotes",1,"form-check-label"]],template:function(o,i){1&o&&e.DNE(0,xo,7,3,"div",0)(1,Mo,7,3,"div",0),2&o&&(e.vxM(i.hasProjectsModulePermission?0:-1),e.R7$(),e.vxM(i.hasQuotesModulePermission?1:-1))},dependencies:[j.Zm,j.BC,j.vS,Ie.C3],encapsulation:2})}}return n})();const Fo=["plannerDiv"];function Io(n,a){if(1&n){const t=e.RV6();e.j41(0,"span")(1,"rbac-button",6),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.showAdminEdit())}),e.k0s(),e.j41(2,"rbac-button",6),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.addProduct())}),e.k0s()()}if(2&n){const t=e.XpG();e.R7$(),e.HbH("pageHeaderButton"),e.Y8G("title","Edit settings")("label","Settings")("icon","fal fa-cog")("moduleType",t.moduleType)("permission","Full"),e.R7$(),e.HbH("pageHeaderButton"),e.Y8G("title","Add product")("label","Add")("icon","fal fa-plus")("moduleType",t.moduleType)("permission","Full")}}function Do(n,a){1&n&&(e.j41(0,"div",2)(1,"div",7),e.nrm(2,"az-planner-timeline"),e.k0s()())}function wo(n,a){1&n&&(e.j41(0,"div",3),e.nrm(1,"az-planner-board"),e.k0s())}function Ro(n,a){if(1&n&&e.nrm(0,"az-planner-list-view",8),2&n){const t=e.XpG(2);e.Y8G("state",t.state)("isRowSelected",t.isRowSelected)("hasArchivePermission",t.hasArchivePermission)("_dataService",t._dataService)("isActive",!0)("controller","api/products/account/active")}}function Oo(n,a){if(1&n&&e.nrm(0,"az-planner-list-view",8),2&n){const t=e.XpG(2);e.Y8G("state",t.state)("isRowSelected",t.isRowSelected)("hasArchivePermission",t.hasArchivePermission)("_dataService",t._dataService)("isActive",!1)("controller","api/products/account/inactive")}}function Bo(n,a){if(1&n&&(e.j41(0,"div",4),e.DNE(1,Ro,1,6,"az-planner-list-view",8)(2,Oo,1,6,"az-planner-list-view",8),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.vxM(t.currentPage===t.PlannerView.List?1:2)}}function $o(n,a){if(1&n){const t=e.RV6();e.j41(0,"az-planner-projects-quotes-settings",20),e.bIt("settingsChange",function(i){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onSettingsChange(i))}),e.k0s()}}function No(n,a){if(1&n&&(e.j41(0,"div",21),e.EFF(1),e.k0s()),2&n){const t=a.$implicit;e.R7$(),e.SpI(" ",t," ")}}function Go(n,a){if(1&n&&(e.j41(0,"div",16),e.Z7z(1,No,2,1,"div",21,e.fX1),e.k0s()),2&n){const t=e.XpG(2);e.R7$(),e.Dyx(t.errors)}}function Lo(n,a){if(1&n){const t=e.RV6();e.j41(0,"blade-display",5)(1,"div",9)(2,"div",10),e.EFF(3,"Settings"),e.k0s(),e.j41(4,"div",11)(5,"button",12),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.closeAdminEdit())}),e.nrm(6,"span",13),e.EFF(7,"Close "),e.k0s()()(),e.j41(8,"div",14)(9,"div",15),e.DNE(10,$o,1,0,"az-planner-projects-quotes-settings"),e.j41(11,"h3"),e.EFF(12,"Content Subscriptions"),e.k0s(),e.DNE(13,Go,3,0,"div",16),e.nrm(14,"subscription-editor",17),e.k0s(),e.j41(15,"blade-footer")(16,"rbac-button",18),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.submitAdmin())}),e.k0s(),e.j41(17,"button",19),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.closeAdminEdit())}),e.EFF(18," Cancel "),e.k0s()()()()}if(2&n){const t=e.XpG();
1e.R7$(10),e.vxM(t.isPsaTypeSupported?10:-1),e.R7$(3),e.vxM(t.errors.length>0?13:-1),e.R7$(),e.Y8G("subscription",t.contentSubscriptions),e.R7$(2),e.HbH("btn btn-primary me-2"),e.Y8G("label","Submit")("disabled",t._dataService.isBusy)("moduleType",t.moduleType)("permission","Full")}}function Xo(n,a){if(1&n){const t=e.RV6();e.j41(0,"blade-display",22),e.bIt("onEscape",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.closeProduct())}),e.j41(1,"div",9)(2,"div",10),e.EFF(3,"Planner Category"),e.k0s()(),e.j41(4,"div",23)(5,"h3"),e.EFF(6),e.k0s(),e.nrm(7,"div",24),e.nI1(8,"SafeHtml"),e.j41(9,"blade-footer")(10,"button",25),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.closeProduct())}),e.EFF(11," Close "),e.k0s()()()()}if(2&n){const t=e.XpG();e.R7$(6),e.SpI(" ",t.category.name," "),e.R7$(),e.Y8G("innerHTML",e.bMT(8,2,t.category.body),e.npT)}}var $=function(n){return n[n.Timeline=0]="Timeline",n[n.Board=1]="Board",n[n.List=2]="List",n[n.Archive=3]="Archive",n}($||{});let Uo=(()=>{class n{get selectedLinkIndex(){return this.timelineEnabled?this.currentPage:Math.max(0,this.currentPage-1)}constructor(t,o,i,r,c,p,u,g,f,C,P,G,Pe){this._blade=t,this._browserutils=o,this._router=i,this._route=r,this._slimLoading=c,this._dataService=p,this._user=u,this.offCanvasService=g,this.store=f,this.plannerService=C,this.userPermissionsService=P,this.mixpanelService=G,this.featureFlagsService=Pe,this.destroy$=new X.B,this.isTimelineRoute=!1,this.categoryList=[],this.contentSubscriptions={type:yn.sO.Planner_Items,packages:[]},this.PlannerView=$,this.currentPage=$.Timeline,this.errors=[],this.hasArchivePermission=!1,this.maxFileSize=20971520,this.pageLinks=oe.eG,this.timelineEnabled=!1,this.path="",this.productList=[],this.searchModel={text:"",isDebounce:!0,isEnter:!1},this.searchTitle="",this.showAdmin=!1,this.showCategory=!1,this.showEdit=!1,this.showForm=!1,this.showPdf=!1,this.statusList=d.MY,this.tagList=[],this.productModel=(0,Re.W)(),this.moduleType=h.nR.Account_Planner,this.isPsaTypeSupported=!1,this.isRowSelected=()=>!1;const ke=this._route.snapshot.routeConfig?.path??"";ke.includes("timeline")?(this.isTimelineRoute=!0,this.path="/projects-planning/planner/timeline",this.currentPage=$.Timeline):ke.includes("list")?(this.path="/projects-planning/planner/list",this.currentPage=$.List):ke.includes("archive")?(this.path="/projects-planning/planner/archive",this.currentPage=$.Archive):(this.path="/projects-planning/planner/board",this.currentPage=$.Board)}ngOnInit(){(0,re.z)([this.featureFlagsService.isFeatureActive$(Be.g.PlannerTimeline),this.featureFlagsService.contextIdentified$]).pipe((0,x.Q)(this.destroy$)).subscribe(([t,o])=>{this.timelineEnabled=t,this.pageLinks=t?oe.eG:oe.eG.filter(i=>"/projects-planning/planner/timeline"!==i.url),o&&!t&&this.isTimelineRoute&&(this.currentPage=$.Board,this.path="/projects-planning/planner/board",this._router.navigate(["/projects-planning/planner/board"]))}),this.userPermissionsService.checkPermission$(h.aX.Delete,h.nR.Account_Planner).pipe((0,x.Q)(this.destroy$)).subscribe(t=>{this.hasArchivePermission=t}),this.psaType=this._user.UserProfile.partner.psaType,this.isPsaTypeSupported=this.isSupportedPsaType(this.psaType)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.paramsSubscription&&this.paramsSubscription.unsubscribe()}isSupportedPsaType(t){return t===h.r_.ConnectWise||t===h.r_.Autotask||t===h.r_.Halo||t===h.r_.Kaseya_BMS}closeProduct(){return this.showForm=!1,this.showEdit=!1,this.showCategory=!1,this.productModel=void 0,this.category=void 0,this._blade.closeMe(),history.replaceState(null,"",this.path),!1}addProduct(){this.mixpanelService.trackEvent(pe.N.PlannerOpenEditBlade);const t=this.offCanvasService.open(Pn.$,{position:"end",panelClass:"w-45-responsive offCanvasThemeStyles"});t.componentInstance.productModel=(0,Re.W)(),t.componentInstance.errors=[]}fetchInitialSettings(){this.plannerService.getPlannerBoardCardsDisplaySettings(this._user.UserProfile.company.companyId).subscribe(t=>{this.originalSettings=t})}showAdminEdit(){const t=new H.Yj;return t.filters="type",t.conditions="eq",t.values=this.contentSubscriptions.type.toString(),this._dataService.get(t,"/api/content/subscription").subscribe(o=>{this.contentSubscriptions=o.data,this.originalContentSubscriptions=(0,Ce.cloneDeep)(o.data),this.showAdmin=!0,this._blade.showMe()}),this.fetchInitialSettings(),!1}onSettingsChange(t){this.settings=t}submitAdmin(){return this._slimLoading.start(),this.hasContentSubscriptionsChanged()&&this._dataService.post(this.contentSubscriptions,"/api/content/subscription").subscribe({next:()=>{this._browserutils.openToast("Content Subscriptions Saved Successfully.","Done!",U.R.success)},error:t=>{this.errors=this._dataService.processErrors(t)},complete:()=>{this._slimLoading.complete()}}),this.hasSettingsChanged()&&this.plannerService.savePlannerBoardCardsDisplaySettings(Oe(this.settings),this._user.UserProfile.company.companyId).subscribe({next:()=>{this._browserutils.openToast("Planner Settings Saved Successfully.","Done!",U.R.success),this.store.dispatch(F.S.savePlannerSettings({settings:this.settings}))},error:t=>{this.errors=this._dataService.processErrors(t)},complete:()=>{this._slimLoading.complete()}}),this.closeAdminEdit(),!1}hasContentSubscriptionsChanged(){return!(0,Ce.isEqual)(this.contentSubscriptions,this.originalContentSubscriptions)}hasSettingsChanged(){return this.settings?.showProjectCards!==this.originalSettings?.showProjectCards||this.settings?.showQuoteCards!==this.originalSettings?.showQuoteCards}closeAdminEdit(){return this.showAdmin=!1,this._blade.closeMe(),!1}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(le.C),e.rXU(U.b),e.rXU(M.Ix),e.rXU(M.nX),e.rXU(ce.KO),e.rXU(H.jK),e.rXU(ee.D),e.rXU(D.RS),e.rXU(S.il),e.rXU(ie.C),e.rXU(ue.N),e.rXU(pe.U),e.rXU($e.fW))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-planner"]],viewQuery:function(o,i){if(1&o&&e.GBs(Fo,5),2&o){let r;e.mGM(r=e.lsd())&&(i.plannerDivs=r)}},features:[e.Jv_([ge.P])],decls:8,vars:12,consts:[[1,"d-flex","flex-column","h-100"],[3,"title","links","linkSelected","helpTopic"],[1,"d-flex","flex-column","h-100","overflow-hidden"],[1,"board-nav-container"],[1,"h-100","overflow-hidden"],["notranslate","",1,"w-45-responsive"],[3,"click","title","label","icon","moduleType","permission"],[1,"flex-grow-1","overflow-hidden"],[3,"state","isRowSelected","hasArchivePermission","_dataService","isActive","controller"],[1,"bladeHeader","clearfix"],[1,"bladeTitle"],[1,"bladeCommands"],["title","Close",1,"pageHeaderButton",3,"click"],[1,"fal","fa-times"],[1,"bladeBody"],[1,"mb-3"],[1,"top-20"],[3,"subscription"],[3,"click","label","disabled","moduleType","permission"],["type","button",1,"btn","btn-secondary",3,"click"],[3,"settingsChange"],["role","alert",1,"alert","alert-danger"],["notranslate","",1,"w-45-responsive",3,"onEscape"],[1,"bladeBody",2,"min-height","calc(100vh - 65px)"],[1,"froalaText","fr-view",3,"innerHTML"],[1,"btn","btn-secondary",3,"click"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"page-header",1),e.DNE(2,Io,3,14,"
1span"),e.k0s(),e.DNE(3,Do,3,0,"div",2)(4,wo,2,0,"div",3)(5,Bo,3,1,"div",4)(6,Lo,19,9,"blade-display",5)(7,Xo,12,4,"blade-display",5),e.k0s()),2&o&&(e.AVh("timeline-no-header-divider",i.currentPage===i.PlannerView.Timeline),e.R7$(),e.Y8G("title",i._user.GetPortalString("Planner","Planner"))("links",i.pageLinks)("linkSelected",i.selectedLinkIndex)("helpTopic","planner"),e.R7$(),e.vxM(i._user?2:-1),e.R7$(),e.vxM(i.currentPage===i.PlannerView.Timeline?3:-1),e.R7$(),e.vxM(i.currentPage===i.PlannerView.Board?4:-1),e.R7$(),e.vxM(i.currentPage===i.PlannerView.List||i.currentPage===i.PlannerView.Archive?5:-1),e.R7$(),e.vxM(i.showAdmin?6:-1),e.R7$(),e.vxM(i.showCategory&&i.category?7:-1))},dependencies:[le.C,de.y,xn.i,De.S,te.J,k.i,Ln,jo,Eo,ne.$n],styles:[".cardContainer[_ngcontent-%COMP%]{padding-bottom:50px}.cardContainer[_ngcontent-%COMP%]   .cardRow[_ngcontent-%COMP%]{margin-top:20px}.cardContainer[_ngcontent-%COMP%]   .categoryName[_ngcontent-%COMP%]{padding:0 5px}.cardContainer[_ngcontent-%COMP%]   .subject[_ngcontent-%COMP%]{color:var(--good-color);padding-left:5px}.board-nav-container[_ngcontent-%COMP%]{padding:1rem 0}.timeline-no-header-divider[_ngcontent-%COMP%]     .pageHeader{border-bottom:none}.topCardText[_ngcontent-%COMP%]{font-size:14px}.thumbnail[_ngcontent-%COMP%]{padding:10px;margin-bottom:20px;border:solid 1px var(--main-border-color)}.hightlightMe[_ngcontent-%COMP%]{background:#8080804d}.installed[_ngcontent-%COMP%]{color:var(--good-color);font-weight:700}.notinstalled[_ngcontent-%COMP%]{color:var(--alert-color)}"]})}}return n})();var Ao=l(68430);function Qo(n,a){1&n&&(e.j41(0,"div",2),e.nrm(1,"i",3),e.EFF(2," Only one date range filter can be active at a time. Start Date filter will be used; End Date filter will be ignored.\n"),e.k0s())}let Ue=(()=>{class n{constructor(t,o){this.userService=t,this.psaProjectService=o,this.rowClick=new e.bkB,this.isHalo=!1,this.showDateFilterHint=!1,this.onClick=i=>this.rowClick.emit(i),this.getDateLocale=i=>new O.qY(this.userService).transform(i),this.getDateTimeLocale=i=>new O.sT(this.userService).transform(i),this.getColumnDefinition=(i,r)=>{switch(i){case h.r_.Autotask:return((n,a)=>[{iconClass:"fal fa-clipboard-list",width:35,columnType:v.$.Icon},{field:"projectNumber",title:"ID",tooltip:"Project ID",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains],defaultOperator:s.t.Contains,sortable:!1},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains],defaultOperator:s.t.Contains,sortable:!1},{field:"status",title:"STATUS",tooltip:"Project Status",filterType:m.R.None,sortable:!1},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of more recent change",filterType:m.R.None,columnType:v.$.Template,template:t=>n(t.lastUpdated),sortable:!1},{field:"projectType",title:"PROJECT TYPE",tooltip:"Type of Project",filterType:m.R.None,sortable:!1},{field:"startDate",title:"START DATE",tooltip:"Date Project was started",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>a(t.startDate),sortable:!1},{field:"endDate",title:"END DATE",tooltip:"Date Project completed",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>a(t.endDate),sortable:!1},{field:"completionPercentage",title:"COMPLETION PERCENTAGE",tooltip:"Percent Project is complete",filterType:m.R.None,format:"{0:p}",sortable:!1}])(this.getDateTimeLocale,this.getDateLocale);case h.r_.Kaseya_BMS:return((n,a)=>[{iconClass:"fal fa-clipboard-list",width:35,columnType:v.$.Icon},{field:"projectNumber",title:"PROJECT NUMBER",tooltip:"Project Number",filterType:m.R.None,sortable:!0},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.None,sortable:!0},{field:"status",title:"STATUS",tooltip:"Project Status",filterType:m.R.Dropdown,filterData:a,filterTextField:"name",filterValueField:"value",filterOperators:[s.t.EqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"startDate",title:"START DATE",tooltip:"Date Project was started",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>n(t.startDate),sortable:!1},{field:"endDate",title:"END DATE",tooltip:"Date of Completion",filterType:m.R.None,columnType:v.$.Template,template:t=>n(t.endDate),sortable:!1}])(this.getDateLocale,r);case h.r_.Halo:return((n,a)=>[{iconClass:"fal fa-clipboard-list",width:35,columnType:v.$.Icon},{field:"id",title:"ID",tooltip:"Project ID",filterType:m.R.String,filterOperators:[s.t.Contains],defaultOperator:s.t.Contains,sortable:!0},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.String,filterOperators:[s.t.Contains],defaultOperator:s.t.Contains,sortable:!0},{field:"status",title:"STATUS",tooltip:"Project Status",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of more recent change",columnType:v.$.Template,template:t=>n(t.lastUpdated),filterType:m.R.None,sortable:!0},{field:"projectType",title:"PROJECT TYPE",tooltip:"Type of Project",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"startDate",title:"START DATE",tooltip:"Date Project was started",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>a(t.startDate),sortable:!0},{field:"endDate",title:"END DATE",tooltip:"Date Project completed",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>a(t.endDate),sortable:!0}])(this.getDateTimeLocale,this.getDateLocale);default:return((n,a)=>[{iconClass:"fal fa-clipboard-list",width:35,columnType:v.$.Icon},{field:"id",title:"ID",tooltip:"Project ID",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.GreaterThan,s.t.GreaterThanOrEqualTo,s.t.LessThan,s.t.LessThanOrEqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"status",title:"STATUS",tooltip:"Project Status",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of more recent change",columnType:v.$.Template,template:t=>n(t.lastUpdated),filterType:m.R.None,sortable:!0},{field:"projectType",title:"PROJECT TYPE",tooltip:"Type of Project",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"startDate",title:"START DATE",tooltip:"Date Project was started",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>a(t.startDate),sortable:!0},{field:"endDate",title:"END DATE",tooltip:"Date Project completed",filterType:m.R.DateRange,columnType:v.$.Template,template:t=>a(t.endDate),sortable:!0},{field:"completionPercentage",title:"COMPLETION PERCENTAGE",tooltip:"Percent Project is complete",format:"{0:n0}%",filterType:m.R.None,sortable:!0}])(this.getDateTimeLocale,this.getDateLocale)}},this.rebind=()=>{this.dataGrid&&this.dataGrid.gridBinding.rebind()}}ngOnInit(){this.isHalo=this.userService.UserProfile.partner.psaType===h.r_.Halo,this.initializeColumns()}initializeColumns(){this.userService.UserProfile.partner.psaType==h.r_.Kaseya_BMS?this.psaProjectService.getProjectStatuses().subscribe({next:t=>{if(t){const o=t.map(i=>({name:i.name,value:i.name}));this.columns=this.getColumnDefinition(this.userService.UserProfile.partner.psaType,o)}}}):this.columns=this.getColumnDefinition(this.userService.UserProfile.partner.psaType,[])}onFilterChange(t){if(!this.isHalo)return;const o=new Set;this.collectDateFields(t,o),this.showDateFilterHint=o.has("startDate")&&o.has("endDate")}collectDateFields(t,o){for(const i of t.filters)(0,Ao.HG)(i)?this.collectDateFields(i,o):("startDate"===i.field||"endDate"===i.field)&&o.add(i.field)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(R.DL),e.rXU(w.E))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-projects-grid"]],viewQuery:function(o,i){if(1&o&&e.GBs(J.I,5),2&o){let r;e.mGM(r=e.lsd())&&(i.dataGrid=r.first)}},outputs:{rowClick:"rowClick"},decls:2,vars:5,consts:[["class","alert alert-warning py-2 px-3 mb-2","role","alert",4,"ngIf"],[3,"rowClick","filterChange","controller","columns","iconClass","downloadName"],["role","alert",1,"alert","alert-warning","py-2","px-3","mb-2"],[1,"fal","fa-exclamation-triangle","me-1"]],template:function(o,i){1&o&&(e.DNE(0,Qo,3,0,"div",0),e.j41(1,"az-data-grid",1),e.bIt("rowClick",function(c){return i.onClick(c)})("filterChange",function(c){return i.onFilterChange(c)}),e.k0s()),2&o&&(e.Y8G("ngIf",i.showDateFilterHint),e.R7$(),e.Y8G("controller","api/psa/projects")("columns",i.columns)("iconClass","fal fa-box-alt")("downloadName","ProjectsOverview"))},dependencies:[T.bT,J.I],encapsulation:2})}}return n})();var Jo=l(63442),Wo=l(24200),Te=l(4320),Ae=l(28644),qo=l(41124),Ko=l(89165
1);const Zo=()=>({name:"Discussion",tooltip:"View or comment"}),ei=()=>({name:"Details",tooltip:"View task details"});function ti(n,a){if(1&n&&e.EFF(0),2&n){const t=e.XpG();e.SpI(" Project Task #: ",t.taskId," ")}}function ni(n,a){1&n&&e.EFF(0," Project Task ")}function oi(n,a){if(1&n&&e.nrm(0,"az-project-ticket-discussion",18),2&n){const t=e.XpG(2);e.Y8G("ticketId",t.taskId)("discussion$",t.discussion$)("saveNewNote",t.saveNewNote)("saveNewNoteCallback",t.getDiscussion)("fileUploadEndpoint",t.fileUploadEndpoint)}}function ii(n,a){if(1&n&&e.nrm(0,"az-ticket-details",19),2&n){const t=e.XpG(2);e.Y8G("ticket",t.task)("isProjectsTicket",!0)}}function ri(n,a){if(1&n){const t=e.RV6();e.j41(0,"div",11)(1,"h3",12),e.EFF(2),e.k0s(),e.j41(3,"button",13),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.routeToProject(i.task.projectId))}),e.EFF(4),e.k0s(),e.j41(5,"tab-menu",14),e.bIt("onChange",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.changeTab(i))}),e.nrm(6,"tab-item",15)(7,"tab-item",15),e.k0s(),e.DNE(8,oi,1,5,"az-project-ticket-discussion",16)(9,ii,1,2,"az-ticket-details",17),e.k0s()}if(2&n){let t;const o=e.XpG();e.R7$(2),e.JRh(o.task.summary),e.R7$(2),e.Lme(" #",null!==(t=o.task.projectNumber)&&void 0!==t?t:o.task.projectId,"",o.task.projectName?" \u2014 "+o.task.projectName:""," "),e.R7$(2),e.Y8G("tab",e.lJ4(7,Zo)),e.R7$(),e.Y8G("tab",e.lJ4(8,ei)),e.R7$(),e.Y8G("ngIf",0===o.currentTab),e.R7$(),e.Y8G("ngIf",1===o.currentTab)}}let ai=(()=>{class n{constructor(t,o,i,r,c,p){this.activeOffcanvas=t,this.psaProjectsService=o,this.slimLoading=i,this.globalErrorHandlerService=r,this.router=c,this.platformLocation=p,this.task={},this.currentTab=0,this.fileUploadEndpoint="api/psa/attachments",this.getDiscussion=()=>{this.discussion$=this.psaProjectsService.getTaskDiscussion(this.taskId)},this.saveNewNote=u=>this.psaProjectsService.saveTaskNote(u),this.refresh=()=>{this.getProjectTask(),this.getDiscussion()}}ngOnInit(){this.slimLoading.start(),this.getProjectTask(),this.getDiscussion(),this.removePopStateListener=this.platformLocation.onPopState(()=>{this.closeBlade()})}ngOnDestroy(){this.removePopStateListener?.()}getProjectTask(){this.psaProjectsService.getProjectTask(this.taskId).subscribe({next:t=>{this.task=t,this.slimLoading.complete()},error:t=>{this.slimLoading.complete(),this.globalErrorHandlerService.handleError(t,!0)}})}closeBlade(){this.activeOffcanvas.close()}changeTab(t){this.currentTab=t}routeToProject(t){this.closeBlade(),this.router.navigate(["/projects-planning/project-tickets"],{queryParams:{projectId:t}})}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(D.DI),e.rXU(w.E),e.rXU(ce.KO),e.rXU(ae.r),e.rXU(M.Ix),e.rXU(T.Vw))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-project-task-blade"]],decls:15,vars:2,consts:[[1,"d-flex","flex-column"],[1,"bladeHeaderFlex"],[1,"bladeTitleFlex"],[1,"bladeCommandsFlex"],["aria-label","Close",1,"pageHeaderButton",3,"click"],[1,"fal","fa-times"],["title","Refresh notes",1,"pageHeaderButtonImage","pageHeaderButtonRefresh",3,"click"],[1,"fal","fa-sync"],["class","bladeBody set-max-height",4,"ngIf"],[1,"footer"],["id","cancelButton","type","button",1,"btn","btn-secondary",3,"click"],[1,"bladeBody","set-max-height"],["notranslate","",1,"set-padding","set-word-break"],["type","button","notranslate","",1,"h4","project-link",3,"click"],[3,"onChange"],[3,"tab"],[3,"ticketId","discussion$","saveNewNote","saveNewNoteCallback","fileUploadEndpoint",4,"ngIf"],[3,"ticket","isProjectsTicket",4,"ngIf"],[3,"ticketId","discussion$","saveNewNote","saveNewNoteCallback","fileUploadEndpoint"],[3,"ticket","isProjectsTicket"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"div",1)(2,"div",2),e.DNE(3,ti,1,1)(4,ni,1,0),e.k0s(),e.j41(5,"div",3)(6,"button",4),e.bIt("click",function(){return i.closeBlade()}),e.nrm(7,"span",5),e.EFF(8," Close "),e.k0s(),e.j41(9,"button",6),e.bIt("click",function(){return i.refresh()}),e.nrm(10,"span",7),e.k0s()()(),e.DNE(11,ri,10,9,"div",8),e.j41(12,"div",9)(13,"button",10),e.bIt("click",function(){return i.closeBlade()}),e.EFF(14," Close "),e.k0s()()()),2&o&&(e.R7$(3),e.vxM(i.taskId?3:4),e.R7$(8),e.Y8G("ngIf",i.task))},dependencies:[T.bT,Ae.W,Ae.l,qo.Q,Ko.N],styles:[".project-link[_ngcontent-%COMP%]{background:none;border:0;padding:0;cursor:pointer;color:var(--main-link-color);text-align:inherit;font:inherit}.project-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.project-link[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--main-link-color);outline-offset:2px}.set-word-break[_ngcontent-%COMP%]{word-break:break-word}.set-max-height[_ngcontent-%COMP%]{max-height:85%}.footer[_ngcontent-%COMP%]{display:flex;padding:14px 30px;align-items:center}"]})}}return n})();var si=l(73174);const li=()=>[1,2,3,4,5,6];function ci(n,a){if(1&n){const t=e.RV6();e.j41(0,"iframe",9),e.nI1(1,"SafeResourceUrl"),e.bIt("load",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.handleLoad())}),e.k0s()}if(2&n){const t=e.XpG();e.Y8G("src",e.bMT(1,2,t.iFrameSrc),e.f$h)("hidden",!t.isLoaded)}}function di(n,a){1&n&&(e.j41(0,"div",10),e.nrm(1,"div",11),e.k0s())}function pi(n,a){1&n&&(e.j41(0,"div",8),e.Z7z(1,di,2,0,"div",10,e.fX1),e.k0s()),2&n&&(e.R7$(),e.Dyx(e.lJ4(0,li)
1))}let ui=(()=>{class n{constructor(t,o){this.ngbActiveOffcanvas=t,this.psaProjectService=o,this.isLoaded=!1,this.closeBlade=()=>this.ngbActiveOffcanvas.dismiss()}ngOnInit(){this.psaProjectService.getProjectUrl().subscribe({next:t=>{this.iFrameSrc=t.data}}),this.handleLoad=(0,Ce.debounce)(()=>{this.isLoaded=!0},500)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(D.DI),e.rXU(w.E))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-project-board-iframe-blade"]],standalone:!0,features:[e.aNF],decls:11,vars:2,consts:[[1,"d-flex","flex-column"],[1,"bladeHeaderFlex"],[1,"bladeTitleFlex"],[1,"bladeCommandsFlex"],["title","Close",1,"pageHeaderButton",3,"click"],[1,"fal","fa-times"],[1,"bladeBodyFlex"],[1,"topleft-iframe",3,"src","hidden"],[1,"spinner"],[1,"topleft-iframe",3,"load","src","hidden"],[1,"spinner__circle-wrapper"],[1,"spinner__circle"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"div",1)(2,"div",2),e.EFF(3,"TopLeft Project Board"),e.k0s(),e.j41(4,"div",3)(5,"button",4),e.bIt("click",function(){return i.closeBlade()}),e.nrm(6,"span",5),e.EFF(7,"Close "),e.k0s()()(),e.j41(8,"div",6),e.DNE(9,ci,2,4,"iframe",7)(10,pi,3,1,"div",8),e.k0s()()),2&o&&(e.R7$(9),e.vxM(i.iFrameSrc?9:-1),e.R7$(),e.vxM(i.isLoaded?-1:10))},dependencies:[si.Y,ne.tm],styles:[".topleft-iframe[_ngcontent-%COMP%]{width:100%;height:calc(100vh - 110px)}"]})}}return n})();var mi=l(84412),hi=l(25558);class fi{constructor(){this.$implicit=null,this.featureFlags=null}}let gi=(()=>{class n{constructor(t,o,i){this.viewContainer=t,this.featureFlagsService=o,this.context=new fi,this.thenTemplateRef=null,this.thenViewRef=null,this.flagSubscription=Xe.yU.EMPTY,this.value$=new mi.t(!0),this.thenTemplateRef=i}set featureFlags(t){if(null!=this.currentFlag||!t)throw new Error("flagName parameter should be bound once");"!"===t[0]&&(this.value$.next(!1),t=t.slice(1)),this.currentFlag=t,this.startSubscription()}set featureFlagsValue(t){this.value$.next(t)}updateView(){this.context.$implicit?this.thenViewRef||(this.viewContainer.clear(),this.thenTemplateRef&&(this.thenViewRef=this.viewContainer.createEmbeddedView(this.thenTemplateRef,this.context))):(this.viewContainer.clear(),this.thenViewRef=null)}startSubscription(){this.flagSubscription=this.featureFlagsService.flagChange$.pipe((0,me.T)(t=>null!=t[this.currentFlag]&&t[this.currentFlag]),(0,hi.n)(t=>this.value$.pipe((0,me.T)(o=>o===t)))).subscribe(t=>{this.context.$implicit=this.context.featureFlags=t,this.updateView()})}ngOnDestroy(){this.flagSubscription.unsubscribe()}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(e.c1b),e.rXU($e.fW),e.rXU(e.C4Q))}}static{this.\u0275dir=e.FsC({type:n,selectors:[["","featureFlags",""]],inputs:{featureFlags:"featureFlags",featureFlagsValue:"featureFlagsValue"}})}}return n})();var _i=l(70152),Ci=l(60209),vi=l(68220);function bi(n,a){1&n&&(e.j41(0,"div",13),e.EFF(1,"Loading projects..."),e.k0s())}function Ti(n,a){1&n&&(e.j41(0,"div",14),e.EFF(1," Failed to load projects. Please refresh and try again. "),e.k0s())}function Pi(n,a){1&n&&(e.j41(0,"div",28),e.EFF(1,"Loading phases and tickets..."),e.k0s())}function ki(n,a){if(1&n){const t=e.RV6();e.j41(0,"div",29),e.EFF(1," Failed to load project detail. "),e.j41(2,"button",30),e.bIt("click",function(i){e.eBV(t);const r=e.XpG(2).$implicit;return e.XpG().retryExpand(r),e.Njj(i.stopPropagation())}),e.EFF(3,"Retry"),e.k0s()()}}function ji(n,a){if(1&n){const t=e.RV6();e.j41(0,"az-project-expanded-detail",31),e.bIt("ticketClick",function(i){e.eBV(t);const r=e.XpG(3);return e.Njj(r.onTicketClick(i))})("relatedTicketClick",function(i){e.eBV(t);const r=e.XpG(3);return e.Njj(r.onRelatedTicketClick(i))}),e.k0s()}if(2&n){const t=e.XpG(2).$implicit,o=e.XpG();e.Y8G("data",t.expandedData)("statusColorFn",o.getStatusColor)}}function yi(n,a){if(1&n&&(e.j41(0,"div",24),e.DNE(1,Pi,2,0,"div",25)(2,ki,4,0,"div",26)(3,ji,1,2,"az-project-expanded-detail",27),e.k0s()),2&n){const t=e.XpG().$implicit;e.R7$(),e.Y8G("ngIf",t.loading),e.R7$(),e.Y8G("ngIf",t.loadError),e.R7$(),e.Y8G("ngIf",t.expandedData&&!t.loading&&!t.loadError)}}function xi(n,a){if(1&n){const t=e.RV6();e.qex(0),e.j41(1,"div",15),e.bIt("click",function(){const i=e.eBV(t).$implicit,r=e.XpG();return e.Njj(r.toggleExpand(i))})("keydown.enter",function(i){const r=e.eBV(t).$implicit;return e.XpG().toggleExpand(r),e.Njj(i.preventDefault())})("keydown.space",function(i){const r=e.eBV(t).$implicit;return e.XpG().toggleExpand(r),e.Njj(i.preventDefault())}),e.j41(2,"div",4)(3,"span",16),e.EFF(4,"\u25b6"),e.k0s()(),e.j41(5,"div",5)(6,"button",17),e.bIt("click",function(i){const r=e.eBV(t).$implicit,c=e.XpG();return e.Njj(c.onProjectNameClick(r,i))}),e.EFF(7),e.k0s()(),e.j41(8,"div",6),e.nrm(9,"span",18),e.EFF(10),e.k0s(),e.j41(11,"div",7),e.EFF(12),e.k0s(),e.j41(13,"div",8),e.
1EFF(14),e.nI1(15,"date"),e.k0s(),e.j41(16,"div",8),e.EFF(17),e.nI1(18,"date"),e.k0s(),e.j41(19,"div",8),e.EFF(20),e.nI1(21,"date"),e.k0s(),e.j41(22,"div",9)(23,"div",19)(24,"div",20),e.nrm(25,"div",21),e.k0s(),e.j41(26,"span",22),e.EFF(27),e.nI1(28,"number"),e.k0s()()()(),e.DNE(29,yi,4,3,"div",23),e.bVm()}if(2&n){let t,o,i;const r=a.$implicit,c=e.XpG();e.R7$(),e.AVh("expanded",r.expanded),e.BMQ("aria-expanded",r.expanded),e.R7$(2),e.AVh("open",r.expanded),e.R7$(4),e.JRh(r.projectName),e.R7$(2),e.xc7("background-color",c.getStatusColor(r.status)),e.R7$(),e.SpI(" ",r.status," "),e.R7$(2),e.JRh(r.projectType),e.R7$(2),e.JRh(e.i5U(15,19,r.startDate,"shortDate")),e.R7$(3),e.JRh(e.i5U(18,22,r.endDate,"shortDate")),e.R7$(3),e.JRh(e.i5U(21,25,r.lastUpdated,"shortDate")),e.R7$(5),e.xc7("width",100*(null!==(t=r.completionPercentage)&&void 0!==t?t:0),"%"),e.AVh("complete",100*(null!==(o=r.completionPercentage)&&void 0!==o?o:0)>=100),e.R7$(2),e.SpI("",e.i5U(28,28,100*(null!==(i=r.completionPercentage)&&void 0!==i?i:0),"1.0-0"),"%"),e.R7$(2),e.Y8G("ngIf",r.expanded)}}function Si(n,a){1&n&&(e.j41(0,"div",14),e.EFF(1," No projects match the search criteria. "),e.k0s())}let Mi=(()=>{class n{constructor(t){this.psaProjectsService=t,this.projectClick=new e.bkB,this.ticketClick=new e.bkB,this.relatedTicketClick=new e.bkB,this.projects=[],this.filteredProjects=[],this.loading=!1,this.loadError=!1,this.searchTerm="",this.searchTerm$=new X.B,this.destroy$=new X.B,this.getStatusColor=ve.I3,this.trackById=(o,i)=>i.id}onProjectNameClick(t,o){o.stopPropagation(),this.projectClick.emit(t)}onTicketClick(t){this.ticketClick.emit(t)}onRelatedTicketClick(t){this.relatedTicketClick.emit(t)}ngOnInit(){this.searchTerm$.pipe((0,_i.B)(150),(0,x.Q)(this.destroy$)).subscribe(()=>this.applyFilter()),this.loadProjects()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onSearchChange(t){this.searchTerm=t??"",this.searchTerm$.next(this.searchTerm)}toggleExpand(t){t.expanded=!t.expanded,t.expanded&&!t.expandedData&&!t.loading&&this.fetchExpanded(t)}retryExpand(t){t.loadError=!1,this.fetchExpanded(t)}loadProjects(){this.loading=!0,this.loadError=!1,this.psaProjectsService.getProjectsList().pipe((0,x.Q)(this.destroy$)).subscribe({next:t=>{this.projects=(t??[]).map(o=>({...o,expanded:!1,loading:!1,loadError:!1})),this.applyFilter(),this.loading=!1},error:()=>{this.loading=!1,this.loadError=!0}})}fetchExpanded(t){t.loading=!0,t.loadError=!1;const o=parseInt(t.id,10);this.psaProjectsService.getProjectExpanded(o).pipe((0,x.Q)(this.destroy$)).subscribe({next:i=>{t.expandedData=i,t.loading=!1},error:()=>{t.loading=!1,t.loadError=!0}})}applyFilter(){const t=this.searchTerm.trim().toLowerCase();this.filteredProjects=t?this.projects.filter(o=>(o.projectName??"").toLowerCase().includes(t)):[...this.projects]}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(w.E))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-projects-list-v2"]],outputs:{projectClick:"projectClick",ticketClick:"ticketClick",relatedTicketClick:"relatedTicketClick"},decls:23,vars:8,consts:[[1,"projects-toolbar"],["placeholder","Search projects...",3,"valueChange","value"],[1,"projects-grid"],[1,"grid-header"],[1,"col","expand-col"],[1,"col","name-col"],[1,"col","status-col"],[1,"col","type-col"],[1,"col","date-col"],[1,"col","progress-col"],["class","grid-loading",4,"ngIf"],["class","grid-empty",4,"ngIf"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"grid-loading"],[1,"grid-empty"],["role","button","tabindex","0",1,"grid-row",3,"click","keydown.enter","keydown.space"],[1,"expand-icon"],["type","button",1,"project-name","project-name-link",3,"click"],[1,"status-dot"],[1,"progress-wrapper"],[1,"progress-bar"],[1,"progress-fill"],[1,"progress-label"],["class","detail-panel",4,"ngIf"],[1,"detail-panel"],["class","detail-loading",4,"ngIf"],["class","detail-error",4,"ngIf"],[3,"data","statusColorFn","ticketClick","relatedTicketClick",4,"ngIf"],[1,"detail-loading"],[1,"detail-error"],["type","button",1,"retry-button",3,"click"],[3,"ticketClick","relatedTicketClick","data","statusColorFn"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"kendo-textbox",1),e.bIt("valueChange",function(c){return i.onSearchChange(c)}),e.k0s()(),e.j41(2,"div",2)(3,"div",3),e.nrm(4,"div",4),e.j41(5,"div",5),e.EFF(6,"Project Name"),e.k0s(),e.j41(7,"div",6),e.EFF(8,"Status"),e.k0s(),e.j41(9,"div",7),e.EFF(10,"Project Type"),e.k0s(),e.j41(11,"div",8),e.
1EFF(12,"Start Date"),e.k0s(),e.j41(13,"div",8),e.EFF(14,"End Date"),e.k0s(),e.j41(15,"div",8),e.EFF(16,"Last Updated"),e.k0s(),e.j41(17,"div",9),e.EFF(18,"Completion %"),e.k0s()(),e.DNE(19,bi,2,0,"div",10)(20,Ti,2,0,"div",11)(21,xi,30,31,"ng-container",12)(22,Si,2,0,"div",11),e.k0s()),2&o&&(e.R7$(),e.xc7("width",300,"px"),e.Y8G("value",i.searchTerm),e.R7$(18),e.Y8G("ngIf",i.loading),e.R7$(),e.Y8G("ngIf",i.loadError&&!i.loading),e.R7$(),e.Y8G("ngForOf",i.filteredProjects)("ngForTrackBy",i.trackById),e.R7$(),e.Y8G("ngIf",!i.loading&&!i.loadError&&0===i.filteredProjects.length))},dependencies:[T.Sq,T.bT,Ci.OV,vi.j,T.QX,T.vh],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.projects-toolbar[_ngcontent-%COMP%]{padding:8px 0 12px}.projects-grid[_ngcontent-%COMP%]{border:1px solid var(--main-border-color);border-radius:4px;overflow:auto;flex:1;background:var(--main-alt-background)}.grid-header[_ngcontent-%COMP%]{display:flex;background:var(--main-hover-background);border-bottom:2px solid var(--main-border-color);position:sticky;top:0;z-index:1}.grid-header[_ngcontent-%COMP%]   .col[_ngcontent-%COMP%]{font-weight:600;font-size:13px;color:var(--main-text-color);padding:10px 12px}.grid-row[_ngcontent-%COMP%]{display:flex;border-bottom:1px solid var(--main-border-color);cursor:pointer;transition:background .15s}.grid-row[_ngcontent-%COMP%]:hover{background:var(--main-hover-background)}.grid-row[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--main-link-color);outline-offset:-2px}.grid-row.expanded[_ngcontent-%COMP%]{background:var(--main-hover-background);border-bottom-color:var(--main-border-color)}.col[_ngcontent-%COMP%]{padding:10px 12px;font-size:13px;color:var(--main-text-color);display:flex;align-items:center;flex:none}.expand-col[_ngcontent-%COMP%]{width:40px;min-width:40px;padding-left:0;padding-right:0;justify-content:center}.expand-icon[_ngcontent-%COMP%]{font-size:10px;color:var(--main-alt-text-color);transition:transform .2s;display:inline-block}.expand-icon.open[_ngcontent-%COMP%]{transform:rotate(90deg)}.name-col[_ngcontent-%COMP%]{flex:2;
1min-width:200px}.project-name[_ngcontent-%COMP%]{font-weight:500}.project-name-link[_ngcontent-%COMP%]{color:var(--main-link-color);text-decoration:none;cursor:pointer;background:none;border:0;padding:0;font:inherit;text-align:inherit}.project-name-link[_ngcontent-%COMP%]:hover{text-decoration:underline;filter:brightness(.85)}.project-name-link[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--main-link-color);outline-offset:2px}.status-col[_ngcontent-%COMP%], .type-col[_ngcontent-%COMP%]{width:130px;min-width:130px}.date-col[_ngcontent-%COMP%]{width:120px;min-width:120px}.progress-col[_ngcontent-%COMP%]{width:160px;min-width:160px}.status-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;flex-shrink:0}.progress-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%}.progress-bar[_ngcontent-%COMP%]{flex:1;height:8px;background:var(--main-border-color);border-radius:4px;overflow:hidden}.progress-fill[_ngcontent-%COMP%]{height:100%;border-radius:4px;transition:width .3s;background:var(--main-link-color)}.progress-fill.complete[_ngcontent-%COMP%]{background:var(--good-color)}.progress-label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:var(--main-alt-text-color);min-width:32px}.detail-panel[_ngcontent-%COMP%]{background:var(--main-hover-background);border-bottom:2px solid var(--main-border-color);padding:10px 12px 10px 52px}.detail-loading[_ngcontent-%COMP%], .detail-error[_ngcontent-%COMP%]{font-size:13px;color:var(--main-alt-text-color);padding:8px 0}.detail-error[_ngcontent-%COMP%]{color:var(--alert-color)}.retry-button[_ngcontent-%COMP%]{margin-left:8px;border:1px solid var(--main-border-color);background:var(--main-alt-background);color:var(--main-link-color);padding:2px 10px;border-radius:3px;cursor:pointer;font-size:12px}.grid-empty[_ngcontent-%COMP%], .grid-loading[_ngcontent-%COMP%]{padding:40px;text-align:center;color:var(--main-alt-text-color);font-size:14px}"]})}}return n})();function Ei(n,a){if(1&n){const t=e.RV6();e.j41(0,"button",13),e.bIt("click",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.openProjectBoard())}),e.nrm(1,"span",14),e.EFF(2,"Open Project Board "),e.k0s()}}function Fi(n,a){if(1&n&&(e.qex(0),e.DNE(1,Ei,3,0,"button",12),e.bVm()),2&n){const t=e.XpG();e.R7$(),e.Y8G("ngIf",t.isTopLeftEnabled)}}function Ii(n,a){if(1&n){const t=e.RV6();e.j41(0,"az-projects-list-v2",15),e.bIt("projectClick",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.openProjectBlade(i))})("ticketClick",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.openTicketBlade(i))})("relatedTicketClick",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.openRelatedTicketBlade(i))}),e.k0s()}}function Di(n,a){if(1&n){const t=e.RV6();e.j41(0,"az-projects-grid",16),e.bIt("rowClick",function(i){e.eBV(t);const r=e.XpG();return e.Njj(r.openProjectBlade(i))}),e.k0s()}}let wi=(()=>{class n{constructor(t,o,i,r,c){this.psaProjectsService=t,this.route=o,this.offcanvasService=i,this.userService=r,this.psaProjectService=c,this.project={},this.pageLinks=oe.rI,this.topLeftPSAs=[h.r_.ConnectWise,h.r_.Autotask],this.isTopLeftEnabled=!1,this.isV2Eligible=!1,this.FeatureFlags=Be.g}
1exportToExcel(){const t=b.c9.now().toFormat("yyyyMMdd");this.psaProjectsService.export("api/psa/projects/exportProjects",`Projects-${this.userService.UserProfile.company.name}-${t}.xlsx`)}ngOnInit(){this.isTopLeftEnabled=this.isTopLeft(),this.isV2Eligible=this.computeV2Eligible(),this.filterLinksByPsa(),this.route.queryParams.subscribe(t=>{t.projectId&&(this.project.id=t.projectId,this.openProjectBlade(this.project))})}computeV2Eligible(){const t=this.userService.UserProfile.partner.psaType;return t===h.r_.Halo||t===h.r_.Kaseya_BMS||t===h.r_.ConnectWise&&!this.isTopLeft()||t===h.r_.Autotask&&!this.isTopLeft()}filterLinksByPsa(){this.userService.UserProfile.partner.psaType==h.r_.Kaseya_BMS&&this.pageLinks&&this.pageLinks.length>0&&(this.pageLinks=this.pageLinks.filter(t=>"Project Tickets"!=t.text)),this.isV2Eligible&&(this.pageLinks=[])}refresh(){this.projectGridComponent.rebind()}isTopLeft(){return this.userService.getPartnerIntegration(h.Vv.TopLeft)&&this.topLeftPSAs.includes(this.userService.UserProfile.partner.psaType)}openProjectBlade(t){this.isTopLeft()?this.openIFrame(t):this.openProjectPopup(t)}openIFrame(t){const o=this.offcanvasService.open(Wo.D,{position:"end",backdrop:"static",keyboard:!1,panelClass:"w-75-responsive"});o.componentInstance.projectId=t.id,o.componentInstance.projectName=t.projectName,o.closed.subscribe({next:i=>{}})}openProjectPopup(t){this.offcanvasService.open(Jo.Y,{position:"end",backdrop:"static",keyboard:!1,panelClass:"w-65-responsive offCanvasThemeStyles"}).componentInstance.id=t.id}openProjectBoard(){this.offcanvasService.open(ui,{position:"end",panelClass:"w-75-responsive"})}openRelatedTicketBlade(t){t?.id&&(this.offcanvasService.open(Te.J,{position:"end",panelClass:"w-65-responsive offCanvasThemeStyles"}).componentInstance.projectsTicketId=t.id)}openTicketBlade(t){t?.id&&(this.userService.UserProfile.partner.psaType!==h.r_.Autotask?this.offcanvasService.open(Te.J,{position:"end",panelClass:"w-65-responsive offCanvasThemeStyles"}).componentInstance.projectsTicketId=t.id:this.offcanvasService.open(ai,{position:"end",panelClass:"w-65-responsive offCanvasThemeStyles"}).componentInstance.taskId=t.id)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(w.E),e.rXU(M.nX),e.rXU(D.RS),e.rXU(ee.D),e.rXU(w.E))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-projects"]],viewQuery:function(o,i){if(1&o&&e.GBs(Ue,5),2&o){let r;e.mGM(r=e.lsd())&&(i.projectGridComponent=r.first)}},decls:13,vars:6,consts:[[1,"d-flex","flex-column","h-100"],[3,"onRefresh","title","links","helpTopic"],[4,"featureFlags"],["title","Download all",1,"pageHeaderButton",3,"click"],[1,"fmd","fm-ExcelDocument"],["title","Refresh view",1,"pageHeaderButtonImage","pageHeaderButtonRefresh",3,"click"],[1,"fal","fa-sync"],[1,"row","h-100","overflow-auto"],[1,"col","d-flex","flex-column","py-3","h-100"],[1,"row","h-100","overflow-hidden"],["class","h-100 overflow-hidden",3,"projectClick","ticketClick","relatedTicketClick",4,"ngIf"],["class","h-100 overflow-hidden",3,"rowClick",4,"ngIf"],["title","Open Project Board","class","pageHeaderButton",3,"click",4,"ngIf"],["title","Open Project Board",1,"pageHeaderButton",3,"click"],[1,"fal","fa-clipboard-list"],[1,"h-100","overflow-hidden",3,"projectClick","ticketClick","relatedTicketClick"],[1,"h-100","overflow-hidden",3,"rowClick"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"page-header",1),e.bIt("onRefresh",function(){return i.refresh()}),e.DNE(2,Fi,2,1,"ng-container",2),e.j41(3,"button",3),e.bIt("click",function(){return i.exportToExcel()}),e.nrm(4,"span",4),e.EFF(5,"Download "),e.k0s(),e.j41(6,"button",5),e.bIt("click",function(){return i.refresh()}),e.nrm(7,"span",6),e.k0s()(),e.j41(8,"div",7)(9,"div",8)(10,"div",9),e.DNE(11,Ii,1,0,"az-projects-list-v2",10)(12,Di,1,0,"az-projects-grid",11),e.k0s()()()()),2&o&&(e.R7$(),e.Y8G("title",i.userService.GetPortalString("ProjectTickets","Project Tickets"))("links",i.pageLinks)("helpTopic","projects"),e.R7$(),e.Y8G("featureFlags",i.FeatureFlags.TopLeft),e.R7$(9),e.Y8G("ngIf",i.isV2Eligible),e.R7$(),e.Y8G("ngIf",!i.isV2Eligible))},dependencies:[T.bT,de.y,gi,Ue,Mi],encapsulation:2})}}return n})(),Ve=(()=>{class n{constructor(t){this.userService=t,this.rowClick=new e.bkB,this.errors=null,this.exportToExcel=()=>{this.dataGrid&&this.dataGrid.exportToExcel()},this.onClick=o=>this.rowClick.emit(o),this.getDateTimeLocale=o=>new O.sT(this.userService).transform(o),this.getColumnDefinition=o=>{switch(o){case h.r_.Autotask:return(n=>[{iconClass:"fal fa-ticket-alt ng-star-inserted",width:35,columnType:v.$.Icon},{field:"ticketNumber",title:"ID",tooltip:"Project Ticket Id",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains],defaultOperator:s.t.Contains,sortable:!1},{field:"subject",title:"SUBJECT",tooltip:"Subject of Project Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains],defaultOperator:s.t.Contains,sortable:!1},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of most recent change",columnType:v.$.Template,filterType:m.R.None,template:a=>n(a.lastUpdated),sortable:!1},{field:"status",title:"STATUS",tooltip:"Status of Ticket",filterType:m.R.None,sortable:!1},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.None,sortable:!1},{field:"contact",title:"CONTACT",tooltip:"Name of Contact",filterType:m.R.None,sortable:!1},{field:"ticketType",title:"TICKET TYPE",tooltip:"Type of Ticket",filterType:m.R.None,sortable:!1}])(this.getDateTimeLocale);case h.r_.Kaseya_BMS:return(n=>[{iconClass:"fal fa-ticket-alt ng-star-inserted",width:35,columnType:v.$.Icon},{field:"id",title:"ID",tooltip:"Project Ticket Id",filterType:m.R.None,sortable:!0},{field:"subject",title:"SUBJECT",tooltip:"Subject of Project Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of most recent change",columnType:v.$.Template,template:a=>n(a.lastUpdated),filterType:m.R.None,sortable:!0},{field:"status",title:"STATUS",tooltip:"Status of Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.None,sortable:!0},{field:"contact",title:"CONTACT",tooltip:"Name of Contact",filterType:m.R.String,filterOperators:[s.t.EqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"ticketType",title:"TICKET TYPE",tooltip:"Type of Ticket",filterType:m.R.None,sortable:!0}])(this.getDateTimeLocale);case h.r_.Halo:return(n=>[{iconClass:"fal fa-ticket-alt",width:35,columnType:v.$.Icon},{field:"id",title:"ID",tooltip:"Project Ticket Id",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"subject",title:"SUBJECT",tooltip:"Subject of Project Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of most recent change",columnType:v.$.Template,template:a=>n(a.lastUpdated),filterType:m.R.None,sortable:!0},{field:"status",title:"STATUS",tooltip:"Status of Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"contact",title:"CONTACT",tooltip:"Name of Contact",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"ticketType",title:"TICKET TYPE",tooltip:"Type of Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0}])(this.getDateTimeLocale);default:return(n=>[{iconClass:"fal fa-ticket-alt ng-star-inserted",width:35,columnType:v.$.Icon},{field:"id",title:"ID",tooltip:"Project Ticket Id",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.GreaterThan,s.t.GreaterThanOrEqualTo,s.t.LessThan,s.t.LessThanOrEqualTo],defaultOperator:s.t.EqualTo,sortable:!0},{field:"subject",title:"SUBJECT",tooltip:"Subject of Project Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"lastUpdated",title:"LAST UPDATED",tooltip:"Date of most recent change",columnType:v.$.Template,template:a=>n(a.lastUpdated),filterType:m.R.None,sortable:!0},{field:"status",title:"STATUS",tooltip:"Status of Ticket",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"projectName",title:"PROJECT NAME",tooltip:"Name of Project",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"projectPhase",title:"PROJECT PHASE",tooltip:"Name of Project Phase",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"contact",title:"CONTACT",tooltip:"Name of Contact",filterType:m.R.String,filterOperators:[s.t.EqualTo,s.t.NotEqualTo,s.t.Contains,s.t.DoesNotContain],defaultOperator:s.t.Contains,sortable:!0},{field:"ticketType",title:"TICKET TYPE",tooltip:"Type of Ticket",filterType:m.R.Dropdown,filterData:["Project Ticket","Project Issue Ticket"],filterValueField:"id",filterTextField:"name",sortable:!0}])(this.getDateTimeLocale)}},this.rebind=()=>{this.dataGrid&&this.dataGrid.rebind()}}ngOnInit(){this.columns=this.getColumnDefinition(this.userService.UserProfile.partner.psaType)}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(R.DL))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-projects-tickets-gri
1d"]],viewQuery:function(o,i){if(1&o&&e.GBs(J.I,5),2&o){let r;e.mGM(r=e.lsd())&&(i.dataGrid=r.first)}},outputs:{rowClick:"rowClick"},decls:1,vars:4,consts:[[3,"rowClick","controller","columns","iconClass","downloadName"]],template:function(o,i){1&o&&(e.j41(0,"az-data-grid",0),e.bIt("rowClick",function(c){return i.onClick(c)}),e.k0s()),2&o&&e.Y8G("controller","api/psa/projects/tickets")("columns",i.columns)("iconClass","fal fa-box-alt")("downloadName","ProjectsTicketsOverview")},dependencies:[J.I],encapsulation:2})}}return n})(),Ni=(()=>{class n{constructor(t,o,i,r){this.psaProjectsService=t,this.route=o,this.offcanvasService=i,this.userService=r,this.rowClick=new e.bkB,this.projectsTicketGridDto={},this.pageLinks=oe.rI}ngOnInit(){this.route.queryParams.subscribe(t=>{t.ticketId&&(this.projectsTicketGridDto.id=t.ticketId,this.openTicketBlade(this.projectsTicketGridDto))})}exportToExcel(){const t=b.c9.now().toFormat("yyyyMMdd");this.psaProjectsService.export("api/psa/projects/exportProjectTickets",`Project Tickets-${this.userService.UserProfile.company.name}-${t}.xlsx`)}refresh(){this.projectsTicketsGridComponent.rebind()}openTicketBlade(t){this.offcanvasService.open(Te.J,{position:"end",panelClass:"w-65-responsive offCanvasThemeStyles"}).componentInstance.projectsTicketId=t.id}static{this.\u0275fac=function(o){return new(o||n)(e.rXU(w.E),e.rXU(M.nX),e.rXU(D.RS),e.rXU(R.DL))}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-projects-tickets"]],viewQuery:function(o,i){if(1&o&&e.GBs(Ve,5),2&o){let r;e.mGM(r=e.lsd())&&(i.projectsTicketsGridComponent=r.first)}},outputs:{rowClick:"rowClick"},decls:11,vars:2,consts:[[1,"d-flex","flex-column","h-100"],[3,"onRefresh","title","links"],["title","Download all",1,"pageHeaderButton",3,"click"],[1,"fmd","fm-ExcelDocument"],["title","Refresh view",1,"pageHeaderButtonImage","pageHeaderButtonRefresh",3,"click"],[1,"fal","fa-sync"],[1,"row","h-100","overflow-auto"],[1,"col","d-flex","flex-column","py-3","h-100"],[1,"row","h-100","overflow-hidden"],[1,"h-100","overflow-hidden",3,"rowClick"]],template:function(o,i){1&o&&(e.j41(0,"div",0)(1,"page-header",1),e.bIt("onRefresh",function(){return i.refresh()}),e.j41(2,"button",2),e.bIt("click",function(){return i.exportToExcel()}
1),e.nrm(3,"span",3),e.EFF(4,"Download "),e.k0s(),e.j41(5,"button",4),e.bIt("click",function(){return i.refresh()}),e.nrm(6,"span",5),e.k0s()(),e.j41(7,"div",6)(8,"div",7)(9,"div",8)(10,"az-projects-tickets-grid",9),e.bIt("rowClick",function(c){return i.openTicketBlade(c)}),e.k0s()()()()()),2&o&&(e.R7$(),e.Y8G("title",i.userService.GetPortalString("ProjectTickets","Project Tickets"))("links",i.pageLinks))},dependencies:[de.y,Ve],encapsulation:2})}}return n})(),Gi=(()=>{class n{static{this.\u0275fac=function(o){return new(o||n)}}static{this.\u0275cmp=e.VBU({type:n,selectors:[["az-projects-planning"]],hostAttrs:[1,"container-fluid","overflow-hidden","h-100"],decls:1,vars:0,template:function(o,i){1&o&&e.nrm(0,"router-outlet")},dependencies:[M.n3],encapsulation:2})}}return n})();const Li={modules:[B.I.ProjectsPlanning,B.I.Account_Planner],claimType:I.nR.Account_Planner,claimValue:I.aX.Read},Ye={modules:[B.I.ProjectsPlanning,B.I.Account_Projects],claimType:I.nR.Account_Projects,claimValue:I.aX.Read},Xi=[K.q,Z.m,(0,Mt.o)(I.nR.Account_Planner)],N=n=>({path:n,component:Uo,canActivate:Xi,title:"Planner",data:Li}),Ui=[{path:"",component:Gi,children:[{path:"",redirectTo:"planner",pathMatch:"full"},{path:"planner",redirectTo:"planner/timeline",pathMatch:"full"},N("planner/timeline"),N("planner/timeline/:id"),N("planner/board"),N("planner/board/:id"),N("planner/list"),N("planner/list/:id"),N("planner/archive"),N("planner/archive/:id"),{path:"project-tickets/tickets",component:Ni,canActivate:[K.q,Z.m],title:"Project Tickets",data:Ye},{path:"project-tickets",component:wi,canActivate:[K.q,Z.m],title:"Project Tickets",data:Ye},{path:"meetings",component:we,canActivate:[K.q,Z.m],title:"Meetings",data:{modules:[B.I.ProjectsPlanning,B.I.ProjectsPlanning_Meetings],claimType:I.nR.ProjectsPlanning_Meetings,claimValue:I.aX.Read}},{path:"meetings/:id",component:we,canActivate:[K.q,Z.m],title:"Meetings",data:{modules:[B.I.ProjectsPlanning,B.I.ProjectsPlanning_Meetings],claimType:I.nR.ProjectsPlanning_Meetings,claimValue:I.aX.Read}}]}],Ai=M.iI.forChild(Ui);let Vi=(()=>{class n{static{this.\u0275fac=function(o){return new(o||n)}}static{this.\u0275mod=e.$C({type:n})}static{this.\u0275inj=e.G2t({imports:[Ai,L.sb,_.G,y._,xt,St.H]})}}return n})()}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.