1"use strict";(self.webpackChunktonomo=self.webpackChunktonomo||[]).push([[2451],{22451:(zt,te,h)=>{h.r(te),h.d(te,{ReportingFeaturePhotographersPayoutModule:()=>Nt});var D=h(69808),Q=h(74202),G=h(96410),e=h(5e3),ce=h(8929),ne=h(7625),C=h(658),L=h(93075),de=h(30395),me=h(82055),he=h(50257),K=h(255),ue=h(66809),ge=h(72751);function _e(n,a){if(1&n){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",12),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().exportData.emit()}),e.\u0275\u0275element(1,"i",13),e.\u0275\u0275text(2," Download Excel "),e.\u0275\u0275elementEnd()}}let ve=(()=>{class n{constructor(t){this.fb=t,this.photographers=[],this.selectedPhotographers=[],this.exportEnabled=!1,this.dateRange=null,this.taskStatuses=[],this.photographersListReadonly=!1,this.applyRange=new e.EventEmitter,this.setTravelFee=new e.EventEmitter,this.setPhotographers=new e.EventEmitter,this.exportData=new e.EventEmitter,this.selectTaskStatuses=new e.EventEmitter,this.destroy$=new ce.xQ,this.selectedTaskStatuses=[],this.photographerSelectItems=[],this.selectedPhotographersIds=[],this.taskStatusSelectOptions=C.WwE.map(o=>({label:o.title,value:o.key}))}ngOnInit(){var t,o;this.form=this.fb.group({dateRange:[this.dateRange],travelFee:[null],photographers:[null]}),this.selectedTaskStatuses=this.taskStatuses,this.selectedPhotographersIds=this.selectedPhotographers,null===(t=this.form.get("dateRange"))||void 0===t||t.valueChanges.pipe((0,ne.R)(this.destroy$)).subscribe(r=>{this.applyRange.emit(r)}),null===(o=this.form.get("travelFee"))||void 0===o||o.valueChanges.pipe((0,ne.R)(this.destroy$)).subscribe(r=>{this.setTravelFee.emit(r)})}ngOnChanges(t){this.setPhotographerSelectItems(t)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onPhotographersSelection(t){this.selectedPhotographersIds=t,this.setPhotographers.emit(t)}onTaskStatusSelection(t){this.selectedTaskStatuses=t,this.selectTaskStatuses.emit(t)}setPhotographerSelectItems({photographers:t}){Array.isArray(null==t?void 0:t.currentValue)&&t.currentValue.length>0&&0===this.photographerSelectItems.length&&(this.photographerSelectItems=t.currentValue.map(i=>({value:i.id,label:i.name})))}}return n.\u0275fac=function(t){return new(t||n)(e.\u0275\u0275directiveInject(L.qu))},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-filter-toolbar"]],inputs:{photographers:"photographers",selectedPhotographers:"selectedPhotographers",exportEnabled:"exportEnabled",dateRange:"dateRange",taskStatuses:"taskStatuses",photographersListReadonly:"photographersListReadonly"},outputs:{applyRange:"applyRange",setTravelFee:"setTravelFee",setPhotographers:"setPhotographers",exportData:"exportData",selectTaskStatuses:"selectTaskStatuses"},features:[e.\u0275\u0275NgOnChangesFeature],decls:15,vars:10,consts:[[1,"form",3,"formGroup"],[1,"form__left"],["appearance","bordered","label","Date Range","formControlName","dateRange","width","260px"],[1,"form__photographers-select"],[1,"input-label","text-gray-40","text-12","font-semibold","mb-1"],["title","Photographer","appearance","bordered","tooltipText","Filter by photographers","suffix","s",3,"options","inputView","selectedOptions","readonly","selectedOptionsChange"],[1,"form__photographers-select","form__photographers-select--status"],["title","Service status","appearance","bordered","tooltipText","Filter by service (task) status","suffix","es",3,"options","inputView","selectedOptions","selectedOptionsChange"],["appearance","bordered","label","Travel Fee (%)","mask","000","formControlName","travelFee","inputClass","pr-28",3,"blurOnEnter"],["contentRightIcon","","uiIcon","percent",1,"percent-icon","text-gray-30"],[1,"form__right"],["type","button","uiBtnSize","","uiBtnTheme","",3,"click",4,"ngIf"],["type","button","uiBtnSize","","uiBtnTheme","",3,"click"],["uiIcon","download"]],template:function(t,o){1&t&&(e.\u0275\u0275elementStart(0,"form",0)(1,"div",1),e.\u0275\u0275element(2,"ui-date-range",2),e.\u0275\u0275elementStart(3,"div",3)(4,"label",4),e.\u0275\u0275text(5,"Photographers"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"ui-multiselect-menu",5),e.\u0275\u0275listener("selectedOptionsChange",function(i){return o.onPhotographersSelection(i)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(7,"div",6)(8,"label",4),e.\u0275\u0275text(9,"Service Status"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"ui-multiselect-menu",7),e.\u0275\u0275listener("selectedOptionsChange",function(i){return o.onTaskStatusSelection(i)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(11,"ui-number-input",8),e.\u0275\u0275element(12,"i",9),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(13,"div",10),e.\u0275\u0275template(14,_e,3,0,"button",11),e.\u0275\u0275elementEnd()()),2&t&&(e.\u0275\u0275property("formGroup",o.form),e.\u0275\u0275advance(6),e.\u0275\u0275property("options",o.photographerSelectItems)("inputVie
1w",!0)("selectedOptions",o.selectedPhotographersIds)("readonly",o.photographersListReadonly),e.\u0275\u0275advance(4),e.\u0275\u0275property("options",o.taskStatusSelectOptions)("inputView",!0)("selectedOptions",o.selectedTaskStatuses),e.\u0275\u0275advance(1),e.\u0275\u0275property("blurOnEnter",!0),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngIf",o.exportEnabled))},directives:[L._Y,L.JL,L.sg,de.S,L.JJ,L.u,me.M,he.f,K.a,D.NgIf,ue.s,ge.V],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] ui-multiselect-menu .filter-btn{background-color:#fff;height:40px}.mat-slide-toggle[_ngcontent-%COMP%]{height:40px!important;background:white;color:gray}.form[_ngcontent-%COMP%]{display:grid;align-items:flex-end;justify-content:space-between;padding-top:1.5rem;padding-bottom:1.5rem;grid-template-columns:1fr auto}.form__left[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.75rem}.form__photographers-select[_ngcontent-%COMP%]{width:100%;max-width:180px}.form[_ngcontent-%COMP%] .mat-select-trigger{height:2.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.5rem;padding-right:.5rem;border-radius:.25rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px;transition-duration:.3s}.percent-icon[_ngcontent-%COMP%]{position:absolute;top:50%;right:.5rem;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}"],changeDetection:0}),n})();var v=h(24254),O=h(88279),fe=h(87238);let ye=(()=>{class n{transform(t,o,r){return o?t.filter(i=>!r.has(i)):t}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.\u0275\u0275definePipe({name:"filterColumns",type:n,pure:!0}),n})();function be(n,a){1&n&&(e.\u0275\u0275elementStart(0,"div",4),e.\u0275\u0275text(1,"No events"),e.\u0275\u0275elementEnd())}function Pe(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Date"),e.\u0275\u0275elementEnd())}function Ce(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div"),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"date"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit,o=e.\u0275\u0275nextContext(3);e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind2(3,1,o.convertNumberToUnix(t.when.start_time),"M/d/yyyy"))}}function Te(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Order Number"),e.\u0275\u0275elementEnd())}function Se(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",25),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate((null==t||null==t.order?null:t.order.orderNo)||"-")}}function xe(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Agent"),e.\u0275\u0275elementEnd())}function Ee(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",26),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate((null==t.order?null:t.order.client_full_name)||"-")}}function Ie(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Photographers"),e.\u0275\u0275elementEnd())}function Fe(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"li",29),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd()),2&n){const t=a.$implicit;e.\u0275\u0275property("matTooltip",t.email),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate(t.name)}}function Oe(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"ul",27),e.\u0275\u0275template(2,Fe,2,2,"li",28),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",t.matchedPhotographers)}}function we(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Services"),e.\u0275\u0275elementEnd())}function Re(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"button")(1,"span",35),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit,o=e.\u0275\u0275nextContext(2).$implicit,r=e.\u0275\u0275nextContext(4);e.\u0275\u0275classMapInterpolate1("button-label ",r.statusTypeMap[o.name]||"secondary",""),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.name)}}function De(n,a){if(1&n&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275template(1,Re,3,4,"button",34),e.\u0275\u0275elementContainerEnd()),2&n){const t=a.ngIf;e.\u0275\u0275advance(1),e.\u0275\u0275property("ngForOf",t)}}function $e(n,a){if(1&n&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275template(1,De,2,1,"ng-container",33),e.\u0275\u0275elementContainerEnd()),2&n){const t=a.$implicit,o=e.\u0275\u0275nextContext().$implicit;e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",null==o.matchedServices?null:o.matchedServices[t.name])}}function Be(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",30)(2,"div",31),e.\u0275\u0275template(3,$e,2,1,"ng-container",32),e.\u0275\u0275elementEnd()()()),2&n){const t=e.\u0275\u0275nextContext(3);e.\u0275\u0275advance(3),e.\u0275\u0275property("ngForOf",t.statuses)}}function ke(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Address"),e.\u0275\u0275elementEnd())}function Me(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",36),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate((null==t.address?null:t.address.formatted_address)||"-")}}function Ae(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Appointment time"),e.\u0275\u0275elementEnd())}function je(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div")(2,"div",37),e.\u0275\u0275text(3),e.\u0275\u0275pipe(4,"date"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"div",38),e.\u0275\u0275text(6),e.\u0275\u0275pipe(7,"lowercase"),e.\u0275\u0275pipe(8,"date"),e.\u0275\u0275pipe(9,"lowercase"),e.\u0275\u0275pipe(10,"date"),e.\u0275\u0275elementEnd()()()),2&n){const t=a.$implicit,o=e.\u0275\u0275nextContext(3);e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind2(4,3,o.convertNumberToUnix(t.when.start_time),"M/d/yyyy")),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate2("",e.\u0275\u0275pipeBind1(7,6,e.\u0275\u0275pipeBind2(8,8,o.convertNumberToUnix(t.when.start_time),"h:mm a"))," - ",e.\u0275\u0275pipeBind1(9,11,e.\u0275\u0275pipeBind2(10,13,o.convertNumberToUnix(t.when.end_time),"h:mm a")),"")}}function Ne(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Total Invoice Amount"),e.\u0275\u0275elementEnd())}function Ue(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,(null==t.order?null:t.order.invoice_amount)||0))}}function Le(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Amount Earned"),e.\u0275\u0275elementEnd())}function Ve(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.totals.amountEarned))}}function ze(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Travel Fee Earned"),e.\u0275\u0275elementEnd())}function He(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.totals.travelFee))}}function Je(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Day Specific Fee"),e.\u0275\u0275elementEnd())}function Qe(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.totals.daySpecificFee))}}function Ge(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Tips"),e.\u0275\u0275elementEnd())}const Ze=function(){return["/admin/reporting/orders-reporting"]},Ye=function(n,a,t){return{startDate:n,endDate:a,memberIds:t,tipOnlyReport:!0}};function Ke(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"a",42),e.\u0275\u0275element(1,"i",43),e.\u0275\u0275elementEnd()),2&n){const t=e.\u0275\u0275nextContext().$implicit,o=e.\u0275\u0275nextContext(3);e.\u0275\u0275property("routerLink",e.\u0275\u0275pureFunction0(2,Ze))("queryParams",e.\u0275\u0275pureFunction3(3,Ye,o.startDateString,o.endDateString,t.uid))}}function We(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",40),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275template(4,Ke,2,7,"a",41),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(3,2,t.totals.tips)," "),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",t.totals.tips)}}function Xe(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Total Payout"),e.\u0275\u0275elementEnd())}function qe(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",44),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(3,1,t.totals.payout)," ")}}function et(n,a){1&n&&e.\u0275\u0275element(0,"tr",45)}function tt(n,a){1&n&&e.\u0275\u0275element(0,"tr",46)}function nt(n,a){if(1&n&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275elementStart(1,"table",5),e.\u0275\u0275elementContainerStart(2,6),e.\u0275\u0275template(3,Pe,2,0,"th",7),e.\u0275\u0275template(4,Ce,4,4,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(5,9),e.\u0275\u0275template(6,Te,2,0,"th",7),e.\u0275\u0275template(7,Se,3,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(8,10),e.\u0275\u0275template(9,xe,2,0,"th",7),e.\u0275\u0275template(10,Ee,3,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(11,11),e.\u0275\u0275template(12,Ie,2,0,"th",7),e.\u0275\u0275template(13,Oe,3,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(14,12),e.\u0275\u0275template(15,we,2,0,"th",7),e.\u0275\u0275template(16,Be,4,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(17,13),e.\u0275\u0275template(18,ke,2,0,"th",7),e.\u0275\u0275template(19,Me,3,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(20,14),e.\u0275\u0275template(21,Ae,2,0,"th",7),e.\u0275\u0275template(22,je,11,16,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(23,15),e.\u0275\u0275template(24,Ne,2,0,"th",7),e.\u0275\u0275template(25,Ue,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(26,16),e.\u0275\u0275template(27,Le,2,0,"th",7),e.\u0275\u0275template(28,Ve,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(29,17),e.\u0275\u0275template(30,ze,2,0,"th",7),e.\u0275\u0275template(31,He,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(32,18),e.\u0275\u0275template(33,Je,2,0,"th",7),e.\u0275\u0275template(34,Qe,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(35,19),e.\u0275\u0275template(36,Ge,2,0,"th",7),e.\u0275\u0275template(37,We,5,4,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(38,20),e.\u0275\u0275template(39,Xe,2,0,"th",7),e.\u0275\u0275template(40,qe,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275template(41,et,1,0,"tr",21),e.\u0275\u0275pipe(42,"filterColumns"),e.\u0275\u0275template(43,tt,1,0,"tr",22),e.\u0275\u0275pipe(44,"filterColumns"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementContainerEnd()),2&n){const t=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(1),e.\u0275\u0275property("dataSource",t.byEvents),e.\u0275\u0275advance(40),e.\u0275\u0275property("matHeaderRowDef",e.\u0275\u0275pipeBind3(42,3,t.byEventsColumns,t.isLimitedAccess,t.hiddenColumns)),e.\u0275\u0275advance(2),e.\u0275\u0275property("matRowDefColumns",e.\u0275\u0275pipeBind3(44,7,t.byEventsColumns,t.isLimitedAccess,t.hiddenColumns))}}function ot(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"div",1),e.\u0275\u0275template(1,be,2,0,"ng-template",null,2,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275template(3,nt,45,11,"ng-container",3),e.\u0275\u0275elementEnd()),2&n){const t=e.\u0275\u0275reference(2),o=e.\u0275\u0275nextContext();e.\u0275\u0275advance(3),e.\u0275\u0275property("ngIf",null==o.byEvents?null:o.byEvents.length)("ngIfElse",t)}}function at(n,a){1&n&&(e.\u0275\u0275elementStart(0,"div",4),e.\u0275\u0275text(1,"No events"),e.\u0275\u0275elementEnd())}function rt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Photographer"),e.\u0275\u0275elementEnd())}function it(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"ul",27)(2,"li",29),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd()()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275property("matTooltip",t.photographer.email),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate(t.photographer.name)}
1}function st(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Orders"),e.\u0275\u0275elementEnd())}function lt(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.orderCount)}}function pt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Services"),e.\u0275\u0275elementEnd())}function ct(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.serviceCount)}}function dt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Total Invoice Amount"),e.\u0275\u0275elementEnd())}function mt(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.totalInvoiceAmount))}}function ht(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Amount Earned"),e.\u0275\u0275elementEnd())}function ut(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.amountEarned))}}function gt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Travel Fee Earned"),e.\u0275\u0275elementEnd())}function _t(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.travelFee))}}function vt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Day Specific Fee"),e.\u0275\u0275elementEnd())}function ft(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.daySpecificFee))}}function yt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Tips"),e.\u0275\u0275elementEnd())}function bt(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.tips))}}function Pt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"th",23),e.\u0275\u0275text(1,"Total Earned"),e.\u0275\u0275elementEnd())}function Ct(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"td",24)(1,"div",39),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd()()),2&n){const t=a.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,t.totalEarned))}}function Tt(n,a){1&n&&e.\u0275\u0275element(0,"tr",45)}function St(n,a){1&n&&e.\u0275\u0275element(0,"tr",46)}function xt(n,a){if(1&n&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275elementStart(1,"table",47),e.\u0275\u0275elementContainerStart(2,48),e.\u0275\u0275template(3,rt,2,0,"th",7),e.\u0275\u0275template(4,it,4,2,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(5,49),e.\u0275\u0275template(6,st,2,0,"th",7),e.\u0275\u0275template(7,lt,3,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(8,50),e.\u0275\u0275template(9,pt,2,0,"th",7),e.\u0275\u0275template(10,ct,3,1,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(11,51),e.\u0275\u0275template(12,dt,2,0,"th",7),e.\u0275\u0275template(13,mt,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(14,52),e.\u0275\u0275template(15,ht,2,0,"th",7),e.\u0275\u0275template(16,ut,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(17,53),e.\u0275\u0275template(18,gt,2,0,"th",7),e.\u0275\u0275template(19,_t,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(20,18),e.\u0275\u0275template(21,vt,2,0,"th",7),e.\u0275\u0275template(22,ft,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(23,19),e.\u0275\u0275template(24,yt,2,0,"th",7),e.\u0275\u0275template(25,bt,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementContainerStart(26,54),e.\u0275\u0275template(27,Pt,2,0,"th",7),e.\u0275\u0275template(28,Ct,4,3,"td",8),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275template(29,Tt,1,0,"tr",21),e.\u0275\u0275pipe(30,"filterColumns"),e.\u0275\u0275template(31,St,1,0,"tr",22),e.\u0275\u0275pipe(32,"filterColumns"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementContainerEnd()),2&n){const t=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(1),e.\u0275\u0275property("dataSource",t.byPhotographers),e.\u0275\u0275advance(28),e.\u0275\u0275property("matHeaderRowDef",e.\u0275\u0275pipeBind3(30,3,t.byPhotographerColumns,t.isLimitedAccess,t.hiddenColumns)),e.\u0275\u0275advance(2),e.\u0275\u0275property("matRowDefColumns",e.\u0275\u0275pipeBind3(32,7,t.byPhotographerColumns,t.isLimitedAccess,t.hiddenColumns))}}function Et(n,a){if(1&n&&(e.\u0275\u0275elementStart(0,"div",1),e.\u0275\u0275template(1,at,2,0,"ng-template",null,2,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275template(3,xt,33,11,"ng-container",3),e.\u0275\u0275elementEnd()),2&n){const t=e.\u0275\u0275reference(2),o=e.\u0275\u0275nextContext();e.\u0275\u0275advance(3),e.\u0275\u0275property("ngIf",null==o.byPhotographers?null:o.byPhotographers.length)("ngIfElse",t)}}let It=(()=>{class n{constructor(t){this.datePipe=t,this.byPhotographers=[],this.byEvents=[],this.dateRange={start:new Date,end:new Date},this.groupByPhotographer=!1,this.isLimitedAccess=!1,this.statusTypeMap=G.ks6,this.statuses=G.yex,this.byEventsColumns=["date","order-number","agent","photographers","services","address","appointment-time","total-invoice-amount","amount-earned","travel-fee-earned","day-specific-fee","t
1ips","payout"],this.byPhotographerColumns=["photographer","orderCount","serviceCount","totalInvoiceAmount","amountEarned","travelFee","day-specific-fee","tips","totalEarned"],this.hiddenColumns=new Set(["total-invoice-amount","totalInvoiceAmount"])}get startDateString(){return this.datePipe.transform(this.dateRange.start,"MM-dd-yyyy")+"_00:00"}get endDateString(){return this.datePipe.transform(this.dateRange.end,"MM-dd-yyyy_23:59")}convertNumberToUnix(t){return(0,v.ce8)(t)}}return n.\u0275fac=function(t){return new(t||n)(e.\u0275\u0275directiveInject(D.DatePipe))},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-photographers-payout-table"]],inputs:{byPhotographers:"byPhotographers",byEvents:"byEvents",dateRange:"dateRange",groupByPhotographer:"groupByPhotographer",isLimitedAccess:"isLimitedAccess"},decls:2,vars:2,consts:[["class","table-container border",4,"ngIf"],[1,"table-container","border"],["noTableData",""],[4,"ngIf","ngIfElse"],[1,"no-table-data"],["mat-table","",1,"items-table","w-full",3,"dataSource"],["matColumnDef","date"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","order-number"],["matColumnDef","agent"],["matColumnDef","photographers"],["matColumnDef","services"],["matColumnDef","address"],["matColumnDef","appointment-time"],["matColumnDef","total-invoice-amount"],["matColumnDef","amount-earned"],["matColumnDef","travel-fee-earned"],["matColumnDef","day-specific-fee"],["matColumnDef","tips"],["matColumnDef","payout"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],[1,"order-number"],[1,"client-full-name","whitespace-nowrap"],[1,"photographers"],["class","photographer whitespace-nowrap",3,"matTooltip",4,"ngFor","ngForOf"],[1,"photographer","whitespace-nowrap",3,"matTooltip"],[1,"services"],[1,"services-tags","flex","flex-wrap","gap-4"],[4,"ngFor","ngForOf"],[4,"ngIf"],[3,"class",4,"ngFor","ngForOf"],[1,"whitespace-nowrap"],[1,"address","whitespace-nowrap"],[1,"date"],[1,"time","whitespace-nowrap"],[1,"price"],[1,"tips"],["class","ml-8","target","_blank",3,"routerLink","queryParams",4,"ngIf"],["target","_blank",1,"ml-8",3,"routerLink","queryParams"],["uiIcon","open_in_new",1,"text-gray-50"],[1,"flex"],["mat-header-row",""],["mat-row",""],["mat-table","",1,"w-full",3,"dataSource"],["matColumnDef","photographer"],["matColumnDef","orderCount"],["matColumnDef","serviceCount"],["matColumnDef","totalInvoiceAmount"],["matColumnDef","amountEarned"],["matColumnDef","travelFee"],["matColumnDef","totalEarned"]],template:function(t,o){1&t&&(e.\u0275\u0275template(0,ot,4,2,"div",0),e.\u0275\u0275template(1,Et,4,2,"div",0)),2&t&&(e.\u0275\u0275property("ngIf",!o.groupByPhotographer),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",o.groupByPhotographer))},directives:[D.NgIf,O.BZ,O.w1,O.fO,O.ge,O.Dz,O.ev,D.NgForOf,fe.gM,Q.yS,K.a,O.as,O.XQ,O.nj,O.Gk],pipes:[D.DatePipe,D.LowerCasePipe,v._ab,ye],styles:[".table-container[_ngcontent-%COMP%]{position:relative;width:100%;max-width:100%;overflow:hidden;overflow-x:auto;border-radius:.375rem} .items-table{overflow:hidden;border-radius:.375rem;min-width:1225px} .items-table thead{position:sticky;top:0;z-index:10;overflow:hidden;border-radius:.375rem} .items-table thead tr{height:1.75rem;overflow:hidden;border-top-left-radius:.375rem;border-top-right-radius:.375rem} .items-table thead tr th{padding:0 12px!important;font-size:.625rem} .items-table tbody tr td{height:2.5rem;font-size:.75rem;font-weight:500;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1));padding:16px 12px!important} .items-table tbody tr td>ul, .items-table tbody tr td>div{height:100%} .items-table tbody tr:last-child td{border-style:none}.no-table-data[_ngcontent-%COMP%]{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:2rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem}.tips[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.photographer[_ngcontent-%COMP%]{line-height:.75rem}.photographer[_ngcontent-%COMP%]:not(:last-child){margin-bottom:.25rem}.photographers[_ngcontent-%COMP%]{display:flex;flex-direction:column}.services[_ngcontent-%COMP%]{width:240px}.services-tags[_ngcontent-%COMP%] .button-label[_ngcontent-%COMP%]{position:relative;display:inline-block;overflow:hidden;border-radius:.25rem;padding:.125rem .25rem;font-family:var(--content-font, Inter),sans-serif;font-size:.75rem;font-weight:500;line-height:1.25;--tw-text-opacity: 1;color:rgb(117 117 117 / var(--tw-text-opacity, 1));height:20px}.services-tags[_ngcontent-%COMP%] .button-label.primary[_ngcontent-%COMP%]{background-color:var(--brand-5, #E7F5FF);color:var(--brand-50, #228BE6)}.services-tags[_ngcontent-%COMP%] .button-label.primary[_ngcontent-%COMP%]:before{background-color:var(--brand-50, #228BE6)}.services-tags[_ngcontent-%COMP%] .button-label.warning[_ngcontent-%COMP%]{--tw-bg-opacity: 1;background-color:rgb(249 211 253 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(152 40 165 / var(--tw-text-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.warning[_ngcontent-%COMP%]:before{--tw-bg-opacity: 1;background-color:rgb(152 40 165 / var(--tw-bg-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.info[_ngcontent-%COMP%]{--tw-bg-opacity: 1;background-color:rgb(255 232 204 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(253 126 20 / var(--tw-text-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.info[_ngcontent-%COMP%]:before{--tw-bg-opacity: 1;background-color:rgb(253 126 20 / var(--tw-bg-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.success[_ngcontent-%COMP%]{--tw-bg-opacity: 1;background-color:rgb(195 250 232 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(12 166 120 / var(--tw-text-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.success[_ngcontent-%COMP%]:before{--tw-bg-opacity: 1;background-color:rgb(12 166 120 / var(--tw-bg-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.danger[_ngcontent-%COMP%]{--tw-bg-opacity: 1;background-color:rgb(255 227 227 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(250 82 82 / var(--tw-text-opacity, 1))}.services-tags[_ngcontent-%COMP%] .button-label.danger[_ngcontent-%COMP%]:before{--tw-bg-opacity: 1;background-color:rgb(250 82 82 / var(--tw-bg-opacity, 1))}"],changeDetection:0}),n})();var W=h(50026),Ft=h(71764),S=h.n(Ft),H=h(36053),X=h(63527),oe=h(92198),A=h(72986),$=h(24850),ae=h(2994),Z=h(87545),Ot=h(98798),wt=h(87174);function Rt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"div",6),e.\u0275\u0275element(1,"i",7),e.\u0275\u0275elementStart(2,"span"),e.\u0275\u0275text(3,"You can only generate and download your own reports."),e.\u0275\u0275elementEnd()())}function Dt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"div",8),e.\u0275\u0275element(1,"ui-spinner",9),e.\u0275\u0275elementEnd())}function $t(n,a){if(1&n&&(e.\u0275\u0275element(0,"tn-photographers-payout-table",12),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275pipe(4,"async")),2&n){const t=e.\u0275\u0275nextContext(2);e.\u0275\u0275property("byPhotographers",e.\u0275\u0275pipeBind1(1,5,t.tableItemsByPhotographer$))("groupByPhotographer",!!e.\u0275\u0275pipeBind1(2,7,t.groupByPhotographer$))("byEvents",e.\u0275\u0275pipeBind1(3,9,t.tableItemsByEvent$))("dateRange",t.dateRange)("isLimitedAccess",!!e.\u0275\u0275pipeBind1(4,11,t.isLimitedAccess$))}}function Bt(n,a){1&n&&(e.\u0275\u0275elementStart(0,"div",13),e.\u0275\u0275text(1,"Please select a date range"),e.\u0275\u0275elementEnd())}function kt(n,a){if(1&n&&(e.\u0275\u0275template(0,$t,5,13,"tn-photographers-payout-table",10),e.\u0275\u0275template(1,Bt,2,0,"ng-template",null,11,e.\u0275\u0275templateRefExtractor)),2&n){const t=e.\u0275\u0275reference(2),o=e.\u0275\u0275nextContext();e.\u0275\u0275property("ngIf",o.dateRange)("ngIfElse",t)}}const re="contractors-reporting:group-by-photographer";let ie=(()=>{class n extends W.m1{constructor(t,o,r,i,u,f,l,m,g,y,b,T,P,B,j,se,q,ee){super({groupByPhotographer:!1,tableData:[],services:{},invoices:[],calendarEvents:[],orders:[],brokeragePricingOverrides:{},currentUserId:null,photographersReadonly:!0,photographersFilter:[],servicesFilter:["complete"],travelFeePercentage:100}),this.bookingService=t,this.excelService=o,this.invoicesRepositoryService=r,this.ordersRepository=i,this.brokeragePricingOverridesService=u,this.calendarEventsRepositoryService=f,this.bookingConfigDocumentService=l,this.bookingFlowRepository=m,this.localStorageService=g,this.servicesRepository=y,this.packagesRepositoryService=b,this.dispatchRepository=T,this.usersRepository=P,this.travelFeeService=B,this.appConfig=j,this.router=se,this.route=q,this.authService=ee,this.appV2=!0,this.loading=!1,this.orders=[],this.members=[],this.initialMembers=[],this.services={},this.pricingOverridesByOrderId={},this.travelFeePercentage=100,this.bookingFlows={},this.dateRange=null,this.selectedTaskStatuses=["complete"],this.allTaskStatuses=C.WwE.map(p=>p.key),this.currentUserId$=this.select(p=>p.currentUserId).pipe((0,oe.h)(Boolean)),this.photographersListReadonly$=this.select(p=>p.photographersReadonly),this.isLimitedAccess$=this.authService.isLimitedAccess$,this.photographers$=(0,H.aj)([this.dispatchRepository.getAll(),this.photographersListReadonly$,this.currentUserId$]).pipe((0,A.q)(1),(0,$.U)(([p,c,s])=>p.filter(d=>!!d).filter(d=>"primary"!==d.id).filter(d=>!c||d.id===s))),this.servicesMap$=this.servicesRepository.getAll().pipe((0,$.U)(p=>{const c={};return p.forEach(s=>{c[s.id]=(0,v.NJ)(s),this.services[s.id]=(0,v.NJ)(s)}),c})),this.packagesMap$=this.packagesRepositoryService.getAll().pipe((0,$.U)(p=>p.reduce((c,s)=>(c[s.id]=(0,v.NJ)(s),c),{}))),this.calendarEvents$=this.select(({calendarEvents:p})=>p),this.services$=this.select(({services:p})=>p),this.invoices$=this.select(({invoices:p})=>p),this.orders$=this.select(({orders:p})=>p),this.groupByPhotographer$=this.select(({groupByPhotographer:p})=>p),this.extendedOrders$=this.select(this.orders$,this.invoices$,(p,c)=>c.map((s,d)=>Object.assign(Object.assign({}
1,p[d]),{invoice_amount:(null==s?void 0:s.totalAmount)||0,tip_amount:(null==s?void 0:s.tipAmount)||0}))),this.photographersFilter$=this.select(({photographersFilter:p,currentUserId:c,photographersReadonly:s})=>s?c?[c]:[]:p),this.servicesFilter$=this.select(p=>p.servicesFilter),this.travelFeePercentage$=this.select(p=>p.travelFeePercentage),this.tableDataOrigin$=this.select(this.calendarEvents$,this.extendedOrders$,this.photographers$,this.travelFeePercentage$,this.services$,this.servicesFilter$,this.packagesMap$,(p,c,s,d,_,w,k)=>{const R=p.map(x=>{var I;const{id:M,photographers:z}=x,F=c.find(U=>U.id===x.orderId),E=z.map(U=>s.find(Y=>Y.id===U)).filter(Boolean);if(!F)return;const N=this.getEventServices(F,_,M),le=Object.keys(N).filter(U=>!w.length||w.includes(U)).reduce((U,Y)=>Object.assign(Object.assign({},U),{[Y]:N[Y]}),{}),J=(null===(I=F.package)||void 0===I?void 0:I.packageId)?k[F.package.packageId]:void 0,pe=this.getEventDaySpecificFee(F,M),Ut=this.getTotals(F,M,z,le,d,pe,J),Lt=this.getTotals(F,M,z,N,d,pe,J),Vt=Object.assign(Object.assign({},x.when),{start_time:this.toAppTimeZoneUnix(x.when.start_time),end_time:this.toAppTimeZoneUnix(x.when.end_time)});return Object.assign(Object.assign({},x),{when:Vt,order:F,matchedServices:le,matchedPhotographers:E,packageId:null==J?void 0:J.id,totals:Ut,allServicesTotals:Lt})}).filter(Boolean);return Array.from(new Set(p.map(x=>x.orderId))).forEach(x=>{const I=c.find(E=>E.id===x),M=R.filter(E=>E.order.id===x);if(!I||!M.length)return;const z=I.tip_amount||0,F=M.reduce((E,N)=>E+N.allServicesTotals.amountEarned,0);M.forEach(E=>{const N=M.length>1&&F>0?E.totals.amountEarned/F*z:z;E.totals.tips=N,E.totals.payout+=N,E.totals.payout+=E.totals.travelFee+E.totals.daySpecificFee})}),R}),this.tableItemsByEvent$=this.select(this.tableDataOrigin$,this.photographersFilter$,this.servicesFilter$,(p,c,s)=>p.filter(d=>{const _=!c.length||d.matchedPhotographers.some(k=>c.includes(k.id)),w=!s.length||s.some(k=>{var R;const V=null===(R=d.matchedServices)||void 0===R?void 0:R[k];return Array.isArray(V)&&V.length>0});return _&&w})),this.tableItemsByPhotographer$=this.tableItemsByEvent$.pipe((0,$.U)(p=>{const c=p.reduce((s,d)=>(d.matchedPhotographers.forEach(_=>{var w,k,R,V;if(null!==(w=s[V=_.id])&&void 0!==w||(s[V]={photographer:_,orderIds:[],orderToPackageIds:{},orderCount:0,serviceCount:0,totalInvoiceAmount:0,amountEarned:0,travelFee:0,daySpecificFee:0,tips:0,totalEarned:0}),d.orderId){s[_.id].orderIds.includes(d.orderId)||(s[_.id].totalInvoiceAmount+=+((null===(k=d.order)||void 0===k?void 0:k.invoice_amount)||0));const I=d.matchedPhotographers.length?(0,v.fi2)(d.totals.tips/d.matchedPhotographers.length):d.totals.tips;s[_.id].tips+=I,s[_.id].totalEarned+=I,s[_.id].orderIds.push(d.orderId)}s[_.id].serviceCount+=Object.values(d.matchedServices).flatMap(I=>I).length;const x=null!==(R=d.totals.travelFeeByPhotographerId[_.id])&&void 0!==R?R:0;s[_.id].amountEarned+=d.totals.amountEarned,s[_.id].travelFee+=x,s[_.id].daySpecificFee+=d.totals.daySpecificFee,s[_.id].totalEarned+=d.totals.amountEarned+x+d.totals.daySpecificFee,d.orderId&&d.packageId&&(s[_.id].orderToPackageIds[`${d.orderId}-${d.packageId}`]?(s[_.id].amountEarned-=d.totals.packagePayout,s[_.id].totalEarned-=d.totals.packagePayout):s[_.id].orderToPackageIds[`${d.orderId}-${d.packageId}`]=!0)}),s),{});return Object.values(c).map(s=>(s.orderCount=new Set(s.orderIds).size,s)).sort((s,d)=>{var _;return(null!==(_=s.photographer.name)&&void 0!==_?_:"").localeCompare(d.photographer.name)})})),this.photographersReadonlyEffect=this.effect(()=>(0,H.aj)([this.authService.uid$.pipe((0,oe.h)(p=>!!p)),this.authService.isContractor$,this.authService.isStaff$,this.appConfig.config$]).pipe((0,A.q)(1),(0,W._b)(([p,c,s,d])=>{this.patchState({currentUserId:p,photographersReadonly:c||s&&d.hideReportingTab})},p=>console.error(p)))),this.loadEvents=this.effect(p=>p.pipe((0,ae.b)(()=>{this.loading=!0}),(0,Z.w)(({start:c,end:s})=>this.getTableDataByRange({start:c,end:s})),(0,ae.b)(()=>{this.loading=!1}),(0,W._b)(({calendarEvents:c,orders:s,services:d,brokeragePricingOverrides:_,invoices:w}
1)=>{this.patchState({calendarEvents:c,orders:s,services:d,brokeragePricingOverrides:_,invoices:w})},c=>{console.error("[loadEvents]",c)}))),this.setPhotographersFilter=this.updater((p,c)=>Object.assign(Object.assign({},p),{photographersFilter:c})),this.resetState=this.updater(p=>Object.assign(Object.assign({},p),{services:{},orders:[],brokeragePricingOverrides:{},calendarEvents:[],invoices:[],tableData:[]})),this.setServicesFilter=this.updater((p,c)=>Object.assign(Object.assign({},p),{servicesFilter:c})),this.setTravelFeePercentage=this.updater((p,c)=>Object.assign(Object.assign({},p),{travelFeePercentage:c})),this.patchState({groupByPhotographer:!!this.localStorageService.retrieve(re)})}ngOnInit(){this.bookingConfigDocumentService.get$().pipe((0,A.q)(1)).subscribe(t=>{this.bookingConfig=t}),this.bookingFlowRepository.getAll().subscribe(t=>{this.bookingFlows=t.reduce((o,r)=>(o[r.id]=r,o),{})}),this.servicesMap$.subscribe(),this.photographers$.pipe((0,A.q)(1),(0,Z.w)(t=>{const o=t.map(r=>r.id);return this.usersRepository.getManyByIds$(o).pipe((0,A.q)(1))}),(0,$.U)(t=>t.filter(Boolean))).subscribe(t=>{this.members=t,this.initialMembers=t}),this.setQueryValues()}onGroupByPhotographerChange(t){this.patchState({groupByPhotographer:t}),this.localStorageService.store(re,t)}onSetPhotographers(t){this.members=t.length?this.initialMembers.filter(o=>t.includes(o.uid)):this.initialMembers,this.saveInQuery("photographers",JSON.stringify(t)),this.setPhotographersFilter(t)}onSetTravelFee(t){const o=t?+t:100;this.travelFeePercentage=o,this.setTravelFeePercentage(o)}onSelectTaskStatuses(t){const o=t.length?t:[];this.selectedTaskStatuses=o,this.setServicesFilter(o),this.saveInQuery("taskStatuses",JSON.stringify(t))}onApplyRange(t){if(!(null==t?void 0:t.start)||!(null==t?void 0:t.end))return this.dateRange=null,void this.saveInQuery("dateRange",null);this.saveInQuery("dateRange",JSON.stringify(t)),this.initTable(t)}saveInQuery(t,o){const r=Object.assign({},this.route.snapshot.queryParams);null===o?delete r[t]:r[t]=o,this.router.navigate([],{relativeTo:this.route,queryParams:r,queryParamsHandling:null===o?"":"merge",replaceUrl:!0})}setQueryValues(){const{dateRange:t,taskStatuses:o,photographers:r}=this.route.snapshot.queryParams;if(t){const{start:i,end:u}=JSON.parse(t),f={start:new Date(i),end:new Date(u)};this.initTable(f)}if(o){const i=JSON.parse(o);this.selectedTaskStatuses=i.length?i:["complete"],this.setServicesFilter(this.selectedTaskStatuses)}if(r){const i=JSON.parse(r);this.setPhotographersFilter(i)}}initTable(t){this.dateRange=t,this.resetState(),this.loadEvents(t)}calculateServicePayout(t,o,r,i){var u,f,l;const g=(0,v.UCj)(this.services[t],this.pricingOverridesByOrderId[r.id]||{});if(!g)return 0;const y=r.service_custom_tiers;if(g.enableCustomTiers){if(null==y?void 0:y.length){const b=y.find(P=>P.serviceId===t),T=+(null===(u=null==b?void 0:b.selected)||void 0===u?void 0:u.payout);return Number.isNaN(T)||(null===(f=null==i?void 0:i.linkedServiceIds)||void 0===f?void 0:f.includes(t))&&T<=this.getDefaultPackagedServicePayout(t,g,i,r)?0:T}return 0}if(null===(l=null==i?void 0:i.linkedServiceIds)||void 0===l?void 0:l.includes(t))return 0;if(g.payoutTiers){const b=this.bookingFlows[r.bookingFlow.id],P=((null==b?void 0:b.pricingTiersMap)||{})[g.id]||"default",j=+(g.payoutTiers[P]||[])[o];return Number.isNaN(j)?0:j}return 0}calculatePackagePayout(t,o,r){var i,u;if((t=(0,v.UCj)(t,this.pricingOverridesByOrderId[r.id]||{})).enableCustomTiers){if(null===(i=r.service_custom_tiers)||void 0===i?void 0:i.length){const l=r.service_custom_tiers.find(g=>g.serviceId===t.id),m=+(null===(u=null==l?void 0:l.selected)||void 0===u?void 0:u.payout);return Number.isNaN(m)?0:m}return 0}if(t.payoutTiers){const l=this.bookingFlows[r.bookingFlow.id],g=((null==l?void 0:l.pricingTiersMap)||{})[t.id]||"default",b=+(t.payoutTiers[g]||[])[o];return Number.isNaN(b)?0:b}return 0}onExport(){this.get().groupByPhotographer?this.exportPhotographers():this.exportEvents()}exportPhotographers(){(0,H.aj)([this.tableItemsByPhotographer$,this.isLimitedAccess$]).pipe((0,A.q)(1)).subscribe(([t,o])=>{if(!t.length||!this.dateRange)return;const r=t.map(l=>Object.assign(Object.assign({Photographer:l.photographer.name,Orders:l.orderCount,Services:l.serviceCount},o?{}:{"Total Invoice Amount":l.totalInvoiceAmount.toFixed(2)}),{"Amount Earned":l.amountEarned.toFixed(2),"Travel Fee Earned":l.travelFee.toFixed(2),"Day Specific Fee":l.daySpecificFee.toFixed(2),Tips:l.tips.toFixed(2),"Total Earned":l.totalEarned.toFixed(2)})),i=S()(this.dateRange.start).format(v.lvo.US_DATE_DASHED),u=S()(this.dateRange.end).format(v.lvo.US_DATE_DASHED);this.excelService.exportAsExcelFile(r,`contractors-report_${i}-${u}`)})}exportEvents(){(0,H.aj)([this.tableItemsByEvent$,this.isLimitedAccess$]).pipe((0,A.q)(1)).subscribe(([t,o])=>{if(!t.length||!this.dateRange)return;const r=t.map(l=>{var m,g,y,b;return Object.assign(Object.assign({Date:S().unix(l.when.start_time).format(v.lvo.US_NUMERIC_DATE),"Order ID":(null===(m=l.order)||void 0===m?void 0:m.orderNo)||"-",Agent:(null===(g=l.order)||void 0===g?void 0:g.client_full_name)||"-",Photographers:l.matchedPhotographers.map(P=>P.name.trim()).join(", "),Services:Object.values(l.matchedServices).flat().map(P=>P.name).join(", "),Address:(null===(y=l.address)||void 0===y?void 0:y.formatted_address)||"-","Appointment Time":`${S().unix(l.when.start_time).format(v.lvo.US_NUMERIC_DATE)}, ${S().unix(l.when.start_time).format(v.lvo.HOUR_12)} - ${S().unix(l.when.end_time).format(v.lvo.HOUR_12)}`},o?{}:{"Invoice Amount":Number((null===(b=l.order)||void 0===b?void 0:b.invoice_amount)||0).toFixed(2)}),{"Amount Earned":Number(l.totals.amountEarned||0).toFixed(2),"Travel Fee Earned":Number(l.totals.travelFee||0).toFixed(2),"Day Specific Fee":Number(l.totals.daySpecificFee||0).toFixed(2),Tips:Number(l.totals.tips||0).toFixed(2),"Total Payout":Number(l.totals.payout||0).toFixed(2)})}),i=S()(this.dateRange.start).format(v.lvo.US_DATE_DASHED),u=S()(this.dateRange.end).format(v.lvo.US_DATE_DASHED);this.excelService.exportAsExcelFile(r,`contractors-report-details_${i}-${u}`)})}getTableDataByRange({start:t,end:o}){const r=this.appConfig.timeZone,i=S()(t).format(v.lvo.ISO_DATE),u=S()(o).format(v.lvo.ISO_DATE),f=S().tz(i,r).startOf("day").unix(),l=S().tz(u,r).endOf("day").unix();return(0,X.D)(this.calendarEventsRepositoryService.getCalendarEventsByRange(f,l)).pipe((0,$.U)(m=>m.filter(Boolean)),(0,Z.w)(m=>{const g=Array.from(new Set(m.map(y=>
1y.orderId).filter(Boolean)));return(0,X.D)(this.ordersRepository.getByIds(g)).pipe((0,$.U)(y=>y.filter(Boolean)),(0,Z.w)(y=>{const b=this.brokeragePricingOverridesService.getOrdersBrokeragePricingOverrides(y).pipe((0,A.q)(1)),T=(0,X.D)(this.invoicesRepositoryService.getByIds(g)).pipe((0,$.U)(P=>P.filter(Boolean)));return(0,H.aj)([this.servicesMap$,b,T]).pipe((0,$.U)(([P,B,j])=>({calendarEvents:m,orders:y,services:P,brokeragePricingOverrides:B,invoices:j})))}))}))}getEventServices(t,o,r){return Object.entries(t.taskSummary).reduce((i,[u,f])=>{if(u===Ot.av.ARCHIVED)return i;const l=f.filter(m=>m.eventId===r).map(m=>o[m.serviceId]).filter(m=>Boolean(m));return l.length&&(i[u]=l),i},{})}getEventPayout(t,o,r){var i;let u=0;if(r){const l=t.map(g=>g.serviceId).filter(Boolean);if(null===(i=r.linkedServiceIds)||void 0===i?void 0:i.some(g=>l.includes(g))){const g=this.bookingService.getActiveTier((0,v.CQG)(null==r?void 0:r.bookingType,o),(0,v.meL)(null==r?void 0:r.bookingType,this.bookingConfig));u=this.calculatePackagePayout(r,g,o)}}return{packagePayout:u,servicesPayout:t.reduce((l,m)=>{const g=this.bookingService.getActiveTier((0,v.CQG)(m.bookingType,o),(0,v.meL)(m.bookingType,this.bookingConfig));return m.serviceId?l+this.calculateServicePayout(m.serviceId,g,o,r):l},0)}}getTotals(t,o,r,i,u,f,l){var m,g;const y=this.allTaskStatuses.flatMap(c=>{var s;return(null===(s=t.taskSummary)||void 0===s?void 0:s[c])||[]}),b=new Set(Object.values(i).flat().map(c=>c.id)),{packagePayout:T,servicesPayout:P}=this.getEventPayout(y.filter(c=>!!c.serviceId&&b.has(c.serviceId)),t,l),B=null!==(g=null===(m=t.travels)||void 0===m?void 0:m.filter(({eventId:c,photographerId:s})=>o===c&&s&&r.includes(s)))&&void 0!==g?g:[],j=this.travelFeeService.getOrderTravelsFee(B),p=T+P;return{amountEarned:p,travelFee:(0,v.fi2)(j)*u/100,travelFeeByPhotographerId:(0,v.DS8)(B,u),payout:p,tips:0,daySpecificFee:f,packagePayout:T}}getDefaultPackagedServicePayout(t,o,r,i){var u,f,l;const m=this.bookingFlows[i.bookingFlow.id],y=((null==m?void 0:m.pricingTiersMap)||{})[t]||"default",b=(null===(u=o.customTiers)||void 0===u?void 0:u[y])||[],T=null===(l=null===(f=r.serviceDefaultCustomTierMap)||void 0===f?void 0:f[y])||void 0===l?void 0:l[t],P=null!=T?b[T]:b.find(B=>B.isDefault);return P&&+P.payout||0}toAppTimeZoneUnix(t){const o=this.appConfig.timeZone;return S()(new Date(S().unix(t).tz(o).format(v.lvo.ISO_DATE_TIME))).unix()}getEventDaySpecificFee(t,o){var r;return(null===(r=t.workDays)||void 0===r?void 0:r.length)?t.workDays.filter(i=>i.id===o).reduce((i,u)=>i+u.fee,0):0}}return n.\u0275fac=function(t){return new(t||n)(e.\u0275\u0275directiveInject(C.q$k),e.\u0275\u0275directiveInject(C.xBP),e.\u0275\u0275directiveInject(C.uOT),e.\u0275\u0275directiveInject(C.HVf),e.\u0275\u0275directiveInject(C.vYe),e.\u0275\u0275directiveInject(C.es8),e.\u0275\u0275directiveInject(C.KVG),e.\u0275\u0275directiveInject(C.aPF),e.\u0275\u0275directiveInject(wt.n2),e.\u0275\u0275directiveInject(C.pZw),e.\u0275\u0275directiveInject(C.mWn),e.\u0275\u0275directiveInject(C.Q3C),e.\u0275\u0275directiveInject(C.L2p),e.\u0275\u0275directiveInject(C.cVO),e.\u0275\u0275directiveInject(C._ZM),e.\u0275\u0275directiveInject(Q.F0),e.\u0275\u0275directiveInject(Q.gz),e.\u0275\u0275directiveInject(C.e80))},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-reporting-feature-photographers-payout"]],hostVars:2,hostBindings:function(t,o){2&t&&e.\u0275\u0275classProp("app-v2",o.appV2)},features:[e.\u0275\u0275InheritDefinitionFeature],decls:15,vars:21,consts:[[1,"flex","w-full","justify-end"],[1,"mat-slide-toggle-v2",3,"disableRipple","checked","change"],[3,"photographers","exportEnabled","dateRange","taskStatuses","selectedPhotographers","photographersListReadonly","setPhotographers","applyRange","setTravelFee","exportData","selectTaskStatuses"],["role","alert","class","info-banner",4,"ngIf"],["class","loader-container",4,"ngIf","ngIfElse"],["report",""],["role","alert",1,"info-banner"],["uiIcon","lock"],[1,"loader-container"],[1,"text-gray-30","w-32"],[3,"byPhotographers","groupByPhotographer","byEvents","dateRange","isLimitedAccess",4,"ngIf","ngIfElse"],["placeholder",""],[3,"byPhotographers","groupByPhotographer","byEvents","dateRange","isLimitedAccess"],[1,"select-range-message"]],template:function(t,o){if(1&t&&(e.\u0275\u0275elementStart(0,"h1"),e.\u0275\u0275text(1,"Contractor Reporting"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"div",0)(3,"mat-slide-toggle",1),e.\u0275\u0275listener("change",function(i){return o.onGroupByPhotographerChange(i.checked)}),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275text(5," Group by photographers "),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(6,"tn-filter-toolbar",2),e.\u0275\u0275listener("setPhotographers",function(i){return o.onSetPhotographers(i)})("applyRange",function(i){return o.onApplyRange(i)})("setTravelFee",function(i){return o.onSetTravelFee(i)})("exportData",function(){return o.onExport()})("selectTaskStatuses",function(i){return o.onSelectTaskStatuses(i)}),e.\u0275\u0275pipe(7,"async"),e.\u0275\u0275pipe(8,"async"),e.\u0275\u0275pipe(9,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(10,Rt,4,0,"div",3),e.\u0275\u0275pipe(11,"async"),e.\u0275\u0275template(12,Dt,2,0,"div",4),e.\u0275\u0275template(13,kt,3,2,"ng-template",null,5,e.\u0275\u0275templateRefExtractor)),2&t){const r=e.\u0275\u0275reference(14);e.\u0275\u0275advance(3),e.\u0275\u0275property("disableRipple",!0)("checked",e.\u0275\u0275pipeBind1(4,11,o.groupByPhotographer$)),e.\u0275\u0275advance(3),e.\u0275\u0275property("photographers",e.\u0275\u0275pipeBind1(7,13,o.photographers$))("exportEnabled",!0)("dateRange",o.dateRange)("taskStatuses",o.selectedTaskStatuses)("selectedPhotographers",e.\u0275\u0275pipeBind1(8,15,o.photographersFilter$))("p
1hotographersListReadonly",e.\u0275\u0275pipeBind1(9,17,o.photographersListReadonly$)),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(11,19,o.photographersListReadonly$)),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",o.loading)("ngIfElse",r)}},styles:["[_nghost-%COMP%]{display:block;padding:1.5rem}.loader-container[_ngcontent-%COMP%]{display:flex;width:100%;align-items:center;justify-content:center;height:40vh}.select-range-message[_ngcontent-%COMP%]{display:flex;width:100%;align-items:center;justify-content:center;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:2.5rem;font-size:1.125rem;font-weight:500;--tw-text-opacity: 1;color:rgb(117 117 117 / var(--tw-text-opacity, 1))}"]}),n})();var Mt=h(32368),At=h(81782);const jt=[{path:"",pathMatch:"full",component:ie}];let Nt=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.\u0275\u0275defineNgModule({type:n}),n.\u0275inj=e.\u0275\u0275defineInjector({imports:[[D.CommonModule,Q.Bz.forChild(jt),G.eYi,G._KK]]}),n})();e.\u0275\u0275setComponentScope(ie,[Mt.Rr,ve,D.NgIf,K.a,At.O,It],[D.AsyncPipe])}}]);
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.