PageSourceSearch

https://partner.restoplatform.com/chunk-7GPXMZ34.js

js restoplatform.com collected 2026-09-24 09:40:51 UTC 21,529 bytes, 1 lines download raw bytes

1import{a as ie,b as ne,c as ae,d as oe}from"./chunk-UI64E4NY.js";import{a as Je,b as Qe,c as Se}from"./chunk-D5PGCT22.js";import{a as Ae,b as We}from"./chunk-7UC7HAR7.js";import"./chunk-3TMTZKN5.js";import"./chunk-CSCX7XX7.js";import{b as Oe,c as Re,d as Be,e as Fe,f as Ne,g as Le,h as Ge,i as He,j as Ke,k as je,l as ze}from"./chunk-4EOZ4GQM.js";import{a as ge,b as he}from"./chunk-LOPE2D3P.js";import{a as _e,b as X,c as Ye,d as Z,e as $,f as ee,g as te,h as H}from"./chunk-6ZRFLCJI.js";import{a as Pe}from"./chunk-5Y2IASQK.js";import{a as Ve}from"./chunk-CJAJU6AD.js";import{a as pe,b as ce}from"./chunk-2X7AQD2Q.js";import{a as ue,b as qe}from"./chunk-5HEDMDRO.js";import"./chunk-TA4CGIW5.js";import"./chunk-ERKFY33D.js";import"./chunk-DSUZVMNK.js";import{b as U,c as G}from"./chunk-WKH5W2V2.js";import{a as L}from"./chunk-IBZUQYXW.js";import{b as F,f as Q,i as N}from"./chunk-7B5TRSS4.js";import{b as j,g as W,j as q,l as ve,p as ke,q as se,u as O}from"./chunk-4T2PTKQJ.js";import{a as fe}from"./chunk-QG57Z74K.js";import{a as Ie}from"./chunk-6AO5R6CW.js";import{d as de}from"./chunk-KT3675XS.js";import"./chunk-VZ3MNGED.js";import"./chunk-AY76R2MH.js";import"./chunk-JCQ33YRD.js";import{T as J,U as R,V as B}from"./chunk-2GKCQ5UO.js";import{a as z,b as Y}from"./chunk-AZMSRLP2.js";import{i as Te,k as A}from"./chunk-J32AD3W7.js";import{Ab as T,Cb as v,Cc as xe,Db as we,Ec as Ee,Fb as V,Gb as P,Hb as p,Ib as n,Jb as a,Kb as y,Ob as w,Pb as x,Rb as E,Vb as _,Xa as m,Xb as M,ba as S,fc as k,ha as c,ia as u,jc as l,kb as I,kc as C,lc as me,pc as f,qb as b,qc as g,rc as h,ua as D}from"./chunk-YOAD7BVF.js";import{a as le,b as re}from"./chunk-55GY6K5S.js";var ye=(o,i)=>i.id;function Xe(o,i){o&1&&y(0,"mat-progress-bar",1)}function Ze(o,i){o&1&&(n(0,"p",2),l(1,"No employees assigned yet."),a())}function $e(o,i){if(o&1){let t=E();n(0,"div",3)(1,"span"),l(2),a(),n(3,"button",12),_("click",function(){let r=c(t).$implicit,d=M();return u(d.removeAssignment(r))}),n(4,"mat-icon"),l(5,"close"),a()()()}if(o&2){let t=i.$implicit,e=M();m(2),C(t.employeeName||"Employee #"+t.employeeId),m(),p("disabled",e.saving())}}function et(o,i){if(o&1&&(n(0,"mat-option",8),l(1),a()),o&2){let t=i.$implicit;p("value",t.id),m(),C(t.name)}}function tt(o,i){if(o&1&&(n(0,"mat-option",18),l(1),a()),o&2){let t=i.$implicit;p("value",t.id),m(),C(t.name)}}function it(o,i){if(o&1){let t=E();n(0,"div",12)(1,"mat-form-field",16)(2,"mat-label"),l(3,"Employee Type"),a(),n(4,"mat-select",17),h("ngModelChange",function(r){let d=c(t).$implicit;return g(d.employeeTypeId,r)||(d.employeeTypeId=r),u(r)}),V(5,tt,2,2,"mat-option",18,ye),a()(),n(7,"mat-form-field",19)(8,"mat-label"),l(9,"Min"),a(),n(10,"input",20),h("ngModelChange",function(r){let d=c(t).$implicit;return g(d.minimumRequired,r)||(d.minimumRequired=r),u(r)}),a()(),n(11,"mat-form-field",19)(12,"mat-label"),l(13,"Max"),a(),n(14,"input",21),h("ngModelChange",function(r){let d=c(t).$implicit;return g(d.maximumAllowed,r)||(d.maximumAllowed=r),u(r)}),a()(),n(15,"button",22),_("click",function(){let r=c(t).$index,d=M();return u(d.removeRequirement(r))}),n(16,"mat-icon"),l(17,"delete"),a()()()}if(o&2){let t=i.$implicit,e=M();m(4),f("ngModel",t.employeeTypeId),m(),P(e.data.employeeTypes),m(5),f("ngModel",t.minimumRequired),m(4),f("ngModel",t.maximumAllowed)}}function nt(o,i){o&1&&y(0,"mat-progress-bar",13)}function at(o,i){o&1&&(n(0,"div",14)(1,"mat-icon",16),l(2,"event_busy"),a(),n(3,"h3"),l(4,"No scheduled shifts"),a(),n(5,"p"),l(6,"No shifts found for the selected date range. Add a shift or generate from templates."),a()())}function ot(o,i){o&1&&(n(0,"th",28),l(1,"Date"),a())}function lt(o,i){if(o&1&&(n(0,"td",29),l(1),xe(2,"date"),a()),o&2){let t=i.$implicit;m(),C(Ee(2,1,t.shiftDate,"mediumDate"))}}function rt(o,i){o&1&&(n(0,"th",28),l(1,"Name"),a())}function mt(o,i){if(o&1&&(n(0,"td",29),l(1),a()),o&2){let t=i.$implicit;m(),C(t.name)}}function dt(o,i){o&1&&(n(0,"th",28),l(1,"Start"),a())}function st(o,i){if(o&1&&(n(0,"td",29),l(1),a()),o&2){let t=i.$implicit,e=M(2);m(),C(e.displayTime(t.startTime))}}function pt(o,i){o&1&&(n(0,"th",28),l(1,"End"),a())}function ct(o,i){if(o&1&&(n(0,"td",29),l(1),a()),o&2){let t=i.$implicit,e=M(2);m(),C(e.displayTime(t.endTime))}}function ut(o,i){o&1&&(n(0,"th",28),l(1,"Assigned"),a())}function ft(o,i){if(o&1&&(n(0,"td",29)(1,"mat-chip-set")(2,"mat-chip",30),l(3),a()()()),o&2){let t=i.$implicit;m(2),p("highlighted",(t.assignments==null?null:t.assignments.length)>0),m(),me(" ",(t.assignments==null?null:t.assignments.length)??0," ")}}function gt(o,i){o&1&&y(0,"th",28)}function ht(o,i){if(o&1){let t=E();n(0,"td",31)(1,"button",32),_("click",function(){let r=c(t).$implicit,d=M(2);return u(d.openShiftDialog(r))}),n(2,"mat-icon"),l(3,"edit"),a()(),n(4,"button",33),_("click",function(){let r=c(t).$implicit,d=M(2);return u(d.openAssignmentDialog(r))}),n(5,"mat-icon"),l(6,"group"),a()(),n(7,"button",34),_("click",function(){let r=c(t).$implicit,d=M(2);return u(d.confirmDelete(r))}),n(8,"mat-icon"),l(9,"delete"),a()()()}}function _t(o,i){o&1&&y(0,"tr",35)}function St(o,i){o&1&&y(0,"tr",36)}function yt(o,i){if(o&1&&(n(0,"table",15),w(1,17),b(2,ot,2,0,"th",18)(3,lt,3,4,"td",19),x(),w(4,20),b(5,rt,2,0,"th",18)(6,mt,2,1,"td",19),x(),w(7,21),b(8,dt,2,0,"th",18)(9,st,2,1,"td",19),x(),w(10,22),b(11,pt,2,0,"th",18)(12,ct,2,1,"td",19),x(),w(13,23),b(14,ut,2,0,"th",18)(15,ft,4,2,"td",19),x(),w(16,24),b(17,gt,1,0,"th",18)(18,ht,10,0,"td",25),x(),b(19,_t,1,0,"tr",26)(20,St,1,0,"tr",27),a()),o&2){let t=M();p("dataSource",t.shifts()),m(19),p("matHeaderRowDef",t.displayedColumns),m(),p("matRowDefColumns",t.displayedColumns)}}function K(o){let i=o.getFullYear(),t=String(o.getMonth()+1).padStart(2,"0"),e=String(o.getDate()).padStart(2,"0");return`${i}-${t}-${e}`}function Me(o){return o?o.substring(0,5):""}function Mt(o){let i=new Date(o),t=i.getDay(),e=t===0?-6:1-t;return i.setDate(i.getDate()+e),i}var Ce=class o{data=S(X);dialogRef=S(_e);startDate=this.data?.startDate??new Date;endDate=this.data?.endDate??new Date;preserveModified=!0;generate(){this.dialogRef.close({startDate:K(this.startDate),endDate:K(this.endDate),preserveModifiedShifts:this.preserveModified})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=I({type:o,selectors:[["app-generate-shifts-dialog"]],decls:24,vars:10,consts:[["startPicker",""],["endPicker",""],["mat-dialog-title",""],["appearance","outline",1,"full-width"],["matInput","","required","",3,"ngModelChange","matDatepicker","ngModel","max"],["matIconSuffix","",3,"for"],["matInput","","required","",3,"ngModelChange","matDatepicker","ngModel","min"],[3,"ngModelChange","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-flat-button","",3,"click","disabled"]],template:function(t,e){if(t&1){let r=E();n(0,"h2",2),l(1,"Generate Shifts from Templates"),a(),n(2,"mat-dialog-content")(3,"mat-form-field",3)(4,"mat-label"),l(5,"Start Date"),a(),n(6,"input",4),h("ngModelChange",function(s){return c(r),g(e.startDate,
1s)||(e.startDate=s),u(s)}),a(),y(7,"mat-datepicker-toggle",5)(8,"mat-datepicker",null,0),a(),n(10,"mat-form-field",3)(11,"mat-label"),l(12,"End Date"),a(),n(13,"input",6),h("ngModelChange",function(s){return c(r),g(e.endDate,s)||(e.endDate=s),u(s)}),a(),y(14,"mat-datepicker-toggle",5)(15,"mat-datepicker",null,1),a(),n(17,"mat-checkbox",7),h("ngModelChange",function(s){return c(r),g(e.preserveModified,s)||(e.preserveModified=s),u(s)}),l(18,"Preserve manually modified shifts"),a()(),n(19,"mat-dialog-actions",8)(20,"button",9),l(21,"Cancel"),a(),n(22,"button",10),_("click",function(){return e.generate()}),l(23," Generate "),a()()}if(t&2){let r=k(9),d=k(16);m(6),p("matDatepicker",r),f("ngModel",e.startDate),p("max",e.endDate),m(),p("for",r),m(6),p("matDatepicker",d),f("ngModel",e.endDate),p("min",e.startDate),m(),p("for",d),m(3),f("ngModel",e.preserveModified),m(5),p("disabled",!e.startDate||!e.endDate)}},dependencies:[A,O,j,W,se,q,L,N,F,Q,G,U,B,R,H,Z,$,te,ee,oe,ie,ne,ae,We,Ae],styles:[".full-width[_ngcontent-%COMP%]{width:100%;margin-bottom:8px}"]})},De=class o{data=S(X);api=S(fe);snackBar=S(ue);assignments=D([...this.data.shift.assignments]);availableEmployees=D([]);loading=D(!1);saving=D(!1);selectedEmployeeId=null;ngOnInit(){this.loadAvailable()}loadAvailable(){this.loading.set(!0),this.api.getPartnerEmployeesForAssignment(this.data.restaurantId,this.data.shift.id).subscribe({next:i=>{this.availableEmployees.set(i),this.loading.set(!1)},error:()=>this.loading.set(!1)})}addAssignment(){this.selectedEmployeeId&&(this.saving.set(!0),this.api.assignPartnerEmployeeToShift(this.data.shift.id,this.selectedEmployeeId).subscribe({next:i=>{this.assignments.update(t=>[...t,i]),this.selectedEmployeeId=null,this.saving.set(!1),this.loadAvailable()},error:()=>{this.snackBar.open("Failed to assign employee","OK",{duration:3e3}),this.saving.set(!1)}}))}removeAssignment(i){this.saving.set(!0),this.api.removePartnerEmployeeFromShift(i.id).subscribe({next:()=>{this.assignments.update(t=>t.filter(e=>e.id!==i.id)),this.saving.set(!1),this.loadAvailable()},error:()=>{this.snackBar.open("Failed to remove assignment","OK",{duration:3e3}),this.saving.set(!1)}})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=I({type:o,selectors:[["app-shift-assignment-dialog"]],decls:25,vars:5,consts:[["mat-dialog-title",""],["mode","indeterminate"],[1,"hint"],[1,"assignment-row"],[2,"margin-top","16px"],[1,"add-row"],["appearance","outline",1,"flex-grow"],[3,"ngModelChange","ngModel"],[3,"value"],["mat-flat-button","",3,"click","disabled"],["align","end"],["mat-flat-button","","mat-dialog-close",""],["mat-icon-button","","color","warn",3,"click","disabled"]],template:function(t,e){t&1&&(n(0,"h2",0),l(1),a(),n(2,"mat-dialog-content"),T(3,Xe,1,0,"mat-progress-bar",1),n(4,"h4"),l(5,"Current Assignments"),a(),T(6,Ze,2,0,"p",2),V(7,$e,6,2,"div",3,ye),n(9,"h4",4),l(10,"Add Employee"),a(),n(11,"div",5)(12,"mat-form-field",6)(13,"mat-label"),l(14,"Select Employee"),a(),n(15,"mat-select",7),h("ngModelChange",function(d){return g(e.selectedEmployeeId,d)||(e.selectedEmployeeId=d),d}),V(16,et,2,2,"mat-option",8,ye),a()(),n(18,"button",9),_("click",function(){return e.addAssignment()}),n(19,"mat-icon"),l(20,"add"),a(),l(21," Assign "),a()()(),n(22,"mat-dialog-actions",10)(23,"button",11),l(24,"Done"),a()()),t&2&&(m(),me("Manage Assignments \u2014 ",e.data.shift.name||"Shift"),m(2),v(e.loading()?3:-1),m(3),v(e.assignments().length===0?6:-1),m(),P(e.assignments()),m(8),f("ngModel",e.selectedEmployeeId),m(),P(e.availableEmployees()),m(2),p("disabled",!e.selectedEmployeeId||e.saving()))},dependencies:[A,O,W,q,L,N,F,G,ce,pe,de,B,R,J,Y,z,H,Z,$,te,ee,he,ge,Se],styles:[".assignment-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--mat-sys-outline-variant, #e0e0e0)}.add-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.flex-grow[_ngcontent-%COMP%]{flex:1}.hint[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant, #666);font-style:italic}"]})},be=class o{data=S(X);dialogRef=S(_e);form={id:this.data.shift?.id??0,name:this.data.shift?.name??"",notes:this.data.shift?.notes??""};shiftDate=this.data.shift?.shiftDate?new Date(this.data.shift.shiftDate+"T00:00:00"):null;startTimeInput=Me(this.data.shift?.startTime??null);endTimeInput=Me(this.data.shift?.endTime??null);requirements=(this.data.shift?.requirements??[]).map(i=>({id:i.id,employeeTypeId:i.employeeTypeId,minimumRequired:i.minimumRequired,maximumAllowed:i.maximumAllowed}));
1addRequirement(){this.requirements.push({id:0,employeeTypeId:0,minimumRequired:1,maximumAllowed:null})}removeRequirement(i){this.requirements.splice(i,1)}save(){if(!this.shiftDate)return;let i=t=>t.length===5?t+":00":t;this.dialogRef.close({id:this.form.id,restaurantId:this.data.restaurantId,name:this.form.name,notes:this.form.notes||null,shiftDate:K(this.shiftDate),startTime:i(this.startTimeInput),endTime:i(this.endTimeInput),isActive:!0,requirements:this.requirements.filter(t=>t.employeeTypeId>0)})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=I({type:o,selectors:[["app-scheduled-shift-dialog"]],decls:41,vars:9,consts:[["dp",""],["mat-dialog-title",""],["appearance","outline",1,"full-width"],["matInput","","required","",3,"ngModelChange","matDatepicker","ngModel"],["matIconSuffix","",3,"for"],["matInput","","required","",3,"ngModelChange","ngModel"],[1,"row"],["appearance","outline",1,"half-width"],["matInput","","placeholder","HH:MM","required","",3,"ngModelChange","ngModel"],["matInput","","rows","2",3,"ngModelChange","ngModel"],[1,"section-header"],["mat-button","",3,"click"],[1,"req-row"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-flat-button","",3,"click","disabled"],["appearance","outline",1,"req-field"],["required","",3,"ngModelChange","ngModel"],[3,"value"],["appearance","outline",1,"req-num"],["matInput","","type","number","min","0",3,"ngModelChange","ngModel"],["matInput","","type","number",3,"ngModelChange","ngModel"],["mat-icon-button","","color","warn",3,"click"]],template:function(t,e){if(t&1){let r=E();n(0,"h2",1),l(1),a(),n(2,"mat-dialog-content")(3,"mat-form-field",2)(4,"mat-label"),l(5,"Shift Date"),a(),n(6,"input",3),h("ngModelChange",function(s){return c(r),g(e.shiftDate,s)||(e.shiftDate=s),u(s)}),a(),y(7,"mat-datepicker-toggle",4)(8,"mat-datepicker",null,0),a(),n(10,"mat-form-field",2)(11,"mat-label"),l(12,"Name"),a(),n(13,"input",5),h("ngModelChange",function(s){return c(r),g(e.form.name,s)||(e.form.name=s),u(s)}),a()(),n(14,"div",6)(15,"mat-form-field",7)(16,"mat-label"),l(17,"Start Time"),a(),n(18,"input",8),h("ngModelChange",function(s){return c(r),g(e.startTimeInput,s)||(e.startTimeInput=s),u(s)}),a()(),n(19,"mat-form-field",7)(20,"mat-label"),l(21,"End Time"),a(),n(22,"input",8),h("ngModelChange",function(s){return c(r),g(e.endTimeInput,s)||(e.endTimeInput=s),u(s)}),a()()(),n(23,"mat-form-field",2)(24,"mat-label"),l(25,"Notes"),a(),n(26,"textarea",9),h("ngModelChange",function(s){return c(r),g(e.form.notes,s)||(e.form.notes=s),u(s)}),a()(),n(27,"div",10)(28,"h4"),l(29,"Requirements"),a(),n(30,"button",11),_("click",function(){return e.addRequirement()}),n(31,"mat-icon"),l(32,"add"),a(),l(33," Add "),a()(),V(34,it,18,3,"div",12,we),a(),n(36,"mat-dialog-actions",13)(37,"button",14),l(38,"Cancel"),a(),n(39,"button",15),_("click",function(){return e.save()}),l(40," Save "),a()()}if(t&2){let r=k(9);m(),C(e.data.shift!=null&&e.data.shift.id?"Edit Shift":"Add Shift"),m(5),p("matDatepicker",r),f("ngModel",e.shiftDate),m(),p("for",r),m(6),f("ngModel",e.form.name),m(5),f("ngModel",e.startTimeInput),m(4),f("ngModel",e.endTimeInput),m(4),f("ngModel",e.form.notes),m(8),P(e.requirements),m(5),p("disabled",!e.shiftDate||!e.form.name||!e.startTimeInput||!e.endTimeInput)}},dependencies:[A,O,j,ve,W,se,ke,q,L,N,F,Q,G,U,ce,pe,de,B,R,J,Y,z,H,Z,$,te,ee,oe,ie,ne,ae],styles:[".full-width[_ngcontent-%COMP%]{width:100%;margin-bottom:8px}.row[_ngcontent-%COMP%]{display:flex;gap:12px}.half-width[_ngcontent-%COMP%]{flex:1}.section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.section-header[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{margin:0}.req-row[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}.req-field[_ngcontent-%COMP%]{flex:2}.req-num[_ngcontent-%COMP%]{flex:1}"]})},Ue=class o{api=S(fe);appState=S(Ie);snackBar=S(ue);dialog=S(Ye);displayedColumns=["shiftDate","name","startTime","endTime","assignmentCount","actions"];shifts=D([]);employeeTypes=D([]);loading=D(!0);rangeStart;rangeEnd;displayTime=Me;constructor(){let i=Mt(new Date);this.rangeStart=i;let t=new Date(i);t.setDate(i.getDate()+6),this.rangeEnd=t}ngOnInit(){this.loadData(),this.loadEmployeeTypes()}loadData(){let i=this.appState.selectedRestaurantId;i&&(this.loading.set(!0),this.api.getPartnerScheduledShifts(i,K(this.rangeStart),K(this.rangeEnd)).subscribe({next:t=>{this.shifts.set(t),this.loading.set(!1)},error:()=>{this.shifts.set([]),this.loading.set(!1)}}))}loadEmployeeTypes(){let i=this.appState.selectedRestaurantId;i&&this.api.getHREmployeeTypes(i).subscribe({next:t=>this.employeeTypes.set(t)})}openShiftDialog(i){let t=this.appState.selectedRestaurantId;if(!t)return;this.dialog.open(be,{width:"560px",data:{shift:i?re(le({},i),{requirements:[...i.requirements]}):null,restaurantId:t,employeeTypes:this.employeeTypes()}}).afterClosed().subscribe(r=>{if(!r)return;(r.id?this.api.updatePartnerScheduledShift(r):this.api.createPartnerScheduledShift(r)).subscribe({next:()=>{this.snackBar.open(r.id?"Shift updated":"Shift created","OK",{duration:3e3}),this.loadData()},error:()=>this.snackBar.open("Action failed","OK",{duration:3e3})})})}openAssignmentDialog(i){let t=this.appState.selectedRestaurantId;if(!t)return;this.dialog.open(De,{width:"520px",data:{shift:i,restaurantId:t}}).afterClosed().subscribe(()=>this.loadData())}openGenerateDialog(){let i=this.appState.selectedRestaurantId;if(!i)return;this.dialog.open(Ce,{width:"420px",data:{startDate:this.rangeStart,endDate:this.rangeEnd}}).afterClosed().subscribe(e=>{if(!e)return;let r=re(le({},e),{restaurantId:i});this.api.generatePartnerShiftsFromTemplates(r).subscribe({next:()=>{this.snackBar.open("Shifts generated from templates","OK",{duration:3e3}),this.loadData()},error:()=>this.snackBar.open("Generation failed","OK",{duration:3e3})})})}confirmDelete(i){confirm(`Delete shift "${i.name}" on ${i.shiftDate}?`)&&this.api.deletePartnerScheduledShift(i.id).subscribe({next:()=>{this.snackBar.open("Shift deleted","OK",{duration:3e3}),this.loadData()},error:()=>this.snackBar.open("Delete failed","OK",{duration:3e3})})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=I({type:o,selectors:[["app-scheduled-shifts"]],decls:37,vars:12,consts:[["startPicker",""],["endPicker",""],[1,"page-header"],[1,"subtitle"],[1,"header-actions"],["mat-stroked-button","",3,"click"],["mat-flat-button","",3,"click"],[1,"filter-row"],["appearance","outline"],["matInput","",3,"ngModelChange","matDatepicker","ngModel","max"],["matIconSuffix","",3,"for"],["matInput","",3,"ngModelChange","matDatepicker","ngModel","min"],["mat-flat-button","",3,"click","disabled"],["mode","indeterminate"],[1,"empty-state"],["mat-table","",1,"mat-elevation-z1","full-width",3,"dataSource"],[1,"empty-icon"],["matColumnDef","shiftDate"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","name"],["matColumnDef","startTime"],["matColumnDef","endTime"],["matColumnDef","assignmentC
1ount"],["matColumnDef","actions"],["mat-cell","","class","actions-cell",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],[3,"highlighted"],["mat-cell","",1,"actions-cell"],["mat-icon-button","","matTooltip","Edit",3,"click"],["mat-icon-button","","matTooltip","Manage Assignments",3,"click"],["mat-icon-button","","color","warn","matTooltip","Delete",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(t,e){if(t&1){let r=E();n(0,"div",2)(1,"div")(2,"h1"),l(3,"Scheduled Shifts"),a(),n(4,"p",3),l(5,"View and manage scheduled employee shifts"),a()(),n(6,"div",4)(7,"button",5),_("click",function(){return e.openGenerateDialog()}),n(8,"mat-icon"),l(9,"auto_fix_high"),a(),l(10," Generate from Templates "),a(),n(11,"button",6),_("click",function(){return e.openShiftDialog()}),n(12,"mat-icon"),l(13,"add"),a(),l(14," Add Shift "),a()()(),n(15,"div",7)(16,"mat-form-field",8)(17,"mat-label"),l(18,"Start Date"),a(),n(19,"input",9),h("ngModelChange",function(s){return c(r),g(e.rangeStart,s)||(e.rangeStart=s),u(s)}),a(),y(20,"mat-datepicker-toggle",10)(21,"mat-datepicker",null,0),a(),n(23,"mat-form-field",8)(24,"mat-label"),l(25,"End Date"),a(),n(26,"input",11),h("ngModelChange",function(s){return c(r),g(e.rangeEnd,s)||(e.rangeEnd=s),u(s)}),a(),y(27,"mat-datepicker-toggle",10)(28,"mat-datepicker",null,1),a(),n(30,"button",12),_("click",function(){return e.loadData()}),n(31,"mat-icon"),l(32,"search"),a(),l(33," Load "),a()(),T(34,nt,1,0,"mat-progress-bar",13),T(35,at,7,0,"div",14),T(36,yt,21,3,"table",15)}if(t&2){let r=k(22),d=k(29);m(19),p("matDatepicker",r),f("ngModel",e.rangeStart),p("max",e.rangeEnd),m(),p("for",r),m(6),p("matDatepicker",d),f("ngModel",e.rangeEnd),p("min",e.rangeStart),m(),p("for",d),m(3),p("disabled",e.loading()),m(4),v(e.loading()?34:-1),m(),v(!e.loading()&&e.shifts().length===0?35:-1),m(),v(e.shifts().length>0?36:-1)}},dependencies:[A,O,j,W,q,ze,Oe,Be,Ge,Fe,Re,He,Ne,Le,Ke,je,L,N,F,Q,G,U,B,R,J,Y,z,he,ge,qe,H,oe,ie,ne,ae,Pe,Ve,Se,Je,Qe,Te],styles:[".page-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:0}.subtitle[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--mat-sys-on-surface-variant)}.header-actions[_ngcontent-%COMP%]{display:flex;gap:8px}.filter-row[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:center;margin-bottom:16px}.full-width[_ngcontent-%COMP%]{width:100%}.actions-cell[_ngcontent-%COMP%]{text-align:right;white-space:nowrap}.empty-state[_ngcontent-%COMP%]{text-align:center;padding:64px 16px;color:var(--mat-sys-on-surface-variant)}.empty-icon[_ngcontent-%COMP%]{font-size:48px;width:48px;height:48px;opacity:.4}"]})};export{Ce as GenerateShiftsDialogComponent,be as ScheduledShiftDialogComponent,Ue as ScheduledShiftsComponent,De as ShiftAssignmentDialogComponent};

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.