{"version":3,"sources":["webpack:///js/common.7abaadaee21ce50c6d60.js","webpack:///D:/a/1/s/src\\app\\base\\base.service.ts","webpack:///D:/a/1/s/src\\app\\bootstrap\\ngmodule.ts","webpack:///D:/a/1/s/src\\app\\services\\index.ts","webpack:///D:/a/1/s/src\\app\\base\\base.entity.ts","webpack:///D:/a/1/s/src\\app\\config.ts","webpack:///D:/a/1/s/src/app/services/calendar.service.ts","webpack:///D:/a/1/s/src/app/services/shifts.service.ts","webpack:///D:/a/1/s/src/app/services/employeeAvailability.service.ts","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\beschikbaarheid2.jpg","webpack:///D:/a/1/s/src/app/authsettings/services/authusers.service.ts","webpack:///D:/a/1/s/src/app/modules/hr/hr.states.ts","webpack:///D:/a/1/s/src/app/modules/shifts/shift.states.ts","webpack:///D:/a/1/s/src/app/services/agreements.service.ts","webpack:///D:/a/1/s/src/app/services/cootje.service.ts","webpack:///D:/a/1/s/src/app/services/employeeSkills.service.ts","webpack:///D:/a/1/s/src/app/services/location.service.ts","webpack:///D:/a/1/s/src/app/services/news.service.ts","webpack:///D:/a/1/s/src/app/services/person.service.ts","webpack:///D:/a/1/s/src/app/services/team.service.ts","webpack:///D:/a/1/s/src/app/services/timezone.service.ts","webpack:///D:/a/1/s/src/app/services/twinfield.service.ts","webpack:///D:\\a\\1\\s\\src\\translations\\nl_NL.po","webpack:///D:/a/1/s/src\\app\\authorization\\index.ts","webpack:///D:/a/1/s/src\\app\\authsettings\\index.ts","webpack:///D:/a/1/s/src\\app\\global\\index.ts","webpack:///D:/a/1/s/src\\app\\main\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\index.ts","webpack:///D:\\a\\1\\s\\src\\scripts\\assign.polyfill.js","webpack:///D:\\a\\1\\s\\node_modules\\@abosol\\theme\\node_modules\\moment\\locale /^\\.\\/.*$/","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\beschikbaarheid1.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\beschikbaarheid3.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst1.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst2.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst3.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst4.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst5.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\dienst6.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\howtoinschrijven.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\inschrijven3.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren1.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren2.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren3.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren4.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren5.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren6.jpg","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\images\\urendeclareren7.jpg","webpack:///D:\\a\\1\\s\\src\\images\\avatar.jpg","webpack:///D:\\a\\1\\s\\src\\images\\logo-dark.png","webpack:///D:\\a\\1\\s\\src\\images\\logo-white.png","webpack:///D:\\a\\1\\s\\src\\app\\authorization\\authorized\\index.html","webpack:///D:\\a\\1\\s\\src\\app\\authorization\\login\\index.html","webpack:///D:\\a\\1\\s\\src\\app\\authorization\\logout\\index.html","webpack:///D:\\a\\1\\s\\src\\app\\authorization\\unauthorized\\index.html","webpack:///D:\\a\\1\\s\\src\\app\\authsettings\\components\\authsettings.html","webpack:///D:\\a\\1\\s\\src\\app\\authsettings\\components\\authsettings.server.html","webpack:///D:\\a\\1\\s\\src\\app\\authsettings\\components\\authsettings.users.html","webpack:///D:\\a\\1\\s\\src\\app\\authsettings\\components\\authsettings.usersItem.html","webpack:///D:\\a\\1\\s\\src\\app\\authsettings\\components\\resetPassword.html","webpack:///D:\\a\\1\\s\\src\\app\\components\\twinfield.html","webpack:///D:\\a\\1\\s\\src\\app\\main\\app.html","webpack:///D:\\a\\1\\s\\src\\app\\main\\browser.page.html","webpack:///D:\\a\\1\\s\\src\\app\\main\\chatPanel.html","webpack:///D:\\a\\1\\s\\src\\app\\main\\navbar.html","webpack:///D:\\a\\1\\s\\src\\app\\main\\newsPanel.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\accountBasicInfoModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\accounts.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\accounts.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\accounts.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\contactInfoModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\financialInfoModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\accounts\\reminderIntervalModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\agreements\\agreements.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\agreements\\agreements.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\contacts\\contactBasicInfoModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\contacts\\contactSocialModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\contacts\\contacts.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\contacts\\contacts.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\contacts\\contacts.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\crm.dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\crm.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\employees\\employees.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\employees\\employees.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\leads\\leads.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\leads\\leads.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\leads\\leads.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\leads\\leadsInfoModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\locations\\locations.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\locations\\locations.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\notes\\note.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\teams\\teams.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\crm\\teams\\teams.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\customerShifts\\shift.calendar.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\customerShifts\\shift.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\availableEmployees\\dashboardAvailableEmployees.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\dashboard.birthday.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\dashboard.openshifts.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\dashboard.skills.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\news\\dashboardNews.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\news\\news.item.basic.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\notes\\dashboardNotes.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\tasks\\dashboardTasks.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\dashboard\\timesheetsSummary\\dashboardTimesheetsSummary.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\documentation\\documentation.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\applicants\\applicants.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\applicants\\applicants.item.basic.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\applicants\\applicants.item.employee.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\applicants\\applicants.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\applicants\\applicants.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\availabilityList\\availabilityList.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\availability\\availability.calendar.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\availability\\availability.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\employees\\employees.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\employees\\employees.item.basic.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\employees\\employees.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\employees\\employees.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\hr.dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\hr.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\nmbrs\\nmbrs.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\shifts\\shifts.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\shifts\\shifts.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\skills\\skills.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\hr\\skills\\skills.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\notes\\note.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\notes\\note.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\quotations\\invoiceDetails.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\quotations\\quotations.cootje.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\quotations\\quotations.dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\quotations\\quotations.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\schedule\\schedule.calendar.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\schedule\\schedule.declaration.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\schedule\\schedule.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\schedule\\schedule.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\schedule\\schedule.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\schedule\\subscription.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\company\\settings.company.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\employee\\employee.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\employee\\employee.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\salaryScales\\salaryScale.dialog.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\salaryScales\\salaryScale.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\staff\\staff.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\staff\\staff.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\staff\\staff.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\templates\\templatesEditor.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\timezones\\timezones.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\timezones\\timezones.item.basic.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\timezones\\timezones.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\settings\\timezones\\timezones.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shared\\dateTimePicker.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shared\\list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shared\\uploader.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shared\\user-account\\user-account.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\checkAvailabilityModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\employeePicker.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\employeeSummary.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\shift.calendar.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\shift.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\shift.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\shift.list.employee.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\shift.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\shift.list.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\shifts\\subscriptionsModal.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\skills\\skills.dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\skills\\skills.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\subscriptions\\subscriptions.dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\subscriptions\\subscriptions.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\subscriptions\\subscriptions.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\tasks\\task.archive.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\tasks\\task.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\tasks\\task.item.basic.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\tasks\\task.item.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\tasks\\task.list.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\timesheets\\declaration.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\timesheets\\timesheetDetails.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\timesheets\\timesheets.dashboard.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\timesheets\\timesheets.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\timesheets\\timesheetsOverview.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\timesheets\\timesheetsSummary.html","webpack:///D:\\a\\1\\s\\src\\app\\modules\\twinfield\\twinfield.html","webpack:///D:\\a\\1\\s\\node_modules\\moment\\locale /^\\.\\/.*$/","webpack:///D:/a/1/s/src\\app\\authorization\\auth.states.ts","webpack:///D:/a/1/s/src\\app\\authorization\\authorized\\index.ts","webpack:///D:/a/1/s/src\\app\\authorization\\login\\index.ts","webpack:///D:/a/1/s/src\\app\\authorization\\logout\\index.ts","webpack:///D:/a/1/s/src\\app\\authorization\\services\\auth.hook.ts","webpack:///D:/a/1/s/src\\app\\authorization\\services\\auth.service.ts","webpack:///D:/a/1/s/src\\app\\authorization\\services\\index.ts","webpack:///D:/a/1/s/src\\app\\authorization\\unauthorized\\index.ts","webpack:///D:/a/1/s/src\\app\\authsettings\\authsettings.run.ts","webpack:///D:/a/1/s/src/app/authsettings/authsettings.states.ts","webpack:///D:/a/1/s/src\\app\\authsettings\\components\\authsettings.component.ts","webpack:///D:/a/1/s/src/app/authsettings/components/authsettings.server.component.ts","webpack:///D:/a/1/s/src/app/authsettings/components/authsettings.users.component.ts","webpack:///D:/a/1/s/src/app/authsettings/components/authsettings.usersItem.component.ts","webpack:///D:/a/1/s/src/app/authsettings/components/resetPassword.component.ts","webpack:///D:/a/1/s/src\\app\\authsettings\\services\\authsettings.factory.ts","webpack:///D:/a/1/s/src/app/authsettings/services/authsettings.service.ts","webpack:///D:/a/1/s/src\\app\\base\\base.app.service.ts","webpack:///D:/a/1/s/src\\app\\bootstrap.ts","webpack:///D:/a/1/s/src/app/components/twinfield.component.ts","webpack:///D:/a/1/s/src\\app\\directive\\compareTo.ts","webpack:///D:/a/1/s/src\\app\\directive\\file.ts","webpack:///D:/a/1/s/src/app/directive/fixedHeight.ts","webpack:///D:/a/1/s/src\\app\\directive\\passwordValidation.ts","webpack:///D:/a/1/s/src\\app\\filters\\bytes.filter.ts","webpack:///D:/a/1/s/src\\app\\filters\\isDay.filter.ts","webpack:///D:/a/1/s/src/app/main/app.component.ts","webpack:///D:/a/1/s/src\\app\\main\\app.config.ts","webpack:///D:/a/1/s/src/app/main/app.run.ts","webpack:///D:/a/1/s/src/app/main/app.service.ts","webpack:///D:/a/1/s/src\\app\\main\\app.states.ts","webpack:///D:/a/1/s/src/app/main/browser.page.component.ts","webpack:///D:/a/1/s/src/app/main/chatPanel.component.ts","webpack:///D:/a/1/s/src/app/main/navbar.component.ts","webpack:///D:/a/1/s/src/app/main/newsPanel.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/accounts/accountBasicInfoModal.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\accounts\\accounts.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/accounts/accounts.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\accounts\\accounts.list.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/accounts/contactInfoModal.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/accounts/financialInfoModal.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/accounts/reminderIntervalModal.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/agreements/agreements.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\agreements\\agreements.list.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/contacts/contactBasicInfoModal.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/contacts/contactSocialModal.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\contacts\\contacts.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/contacts/contacts.item.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/contacts/contacts.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\crm.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/crm.dashboard.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/crm.states.ts","webpack:///D:/a/1/s/src/app/modules/crm/employees/employees.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\employees\\employees.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\leads\\leads.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/leads/leads.item.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/leads/leads.list.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/leads/leadsInfoModal.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/locations/locations.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\locations\\locations.list.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/notes/note.component.ts","webpack:///D:/a/1/s/src/app/modules/crm/teams/teams.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\crm\\teams\\teams.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\customerShifts\\index.ts","webpack:///D:/a/1/s/src/app/modules/customerShifts/shift.calendar.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\customerShifts\\shift.component.ts","webpack:///D:/a/1/s/src/app/modules/customerShifts/shift.states.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/availableEmployees/dashboardAvailableEmployees.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/dashboard.birthday.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\dashboard\\dashboard.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/dashboard.openshifts.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/dashboard.skills.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\dashboard\\dashboard.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\dashboard\\index.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/news/dashboardNews.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/news/news.item.basic.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/notes/dashboardNotes.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/tasks/dashboardTasks.component.ts","webpack:///D:/a/1/s/src/app/modules/dashboard/timesheetsSummary/dashboardTimesheetsSummary.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\documentation\\documentation.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\documentation\\documentation.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\documentation\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\applicants\\applicants.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/applicants/applicants.item.basic.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/applicants/applicants.item.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/applicants/applicants.item.employee.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/applicants/applicants.list.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/availabilityList/availabilityList.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/availability/availability.calendar.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/availability/availability.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\employees\\employees.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/employees/employees.item.basic.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/employees/employees.item.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/employees/employees.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\hr.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\hr.dashboard.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\nmbrs\\nmbrs.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/shifts/shifts.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\shifts\\shifts.list.component.ts","webpack:///D:/a/1/s/src/app/modules/hr/skills/skills.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\hr\\skills\\skills.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\notes\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\notes\\note.component.ts","webpack:///D:/a/1/s/src/app/modules/notes/note.list.component.ts","webpack:///D:/a/1/s/src/app/modules/notes/notes.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\quotations\\index.ts","webpack:///D:/a/1/s/src/app/modules/quotations/invoiceDetails.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\quotations\\quotations.component.ts","webpack:///D:/a/1/s/src/app/modules/quotations/quotations.cootje.component.ts","webpack:///D:/a/1/s/src/app/modules/quotations/quotations.dashboard.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\quotations\\quotations.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\schedule\\index.ts","webpack:///D:/a/1/s/src/app/modules/schedule/schedule.calendar.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\schedule\\schedule.component.ts","webpack:///D:/a/1/s/src/app/modules/schedule/schedule.declaration.component.ts","webpack:///D:/a/1/s/src/app/modules/schedule/schedule.item.component.ts","webpack:///D:/a/1/s/src/app/modules/schedule/schedule.list.component.ts","webpack:///D:/a/1/s/src/app/modules/schedule/schedule.states.ts","webpack:///D:/a/1/s/src/app/modules/schedule/subscription.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/company/settings.company.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/employee/employee.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\employee\\employee.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\index.ts","webpack:///D:/a/1/s/src/app/modules/settings/salaryScales/salaryScale.dialog.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\salaryScales\\salaryScale.list.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\settings.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/settings.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\staff\\staff.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/staff/staff.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\staff\\staff.list.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/templates/templatesEditor.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\timezones\\timezones.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/timezones/timezones.item.basic.component.ts","webpack:///D:/a/1/s/src/app/modules/settings/timezones/timezones.item.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\settings\\timezones\\timezones.list.component.ts","webpack:///D:/a/1/s/src/app/modules/shared/dateTimePicker.component.ts","webpack:///D:/a/1/s/src/app/modules/shared/list.component.ts","webpack:///D:/a/1/s/src/app/modules/shared/uploader.component.ts","webpack:///D:/a/1/s/src/app/modules/shared/user-account/user-account.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/checkAvailabilityModal.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/employeePicker.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\shifts\\employeeSummary.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\shifts\\index.ts","webpack:///D:/a/1/s/src/app/modules/shifts/shift.calendar.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\shifts\\shift.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/shift.item.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/shift.list.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/shift.list.employee.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/shift.list.item.component.ts","webpack:///D:/a/1/s/src/app/modules/shifts/subscriptionsModal.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\skills\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\skills\\skills.component.ts","webpack:///D:/a/1/s/src/app/modules/skills/skills.dashboard.component.ts","webpack:///D:/a/1/s/src/app/modules/skills/skills.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\subscriptions\\index.ts","webpack:///D:/a/1/s/src\\app\\modules\\subscriptions\\subscriptions.component.ts","webpack:///D:/a/1/s/src/app/modules/subscriptions/subscriptions.dashboard.component.ts","webpack:///D:/a/1/s/src/app/modules/subscriptions/subscriptions.item.component.ts","webpack:///D:/a/1/s/src/app/modules/subscriptions/subscriptions.states.ts","webpack:///D:/a/1/s/src\\app\\modules\\tasks\\index.ts","webpack:///D:/a/1/s/src/app/modules/tasks/task.archive.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\tasks\\task.component.ts","webpack:///D:/a/1/s/src/app/modules/tasks/task.item.basic.component.ts","webpack:///D:/a/1/s/src/app/modules/tasks/task.item.component.ts","webpack:///D:/a/1/s/src/app/modules/tasks/task.list.component.ts","webpack:///D:/a/1/s/src/app/modules/tasks/tasks.states.ts","webpack:///D:/a/1/s/src/app/modules/timesheets/declaration.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\timesheets\\index.ts","webpack:///D:/a/1/s/src/app/modules/timesheets/timesheetDetails.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\timesheets\\timesheets.component.ts","webpack:///D:/a/1/s/src/app/modules/timesheets/timesheets.dashboard.component.ts","webpack:///D:/a/1/s/src/app/modules/timesheets/timesheets.states.ts","webpack:///D:/a/1/s/src/app/modules/timesheets/timesheetsOverview.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\timesheets\\timesheetsSummary.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\twinfield\\index.ts","webpack:///D:/a/1/s/src/app/modules/twinfield/twinfield.component.ts","webpack:///D:/a/1/s/src\\app\\modules\\twinfield\\twinfield.states.ts","webpack:///D:/a/1/s/src/app/services/accountEmployee.service.ts","webpack:///D:/a/1/s/src/app/services/accounts.service.ts","webpack:///D:/a/1/s/src/app/services/applicantStatusHistory.service.ts","webpack:///D:/a/1/s/src/app/services/applicants.service.ts","webpack:///D:/a/1/s/src/app/services/contacts.service.ts","webpack:///D:/a/1/s/src/app/services/dashboard.service.ts","webpack:///D:/a/1/s/src/app/services/declarations.service.ts","webpack:///D:/a/1/s/src/app/services/employees.service.ts","webpack:///D:/a/1/s/src\\app\\services\\enum.service.ts","webpack:///D:/a/1/s/src/app/services/invoices.service.ts","webpack:///D:/a/1/s/src/app/services/leads.service.ts","webpack:///D:/a/1/s/src/app/services/masterdata.service.ts","webpack:///D:/a/1/s/src/app/services/nmbrs.service.ts","webpack:///D:/a/1/s/src/app/services/notes.service.ts","webpack:///D:/a/1/s/src/app/services/settings.service.ts","webpack:///D:/a/1/s/src/app/services/staff.service.ts","webpack:///D:/a/1/s/src/app/services/tasks.service.ts","webpack:///D:/a/1/s/src/app/services/templates.service.ts"],"names":["webpackJsonp","module","exports","__webpack_require__","Object","defineProperty","value","_","BaseService","Restangular","AppService","itemName","_this","this","observerCallbacks","collection","subscribe","ctrlname","callback","push","ctrl","unsubscribe","remove","notifyObservers","type","forEach","item","all","params","limit","customGET","then","response","list","plain","listLoaded","getList","getListLoaded","customAll","url","queryParams","prototype","one","id","toString","get","delete","promise","result","itemId","NotifyService","success","catch","error","data","post","customPost","displayResult","customPOST","put","customPUT","customPut","customGet","getChild","childName","undefined","postChild","parentId","putChild","childId","deleteChild","customDELETE","customDelete","angular","ngmodule","BLANK_MODULE","states","components","directives","services","filters","factories","configBlocks","runBlocks","loadNg1Module","ngModule","appModule","assign","config","$stateProvider","state","keys","name","component","directive","service","filter","factory","configBlock","runBlock","run","__export","m","p","hasOwnProperty","BaseEntity","$","isProd","trim","isStaging","VERSION","BASE_URL","BASE_AUTH_URL","API_URL","AUTH_API_URL","AUTH_LOGIN_URL","AUTH_LOGOUT_URL","AUTH_CLIENT_ID","AUTH_SCOPES","default","call","__extends","extendStatics","setPrototypeOf","__proto__","Array","d","b","__","constructor","create","base_entity_1","base_service_1","ICalendarShift","_super","apply","arguments","CalendarService","$inject","IShift","subscribed","isInThePast","IBulkactionData","ShiftService","getFilter","getLightByDate","getByEmployee","start","end","employeeId","getByCurrentEmployee","bulkAction","IEmployeeAvailability","EmployeeAvailabilityService","IAuthUser","IAuthClaims","AuthUserService","AuthSettingsApi","AuthService","localStorageService","$q","resetPassword","user","getRoles","getClaims","getCurrentUser","tokendata","getDataFromToken","GetAuthorizationData","userId","sub","deferred","defer","resolve","claims","roles","set","status","code","hrState","parent","redirectTo","permissions","only","hrDashboardState","views","main","employeesState","employeesListState","employeesItemState","tab","tasks","EmployeesService","$stateParams","notes","sortfield","sortorder","employee","history","DeclarationService","employeeSkills","functions","MasterdataService","getItems","employeesItemBasicState","modal","transportationTypes","salaryScales","shiftsItemState","shiftId","availabilityItemState","availabilityId","statuses","skillsItemState","employeeSkillId","skills","availabilityListState","avalabilityStatuses","applicantsState","applicantsListState","recruiter","function","targetaudiance","preferredTargetAudiences","applicationStatuses","users","gatBackoffice","applicantsArchiveState","archive","applicantsItemState","applicant","ApplicantsService","applicationStatusHistories","ApplicantStatusHistoryService","getPerApplicant","applicantsArchiveItemState","applicantsItemBasicState","applicantsArchiveItemBasicState","applicantsItemEmployeeState","shiftState","shiftCalendarState","shiftItemState","size","shift","accounts","AccountsService","employees","getEmployeesByStatus","shiftListState","dynamic","refreshShift","PermPermissionStore","contentClasses","shiftListItemState","shiflistitem@shifts.list","shiftListSubscriptionsModalState","shiftListEmployeeState","checkAvailabilityState","IAgreement","AgreementService","ICootjeEmployee","ICootjeDienst","CootjeService","sendToCootje","diensten","IEmployeeSkill","IBlob","EmployeeSkillsService","postBlob","file","formData","FormData","append","withHttpConfig","transformRequest","identity","Content-Type","getBlobs","getBlob","blobid","setFullResponse","Blob","headers","ILocation","LocationService","INewsItem","NewsService","getUnread","IPerson","PersonService","ITeam","TeamService","ITimezone","TimezonesService","TwinfieldService","verifyToken","cache","setToken","redirectUrl","window","location","protocol","host","setTwinfieldRedirectUri","console","log","pathname","search","gettextCatalog","setStrings","A password has to have at least 8 characters with minimal one uppercase, number and non alphanumeric character","Account","Account notes","Account/Employee/Applicant","Account:","Accounts","Actions","Add Account","Add Applicant","First Status","Last Status","Add Contact","Add Contact Person","Add Employee","Add Lead","Add News Item","Add Shift","Add Task","Add User","Add agreement","Add availability","Add employee","Add location","Add note","Add reminder interval","Add salary scale","Add skill","Add timezone","Address","Address:","Age","Age:","Agreement","Agreements","Ammount","Amount","Amount of hours","Amount:","Applicant basic information","Applicants","Apply","Approved","Archive","Assign","Auth Settings","Availability","Available","BIC:","BSN","BSN:","Back","Bank Account Number","Bank account","Basic info","Birthday","Birthday:","Calculation index","Calendar","Cancel","Chamber Of Commerce Number","Chamber of Commerce Number","Check availability","Logout","City","City:","Claims","Close","Code","Code:","Comment","Comment customer","Comment employee","Comment internal","Comment:","Company","Company Name","Company basic information","Company contact information","Company financial information","Confirm password","Conflicting shift:","Contact","Contact Persons","Contact basic information","Contact:","Contacts","Contract","Contract ID:","Count","Country","Country of birth:","Country:","Create account","Create employee","Create task","Created by me","Creation date:","Customer reference","Date","Date:","Declarations","Declarations count","Declared hours sum","Declared:","Delete","Delete account","Delete applicant","Delete contact","Delete employee","Delete task","Delete timezone","Delete user","Delivery day","Description","Description:","Display name:","Distance","Distance:","Document of proof","Edit","Edit task","Email","Email Address","Email employee","Email team","Email:","Employee","Employee basic information","Employee selector","Employee:","Employees","End","End Date","End date","Expenses declaration","Fax","Fax:","Files","Status history","Filter by function","Filter by max distance","Filter by status","Filter created by","Filters","Financial","First name","First name:","From","From:","Full Name","Function","Function:","Gender:","Get emails","Global filters","Gross hourly wage","Herhaal wachtwoord","Hour code","HourCodeName:","Hourly wage","Hours sum","I know Operando from","I know Operando from:","IBAN","IBAN:","ID","In progress","Inactive","Invoices","Job offer","Job offer:","Kilometers","Last name","Last name:","Last shifts:","Leads","Leads information","LinkedIn","List","Location","Location:","Locations","Login URL","Logout URL","Marital status:","Middle name","Mileage","More","Name","Name and Address","Name:","New shift","News","News item","Next","Nickname:","Nmbrs","NmbrsId:","No items found","Note","Notes","Notes:","Notify employee","Notify team","Number","Number declared","Number of approved hours","Number of approved shifts","Number of declared hours","Number of declared shifts","Number of scheduled hours","Number of scheduled shifts","Number of services","Opdrachtgever","Open","Overview","Password","Percentage","Percentage:","Personal info","Phone","Phone Number","Phone:","Planned:","Post Address","Post City","Post Country","Post Number","Post Street","Post Zip","Postal code:","Preferred target audience","Preferred target audience:","Prev","Previously at location","Previously at location:","Priority","Priority:","Pro forma invoices","RVA Code","Recruiter","Recruiter:","Refresh all employees from NMBRS","Refresh employee from NMBRS","Rejected","Reminder interval","Reset Password","Reset all","Reset filter","Restore employee","Roles","SCA Code","Salary scale","Salary scale:","Save","Save and copy","Save and new","Saved","Schedule","Search","Select status","Send to Nmbrs","Send to Twinfield","Server Settings","Set employee","Set status","Settings","Shift","Shift data","Shift subscriptions","Shifts","Shifts count","Sign up","Skill","Skills","Social information","Start","Start date:","Startdatum","Starttijd","Status","Status:","Street","Subscribe","Subscribed","Subscription","Sync with Nmbrs","Tags","Tags:","Target audience","Tasks","Team","Team:","The text is too long. It should be max 1024 characters","This field is required","Till","Till:","Time","Time declaration","Timesheets","Timezone basic information","Timezones","Title","Total","Total amount","Transportation type","Transportation type:","Twinfield ID","Twinfield Id","Twinfield amount","Type","Type:","Unassign","Unknown","Unsubscribe","Upload file","User","User-Account","User:","Username","Username:","Users","VAT Code","VAT Number","Website","Website:","Wijzigen","Work history","Your passwords did not match","Zip","choose a status","choose a tag","hours","km","locations","teams","times","to","until","services_1","auth_states_1","ngmodule_1","login_1","logout_1","authorized_1","unauthorized_1","auth_hook_1","authorizationAppModule","login","logout","authorized","unauthorized","loginState","logoutState","authorizedState","unauthorizedState","authHookRunBlock","authsettings_usersItem_component_1","authsettings_server_component_1","authusers_service_1","authsettings_factory_1","authsettings_run_1","authsettings_users_component_1","authsettings_component_1","resetPassword_component_1","authsettings_states_1","authsettings_service_1","authSettingsAppModule","authSettingsComponent","authSettingsUsersComponent","authSettingsServerComponent","authSettingsUsersItemComponent","resetPasswordComponent","authSettingsState","authSettingsUsersState","authSettingsServerState","authSettingsUsersItemState","AuthSettingsService","authServiceRun","globalAppModule","dateTimePicker_component_1","fixedHeight_1","browser_page_component_1","compareTo_1","passwordValidation_1","bytes_filter_1","location_service_1","app_service_1","app_component_1","app_states_1","app_config_1","app_run_1","navbar_component_1","chatPanel_component_1","newsPanel_component_1","file_1","twinfield_component_1","mainAppModule","app","operandoNavbar","chatPanelComponent","browserPageComponent","dateTimePickerComponent","newsPanelComponent","twinfieldComponent","appState","browserState","otherwiseConfigBlock","html5ConfigBlock","themeConfigBlock","masterDataConfigBlock","SettingsService","EnumService","bytes","passwordValidation","compareTo","fixedHeight","target","varArgs","TypeError","index","length","nextSource","nextKey","webpackContext","req","webpackContextResolve","map","Error","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./th","./th.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","returnTo","$transition$","redirectedFrom","targetState","$state","router","stateService","from","AuthorizedController","authService","$onInit","authorizeCallback","setTokenHeader","controller","template","LoginController","authorize","returnToOriginalState","options","reload","go","grant_type","client_id","client_secret","SetAuthorizationData","access_token","bindings","LogoutController","$transitions","requiresAuthCriteria","requiresAuth","redirectToLogin","transition","isAuthorized","onBefore","priority","config_1","$window","$timeout","role","hasRole","reject","text","setDefaultHeaders","Authorization","indexOf","getTokenData","authorizationUrl","redirect_uri","origin","scope","nonce","Math","random","now","encodeURI","href","id_token","id_token_hint","post_logout_redirect_uri","ResetAuthorizationData","hash","substr","split","reduce","parts","token","authResponseIsValid","dataIdToken","getEmployeeId","encoded","JSON","parse","urlBase64Decode","str","output","replace","atob","UnAuthorizedController","authUsers","authUser","main@authsettings","AuthSettingsController","AuthSettingsServerController","AuthSettingsUsersController","AuthSettingsUsersItemController","i","save","createAccount","userName","email","displayName","updateUser","editField","deleteField","fieldedit","unset","saveFields","editRole","deleteRole","roleedit","splice","saveRole","ResetPasswordController","withConfig","RestangularConfigurer","setBaseUrl","IAuthSettings","BaseAppService","locale","element","document","ready","bootstrap","body","strictDi","TwinfieldController","$scope","$location","generateNonce","twinfieldUrl","floor","getTime","authenticateTwinfield","require","otherModelValue","link","attributes","ngModel","$validators","modelValue","$watch","$validate","restrict","attr","listener","$apply","multiple","$setViewValue","files","bind","screenSize","resize","$attrs","setheight","offset","top","offsetmain","offsettop","docHeight","height","is","onresize","event","$observe","mCtrl","myValidation","re","$setValidity","test","$parsers","precision","isNaN","parseFloat","isFinite","units","number","pow","toFixed","util_1","isDay","input","day","out","isArray","getDate","getMonth","getFullYear","shifts_service_1","moment","AppController","ThemeService","version","setIsSmallSidebar","menuItems","sref","iconclass","submenu","currentShift","roundMinutes","add","toDate","date","round","$urlRouterProvider","otherwise","$locationProvider","html5Mode","enabled","requireBase","ThemeServiceProvider","$animateProvider","setLogo","setLogoDark","classNameFilter","MasterdataServiceProvider","setType","setApiItemName","RestangularProvider","localStorageServiceProvider","setStorageType","notifyService","DTDefaultOptions","PermRoleStore","deviceDetector","lang","navigator","language","lf","setCurrentLanguage","debug","browser","setErrorInterceptor","responseHandler","addResponseInterceptor","operation","what","setLanguage","sUrl","defineRole","roleName","toLowerCase","base_app_service_1","SweetAlert","homeState","BrowserPageController","ChatPanelController","isSameDay","openShift","setLocations","setAccountNotes","setEmployees","teamLocationAccountId","setTeams","accountNotes","request","accountId","locationId","teamLocationId","startDate","endDate","selectedEmployee","find","employeeSummary","approve","stopPropagation","updateShift","shifts","s","NavbarController","$interval","isBackoffice","isCustomer","isEmployee","logo","getLogoDark","unreadCnt","getNewsCount","toggleSidebar","toggleClass","toggleSlider","hasClass","toggleNewsSlider","news","openResetPasswordModal","showAvailModal","newitems","swal","title","showCancelButton","confirmButtonColor","cancelButtonColor","confirmButtonText","cancelButtonText","isConfirm","readLater","NewsPanelController","setRead","AccountBasicInfoController","submitAccountBasicInfo","onUpdate","account","accountBasicInfoComponent","AccountsController","accountsComponent","AccountsItemController","NotesService","$filter","activeTabIndex","IAccount","isNew","reminderIntervals","res","tags","filterNotes","openProject","action","accountsService","notesService","sweetAlert","filteredNotes","note","selectedTag","submitAccount","saveAccount","deleteAccount","editAccountBasicInfoModal","editContactInfoModal","editFinancialInfoModal","deliveryDay","updateNote","addNoteModal","updateNoteModal","deleteNote","currentNote","submitNote","newNote","goBack","submitReminderInterval","reminderInterval","itemToEdit","currentReminderInterval","deleteReminderInterval","accountsItemComponent","contacts","agreements","accountEmployees","AccountsListController","sortType","menu","accountsListComponent","ContactInfoController","submitContactInfo","contactInfoComponent","FinancialInfoController","submitFinancialInfo","financialInfoComponent","ReminderIntervalController","submit","closeModal","reminderIntervalComponent","index_1","AgreementsItemController","agreementId","agreement","byEmployee","startDateBeforeRender","$dates","setUTCHours","endDateBeforeRender","$view","dateTimeFrom","activeDate","subtract","localDateValue","valueOf","selectable","submitAgreement","format","dateTimeTo","salaryScaleId","calculationIndex","grossHourlyWageValue","agreementsItemComponent","close","AgreementsListController","currentPage","itemsPerPage","$onChanges","parseDate","agreementsListComponent","ContactBasicInfoController","contact","getLocations","getMasterdata","submitContactBasicInfo","accountSelected","contactTags","contactBasicInfoComponent","ContactSocialController","submitSocialForm","contactSocialComponent","ContactsController","contactsComponent","ContactsItemController","ContactsService","IContact","setFullName","fullName","firstName","middleName","lastName","join","contactsService","dataTable","pageLength","lengthChange","searching","submitContact","saveContact","deleteContact","editContactBasicInfoModal","editContactSocialModal","contactId","contactsItemComponent","ContactsListController","emailToClipboard","emailsList","e","emailAddress","toUpperCase","tag","company","accountName","prompt","resetFilter","contactsListComponent","CrmController","crmComponent","CrmDashboardController","sortTypeContacts","crmDashboardComponent","summary","crmState","crmDashboardState","DashboardService","accountsState","accountsListState","accountsItemState","locationsItemState","teamsItemState","teamId","agreementsItemState","accountEmployeesItemState","accountEmployeeId","contactsState","contactsListState","contactsItemState","leadsState","leadsListState","leads","LeadsService","leadsItemState","lead","reminderItemState","AccountEmployeesItemController","AccountEmployeeService","accountEmployee","submitAccountEmployee","accountEmployeesItemComponent","AccountEmployeesListController","accountEmployeesListComponent","agreements_item_component_1","agreements_list_component_1","agreements_service_1","team_service_1","contactSocialModal_component_1","leadsInfoModal_component_1","contactBasicInfoModal_component_1","financialInfoModal_component_1","contactInfoModal_component_1","accountBasicInfoModal_component_1","note_component_1","leads_item_component_1","leads_list_component_1","leads_component_1","crm_dashboard_component_1","contacts_item_component_1","contacts_list_component_1","contacts_component_1","accounts_item_component_1","accounts_list_component_1","accounts_component_1","crm_component_1","crm_states_1","list_component_1","locations_list_component_1","locations_item_component_1","teams_list_component_1","teams_item_component_1","user_account_component_1","employees_list_component_1","employees_item_component_1","accountEmployee_service_1","reminderIntervalModal_component_1","crmAppModule","leadsComponent","leadsListComponent","leadsItemComponent","crmNoteComponent","leadsInfoComponent","listComponent","locationsListComponent","locationsItemComponent","teamsListComponent","teamsItemComponent","userAccountComponent","TasksService","LeadsController","LeadsItemController","leadsService","submitLead","saveLead","deleteLead","LeadsListController","LeadsInfoController","LocationsItemController","submitLocation","LocationsListController","NoteController","focusInput","getElementById","focus","TeamsItemController","team","submitTeam","addContact","teamContact","newContact","copyGuid","writeText","alert","TeamsListController","shift_component_1","shift_calendar_component_1","shift_states_1","applicationsAppModule","customerShiftComponent","customerShiftCalendarComponent","customerShiftState","customerShiftCalendarState","customerShiftCalendarItemState","customerShiftListState","customerShiftListItemState","calendar_service_1","ShiftCalendarController","uiCalendarConfig","$compile","$sce","eventSources","getEvents","uiConfig","calendar","header","left","right","buttonIcons","prev","next","displayEventEnd","axisFormat","allDaySlot","timeFormat","eventLimit","eventClick","openItem","eventRender","newShift","calendarItem","statusColor","teamLocationName","calendars","fullCalendar","view","color","isBefore","css","background-color","border-color","opacity","uib-tooltip","tooltip-append-to-body","timezone","events","employeeName","employeeDisplayName","$onDestroy","arg0","arg1","ShiftController","shiflistitem@customerShifts.list","DashboardAvailableEmployeesController","getEmployeeAvailability","employeeAvailability","dashboardAvailableEmployeesComponent","DashboardBirthdayController","getEmployees","currentYear","year","birthday","isAfter","orderBy","dashboardBirthdayComponent","DashboardController","dashboard","DashboardOpenshiftsController","getShift","till","includeSubscriptions","dashboardOpenshiftsComponent","DashboardSkillsController","isExpired","dashboardSkillsComponent","dashboardState","newsall","newsItemBasicState","dashboard_birthday_component_1","dashboard_component_1","dashboard_states_1","dashboard_openshifts_component_1","dashboard_skills_component_1","dashboardNotes_component_1","dashboardAvailableEmployees_component_1","dashboardTimesheetsSummary_component_1","dashboardTasks_component_1","employeeAvailability_service_1","news_service_1","dashboardNews_component_1","news_item_basic_component_1","dashboardAppModule","dashboardNotesComponent","dashboardTimesheetsSummaryComponent","dashboardTasksComponent","dashboardNewsComponent","newsItemBasicComponent","DashboardNewsController","newsItemTypes","getNews","getType","t","setAll","notify","addNewsItem","NewsItemBasicController","newsItem","createdDate","expireDate","DashboardNotesController","getNotes","applicantId","slice","getNoteAuthorName","applicantName","DashboardTasksController","getTasks","DashboardTimesheetsSummaryController","getTimesheetsWeek1","getTimesheetsWeek2","startOf","endOf","timesheetsWeek1","timesheetsWeek2","DocumentationController","documentationComponent","documentationState","documentation_states_1","documentation_component_1","documentationAppModule","ApplicantsController","applicantsComponent","ApplicantsItemBasicController","applicantsItemBasicComponent","ApplicantsItemController","FileSaver","current","u","getFiles","postFile","applicantsService","uploadfile","deleteFile","deleteBlob","downloadFile","xhr","XMLHttpRequest","responseType","onreadystatechange","readyState","URL","createObjectURL","aLink","createElement","appendChild","download","filenameWithExtention","click","open","setRequestHeader","send","applicantStatusHistoryService","submitApplicant","saveApplicant","archiveApplicant","inactive","unarchiveApplicant","deleteApplicant","deleteHistory","x","updateHistory","uploadAll","clickUpload","trigger","applicantsItemComponent","ApplicantsItemEmployeeController","homeAddress","names","telephoneMobilePrivate","phoneNumber","emailPrivate","city","functionId","zzp","applicationStatusId","applicantsItemEmployeeComponent","ApplicantsListController","getApplicants","statusFilter","userFilter","functionFilter","targetAudienceFilter","getArchive","applicants","applyFilters","filteredApplicants","applicantsListComponent","AvailabilityListController","getAvailabilityByDate","prevWeek","nextWeek","getAvailabilityByRange","a","sortBy","availabilities","availabilityListComponent","AvailabilityCalendarController","renderCalendar","comment","availabilityCalendarComponent","AvailabilityItemController","availability","submitAvailability","availabilityForm","$setSubmitted","availabilityStatusId","availabilityItemComponent","EmployeesController","employeesComponent","EmployeesItemBasicController","employeesItemBasicComponent","EmployeesItemController","NmbrsService","nmbrsId","nmbrsEmployee","nmbrsEmployeeAddress","nmbrsEmployeeBankAccount","nmbrsEmployeeFunction","nmbrsEmployeeSalary","nmbrsEmployeeContract","employeeContracts","employeesService","submitEmployee","saveEmployee","deleteEmployee","restoreEmployee","unshift","refreshEmployeeNmbrs","refresh","employeesItemComponent","userAccount","EmployeesListController","onCopySuccess","filteredEmployees","accountingFilter","emailaddresses","refreshEmployeesNmbrs","inProgress","refreshAll","employeesListComponent","HrController","hrComponent","HrDashboardController","hrDashboardComponent","employeeSkills_service_1","employees_component_1","hr_dashboard_component_1","hr_component_1","hr_states_1","hr_states_2","employees_item_basic_component_1","shifts_list_component_1","shifts_item_component_1","availability_calendar_component_1","availability_item_component_1","skills_list_component_1","skills_item_component_1","uploader_component_1","nmbrs_component_1","availabilityList_component_1","applicants_item_component_1","applicants_list_component_1","applicants_component_1","applicants_item_basic_component_1","applicants_item_employee_component_1","hrAppModule","shiftsListComponent","shiftsItemComponent","skillsListComponent","skillsItemComponent","uploaderComponent","nmbrsComponent","NmbrsController","$onChange","ShiftsItemController","submitShift","ShiftsListController","SkillsItemController","employeeSkill","blob","saveAs","startDateSelected","submitSkill","SkillsListController","note_list_component_1","notes_states_1","subscriptionAppModule","noteComponent","noteListComponent","noteState","noteListState","noteItemState","noteItemBasicState","NoteListController","noteTags","isArchive","quotations_states_1","quotations_component_1","quotations_dashboard_component_1","invoiceDetails_component_1","quotations_cootje_component_1","cootje_service_1","quotationsAppModule","quotationsComponent","quotationsDashboardComponent","invoiceDetailsComponent","quotationsCootjeComponent","quotationsState","quotationDashboardState","quotationProformaState","quotationCootjeState","InvoicesService","InvoiceDetailsController","deleteInvoice","sendToTwinfield","invoice","proformaInvoicesOnly","QuotationsController","QuotationsCootjeController","loading","hasKM","getCootje","currentItem","selectInvoice","dienst","declarations","declaration","registrationType","sendCootje","repport","failCount","successCount","fail","message","succes","dienstGUID","QuotationsDashboardController","getInvoices","invoices","checkForUnpaid","getTotalAmount","currentInvoice","lines","line","count","totalAmount","amountPerUnit","hasUnpaid","invoicesTotalAmount","twinfieldTotalAmount","twinfieldNumber","updateInvoice","schedule_declaration_component_1","schedule_item_component_1","schedule_states_1","schedule_component_1","schedule_calendar_component_1","schedule_list_component_1","subscription_component_1","scheduleAppModule","scheduleComponent","scheduleCalendarComponent","scheduleListComponent","subscriptionItemComponent","scheduleItemComponent","scheduleDeclarationComponent","scheduleState","scheduleCalendarState","scheduleListState","scheduleDeclarationState","scheduleAvailabilityState","scheduleSubscriptionState","scheduleShiftItemState","scheduleListItemState","scheduleListItemDeclarationState","ScheduleCalendarController","jsEvent","currentTarget","tooltip","subscriptionId","statusName","eventTitle","teamName","container","placement","html","ScheduleController","ScheduleDeclarationController","IShiftTeam","isZZP","invoiceMonthly","getIsZZP","getDeclartions","declarationstoSend","totalHours","countShifts","duration","teamLocationAccountName","invoiceNumber","postConfirm","confirm","sendZPPDeclarations","onChange","ScheduleItemController","ScheduleListController","shiftsGrouping","utc","isMessageOpen","getShifts","scrollTo","filterShifts","getAvailibility","availibility","dates","getDateBetween","n","copy","startdate","lastDate","diff","clone","groupedShifts","groupBy","handleChildChange","months","shiflistitem@schedule.list","openShiftId","shiftStartDate","shiftEndDate","wageCodes","SubscriptionItemController","subscriptions","subscription","submitSubscription","SettingsCompanyController","settingsService","submitSettings","settingsCompanyComponent","EmployeeItemController","employeeItemComponent","EmployeeListController","employeeListComponent","employee_item_component_1","person_service_1","staff_service_1","employee_list_component_1","settings_states_1","settings_company_component_1","settings_component_1","templatesEditor_component_1","timezone_service_1","timezones_component_1","timezones_list_component_1","timezones_item_component_1","timezones_item_basic_component_1","salaryScale_list_component_1","salaryScale_dialog_component_1","staff_component_1","staff_list_component_1","staff_item_component_1","settingsAppModule","settingsComponent","templatesEditorComponent","timezonesComponent","timezonesListComponent","timezonesItemComponent","timezonesItemBasicComponent","salaryScaleListComponent","salaryScalesDialogComponent","staffComponent","staffListComponent","staffItemComponent","settingsState","settingsCompanyState","settingsEmployeeState","settingsEmployeeListState","settingsEmployeeItemState","templatesState","timezonesState","timezonesListState","timezonesItemState","settingsSalaryScaleState","settingsSalaryScaleEditState","staffState","staffListState","staffItemState","TemplatesService","MasterdataAService","StaffService","SalaryScalesDialogController","salaryScale","Masterdata","submitSalaryScale","SettingsController","main@settings","templatesNames","timezones","hourCodes","staff","StaffController","StaffItemController","rolesList","password","confirmPassword","getUser","staffBasicInfoForm","$valid","putRoles","putPassword","createuser","twoFactorEnabled","createUser","deleteUser","StaffListController","TemplatesEditorController","onGotAmdLoader","paths","vs","initMonaco","loaderScript","src","addEventListener","editor","monaco","getTemplate","currentTemplateName","setValue","saveTemplate","getValue","TimezonesController","TimezonesItemBasicController","types","weekDays","percentage","amount","dayOfWeek","fixedDate","fixedDateWithoutYear","weekDay","parseInt","month","time","submitTimezone","fromDay","fromMonth","tillDay","tillMonth","fts","fromtimehour","fromtime","tts","tilltimehour","tilltime","deleteTimezone","TimezonesItemController","TimezonesListController","DateTimePickerController","$element","previousDate","datepicker","autoclose","preventDefault","timepicker","showMeridian","minuteStep","on","setTime","dateformat","timeformat","checkMinDate","classes","addClass","$doCheck","equals","changes","minDate","previousValue","setDate","maxDate","disabled","ListController","maxSize","fields","setFields","description","edit","hideDelete","UploaderController","FileUploader","uploadOptions","removeAfterUpload","uploader","onCompleteItem","onCompleteAll","onUpload","single","UserAccountController","checkUserType","newUser","userType","prepareEmployeeForUser","prepareContactForUser","customerId","user_1","existUser","closeOnConfirm","user_2","CheckAvailabilityModalController","activeEmployee","setModalHeight","startDateChanged","dataFilledIn","endDateChanged","selectedAccount","locationSelected","after","checkAvailabilityModalComponent","EmployeePickerController","ranges","min","max","allEmployees","filterEmployees","isAvailable","order","employeeSelected","onSelectEmployee","conflictingShift","employeeActive","selectedFunctions","f","selectedRanges","r","minRange","maxRange","kilometers","removeSubscription","Filter","employeePickerComponent","isEmbedded","disableFilter","disableInfo","EmployeeSummaryController","change","employeeSummaryComponent","shift_list_employee_component_1","shift_list_item_component_1","shift_list_component_1","shift_item_component_1","employeeSummary_component_1","checkAvailabilityModal_component_1","employeePicker_component_1","shift_states_2","subscriptionsModal_component_1","shiftComponent","shiftItemComponent","shiftCalendarComponent","shiftListComponent","shiftListItemComponent","shiftListEmployeeComponent","subscriptionsModalComponent","ShiftItemController","emp","IEmployee","handleAfterSubmit","deleteShift","ShiftListController","ThemeAppService","days","$watchCollection","getShiftsByDate","resetFilters","createdby","createdsince","nextPage","setFilters","resetTime","updatedsince","q","createdBy","createdSince","updatedSince","shiftLoading","getTeams","endList","handlingChildChange","scrollToShift","notifyTeam","notifyEmployee","shiftID","selectAllChange","$selected","selectAll","submitAction","ids","actionform","shiftBulkAction","statusId","shiftEmail","findIndex","ShiftListEmployeeController","unassignEmployee","ShiftListItemController","currentShiftStatus","currentDate","selectEmployee","location_1","shiftForm","SubscriptionsModalController","mailcustomer","mailemployee","getEmployee","inherit","skills_states_1","skills_dashboard_component_1","skills_component_1","skillAppModule","skillsComponent","skillsDashboardComponent","skillsState","skillsDashboardState","employeeSkillsItemState","SkillsController","SkillsDashboardController","subscriptions_item_component_1","subscriptions_states_1","subscriptions_dashboard_component_1","subscriptions_component_1","isDay_filter_1","subscriptionsComponent","subscriptionsDashboardComponent","subscriptionsItemComponent","subscriptionsState","subscriptionsDashboardState","subscriptionsDashboardItemState","SubscriptionsController","SubscriptionsDashboardController","maxDistanceFilter","isInitializing","isFirstGet","termTooShort","includeDistance","filteredShifts","distance","groupShifts","SubscriptionsItemController","subscriptionsCount","mySubscription","IEmployeeSubscription","getLocation","signUp","putSubscription","postSubscription","currentShiftId","getSubscriptions","shiflistitem@subscriptions.dashboard","task_component_1","task_list_component_1","tasks_states_1","task_item_component_1","task_item_basic_component_1","task_archive_component_1","taskComponent","taskListComponent","taskItemComponent","taskItemBasicComponent","taskArchiveComponent","taskState","taskListState","taskItemState","taskItemBasicState","taskArchiveState","TaskArchiveController","filteredTasks","selectedStatus","taskStatuses","TaskController","TaskItemBasicController","task","setUserName","selectedUser","TaskItemController","tasksService","userService","submitTask","saveTask","deleteTask","TaskListController","DeclarationController","IDeclaration","submitDeclaration","asHours","saveDeclaration","wageCodeId","wageCodeUpdated","wageCode","w","wageCodeCode","deleteDeclaration","declarationComponent","timesheets_states_1","timesheets_component_1","timesheets_dashboard_component_1","timesheetDetails_component_1","declaration_component_1","timesheetsOverview_component_1","timesheetsSummary_component_1","timesheetsComponent","timesheetsDashboardComponent","timesheetDetailsComponent","timesheetsOverviewComponent","timesheetsSummaryComponent","timesheetsState","timesheetsDashboardState","timesheetsDeclarationState","timesheetsOverviewState","TimesheetDetailsController","timesheet","declarationsApproved","invoiceId","employeeIsZZp","zzpInvoiceNumber","isInvoiced","isZZPOpen","calendarStartDate","calendarEndDate","TimesheetsController","TimesheetsDashboardController","currentEmployee","updateShiftDeclarationsSummary","checkCompletionStatus","plannedHours","declaredHours","hoursDifference","shiftHours","shiftDeclarationHours","checkEmployeeCompletionsStatus","doneShiftCount","getTimesheets","sendToNmbrs","signalR","TimesheetsOverviewController","notifications","progressNotifications","currentMonth","initHubConnection","_hubConnection","HubConnectionBuilder","withUrl","build","notificationItem","reason","notificationType","currentNotification","inprogress","currentValue","totalValue","progresscounter","getCompletionData","scheduledHours","scheduledShiftsCount","declaredShiftsCount","approvedHours","approvedShiftsCount","approvedShiftCount","approvedShiftHours","shiftCount","backdrop","keyboard","TimesheetsSummaryController","canceledShiftsCount","sickShiftsCount","canceledShiftsHours","sickShiftsHours","shiftCanceledCount","shiftSickCount","shiftCanceledHours","shiftSickHours","twinfield_service_1","twinfield_states_1","twinfieldAppModule","twinfieldOAuthCallbackComponent","twinfieldState","TwinfieldOAuthCallbackController","getParameter","redirect","parameter","regex","RegExp","match","IAccountEmployee","getContacts","IApplicantStatusHistory","IApplicant","IDashboard","items","getAvailability","active","incoiceMonthly","username","accountTypes","contactTypes","employeeTypes","monthsOfTheYear","IInvoice","IInvoiceLine","ILead","INote","IStaff","ITask"],"mappings":"AAAAA,cAAc,IACP,CACA,CACA,CAED,SAAUC,EAAQC,EAASC,GAEjC,YAEAC,QAAOC,eAAeH,EAAS,cAAgBI,OAAO,GCRtD,IAAAC,GAAAJ,EAAA,GAeAK,EAAA,WAQI,QAAAA,GAAsBC,EAA6CC,EAA+BC,GAAlG,GAAAC,GAAAC,IAAsBA,MAAAJ,cAA6CI,KAAAH,aAA+BG,KAAAF,WAN3FE,KAAAC,qBACAD,KAAAE,WAAsC,KAStCF,KAAAG,UAAY,SAACC,EAAUC,GAC1BN,EAAKE,kBAAkBK,MAAOD,SAAUA,EAAUE,KAAMH,KAIrDJ,KAAAQ,YAAc,SAACJ,GAClBV,EAAEe,OAAOV,EAAKE,mBAAqBM,KAAMH,KAGtCJ,KAAAU,gBAAkB,SAACC,GACtBZ,EAAKE,kBAAkBW,QAAQ,SAAAC,GAC3BA,EAAKR,SAASM,MAYfX,KAAAc,IAAM,SAACC,GACV,WADU,KAAAA,OAA2BC,MAAS,MACvCjB,EAAKH,YAAYkB,IAAIf,EAAKD,UAAUmB,UAAU,GAAIF,GAAQG,KAAK,SAACC,GAEnE,MADApB,GAAKqB,KAAOD,EAASE,QAAQ5B,MACtBM,EAAKuB,WAAWvB,EAAKqB,SAI7BpB,KAAAsB,WAAa,SAACF,GACjB,MAAOA,IAGJpB,KAAAuB,QAAU,SAACR,GACd,WADc,KAAAA,OAA2BC,MAAS,MAC3CjB,EAAKH,YAAYkB,IAAIf,EAAKD,UAAUmB,UAAU,GAAIF,GAAQG,KAAK,SAACC,GACnE,MAAOpB,GAAKyB,cAAcL,EAASE,YAIpCrB,KAAAwB,cAAgB,SAACtB,GACpB,MAAOA,IAGJF,KAAAyB,UAAY,SAACC,EAAKC,GAErB,WAFqB,KAAAA,OAAuCX,MAAS,MAE9DjB,EAAKH,YAAYkB,IAAIf,EAAKD,SAAW,IAAM4B,GAAKH,QAAQI,GAAaT,KAAK,SAACE,GAE9E,MADArB,GAAKqB,KAAOA,EACLA,EAAKC,WAnDhBrB,KAAKE,WAAaN,EAAYkB,IAAIhB,GAkO1C,MAhNWH,GAAAiC,UAAAC,IAAP,SAAWC,GACP,WADO,KAAAA,MAAA,MACHA,EACO9B,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUgC,EAAGC,YAEvC/B,KAAKJ,YAAYiC,IAAI7B,KAAKF,WAiClCH,EAAAiC,UAAAI,IAAP,SAAWF,GAAX,GAAA/B,GAAAC,IACI,OAAI8B,GACO9B,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUgC,EAAGC,YAAYC,MAAMd,KAAK,SAACL,GAElE,MADAd,GAAKc,KAAOA,EACLA,EAAKQ,WAGhBrB,KAAKa,KAAO,KACL,OAORlB,EAAAiC,UAAAK,OAAP,SAAcH,GAAd,GAAA/B,GAAAC,KACQkC,EAAUlC,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUgC,EAAGC,YAAYtB,QAUjE,OATAyB,GACKhB,KAAK,SAAAiB,GACFpC,EAAKqC,OAASN,EACd/B,EAAKW,gBAAgB,UACrBX,EAAKF,WAAWwC,cAAcC,QAAQ,aAAc,iCAEvDC,MAAM,SAAAC,GACHzC,EAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,QAE1DP,GAGJvC,EAAAiC,UAAAc,KAAP,SAAYD,GAAZ,GAAA1C,GAAAC,IACI,OAAOA,MAAKE,WAAWwC,KAAKD,GAAMvB,KAAK,SAACL,GAIpC,MAHAd,GAAKF,WAAWwC,cAAcC,QAAQ,aAAc,+BACpDvC,EAAKc,KAAOA,EAAKQ,QACjBtB,EAAKW,gBAAgB,QACdG,EAAKQ,UAEXkB,MAAM,SAACC,GAEJ,MADAzC,GAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,MAClDD,KAIZ7C,EAAAiC,UAAAe,WAAP,SAAkBjB,EAAae,EAAMG,GAArC,GAAA7C,GAAAC,IACI,YADiC,KAAA4C,OAAA,GAC1B5C,KAAKE,WAAW2C,WAAWJ,EAAMf,GAAKR,KAAK,SAACL,GAI/C,MAHI+B,IACA7C,EAAKF,WAAWwC,cAAcC,QAAQ,aAAc,+BAEjDzB,IAEN0B,MAAM,SAACC,GAIJ,MAHII,IACA7C,EAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,MAEtDD,KAIZ7C,EAAAiC,UAAAkB,IAAP,SAAWhB,EAAqBW,GAAhC,GAAA1C,GAAAC,KACQkC,EAAUlC,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUgC,EAAGC,YAAYgB,UAAUN,EAU3E,OATAP,GACKhB,KAAK,SAAAiB,GACFpC,EAAKF,WAAWwC,cAAcC,QAAQ,aAAc,+BACpDvC,EAAKc,KAAOsB,EAAOd,QACnBtB,EAAKW,gBAAgB,SAExB6B,MAAM,SAAAC,GACHzC,EAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,QAE1DP,GAGJvC,EAAAiC,UAAAoB,UAAP,SAAiBtB,EAAae,GAA9B,GAAA1C,GAAAC,IAEI,OAAOA,MAAKE,WAAW6C,UAAUN,EAAMf,GAAKR,KAAK,SAACL,GAE9C,MADAd,GAAKF,WAAWwC,cAAcC,QAAQ,aAAc,+BAC7CzB,IAEN0B,MAAM,SAACC,GAEJ,MADAzC,GAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,MAClDD,KAIZ7C,EAAAiC,UAAAqB,UAAP,SAAiBvB,EAAaX,GAA9B,GAAAhB,GAAAC,IACI,YAD0B,KAAAe,MAAA,MACnBf,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAW,IAAM4B,GAAKM,IAAIjB,GAAQG,KAAK,SAACL,GACrE,MAAIA,IACAd,EAAKc,KAAOA,EACQ,gBAATA,IAAqBA,EAAKQ,QAC1BR,EAAKQ,QAELR,GAGJ,QAKZlB,EAAAiC,UAAAsB,SAAP,SAAgBpB,EAAqBqB,EAAWpC,GAAhD,GAAAhB,GAAAC,IACI,YAD4C,KAAAe,OAA0BC,MAAS,MAC5D,gBAAPc,IAAmBA,EAAK,GAAqB,gBAAPA,QAA0BsB,KAAPtB,EAC1D9B,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUgC,EAAGC,YAAYd,UAAUkC,EAAWpC,GAAQG,KAAK,SAACL,GAEzF,MADAd,GAAKc,KAAOA,EAAKpB,MACVoB,EAAKpB,SAGhBO,KAAKa,KAAO,KACL,OAIRlB,EAAAiC,UAAAyB,UAAP,SAAiBZ,EAAMa,EAAUH,GAAjC,GAAApD,GAAAC,KACQkC,EAAUlC,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUwD,EAASvB,YAAYc,WAAWJ,EAAMU,EASxF,OAPAjB,GACKhB,KAAK,SAAAiB,GACFpC,EAAKF,WAAWwC,cAAcC,QAAQ,aAAc,iCAEvDC,MAAM,SAAAC,GACHzC,EAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,QAE1DP,GAGJvC,EAAAiC,UAAA2B,SAAP,SAAgBd,EAAMa,EAAUH,EAAWK,GAA3C,GAAAzD,GAAAC,KACQkC,EAAUlC,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUwD,EAASvB,YAAYgB,UAAUN,EAAMU,EAAY,IAAMK,EASzG,OAPAtB,GACKhB,KAAK,SAAAiB,GACFpC,EAAKF,WAAWwC,cAAcC,QAAQ,aAAc,iCAEvDC,MAAM,SAAAC,GACHzC,EAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,QAE1DP,GAGJvC,EAAAiC,UAAA6B,YAAP,SAAmBD,EAASF,EAAUH,GAAtC,GAAApD,GAAAC,KACQkC,EAAUlC,KAAKJ,YAAYiC,IAAI7B,KAAKF,SAAUwD,EAASvB,YAAY2B,aAAaP,EAAY,IAAMK,EAOtG,OANAtB,GAAQhB,KAAK,SAAAiB,GACTpC,EAAKF,WAAWwC,cAAcC,QAAQ,aAAc,iCAEnDC,MAAM,SAAAC,GACHzC,EAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,QAE1DP,GAGJvC,EAAAiC,UAAA+B,aAAP,SAAoBjC,GAApB,GAAA3B,GAAAC,IACI,OAAOA,MAAKE,WAAWwD,aAAahC,GAAKR,KAAK,SAACL,GAE3C,MADAd,GAAKF,WAAWwC,cAAcC,QAAQ,aAAc,+BAC7CzB,IAEN0B,MAAM,SAACC,GAEJ,MADAzC,GAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,MAClDD,KAiBvB7C,IA3OaN,GAAAM,eD8NP,SAAUP,EAAQC,EAASC,GAEjC,YAEAC,QAAOC,eAAeH,EAAS,cAAgBI,OAAO,GElPtD,IAAAmE,GAAAtE,EAAA,EAEaD,GAAAwE,SAAWD,EAAQxE,OAAO,OACnC,YACA,iBACA,YACA,cACA,qBACA,iBACA,kBACA,oBACA,aACA,UACA,aACA,gBACA,iBACA,oBACA,aACA,cACA,kBACA,eAGJ,IAAM0E,IACJC,UACAC,cACAC,cACAC,YACAC,WACAC,aACAC,gBACAC,aAUWjF,GAAAkF,cAAgB,SAACC,EAAUC,GAEtC,GAAIrF,GAASG,OAAOmF,UAAWZ,EAAcW,EAkB7C,OAhBAD,GAASG,QAAQ,iBAAkB,SAAAC,GAAkB,MAAAxF,GAAO2E,OAAOnD,QAAQ,SAAAiE,GAAS,MAAAD,GAAeC,MAAMA,QAEzGtF,OAAOuF,KAAK1F,EAAO4E,YAAYpD,QAAQ,SAAAmE,GAAQ,MAAAP,GAASQ,UAAUD,EAAM3F,EAAO4E,WAAWe,MAE1FxF,OAAOuF,KAAK1F,EAAO6E,YAAYrD,QAAQ,SAAAmE,GAAQ,MAAAP,GAASS,UAAUF,EAAM3F,EAAO6E,WAAWc,MAE1FxF,OAAOuF,KAAK1F,EAAO8E,UAAUtD,QAAQ,SAAAmE,GAAQ,MAAAP,GAASU,QAAQH,EAAM3F,EAAO8E,SAASa,MAEpFxF,OAAOuF,KAAK1F,EAAO+E,SAASvD,QAAQ,SAAAmE,GAAQ,MAAAP,GAASW,OAAOJ,EAAM3F,EAAO+E,QAAQY,MAEjFxF,OAAOuF,KAAK1F,EAAOgF,WAAWxD,QAAQ,SAAAmE,GAAQ,MAAAP,GAASY,QAAQL,EAAM3F,EAAOgF,UAAUW,MAEtF3F,EAAOiF,aAAazD,QAAQ,SAAAyE,GAAe,MAAAb,GAASG,OAAOU,KAE3DjG,EAAOkF,UAAU1D,QAAQ,SAAA0E,GAAY,MAAAd,GAASe,IAAID,KAE3Cd,IF4OH,SAAUpF,EAAQC,EAASC,GAEjC,YAEA,SAASkG,GAASC,GACd,IAAK,GAAIC,KAAKD,GAAQpG,EAAQsG,eAAeD,KAAIrG,EAAQqG,GAAKD,EAAEC,IAEpEnG,OAAOC,eAAeH,EAAS,cAAgBI,OAAO,IGhTtD+F,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,KACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,KACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,MACAkG,EAAAlG,EAAA,OHqTO,CACA,CAED,SAAUF,EAAQC,EAASC,GAEjC,YAEAC,QAAOC,eAAeH,EAAS,cAAgBI,OAAO,GIrVtD,IAAAmG,GAAA,mBAAAA,MAEA,MAAAA,KAFavG,GAAAuG,cJ+VN,CACC,CACA,CACA,CAEF,SAAUxG,EAAQC,EAASC,GAEjC,cAC4B,SAASuG,GACrCtG,OAAOC,eAAeH,EAAS,cAAgBI,OAAO,GKxWtD,IAAIqG,GAA0C,cAAhCD,EAAEE,KAAK,eACjBC,EAA6C,WAAhCH,EAAEE,KAAK,eAIpBpB,GAHSkB,EAAEE,KAAK,eACNF,EAAEE,KAAK,gBAGjBE,QAAS,SACTC,SAAU,GACVC,cAAe,GACfC,QAAS,GACTC,aAAc,GACdC,eAAgB,GAChBC,gBAAiB,GACjBC,eAAgB,GAChBC,YAAa,IAGjB9B,GAAO6B,eAAiB,KACxB7B,EAAO8B,YAAc,qBAEjBX,GAEAnB,EAAOuB,SAAW,mCAClBvB,EAAOwB,cAAgB,qCAEhBH,GAELrB,EAAOuB,SAAW,2CACpBvB,EAAOwB,cAAgB,8CAIvBxB,EAAOuB,SAAW,2CAClBvB,EAAOwB,cAAgB,6CAW3BxB,EAAOyB,QAAUzB,EAAOuB,SAAW,OACnCvB,EAAO0B,aAAe1B,EAAOwB,cAAgB,QAC7CxB,EAAO2B,eAAiB3B,EAAOwB,cAAgB,oBAC/CxB,EAAO4B,gBAAkB5B,EAAOwB,cAAgB,qBAEhD9G,EAAAqH,QAAe/B,ILiWcgC,KAAKtH,EAASC,EAAoB,KAGvD,CACA,CACA,CAEF,SAAUF,EAAQC,EAASC,GAEjC,YM1ZA,IAAIsH,GAAa5G,MAAQA,KAAK4G,WAAc,WACxC,GAAIC,GAAgBtH,OAAOuH,iBACpBC,uBAA2BC,QAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAIxB,KAAKwB,GAAOA,EAAEvB,eAAeD,KAAIuB,EAAEvB,GAAKwB,EAAExB,IACzE,OAAO,UAAUuB,EAAGC,GAEhB,QAASC,KAAOnH,KAAKoH,YAAcH,EADnCJ,EAAcI,EAAGC,GAEjBD,EAAErF,UAAkB,OAANsF,EAAa3H,OAAO8H,OAAOH,IAAMC,EAAGvF,UAAYsF,EAAEtF,UAAW,GAAIuF,OAGvF5H,QAAOC,eAAeH,EAAS,cAAgBI,OAAO,GAVtD,IAAA6H,GAAAhI,EAAA,GAEAiI,EAAAjI,EAAA,GAGAkI,EAAA,SAAAC,GAAA,QAAAD,KAWQ,MAAkB,QAAXC,GAAmBA,EAAOC,MAAM1H,KAAM2H,YAAc3H,KAJnE,MAPoC4G,GAAAY,EAAAC,GAOpCD,GAPoCF,EAAA1B,WAAvBvG,GAAAmI,gBAUb,IAAAI,GAAA,SAAAH,GAEI,QAAAG,GAAsBhI,EAA6CC,GAC/D,UADJ,IAAAE,GAEI0H,EAAAd,KAAA3G,KAAMJ,EAAaC,EAAY,aAAWG,IAe1C,OAjBkBD,GAAAH,cAA6CG,EAAAF,aAK5DE,EAAAe,IAAM,SAACC,GAEV,MAAOhB,GAAKH,YAAYkB,IAAI,YAAYG,UAAU,GAAIF,GAAQG,KAAK,SAACC,GAEhE,MADApB,GAAKqB,KAAOD,EAASE,QACdtB,EAAKuB,WAAWvB,EAAKqB,SAQzBrB,EALf,MAdqC6G,GAAAgB,EAAAH,GNoajCG,EAAgBC,SAAW,cAAe,cMtZ9CD,GAdqCL,EAAA5H,YAAxBN,GAAAuI,mBNybP,SAAUxI,EAAQC,EAASC,GAEjC,YO1cA,IAAIsH,GAAa5G,MAAQA,KAAK4G,WAAc,WACxC,GAAIC,GAAgBtH,OAAOuH,iBACpBC,uBAA2BC,QAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAIxB,KAAKwB,GAAOA,EAAEvB,eAAeD,KAAIuB,EAAEvB,GAAKwB,EAAExB,IACzE,OAAO,UAAUuB,EAAGC,GAEhB,QAASC,KAAOnH,KAAKoH,YAAcH,EADnCJ,EAAcI,EAAGC,GAEjBD,EAAErF,UAAkB,OAANsF,EAAa3H,OAAO8H,OAAOH,IAAMC,EAAGvF,UAAYsF,EAAEtF,UAAW,GAAIuF,OAGvF5H,QAAOC,eAAeH,EAAS,cAAgBI,OAAO,GAVtD,IAAA6H,GAAAhI,EAAA,GAEAiI,EAAAjI,EAAA,GAGAwI,EAAA,SAAAL,GAAA,QAAAK,KAAA,GAAA/H,GAAA,OAAA0H,KAAAC,MAAA1H,KAAA2H,YAAA3H,IAcQ,OAKJD,GAAAgI,YAAsB,EACtBhI,EAAAiI,aAAuB,EANZjI,EAkBf,MAhC4B6G,GAAAkB,EAAAL,GAgC5BK,GAhC4BR,EAAA1B,WAAfvG,GAAAyI,QA6Cb,IAAAG,GAAA,mBAAAA,MAMA,MAAAA,KANa5I,GAAA4I,iBAQb,IAAAC,GAAA,SAAAT,GAEI,QAAAS,GAAsBtI,EAA6CC,GAC/D,UADJ,IAAAE,GAEI0H,EAAAd,KAAA3G,KAAMJ,EAAaC,EAAY,UAAQG,IAavC,OAfkBD,GAAAH,cAA6CG,EAAAF,aAK5DE,EAAAoI,UAAY,SAACpH,GAEhB,MADAA,GAAOC,MAAQD,EAAOC,MAASD,EAAOC,MAAQ,IACvCjB,EAAKH,YAAYkB,IAAIf,EAAKD,UAAUmB,UAAU,GAAIF,GAAQG,KAAK,SAACC,GAEnE,MADApB,GAAKqB,KAAOD,EAASE,QAAQ5B,MACtBM,EAAKuB,WAAWvB,EAAKqB,SAI7BrB,EAAAqI,eAAiB,SAACrH,GAErB,MADAA,GAAOC,MAAQD,EAAOC,MAASD,EAAOC,MAAQ,IACvCjB,EAAKH,YAAYkB,IAAIf,EAAKD,SAAW,mBAAmBmB,UAAU,GAAIF,GAAQG,KAAK,SAACC,GAEvF,MADApB,GAAKqB,KAAOD,EAASE,QAAQ5B,MACtBM,EAAKuB,WAAWvB,EAAKqB,SAI7BrB,EAAAsI,cAAgB,SAACC,EAAOC,EAAKC,GAChC,GAAIzH,IAAUuH,MAASA,EAAOC,IAAOA,EACrC,OAAOxI,GAAKH,YAAYkB,IAAIf,EAAKD,SAAW,aAAamB,UAAUuH,EAAYzH,GAAQG,KAAK,SAACC,GAEzF,MADApB,GAAKqB,KAAOD,EAASE,QACdtB,EAAKuB,WAAWvB,EAAKqB,SAI7BrB,EAAA0I,qBAAuB,SAACH,EAAOC,GAClC,GAAIxH,IAAUuH,MAASA,EAAOC,IAAOA,EACrC,OAAOxI,GAAKH,YAAYkB,IAAIf,EAAKD,SAAW,aAAamB,UAAU,GAAIF,GAAQG,KAAK,SAACC,GAEjF,MADApB,GAAKqB,KAAOD,EAASE,QACdtB,EAAKuB,WAAWvB,EAAKqB,SAI7BrB,EAAA2I,WAAa,SAACjG,GACjB,MAAO1C,GAAKH,YAAYkB,IAAIf,EAAKD,SAAW,SAAS4C,KAAKD,GAAMvB,KAAK,SAACL,GAElE,MADAd,GAAKF,WAAWwC,cAAcC,QAAQ,aAAc,+BAC7CzB,EAAKQ,UAEfkB,MAAM,SAACC,GAEJ,MADAzC,GAAKF,WAAWwC,cAAcG,MAAM,cAAeA,EAAMC,MAClDD,KA7BJzC,EAgCf,MAjDkC6G,GAAAsB,EAAAT,GPkb9BS,EAAaL,SAAW,cAAe,cOjY3CK,GAjDkCX,EAAA5H,YAArBN,GAAA6I,gBPseL,CACA,CACA,CAEF,SAAU9I,EAAQC,EAASC,GAEjC,YQtiBA,IAAIsH,GAAa5G,MAAQA,KAAK4G,WAAc,WACxC,GAAIC,GAAgBtH,OAAOuH,iBACpBC,uBAA2BC,QAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAIxB,KAAKwB,GAAOA,EAAEvB,eAAeD,KAAIuB,EAAEvB,GAAKwB,EAAExB,IACzE,OAAO,UAAUuB,EAAGC,GAEhB,QAASC,KAAOnH,KAAKoH,YAAcH,EADnCJ,EAAcI,EAAGC,GAEjBD,EAAErF,UAAkB,OAANsF,EAAa3H,OAAO8H,OAAOH,IAAMC,EAAGvF,UAAYsF,EAAEtF,UAAW,GAAIuF,OAGvF5H,QAAOC,eAAeH,EAAS,cAAgBI,OAAO,GAXtD,IAAA6H,GAAAhI,EAAA,GACAiI,EAAAjI,EAAA,GAGAqJ,EAAA,SAAAlB,GAAA,QAAAkB,KAaQ,MAAkB,QAAXlB,GAAmBA,EAAOC,MAAM1H,KAAM2H,YAAc3H,KANnE,MAP2C4G,GAAA+B,EAAAlB,GAO3CkB,GAP2CrB,EAAA1B,WAA9BvG,GAAAsJ,uBASb,IAAAC,GAAA,SAAAnB,GACI,QAAAmB,GAAYhJ,EAA6CC,GACrD,UADJ,IAAAE,GAEI0H,EAAAd,KAAA3G,KAAMJ,EAAaC,EAAY,4BAA0BG,IAYzD,OAdqDD,GAAAF,aAc9CE,EAVf,MALiD6G,GAAAgC,EAAAnB,GRmjB7CmB,EAA4Bf,SAAW,cAAe,cQ9iB1De,GALiDrB,EAAA5H,YAApCN,GAAAuJ,+BRgkBL,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUxJ,EAAQC,EAASC,GSrsBjCF,EAAAC,QAAAC,EAAAoG,EAAA,+BT0sBS,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA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ACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,gBAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,UAAA,GACAC,aAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,QAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IAWA1O,GAAAnoB,KAAA,WACA,MAAAvF,QAAAuF,KAAAsoB,IAEAH,EAAAjjB,QAAAmjB,EACA/tB,EAAAC,QAAA4tB,EACAA,EAAAnrB,GAAA,K7BgmES,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,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BD,EAAAC,QAAA,24BvE4oFM,SAAUD,EAAQC,GwE5oFxBD,EAAAC,QAAA,+6BxEkpFM,SAAUD,EAAQC,GyElpFxBD,EAAAC,QAAA,izEzEwpFM,SAAUD,EAAQC,G0ExpFxBD,EAAAC,QAAA,6iD1E8pFM,SAAUD,EAAQC,G2E9pFxBD,EAAAC,QAAA,05G3EoqFM,SAAUD,EAAQC,G4EpqFxBD,EAAAC,QAAA,yrB5E0qFM,SAAUD,EAAQC,G6E1qFxBD,EAAAC,QAAA,4B7EgrFM,SAAUD,EAAQC,G8EhrFxBD,EAAAC,QAAA,6vH9EsrFM,SAAUD,EAAQC,G+EtrFxBD,EAAAC,QAAA,miH/E4rFM,SAAUD,EAAQC,GgF5rFxBD,EAAAC,QAAA,i3EhFksFM,SAAUD,EAAQC,GiFlsFxBD,EAAAC,QAAA,4BjFwsFM,SAAUD,EAAQC,GkFxsFxBD,EAAAC,QAAA,y1ClF8sFM,SAAUD,EAAQC,GmF9sFxBD,EAAAC,QAAA,wpCnFotFM,SAAUD,EAAQC,GoFptFxBD,EAAAC,QAAA,4BpF0tFM,SAAUD,EAAQC,GqF1tFxBD,EAAAC,QAAA,shFrFguFM,SAAUD,EAAQC,GsFhuFxBD,EAAAC,QAAA,0kDtFsuFM,SAAUD,EAAQC,GuFtuFxBD,EAAAC,QAAA,omEvF4uFM,SAAUD,EAAQC,GwF5uFxBD,EAAAC,QAAA,4+DxFkvFM,SAAUD,EAAQC,GyFlvFxBD,EAAAC,QAAA,mhCzFwvFM,SAAUD,EAAQC,G0FxvFxBD,EAAAC,QAAA,soD1F8vFM,SAAUD,EAAQC,G2F9vFxBD,EAAAC,QAAA,+oF3FowFM,SAAUD,EAAQC,G4FpwFxBD,EAAAC,QAAA,0b5F0wFM,SAAUD,EAAQC,G6F1wFxBD,EAAAC,QAAA,4vB7FgxFM,SAAUD,EAAQC,G8FhxFxBD,EAAAC,QAAA,wC9FsxFM,SAAUD,EAAQC,G+FtxFxBD,EAAAC,QAAA,spB/F4xFM,SAAUD,EAAQC,GgG5xFxBD,EAAAC,QAAA,kchGkyFM,SAAUD,EAAQC,GiGlyFxBD,EAAAC,QAAA,wtCjGwyFM,SAAUD,EAAQC,GkGxyFxBD,EAAAC,QAAA,29BlG8yFM,SAAUD,EAAQC,GmG9yFxBD,EAAAC,QAAA,olBnGozFM,SAAUD,EAAQC,GoGpzFxBD,EAAAC,QAAA,oxCpG0zFM,SAAUD,EAAQC,GqG1zFxBD,EAAAC,QAAA,q1DrGg0FM,SAAUD,EAAQC,GsGh0FxBD,EAAAC,QAAA,mqBtGs0FM,SAAUD,EAAQC,GuGt0FxBD,EAAAC,QAAA,isBvG40FM,SAAUD,EAAQC,GwG50FxBD,EAAAC,QAAA,omBxGk1FM,SAAUD,EAAQC,EAASC,GyGl1FjCF,EAAAC,QAAA,+JAAAC,EAAA,qLAAAA,EAAA,6QAAAA,EAAA,uIAAAA,EAAA,0NAAAA,EAAA,sIAAAA,EAAA,8PAAAA,EAAA,8HAAAA,EAAA,wIAAAA,EAAA,sIAAAA,EAAA,8HAAAA,EAAA,8GAAAA,EAAA,+GAAAA,EAAA,yXAAAA,EAAA,oNAAAA,EAAA,yKAAAA,EAAA,mWAAAA,EAAA,oHAAAA,EAAA,8GAAAA,EAAA,oIAAAA,EAAA,2vBzGw1FM,SAAUF,EAAQC,G0Gx1FxBD,EAAAC,QAAA,4B1G81FM,SAAUD,EAAQC,G2G91FxBD,EAAAC,QAAA,+4I3Go2FM,SAAUD,EAAQC,G4Gp2FxBD,EAAAC,QAAA,i7G5G02FM,SAAUD,EAAQC,G6G12FxBD,EAAAC,QAAA,o0L7Gg3FM,SAAUD,EAAQC,G8Gh3FxBD,EAAAC,QAAA,gmN9Gs3FM,SAAUD,EAAQC,G+Gt3FxBD,EAAAC,QAAA,u+E/G43FM,SAAUD,EAAQC,GgH53FxBD,EAAAC,QAAA,qhBhHk4FM,SAAUD,EAAQC,GiHl4FxBD,EAAAC,QAAA,8nDjHw4FM,SAAUD,EAAQC,GkHx4FxBD,EAAAC,QAAA,4BlH84FM,SAAUD,EAAQC,GmH94FxBD,EAAAC,QAAA,ugLnHo5FM,SAAUD,EAAQC,GoHp5FxBD,EAAAC,QAAA,6sNpH05FM,SAAUD,EAAQC,GqH15FxBD,EAAAC,QAAA,osKrHg6FM,SAAUD,EAAQC,GsHh6FxBD,EAAAC,QAAA,etHs6FM,SAAUD,EAAQC,GuHt6FxBD,EAAAC,QAAA,4BvH46FM,SAAUD,EAAQC,GwH56FxBD,EAAAC,QAAA,s0IxHk7FM,SAAUD,EAAQC,GyHl7FxBD,EAAAC,QAAA,g6FzHw7FM,SAAUD,EAAQC,G0Hx7FxBD,EAAAC,QAAA,8nD1H87FM,SAAUD,EAAQC,G2H97FxBD,EAAAC,QAAA,4xE3Ho8FM,SAAUD,EAAQC,G4Hp8FxBD,EAAAC,QAAA,mqC5H08FM,SAAUD,EAAQC,G6H18FxBD,EAAAC,QAAA,yC7Hg9FM,SAAUD,EAAQC,G8Hh9FxBD,EAAAC,QAAA,u6D9Hs9FM,SAAUD,EAAQC,G+Ht9FxBD,EAAAC,QAAA,y1E/H49FM,SAAUD,EAAQC,GgI59FxBD,EAAAC,QAAA,63MhIk+FM,SAAUD,EAAQC,GiIl+FxBD,EAAAC,QAAA,+kGjIw+FM,SAAUD,EAAQC,GkIx+FxBD,EAAAC,QAAA,4BlI8+FM,SAAUD,EAAQC,GmI9+FxBD,EAAAC,QAAA,mmDnIo/FM,SAAUD,EAAQC,GoIp/FxBD,EAAAC,QAAA,8rKpI0/FM,SAAUD,EAAQC,GqI1/FxBD,EAAAC,QAAA,wCrIggGM,SAAUD,EAAQC,GsIhgGxBD,EAAAC,QAAA,olDtIsgGM,SAAUD,EAAQC,GuItgGxBD,EAAAC,QAAA,w7LvI4gGM,SAAUD,EAAQC,GwI5gGxBD,EAAAC,QAAA,ooCxIkhGM,SAAUD,EAAQC,GyIlhGxBD,EAAAC,QAAA,+xCzIwhGM,SAAUD,EAAQC,G0IxhGxBD,EAAAC,QAAA,82B1I8hGM,SAAUD,EAAQC,G2I9hGxBD,EAAAC,QAAA,k/B3IoiGM,SAAUD,EAAQC,G4IpiGxBD,EAAAC,QAAA,yyD5I0iGM,SAAUD,EAAQC,G6I1iGxBD,EAAAC,QAAA,uiF7IgjGM,SAAUD,EAAQC,G8IhjGxBD,EAAAC,QAAA,4B9IsjGM,SAAUD,EAAQC,G+ItjGxBD,EAAAC,QAAA,wzI/I4jGM,SAAUD,EAAQC,GgJ5jGxBD,EAAAC,QAAA,qpChJkkGM,SAAUD,EAAQC,GiJlkGxBD,EAAAC,QAAA,wtBjJwkGM,SAAUD,EAAQC,GkJxkGxBD,EAAAC,QAAA,4BlJ8kGM,SAAUD,EAAQC,GmJ9kGxBD,EAAAC,QAAA,2lJnJolGM,SAAUD,EAAQC,GoJplGxBD,EAAAC,QAAA,88CpJ0lGM,SAAUD,EAAQC,GqJ1lGxBD,EAAAC,QAAA,m+FrJgmGM,SAAUD,EAAQC,GsJhmGxBD,EAAAC,QAAA,6tBtJsmGM,SAAUD,EAAQC,GuJtmGxBD,EAAAC,QAAA,qnDvJ4mGM,SAAUD,EAAQC,GwJ5mGxBD,EAAAC,QAAA,uvFxJknGM,SAAUD,EAAQC,GyJlnGxBD,EAAAC,QAAA,otEzJwnGM,SAAUD,EAAQC,G0JxnGxBD,EAAAC,QAAA,k9F1J8nGM,SAAUD,EAAQC,G2J9nGxBD,EAAAC,QAAA,wlI3JooGM,SAAUD,EAAQC,G4JpoGxBD,EAAAC,QAAA,2+F5J0oGM,SAAUD,EAAQC,G6J1oGxBD,EAAAC,QAAA,yvB7JgpGM,SAAUD,EAAQC,G8JhpGxBD,EAAAC,QAAA,wC9JspGM,SAAUD,EAAQC,G+JtpGxBD,EAAAC,QAAA,miN/J4pGM,SAAUD,EAAQC,GgK5pGxBD,EAAAC,QAAA,4uBhKkqGM,SAAUD,EAAQC,GiKlqGxBD,EAAAC,QAAA,ywSjKwqGM,SAAUD,EAAQC,GkKxqGxBD,EAAAC,QAAA,2jRlK8qGM,SAAUD,EAAQC,GmK9qGxBD,EAAAC,QAAA,+sFnKorGM,SAAUD,EAAQC,GoKprGxBD,EAAAC,QAAA,4OpK0rGM,SAAUD,EAAQC,GqK1rGxBD,EAAAC,QAAA,4BrKgsGM,SAAUD,EAAQC,GsKhsGxBD,EAAAC,QAAA,2pLtKssGM,SAAUD,EAAQC,GuKtsGxBD,EAAAC,QAAA,wCvK4sGM,SAAUD,EAAQC,GwK5sGxBD,EAAAC,QAAA,qkExKktGM,SAAUD,EAAQC,GyKltGxBD,EAAAC,QAAA,+rEzKwtGM,SAAUD,EAAQC,G0KxtGxBD,EAAAC,QAAA,wC1K8tGM,SAAUD,EAAQC,G2K9tGxBD,EAAAC,QAAA,++G3KouGM,SAAUD,EAAQC,G4KpuGxBD,EAAAC,QAAA,q8D5K0uGM,SAAUD,EAAQC,G6K1uGxBD,EAAAC,QAAA,umF7KgvGM,SAAUD,EAAQC,G8KhvGxBD,EAAAC,QAAA,0qG9KsvGM,SAAUD,EAAQC,G+KtvGxBD,EAAAC,QAAA,w6X/K4vGM,SAAUD,EAAQC,GgL5vGxBD,EAAAC,QAAA,8jGhLkwGM,SAAUD,EAAQC,GiLlwGxBD,EAAAC,QAAA,4BjLwwGM,SAAUD,EAAQC,GkLxwGxBD,EAAAC,QAAA,yhJlL8wGM,SAAUD,EAAQC,GmL9wGxBD,EAAAC,QAAA,8rCnLoxGM,SAAUD,EAAQC,GoLpxGxBD,EAAAC,QAAA,yCpL0xGM,SAAUD,EAAQC,EAASC,GqLljGjC,QAAA2tB,GAAAC,GACA,MAAA5tB,GAAA6tB,EAAAD,IAEA,QAAAC,GAAAD,GACA,GAAAprB,GAAAsrB,EAAAF,EACA,MAAAprB,EAAA,GACA,SAAAurB,OAAA,uBAAAH,EAAA,KACA,OAAAprB,GA/OA,GAAAsrB,IACAE,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA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","file":"js/common.7abaadaee21ce50c6d60.js","sourcesContent":["webpackJsonp([0],[\n/* 0 */,\n/* 1 */,\n/* 2 */,\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar _ = __webpack_require__(7);\r\nvar BaseService = /** @class */ (function () {\r\n function BaseService(Restangular, AppService, itemName) {\r\n var _this = this;\r\n this.Restangular = Restangular;\r\n this.AppService = AppService;\r\n this.itemName = itemName;\r\n this.observerCallbacks = [];\r\n this.collection = null;\r\n this.subscribe = function (ctrlname, callback) {\r\n _this.observerCallbacks.push({ callback: callback, ctrl: ctrlname });\r\n };\r\n this.unsubscribe = function (ctrlname) {\r\n _.remove(_this.observerCallbacks, { ctrl: ctrlname });\r\n };\r\n this.notifyObservers = function (type) {\r\n _this.observerCallbacks.forEach(function (item) {\r\n item.callback(type);\r\n });\r\n };\r\n this.all = function (params) {\r\n if (params === void 0) { params = { 'limit': 5000 }; }\r\n return _this.Restangular.all(_this.itemName).customGET('', params).then(function (response) {\r\n _this.list = response.plain().value;\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n this.listLoaded = function (list) {\r\n return list;\r\n };\r\n this.getList = function (params) {\r\n if (params === void 0) { params = { 'limit': 5000 }; }\r\n return _this.Restangular.all(_this.itemName).customGET('', params).then(function (response) {\r\n return _this.getListLoaded(response.plain());\r\n });\r\n };\r\n this.getListLoaded = function (collection) {\r\n return collection;\r\n };\r\n this.customAll = function (url, queryParams) {\r\n if (queryParams === void 0) { queryParams = { 'limit': 5000 }; }\r\n // console.log('customAll')\r\n return _this.Restangular.all(_this.itemName + '/' + url).getList(queryParams).then(function (list) {\r\n _this.list = list;\r\n return list.plain();\r\n });\r\n };\r\n this.collection = Restangular.all(itemName);\r\n }\r\n BaseService.prototype.one = function (id) {\r\n if (id === void 0) { id = null; }\r\n if (id) {\r\n return this.Restangular.one(this.itemName, id.toString());\r\n }\r\n else {\r\n return this.Restangular.one(this.itemName);\r\n }\r\n };\r\n BaseService.prototype.get = function (id) {\r\n var _this = this;\r\n if (id) {\r\n return this.Restangular.one(this.itemName, id.toString()).get().then(function (item) {\r\n _this.item = item;\r\n return item.plain();\r\n });\r\n }\r\n else {\r\n this.item = null;\r\n return null;\r\n }\r\n };\r\n // public create(): Restangular.IElement {\r\n // return this.Restangular.one(this.itemName);\r\n // }\r\n BaseService.prototype.delete = function (id) {\r\n var _this = this;\r\n var promise = this.Restangular.one(this.itemName, id.toString()).remove();\r\n promise\r\n .then(function (result) {\r\n _this.itemId = id;\r\n _this.notifyObservers('delete');\r\n _this.AppService.NotifyService.success('Verwijderd', 'De gegevens zijn verwijderd');\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n };\r\n BaseService.prototype.post = function (data) {\r\n var _this = this;\r\n return this.collection.post(data).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n _this.item = item.plain();\r\n _this.notifyObservers('post');\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n BaseService.prototype.customPost = function (url, data, displayResult) {\r\n var _this = this;\r\n if (displayResult === void 0) { displayResult = true; }\r\n return this.collection.customPOST(data, url).then(function (item) {\r\n if (displayResult) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n }\r\n return item;\r\n })\r\n .catch(function (error) {\r\n if (displayResult) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n }\r\n return error;\r\n });\r\n };\r\n BaseService.prototype.put = function (id, data) {\r\n var _this = this;\r\n var promise = this.Restangular.one(this.itemName, id.toString()).customPUT(data);\r\n promise\r\n .then(function (result) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n _this.item = result.plain();\r\n _this.notifyObservers('put');\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n };\r\n BaseService.prototype.customPut = function (url, data) {\r\n var _this = this;\r\n // console.log(data);\r\n return this.collection.customPUT(data, url).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item;\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n BaseService.prototype.customGet = function (url, params) {\r\n var _this = this;\r\n if (params === void 0) { params = null; }\r\n return this.Restangular.one(this.itemName + '/' + url).get(params).then(function (item) {\r\n if (item) {\r\n _this.item = item;\r\n if (typeof item !== \"string\" && item.plain()) {\r\n return item.plain();\r\n }\r\n else {\r\n return item;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n });\r\n };\r\n BaseService.prototype.getChild = function (id, childName, params) {\r\n var _this = this;\r\n if (params === void 0) { params = { 'limit': 5000 }; }\r\n if ((typeof id === \"number\" && id > 0) || (typeof id === \"string\" && id !== undefined)) {\r\n return this.Restangular.one(this.itemName, id.toString()).customGET(childName, params).then(function (item) {\r\n _this.item = item.value;\r\n return item.value;\r\n });\r\n }\r\n else {\r\n this.item = null;\r\n return null;\r\n }\r\n };\r\n BaseService.prototype.postChild = function (data, parentId, childName) {\r\n var _this = this;\r\n var promise = this.Restangular.one(this.itemName, parentId.toString()).customPOST(data, childName);\r\n promise\r\n .then(function (result) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n };\r\n BaseService.prototype.putChild = function (data, parentId, childName, childId) {\r\n var _this = this;\r\n var promise = this.Restangular.one(this.itemName, parentId.toString()).customPUT(data, childName + '/' + childId);\r\n promise\r\n .then(function (result) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n };\r\n BaseService.prototype.deleteChild = function (childId, parentId, childName) {\r\n var _this = this;\r\n var promise = this.Restangular.one(this.itemName, parentId.toString()).customDELETE(childName + '/' + childId);\r\n promise.then(function (result) {\r\n _this.AppService.NotifyService.success('Verwijderd', 'De gegevens zijn verwijderd');\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n };\r\n BaseService.prototype.customDelete = function (url) {\r\n var _this = this;\r\n return this.collection.customDELETE(url).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item;\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n return BaseService;\r\n}());\r\nexports.BaseService = BaseService;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = __webpack_require__(6);\r\nexports.ngmodule = angular.module(\"app\", [\r\n 'abo-theme',\r\n 'abo-masterdata',\r\n 'ui.router',\r\n 'restangular',\r\n 'LocalStorageModule',\r\n 'ngLetterAvatar',\r\n 'ui.router.modal',\r\n 'angularFileUpload',\r\n 'ngMessages',\r\n 'gettext',\r\n 'permission',\r\n 'permission.ui',\r\n 'angular.filter',\r\n 'ng.deviceDetector',\r\n 'matchMedia',\r\n 'ngFileSaver',\r\n 'infinite-scroll',\r\n 'ngclipboard'\r\n]);\r\nvar BLANK_MODULE = {\r\n states: [],\r\n components: {},\r\n directives: {},\r\n services: {},\r\n filters: {},\r\n factories: {},\r\n configBlocks: [],\r\n runBlocks: []\r\n};\r\n/**\r\n * Register each app module's states, directives, components, filters, services,\r\n * and config/run blocks with the `ngmodule`\r\n *\r\n * @param ngModule the `angular.module()` object\r\n * @param appModule the feature module consisting of components, states, services, etc\r\n */\r\nexports.loadNg1Module = function (ngModule, appModule) {\r\n var module = Object.assign({}, BLANK_MODULE, appModule);\r\n ngModule.config(['$stateProvider', function ($stateProvider) { return module.states.forEach(function (state) { return $stateProvider.state(state); }); }]);\r\n Object.keys(module.components).forEach(function (name) { return ngModule.component(name, module.components[name]); });\r\n Object.keys(module.directives).forEach(function (name) { return ngModule.directive(name, module.directives[name]); });\r\n Object.keys(module.services).forEach(function (name) { return ngModule.service(name, module.services[name]); });\r\n Object.keys(module.filters).forEach(function (name) { return ngModule.filter(name, module.filters[name]); });\r\n Object.keys(module.factories).forEach(function (name) { return ngModule.factory(name, module.factories[name]); });\r\n module.configBlocks.forEach(function (configBlock) { return ngModule.config(configBlock); });\r\n module.runBlocks.forEach(function (runBlock) { return ngModule.run(runBlock); });\r\n return ngModule;\r\n};\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nfunction __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__export(__webpack_require__(711));\r\n__export(__webpack_require__(714));\r\n__export(__webpack_require__(715));\r\n__export(__webpack_require__(720));\r\n__export(__webpack_require__(723));\r\n__export(__webpack_require__(726));\r\n__export(__webpack_require__(717));\r\n__export(__webpack_require__(266));\r\n__export(__webpack_require__(264));\r\n__export(__webpack_require__(724));\r\n__export(__webpack_require__(721));\r\n__export(__webpack_require__(718));\r\n__export(__webpack_require__(18));\r\n__export(__webpack_require__(716));\r\n__export(__webpack_require__(719));\r\n__export(__webpack_require__(267));\r\n__export(__webpack_require__(263));\r\n__export(__webpack_require__(727));\r\n__export(__webpack_require__(261));\r\n__export(__webpack_require__(722));\r\n__export(__webpack_require__(22));\r\n__export(__webpack_require__(265));\r\n__export(__webpack_require__(713));\r\n__export(__webpack_require__(712));\r\n__export(__webpack_require__(269));\r\n__export(__webpack_require__(262));\r\n\n\n/***/ }),\n/* 6 */,\n/* 7 */,\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BaseEntity = /** @class */ (function () {\r\n function BaseEntity() {\r\n }\r\n return BaseEntity;\r\n}());\r\nexports.BaseEntity = BaseEntity;\r\n\n\n/***/ }),\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar isProd = ($.trim(\"production \") == 'production');\r\nvar isStaging = ($.trim(\"production \") == 'staging');\r\nvar isDev = ($.trim(\"production \") == 'develop');\r\nvar isDemo = ($.trim(\"production \") == 'demo');\r\nvar config = {\r\n VERSION: '1.26.2',\r\n BASE_URL: '',\r\n BASE_AUTH_URL: '',\r\n API_URL: '',\r\n AUTH_API_URL: '',\r\n AUTH_LOGIN_URL: '',\r\n AUTH_LOGOUT_URL: '',\r\n AUTH_CLIENT_ID: '',\r\n AUTH_SCOPES: '',\r\n};\r\nconfig.AUTH_CLIENT_ID = 'js';\r\nconfig.AUTH_SCOPES = 'openid profile api';\r\nif (isProd) {\r\n config.BASE_URL = 'https://operando-api.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth.tccapps.nl/';\r\n}\r\nelse if (isStaging) {\r\n config.BASE_URL = 'https://operando-api-staging.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth-staging.tccapps.nl/';\r\n}\r\nelse if (isDev) {\r\n config.BASE_URL = 'https://operando-api-develop.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth-develop.tccapps.nl/';\r\n}\r\nelse {\r\n config.BASE_URL = 'https://operando-api-develop.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth-develop.tccapps.nl/';\r\n //config.BASE_URL = 'http://localhost:5000/';\r\n //config.BASE_AUTH_URL = 'https://operando-auth-develop.azurewebsites.net/';\r\n}\r\nconfig.API_URL = config.BASE_URL + 'api/';\r\nconfig.AUTH_API_URL = config.BASE_AUTH_URL + 'auth/';\r\nconfig.AUTH_LOGIN_URL = config.BASE_AUTH_URL + 'connect/authorize';\r\nconfig.AUTH_LOGOUT_URL = config.BASE_AUTH_URL + 'connect/endsession';\r\nexports.default = config;\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ICalendarShift = /** @class */ (function (_super) {\r\n __extends(ICalendarShift, _super);\r\n function ICalendarShift() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ICalendarShift;\r\n}(base_entity_1.BaseEntity));\r\nexports.ICalendarShift = ICalendarShift;\r\nvar CalendarService = /** @class */ (function (_super) {\r\n __extends(CalendarService, _super);\r\n CalendarService.$inject = [\"Restangular\", \"AppService\"];\r\n function CalendarService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'calendar') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n _this.all = function (params) {\r\n return _this.Restangular.all('calendar').customGET('', params).then(function (response) {\r\n _this.list = response.plain();\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n return _this;\r\n }\r\n return CalendarService;\r\n}(base_service_1.BaseService));\r\nexports.CalendarService = CalendarService;\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IShift = /** @class */ (function (_super) {\r\n __extends(IShift, _super);\r\n function IShift() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.subscribed = false;\r\n _this.isInThePast = false;\r\n return _this;\r\n }\r\n return IShift;\r\n}(base_entity_1.BaseEntity));\r\nexports.IShift = IShift;\r\nvar IBulkactionData = /** @class */ (function () {\r\n function IBulkactionData() {\r\n }\r\n return IBulkactionData;\r\n}());\r\nexports.IBulkactionData = IBulkactionData;\r\nvar ShiftService = /** @class */ (function (_super) {\r\n __extends(ShiftService, _super);\r\n ShiftService.$inject = [\"Restangular\", \"AppService\"];\r\n function ShiftService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'shift') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n _this.getFilter = function (params) {\r\n params.limit = params.limit ? params.limit : 5000;\r\n return _this.Restangular.all(_this.itemName).customGET('', params).then(function (response) {\r\n _this.list = response.plain().value;\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n _this.getLightByDate = function (params) {\r\n params.limit = params.limit ? params.limit : 5000;\r\n return _this.Restangular.all(_this.itemName + '/getLightByDate').customGET('', params).then(function (response) {\r\n _this.list = response.plain().value;\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n _this.getByEmployee = function (start, end, employeeId) {\r\n var params = { 'start': start, 'end': end };\r\n return _this.Restangular.all(_this.itemName + '/employee').customGET(employeeId, params).then(function (response) {\r\n _this.list = response.plain();\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n _this.getByCurrentEmployee = function (start, end) {\r\n var params = { 'start': start, 'end': end };\r\n return _this.Restangular.all(_this.itemName + '/employee').customGET('', params).then(function (response) {\r\n _this.list = response.plain();\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n _this.bulkAction = function (data) {\r\n return _this.Restangular.all(_this.itemName + '/bulk').post(data).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n return _this;\r\n }\r\n return ShiftService;\r\n}(base_service_1.BaseService));\r\nexports.ShiftService = ShiftService;\r\n\n\n/***/ }),\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IEmployeeAvailability = /** @class */ (function (_super) {\r\n __extends(IEmployeeAvailability, _super);\r\n function IEmployeeAvailability() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IEmployeeAvailability;\r\n}(base_entity_1.BaseEntity));\r\nexports.IEmployeeAvailability = IEmployeeAvailability;\r\nvar EmployeeAvailabilityService = /** @class */ (function (_super) {\r\n __extends(EmployeeAvailabilityService, _super);\r\n EmployeeAvailabilityService.$inject = [\"Restangular\", \"AppService\"];\r\n function EmployeeAvailabilityService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'hr/EmployeeAvailability') || this;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return EmployeeAvailabilityService;\r\n}(base_service_1.BaseService));\r\nexports.EmployeeAvailabilityService = EmployeeAvailabilityService;\r\n\n\n/***/ }),\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */,\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */,\n/* 133 */,\n/* 134 */,\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/beschikbaarheid2.jpg\";\n\n/***/ }),\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */,\n/* 218 */,\n/* 219 */,\n/* 220 */,\n/* 221 */,\n/* 222 */,\n/* 223 */,\n/* 224 */,\n/* 225 */,\n/* 226 */,\n/* 227 */,\n/* 228 */,\n/* 229 */,\n/* 230 */,\n/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */,\n/* 235 */,\n/* 236 */,\n/* 237 */,\n/* 238 */,\n/* 239 */,\n/* 240 */,\n/* 241 */,\n/* 242 */,\n/* 243 */,\n/* 244 */,\n/* 245 */,\n/* 246 */,\n/* 247 */,\n/* 248 */,\n/* 249 */,\n/* 250 */,\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */,\n/* 255 */,\n/* 256 */,\n/* 257 */,\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IAuthUser = /** @class */ (function () {\r\n function IAuthUser() {\r\n }\r\n return IAuthUser;\r\n}());\r\nexports.IAuthUser = IAuthUser;\r\nvar IAuthClaims = /** @class */ (function () {\r\n function IAuthClaims() {\r\n }\r\n return IAuthClaims;\r\n}());\r\nexports.IAuthClaims = IAuthClaims;\r\nvar AuthUserService = /** @class */ (function (_super) {\r\n __extends(AuthUserService, _super);\r\n AuthUserService.$inject = [\"AuthSettingsApi\", \"AppService\", \"AuthService\", \"localStorageService\", \"$q\"];\r\n function AuthUserService(AuthSettingsApi, AppService, AuthService, localStorageService, $q) {\r\n 'ngInject';\r\n var _this = _super.call(this, AuthSettingsApi, AppService, 'user') || this;\r\n _this.AppService = AppService;\r\n _this.AuthService = AuthService;\r\n _this.localStorageService = localStorageService;\r\n _this.$q = $q;\r\n _this.all = function () {\r\n return _this.Restangular.all(_this.itemName).getList().then(function (response) {\r\n _this.list = response.plain();\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n _this.resetPassword = function (user) {\r\n return _this.collection.one(user.id).all('resetpassword').post(user).then(function (response) {\r\n return response;\r\n });\r\n };\r\n _this.getRoles = function (user) {\r\n return _this.collection.one(user.id).all('roles').getList().then(function (response) {\r\n return response.plain();\r\n });\r\n };\r\n _this.getClaims = function (user) {\r\n return _this.collection.one(user.id).all('claims').getList().then(function (response) {\r\n return response.plain();\r\n });\r\n };\r\n _this.getCurrentUser = function () {\r\n var tokendata = _this.AuthService.getDataFromToken(_this.AuthService.GetAuthorizationData());\r\n var userId = tokendata.sub;\r\n if (_this.localStorageService.get(\"user\") && _this.localStorageService.get(\"user\").id == userId) {\r\n var deferred = _this.$q.defer();\r\n var user = _this.localStorageService.get(\"user\");\r\n deferred.resolve(user);\r\n return deferred.promise;\r\n }\r\n else {\r\n return _this.get(userId).then(function (user) {\r\n return _this.getClaims(user).then(function (claims) {\r\n return _this.getRoles(user).then(function (roles) {\r\n user.roles = roles;\r\n _this.localStorageService.set(\"user\", user);\r\n return user;\r\n });\r\n });\r\n });\r\n }\r\n };\r\n return _this;\r\n }\r\n AuthUserService.prototype.post = function (data) {\r\n var _this = this;\r\n return this.collection.post(data).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n _this.item = item.plain();\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n if (error.status == 406) {\r\n if (error.data[0].code == \"DuplicateUserName\") {\r\n throw \"DuplicateUserName\";\r\n }\r\n }\r\n _this.AppService.NotifyService.error('Foutmelding', \"Account kon niet worden opgeslagen!\");\r\n return error;\r\n });\r\n };\r\n return AuthUserService;\r\n}(base_service_1.BaseService));\r\nexports.AuthUserService = AuthUserService;\r\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hrState = {\r\n parent: \"app\",\r\n name: \"hr\",\r\n url: \"/hr\",\r\n redirectTo: \"hr.employees\",\r\n component: \"hrComponent\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.hrDashboardState = {\r\n name: \"hr.dashboard\",\r\n url: \"/dashboard\",\r\n views: {\r\n \"main\": 'hrDashboardComponent'\r\n }\r\n};\r\nexports.employeesState = {\r\n name: \"hr.employees\",\r\n url: \"/employees\",\r\n redirectTo: \"hr.employees.list\",\r\n views: {\r\n \"main\": \"employeesComponent\"\r\n }\r\n};\r\nexports.employeesListState = {\r\n name: \"hr.employees.list\",\r\n url: \"/list\",\r\n resolve: {},\r\n views: {\r\n \"main\": 'employeesListComponent'\r\n }\r\n};\r\nexports.employeesItemState = {\r\n name: \"hr.employees.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"tab\": null\r\n },\r\n resolve: {\r\n tasks: [\"EmployeesService\", \"$stateParams\", function (EmployeesService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return EmployeesService.getChild($stateParams['id'], 'tasks');\r\n }\r\n }],\r\n notes: [\"EmployeesService\", \"$stateParams\", function (EmployeesService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return EmployeesService.getChild($stateParams['id'], 'notes', { sortfield: 'date', sortorder: 'DESC' });\r\n }\r\n }],\r\n employee: [\"EmployeesService\", \"$stateParams\", function (EmployeesService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return EmployeesService.get($stateParams['id']);\r\n }\r\n }],\r\n history: [\"DeclarationService\", \"$stateParams\", function (DeclarationService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return DeclarationService.customAll('employee/' + $stateParams['id'] + '/summary');\r\n }\r\n }],\r\n employeeSkills: [\"EmployeesService\", \"$stateParams\", function (EmployeesService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return EmployeesService.getChild($stateParams['id'], 'skills');\r\n }\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n },\r\n views: {\r\n \"main\": 'employeesItemComponent'\r\n }\r\n};\r\nexports.employeesItemBasicState = {\r\n name: \"hr.employees.item.basic\",\r\n url: \"/basic\",\r\n params: {\r\n \"tab\": null\r\n },\r\n modal: ['employee'],\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n transportationTypes: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('TransportationType');\r\n }],\r\n salaryScales: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('WageCodes');\r\n }]\r\n },\r\n component: 'employeesItemBasicComponent'\r\n};\r\nexports.shiftsItemState = {\r\n name: \"hr.employees.item.shift\",\r\n url: \"/shift/:shiftId\",\r\n params: {\r\n \"shiftId\": null\r\n },\r\n modal: ['employee', 'shifts'],\r\n resolve: {},\r\n component: 'shiftsItemComponent'\r\n};\r\nexports.availabilityItemState = {\r\n name: \"hr.employees.item.availability\",\r\n url: \"/availability/:employeeId/:availabilityId\",\r\n params: {\r\n \"availabilityId\": null\r\n },\r\n modal: [],\r\n resolve: {\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('AvalabilityStatus');\r\n }]\r\n },\r\n component: 'availabilityItemComponent'\r\n};\r\nexports.skillsItemState = {\r\n name: \"hr.employees.item.skill\",\r\n url: \"/skill/:employeeSkillId\",\r\n params: {\r\n \"employeeSkillId\": null\r\n },\r\n modal: ['employee', 'employeeSkills'],\r\n resolve: {\r\n skills: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Skills');\r\n }]\r\n },\r\n component: 'skillsItemComponent'\r\n};\r\nexports.availabilityListState = {\r\n name: \"hr.availability\",\r\n url: \"/availability\",\r\n resolve: {\r\n avalabilityStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('AvalabilityStatus');\r\n }],\r\n },\r\n views: {\r\n \"main\": 'availabilityListComponent'\r\n }\r\n};\r\nexports.applicantsState = {\r\n name: \"hr.applicants\",\r\n url: \"/applicants\",\r\n redirectTo: \"hr.applicants.list\",\r\n views: {\r\n \"main\": \"applicantsComponent\"\r\n }\r\n};\r\nexports.applicantsListState = {\r\n name: \"hr.applicants.list\",\r\n url: \"/list?status&recruiter&function&targetaudiance\",\r\n params: {\r\n \"status\": null,\r\n \"recruiter\": null,\r\n \"function\": null,\r\n \"targetaudiance\": null,\r\n },\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n preferredTargetAudiences: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }],\r\n users: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.gatBackoffice();\r\n }],\r\n },\r\n views: {\r\n \"main\": 'applicantsListComponent'\r\n }\r\n};\r\nexports.applicantsArchiveState = {\r\n name: \"hr.applicants.archive\",\r\n url: \"/archive?status&recruiter&function&targetaudiance\",\r\n params: {\r\n \"status\": null,\r\n \"recruiter\": null,\r\n \"function\": null,\r\n \"targetaudiance\": null,\r\n \"archive\": true\r\n },\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n preferredTargetAudiences: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }],\r\n users: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.gatBackoffice();\r\n }]\r\n },\r\n views: {\r\n \"main\": 'applicantsListComponent'\r\n }\r\n};\r\nexports.applicantsItemState = {\r\n name: \"hr.applicants.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"tab\": null\r\n },\r\n resolve: {\r\n applicant: [\"ApplicantsService\", \"$stateParams\", function (ApplicantsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ApplicantsService.get($stateParams['id']);\r\n }\r\n }],\r\n notes: [\"ApplicantsService\", \"$stateParams\", function (ApplicantsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ApplicantsService.getChild($stateParams['id'], 'notes', { sortfield: 'date', sortorder: 'DESC' });\r\n }\r\n }],\r\n applicationStatusHistories: [\"ApplicantStatusHistoryService\", \"$stateParams\", function (ApplicantStatusHistoryService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ApplicantStatusHistoryService.getPerApplicant($stateParams['id']);\r\n }\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n preferredTargetAudiences: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }],\r\n users: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.gatBackoffice();\r\n }],\r\n },\r\n views: {\r\n \"main\": 'applicantsItemComponent'\r\n }\r\n};\r\nexports.applicantsArchiveItemState = {\r\n name: \"hr.applicants.archiveitem\",\r\n url: \"/archive/:id\",\r\n params: {\r\n \"tab\": null,\r\n \"archive\": true\r\n },\r\n resolve: {\r\n applicant: [\"ApplicantsService\", \"$stateParams\", function (ApplicantsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ApplicantsService.get($stateParams['id']);\r\n }\r\n }],\r\n notes: [\"ApplicantsService\", \"$stateParams\", function (ApplicantsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ApplicantsService.getChild($stateParams['id'], 'notes', { sortfield: 'date', sortorder: 'DESC' });\r\n }\r\n }],\r\n applicationStatusHistories: [\"ApplicantStatusHistoryService\", \"$stateParams\", function (ApplicantStatusHistoryService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ApplicantStatusHistoryService.getPerApplicant($stateParams['id']);\r\n }\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n preferredTargetAudiences: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }],\r\n users: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.gatBackoffice();\r\n }],\r\n },\r\n views: {\r\n \"main\": 'applicantsItemComponent'\r\n }\r\n};\r\nexports.applicantsItemBasicState = {\r\n name: \"hr.applicants.item.basic\",\r\n url: \"/basic\",\r\n params: {\r\n \"tab\": null\r\n },\r\n modal: ['applicant', 'users'],\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n preferredTargetAudiences: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }],\r\n },\r\n component: 'applicantsItemBasicComponent'\r\n};\r\nexports.applicantsArchiveItemBasicState = {\r\n name: \"hr.applicants.archiveitem.basic\",\r\n url: \"/basic\",\r\n params: {\r\n \"tab\": null,\r\n \"archive\": true\r\n },\r\n modal: ['applicant', 'users'],\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n preferredTargetAudiences: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }],\r\n },\r\n component: 'applicantsItemBasicComponent'\r\n};\r\nexports.applicantsItemEmployeeState = {\r\n name: \"hr.applicants.item.employee\",\r\n url: \"/employee\",\r\n params: {\r\n \"tab\": null\r\n },\r\n modal: ['applicant'],\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n applicationStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }]\r\n },\r\n component: 'applicantsItemEmployeeComponent'\r\n};\r\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.shiftState = {\r\n parent: 'app',\r\n name: \"shifts\",\r\n url: \"/shifts\",\r\n component: 'shiftComponent',\r\n redirectTo: 'shifts.list',\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.shiftCalendarState = {\r\n name: \"shifts.calendar\",\r\n url: \"/calendar\",\r\n views: {\r\n \"main\": 'shiftCalendarComponent'\r\n }\r\n};\r\nexports.shiftItemState = {\r\n name: \"shifts.calendar.item\",\r\n url: \"/item/:id\",\r\n modal: true,\r\n size: \"lg\",\r\n component: 'shiftItemComponent',\r\n resolve: {\r\n shift: [\"ShiftService\", \"$stateParams\", function (ShiftService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n \"ngInject\";\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }]\r\n }\r\n};\r\nexports.shiftListState = {\r\n name: \"shifts.list\",\r\n url: \"/list?:start&:end&:refreshShift\",\r\n params: {\r\n \"start\": { dynamic: true },\r\n \"end\": { dynamic: true },\r\n \"refreshShift\": { dynamic: true }\r\n },\r\n views: {\r\n \"main\": 'shiftListComponent'\r\n },\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }],\r\n employees: [\"EmployeesService\", \"PermPermissionStore\", function (EmployeesService, PermPermissionStore) {\r\n \"ngInject\";\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n },\r\n data: {\r\n contentClasses: 'no-padding'\r\n }\r\n};\r\nexports.shiftListItemState = {\r\n name: \"shifts.list.item\",\r\n url: \"/item/:id\",\r\n resolve: {\r\n shift: [\"ShiftService\", \"$stateParams\", function (ShiftService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n }],\r\n },\r\n views: {\r\n \"shiflistitem@shifts.list\": 'shiftListItemComponent'\r\n },\r\n};\r\nexports.shiftListSubscriptionsModalState = {\r\n name: \"shifts.list.subscriptionsmodal\",\r\n url: \"/subscriptions/:id\",\r\n modal: true,\r\n size: \"lg\",\r\n component: 'subscriptionsModalComponent',\r\n resolve: {\r\n shift: [\"ShiftService\", \"$stateParams\", function (ShiftService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n }],\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }]\r\n }\r\n};\r\nexports.shiftListEmployeeState = {\r\n name: \"shifts.list.item.employee\",\r\n url: \"/employee\",\r\n params: {\r\n filter: null\r\n },\r\n resolve: {},\r\n views: {\r\n \"shiflistitem@shifts.list\": 'shiftListEmployeeComponent'\r\n },\r\n};\r\nexports.checkAvailabilityState = {\r\n name: \"shifts.list.checkAvailability\",\r\n url: \"/checkAvailability\",\r\n modal: true,\r\n component: 'checkAvailabilityModalComponent',\r\n size: \"huge\",\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }]\r\n }\r\n};\r\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IAgreement = /** @class */ (function (_super) {\r\n __extends(IAgreement, _super);\r\n function IAgreement() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IAgreement;\r\n}(base_entity_1.BaseEntity));\r\nexports.IAgreement = IAgreement;\r\nvar AgreementService = /** @class */ (function (_super) {\r\n __extends(AgreementService, _super);\r\n AgreementService.$inject = [\"Restangular\", \"AppService\"];\r\n function AgreementService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/AccountAgreements') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return AgreementService;\r\n}(base_service_1.BaseService));\r\nexports.AgreementService = AgreementService;\r\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ICootjeEmployee = /** @class */ (function (_super) {\r\n __extends(ICootjeEmployee, _super);\r\n function ICootjeEmployee() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ICootjeEmployee;\r\n}(base_entity_1.BaseEntity));\r\nexports.ICootjeEmployee = ICootjeEmployee;\r\nvar ICootjeDienst = /** @class */ (function (_super) {\r\n __extends(ICootjeDienst, _super);\r\n function ICootjeDienst() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ICootjeDienst;\r\n}(base_entity_1.BaseEntity));\r\nexports.ICootjeDienst = ICootjeDienst;\r\nvar CootjeService = /** @class */ (function (_super) {\r\n __extends(CootjeService, _super);\r\n CootjeService.$inject = [\"Restangular\", \"AppService\"];\r\n function CootjeService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'finance/cootje') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n CootjeService.prototype.sendToCootje = function (diensten) {\r\n return this.Restangular.all(this.itemName).one('sendToCootje').customPOST(diensten).then(function (item) {\r\n return item;\r\n });\r\n };\r\n return CootjeService;\r\n}(base_service_1.BaseService));\r\nexports.CootjeService = CootjeService;\r\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar angular = __webpack_require__(6);\r\nvar IEmployeeSkill = /** @class */ (function (_super) {\r\n __extends(IEmployeeSkill, _super);\r\n function IEmployeeSkill() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IEmployeeSkill;\r\n}(base_entity_1.BaseEntity));\r\nexports.IEmployeeSkill = IEmployeeSkill;\r\nvar IBlob = /** @class */ (function () {\r\n function IBlob() {\r\n }\r\n return IBlob;\r\n}());\r\nexports.IBlob = IBlob;\r\nvar EmployeeSkillsService = /** @class */ (function (_super) {\r\n __extends(EmployeeSkillsService, _super);\r\n EmployeeSkillsService.$inject = [\"Restangular\", \"AppService\"];\r\n function EmployeeSkillsService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'hr/employeeSkill') || this;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n EmployeeSkillsService.prototype.postBlob = function (id, file) {\r\n var _this = this;\r\n // Create FormData to send in the request\r\n var formData = new FormData();\r\n formData.append('file', file, file.name);\r\n return this.Restangular.one('hr/employeeSkill', id)\r\n .withHttpConfig({ transformRequest: angular.identity })\r\n .customPOST(formData, 'blobs', undefined, { 'Content-Type': undefined })\r\n .then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n _this.item = item.plain();\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n EmployeeSkillsService.prototype.getBlobs = function (id) {\r\n return this.Restangular.one('hr/employeeSkill', id).all('blobs').customGET('').then(function (collection) {\r\n return collection.plain();\r\n });\r\n };\r\n EmployeeSkillsService.prototype.getBlob = function (id, blobid) {\r\n this.Restangular.setFullResponse(true);\r\n return this.Restangular.one('hr/employeeSkill', id).one('blobs', blobid).customGET('').then(function (response) {\r\n return new Blob([response.data], { type: response.headers('Content-Type') });\r\n });\r\n };\r\n return EmployeeSkillsService;\r\n}(base_service_1.BaseService));\r\nexports.EmployeeSkillsService = EmployeeSkillsService;\r\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ILocation = /** @class */ (function (_super) {\r\n __extends(ILocation, _super);\r\n function ILocation() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ILocation;\r\n}(base_entity_1.BaseEntity));\r\nexports.ILocation = ILocation;\r\nvar LocationService = /** @class */ (function (_super) {\r\n __extends(LocationService, _super);\r\n LocationService.$inject = [\"Restangular\", \"AppService\"];\r\n function LocationService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/locations') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return LocationService;\r\n}(base_service_1.BaseService));\r\nexports.LocationService = LocationService;\r\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar INewsItem = /** @class */ (function () {\r\n function INewsItem() {\r\n }\r\n return INewsItem;\r\n}());\r\nexports.INewsItem = INewsItem;\r\nvar NewsService = /** @class */ (function (_super) {\r\n __extends(NewsService, _super);\r\n NewsService.$inject = [\"Restangular\", \"AppService\"];\r\n function NewsService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'newsItem') || this;\r\n _this.AppService = AppService;\r\n _this.getUnread = function () {\r\n return _this.Restangular.all(_this.itemName).customGET('unread', {}).then(function (response) {\r\n return _this.getListLoaded(response.plain());\r\n });\r\n };\r\n return _this;\r\n }\r\n return NewsService;\r\n}(base_service_1.BaseService));\r\nexports.NewsService = NewsService;\r\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IPerson = /** @class */ (function (_super) {\r\n __extends(IPerson, _super);\r\n function IPerson() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IPerson;\r\n}(base_entity_1.BaseEntity));\r\nexports.IPerson = IPerson;\r\nvar PersonService = /** @class */ (function (_super) {\r\n __extends(PersonService, _super);\r\n PersonService.$inject = [\"Restangular\", \"AppService\"];\r\n function PersonService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'person') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return PersonService;\r\n}(base_service_1.BaseService));\r\nexports.PersonService = PersonService;\r\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ITeam = /** @class */ (function (_super) {\r\n __extends(ITeam, _super);\r\n function ITeam() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ITeam;\r\n}(base_entity_1.BaseEntity));\r\nexports.ITeam = ITeam;\r\nvar TeamService = /** @class */ (function (_super) {\r\n __extends(TeamService, _super);\r\n TeamService.$inject = [\"Restangular\", \"AppService\"];\r\n function TeamService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'team') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return TeamService;\r\n}(base_service_1.BaseService));\r\nexports.TeamService = TeamService;\r\n\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ITimezone = /** @class */ (function () {\r\n function ITimezone() {\r\n }\r\n return ITimezone;\r\n}());\r\nexports.ITimezone = ITimezone;\r\nvar TimezonesService = /** @class */ (function (_super) {\r\n __extends(TimezonesService, _super);\r\n TimezonesService.$inject = [\"Restangular\", \"AppService\"];\r\n function TimezonesService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'timezone') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return TimezonesService;\r\n}(base_service_1.BaseService));\r\nexports.TimezonesService = TimezonesService;\r\n\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar TwinfieldService = /** @class */ (function (_super) {\r\n __extends(TwinfieldService, _super);\r\n /** Constructor */\r\n TwinfieldService.$inject = [\"Restangular\", \"AppService\", \"localStorageService\"];\r\n function TwinfieldService(Restangular, AppService, localStorageService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'twinfield') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n _this.localStorageService = localStorageService;\r\n /**\r\n * Check if Twinfield API token in APIis still valid.\r\n *\r\n * @return {void}\r\n */\r\n _this.verifyToken = function () {\r\n return _this.Restangular.one('twinfield').withHttpConfig({ cache: false }).customGET('');\r\n };\r\n /**\r\n * Set Twinfield API token with oAuth2 code\r\n *\r\n * @return {void}\r\n */\r\n _this.setToken = function (code) {\r\n return _this.Restangular.one('twinfield').withHttpConfig({ cache: false }).customGET(code, {\r\n redirectUrl: window.location.protocol + '//' + window.location.host + '/app/twinfield'\r\n });\r\n };\r\n /**\r\n * Set redirect URL for\r\n *\r\n * @return {void}\r\n */\r\n _this.setTwinfieldRedirectUri = function () {\r\n /** Log */\r\n console.log('twinfieldRedirect: ' + window.location.pathname + window.location.search);\r\n /** Set URI */\r\n _this.localStorageService.set('twinfieldRedirect', window.location.pathname + window.location.search);\r\n };\r\n return _this;\r\n }\r\n return TwinfieldService;\r\n}(base_service_1.BaseService));\r\nexports.TwinfieldService = TwinfieldService;\r\n\n\n/***/ }),\n/* 270 */,\n/* 271 */,\n/* 272 */,\n/* 273 */,\n/* 274 */,\n/* 275 */,\n/* 276 */\n/***/ (function(module, exports) {\n\nangular.module('gettext').run(['gettextCatalog', function (gettextCatalog) {\n/* jshint -W100 */\n gettextCatalog.setStrings('nl_NL', {\"A password has to have at least 8 characters with minimal one uppercase, number and non alphanumeric character\":\"Een wachtwoord moet minimaal een hoofdletter, een nummer en een niet-alfanumeriek karakter bevatten\",\"Account\":\"Account\",\"Account notes\":\"Notities\",\"Account/Employee/Applicant\":\"Bedrijf/Medewerker/Sollicitant\",\"Account:\":\"Account:\",\"Accounts\":\"Accounts\",\"Actions\":\"Acties\",\"Add Account\":\"Account toevoegen\",\"Add Applicant\":\"Sollicitant toevoegen\",\"First Status\":\"Eerste Status\",\"Last Status\":\"Laatste Status\",\"Add Contact\":\"Contact toevoegen\",\"Add Contact Person\":\"Contactpersoon toevoegen\",\"Add Employee\":\"Medewerker toevoegen\",\"Add Lead\":\"Lead toevoegen\",\"Add News Item\":\"Nieuws item toevoegen\",\"Add Shift\":\"Dienst toevoegen\",\"Add Task\":\"Taak toevoegen\",\"Add User\":\"Gebruiker toevoegen\",\"Add agreement\":\"Overeenkomst toevoegen\",\"Add availability\":\"Beschikbaarheid toevoegen\",\"Add employee\":\"Medewerker toevoegen\",\"Add location\":\"Locatie toevoegen\",\"Add note\":\"Notitie toevoegen\",\"Add reminder interval\":\"Herinnerings interval toevoegen\",\"Add salary scale\":\"Salarisschaal toevoegen\",\"Add skill\":\"Vaardigheid toevoegen\",\"Add timezone\":\"Tijdslot toevoegen\",\"Address\":\"Adres\",\"Address:\":\"Adres:\",\"Age\":\"Leeftijd\",\"Age:\":\"Leeftijd:\",\"Agreement\":\"Overeenkomst\",\"Agreements\":\"Overeenkomsten\",\"Ammount\":\"Hoeveelheid\",\"Amount\":\"Per uur\",\"Amount of hours\":\"Aantal uur\",\"Amount:\":\"Per uur:\",\"Applicant basic information\":\"Sollicitant informatie\",\"Applicants\":\"Sollicitanten\",\"Apply\":\"Uitvoeren\",\"Approved\":\"Goedgekeurd\",\"Archive\":\"Archief\",\"Assign\":\"Medewerker toewijzen\",\"Auth Settings\":\"Authorisatie Instellingen\",\"Availability\":\"Beschikbaarheid\",\"Available\":\"Beschikbaar\",\"BIC:\":\"BIC:\",\"BSN\":\"BSN\",\"BSN:\":\"BSN:\",\"Back\":\"Terug\",\"Bank Account Number\":\"Bankrekeningnummer\",\"Bank account\":\"Bankrekeningnummer\",\"Basic info\":\"Basis info\",\"Birthday\":\"Verjaardag\",\"Birthday:\":\"Verjaardag:\",\"Calculation index\":\"Omrekenfactor\",\"Calendar\":\"Kalender\",\"Cancel\":\"Annuleren\",\"Chamber Of Commerce Number\":\"KvK nummer\",\"Chamber of Commerce Number\":\"KvK nummer\",\"Check availability\":\"Beschikbaarheid controleren\",\"Logout\":\"Uitloggen\",\"City\":\"Stad\",\"City:\":\"Stad:\",\"Claims\":\"Claims\",\"Close\":\"Sluiten\",\"Code\":\"Code\",\"Code:\":\"RVA Code:\",\"Comment\":\"Opmerking\",\"Comment customer\":\"Opmerking klant\",\"Comment employee\":\"Opmerking medewerker\",\"Comment internal\":\"Opmerking intern\",\"Comment:\":\"Opmerking:\",\"Company\":\"Bedrijf\",\"Company Name\":\"Bedrijfsnaam\",\"Company basic information\":\"Bedrijfsinformatie\",\"Company contact information\":\"Contact\",\"Company financial information\":\"Financieel\",\"Confirm password\":\"Wachtwoord bevestigen\",\"Conflicting shift:\":\"Overlappende dienst:\",\"Contact\":\"Contact\",\"Contact Persons\":\"Contactpersonen\",\"Contact basic information\":\"Contact\",\"Contact:\":\"Contact:\",\"Contacts\":\"Contacten\",\"Contract\":\"Contract\",\"Contract ID:\":\"Contact:\",\"Count\":\"Hoeveelheid\",\"Country\":\"Land\",\"Country of birth:\":\"Geboorteland:\",\"Country:\":\"Land:\",\"Create account\":\"Account maken\",\"Create employee\":\"Medewerker aanmaken\",\"Create task\":\"Taak maken\",\"Created by me\":\"Aangemaakt door mij\",\"Creation date:\":\"Vervaldatum:\",\"Customer reference\":\"Klant referentie\",\"Date\":\"Datum\",\"Date:\":\"Datum:\",\"Declarations\":\"Declaraties\",\"Declarations count\":\"Aantal declaraties\",\"Declared hours sum\":\"Totaal gedeclareerde uren\",\"Declared:\":\"Gedeclareerd:\",\"Delete\":\"Verwijderen\",\"Delete account\":\"Account verwijderen\",\"Delete applicant\":\"Sollicitant verwijderen\",\"Delete contact\":\"Contact verwijderen\",\"Delete employee\":\"Medewerker verwijderen\",\"Delete task\":\"Taak verwijderen\",\"Delete timezone\":\"Medewerker verwijderen\",\"Delete user\":\"Verwijder gebruiker\",\"Delivery day\":\"Bezorgdag\",\"Description\":\"Beschrijving\",\"Description:\":\"Beschrijving:\",\"Display name:\":\"Naam:\",\"Distance\":\"Afstand\",\"Distance:\":\"Afstand:\",\"Document of proof\":\"Bewijs document\",\"Edit\":\"Bewerken\",\"Edit task\":\"Taak bewerken\",\"Email\":\"Email\",\"Email Address\":\"Emailadres\",\"Email employee\":\"Email Medewerkers\",\"Email team\":\"Email team\",\"Email:\":\"Email:\",\"Employee\":\"Medewerkers\",\"Employee basic information\":\"Medewerker\",\"Employee selector\":\"Medewerker selecteren\",\"Employee:\":\"Medewerker:\",\"Employees\":\"Medewerkers\",\"End\":\"Einde\",\"End Date\":\"Einddatum\",\"End date\":\"Einddatum\",\"Expenses declaration\":\"Onkosten declaratie\",\"Fax\":\"Fax\",\"Fax:\":\"Fax:\",\"Files\":\"Bestanden\",\"Status history\":\"Status geschiedenis\",\"Filter by function\":\"Filteren op functie\",\"Filter by max distance\":\"Filter op max. afstand\",\"Filter by status\":\"Filter op status\",\"Filter created by\":\"Aangemaakt door allen\",\"Filters\":\"Filters\",\"Financial\":\"Financieel\",\"First name\":\"Voornaam\",\"First name:\":\"Voornaam:\",\"From\":\"Van\",\"From:\":\"Van:\",\"Full Name\":\"Volledige naam\",\"Function\":\"Functie\",\"Function:\":\"Functie:\",\"Gender:\":\"Gesalcht:\",\"Get emails\":\"Emailadressen kopiëren\",\"Global filters\":\"Algemene filters\",\"Gross hourly wage\":\"Uurloon\",\"Herhaal wachtwoord\":\"Herhaal wachtwoord\",\"Hour code\":\"Uurcode\",\"HourCodeName:\":\"Naam:\",\"Hourly wage\":\"Uurloon\",\"Hours sum\":\"Totaal uren\",\"I know Operando from\":\"Kent Operando van\",\"I know Operando from:\":\"Kent Operando van:\",\"IBAN\":\"IBAN\",\"IBAN:\":\"IBAN:\",\"ID\":\"ID\",\"In progress\":\"Bezig\",\"Inactive\":\"Niet actief\",\"Invoices\":\"Facturen\",\"Job offer\":\"Vacature\",\"Job offer:\":\"Vacature:\",\"Kilometers\":\"Kilometers\",\"Last name\":\"Achternaam\",\"Last name:\":\"Achternaam:\",\"Last shifts:\":\"Laatste diensten:\",\"Leads\":\"Leads\",\"Leads information\":\"Leads\",\"LinkedIn\":\"LinkedIn\",\"List\":\"Lijst\",\"Location\":\"Locatie\",\"Location:\":\"Locatie:\",\"Locations\":\"Locaties\",\"Login URL\":\"Login URL\",\"Logout URL\":\"Logout URL\",\"Marital status:\":\"Huwelijkse staat:\",\"Middle name\":\"Tussenvoegsel\",\"Mileage\":\"Kilometers\",\"More\":\"Meer\",\"Name\":\"Naam\",\"Name and Address\":\"Naam en adres\",\"Name:\":\"Naam:\",\"New shift\":\"Shift toevoegen\",\"News\":\"Nieuws\",\"News item\":\"Nieuws item\",\"Next\":\"Volgende\",\"Nickname:\":\"Naam:\",\"Nmbrs\":\"Nmbrs\",\"NmbrsId:\":\"NmbrsId:\",\"No items found\":\"Geen items gevonden\",\"Note\":\"Notitie\",\"Notes\":\"Notities\",\"Notes:\":\"Notities:\",\"Notify employee\":\"Email medewerker\",\"Notify team\":\"Email team\",\"Number\":\"Nummer\",\"Number declared\":\"Aantal gedeclareerd\",\"Number of approved hours\":\"Totaal geaccordeerde uren\",\"Number of approved shifts\":\"Aantal geaccordeerde diensten\",\"Number of declared hours\":\"Totaal gedeclareerde uren\",\"Number of declared shifts\":\"Aantal gedeclareerde diensten\",\"Number of scheduled hours\":\"Totaal geplande uren\",\"Number of scheduled shifts\":\"Aantal geplande diensten\",\"Number of services\":\"Aantal diensten\",\"Opdrachtgever\":\"Opdrachtgever\",\"Open\":\"Open\",\"Overview\":\"Overzicht\",\"Password\":\"Wachtwoord\",\"Percentage\":\"Percentage\",\"Percentage:\":\"Percentage:\",\"Personal info\":\"Persoonlijke informatie\",\"Phone\":\"Telefoon\",\"Phone Number\":\"Telefoonnummer\",\"Phone:\":\"Telefoon:\",\"Planned:\":\"Ingepland:\",\"Post Address\":\"Postadres\",\"Post City\":\"Stad\",\"Post Country\":\"Land\",\"Post Number\":\"Nummer\",\"Post Street\":\"Straat\",\"Post Zip\":\"Postcode\",\"Postal code:\":\"Postcode:\",\"Preferred target audience\":\"Doelgroep\",\"Preferred target audience:\":\"Doelgroep\",\"Prev\":\"Vorige\",\"Previously at location\":\"Eerder op locatie geweest\",\"Previously at location:\":\"Eerder op locatie geweest:\",\"Priority\":\"Prioriteit\",\"Priority:\":\"Prioriteit:\",\"Pro forma invoices\":\"Pro forma facturen\",\"RVA Code\":\"RVA Code\",\"Recruiter\":\"Recruiter\",\"Recruiter:\":\"Recruiter\",\"Refresh all employees from NMBRS\":\"Herlaad alle medewerker uit NMBRS\",\"Refresh employee from NMBRS\":\"Herlaad medewerker uit NMBRS\",\"Rejected\":\"Geweigerd\",\"Reminder interval\":\"Herinnering interval\",\"Reset Password\":\"Wachtwoord aanpassen\",\"Reset all\":\"Reset alle filters\",\"Reset filter\":\"Reset alle filters\",\"Restore employee\":\"Medewerker terugzetten\",\"Roles\":\"Rollen\",\"SCA Code\":\"SCA Code\",\"Salary scale\":\"Salarisschaal\",\"Salary scale:\":\"Salarisschaal:\",\"Save\":\"Opslaan\",\"Save and copy\":\"Opslaan en kopiëren\",\"Save and new\":\"Opslaan en nieuwe\",\"Saved\":\"Opgeslagen\",\"Schedule\":\"Agenda\",\"Search\":\"Zoeken\",\"Select status\":\"Status selecteren\",\"Send to Nmbrs\":\"Verstuur naar Nmbrs\",\"Send to Twinfield\":\"Naar Twinfield versturen\",\"Server Settings\":\"Server instellingen\",\"Set employee\":\"Medewerker selecteren\",\"Set status\":\"Status selecteren\",\"Settings\":\"Instellingen\",\"Shift\":\"Dienst\",\"Shift data\":\"Dienst gegevens\",\"Shift subscriptions\":\"Inschrijving\",\"Shifts\":\"Diensten\",\"Shifts count\":\"Aantal diensten\",\"Sign up\":\"Aanmelden\",\"Skill\":\"Vaardigheid\",\"Skills\":\"Vaardigheden\",\"Social information\":\"Social informatie\",\"Start\":\"Start\",\"Start date:\":\"Start:\",\"Startdatum\":\"Startdatum\",\"Starttijd\":\"Starttijd\",\"Status\":\"Status\",\"Status:\":\"Status:\",\"Street\":\"Straat\",\"Subscribe\":\"Inschrijven\",\"Subscribed\":\"Ingeschreven\",\"Subscription\":\"Inschrijving\",\"Sync with Nmbrs\":\"Synchroniseer met Nmbrs\",\"Tags\":\"Kenmerken\",\"Tags:\":\"Kenmerken:\",\"Target audience\":\"Doelgroep\",\"Tasks\":\"Taken\",\"Team\":\"Team\",\"Team:\":\"Team:\",\"The text is too long. It should be max 1024 characters\":\"Tekst is te lang. Maximaal 1024 tekens\",\"This field is required\":\"Dit veld is verplicht\",\"Till\":\"Tot\",\"Till:\":\"Tot:\",\"Time\":\"Tijd\",\"Time declaration\":\"Uren declaratie\",\"Timesheets\":\"Urenregistratie\",\"Timezone basic information\":\"Tijdslot informatie\",\"Timezones\":\"Tijdslots\",\"Title\":\"Titel\",\"Total\":\"Totaal\",\"Total amount\":\"Totaal bedrag\",\"Transportation type\":\"Vervoersmiddel\",\"Transportation type:\":\"Vervoersmiddel:\",\"Twinfield ID\":\"Twinfield ID\",\"Twinfield Id\":\"Twinfield Id\",\"Twinfield amount\":\"Twinfield amount\",\"Type\":\"Type\",\"Type:\":\"Type:\",\"Unassign\":\"Medewerker verwijderen\",\"Unknown\":\"Onbekend\",\"Unsubscribe\":\"Uitschrijven\",\"Upload file\":\"Upload bestand\",\"User\":\"Gebruiker\",\"User-Account\":\"Gebruikersaccount\",\"User:\":\"Gebruiker:\",\"Username\":\"Gebruikersnaam\",\"Username:\":\"Gebruikersnaam:\",\"Users\":\"Gebruikers\",\"VAT Code\":\"BTW code\",\"VAT Number\":\"BTW nummer\",\"Website\":\"Website\",\"Website:\":\"Website:\",\"Wijzigen\":\"Wijzigen\",\"Work history\":\"Werkhistorie\",\"Your passwords did not match\":\"Uw wachtwoorden komen niet overeen\",\"Zip\":\"Postcode\",\"choose a status\":\"filter op status\",\"choose a tag\":\"filter op kenmerk\",\"hours\":\"uren\",\"km\":\"km\",\"locations\":\"locaties\",\"search\":\"zoeken\",\"teams\":\"teams\",\"times\":\"aantal keer\",\"to\":\"tot\",\"until\":\"tot\"});\n/* jshint +W100 */\n}]);\n\n/***/ }),\n/* 277 */,\n/* 278 */,\n/* 279 */,\n/* 280 */,\n/* 281 */,\n/* 282 */,\n/* 283 */,\n/* 284 */,\n/* 285 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 286 */,\n/* 287 */,\n/* 288 */,\n/* 289 */,\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar services_1 = __webpack_require__(537);\r\nvar auth_states_1 = __webpack_require__(531);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar login_1 = __webpack_require__(533);\r\nvar logout_1 = __webpack_require__(534);\r\nvar authorized_1 = __webpack_require__(532);\r\nvar unauthorized_1 = __webpack_require__(538);\r\nvar auth_hook_1 = __webpack_require__(535);\r\nvar authorizationAppModule = {\r\n components: { login: login_1.login, logout: logout_1.logout, authorized: authorized_1.authorized, unauthorized: unauthorized_1.unauthorized },\r\n states: [auth_states_1.loginState, auth_states_1.logoutState, auth_states_1.authorizedState, auth_states_1.unauthorizedState],\r\n services: { AuthService: services_1.AuthService },\r\n runBlocks: [auth_hook_1.authHookRunBlock]\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, authorizationAppModule);\r\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar authsettings_usersItem_component_1 = __webpack_require__(544);\r\nvar authsettings_server_component_1 = __webpack_require__(542);\r\nvar authusers_service_1 = __webpack_require__(258);\r\nvar authsettings_factory_1 = __webpack_require__(546);\r\nvar authsettings_run_1 = __webpack_require__(539);\r\nvar authsettings_users_component_1 = __webpack_require__(543);\r\nvar authsettings_component_1 = __webpack_require__(541);\r\nvar resetPassword_component_1 = __webpack_require__(545);\r\nvar authsettings_states_1 = __webpack_require__(540);\r\nvar authsettings_service_1 = __webpack_require__(547);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar authSettingsAppModule = {\r\n components: { authSettingsComponent: authsettings_component_1.authSettingsComponent, authSettingsUsersComponent: authsettings_users_component_1.authSettingsUsersComponent, authSettingsServerComponent: authsettings_server_component_1.authSettingsServerComponent, authSettingsUsersItemComponent: authsettings_usersItem_component_1.authSettingsUsersItemComponent, resetPasswordComponent: resetPassword_component_1.resetPasswordComponent },\r\n states: [authsettings_states_1.authSettingsState, authsettings_states_1.authSettingsUsersState, authsettings_states_1.authSettingsServerState, authsettings_states_1.authSettingsUsersItemState],\r\n services: { AuthSettingsService: authsettings_service_1.AuthSettingsService, AuthUserService: authusers_service_1.AuthUserService },\r\n runBlocks: [authsettings_run_1.authServiceRun],\r\n factories: { AuthSettingsApi: authsettings_factory_1.AuthSettingsApi }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, authSettingsAppModule);\r\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar globalAppModule = {\r\n directives: {},\r\n services: {},\r\n runBlocks: []\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, globalAppModule);\r\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dateTimePicker_component_1 = __webpack_require__(668);\r\nvar fixedHeight_1 = __webpack_require__(553);\r\nvar browser_page_component_1 = __webpack_require__(562);\r\nvar compareTo_1 = __webpack_require__(551);\r\nvar passwordValidation_1 = __webpack_require__(554);\r\nvar bytes_filter_1 = __webpack_require__(555);\r\nvar location_service_1 = __webpack_require__(264);\r\nvar app_service_1 = __webpack_require__(560);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar app_component_1 = __webpack_require__(557);\r\nvar app_states_1 = __webpack_require__(561);\r\nvar app_config_1 = __webpack_require__(558);\r\nvar app_run_1 = __webpack_require__(559);\r\nvar services_1 = __webpack_require__(5);\r\nvar navbar_component_1 = __webpack_require__(564);\r\nvar chatPanel_component_1 = __webpack_require__(563);\r\nvar newsPanel_component_1 = __webpack_require__(565);\r\nvar file_1 = __webpack_require__(552);\r\nvar twinfield_component_1 = __webpack_require__(550);\r\n/**\r\n * Setting main app module\r\n */\r\nvar mainAppModule = {\r\n components: { app: app_component_1.app, operandoNavbar: navbar_component_1.operandoNavbar, chatPanelComponent: chatPanel_component_1.chatPanelComponent, browserPageComponent: browser_page_component_1.browserPageComponent, dateTimePickerComponent: dateTimePicker_component_1.dateTimePickerComponent, newsPanelComponent: newsPanel_component_1.newsPanelComponent, twinfieldComponent: twinfield_component_1.twinfieldComponent },\r\n states: [app_states_1.appState, app_states_1.browserState],\r\n configBlocks: [app_config_1.config, app_config_1.otherwiseConfigBlock, app_config_1.html5ConfigBlock, app_config_1.themeConfigBlock, app_config_1.masterDataConfigBlock],\r\n runBlocks: [app_run_1.run],\r\n services: { AppService: app_service_1.AppService, LocationService: location_service_1.LocationService, SettingsService: services_1.SettingsService, EnumService: services_1.EnumService },\r\n filters: { bytes: bytes_filter_1.bytes },\r\n directives: { passwordValidation: passwordValidation_1.passwordValidation, compareTo: compareTo_1.compareTo, fixedHeight: fixedHeight_1.fixedHeight, file: file_1.file }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, mainAppModule);\r\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__webpack_require__(605);\r\n__webpack_require__(585);\r\n__webpack_require__(628);\r\n__webpack_require__(655);\r\n__webpack_require__(700);\r\n__webpack_require__(638);\r\n__webpack_require__(675);\r\n__webpack_require__(644);\r\n__webpack_require__(687);\r\n__webpack_require__(683);\r\n__webpack_require__(595);\r\n__webpack_require__(613);\r\n__webpack_require__(692);\r\n__webpack_require__(634);\r\n__webpack_require__(707);\r\n\n\n/***/ }),\n/* 295 */,\n/* 296 */,\n/* 297 */,\n/* 298 */,\n/* 299 */\n/***/ (function(module, exports) {\n\nif (typeof Object.assign != 'function') {\r\n Object.assign = function(target, varArgs) { // .length of function is 2\r\n 'use strict';\r\n if (target == null) { // TypeError if undefined or null\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource != null) { // Skip over if undefined or null\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n };\r\n}\n\n/***/ }),\n/* 300 */,\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 26,\n\t\"./af.js\": 26,\n\t\"./ar\": 33,\n\t\"./ar-dz\": 27,\n\t\"./ar-dz.js\": 27,\n\t\"./ar-kw\": 28,\n\t\"./ar-kw.js\": 28,\n\t\"./ar-ly\": 29,\n\t\"./ar-ly.js\": 29,\n\t\"./ar-ma\": 30,\n\t\"./ar-ma.js\": 30,\n\t\"./ar-sa\": 31,\n\t\"./ar-sa.js\": 31,\n\t\"./ar-tn\": 32,\n\t\"./ar-tn.js\": 32,\n\t\"./ar.js\": 33,\n\t\"./az\": 34,\n\t\"./az.js\": 34,\n\t\"./be\": 35,\n\t\"./be.js\": 35,\n\t\"./bg\": 36,\n\t\"./bg.js\": 36,\n\t\"./bn\": 37,\n\t\"./bn.js\": 37,\n\t\"./bo\": 38,\n\t\"./bo.js\": 38,\n\t\"./br\": 39,\n\t\"./br.js\": 39,\n\t\"./bs\": 40,\n\t\"./bs.js\": 40,\n\t\"./ca\": 41,\n\t\"./ca.js\": 41,\n\t\"./cs\": 42,\n\t\"./cs.js\": 42,\n\t\"./cv\": 43,\n\t\"./cv.js\": 43,\n\t\"./cy\": 44,\n\t\"./cy.js\": 44,\n\t\"./da\": 45,\n\t\"./da.js\": 45,\n\t\"./de\": 48,\n\t\"./de-at\": 46,\n\t\"./de-at.js\": 46,\n\t\"./de-ch\": 47,\n\t\"./de-ch.js\": 47,\n\t\"./de.js\": 48,\n\t\"./dv\": 49,\n\t\"./dv.js\": 49,\n\t\"./el\": 50,\n\t\"./el.js\": 50,\n\t\"./en-au\": 51,\n\t\"./en-au.js\": 51,\n\t\"./en-ca\": 52,\n\t\"./en-ca.js\": 52,\n\t\"./en-gb\": 53,\n\t\"./en-gb.js\": 53,\n\t\"./en-ie\": 54,\n\t\"./en-ie.js\": 54,\n\t\"./en-nz\": 55,\n\t\"./en-nz.js\": 55,\n\t\"./eo\": 56,\n\t\"./eo.js\": 56,\n\t\"./es\": 58,\n\t\"./es-do\": 57,\n\t\"./es-do.js\": 57,\n\t\"./es.js\": 58,\n\t\"./et\": 59,\n\t\"./et.js\": 59,\n\t\"./eu\": 60,\n\t\"./eu.js\": 60,\n\t\"./fa\": 61,\n\t\"./fa.js\": 61,\n\t\"./fi\": 62,\n\t\"./fi.js\": 62,\n\t\"./fo\": 63,\n\t\"./fo.js\": 63,\n\t\"./fr\": 66,\n\t\"./fr-ca\": 64,\n\t\"./fr-ca.js\": 64,\n\t\"./fr-ch\": 65,\n\t\"./fr-ch.js\": 65,\n\t\"./fr.js\": 66,\n\t\"./fy\": 67,\n\t\"./fy.js\": 67,\n\t\"./gd\": 68,\n\t\"./gd.js\": 68,\n\t\"./gl\": 69,\n\t\"./gl.js\": 69,\n\t\"./gom-latn\": 70,\n\t\"./gom-latn.js\": 70,\n\t\"./he\": 71,\n\t\"./he.js\": 71,\n\t\"./hi\": 72,\n\t\"./hi.js\": 72,\n\t\"./hr\": 73,\n\t\"./hr.js\": 73,\n\t\"./hu\": 74,\n\t\"./hu.js\": 74,\n\t\"./hy-am\": 75,\n\t\"./hy-am.js\": 75,\n\t\"./id\": 76,\n\t\"./id.js\": 76,\n\t\"./is\": 77,\n\t\"./is.js\": 77,\n\t\"./it\": 78,\n\t\"./it.js\": 78,\n\t\"./ja\": 79,\n\t\"./ja.js\": 79,\n\t\"./jv\": 80,\n\t\"./jv.js\": 80,\n\t\"./ka\": 81,\n\t\"./ka.js\": 81,\n\t\"./kk\": 82,\n\t\"./kk.js\": 82,\n\t\"./km\": 83,\n\t\"./km.js\": 83,\n\t\"./kn\": 84,\n\t\"./kn.js\": 84,\n\t\"./ko\": 85,\n\t\"./ko.js\": 85,\n\t\"./ky\": 86,\n\t\"./ky.js\": 86,\n\t\"./lb\": 87,\n\t\"./lb.js\": 87,\n\t\"./lo\": 88,\n\t\"./lo.js\": 88,\n\t\"./lt\": 89,\n\t\"./lt.js\": 89,\n\t\"./lv\": 90,\n\t\"./lv.js\": 90,\n\t\"./me\": 91,\n\t\"./me.js\": 91,\n\t\"./mi\": 92,\n\t\"./mi.js\": 92,\n\t\"./mk\": 93,\n\t\"./mk.js\": 93,\n\t\"./ml\": 94,\n\t\"./ml.js\": 94,\n\t\"./mr\": 95,\n\t\"./mr.js\": 95,\n\t\"./ms\": 97,\n\t\"./ms-my\": 96,\n\t\"./ms-my.js\": 96,\n\t\"./ms.js\": 97,\n\t\"./my\": 98,\n\t\"./my.js\": 98,\n\t\"./nb\": 99,\n\t\"./nb.js\": 99,\n\t\"./ne\": 100,\n\t\"./ne.js\": 100,\n\t\"./nl\": 102,\n\t\"./nl-be\": 101,\n\t\"./nl-be.js\": 101,\n\t\"./nl.js\": 102,\n\t\"./nn\": 103,\n\t\"./nn.js\": 103,\n\t\"./pa-in\": 104,\n\t\"./pa-in.js\": 104,\n\t\"./pl\": 105,\n\t\"./pl.js\": 105,\n\t\"./pt\": 107,\n\t\"./pt-br\": 106,\n\t\"./pt-br.js\": 106,\n\t\"./pt.js\": 107,\n\t\"./ro\": 108,\n\t\"./ro.js\": 108,\n\t\"./ru\": 109,\n\t\"./ru.js\": 109,\n\t\"./sd\": 110,\n\t\"./sd.js\": 110,\n\t\"./se\": 111,\n\t\"./se.js\": 111,\n\t\"./si\": 112,\n\t\"./si.js\": 112,\n\t\"./sk\": 113,\n\t\"./sk.js\": 113,\n\t\"./sl\": 114,\n\t\"./sl.js\": 114,\n\t\"./sq\": 115,\n\t\"./sq.js\": 115,\n\t\"./sr\": 117,\n\t\"./sr-cyrl\": 116,\n\t\"./sr-cyrl.js\": 116,\n\t\"./sr.js\": 117,\n\t\"./ss\": 118,\n\t\"./ss.js\": 118,\n\t\"./sv\": 119,\n\t\"./sv.js\": 119,\n\t\"./sw\": 120,\n\t\"./sw.js\": 120,\n\t\"./ta\": 121,\n\t\"./ta.js\": 121,\n\t\"./te\": 122,\n\t\"./te.js\": 122,\n\t\"./tet\": 123,\n\t\"./tet.js\": 123,\n\t\"./th\": 124,\n\t\"./th.js\": 124,\n\t\"./tl-ph\": 125,\n\t\"./tl-ph.js\": 125,\n\t\"./tlh\": 126,\n\t\"./tlh.js\": 126,\n\t\"./tr\": 127,\n\t\"./tr.js\": 127,\n\t\"./tzl\": 128,\n\t\"./tzl.js\": 128,\n\t\"./tzm\": 130,\n\t\"./tzm-latn\": 129,\n\t\"./tzm-latn.js\": 129,\n\t\"./tzm.js\": 130,\n\t\"./uk\": 131,\n\t\"./uk.js\": 131,\n\t\"./ur\": 132,\n\t\"./ur.js\": 132,\n\t\"./uz\": 134,\n\t\"./uz-latn\": 133,\n\t\"./uz-latn.js\": 133,\n\t\"./uz.js\": 134,\n\t\"./vi\": 135,\n\t\"./vi.js\": 135,\n\t\"./x-pseudo\": 136,\n\t\"./x-pseudo.js\": 136,\n\t\"./yo\": 137,\n\t\"./yo.js\": 137,\n\t\"./zh-cn\": 138,\n\t\"./zh-cn.js\": 138,\n\t\"./zh-hk\": 139,\n\t\"./zh-hk.js\": 139,\n\t\"./zh-tw\": 140,\n\t\"./zh-tw.js\": 140\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 301;\n\n/***/ }),\n/* 302 */,\n/* 303 */,\n/* 304 */,\n/* 305 */,\n/* 306 */,\n/* 307 */,\n/* 308 */,\n/* 309 */,\n/* 310 */,\n/* 311 */,\n/* 312 */,\n/* 313 */,\n/* 314 */,\n/* 315 */,\n/* 316 */,\n/* 317 */,\n/* 318 */,\n/* 319 */,\n/* 320 */,\n/* 321 */,\n/* 322 */,\n/* 323 */,\n/* 324 */,\n/* 325 */,\n/* 326 */,\n/* 327 */,\n/* 328 */,\n/* 329 */,\n/* 330 */,\n/* 331 */,\n/* 332 */,\n/* 333 */,\n/* 334 */,\n/* 335 */,\n/* 336 */,\n/* 337 */,\n/* 338 */,\n/* 339 */,\n/* 340 */,\n/* 341 */,\n/* 342 */,\n/* 343 */,\n/* 344 */,\n/* 345 */,\n/* 346 */,\n/* 347 */,\n/* 348 */,\n/* 349 */,\n/* 350 */,\n/* 351 */,\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/beschikbaarheid1.jpg\";\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/beschikbaarheid3.jpg\";\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst.jpg\";\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst1.jpg\";\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst2.jpg\";\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst3.jpg\";\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst4.jpg\";\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst5.jpg\";\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/dienst6.jpg\";\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/howtoinschrijven.jpg\";\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/inschrijven3.jpg\";\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren1.jpg\";\n\n/***/ }),\n/* 364 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren2.jpg\";\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren3.jpg\";\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren4.jpg\";\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren5.jpg\";\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren6.jpg\";\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/urendeclareren7.jpg\";\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/avatar.jpg\";\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/logo-dark.png\";\n\n/***/ }),\n/* 372 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"assets/logo-white.png\";\n\n/***/ }),\n/* 373 */,\n/* 374 */,\n/* 375 */,\n/* 376 */,\n/* 377 */,\n/* 378 */,\n/* 379 */,\n/* 380 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Loading..

Returning back to application
\";\n\n/***/ }),\n/* 381 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Logging out...

\";\n\n/***/ }),\n/* 383 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

UnAuthorized

Back to home

\";\n\n/***/ }),\n/* 384 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Auth Settings
Users Identity Server
\";\n\n/***/ }),\n/* 385 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Auth Settings
  2. Server Settings
\";\n\n/***/ }),\n/* 386 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Auth Settings
  2. Users

ID Username Email
{{ item.id }} {{ item.userName }} {{ item.email }}
\";\n\n/***/ }),\n/* 387 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
This field is required
This field is required

{{index}} {{value}}

{{index}} {{value}}
This field is required
This field is required
This field is required
This field is required
Your passwords did not match
\";\n\n/***/ }),\n/* 388 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
This field is required
This field is required
Your passwords did not match
\";\n\n/***/ }),\n/* 389 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 390 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 391 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Internet Explorer wordt niet ondersteund

Het ziet eruit dat u gebruik maakt van Internet Explorer. Op het moment ondersteund deze applicatie geen Internet Explorer.

Om gebruik te maken van de deze applicatie gebruik Chrome of Firefox.

Download Chrome

\";\n\n/***/ }),\n/* 392 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
{{ item.teamLocationName }}
{{ item.teamName }}
{{ item.start | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date : \\\"HH:mm\\\" }} to {{ item.end | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ item.statusName }}
{{ item.employeeDisplayName }}
\";\n\n/***/ }),\n/* 393 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 394 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
{{item.createdDate | date : 'dd-MM'}} {{ item.title }}
Nieuw Gelezen

{{ item.text }}


\";\n\n/***/ }),\n/* 395 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Name and Address
This field is required
Contact
Financial
\";\n\n/***/ }),\n/* 396 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 397 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Accounts
  2. {{ $ctrl.account.name }}
Delete account

{{ $ctrl.account.name }}

{{ type }}
Address
{{ $ctrl.account.visitingAddress.street }} {{ $ctrl.account.visitingAddress.number }} {{ $ctrl.account.visitingAddress.numberSuffix}}
{{ $ctrl.account.visitingAddress.zip }} {{$ctrl.account.visitingAddress.city}}
{{ $ctrl.account.visitingAddress.country}}

Phone
{{ $ctrl.account.phoneNumber }}
Fax
{{ $ctrl.account.faxNumber }}
Post Address
{{ $ctrl.account.mailingAddress.street }} {{ $ctrl.account.mailingAddress.number }} {{ $ctrl.account.malingAddress.numberSuffix}}
{{ $ctrl.account.mailingAddress.zip }} {{$ctrl.account.mailingAddress.city}}
{{ $ctrl.account.mailingAddress.country}}
Email
{{ $ctrl.account.emailAddress }}

IBAN
{{ $ctrl.account.iban }}
Bank Account Number
{{ $ctrl.account.bankAccountNumber}}
Chamber Of Commerce Number
{{ $ctrl.account.chamberOfCommerceNumber }}
VAT Number
{{ $ctrl.account.vatNumber }}
Twinfield ID
{{ $ctrl.account.twinfieldId }}

SCA Code
{{ $ctrl.account.scaCode }}
RVA Code
{{ $ctrl.account.rvaCode }}
Contact Persons
{{ item.firstName }} {{ item.lastName }}
Notes
Add note
Locations Agreements Employees Settings
Name Interval
{{item.name}} {{item.interval}}
    0\\\">
\";\n\n/***/ }),\n/* 398 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Accounts
Add Account

{{ item.name }}

{{ type }}
{{item.visitingAddress.street}} {{item.visitingAddress.number}} {{item.vistingAddress.numberSuffix}}
{{item.visitingAddress.zip}} {{item.visitingAddress.city}}
Company Name Address
{{item.name}}
{{ type }}
{{ item.visitingAddress.street }} {{ item.visitingAddress.number }} {{ item.vistingAddress.numberSuffix }}
{{ item.visitingAddress.zip }} {{ item.visitingAddress.city }}
\";\n\n/***/ }),\n/* 399 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 400 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 401 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 402 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 403 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Start End Employee Salary scale Gross hourly wage Calculation index
{{item.dateTimeFrom | date : \\\"dd-MM-yyyy\\\"}} {{item.dateTimeTo | date : \\\"dd-MM-yyyy\\\"}} {{item.employeeDisplayName}} {{item.salaryScale.name}} {{item.grossHourlyWageValue | currency : \\\"€\\\" : 2 }} {{item.calculationIndex}}
    0\\\">
\";\n\n/***/ }),\n/* 404 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 405 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 406 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 407 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Contacts
  2. {{ $ctrl.account.name }}
  3. {{$ctrl.fullName}}
Delete contact

{{ $ctrl.fullName }}

{{$ctrl.contact.function}} {{$ctrl.account.name}} {{ tag }}
Phone
{{ $ctrl.contact.phoneNumber }}
Email
{{ $ctrl.contact.emailAddress }}
Location
{{ $ctrl.contact.locationName }}

Birthday
{{ $ctrl.contact.birthday | date:'fullDate' }}
User-Account
\";\n\n/***/ }),\n/* 408 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Contacts
Full Name Email Phone Location
{{ item.name }}
{{item.function}} {{ item.accountName }} {{ tag }}
{{ item.emailAddress }} {{ item.phoneNumber }} {{ item.locationName }}
\";\n\n/***/ }),\n/* 409 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Accounts

Company
{{ item.name }}

Contacts

Contact Company
{{ item.firstName }} {{ item.lastName }} {{ item.accountName}}
\";\n\n/***/ }),\n/* 410 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 411 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 412 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Name End
{{item.employeeDisplayName}} {{item.dateTimeTo | date : \\\"dd-MM-yyyy HH:mm\\\"}}
    0\\\">
\";\n\n/***/ }),\n/* 413 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 414 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
This field is required
This field is required
This field is required
\";\n\n/***/ }),\n/* 415 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Leads
Add Lead
Company Name Full Name Phone
{{item.name}} {{ item.firstName }} {{ item.middleName }} {{ item.lastName }} {{ item.phoneNumber }}
\";\n\n/***/ }),\n/* 416 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 417 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 418 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Name Address Teams
{{item.name}} {{ item.address.street }} {{ item.address.number }} {{ item.address.numberSuffix}}
{{ item.address.zip }} {{item.address.city}}
{{ item.address.country}}
\";\n\n/***/ }),\n/* 419 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 420 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 421 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
{{item.name}} {{item.teamContacts.length}}
\";\n\n/***/ }),\n/* 422 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Shifts
\";\n\n/***/ }),\n/* 423 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 424 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Beschikbare medewerkers

Name Status
{{ item.employeeDisplayName }} {{ item.status }}
More...
\";\n\n/***/ }),\n/* 425 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Verjaardagen

Eerst volgende 10 verjaardagen
{{employee.birthday | date : 'dd-MM'}}{{employee.displayName}}
\";\n\n/***/ }),\n/* 426 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 427 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Open diensten

Niet ingevulde diensten voor komende week
{{shift.teamLocationName}} - {{shift.teamName}} {{ shift.statusName }} ({{ shift.subscriptionsCount }})
{{ shift.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ shift.start | date :\\\"HH:mm\\\" }} to {{ shift.end | date :\\\"HH:mm dd-MM-yyyy\\\" }}
\";\n\n/***/ }),\n/* 428 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 429 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Laatst toegevoegde nieuws



{{item.createdDate | date : 'dd-MM'}} {{item.title}}
{{$ctrl.getType(type)}}
{{item.text}}
\";\n\n/***/ }),\n/* 430 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 431 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Laatst toegevoegde notities

Account/Employee/Applicant Description
{{$ctrl.getNoteAuthorName(item)}} {{item.description}}
More...
\";\n\n/***/ }),\n/* 432 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Openstaande taken

Description End date User
{{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }} {{ item.userName }}
More...
\";\n\n/***/ }),\n/* 433 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

Totaal ingeplande uren

\";\n\n/***/ }),\n/* 434 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = \"

Hoe schrijf ik in voor een dienst?

\\\"kies

Ga naar het menuitem 'inschrijven'.

  1. Kies een dienst waarvoor je je wil inschrijven.
  2. Verstuur een verzoek.

Hoe kan ik mijn beschikbaarheid aangeven?

Klik op de knop Beschikbaarheid toevoegen.

  1. Kies een start en einddatum en/of -tijd.
  2. Klik om het menu met de beschikbaarheidsopties uit te klappen.

Selecteer de optie die van toepassing is.

  1. Omschrijf de reden van het verzoek.
  2. Sla de aanvraag op.

Hoe maak ik zelf een dienst aan?

Klik op de knop Dienst toevoegen.

  1. Geef de start en eindtijd aan.

Geef aan in welke functie je gaat werken.

Geef aan voor wie je gaat werken.

Kies een Locatie.

Kies dan een Team.

  1. Schrijf een klantreferentie.
  2. Sla op met de knop opslaan voor een enkele dienst, opslaan en kopieren voor dezelfde dienst de volgende dag en opslaan en nieuwe om een nieuwe dienst aan te maken

Hoe declareer ik mijn uren?

Klik op een dienst in de agenda om naar het weekoverzicht te gaan.

Je wordt nu doorverwezen naar het weekoverzicht.

  1. Klik op de betreffende dienst.
  2. Klik op het icoontje met de klok.
  1. Bevestig of wijzig de start en eindtijd van de dienst.
  2. Schrijf eventueel een korte beschrijving in het geval van bijzonderheden.
  3. Klik op opslaan om de dienst te bevestigen.

In het geval van reiskosten en/of onkosten vergoeding.

Klik op het icoontje met de auto.

Klik op 'select an option'.

Kies de onkostenvergoeding die van toepassing is.

  1. In het geval van kilometervergoeding verschijnt er een veld voor het aantal gereden kilometers.
  2. Voer de beschrijving van de gemaakte onkosten in (verplicht in alle gevallen buiten kilometervergoeding).
  3. Verstuur het verzoek voor de onkostenvergoeding.
\";\n\n/***/ }),\n/* 435 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 436 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 437 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 438 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Sollicitanten Sollicitanten archief
  2. {{$ctrl.applicant.name}}
Delete applicant Plaats in archief Verplaats naar sollicitanten Create employee
Basic info
Name:
{{$ctrl.applicant.name}}
Email:
{{$ctrl.applicant.email}}
City:
{{$ctrl.applicant.city}}
Age:
{{$ctrl.applicant.age}}
Function:
{{$ctrl.applicant.functionName}}
Beschikbaar vanaf:
{{$ctrl.applicant.date | date : \\\"dd-MM-yyyy\\\"}}
Preferred target audience:
{{$ctrl.applicant.preferredTargetAudienceName}}
Notitie:
{{$ctrl.applicant.note}}
Job offer:
{{$ctrl.applicant.jobOffer}}
Email:
{{$ctrl.applicant.email}}
I know Operando from:
{{$ctrl.applicant.iKnowOperandoFrom}}
Status:
{{$ctrl.applicant.applicationStatusName}}
Recruiter:
{{$ctrl.applicant.userName}}
ZZP'er:
Ja Nee
Notes
Add note
Files
{{file.name}}
Status history
\";\n\n/***/ }),\n/* 439 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Applicants Sollicitanten archief
Name City Target audience Recruiter First Status Last Status Status
{{ item.name }}
{{ item.functionName }}
{{ item.city }} {{ item.preferredTargetAudienceName }} {{ item.userName }} {{ item.firstStatusDate | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.lastStatusDate | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.applicationStatusName }}
{{ item.name }}
{{ item.functionName }}
{{ item.city }} {{ item.preferredTargetAudienceName }} {{ item.userName }} {{ item.firstStatusDate | date : \\\"dd-MM-yyyy\\\" }} {{ item.lastStatusDate | date : \\\"dd-MM-yyyy\\\" }} {{ item.applicationStatusName }}
    0\\\">
\";\n\n/***/ }),\n/* 440 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Startdatum Einddatum Starttijd Eindtijd Name Function Status Note
{{availability.start | date :\\\"dd-MM-yyyy\\\"}} {{availability.end | date :\\\"dd-MM-yyyy\\\"}} {{availability.start | date :\\\"HH:mm\\\"}} {{availability.end | date :\\\"HH:mm\\\"}} {{ availability.employeeDisplayName }} {{ availability.employeeFunctionName }} {{ availability.status }} {{ availability.title }}
\";\n\n/***/ }),\n/* 441 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 442 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 443 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 444 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 445 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Employees
  2. {{$ctrl.employee.displayName}}
0\\\"> Refresh employee from NMBRS Delete employee Restore employee
Basic info
Name:
{{$ctrl.employee.displayName}}
Tags:
{{ tag }}
Username:
{{$ctrl.employee.username}}
Email:
{{$ctrl.employee.emailPrivate}}
Phone:
{{$ctrl.employee.telephoneMobilePrivate}}
Address
{{ $ctrl.employee.homeAddress.street }} {{ $ctrl.employee.homeAddress.number }} {{ $ctrl.employee.homeAddress.numberSuffix}}
{{ $ctrl.employee.homeAddress.zip }} {{$ctrl.employee.homeAddress.city}}
{{ $ctrl.employee.homeAddress.country}}
BSN:
{{$ctrl.employee.bsn}}
Function:
{{$ctrl.employee.functionName}}
Salary scale:
{{$ctrl.employee.salaryScaleName}}
Transportation type:
{{$ctrl.employee.transportationTypeName}}
Notes:
{{$ctrl.employee.notes}}
0\\\">
NmbrsId:
{{$ctrl.employee.nmbrsId}}
0\\\">
Personeelsnummer:
{{$ctrl.employee.number}}
0\\\">
ZZP-nummer:
{{$ctrl.employee.zzpNumber}}
0\\\">
Maandelijks factureren:
{{$ctrl.employee.incoiceMonthly}}
0\\\">
GUID voor Cootje:
Selecteer de GUID en klik op CMD-C of CTRL-C
Work history Notes
Add note
Availability Skills User-Account 0\\\"> Nmbrs
\";\n\n/***/ }),\n/* 446 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Employees
Name Email Phone
{{ item.displayName }}
{{item.functionName}} {{ tag }}
{{ item.emailPrivate }} {{ item.telephoneMobilePrivate }} {{ item.nmbrsId ? 'Nmbrs' : 'ZZP' }}
    0\\\">
\";\n\n/***/ }),\n/* 447 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"HrDashboard\";\n\n/***/ }),\n/* 448 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 449 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Personal info
Display name:
{{ $ctrl.nmbrsEmployee.displayName }}
First name:
{{ $ctrl.nmbrsEmployee.firstName }}
Last name:
{{ $ctrl.nmbrsEmployee.lastName }}
Nickname:
{{ $ctrl.nmbrsEmployee.nickname }}
Gender:
{{ $ctrl.nmbrsEmployee.gender }}
Country of birth:
{{ $ctrl.nmbrsEmployee.countryOfBirthISOCode }}
Marital status:
{{ $ctrl.nmbrsEmployee.burgerlijkeStaat }}
Phone:
{{ $ctrl.nmbrsEmployee.telephoneMobilePrivate }}
Email:
{{ $ctrl.nmbrsEmployee.emailPrivate }}
Naamstelling:
{{ $ctrl.nmbrsEmployee.naamstelling }}
Birthday:
{{ $ctrl.nmbrsEmployee.birthday }}
Address
Address:
{{ $ctrl.nmbrsEmployeeAddress.street }} {{ $ctrl.nmbrsEmployeeAddress.houseNumber }}
City:
{{ $ctrl.nmbrsEmployeeAddress.city }}
Postal code:
{{ $ctrl.nmbrsEmployeeAddress.postalCode }}
Country:
{{ $ctrl.nmbrsEmployeeAddress.countryISOCode }}
Bank account
IBAN:
{{ $ctrl.nmbrsEmployeeBankAccount.iban }}
BIC:
{{ $ctrl.nmbrsEmployeeBankAccount.bic }}
Type:
{{ $ctrl.nmbrsEmployeeBankAccount.type }}
Contract
Contract ID:
{{ $ctrl.nmbrsEmployeeContract.contractID }}
Creation date:
{{ $ctrl.nmbrsEmployeeContract.creationDate | date : \\\"dd-MM-yyyy\\\" }}
Start date:
{{ $ctrl.nmbrsEmployeeContract.startDate | date : \\\"dd-MM-yyyy\\\" }}
Indefinite:
{{ $ctrl.nmbrsEmployeeContract.indefinite }}
Function
Code:
{{ $ctrl.nmbrsEmployeeFunction.code }}
{{$ctrl.function}}
Description:
{{ $ctrl.nmbrsEmployeeFunction.description }}
\";\n\n/***/ }),\n/* 450 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 451 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
{{ account.accountName }} - {{ account.locationCount }} locations
Shifts count:
{{ account.shiftCount }}
Hours sum:
{{ account.shiftSum | number : 2 }} hours
Declarations count:
{{ account.declarationCount }}
Declared hours sum:
{{ account.declarationSum | number : 2 }} hours
{{ location.locationName }} - {{ location.teamCount }} teams
{{ team.teamName }}
\";\n\n/***/ }),\n/* 452 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 453 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Name Start End
{{item.skillName}} {{item.start | date : \\\"dd-MM-yyyy\\\"}} {{item.end | date : \\\"dd-MM-yyyy\\\"}}
    0\\\">
\";\n\n/***/ }),\n/* 454 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 455 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Notes
Bedrijf/Medewerker Description Date Tags
{{ $ctrl.getNoteAuthorName(item) }} {{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }}
{{ tag }}
\";\n\n/***/ }),\n/* 456 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

{{ $ctrl.invoice.description }}

{{ $ctrl.invoice.totalAmount | currency : \\\"€\\\": 2 }}

{{$ctrl.invoice.account.name}}
{{$ctrl.invoice.account.visitingAddress.street}} {{$ctrl.invoice.account.visitingAddress.number}} {{$ctrl.invoice.account.vistingAddress.numberSuffix}}
{{$ctrl.invoice.account.visitingAddress.zip}} {{$ctrl.invoice.account.visitingAddress.city}}
Description
Count
Amount
Total
0 && (item.amountPerUnit == 0 || item.totalAmount == 0))}\\\">
{{ item.description }}
{{ item.count }}
{{ item.amountPerUnit | currency : \\\"€\\\": 2 }}
{{ item.totalAmount | currency : \\\"€\\\": 2 }}
\";\n\n/***/ }),\n/* 457 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Uren doorsturen naar cootje
0\\\">
{{ item.employee.displayName}}
Aantal diensten: {{ item.numberOfDiensten }}, Aantal declaraties: {{ item.numberOfDeclarations }}, Aantal uren: {{ item.numberOfHours }}, Aantal uren verstuurd: {{ item.numberOfHoursSend }}
Verstuurd

{{ $ctrl.currentItem.employee.displayName }}

{{ dienst.shift.start | date : \\\"HH:mm dd-MM-yyyy\\\" }} - {{ dienst.shift.teamLocationAccountName }} - {{ dienst.shift.teamLocationName }} - {{ dienst.shift.teamName }}

Declaraties:

{{declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\"}} - {{declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\"}} - Aantal uren: {{declaration.duration}} - Factuurnummer: {{declaration.zzpInvoiceNumber}}
{{declaration.wageCodeName}}: {{declaration.value}} - Factuurnummer: {{declaration.zzpInvoiceNumber}}
{{declaration.errorCootje}}
\";\n\n/***/ }),\n/* 458 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Invoices Pro forma invoices

Count: {{ $ctrl.invoices.length || 0 }} -- Total amount: {{ $ctrl.invoicesTotalAmount || 0 | currency : \\\"€\\\": 2 }} -- Twinfield amount: {{ $ctrl.twinfieldTotalAmount || 0 | currency : \\\"€\\\": 2 }}

0\\\">
{{ item.totalAmount | currency : \\\"€\\\": 2 }}
{{ item.account.name }}
{{ item.description }}
Saved Twinfield - {{item.twinfieldNumber}} Unpaid
\";\n\n/***/ }),\n/* 459 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 460 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Schedule
List
\";\n\n/***/ }),\n/* 461 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Declarations
0\\\">
0\\\">
\";\n\n/***/ }),\n/* 462 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 463 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

{{ $ctrl.shift.teamLocationAccountName }} - {{ $ctrl.shift.teamLocationName }} - {{ $ctrl.shift.teamName }}

Opdrachtgever:
{{ $ctrl.shift.teamLocationAccountName }}
Location:
{{ $ctrl.shift.teamLocationName }}
Address:
{{ $ctrl.location.address.street }} {{ $ctrl.location.address.number }} {{ $ctrl.location.address.numberSuffix}}
{{ $ctrl.location.address.zip }} {{$ctrl.location.address.city}}
{{ $ctrl.location.address.country}}
Team:
{{ $ctrl.shift.teamName }}
Time:
{{ $ctrl.shift.start | date :\\\"dd-MM-yyyy HH:mm\\\" }} - {{ $ctrl.shift.end | date :\\\"dd-MM-yyyy HH:mm\\\" }}
Comment:

{{ $ctrl.shift.employeeComment }}


Edit
\";\n\n/***/ }),\n/* 464 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Shifts
{{ key }}
{{ item.teamLocationAccountName }} - {{ item.teamLocationName }} - {{ item.teamName }}
0\\\" ng-class=\\\"item.declarationStatus == 3 ? 'label-success' : 'label-warning'\\\">Gedeclareerd Ingevuld Voorstel Geannuleerd
{{ item.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date :\\\"HH:mm\\\" }} to {{ item.end | date :\\\"HH:mm dd-MM-yyyy\\\" }}
{{ item.employeeDisplayName }}
\";\n\n/***/ }),\n/* 465 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 466 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

\";\n\n/***/ }),\n/* 467 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Employees
  2. {{$ctrl.employee.name}}

\";\n\n/***/ }),\n/* 468 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Employees
Name
{{item.name}}
\";\n\n/***/ }),\n/* 469 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 470 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Settings
  2. Salary scales
Code Name Description Hourly wage Conversion factor
{{ item.code }} {{ item.name }} {{ item.description }} {{ item.value }} {{ item.value2 }}
\";\n\n/***/ }),\n/* 471 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 472 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 473 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Settings
  2. Kantoorpersoneel
Name
{{item.name}}
\";\n\n/***/ }),\n/* 474 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Templates
\";\n\n/***/ }),\n/* 475 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 476 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 477 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Timezones
  2. {{ $ctrl.timezone.name }}
Delete timezone
Basic info
Van {{$ctrl.timezone.from | date : \\\"dd-MM HH:mm\\\"}} tot {{$ctrl.timezone.till | date : \\\"dd-MM HH:mm\\\"}}
HourCodeName:
{{$ctrl.timezone.hourCodeName}}
Percentage:
{{$ctrl.timezone.percentage}}
Amount:
{{$ctrl.timezone.amount}}
Priority:
{{$ctrl.timezone.priority}}
\";\n\n/***/ }),\n/* 478 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Settings
  2. Timezones
From Till Hour code Percentage
{{ item.from | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.from | date : \\\"dd-MM HH:mm\\\" }} {{ item.dayOfWeek != null ? $ctrl.weekDays[item.dayOfWeek] : 'Elke dag'}} - {{ item.from | date : \\\"HH:mm\\\" }} {{ item.till | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.till | date : \\\"dd-MM HH:mm\\\" }} {{ item.dayOfWeek != null ? $ctrl.weekDays[item.dayOfWeek] : 'Elke dag'}} - {{ item.till | date : \\\"HH:mm\\\" }} {{ item.hourCodeName }} {{ item.percentage }}
\";\n\n/***/ }),\n/* 479 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 480 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
0\\\">
{{ item[$ctrl.setFields.description] }}
{{ tag }}
{{ item[$ctrl.setFields.date] | date : \\\"dd-MM-yyyy HH:mm\\\" }} until {{ item[$ctrl.setFields.endDate] | date : \\\"dd-MM-yyyy\\\" }}
No items found
$ctrl.itemsPerPage\\\">
\";\n\n/***/ }),\n/* 481 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
0)\\\">

Queue length: {{ $ctrl.uploader.queue.length }}

Name Size Progress Status Actions
{{item.file.name}} {{item.file.size | bytes}}

Queue progress:

\";\n\n/***/ }),\n/* 482 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
This field is required
A password has to have at least 8 characters with minimal one uppercase, number and non alphanumeric character
This field is required
Your passwords did not match
{{ $ctrl.employee.displayName }} heeft een gebruikersaccount met gebruikersnaam {{ $ctrl.userAccount.userName }}
\";\n\n/***/ }),\n/* 483 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
0\\\">
Account notes
{{ note.description }}
\";\n\n/***/ }),\n/* 484 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Global filters
Function
Kilometers
0\\\">
{{ employeeSummary.employee.name }}
{{ employeeSummary.employee.function }} 
{{ employeeSummary.availability.name }}
{{ employeeSummary.employee.kilometers | number:1 }} km
Subscribed
{{employeeSummary.subscription.comment}}
\";\n\n/***/ }),\n/* 485 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
{{$ctrl.employeeSummary.employee.name}}
{{$ctrl.employeeSummary.employee.function }}
Subscribed
{{$ctrl.employeeSummary.subscription.comment}}
Status:
{{ $ctrl.employeeSummary.availability.name }}Unknown
Date:
{{ $ctrl.employeeSummary.availability.from | date : \\\"dd-MM-yyyy HH:mm\\\" }} tot {{ $ctrl.employeeSummary.availability.till | date : \\\"dd-MM-yyyy HH:mm\\\" }}
Conflicting shift:
{{ $ctrl.employeeSummary.conflictingShift.name}}
Date:
{{ $ctrl.employeeSummary.conflictingShift.start | date : \\\"dd-MM-yyyy HH:mm\\\" }} tot {{ $ctrl.employeeSummary.conflictingShift.end | date : \\\"dd-MM-yyyy HH:mm\\\" }}
Distance:
{{ $ctrl.employeeSummary.employee.kilometers | number:1 }} km
Previously at location:
{{ $ctrl.employeeSummary.history.count }} times
Last shifts:
{{ date | date : \\\"dd-MM-yyyy\\\" }} ,
0\\\">
Notes:
{{ value }}
0\\\">
Skills
Name:
{{ skill.name }}
Comment:
{{ skill.comment }}
\";\n\n/***/ }),\n/* 486 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Shifts
\";\n\n/***/ }),\n/* 487 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 488 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
This field is required
This field is required
This field is required
This field is required
\";\n\n/***/ }),\n/* 489 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 490 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Filters
Startdatum Starttijd Eindtijd Organisatie Location Team Status Employee Function
{{item.start | date :\\\"dd-MM-yyyy\\\"}} {{item.start | date :\\\"HH:mm\\\"}} {{item.end | date :\\\"HH:mm\\\"}} {{ item.teamLocationAccountName }} {{ item.teamLocationName }} {{ item.teamName }} {{ item.statusName }} 0 ? 'subscribed' : ''\\\" ng-if=\\\"item.status && item.status==2\\\" ui-sref=\\\"shifts.list.subscriptionsmodal({'id': item.id})\\\">{{ item.statusName }} ({{ item.subscriptionsCount }}) {{item.employeeDisplayName}} {{ item.functionName }} Edit Open
Loading...
{{ key }}
{{ item.teamLocationName }} - {{ item.teamName }}
{{ item.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date :\\\"HH:mm\\\" }} to {{ item.end | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.statusName }} ({{ item.subscriptionsCount }})
{{ item.employeeDisplayName }}
List List Shift data
\";\n\n/***/ }),\n/* 491 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
{{$ctrl.shift.teamLocationName}} - {{$ctrl.shift.teamName}}
Aangemaakt door medewerker
New shift

5 && $ctrl.shift.id\\\">
5 && $ctrl.shift.id\\\">
This field is required
This field is required
This field is required
This field is required
\";\n\n/***/ }),\n/* 492 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
0\\\">Geen inschrijvingen gevonden! 0\\\">

{{$ctrl.employee.displayName}}  

\";\n\n/***/ }),\n/* 493 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Skills
\";\n\n/***/ }),\n/* 494 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 495 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Sign up
{{ key }}
{{ item.teamLocationAccountName }} - {{ item.teamLocationName }} - {{ item.teamName }}
0\\\" ng-class=\\\"item.declarationStatus == 3 ? 'label-success' : 'label-warning'\\\" translate>Subscribed
{{ item.functionName }}
{{ item.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date :\\\"HH:mm\\\" }} to {{ item.end | date :\\\"HH:mm dd-MM-yyyy\\\" }}
{{ item.employeeDisplayName }}
\";\n\n/***/ }),\n/* 496 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 497 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

{{ $ctrl.shift.teamLocationName }} - {{ $ctrl.shift.teamName }}

Location:
{{ $ctrl.shift.teamLocationName }}
Address:
{{ $ctrl.location.address.street }} {{ $ctrl.location.address.number }} {{ $ctrl.location.address.numberSuffix}}
{{ $ctrl.location.address.zip }} {{$ctrl.location.address.city}}
{{ $ctrl.location.address.country}}
Team:
{{ $ctrl.shift.teamName }}
{{ $ctrl.shift.teamDescription }}
Time:
{{ $ctrl.shift.start | date :\\\"dd-MM-yyyy HH:mm\\\" }} tot {{ $ctrl.shift.end | date :\\\"dd-MM-yyyy HH:mm\\\" }}
Distance:
{{ $ctrl.shift.distance | number : 1 }}km

Sign up

\";\n\n/***/ }),\n/* 498 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Archive
Description Date User Status
{{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }} {{ item.userName }} {{ item.taskStatusName }}
\";\n\n/***/ }),\n/* 499 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 500 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 501 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Tasks Archive
Delete task
Basic info
Description:
{{$ctrl.task.description}}
Status:
{{$ctrl.task.taskStatusName}}
Date:
{{$ctrl.task.date | date : \\\"dd-MM-yyyy\\\"}}
User:
{{$ctrl.task.userName}}
Account:
{{$ctrl.task.accountName}}
Location:
{{$ctrl.task.locationName}}
Team:
{{$ctrl.task.teamName}}
Contact:
{{$ctrl.task.contactName}}
Employee:
{{$ctrl.task.employeeDisplayName}}
\";\n\n/***/ }),\n/* 502 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Tasks
Description Date User Status
{{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }} {{ item.userName }} {{ item.taskStatusName }}
\";\n\n/***/ }),\n/* 503 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 504 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"

{{ $ctrl.timesheet.employeeName }} (Inactive)

Number of services: {{ $ctrl.timesheet.shiftCount - $ctrl.timesheet.shiftCanceledCount - $ctrl.timesheet.shiftSickCount }}
Amount of hours: {{ ($ctrl.timesheet.shiftHours - $ctrl.timesheet.shiftCanceledHours - $ctrl.timesheet.shiftSickHours ).toFixed(2) }}
Number declared: {{ $ctrl.timesheet.shiftDeclarationHours.toFixed(2) }}
{{ shift.start | date : \\\"dd-MM-yyyy HH:mm\\\" }} to {{ shift.end | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ shift.end | date : \\\"HH:mm\\\" }} - {{ shift.teamLocationAccountName }} - {{ shift.teamLocationName }} - {{shift.teamName}} Geannuleerd 96 uur Planned: {{ shift.plannedHours.toFixed(2) }} <> Declared: {{ shift.declaredHours.toFixed(2) }}
Interne opmerkingen
{{shift.internalComment}}

Medewerker opmerkingen
{{shift.employeeComment}}
Opdrachtgever: {{ shift.teamLocationAccountName }}
Location:
{{ shift.teamLocationName }}
{{ shift.team.location.address.street }} {{ shift.team.location.address.number }} {{ item.vistingAddress.numberSuffix }}
{{ shift.team.location.address.zip }} {{ shift.team.location.address.city }}
Team: 0\\\">
Contacts:
{{ shift.teamName }} 0\\\">
{{ teamContact.contactName }}
{{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved Open In progress Rejected
{{ declaration.comment }}
ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
Geen factuurnummer ingevuld!
{{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved Open In progress Rejected
{{ declaration.comment }}
ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
{{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved Open In progress Rejected
{{ declaration.comment }}
ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
{{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved In progress Rejected
{{ declaration.comment }}
ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
0\\\" permission permission-except=\\\"['EMPLOYEE']\\\">
0\\\" permission permission-except=\\\"['EMPLOYEE']\\\">
\";\n\n/***/ }),\n/* 505 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Timesheets
0\\\">
{{ item.employeeName }} (Inactive) {{ item.doneShiftCount }} / {{ item.shiftCount - item.shiftCanceledCount - item.shiftSickCount }}
Planned: {{ (item.shiftHours - item.shiftCanceledHours - item.shiftSickHours ).toFixed(2) }} <> Declared: {{ item.shiftDeclarationHours.toFixed(2) }}
\";\n\n/***/ }),\n/* 506 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 507 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
  1. Overview
Number of scheduled shifts: {{ $ctrl.summary.scheduledShiftsCount }}
Number of scheduled hours: {{ $ctrl.summary.scheduledHours }} hours
Number of declared shifts: {{ $ctrl.summary.declaredShiftsCount }}
Number of declared hours: {{ $ctrl.summary.declaredHours }} hours
Number of approved shifts: {{ $ctrl.summary.approvedShiftsCount }}
Number of approved hours: {{ $ctrl.summary.approvedHours }} hours
0\\\">
{{ item.employeeName }} {{ item.doneShiftCount }} / {{ item.shiftCount - item.shiftCanceledCount - item.shiftSickCount }}
Planned: {{ item.shiftHours.toFixed(2) }} <> Declared: {{ item.shiftDeclarationHours.toFixed(2) }}
\";\n\n/***/ }),\n/* 508 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
Number of scheduled shifts: {{ $ctrl.summary.scheduledShiftsCount - $ctrl.summary.canceledShiftsCount - $ctrl.summary.sickShiftsCount }}
Number of scheduled hours: {{ $ctrl.summary.scheduledHours - $ctrl.summary.canceledShiftsHours - $ctrl.summary.sickShiftsHours }} hours
Number of declared shifts: {{ $ctrl.summary.declaredShiftsCount }}
Number of declared hours: {{ $ctrl.summary.declaredHours }} hours
Number of approved shifts: {{ $ctrl.summary.approvedShiftsCount }}
Number of approved hours: {{ $ctrl.summary.approvedHours }} hours
Aantal geanuleerde diensten: {{ $ctrl.summary.canceledShiftsCount }}
Aantal geanuleerde uren: {{ $ctrl.summary.canceledShiftsHours }}
Aantal diensten ziek gemeld: {{ $ctrl.summary.sickShiftsCount }}
Aantal uren ziek gemeld: {{ $ctrl.summary.sickShiftsHours }}
\";\n\n/***/ }),\n/* 509 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"
\";\n\n/***/ }),\n/* 510 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 143,\n\t\"./af.js\": 143,\n\t\"./ar\": 150,\n\t\"./ar-dz\": 144,\n\t\"./ar-dz.js\": 144,\n\t\"./ar-kw\": 145,\n\t\"./ar-kw.js\": 145,\n\t\"./ar-ly\": 146,\n\t\"./ar-ly.js\": 146,\n\t\"./ar-ma\": 147,\n\t\"./ar-ma.js\": 147,\n\t\"./ar-sa\": 148,\n\t\"./ar-sa.js\": 148,\n\t\"./ar-tn\": 149,\n\t\"./ar-tn.js\": 149,\n\t\"./ar.js\": 150,\n\t\"./az\": 151,\n\t\"./az.js\": 151,\n\t\"./be\": 152,\n\t\"./be.js\": 152,\n\t\"./bg\": 153,\n\t\"./bg.js\": 153,\n\t\"./bn\": 154,\n\t\"./bn.js\": 154,\n\t\"./bo\": 155,\n\t\"./bo.js\": 155,\n\t\"./br\": 156,\n\t\"./br.js\": 156,\n\t\"./bs\": 157,\n\t\"./bs.js\": 157,\n\t\"./ca\": 158,\n\t\"./ca.js\": 158,\n\t\"./cs\": 159,\n\t\"./cs.js\": 159,\n\t\"./cv\": 160,\n\t\"./cv.js\": 160,\n\t\"./cy\": 161,\n\t\"./cy.js\": 161,\n\t\"./da\": 162,\n\t\"./da.js\": 162,\n\t\"./de\": 165,\n\t\"./de-at\": 163,\n\t\"./de-at.js\": 163,\n\t\"./de-ch\": 164,\n\t\"./de-ch.js\": 164,\n\t\"./de.js\": 165,\n\t\"./dv\": 166,\n\t\"./dv.js\": 166,\n\t\"./el\": 167,\n\t\"./el.js\": 167,\n\t\"./en-au\": 168,\n\t\"./en-au.js\": 168,\n\t\"./en-ca\": 169,\n\t\"./en-ca.js\": 169,\n\t\"./en-gb\": 170,\n\t\"./en-gb.js\": 170,\n\t\"./en-ie\": 171,\n\t\"./en-ie.js\": 171,\n\t\"./en-nz\": 172,\n\t\"./en-nz.js\": 172,\n\t\"./eo\": 173,\n\t\"./eo.js\": 173,\n\t\"./es\": 175,\n\t\"./es-do\": 174,\n\t\"./es-do.js\": 174,\n\t\"./es.js\": 175,\n\t\"./et\": 176,\n\t\"./et.js\": 176,\n\t\"./eu\": 177,\n\t\"./eu.js\": 177,\n\t\"./fa\": 178,\n\t\"./fa.js\": 178,\n\t\"./fi\": 179,\n\t\"./fi.js\": 179,\n\t\"./fo\": 180,\n\t\"./fo.js\": 180,\n\t\"./fr\": 183,\n\t\"./fr-ca\": 181,\n\t\"./fr-ca.js\": 181,\n\t\"./fr-ch\": 182,\n\t\"./fr-ch.js\": 182,\n\t\"./fr.js\": 183,\n\t\"./fy\": 184,\n\t\"./fy.js\": 184,\n\t\"./gd\": 185,\n\t\"./gd.js\": 185,\n\t\"./gl\": 186,\n\t\"./gl.js\": 186,\n\t\"./gom-latn\": 187,\n\t\"./gom-latn.js\": 187,\n\t\"./he\": 188,\n\t\"./he.js\": 188,\n\t\"./hi\": 189,\n\t\"./hi.js\": 189,\n\t\"./hr\": 190,\n\t\"./hr.js\": 190,\n\t\"./hu\": 191,\n\t\"./hu.js\": 191,\n\t\"./hy-am\": 192,\n\t\"./hy-am.js\": 192,\n\t\"./id\": 193,\n\t\"./id.js\": 193,\n\t\"./is\": 194,\n\t\"./is.js\": 194,\n\t\"./it\": 195,\n\t\"./it.js\": 195,\n\t\"./ja\": 196,\n\t\"./ja.js\": 196,\n\t\"./jv\": 197,\n\t\"./jv.js\": 197,\n\t\"./ka\": 198,\n\t\"./ka.js\": 198,\n\t\"./kk\": 199,\n\t\"./kk.js\": 199,\n\t\"./km\": 200,\n\t\"./km.js\": 200,\n\t\"./kn\": 201,\n\t\"./kn.js\": 201,\n\t\"./ko\": 202,\n\t\"./ko.js\": 202,\n\t\"./ky\": 203,\n\t\"./ky.js\": 203,\n\t\"./lb\": 204,\n\t\"./lb.js\": 204,\n\t\"./lo\": 205,\n\t\"./lo.js\": 205,\n\t\"./lt\": 206,\n\t\"./lt.js\": 206,\n\t\"./lv\": 207,\n\t\"./lv.js\": 207,\n\t\"./me\": 208,\n\t\"./me.js\": 208,\n\t\"./mi\": 209,\n\t\"./mi.js\": 209,\n\t\"./mk\": 210,\n\t\"./mk.js\": 210,\n\t\"./ml\": 211,\n\t\"./ml.js\": 211,\n\t\"./mr\": 212,\n\t\"./mr.js\": 212,\n\t\"./ms\": 214,\n\t\"./ms-my\": 213,\n\t\"./ms-my.js\": 213,\n\t\"./ms.js\": 214,\n\t\"./my\": 215,\n\t\"./my.js\": 215,\n\t\"./nb\": 216,\n\t\"./nb.js\": 216,\n\t\"./ne\": 217,\n\t\"./ne.js\": 217,\n\t\"./nl\": 219,\n\t\"./nl-be\": 218,\n\t\"./nl-be.js\": 218,\n\t\"./nl.js\": 219,\n\t\"./nn\": 220,\n\t\"./nn.js\": 220,\n\t\"./pa-in\": 221,\n\t\"./pa-in.js\": 221,\n\t\"./pl\": 222,\n\t\"./pl.js\": 222,\n\t\"./pt\": 224,\n\t\"./pt-br\": 223,\n\t\"./pt-br.js\": 223,\n\t\"./pt.js\": 224,\n\t\"./ro\": 225,\n\t\"./ro.js\": 225,\n\t\"./ru\": 226,\n\t\"./ru.js\": 226,\n\t\"./sd\": 227,\n\t\"./sd.js\": 227,\n\t\"./se\": 228,\n\t\"./se.js\": 228,\n\t\"./si\": 229,\n\t\"./si.js\": 229,\n\t\"./sk\": 230,\n\t\"./sk.js\": 230,\n\t\"./sl\": 231,\n\t\"./sl.js\": 231,\n\t\"./sq\": 232,\n\t\"./sq.js\": 232,\n\t\"./sr\": 234,\n\t\"./sr-cyrl\": 233,\n\t\"./sr-cyrl.js\": 233,\n\t\"./sr.js\": 234,\n\t\"./ss\": 235,\n\t\"./ss.js\": 235,\n\t\"./sv\": 236,\n\t\"./sv.js\": 236,\n\t\"./sw\": 237,\n\t\"./sw.js\": 237,\n\t\"./ta\": 238,\n\t\"./ta.js\": 238,\n\t\"./te\": 239,\n\t\"./te.js\": 239,\n\t\"./tet\": 240,\n\t\"./tet.js\": 240,\n\t\"./th\": 241,\n\t\"./th.js\": 241,\n\t\"./tl-ph\": 242,\n\t\"./tl-ph.js\": 242,\n\t\"./tlh\": 243,\n\t\"./tlh.js\": 243,\n\t\"./tr\": 244,\n\t\"./tr.js\": 244,\n\t\"./tzl\": 245,\n\t\"./tzl.js\": 245,\n\t\"./tzm\": 247,\n\t\"./tzm-latn\": 246,\n\t\"./tzm-latn.js\": 246,\n\t\"./tzm.js\": 247,\n\t\"./uk\": 248,\n\t\"./uk.js\": 248,\n\t\"./ur\": 249,\n\t\"./ur.js\": 249,\n\t\"./uz\": 251,\n\t\"./uz-latn\": 250,\n\t\"./uz-latn.js\": 250,\n\t\"./uz.js\": 251,\n\t\"./vi\": 252,\n\t\"./vi.js\": 252,\n\t\"./x-pseudo\": 253,\n\t\"./x-pseudo.js\": 253,\n\t\"./yo\": 254,\n\t\"./yo.js\": 254,\n\t\"./zh-cn\": 255,\n\t\"./zh-cn.js\": 255,\n\t\"./zh-hk\": 256,\n\t\"./zh-hk.js\": 256,\n\t\"./zh-tw\": 257,\n\t\"./zh-tw.js\": 257\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 510;\n\n/***/ }),\n/* 511 */,\n/* 512 */,\n/* 513 */,\n/* 514 */,\n/* 515 */,\n/* 516 */,\n/* 517 */,\n/* 518 */,\n/* 519 */,\n/* 520 */,\n/* 521 */,\n/* 522 */,\n/* 523 */,\n/* 524 */,\n/* 525 */,\n/* 526 */,\n/* 527 */,\n/* 528 */,\n/* 529 */,\n/* 530 */,\n/* 531 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.loginState = {\r\n name: \"login\",\r\n url: \"/login\",\r\n component: 'login',\r\n resolve: { returnTo: returnTo }\r\n};\r\nexports.logoutState = {\r\n name: \"logout\",\r\n url: \"/logout\",\r\n component: 'logout'\r\n};\r\nexports.authorizedState = {\r\n name: \"authorized\",\r\n url: \"/authorized\",\r\n component: 'authorized'\r\n};\r\nexports.unauthorizedState = {\r\n name: \"unauthorized\",\r\n url: \"/unauthorized\",\r\n component: 'unauthorized'\r\n};\r\n/**\r\n * A resolve function for 'login' state which figures out what state to return to, after a successful login.\r\n *\r\n * If the user was initially redirected to login state (due to the requiresAuth redirect), then return the toState/params\r\n * they were redirected from. Otherwise, if they transitioned directly, return the fromState/params. Otherwise\r\n * return the main \"home\" state.\r\n */\r\nreturnTo.$inject = ['$transition$'];\r\nfunction returnTo($transition$) {\r\n if ($transition$.redirectedFrom() !== null) {\r\n // The user was redirected to the login state (e.g., via the requiresAuth hook when trying to activate contacts)\r\n // Return to the original attempted target state (e.g., contacts)\r\n return $transition$.redirectedFrom().targetState();\r\n }\r\n var $state = $transition$.router.stateService;\r\n // The user was not redirected to the login state; they directly activated the login state somehow.\r\n // Return them to the state they came from.\r\n if ($transition$.from().name !== '') {\r\n return $state.target($transition$.from(), $transition$.params(\"from\"));\r\n }\r\n // If the fromState's name is empty, then this was the initial transition. Just return them to the home state\r\n return $state.target('home');\r\n}\r\n\n\n/***/ }),\n/* 532 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AuthorizedController = /** @class */ (function () {\r\n function AuthorizedController(authService, Restangular) {\r\n var _this = this;\r\n this.authService = authService;\r\n this.Restangular = Restangular;\r\n this.$onInit = function () {\r\n _this.authService.authorizeCallback();\r\n _this.authService.setTokenHeader();\r\n };\r\n }\r\n AuthorizedController.$inject = ['AuthService', 'Restangular'];\r\n return AuthorizedController;\r\n}());\r\nexports.authorized = {\r\n controller: AuthorizedController,\r\n template: __webpack_require__(380)\r\n};\r\n\n\n/***/ }),\n/* 533 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LoginController = /** @class */ (function () {\r\n function LoginController(AuthService, $state, Restangular) {\r\n var _this = this;\r\n this.AuthService = AuthService;\r\n this.$state = $state;\r\n this.Restangular = Restangular;\r\n this.$onInit = function () {\r\n _this.AuthService.authorize();\r\n //console.log(this.returnTo)\r\n };\r\n this.returnToOriginalState = function () {\r\n var state = _this.returnTo.state();\r\n var params = _this.returnTo.params();\r\n var options = Object.assign({}, _this.returnTo.options(), { reload: true });\r\n if (state) {\r\n _this.$state.go(state, params, options);\r\n }\r\n else {\r\n _this.$state.go('app');\r\n }\r\n };\r\n this.login = function () {\r\n var data = {\r\n \"grant_type\": \"client_credentials\",\r\n \"client_id\": \"TestClient\",\r\n \"client_secret\": \"TestClientSecret\"\r\n };\r\n _this.Restangular.all('token').post(data)\r\n .then(function (response) {\r\n _this.AuthService.SetAuthorizationData(response.access_token, response.access_token).then(function () {\r\n _this.AuthService.setTokenHeader();\r\n _this.returnToOriginalState();\r\n });\r\n })\r\n .catch(function (response) { });\r\n };\r\n }\r\n LoginController.$inject = ['AuthService', '$state', 'Restangular'];\r\n return LoginController;\r\n}());\r\nexports.login = {\r\n bindings: { returnTo: '<' },\r\n controller: LoginController,\r\n template: __webpack_require__(381)\r\n};\r\n\n\n/***/ }),\n/* 534 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LogoutController = /** @class */ (function () {\r\n function LogoutController(authService) {\r\n var _this = this;\r\n this.authService = authService;\r\n this.$onInit = function () {\r\n _this.authService.logout();\r\n };\r\n }\r\n LogoutController.$inject = ['AuthService'];\r\n return LogoutController;\r\n}());\r\nexports.logout = {\r\n controller: LogoutController,\r\n template: __webpack_require__(382)\r\n};\r\n\n\n/***/ }),\n/* 535 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * This file contains a Transition Hook which protects a\r\n * route that requires authentication.\r\n *\r\n * This hook redirects to /login when both:\r\n * - The user is not authenticated\r\n * - The user is navigating to a state that requires authentication\r\n */\r\nexports.authHookRunBlock = ['$transitions', 'AuthService', function ($transitions, AuthService) {\r\n AuthService.setTokenHeader();\r\n // Matches if the destination state's data property has a truthy 'requiresAuth' property\r\n var requiresAuthCriteria = {\r\n to: function (state) { return state.data && state.data.requiresAuth; }\r\n };\r\n // Function that returns a redirect for the current transition to the login state\r\n // if the user is not currently authenticated (according to the AuthService)\r\n var redirectToLogin = function (transition) {\r\n //let AuthService = transition.injector().get('AuthService');\r\n var $state = transition.router.stateService;\r\n AuthService.setTokenHeader();\r\n return AuthService.isAuthorized().catch(function () {\r\n return $state.target('login', undefined, { location: false });\r\n });\r\n };\r\n // Register the \"requires auth\" hook with the TransitionsService\r\n $transitions.onBefore(requiresAuthCriteria, redirectToLogin, { priority: 10 });\r\n }];\r\n\n\n/***/ }),\n/* 536 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar config_1 = __webpack_require__(13);\r\nvar AuthService = /** @class */ (function () {\r\n function AuthService(localStorageService, $window, $state, $q, $timeout, Restangular) {\r\n var _this = this;\r\n this.localStorageService = localStorageService;\r\n this.$window = $window;\r\n this.$state = $state;\r\n this.$q = $q;\r\n this.$timeout = $timeout;\r\n this.Restangular = Restangular;\r\n this.isAuthorized = function (role) {\r\n if (role === void 0) { role = null; }\r\n var deferred = _this.$q.defer();\r\n if (_this.localStorageService.get(\"authorizationData\") != null && _this.localStorageService.get(\"authorizationData\") != \"\") {\r\n if (role && !_this.hasRole(role)) {\r\n deferred.reject({\r\n code: 401, text: 'Insufficient roles'\r\n });\r\n }\r\n deferred.resolve({ code: 200 });\r\n }\r\n else {\r\n deferred.reject({ code: 403 });\r\n }\r\n return deferred.promise;\r\n };\r\n this.setTokenHeader = function () {\r\n _this.Restangular.setDefaultHeaders({ 'Authorization': 'Bearer ' + _this.localStorageService.get(\"authorizationData\") });\r\n };\r\n this.hasRole = function (role) {\r\n var roles = _this.getRoles();\r\n if (roles instanceof Array) {\r\n return (roles.indexOf(role) > -1);\r\n }\r\n else {\r\n return (roles == role);\r\n }\r\n };\r\n this.getRoles = function () {\r\n var data = _this.getDataFromToken(_this.GetAuthorizationData());\r\n return data.role;\r\n };\r\n this.getTokenData = function () {\r\n if (_this.GetAuthorizationData()) {\r\n var data = _this.getDataFromToken(_this.GetAuthorizationData());\r\n return data;\r\n }\r\n return false;\r\n };\r\n this.authorize = function () {\r\n // console.log(\"AuthorizedController time to log on\");\r\n var authorizationUrl = config_1.default.AUTH_LOGIN_URL;\r\n var client_id = config_1.default.AUTH_CLIENT_ID;\r\n var redirect_uri = _this.$window.location.origin + '/authorized';\r\n var response_type = \"id_token token\";\r\n var scope = config_1.default.AUTH_SCOPES;\r\n var nonce = \"N\" + Math.random() + \"\" + Date.now();\r\n var state = Date.now() + \"\" + Math.random();\r\n _this.localStorageService.set(\"authNonce\", nonce);\r\n _this.localStorageService.set(\"authStateControl\", state);\r\n // console.log(\"AuthorizedController created. adding myautostate: \" + this.localStorageService.get(\"authStateControl\"));\r\n var url = authorizationUrl + \"?\" +\r\n \"response_type=\" + encodeURI(response_type) + \"&\" +\r\n \"client_id=\" + encodeURI(client_id) + \"&\" +\r\n \"redirect_uri=\" + encodeURI(redirect_uri) + \"&\" +\r\n \"scope=\" + encodeURI(scope) + \"&\" +\r\n \"nonce=\" + encodeURI(nonce) + \"&\" +\r\n \"state=\" + encodeURI(state);\r\n // console.log(url);\r\n _this.$window.location.href = url;\r\n };\r\n this.logout = function () {\r\n var id_token = _this.localStorageService.get(\"authorizationDataIdToken\");\r\n var authorizationUrl = config_1.default.AUTH_LOGOUT_URL;\r\n var id_token_hint = id_token;\r\n var post_logout_redirect_uri = _this.$window.location.origin + '';\r\n var state = Date.now() + \"\" + Math.random();\r\n var url = authorizationUrl + \"?\" +\r\n \"id_token_hint=\" + id_token_hint + \"&\" +\r\n \"post_logout_redirect_uri=\" + encodeURI(post_logout_redirect_uri) + \"&\" +\r\n \"state=\" + encodeURI(state);\r\n _this.ResetAuthorizationData();\r\n _this.$window.location.href = url;\r\n };\r\n this.authorizeCallback = function () {\r\n // console.log(\"AuthorizedController created, has hash\");\r\n var hash = window.location.hash.substr(1);\r\n var result = hash.split('&').reduce(function (result, item) {\r\n var parts = item.split('=');\r\n result[parts[0]] = parts[1];\r\n return result;\r\n }, {});\r\n var token = \"\";\r\n var id_token = \"\";\r\n var authResponseIsValid = false;\r\n if (!result.error) {\r\n if (result.state !== _this.localStorageService.get(\"authStateControl\")) {\r\n // console.log(\"AuthorizedCallback incorrect state\");\r\n }\r\n else {\r\n token = result.access_token;\r\n id_token = result.id_token;\r\n var dataIdToken = _this.getDataFromToken(id_token);\r\n // console.log(dataIdToken);\r\n // validate nonce\r\n if (dataIdToken.nonce !== _this.localStorageService.get(\"authNonce\")) {\r\n // console.log(\"AuthorizedCallback incorrect nonce\");\r\n }\r\n else {\r\n _this.localStorageService.set(\"authNonce\", \"\");\r\n _this.localStorageService.set(\"authStateControl\", \"\");\r\n authResponseIsValid = true;\r\n // console.log(\"AuthorizedCallback state and nonce validated, returning access token\");\r\n }\r\n }\r\n }\r\n if (authResponseIsValid) {\r\n var state = _this.$state;\r\n _this.SetAuthorizationData(token, id_token).then(function () {\r\n //console.log(this.localStorageService.get(\"authorizationData\"));\r\n _this.$window.location.href = _this.$window.location.origin;\r\n });\r\n }\r\n else {\r\n _this.ResetAuthorizationData();\r\n _this.$state.go(\"unauthorized\");\r\n }\r\n };\r\n this.ResetAuthorizationData = function () {\r\n _this.localStorageService.set(\"authorizationData\", \"\");\r\n _this.localStorageService.set(\"authorizationDataIdToken\", \"\");\r\n };\r\n this.GetAuthorizationData = function () {\r\n return _this.localStorageService.get(\"authorizationData\");\r\n };\r\n this.SetAuthorizationData = function (token, id_token) {\r\n // console.log(token);\r\n var deferred = _this.$q.defer();\r\n _this.$timeout(function () {\r\n if (_this.localStorageService.get(\"authorizationData\") !== \"\") {\r\n _this.localStorageService.set(\"authorizationData\", \"\");\r\n }\r\n _this.localStorageService.set(\"authorizationData\", token);\r\n _this.localStorageService.set(\"authorizationDataIdToken\", id_token);\r\n deferred.resolve();\r\n }, 3000);\r\n return deferred.promise;\r\n };\r\n }\r\n AuthService.prototype.getEmployeeId = function (token) {\r\n var data = this.getDataFromToken(token);\r\n // console.log(data);\r\n var userID = data.employeeId;\r\n return userID;\r\n };\r\n AuthService.prototype.getDataFromToken = function (token) {\r\n var data = {};\r\n if (typeof token !== 'undefined') {\r\n var encoded = token.split('.')[1];\r\n data = JSON.parse(this.urlBase64Decode(encoded));\r\n }\r\n return data;\r\n };\r\n AuthService.prototype.urlBase64Decode = function (str) {\r\n var output = str.replace('-', '+').replace('_', '/');\r\n switch (output.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n output += '==';\r\n break;\r\n case 3:\r\n output += '=';\r\n break;\r\n default:\r\n throw 'Illegal base64url string!';\r\n }\r\n return window.atob(output);\r\n };\r\n AuthService.$inject = ['localStorageService', '$window', '$state', '$q', '$timeout', 'Restangular'];\r\n return AuthService;\r\n}());\r\nexports.AuthService = AuthService;\r\n\n\n/***/ }),\n/* 537 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nfunction __export(m) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__export(__webpack_require__(536));\r\n\n\n/***/ }),\n/* 538 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnAuthorizedController = /** @class */ (function () {\r\n function UnAuthorizedController(authService) {\r\n this.authService = authService;\r\n }\r\n UnAuthorizedController.$inject = ['authService'];\r\n return UnAuthorizedController;\r\n}());\r\nexports.unauthorized = {\r\n controller: UnAuthorizedController,\r\n template: __webpack_require__(383)\r\n};\r\n\n\n/***/ }),\n/* 539 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.authServiceRun = ['Restangular', function (Restangular) {\r\n }];\r\n\n\n/***/ }),\n/* 540 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.authSettingsState = {\r\n parent: \"app\",\r\n name: \"authsettings\",\r\n url: \"/authsettings\",\r\n //redirectTo: \"authsettings.list\",\r\n component: \"authSettingsComponent\",\r\n data: {\r\n permissions: {\r\n only: ['SUPERUSER'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.authSettingsUsersState = {\r\n name: \"authsettings.users\",\r\n url: \"/users\",\r\n resolve: {\r\n authUsers: [\"AuthUserService\", function (AuthUserService) {\r\n 'ngInject';\r\n return AuthUserService.all();\r\n }]\r\n },\r\n views: {\r\n \"main\": 'authSettingsUsersComponent'\r\n }\r\n};\r\nexports.authSettingsUsersItemState = {\r\n name: \"authsettings.users.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n authUser: [\"AuthUserService\", \"$stateParams\", function (AuthUserService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != 0) {\r\n return AuthUserService.get($stateParams['id']);\r\n }\r\n }]\r\n },\r\n views: {\r\n \"main@authsettings\": 'authSettingsUsersItemComponent'\r\n }\r\n};\r\nexports.authSettingsServerState = {\r\n name: \"authsettings.server\",\r\n url: \"/server\",\r\n //redirectTo: \"authsettings.list\",\r\n views: {\r\n \"main\": 'authSettingsServerComponent'\r\n }\r\n};\r\n\n\n/***/ }),\n/* 541 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AuthSettingsController = /** @class */ (function () {\r\n function AuthSettingsController() {\r\n 'ngInject';\r\n }\r\n return AuthSettingsController;\r\n}());\r\nexports.authSettingsComponent = {\r\n controller: AuthSettingsController,\r\n template: __webpack_require__(384)\r\n};\r\n\n\n/***/ }),\n/* 542 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AuthSettingsServerController = /** @class */ (function () {\r\n AuthSettingsServerController.$inject = [\"AuthSettingsService\"];\r\n function AuthSettingsServerController(AuthSettingsService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AuthSettingsService = AuthSettingsService;\r\n this.$onInit = function () {\r\n _this.AuthSettingsService.all();\r\n };\r\n }\r\n return AuthSettingsServerController;\r\n}());\r\nexports.authSettingsServerComponent = {\r\n controller: AuthSettingsServerController,\r\n template: __webpack_require__(385)\r\n};\r\n\n\n/***/ }),\n/* 543 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AuthSettingsUsersController = /** @class */ (function () {\r\n AuthSettingsUsersController.$inject = [\"AuthUserService\"];\r\n function AuthSettingsUsersController(AuthUserService) {\r\n 'ngInject';\r\n this.AuthUserService = AuthUserService;\r\n this.$onInit = function () {\r\n };\r\n }\r\n return AuthSettingsUsersController;\r\n}());\r\nexports.authSettingsUsersComponent = {\r\n bindings: {\r\n authUsers: \"<\"\r\n },\r\n controller: AuthSettingsUsersController,\r\n template: __webpack_require__(386)\r\n};\r\n\n\n/***/ }),\n/* 544 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar _ = __webpack_require__(7);\r\nvar AuthSettingsUsersItemController = /** @class */ (function () {\r\n AuthSettingsUsersItemController.$inject = [\"AuthUserService\"];\r\n function AuthSettingsUsersItemController(AuthUserService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AuthUserService = AuthUserService;\r\n this.$onInit = function () {\r\n _this.AuthUserService.getRoles(_this.authUser).then(function (roles) {\r\n _this.authUser.roles = roles;\r\n });\r\n _this.AuthUserService.getClaims(_this.authUser).then(function (claims) {\r\n _this.authUser.claims = new Object();\r\n for (var i = 0; i < claims.length; i++) {\r\n var item = claims[i];\r\n _this.authUser.claims[item.type] = item.value;\r\n }\r\n // console.log(this.authUser.claims);\r\n });\r\n };\r\n this.save = function () {\r\n _this.AuthUserService.post(_this.authUser).then(function (response) {\r\n // console.log(response);\r\n });\r\n };\r\n this.createAccount = function () {\r\n _this.authUser.userName = _this.authUser.email;\r\n _this.authUser.claims = {\r\n \"displayName\": _this.authUser.displayName,\r\n };\r\n _this.authUser.roles = ['employee'];\r\n _this.AuthUserService.post(_this.authUser).then(function (response) {\r\n // console.log('Account created');\r\n });\r\n };\r\n this.updateUser = function () {\r\n _this.AuthUserService.put(_this.authUser.id, _this.authUser).then(function (response) {\r\n // console.log('Account created')\r\n });\r\n };\r\n this.resetPassword = function () {\r\n //this.account = new IAuthUser();\r\n _this.AuthUserService.resetPassword(_this.authUser).then(function (response) {\r\n //this.accountError = response;\r\n // console.log('Password reset')\r\n });\r\n };\r\n this.editField = function (index, value) {\r\n if (index === void 0) { index = null; }\r\n if (value === void 0) { value = null; }\r\n _this.deleteField(index, value);\r\n _this.fieldedit.name = index;\r\n _this.fieldedit.value = value;\r\n };\r\n this.deleteField = function (index, value) {\r\n if (index === void 0) { index = null; }\r\n if (value === void 0) { value = null; }\r\n _.unset(_this.authUser.claims, index);\r\n };\r\n this.saveFields = function () {\r\n if (!_this.authUser.claims) {\r\n _this.authUser.claims = {};\r\n }\r\n _this.authUser.claims[_this.fieldedit.name] = _this.fieldedit.value;\r\n _this.fieldedit.name = null;\r\n _this.fieldedit.value = null;\r\n };\r\n this.editRole = function (index, value) {\r\n if (index === void 0) { index = null; }\r\n if (value === void 0) { value = null; }\r\n _this.deleteRole(index, value);\r\n _this.roleedit.name = value;\r\n };\r\n this.deleteRole = function (index, value) {\r\n if (index === void 0) { index = null; }\r\n if (value === void 0) { value = null; }\r\n _this.authUser.roles.splice(index, 1);\r\n };\r\n this.saveRole = function () {\r\n if (!_this.authUser.roles) {\r\n _this.authUser.roles = [];\r\n }\r\n _this.authUser.roles.push(_this.roleedit.name);\r\n _this.roleedit.name = null;\r\n };\r\n }\r\n return AuthSettingsUsersItemController;\r\n}());\r\nexports.authSettingsUsersItemComponent = {\r\n bindings: {\r\n authUser: \"<\"\r\n },\r\n controller: AuthSettingsUsersItemController,\r\n template: __webpack_require__(387)\r\n};\r\n\n\n/***/ }),\n/* 545 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ResetPasswordController = /** @class */ (function () {\r\n ResetPasswordController.$inject = [\"AuthUserService\", \"$state\"];\r\n function ResetPasswordController(AuthUserService, $state) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AuthUserService = AuthUserService;\r\n this.$state = $state;\r\n this.$onInit = function () {\r\n if (!_this.authUser) {\r\n _this.AuthUserService.getCurrentUser().then(function (user) {\r\n _this.authUser = user;\r\n });\r\n }\r\n };\r\n this.resetPassword = function () {\r\n _this.AuthUserService.resetPassword(_this.authUser).then(function (response) {\r\n $('#ResetPasswordModal').modal('hide');\r\n });\r\n };\r\n }\r\n return ResetPasswordController;\r\n}());\r\nexports.resetPasswordComponent = {\r\n bindings: {\r\n authUser: \"<\"\r\n },\r\n controller: ResetPasswordController,\r\n template: __webpack_require__(388)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 546 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar config_1 = __webpack_require__(13);\r\nexports.AuthSettingsApi = ['Restangular', function (Restangular) {\r\n return Restangular.withConfig(function (RestangularConfigurer) {\r\n RestangularConfigurer.setBaseUrl(config_1.default.AUTH_API_URL);\r\n });\r\n }];\r\n\n\n/***/ }),\n/* 547 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IAuthSettings = /** @class */ (function () {\r\n function IAuthSettings() {\r\n }\r\n return IAuthSettings;\r\n}());\r\nexports.IAuthSettings = IAuthSettings;\r\nvar AuthSettingsService = /** @class */ (function (_super) {\r\n __extends(AuthSettingsService, _super);\r\n AuthSettingsService.$inject = [\"AuthSettingsApi\", \"AppService\"];\r\n function AuthSettingsService(AuthSettingsApi, AppService) {\r\n 'ngInject';\r\n var _this = _super.call(this, AuthSettingsApi, AppService, 'user') || this;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return AuthSettingsService;\r\n}(base_service_1.BaseService));\r\nexports.AuthSettingsService = AuthSettingsService;\r\n\n\n/***/ }),\n/* 548 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BaseAppService = /** @class */ (function () {\r\n function BaseAppService() {\r\n \"ngInject\";\r\n }\r\n return BaseAppService;\r\n}());\r\nexports.BaseAppService = BaseAppService;\r\n\n\n/***/ }),\n/* 549 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = __webpack_require__(6);\r\nvar moment = __webpack_require__(0);\r\n/** Set Moment defaults */\r\nmoment.locale('nl');\r\n__webpack_require__(299);\r\n__webpack_require__(24);\r\n__webpack_require__(7);\r\n__webpack_require__(25);\r\n__webpack_require__(278);\r\n__webpack_require__(298);\r\n__webpack_require__(23);\r\n__webpack_require__(282);\r\n__webpack_require__(284);\r\n__webpack_require__(274);\r\n__webpack_require__(280);\r\n__webpack_require__(0);\r\n__webpack_require__(295);\r\n__webpack_require__(279);\r\n__webpack_require__(273);\r\n__webpack_require__(296);\r\n__webpack_require__(297);\r\n__webpack_require__(289);\r\n__webpack_require__(288);\r\n__webpack_require__(277);\r\n__webpack_require__(276);\r\n__webpack_require__(286);\r\n__webpack_require__(283);\r\n__webpack_require__(287);\r\n// import 'angular-bootstrap-datetimepicker/src/js/datetimepicker.js';\r\n// import 'angular-bootstrap-datetimepicker/src/js/datetimepicker.templates.js';\r\n// import 'angular-bootstrap-datetimepicker/src/css/datetimepicker.css';\r\n// import 'angular-date-time-input/src/dateTimeInput.js';\r\n__webpack_require__(281);\r\n__webpack_require__(275);\r\n__webpack_require__(285);\r\n__webpack_require__(292);\r\n__webpack_require__(293);\r\n__webpack_require__(290);\r\n__webpack_require__(291);\r\n__webpack_require__(294);\r\nangular.element(document).ready(function () {\r\n angular.bootstrap(document.body, ['app'], {\r\n strictDi: true\r\n });\r\n});\r\n\n\n/***/ }),\n/* 550 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TwinfieldController = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @return {void}\r\n */\r\n TwinfieldController.$inject = [\"TwinfieldService\", \"$scope\", \"$state\", \"localStorageService\", \"$location\"];\r\n function TwinfieldController(TwinfieldService, $scope, $state, localStorageService, $location) {\r\n 'ngInject';\r\n var _this = this;\r\n this.TwinfieldService = TwinfieldService;\r\n this.$scope = $scope;\r\n this.$state = $state;\r\n this.localStorageService = localStorageService;\r\n this.$location = $location;\r\n /**\r\n * Initiator\r\n *\r\n * @return {void}\r\n */\r\n this.$onInit = function () {\r\n /** Set twinfield URI nonces */\r\n _this.$scope.nonce = _this.generateNonce();\r\n _this.$scope.twinfieldUrl = 'https://login.twinfield.com/auth/authentication/connect/authorize'\r\n + '?client_id=brainsweb'\r\n + '&response_type=code'\r\n + '&scope=openid+twf.user+twf.organisation+twf.organisationUser+offline_access'\r\n + '&redirect_uri=' + window.location.protocol + '//' + window.location.host + '/app/twinfield'\r\n + '&state=' + _this.generateNonce()\r\n + '&nonce=' + _this.generateNonce();\r\n /** Get status */\r\n _this.TwinfieldService.verifyToken().then(function (status) {\r\n _this.$scope.status = status;\r\n console.log('token: verify ' + _this.$scope.status);\r\n }).catch(function () {\r\n _this.$scope.status = false;\r\n });\r\n };\r\n }\r\n /**\r\n * Generate a nonces\r\n\r\n * @return {string} Nonce\r\n */\r\n TwinfieldController.prototype.generateNonce = function () {\r\n return (Math.floor((Math.random() * 6) + 1) * new Date().getTime()).toString();\r\n };\r\n /**\r\n * Redirect to Twinfield for oAuth2 code retrieval\r\n *\r\n * @return {void}\r\n */\r\n TwinfieldController.prototype.authenticateTwinfield = function () {\r\n parent.location.href = this.$scope.twinfieldUrl;\r\n };\r\n return TwinfieldController;\r\n}());\r\nexports.twinfieldComponent = {\r\n controller: TwinfieldController,\r\n template: __webpack_require__(389)\r\n};\r\n\n\n/***/ }),\n/* 551 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.compareTo = function () {\r\n return {\r\n require: \"ngModel\",\r\n scope: {\r\n otherModelValue: \"=compareTo\"\r\n },\r\n link: function (scope, element, attributes, ngModel) {\r\n ngModel.$validators.compareTo = function (modelValue) {\r\n return modelValue == scope.otherModelValue;\r\n };\r\n scope.$watch(\"otherModelValue\", function () {\r\n ngModel.$validate();\r\n });\r\n }\r\n };\r\n};\r\n\n\n/***/ }),\n/* 552 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.file = function () {\r\n return {\r\n restrict: 'E',\r\n template: '',\r\n replace: true,\r\n require: 'ngModel',\r\n link: function (scope, element, attr, ctrl) {\r\n var listener = function () {\r\n scope.$apply(function () {\r\n attr.multiple ? ctrl.$setViewValue(element[0].files) : ctrl.$setViewValue(element[0].files[0]);\r\n });\r\n };\r\n element.bind('change', listener);\r\n }\r\n };\r\n};\r\n\n\n/***/ }),\n/* 553 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fixedHeight = [\"$window\", \"$timeout\", \"screenSize\", function ($window, $timeout, screenSize) {\r\n 'ngInject';\r\n return {\r\n restrict: 'AEC',\r\n scope: {\r\n resize: '@',\r\n },\r\n link: function (scope, element, $attrs) {\r\n function setheight() {\r\n var offset = $(element).offset();\r\n // console.log(offset)\r\n if (offset.top > 0) {\r\n var offsetmain = $(\"#mainview\").offset();\r\n var offsettop = (offset.top - offsetmain.top);\r\n var docHeight = $(window).height();\r\n var height = docHeight - offsettop - 95;\r\n $(element).height(height);\r\n }\r\n }\r\n if (!screenSize.is('xs, sm')) {\r\n $timeout(function () {\r\n setheight();\r\n });\r\n $window.onresize = function (event) {\r\n setheight();\r\n };\r\n $attrs.$observe('resize', function (resize) {\r\n $timeout(function () {\r\n setheight();\r\n });\r\n });\r\n }\r\n }\r\n };\r\n}];\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 554 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.passwordValidation = function () {\r\n return {\r\n restrict: 'A',\r\n require: \"ngModel\",\r\n scope: {},\r\n link: function (scope, element, attributes, mCtrl) {\r\n function myValidation(value) {\r\n var re = /(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\da-zA-Z]).{8,}/;\r\n mCtrl.$setValidity('validation', re.test(value));\r\n return value;\r\n }\r\n mCtrl.$parsers.push(myValidation);\r\n }\r\n };\r\n};\r\n\n\n/***/ }),\n/* 555 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.bytes = [function () {\r\n return function (bytes, precision) {\r\n if (isNaN(parseFloat(bytes)) || !isFinite(bytes))\r\n return '-';\r\n if (typeof precision === 'undefined')\r\n precision = 1;\r\n var units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'], number = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number];\r\n };\r\n }];\r\n\n\n/***/ }),\n/* 556 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(752);\r\nexports.isDay = [function () {\r\n return function (input, day) {\r\n var out = [];\r\n if (input && util_1.isArray(input)) {\r\n input.forEach(function (d) {\r\n // console.log(d)\r\n if (new Date(d.start).getDate() == day.getDate() &&\r\n new Date(d.start).getMonth() == day.getMonth() &&\r\n new Date(d.start).getFullYear() == day.getFullYear()) {\r\n out.push(d);\r\n }\r\n });\r\n }\r\n return out;\r\n };\r\n }];\r\n\n\n/***/ }),\n/* 557 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar shifts_service_1 = __webpack_require__(18);\r\nvar moment = __webpack_require__(0);\r\nvar config_1 = __webpack_require__(13);\r\nvar AppController = /** @class */ (function () {\r\n AppController.$inject = [\"AuthService\", \"$scope\", \"$window\", \"ThemeService\", \"AuthUserService\"];\r\n function AppController(AuthService, $scope, $window, ThemeService, AuthUserService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AuthService = AuthService;\r\n this.$scope = $scope;\r\n this.$window = $window;\r\n this.ThemeService = ThemeService;\r\n this.AuthUserService = AuthUserService;\r\n this.$onInit = function () {\r\n _this.version = config_1.default.VERSION;\r\n _this.ThemeService.setIsSmallSidebar(false);\r\n _this.AuthUserService.getCurrentUser().then(function (user) {\r\n _this.user = user;\r\n });\r\n // this.$scope.$on('getAdHocShiftsUp', (event, data) => {\r\n // console.log('getAdHocShiftsUp'); \r\n // this.$scope.$broadcast('getAdHocShiftsDown', data);\r\n // });\r\n };\r\n this.menuItems = [\r\n { 'name': 'Dashboard', 'sref': 'dashboard', 'iconclass': 'fa fa-flask', 'role': 'BACKOFFICE' },\r\n { 'name': 'Diensten', 'sref': 'shifts', 'iconclass': 'fa fa-calendar-o', 'role': 'BACKOFFICE' },\r\n { 'name': 'Taken', 'sref': 'tasks', 'iconclass': 'fa fa-tasks', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Actieve taken', 'sref': 'tasks.list' },\r\n { 'name': 'Archief', 'sref': 'tasks.archive' },\r\n ] },\r\n { 'name': 'Urenregistratie', 'sref': 'timesheets', 'iconclass': 'fa fa-clock-o', 'role': 'TIMESHEETS', 'submenu': [\r\n { 'name': 'Doorboeken', 'sref': 'timesheets.dashboard' },\r\n { 'name': 'Overzicht', 'sref': 'timesheets.overview', 'role': 'FINANCE' },\r\n ] },\r\n { 'name': 'Financieel', 'sref': 'quotations', 'iconclass': 'fa fa-file-text-o', 'role': 'FINANCE', 'submenu': [\r\n { 'name': 'Pro forma facturen', 'sref': 'quotations.proforma' },\r\n { 'name': 'Facturatie', 'sref': 'quotations.dashboard' },\r\n { 'name': 'Cootje', 'sref': 'quotations.cootje' },\r\n ] },\r\n { 'name': 'CRM', 'sref': 'crm', 'iconclass': 'fa fa-users', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Bedrijven', 'sref': 'crm.accounts' },\r\n { 'name': 'Contacten', 'sref': 'crm.contacts' },\r\n ] },\r\n { 'name': 'HR', 'sref': 'hr', 'iconclass': 'fa fa-user-o', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Medewerkers', 'sref': 'hr.employees' },\r\n { 'name': 'Beschikbaarheid', 'sref': 'hr.availability' },\r\n ] },\r\n { 'name': 'Recruitment', 'sref': 'hr.applicants', 'iconclass': 'fa fa-user-o', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Sollicitanten', 'sref': 'hr.applicants.list' },\r\n { 'name': 'Sollicitanten archief', 'sref': 'hr.applicants.archive' }\r\n ] },\r\n { 'name': 'Instellingen', 'sref': 'questions', 'iconclass': 'fa fa-gear', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Accounts', 'sref': 'authsettings', 'role': 'SUPERUSER' },\r\n { 'name': 'Kantoorpersoneel', 'sref': 'settings.staff', 'role': 'SUPERUSER' },\r\n { 'name': 'Stamdata', 'sref': 'masterdata', 'role': 'BACKOFFICE' },\r\n { 'name': 'Salary scales', 'sref': 'settings.salaryscales', 'role': 'BACKOFFICE' },\r\n // {'name': 'Email-templates', 'sref': 'settings.templates', 'role': 'SUPERUSER' },\r\n { 'name': 'ORT dagen', 'sref': 'settings.timezones', 'role': 'BACKOFFICE' }\r\n ] },\r\n // {'name': 'Dashboard', 'sref': 'dashboard', 'iconclass': 'fa fa-flask', 'role': 'EMPLOYEE'},\r\n { 'name': 'Agenda', 'sref': 'schedule', 'iconclass': 'fa fa-calendar-o', 'role': 'EMPLOYEE' },\r\n { 'name': 'Declaraties', 'sref': 'schedule.declarations', 'iconclass': 'fa fa-clock-o', 'role': 'EMPLOYEE' },\r\n { 'name': 'Inschrijven', 'sref': 'subscriptions', 'iconclass': 'fa fa-list-ul', 'role': 'EMPLOYEE' },\r\n { 'name': 'Vaardigheden', 'sref': 'skills', 'iconclass': 'fa fa-wrench', 'role': 'EMPLOYEE' },\r\n { 'name': 'Documentatie', 'sref': 'documentation', 'iconclass': 'fa fa-book', 'role': 'EMPLOYEE' },\r\n { 'name': 'Diensten', 'sref': 'customerShifts', 'iconclass': 'fa fa-calendar', 'role': 'CUSTOMER' }\r\n ];\r\n this.currentShift = new shifts_service_1.IShift();\r\n this.currentShift.start = this.roundMinutes(new Date());\r\n this.currentShift.end = moment(this.currentShift.start).add(8, 'hour').toDate();\r\n }\r\n AppController.prototype.roundMinutes = function (date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n };\r\n return AppController;\r\n}());\r\nexports.app = {\r\n controller: AppController,\r\n template: __webpack_require__(390)\r\n};\r\n\n\n/***/ }),\n/* 558 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar config_1 = __webpack_require__(13);\r\nexports.otherwiseConfigBlock = ['$urlRouterProvider', function ($urlRouterProvider) {\r\n $urlRouterProvider.otherwise('/app');\r\n }];\r\nexports.html5ConfigBlock = ['$locationProvider', function ($locationProvider) {\r\n $locationProvider.html5Mode({\r\n enabled: true,\r\n requireBase: false\r\n });\r\n }];\r\nexports.themeConfigBlock = ['ThemeServiceProvider', '$animateProvider', function (ThemeServiceProvider, $animateProvider) {\r\n ThemeServiceProvider.setLogo(__webpack_require__(372));\r\n ThemeServiceProvider.setLogoDark(__webpack_require__(371));\r\n $animateProvider.classNameFilter(/ng-animate-enabled/);\r\n }];\r\nexports.masterDataConfigBlock = ['MasterdataServiceProvider', function (MasterdataServiceProvider) {\r\n MasterdataServiceProvider.setType('Skills', 'SKILLS');\r\n MasterdataServiceProvider.setType('Functions', 'Functions');\r\n MasterdataServiceProvider.setType('Hour codes', 'HourCodes');\r\n MasterdataServiceProvider.setType('Availability status', 'AvalabilityStatus');\r\n MasterdataServiceProvider.setType('Transportation type', 'TransportationType');\r\n MasterdataServiceProvider.setType('Note Tags', 'NoteTags');\r\n MasterdataServiceProvider.setType('Contact Tags', 'ContactTags');\r\n MasterdataServiceProvider.setType('Task Status', 'TaskStatus');\r\n MasterdataServiceProvider.setType('Preferred target audience', 'PreferredTargetAudience');\r\n MasterdataServiceProvider.setType('Application status', 'ApplicationStatus');\r\n MasterdataServiceProvider.setApiItemName('masterdata');\r\n }];\r\nexports.config = ['RestangularProvider', 'localStorageServiceProvider', function (RestangularProvider, localStorageServiceProvider) {\r\n RestangularProvider.setBaseUrl(config_1.default.API_URL);\r\n localStorageServiceProvider.setStorageType('sessionStorage');\r\n }];\r\n\n\n/***/ }),\n/* 559 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.run = ['Restangular', 'NotifyService', '$state', 'DTDefaultOptions', 'gettextCatalog', '$window', 'PermPermissionStore', 'PermRoleStore', 'deviceDetector', function (Restangular, notifyService, $state, DTDefaultOptions, gettextCatalog, $window, PermPermissionStore, PermRoleStore, deviceDetector) {\r\n //SET LANGUAGE\r\n var lang = $window.navigator.language;\r\n var lf = '';\r\n switch (lang) {\r\n case 'nl':\r\n case 'nl-NL':\r\n lf = 'nl_NL';\r\n break;\r\n default: lf = 'en_US';\r\n }\r\n gettextCatalog.setCurrentLanguage(lf);\r\n gettextCatalog.debug = false;\r\n //CHECK IF IE\r\n var browser = deviceDetector.browser;\r\n if (deviceDetector.browser == \"ie\") {\r\n $state.go('browser');\r\n }\r\n Restangular.setErrorInterceptor(function (response, deferred, responseHandler) {\r\n switch (response.status) {\r\n case 401:\r\n notifyService.error(response.status.toString(), 'Unauthorized');\r\n $state.go('login');\r\n break;\r\n case 403:\r\n $state.go('login');\r\n break;\r\n default:\r\n notifyService.error(response.status.toString());\r\n break;\r\n }\r\n });\r\n Restangular.addResponseInterceptor(function (data, operation, what, url, response) {\r\n switch (response.status) {\r\n case 200:\r\n return data;\r\n default:\r\n return data;\r\n }\r\n });\r\n DTDefaultOptions.setLanguage({\r\n sUrl: '//cdn.datatables.net/plug-ins/1.10.12/i18n/Dutch.json'\r\n });\r\n PermRoleStore.defineRole('EMPLOYEE', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n PermRoleStore.defineRole('SUPERUSER', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n PermRoleStore.defineRole('BACKOFFICE', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n PermRoleStore.defineRole('TIMESHEETS', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n PermRoleStore.defineRole('FINANCE', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n PermRoleStore.defineRole('ADMIN', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n PermRoleStore.defineRole('CUSTOMER', [\"roleName\", \"AuthService\", function (roleName, AuthService) {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n }]);\r\n }];\r\n\n\n/***/ }),\n/* 560 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_app_service_1 = __webpack_require__(548);\r\nvar AppService = /** @class */ (function (_super) {\r\n __extends(AppService, _super);\r\n AppService.$inject = [\"NotifyService\", \"SweetAlert\"];\r\n function AppService(NotifyService, SweetAlert) {\r\n \"ngInject\";\r\n var _this = _super.call(this) || this;\r\n _this.NotifyService = NotifyService;\r\n _this.SweetAlert = SweetAlert;\r\n return _this;\r\n }\r\n return AppService;\r\n}(base_app_service_1.BaseAppService));\r\nexports.AppService = AppService;\r\n\n\n/***/ }),\n/* 561 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n//import { AuthService } from '../authorization/services/auth.service';\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.appState = {\r\n name: 'app',\r\n url: '/app',\r\n redirectTo: 'dashboard',\r\n component: 'app',\r\n data: {\r\n requiresAuth: true\r\n }\r\n};\r\nexports.homeState = {\r\n name: 'home',\r\n url: '/home',\r\n component: 'home'\r\n};\r\nexports.browserState = {\r\n name: 'browser',\r\n url: '/browser',\r\n component: 'browserPageComponent'\r\n};\r\n\n\n/***/ }),\n/* 562 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BrowserPageController = /** @class */ (function () {\r\n BrowserPageController.$inject = [\"deviceDetector\"];\r\n function BrowserPageController(deviceDetector) {\r\n 'ngInject';\r\n this.deviceDetector = deviceDetector;\r\n // console.log('CrmController');\r\n }\r\n return BrowserPageController;\r\n}());\r\nexports.browserPageComponent = {\r\n controller: BrowserPageController,\r\n template: __webpack_require__(391)\r\n};\r\n\n\n/***/ }),\n/* 563 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar ChatPanelController = /** @class */ (function () {\r\n ChatPanelController.$inject = [\"$state\", \"$scope\", \"ShiftService\", \"EmployeesService\", \"AccountsService\"];\r\n function ChatPanelController($state, $scope, ShiftService, EmployeesService, AccountsService) {\r\n 'ngInject';\r\n this.$state = $state;\r\n this.$scope = $scope;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.AccountsService = AccountsService;\r\n this.$onInit = function () {\r\n // this.$scope.$on('getAdHocShiftsDown', (event, data) => { \r\n // console.log('getAdHocShiftsDown'); \r\n // }); \r\n };\r\n }\r\n ChatPanelController.prototype.isSameDay = function (start, end) {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n ChatPanelController.prototype.openShift = function (item) {\r\n this.currentShift = item;\r\n this.setLocations();\r\n this.setAccountNotes();\r\n this.setEmployees();\r\n $('#check-availability-modal').modal('show');\r\n };\r\n ChatPanelController.prototype.setLocations = function () {\r\n var _this = this;\r\n if (this.currentShift.teamLocationAccountId) {\r\n this.AccountsService.getChild(this.currentShift.teamLocationAccountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n _this.setTeams();\r\n });\r\n }\r\n };\r\n ChatPanelController.prototype.setAccountNotes = function () {\r\n var _this = this;\r\n if (this.currentShift.teamLocationAccountId) {\r\n this.AccountsService.getChild(this.currentShift.teamLocationAccountId, 'notes/?tag=planning').then(function (result) {\r\n _this.accountNotes = result;\r\n });\r\n }\r\n };\r\n ChatPanelController.prototype.setEmployees = function () {\r\n var _this = this;\r\n if (this.currentShift.start && this.currentShift.end) {\r\n var request = {\r\n accountId: this.currentShift.teamLocationAccountId,\r\n locationId: this.currentShift.teamLocationId,\r\n startDate: this.currentShift.start,\r\n endDate: this.currentShift.end,\r\n shiftId: this.currentShift.id\r\n };\r\n this.EmployeesService.customPost('availableEmployees', request, false).then(function (result) {\r\n _this.employees = result;\r\n _this.selectedEmployee = _this.employees.find(function (employeeSummary) { return employeeSummary.employee.id == _this.currentShift.employeeId; });\r\n });\r\n }\r\n };\r\n ChatPanelController.prototype.setTeams = function () {\r\n var _this = this;\r\n if (this.currentShift.teamLocationId) {\r\n this.teams = this.locations.find(function (item) { return item.id === _this.currentShift.teamLocationId; }).teams;\r\n }\r\n };\r\n ChatPanelController.prototype.approve = function (event, shift) {\r\n event.stopPropagation();\r\n shift.status = 6;\r\n this.updateShift(shift);\r\n };\r\n ChatPanelController.prototype.reject = function (event, shift) {\r\n event.stopPropagation();\r\n shift.status = 99;\r\n this.updateShift(shift);\r\n };\r\n ChatPanelController.prototype.updateShift = function (shift) {\r\n var _this = this;\r\n this.ShiftService.put(shift.id, shift).then(function (data) {\r\n _this.shifts = _this.shifts.filter(function (s) { return s.id !== shift.id; });\r\n });\r\n };\r\n return ChatPanelController;\r\n}());\r\nexports.chatPanelComponent = {\r\n bindings: {\r\n shifts: '=',\r\n currentShift: '=',\r\n locations: '=',\r\n teams: '=',\r\n accountNotes: '=',\r\n employees: '=',\r\n selectedEmployee: '='\r\n },\r\n controller: ChatPanelController,\r\n template: __webpack_require__(392)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 564 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = __webpack_require__(6);\r\nvar shifts_service_1 = __webpack_require__(18);\r\nvar moment = __webpack_require__(0);\r\nvar NavbarController = /** @class */ (function () {\r\n NavbarController.$inject = [\"ThemeService\", \"ShiftService\", \"NewsService\", \"$scope\", \"$interval\", \"SweetAlert\", \"AuthService\"];\r\n function NavbarController(ThemeService, ShiftService, NewsService, $scope, $interval, SweetAlert, AuthService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ThemeService = ThemeService;\r\n this.ShiftService = ShiftService;\r\n this.NewsService = NewsService;\r\n this.$scope = $scope;\r\n this.$interval = $interval;\r\n this.SweetAlert = SweetAlert;\r\n this.AuthService = AuthService;\r\n this.isBackoffice = false;\r\n this.isCustomer = false;\r\n this.isEmployee = false;\r\n this.$onInit = function () {\r\n _this.logo = _this.ThemeService.getLogoDark();\r\n _this.isBackoffice = _this.AuthService.hasRole('backoffice');\r\n _this.isCustomer = _this.AuthService.hasRole('customer');\r\n _this.isEmployee = _this.AuthService.hasRole('employee');\r\n _this.unreadCnt = 0;\r\n _this.getNewsCount();\r\n var theInterval = _this.$interval(function () {\r\n this.getNewsCount();\r\n }.bind(_this), 60000);\r\n };\r\n this.toggleSidebar = function () {\r\n angular.element('.app').toggleClass('offscreen move-left');\r\n };\r\n this.toggleSlider = function () {\r\n angular.element('.app').toggleClass('layout-chat-open');\r\n if (angular.element('.app').hasClass('layout-chat-open')) {\r\n _this.ShiftService.customAll('getAdHoc').then(function (result) {\r\n _this.shifts = result;\r\n });\r\n }\r\n // this.$scope.$emit('getAdHocShiftsUp', null);\r\n };\r\n this.toggleNewsSlider = function () {\r\n angular.element('.app').toggleClass('layout-news-open');\r\n if (angular.element('.app').hasClass('layout-news-open')) {\r\n _this.NewsService.all().then(function (result) {\r\n _this.news = result;\r\n });\r\n }\r\n };\r\n }\r\n NavbarController.prototype.openResetPasswordModal = function () {\r\n $('#ResetPasswordModal').modal('show');\r\n };\r\n NavbarController.prototype.showAvailModal = function () {\r\n this.currentShift = new shifts_service_1.IShift();\r\n this.currentShift.start = this.roundMinutes(new Date());\r\n this.currentShift.end = moment(this.currentShift.start).add(8, 'hour').toDate();\r\n $('#check-availability-modal').modal('show');\r\n };\r\n NavbarController.prototype.roundMinutes = function (date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n };\r\n NavbarController.prototype.getNewsCount = function () {\r\n var _this = this;\r\n if (this.isEmployee || this.isCustomer) {\r\n this.NewsService.getUnread().then(function (result) {\r\n var newitems = _this.unreadCnt < result.size;\r\n _this.unreadCnt = result.size;\r\n if (_this.unreadCnt > 0) {\r\n if (_this.unreadCnt == 1) {\r\n var text = \"Er staat \" + _this.unreadCnt + \" nieuw bericht voor je klaar.\";\r\n }\r\n else {\r\n var text = \"Er staan \" + _this.unreadCnt + \" nieuwe berichten voor je klaar.\";\r\n }\r\n if (newitems) {\r\n _this.SweetAlert.swal({\r\n title: 'Er zijn nieuwe nieuwsberichten',\r\n text: text,\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Nu lezen',\r\n cancelButtonText: 'Ik lees ze later',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.readLater = true;\r\n _this.toggleNewsSlider();\r\n }\r\n else {\r\n _this.readLater = true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n };\r\n return NavbarController;\r\n}());\r\n;\r\nexports.operandoNavbar = {\r\n bindings: {\r\n userName: '<',\r\n shifts: '=',\r\n news: '=',\r\n currentShift: '='\r\n },\r\n controller: NavbarController,\r\n template: __webpack_require__(393)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 565 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar NewsPanelController = /** @class */ (function () {\r\n NewsPanelController.$inject = [\"NewsService\", \"$state\", \"$scope\"];\r\n function NewsPanelController(NewsService, $state, $scope) {\r\n 'ngInject';\r\n this.NewsService = NewsService;\r\n this.$state = $state;\r\n this.$scope = $scope;\r\n this.$onInit = function () {\r\n };\r\n }\r\n NewsPanelController.prototype.setRead = function (id) {\r\n var _this = this;\r\n this.NewsService.customPut(id + '/read', {}).then(function (result) {\r\n _this.NewsService.getList().then(function (result) {\r\n _this.news = result.value;\r\n });\r\n });\r\n };\r\n return NewsPanelController;\r\n}());\r\nexports.newsPanelComponent = {\r\n bindings: {\r\n news: '<'\r\n },\r\n controller: NewsPanelController,\r\n template: __webpack_require__(394)\r\n};\r\n\n\n/***/ }),\n/* 566 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AccountBasicInfoController = /** @class */ (function () {\r\n AccountBasicInfoController.$inject = [\"$state\", \"EnumService\"];\r\n function AccountBasicInfoController($state, EnumService) {\r\n 'ngInject';\r\n this.$state = $state;\r\n this.EnumService = EnumService;\r\n // console.log('AccountBasicInfoController');\r\n }\r\n AccountBasicInfoController.prototype.submitAccountBasicInfo = function () {\r\n // console.log('update AccountBasicInfo');\r\n this.onUpdate({ account: this.account });\r\n $('#accountBasicInfoModal').modal('hide');\r\n };\r\n return AccountBasicInfoController;\r\n}());\r\nexports.accountBasicInfoComponent = {\r\n bindings: {\r\n type: '<',\r\n account: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: AccountBasicInfoController,\r\n template: __webpack_require__(395)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 567 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AccountsController = /** @class */ (function () {\r\n function AccountsController() {\r\n 'ngInject';\r\n // console.log('AccountsController');\r\n }\r\n return AccountsController;\r\n}());\r\nexports.accountsComponent = {\r\n controller: AccountsController,\r\n template: __webpack_require__(396)\r\n};\r\n\n\n/***/ }),\n/* 568 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar services_1 = __webpack_require__(5);\r\nvar AccountsItemController = /** @class */ (function () {\r\n AccountsItemController.$inject = [\"AccountsService\", \"NotesService\", \"TeamService\", \"$state\", \"$stateParams\", \"MasterdataService\", \"SweetAlert\", \"$filter\"];\r\n function AccountsItemController(AccountsService, NotesService, TeamService, $state, $stateParams, MasterdataService, SweetAlert, $filter) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AccountsService = AccountsService;\r\n this.NotesService = NotesService;\r\n this.TeamService = TeamService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.MasterdataService = MasterdataService;\r\n this.SweetAlert = SweetAlert;\r\n this.$filter = $filter;\r\n this.$onInit = function () {\r\n _this.activeTabIndex = 0;\r\n if (_this.$stateParams['tab']) {\r\n _this.activeTabIndex = _this.$stateParams['tab'];\r\n }\r\n if (!_this.account) {\r\n _this.account = new services_1.IAccount();\r\n _this.isNew = true;\r\n $('#accountBasicInfoModal').modal('show');\r\n }\r\n else {\r\n }\r\n _this.locations.forEach(function (location) {\r\n _this.TeamService.customAll('location/' + location.id).then(function (result) {\r\n location.teams = result;\r\n // console.log(result);\r\n });\r\n });\r\n _this.reminderIntervals = _this.reminderIntervals.reminderIntervals;\r\n _this.reminderIntervals.forEach(function (item, index) {\r\n item.index = index;\r\n });\r\n _this.MasterdataService.getItems('NoteTags').then(function (res) {\r\n _this.tags = res;\r\n });\r\n _this.filterNotes();\r\n };\r\n this.openProject = function (item, action) {\r\n _this.$state.go('project.item', { 'id': item.id });\r\n };\r\n // console.log('AccountsItemController');\r\n this.accountsService = AccountsService;\r\n this.notesService = NotesService;\r\n this.sweetAlert = SweetAlert;\r\n }\r\n AccountsItemController.prototype.filterNotes = function () {\r\n var _this = this;\r\n this.filteredNotes = this.$filter('filter')(this.notes, function (note) {\r\n if (!!_this.selectedTag) {\r\n return note.tags.indexOf(_this.selectedTag) !== -1;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n };\r\n AccountsItemController.prototype.submitAccount = function () {\r\n // console.log('update account');\r\n if (this.account.id == null) {\r\n if (this.account.name == null) {\r\n this.sweetAlert.swal('Please fill in the account name and save in order to create the account.');\r\n }\r\n else {\r\n this.saveAccount();\r\n }\r\n }\r\n else {\r\n this.accountsService.put(this.account.id, this.account);\r\n }\r\n };\r\n AccountsItemController.prototype.saveAccount = function () {\r\n var _this = this;\r\n this.accountsService.post(this.account).then(function (result) {\r\n _this.$state.go('crm.accounts.item', { 'id': result.id });\r\n });\r\n };\r\n AccountsItemController.prototype.deleteAccount = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u ' + this.account.name + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.accountsService.delete(_this.account.id).then(function () {\r\n _this.$state.go('^.list').then(function () { _this.$state.reload(); });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n AccountsItemController.prototype.editAccountBasicInfoModal = function () {\r\n $('#accountBasicInfoModal').modal('show');\r\n };\r\n AccountsItemController.prototype.editContactInfoModal = function () {\r\n $('#contactInfoModal').modal('show');\r\n };\r\n AccountsItemController.prototype.editFinancialInfoModal = function () {\r\n this.account.deliveryDay = new Date(Date.parse(this.account.deliveryDay));\r\n $('#financialInfoModal').modal('show');\r\n };\r\n AccountsItemController.prototype.updateNote = function (item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n };\r\n AccountsItemController.prototype.addNoteModal = function () {\r\n this.currentNote = null;\r\n $('#noteModal').modal('show');\r\n };\r\n AccountsItemController.prototype.updateNoteModal = function (item) {\r\n this.currentNote = item;\r\n $('#noteModal').modal('show');\r\n };\r\n AccountsItemController.prototype.submitNote = function (item) {\r\n var _this = this;\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.accountId = this.account.id;\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(function (result) {\r\n _this.notes.push(result);\r\n });\r\n }\r\n else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n $('#noteModal').modal('hide');\r\n };\r\n AccountsItemController.prototype.deleteNote = function (item) {\r\n this.notes = this.notes.filter(function (note) { return note.id !== item.id; });\r\n this.notesService.delete(item.id);\r\n };\r\n AccountsItemController.prototype.goBack = function () {\r\n window.history.go(-1);\r\n };\r\n AccountsItemController.prototype.submitReminderInterval = function (reminderInterval) {\r\n var _this = this;\r\n var itemToEdit = this.reminderIntervals.find(function (i) { return i.index === reminderInterval.index; });\r\n if (!!itemToEdit) {\r\n itemToEdit = reminderInterval;\r\n }\r\n else {\r\n reminderInterval.index = this.reminderIntervals.length;\r\n this.reminderIntervals.push(reminderInterval);\r\n }\r\n this.accountsService.customPut(this.account.id + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(function (result) {\r\n _this.currentReminderInterval = null;\r\n });\r\n };\r\n AccountsItemController.prototype.deleteReminderInterval = function (reminderInterval) {\r\n this.reminderIntervals = this.reminderIntervals.filter(function (i) { return i.index !== reminderInterval.index; });\r\n this.accountsService.customPut(this.account.id + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(function (result) {\r\n });\r\n };\r\n return AccountsItemController;\r\n}());\r\nexports.accountsItemComponent = {\r\n bindings: {\r\n account: '<',\r\n contacts: '<',\r\n notes: '<',\r\n locations: '<',\r\n agreements: '<',\r\n accountEmployees: '<',\r\n reminderIntervals: '<'\r\n },\r\n controller: AccountsItemController,\r\n template: __webpack_require__(397)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 569 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AccountsListController = /** @class */ (function () {\r\n function AccountsListController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n _this.sortType = 'name';\r\n _this.menu = 'list';\r\n };\r\n // console.log('AccountsListController');\r\n }\r\n return AccountsListController;\r\n}());\r\nexports.accountsListComponent = {\r\n bindings: {\r\n accounts: '<'\r\n },\r\n controller: AccountsListController,\r\n template: __webpack_require__(398)\r\n};\r\n\n\n/***/ }),\n/* 570 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ContactInfoController = /** @class */ (function () {\r\n ContactInfoController.$inject = [\"$state\"];\r\n function ContactInfoController($state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('ContactInfoController');\r\n }\r\n ContactInfoController.prototype.submitContactInfo = function () {\r\n // console.log('update ContactInfo');\r\n this.onUpdate({ account: this.account });\r\n $('#contactInfoModal').modal('hide');\r\n };\r\n return ContactInfoController;\r\n}());\r\nexports.contactInfoComponent = {\r\n bindings: {\r\n account: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: ContactInfoController,\r\n template: __webpack_require__(399)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 571 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar FinancialInfoController = /** @class */ (function () {\r\n FinancialInfoController.$inject = [\"$state\"];\r\n function FinancialInfoController($state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('FinancialInfoController');\r\n }\r\n FinancialInfoController.prototype.submitFinancialInfo = function () {\r\n // console.log('update FinancialInfo');\r\n this.onUpdate({ account: this.account });\r\n $('#financialInfoModal').modal('hide');\r\n };\r\n return FinancialInfoController;\r\n}());\r\nexports.financialInfoComponent = {\r\n bindings: {\r\n account: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: FinancialInfoController,\r\n template: __webpack_require__(400)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 572 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ReminderIntervalController = /** @class */ (function () {\r\n ReminderIntervalController.$inject = [\"$state\", \"$stateParams\", \"AccountsService\"];\r\n function ReminderIntervalController($state, $stateParams, AccountsService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.AccountsService = AccountsService;\r\n this.$onInit = function () {\r\n _this.reminderIntervals = _this.resolve.reminderIntervals.reminderIntervals;\r\n if (_this.$stateParams['index']) {\r\n _this.reminderInterval = _this.reminderIntervals.find(function (s) { return s.index == _this.$stateParams['index']; });\r\n }\r\n else {\r\n _this.reminderInterval = {};\r\n }\r\n };\r\n // console.log('ReminderIntervalController');\r\n }\r\n ReminderIntervalController.prototype.submit = function () {\r\n var _this = this;\r\n if (!this.reminderInterval.index) {\r\n this.reminderInterval.index = this.reminderIntervals.length;\r\n this.reminderIntervals.push(this.reminderInterval);\r\n }\r\n this.AccountsService.customPut(this.$stateParams['id'] + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(function (result) {\r\n _this.closeModal();\r\n });\r\n };\r\n ReminderIntervalController.prototype.delete = function () {\r\n var _this = this;\r\n this.reminderIntervals = this.reminderIntervals.filter(function (i) { return i.index !== _this.reminderInterval.index; });\r\n this.AccountsService.customPut(this.$stateParams['id'] + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(function (result) {\r\n _this.closeModal();\r\n });\r\n };\r\n ReminderIntervalController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 6 }, { reload: true });\r\n };\r\n return ReminderIntervalController;\r\n}());\r\nexports.reminderIntervalComponent = {\r\n bindings: {\r\n resolve: '<'\r\n },\r\n controller: ReminderIntervalController,\r\n template: __webpack_require__(401)\r\n};\r\n\n\n/***/ }),\n/* 573 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar _ = __webpack_require__(7);\r\nvar moment = __webpack_require__(0);\r\nvar AgreementsItemController = /** @class */ (function () {\r\n AgreementsItemController.$inject = [\"AgreementService\", \"$state\", \"$stateParams\"];\r\n function AgreementsItemController(AgreementService, $state, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AgreementService = AgreementService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n _this.account = _this.resolve.account;\r\n _this.employees = _this.resolve.employees;\r\n _this.salaryScales = _this.resolve.salaryScales;\r\n var agreementId = _this.$stateParams['agreementId'];\r\n if (agreementId) {\r\n _this.agreement = _.find(_this.resolve.agreements, { \"id\": agreementId });\r\n }\r\n else {\r\n _this.agreement = new index_1.IAgreement();\r\n }\r\n if (_this.agreement.employeeId) {\r\n _this.byEmployee = true;\r\n }\r\n };\r\n }\r\n AgreementsItemController.prototype.startDateBeforeRender = function ($dates) {\r\n // console.log('startDateBeforeRender');\r\n var todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0, 0, 0, 0);\r\n // $dates.filter(function (date) {\r\n // return date.utcDateValue < todaySinceMidnight.getTime();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n };\r\n AgreementsItemController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.agreement.dateTimeFrom) {\r\n var activeDate = moment(this.agreement.dateTimeFrom).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n AgreementsItemController.prototype.submitAgreement = function () {\r\n var _this = this;\r\n this.agreement.dateTimeFrom = moment(this.agreement.dateTimeFrom).format(\"YYYY-MM-DD HH:mm\");\r\n this.agreement.dateTimeTo = moment(this.agreement.dateTimeTo).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.byEmployee) {\r\n this.agreement.salaryScaleId = null;\r\n this.agreement.calculationIndex = null;\r\n }\r\n else {\r\n this.agreement.employeeId = null;\r\n this.agreement.grossHourlyWageValue = null;\r\n }\r\n if (this.agreement.id === undefined) {\r\n this.agreement.accountId = this.account.id;\r\n this.AgreementService.post(this.agreement).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.AgreementService.put(this.agreement.id, this.agreement).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n AgreementsItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.AgreementService.delete(this.agreement.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n };\r\n AgreementsItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 4 }, { reload: true });\r\n };\r\n return AgreementsItemController;\r\n}());\r\nexports.agreementsItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: AgreementsItemController,\r\n template: __webpack_require__(402)\r\n};\r\n\n\n/***/ }),\n/* 574 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AgreementsListController = /** @class */ (function () {\r\n function AgreementsListController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 12;\r\n };\r\n this.$onChanges = function () {\r\n };\r\n }\r\n AgreementsListController.prototype.parseDate = function (item) {\r\n var date = new Date(item.start);\r\n return date;\r\n };\r\n return AgreementsListController;\r\n}());\r\nexports.agreementsListComponent = {\r\n bindings: {\r\n agreements: \"<\"\r\n },\r\n controller: AgreementsListController,\r\n template: __webpack_require__(403)\r\n};\r\n\n\n/***/ }),\n/* 575 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ContactBasicInfoController = /** @class */ (function () {\r\n ContactBasicInfoController.$inject = [\"$state\", \"AccountsService\", \"LocationService\", \"MasterdataService\", \"EnumService\"];\r\n function ContactBasicInfoController($state, AccountsService, LocationService, MasterdataService, EnumService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$state = $state;\r\n this.AccountsService = AccountsService;\r\n this.LocationService = LocationService;\r\n this.MasterdataService = MasterdataService;\r\n this.EnumService = EnumService;\r\n this.$onInit = function () {\r\n _this.AccountsService.all().then(function (accounts) {\r\n _this.accounts = accounts;\r\n });\r\n if (_this.contact.accountId) {\r\n _this.getLocations();\r\n }\r\n _this.getMasterdata();\r\n };\r\n // console.log('ContactBasicInfoController');\r\n }\r\n ContactBasicInfoController.prototype.submitContactBasicInfo = function () {\r\n // console.log('update ContactBasicInfo');\r\n this.onUpdate({ contact: this.contact });\r\n $('#contactBasicInfoModal').modal('hide');\r\n };\r\n ContactBasicInfoController.prototype.accountSelected = function () {\r\n this.getLocations();\r\n };\r\n ContactBasicInfoController.prototype.getLocations = function () {\r\n var _this = this;\r\n this.AccountsService.getChild(this.contact.accountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n });\r\n };\r\n ContactBasicInfoController.prototype.getMasterdata = function () {\r\n var _this = this;\r\n this.MasterdataService.getItems('ContactTags').then(function (res) {\r\n _this.contactTags = res;\r\n });\r\n };\r\n return ContactBasicInfoController;\r\n}());\r\nexports.contactBasicInfoComponent = {\r\n bindings: {\r\n contact: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: ContactBasicInfoController,\r\n template: __webpack_require__(404)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 576 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ContactSocialController = /** @class */ (function () {\r\n ContactSocialController.$inject = [\"$state\"];\r\n function ContactSocialController($state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('ContactBasicInfoController');\r\n }\r\n ContactSocialController.prototype.submitSocialForm = function () {\r\n // console.log('update ContactBasicInfo');\r\n this.onUpdate({ contact: this.contact });\r\n $('#contactSocialModal').modal('hide');\r\n };\r\n return ContactSocialController;\r\n}());\r\nexports.contactSocialComponent = {\r\n bindings: {\r\n contact: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: ContactSocialController,\r\n template: __webpack_require__(405)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 577 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ContactsController = /** @class */ (function () {\r\n function ContactsController() {\r\n 'ngInject';\r\n // console.log('ContactsController');\r\n }\r\n return ContactsController;\r\n}());\r\nexports.contactsComponent = {\r\n controller: ContactsController,\r\n template: __webpack_require__(406)\r\n};\r\n\n\n/***/ }),\n/* 578 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = __webpack_require__(6);\r\nvar services_1 = __webpack_require__(5);\r\nvar ContactsItemController = /** @class */ (function () {\r\n ContactsItemController.$inject = [\"ContactsService\", \"NotesService\", \"AccountsService\", \"$state\", \"SweetAlert\", \"$stateParams\"];\r\n function ContactsItemController(ContactsService, NotesService, AccountsService, $state, SweetAlert, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ContactsService = ContactsService;\r\n this.NotesService = NotesService;\r\n this.AccountsService = AccountsService;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n if (_this.contact == null) {\r\n _this.contact = new services_1.IContact();\r\n _this.isNew = true;\r\n $('#contactBasicInfoModal').modal('show');\r\n if (_this.accountId) {\r\n _this.contact.accountId = _this.accountId;\r\n _this.AccountsService.get(_this.contact.accountId).then(function (account) {\r\n _this.account = account;\r\n });\r\n }\r\n }\r\n else {\r\n _this.setFullName();\r\n // console.log(this.fullName);\r\n if (_this.contact.accountId) {\r\n _this.AccountsService.get(_this.contact.accountId).then(function (account) {\r\n _this.account = account;\r\n });\r\n }\r\n }\r\n };\r\n this.setFullName = function () {\r\n _this.fullName = [_this.contact.firstName, _this.contact.middleName, _this.contact.lastName].join(' ');\r\n };\r\n // console.log('ContactsItemController');\r\n this.contactsService = ContactsService;\r\n this.notesService = NotesService;\r\n this.accountId = $stateParams['accountId'];\r\n angular.element(document).ready(function () {\r\n $('#notes-table').dataTable({\r\n \"pageLength\": 5,\r\n \"lengthChange\": false,\r\n \"searching\": false\r\n });\r\n });\r\n }\r\n ContactsItemController.prototype.submitContact = function () {\r\n var _this = this;\r\n if (this.contact.id == null) {\r\n this.saveContact();\r\n }\r\n else {\r\n this.contactsService.put(this.contact.id, this.contact).then(function (data) {\r\n _this.contact = data;\r\n _this.setFullName();\r\n });\r\n }\r\n };\r\n ContactsItemController.prototype.saveContact = function () {\r\n var _this = this;\r\n if (this.accountId) {\r\n this.contact.accountId = this.accountId;\r\n }\r\n this.contactsService.post(this.contact).then(function (result) {\r\n _this.$state.go('crm.contacts.item', { 'id': result.id }, { location: \"replace\" });\r\n });\r\n };\r\n ContactsItemController.prototype.deleteContact = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u ' + this.fullName + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.contactsService.delete(_this.contact.id).then(function () {\r\n _this.goBack();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n ContactsItemController.prototype.editContactBasicInfoModal = function () {\r\n $('#contactBasicInfoModal').modal('show');\r\n };\r\n ContactsItemController.prototype.editContactSocialModal = function () {\r\n $('#contactSocialModal').modal('show');\r\n };\r\n ContactsItemController.prototype.updateNote = function (item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n };\r\n ContactsItemController.prototype.addNoteModal = function () {\r\n this.currentNote = null;\r\n $('#noteModal').modal('show');\r\n };\r\n ContactsItemController.prototype.updateNoteModal = function (item) {\r\n this.currentNote = item;\r\n $('#noteModal').modal('show');\r\n };\r\n ContactsItemController.prototype.submitNote = function (item) {\r\n var _this = this;\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.contactId = this.contact.id;\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(function (result) {\r\n _this.notes.push(result);\r\n });\r\n }\r\n else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n $('#noteModal').modal('hide');\r\n };\r\n ContactsItemController.prototype.deleteNote = function (item) {\r\n this.notes = this.notes.filter(function (note) { return note.id !== item.id; });\r\n this.notesService.delete(item.id);\r\n };\r\n ContactsItemController.prototype.goBack = function () {\r\n window.history.go(-1);\r\n };\r\n return ContactsItemController;\r\n}());\r\nexports.contactsItemComponent = {\r\n bindings: {\r\n contact: '<',\r\n notes: '<',\r\n },\r\n controller: ContactsItemController,\r\n template: __webpack_require__(407)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 579 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ContactsListController = /** @class */ (function () {\r\n ContactsListController.$inject = [\"ContactsService\", \"MasterdataService\", \"EnumService\", \"$stateParams\"];\r\n function ContactsListController(ContactsService, MasterdataService, EnumService, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ContactsService = ContactsService;\r\n this.MasterdataService = MasterdataService;\r\n this.EnumService = EnumService;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n _this.getMasterdata();\r\n };\r\n // console.log('ContactsListController');\r\n this.contactsService = ContactsService;\r\n }\r\n ContactsListController.prototype.getMasterdata = function () {\r\n var _this = this;\r\n this.MasterdataService.getItems('ContactTags').then(function (res) {\r\n _this.contactTags = res;\r\n });\r\n };\r\n ContactsListController.prototype.emailToClipboard = function () {\r\n var _this = this;\r\n var emailsList = [];\r\n this.contacts.forEach(function (e) {\r\n if (e.emailAddress &&\r\n ((_this.search && e.name.toUpperCase().indexOf(_this.search.toUpperCase()) !== -1) || !_this.search) &&\r\n ((_this.tag && e.tags.indexOf(_this.tag) !== -1) || !_this.tag) &&\r\n ((_this.company && e.accountName.toUpperCase().indexOf(_this.company.toUpperCase()) !== -1) || !_this.company)) {\r\n emailsList.push(e.emailAddress);\r\n }\r\n });\r\n // console.log(emailsList.join(';'));\r\n window.prompt(\"Ctrl+C to copy to clipboard, then paste in the BCC field of an email:\", emailsList.join(';'));\r\n };\r\n ContactsListController.prototype.resetFilter = function () {\r\n this.company = '';\r\n this.search = '';\r\n this.tag = '';\r\n };\r\n return ContactsListController;\r\n}());\r\nexports.contactsListComponent = {\r\n bindings: {\r\n contacts: '<',\r\n accounts: '<'\r\n },\r\n controller: ContactsListController,\r\n template: __webpack_require__(408)\r\n};\r\n\n\n/***/ }),\n/* 580 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar CrmController = /** @class */ (function () {\r\n function CrmController() {\r\n 'ngInject';\r\n // console.log('CrmController');\r\n }\r\n return CrmController;\r\n}());\r\nexports.crmComponent = {\r\n controller: CrmController,\r\n template: __webpack_require__(410)\r\n};\r\n\n\n/***/ }),\n/* 581 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar CrmDashboardController = /** @class */ (function () {\r\n CrmDashboardController.$inject = [\"NotesService\", \"$state\"];\r\n function CrmDashboardController(NotesService, $state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('AccountsItemController');\r\n this.notesService = NotesService;\r\n this.sortType = 'name';\r\n this.sortTypeContacts = 'lastName';\r\n }\r\n CrmDashboardController.prototype.updateNote = function (item, action) {\r\n switch (action) {\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n };\r\n CrmDashboardController.prototype.updateNoteModal = function (item) {\r\n this.currentNote = item;\r\n $('#noteModal').modal('show');\r\n };\r\n CrmDashboardController.prototype.submitNote = function (item) {\r\n var _this = this;\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(function (result) {\r\n _this.notes.push(result);\r\n });\r\n }\r\n else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n $('#noteModal').modal('hide');\r\n };\r\n CrmDashboardController.prototype.deleteNote = function (item) {\r\n this.notes = this.notes.filter(function (note) { return note.id !== item.id; });\r\n this.notesService.delete(item.id);\r\n };\r\n return CrmDashboardController;\r\n}());\r\nexports.crmDashboardComponent = {\r\n bindings: {\r\n accounts: '<',\r\n contacts: '<',\r\n summary: '<',\r\n notes: '<'\r\n },\r\n controller: CrmDashboardController,\r\n template: __webpack_require__(409)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 582 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.crmState = {\r\n parent: \"app\",\r\n name: \"crm\",\r\n url: \"/crm\",\r\n redirectTo: \"crm.dashboard\",\r\n component: \"crmComponent\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.crmDashboardState = {\r\n name: \"crm.dashboard\",\r\n url: \"/dashboard\",\r\n resolve: {\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n 'ngInject';\r\n return AccountsService.all();\r\n }],\r\n contacts: [\"ContactsService\", function (ContactsService) {\r\n 'ngInject';\r\n return ContactsService.all();\r\n }],\r\n summary: [\"DashboardService\", function (DashboardService) {\r\n 'ngInject';\r\n return DashboardService.one();\r\n }],\r\n notes: [\"NotesService\", function (NotesService) {\r\n 'ngInject';\r\n return NotesService.all({ sortfield: 'date' });\r\n }],\r\n },\r\n views: {\r\n \"main\": 'crmDashboardComponent'\r\n }\r\n};\r\nexports.accountsState = {\r\n name: \"crm.accounts\",\r\n url: \"/accounts\",\r\n redirectTo: \"crm.accounts.list\",\r\n views: {\r\n \"main\": \"accountsComponent\"\r\n }\r\n};\r\nexports.accountsListState = {\r\n name: \"crm.accounts.list\",\r\n url: \"/list\",\r\n resolve: {\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n 'ngInject';\r\n return AccountsService.all();\r\n }],\r\n },\r\n views: {\r\n \"main\": 'accountsListComponent'\r\n }\r\n};\r\nexports.accountsItemState = {\r\n name: \"crm.accounts.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"tab\": null\r\n },\r\n resolve: {\r\n account: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.get($stateParams['id']);\r\n }\r\n }],\r\n contacts: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.getChild($stateParams['id'], 'contacts');\r\n }\r\n }],\r\n notes: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.getChild($stateParams['id'], 'notes');\r\n }\r\n }],\r\n locations: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.getChild($stateParams['id'], 'locations');\r\n }\r\n }],\r\n agreements: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.customGet($stateParams['id'] + '/agreements');\r\n }\r\n }],\r\n accountEmployees: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.customGet($stateParams['id'] + '/employees');\r\n }\r\n }],\r\n reminderIntervals: [\"AccountsService\", \"$stateParams\", function (AccountsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return AccountsService.customGet($stateParams['id'] + '/nomatchfoundemailsettings');\r\n }\r\n }],\r\n },\r\n views: {\r\n \"main\": 'accountsItemComponent'\r\n }\r\n};\r\nexports.locationsItemState = {\r\n name: \"crm.accounts.item.location\",\r\n url: \"/location/:locationId\",\r\n params: {\r\n \"locationId\": null\r\n },\r\n modal: ['account', 'locations'],\r\n resolve: {},\r\n component: 'locationsItemComponent'\r\n};\r\nexports.teamsItemState = {\r\n name: \"crm.accounts.item.team\",\r\n url: \"/team/:locationId/:teamId\",\r\n params: {\r\n \"locationId\": null,\r\n \"teamId\": null\r\n },\r\n modal: ['locations', 'contacts'],\r\n resolve: {},\r\n component: 'teamsItemComponent'\r\n};\r\nexports.agreementsItemState = {\r\n name: \"crm.accounts.item.agreement\",\r\n url: \"/agreement/:agreementId\",\r\n params: {\r\n \"agreementId\": null\r\n },\r\n modal: ['account', 'agreements'],\r\n resolve: {\r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n salaryScales: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('WageCodes');\r\n }]\r\n },\r\n component: 'agreementsItemComponent'\r\n};\r\nexports.accountEmployeesItemState = {\r\n name: \"crm.accounts.item.employee\",\r\n url: \"/employee/:accountEmployeeId\",\r\n params: {\r\n \"accountEmployeeId\": null\r\n },\r\n modal: ['account', 'accountEmployees'],\r\n resolve: {\r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.getEmployeesByStatus();\r\n }]\r\n },\r\n component: 'accountEmployeesItemComponent'\r\n};\r\nexports.contactsState = {\r\n name: \"crm.contacts\",\r\n url: \"/contacts\",\r\n redirectTo: \"crm.contacts.list\",\r\n views: {\r\n \"main\": \"contactsComponent\"\r\n }\r\n};\r\nexports.contactsListState = {\r\n name: \"crm.contacts.list\",\r\n url: \"/list\",\r\n params: {\r\n accountId: null,\r\n },\r\n resolve: {\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n 'ngInject';\r\n return AccountsService.all();\r\n }],\r\n contacts: [\"ContactsService\", function (ContactsService) {\r\n 'ngInject';\r\n return ContactsService.all();\r\n }],\r\n },\r\n views: {\r\n \"main\": 'contactsListComponent'\r\n }\r\n};\r\nexports.contactsItemState = {\r\n name: \"crm.contacts.item\",\r\n url: \"/:id\",\r\n params: {\r\n accountId: null,\r\n },\r\n resolve: {\r\n contact: [\"ContactsService\", \"$stateParams\", function (ContactsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ContactsService.get($stateParams['id']);\r\n }\r\n }],\r\n notes: [\"ContactsService\", \"$stateParams\", function (ContactsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return ContactsService.getChild($stateParams['id'], 'notes');\r\n }\r\n }],\r\n },\r\n views: {\r\n \"main\": 'contactsItemComponent'\r\n }\r\n};\r\nexports.leadsState = {\r\n name: \"crm.leads\",\r\n url: \"/leads\",\r\n redirectTo: \"crm.leads.list\",\r\n views: {\r\n \"main\": \"leadsComponent\"\r\n }\r\n};\r\nexports.leadsListState = {\r\n name: \"crm.leads.list\",\r\n url: \"/list\",\r\n resolve: {\r\n leads: [\"LeadsService\", function (LeadsService) {\r\n 'ngInject';\r\n return LeadsService.all();\r\n }]\r\n },\r\n views: {\r\n \"main\": 'leadsListComponent'\r\n }\r\n};\r\nexports.leadsItemState = {\r\n name: \"crm.leads.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n lead: [\"LeadsService\", \"$stateParams\", function (LeadsService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n return LeadsService.get($stateParams['id']);\r\n }\r\n }]\r\n },\r\n views: {\r\n \"main\": 'leadsItemComponent'\r\n }\r\n};\r\nexports.reminderItemState = {\r\n name: \"crm.accounts.item.reminder\",\r\n url: \"/reminder/:index\",\r\n params: {\r\n \"index\": null\r\n },\r\n modal: ['reminderIntervals'],\r\n resolve: {},\r\n component: 'reminderIntervalComponent'\r\n};\r\n\n\n/***/ }),\n/* 583 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar _ = __webpack_require__(7);\r\nvar moment = __webpack_require__(0);\r\nvar AccountEmployeesItemController = /** @class */ (function () {\r\n AccountEmployeesItemController.$inject = [\"$state\", \"$stateParams\", \"AccountEmployeeService\"];\r\n function AccountEmployeesItemController($state, $stateParams, AccountEmployeeService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.AccountEmployeeService = AccountEmployeeService;\r\n this.$onInit = function () {\r\n _this.account = _this.resolve.account;\r\n _this.employees = _this.resolve.employees;\r\n _this.accountEmployees = _this.resolve.accountEmployees;\r\n var accountEmployeeId = _this.$stateParams['accountEmployeeId'];\r\n if (accountEmployeeId) {\r\n _this.accountEmployee = _.find(_this.resolve.accountEmployees, { \"id\": accountEmployeeId });\r\n }\r\n else {\r\n _this.accountEmployee = {};\r\n // console.log('new accountEmployee');\r\n }\r\n };\r\n }\r\n AccountEmployeesItemController.prototype.endDateBeforeRender = function ($dates) {\r\n // console.log('endDateBeforeRender');\r\n var todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0, 0, 0, 0);\r\n // console.log($dates);\r\n // $dates.filter(function (date) {\r\n // return date.utcDateValue < todaySinceMidnight.getTime();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n };\r\n AccountEmployeesItemController.prototype.submitAccountEmployee = function () {\r\n var _this = this;\r\n this.accountEmployee.dateTimeTo = moment(this.accountEmployee.dateTimeTo).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.accountEmployee.id === undefined) {\r\n this.accountEmployee.accountId = this.account.id;\r\n this.AccountEmployeeService.post(this.accountEmployee).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.AccountEmployeeService.put(this.accountEmployee.id, this.accountEmployee).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n AccountEmployeesItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.AccountEmployeeService.delete(this.accountEmployee.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n };\r\n AccountEmployeesItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 5 }, { reload: true });\r\n };\r\n return AccountEmployeesItemController;\r\n}());\r\nexports.accountEmployeesItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: AccountEmployeesItemController,\r\n template: __webpack_require__(411)\r\n};\r\n\n\n/***/ }),\n/* 584 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AccountEmployeesListController = /** @class */ (function () {\r\n function AccountEmployeesListController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 12;\r\n };\r\n }\r\n AccountEmployeesListController.prototype.parseDate = function (item) {\r\n var date = new Date(item.start);\r\n return date;\r\n };\r\n return AccountEmployeesListController;\r\n}());\r\nexports.accountEmployeesListComponent = {\r\n bindings: {\r\n accountEmployees: \"<\"\r\n },\r\n controller: AccountEmployeesListController,\r\n template: __webpack_require__(412)\r\n};\r\n\n\n/***/ }),\n/* 585 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar agreements_item_component_1 = __webpack_require__(573);\r\nvar agreements_list_component_1 = __webpack_require__(574);\r\nvar agreements_service_1 = __webpack_require__(261);\r\nvar team_service_1 = __webpack_require__(267);\r\nvar services_1 = __webpack_require__(5);\r\nvar contactSocialModal_component_1 = __webpack_require__(576);\r\nvar leadsInfoModal_component_1 = __webpack_require__(589);\r\nvar contactBasicInfoModal_component_1 = __webpack_require__(575);\r\nvar financialInfoModal_component_1 = __webpack_require__(571);\r\nvar contactInfoModal_component_1 = __webpack_require__(570);\r\nvar accountBasicInfoModal_component_1 = __webpack_require__(566);\r\nvar note_component_1 = __webpack_require__(592);\r\nvar leads_item_component_1 = __webpack_require__(587);\r\nvar leads_list_component_1 = __webpack_require__(588);\r\nvar leads_component_1 = __webpack_require__(586);\r\nvar crm_dashboard_component_1 = __webpack_require__(581);\r\nvar contacts_item_component_1 = __webpack_require__(578);\r\nvar contacts_list_component_1 = __webpack_require__(579);\r\nvar contacts_component_1 = __webpack_require__(577);\r\nvar accounts_item_component_1 = __webpack_require__(568);\r\nvar accounts_list_component_1 = __webpack_require__(569);\r\nvar accounts_component_1 = __webpack_require__(567);\r\nvar crm_component_1 = __webpack_require__(580);\r\nvar crm_states_1 = __webpack_require__(582);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar list_component_1 = __webpack_require__(669);\r\nvar locations_list_component_1 = __webpack_require__(591);\r\nvar locations_item_component_1 = __webpack_require__(590);\r\nvar teams_list_component_1 = __webpack_require__(594);\r\nvar teams_item_component_1 = __webpack_require__(593);\r\nvar user_account_component_1 = __webpack_require__(671);\r\nvar employees_list_component_1 = __webpack_require__(584);\r\nvar employees_item_component_1 = __webpack_require__(583);\r\nvar accountEmployee_service_1 = __webpack_require__(710);\r\nvar reminderIntervalModal_component_1 = __webpack_require__(572);\r\nvar crmAppModule = {\r\n components: {\r\n crmComponent: crm_component_1.crmComponent, crmDashboardComponent: crm_dashboard_component_1.crmDashboardComponent,\r\n accountsComponent: accounts_component_1.accountsComponent, accountsListComponent: accounts_list_component_1.accountsListComponent, accountsItemComponent: accounts_item_component_1.accountsItemComponent,\r\n accountBasicInfoComponent: accountBasicInfoModal_component_1.accountBasicInfoComponent, contactInfoComponent: contactInfoModal_component_1.contactInfoComponent, financialInfoComponent: financialInfoModal_component_1.financialInfoComponent,\r\n contactsComponent: contacts_component_1.contactsComponent, contactsListComponent: contacts_list_component_1.contactsListComponent, contactsItemComponent: contacts_item_component_1.contactsItemComponent,\r\n contactBasicInfoComponent: contactBasicInfoModal_component_1.contactBasicInfoComponent,\r\n leadsComponent: leads_component_1.leadsComponent, leadsListComponent: leads_list_component_1.leadsListComponent, leadsItemComponent: leads_item_component_1.leadsItemComponent,\r\n crmNoteComponent: note_component_1.crmNoteComponent, leadsInfoComponent: leadsInfoModal_component_1.leadsInfoComponent, contactSocialComponent: contactSocialModal_component_1.contactSocialComponent,\r\n listComponent: list_component_1.listComponent, locationsListComponent: locations_list_component_1.locationsListComponent, locationsItemComponent: locations_item_component_1.locationsItemComponent,\r\n teamsListComponent: teams_list_component_1.teamsListComponent, teamsItemComponent: teams_item_component_1.teamsItemComponent, userAccountComponent: user_account_component_1.userAccountComponent,\r\n agreementsListComponent: agreements_list_component_1.agreementsListComponent, agreementsItemComponent: agreements_item_component_1.agreementsItemComponent,\r\n accountEmployeesListComponent: employees_list_component_1.accountEmployeesListComponent, accountEmployeesItemComponent: employees_item_component_1.accountEmployeesItemComponent,\r\n reminderIntervalComponent: reminderIntervalModal_component_1.reminderIntervalComponent\r\n },\r\n states: [crm_states_1.crmState, crm_states_1.crmDashboardState,\r\n crm_states_1.accountsState, crm_states_1.accountsListState, crm_states_1.accountsItemState,\r\n crm_states_1.contactsState, crm_states_1.contactsListState, crm_states_1.contactsItemState,\r\n crm_states_1.leadsState, crm_states_1.leadsListState, crm_states_1.leadsItemState,\r\n crm_states_1.locationsItemState, crm_states_1.teamsItemState, crm_states_1.agreementsItemState, crm_states_1.accountEmployeesItemState,\r\n crm_states_1.reminderItemState],\r\n services: { ContactsService: services_1.ContactsService, DashboardService: services_1.DashboardService, AccountsService: services_1.AccountsService, NotesService: services_1.NotesService, TasksService: services_1.TasksService, LeadsService: services_1.LeadsService, TeamService: team_service_1.TeamService, AgreementService: agreements_service_1.AgreementService, AccountEmployeeService: accountEmployee_service_1.AccountEmployeeService }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, crmAppModule);\r\n\n\n/***/ }),\n/* 586 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LeadsController = /** @class */ (function () {\r\n function LeadsController() {\r\n 'ngInject';\r\n // console.log('LeadsController');\r\n }\r\n return LeadsController;\r\n}());\r\nexports.leadsComponent = {\r\n controller: LeadsController,\r\n template: __webpack_require__(413)\r\n};\r\n\n\n/***/ }),\n/* 587 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LeadsItemController = /** @class */ (function () {\r\n LeadsItemController.$inject = [\"LeadsService\", \"$state\"];\r\n function LeadsItemController(LeadsService, $state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('LeadsItemController');\r\n this.leadsService = LeadsService;\r\n }\r\n LeadsItemController.prototype.submitLead = function () {\r\n // console.log('update lead');\r\n if (this.lead.id == null) {\r\n this.saveLead();\r\n }\r\n else {\r\n this.leadsService.put(this.lead.id, this.lead);\r\n }\r\n };\r\n LeadsItemController.prototype.saveLead = function () {\r\n var _this = this;\r\n this.leadsService.post(this.lead).then(function (result) {\r\n _this.$state.go('crm.leads.item', { 'id': result.id });\r\n });\r\n };\r\n LeadsItemController.prototype.deleteLead = function () {\r\n var _this = this;\r\n // console.log('delete lead');\r\n this.leadsService.delete(this.lead.id);\r\n this.$state.go('^.list').then(function () { _this.$state.reload(); });\r\n };\r\n return LeadsItemController;\r\n}());\r\nexports.leadsItemComponent = {\r\n bindings: {\r\n lead: '<'\r\n },\r\n controller: LeadsItemController,\r\n template: __webpack_require__(414)\r\n};\r\n\n\n/***/ }),\n/* 588 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LeadsListController = /** @class */ (function () {\r\n LeadsListController.$inject = [\"LeadsService\"];\r\n function LeadsListController(LeadsService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.LeadsService = LeadsService;\r\n this.submitLead = function () {\r\n _this.LeadsService.all().then(function (leads) {\r\n _this.leads = leads;\r\n });\r\n };\r\n }\r\n return LeadsListController;\r\n}());\r\n;\r\nexports.leadsListComponent = {\r\n bindings: {\r\n leads: '<'\r\n },\r\n controller: LeadsListController,\r\n template: __webpack_require__(415)\r\n};\r\n\n\n/***/ }),\n/* 589 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LeadsInfoController = /** @class */ (function () {\r\n LeadsInfoController.$inject = [\"LeadsService\", \"$state\"];\r\n function LeadsInfoController(LeadsService, $state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('LeadsInfoController');\r\n this.leadsService = LeadsService;\r\n }\r\n LeadsInfoController.prototype.submitLead = function () {\r\n // console.log('update lead');\r\n if (this.lead.id == null) {\r\n this.saveLead();\r\n }\r\n else {\r\n this.leadsService.put(this.lead.id, this.lead);\r\n }\r\n };\r\n LeadsInfoController.prototype.saveLead = function () {\r\n var _this = this;\r\n this.leadsService.post(this.lead).then(function (result) {\r\n _this.onUpdate();\r\n $('#leadsModal').modal('hide');\r\n //this.$state.go('crm.leads.list').then(() => { this.$state.reload(); });\r\n });\r\n };\r\n LeadsInfoController.prototype.deleteLead = function () {\r\n var _this = this;\r\n // console.log('delete lead');\r\n this.leadsService.delete(this.lead.id);\r\n this.$state.go('^.list').then(function () { _this.$state.reload(); });\r\n };\r\n return LeadsInfoController;\r\n}());\r\nexports.leadsInfoComponent = {\r\n bindings: {\r\n lead: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: LeadsInfoController,\r\n template: __webpack_require__(416)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 590 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar _ = __webpack_require__(7);\r\nvar LocationsItemController = /** @class */ (function () {\r\n LocationsItemController.$inject = [\"LocationService\", \"$state\", \"$stateParams\", \"SweetAlert\"];\r\n function LocationsItemController(LocationService, $state, $stateParams, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.LocationService = LocationService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n _this.account = _this.resolve.account;\r\n var locationId = _this.$stateParams['locationId'];\r\n if (locationId != '') {\r\n _this.location = _.find(_this.resolve.locations, { 'id': locationId });\r\n }\r\n else {\r\n _this.location = new index_1.ILocation();\r\n }\r\n };\r\n }\r\n LocationsItemController.prototype.submitLocation = function () {\r\n var _this = this;\r\n if (this.location.id === undefined) {\r\n this.location.accountId = this.account.id;\r\n this.LocationService.post(this.location).then(function (data) {\r\n _this.closeModal();\r\n });\r\n // this.locations.push(this.location);\r\n }\r\n else {\r\n this.LocationService.put(this.location.id, this.location).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n LocationsItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u ' + this.location.name + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.LocationService.delete(_this.location.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n LocationsItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 3 }, { reload: true });\r\n };\r\n return LocationsItemController;\r\n}());\r\nexports.locationsItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: LocationsItemController,\r\n template: __webpack_require__(417)\r\n};\r\n\n\n/***/ }),\n/* 591 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LocationsListController = /** @class */ (function () {\r\n function LocationsListController() {\r\n 'ngInject';\r\n this.$onInit = function () {\r\n };\r\n this.$onChanges = function () {\r\n };\r\n }\r\n return LocationsListController;\r\n}());\r\nexports.locationsListComponent = {\r\n bindings: {\r\n locations: \"<\"\r\n },\r\n controller: LocationsListController,\r\n template: __webpack_require__(418)\r\n};\r\n\n\n/***/ }),\n/* 592 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar NoteController = /** @class */ (function () {\r\n NoteController.$inject = [\"MasterdataService\", \"$state\", \"NotesService\"];\r\n function NoteController(MasterdataService, $state, NotesService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.MasterdataService = MasterdataService;\r\n this.$state = $state;\r\n this.NotesService = NotesService;\r\n this.$onInit = function () {\r\n _this.MasterdataService.getItems('NoteTags').then(function (res) {\r\n _this.tags = res;\r\n });\r\n };\r\n }\r\n NoteController.prototype.focusInput = function () {\r\n document.getElementById('input').focus();\r\n };\r\n NoteController.prototype.submitNote = function () {\r\n this.note.endDate = moment(this.note.endDate).format(\"YYYY-MM-DD HH:mm\");\r\n this.onUpdate({ note: this.note });\r\n };\r\n NoteController.prototype.endDateBeforeRender = function ($dates) {\r\n var todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0, 0, 0, 0);\r\n };\r\n return NoteController;\r\n}());\r\nexports.crmNoteComponent = {\r\n bindings: {\r\n note: '<',\r\n onUpdate: \"&\",\r\n },\r\n controller: NoteController,\r\n template: __webpack_require__(419)\r\n};\r\n\n\n/***/ }),\n/* 593 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar _ = __webpack_require__(7);\r\nvar TeamsItemController = /** @class */ (function () {\r\n TeamsItemController.$inject = [\"TeamService\", \"$state\", \"$stateParams\", \"$timeout\", \"SweetAlert\"];\r\n function TeamsItemController(TeamService, $state, $stateParams, $timeout, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.TeamService = TeamService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.$timeout = $timeout;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n _this.contacts = _this.resolve.contacts;\r\n var locationId = _this.$stateParams['locationId'];\r\n var teamId = _this.$stateParams['teamId'];\r\n _this.location = _.find(_this.resolve.locations, { 'id': locationId });\r\n _this.$timeout(function () {\r\n if (teamId != '') {\r\n _this.TeamService.get(teamId).then(function (result) {\r\n _this.team = result;\r\n });\r\n // this.team = _.find(this.location.teams, { 'id': teamId });\r\n }\r\n else {\r\n _this.team = new index_1.ITeam();\r\n }\r\n // console.log(this.location);\r\n // console.log(this.location.teams);\r\n // console.log(teamId);\r\n });\r\n };\r\n }\r\n TeamsItemController.prototype.submitTeam = function () {\r\n var _this = this;\r\n if (this.team.id === undefined) {\r\n this.team.locationId = this.location.id.toString();\r\n this.TeamService.post(this.team).then(function (data) {\r\n _this.closeModal();\r\n });\r\n // this.teams.push(this.team);\r\n }\r\n else {\r\n this.TeamService.put(this.team.id, this.team).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n TeamsItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u ' + this.team.name + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.TeamService.delete(_this.team.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n TeamsItemController.prototype.addContact = function () {\r\n var _this = this;\r\n // console.log(this.newContact);\r\n var teamContact = { teamId: this.team.id, contactId: this.newContact.id };\r\n this.TeamService.postChild(teamContact, this.team.id, 'teamContacts').then(function (result) {\r\n _this.$state.go('.', { tab: 2 }, { reload: true });\r\n // teamContact = result;\r\n // teamContact.contactName = this.newContact.name;\r\n // this.team.teamContacts.push(teamContact);\r\n });\r\n };\r\n TeamsItemController.prototype.deleteContact = function (event, item) {\r\n var _this = this;\r\n event.stopPropagation();\r\n this.TeamService.deleteChild(item.id, this.team.id, 'teamContacts').then(function () {\r\n _this.$state.go('.', { tab: 2 }, { reload: true });\r\n // this.team.teamContacts = this.team.teamContacts.filter(tc => tc.id != item.id);\r\n });\r\n };\r\n TeamsItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 3 }, { reload: true });\r\n };\r\n TeamsItemController.prototype.copyGuid = function () {\r\n window.navigator['clipboard'].writeText(this.team.id.toString());\r\n alert(\"De Guid van \" + this.team.name + \"is gekopieerd\");\r\n };\r\n return TeamsItemController;\r\n}());\r\nexports.teamsItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: TeamsItemController,\r\n template: __webpack_require__(420)\r\n};\r\n\n\n/***/ }),\n/* 594 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TeamsListController = /** @class */ (function () {\r\n function TeamsListController() {\r\n 'ngInject';\r\n this.$onInit = function () {\r\n };\r\n this.$onChanges = function () {\r\n };\r\n }\r\n return TeamsListController;\r\n}());\r\nexports.teamsListComponent = {\r\n bindings: {\r\n teams: \"<\",\r\n locationId: \"<\"\r\n },\r\n controller: TeamsListController,\r\n template: __webpack_require__(421)\r\n};\r\n\n\n/***/ }),\n/* 595 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar shift_component_1 = __webpack_require__(597);\r\nvar shift_calendar_component_1 = __webpack_require__(596);\r\nvar shift_states_1 = __webpack_require__(598);\r\nvar applicationsAppModule = {\r\n components: { customerShiftComponent: shift_component_1.customerShiftComponent, customerShiftCalendarComponent: shift_calendar_component_1.customerShiftCalendarComponent },\r\n states: [shift_states_1.customerShiftState, shift_states_1.customerShiftCalendarState, shift_states_1.customerShiftCalendarItemState, shift_states_1.customerShiftListState, shift_states_1.customerShiftListItemState],\r\n services: {}\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, applicationsAppModule);\r\n\n\n/***/ }),\n/* 596 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar calendar_service_1 = __webpack_require__(17);\r\nvar moment = __webpack_require__(0);\r\nvar ShiftCalendarController = /** @class */ (function () {\r\n ShiftCalendarController.$inject = [\"ShiftService\", \"CalendarService\", \"$state\", \"uiCalendarConfig\", \"$scope\", \"$compile\", \"$sce\"];\r\n function ShiftCalendarController(ShiftService, CalendarService, $state, uiCalendarConfig, $scope, $compile, $sce) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.CalendarService = CalendarService;\r\n this.$state = $state;\r\n this.uiCalendarConfig = uiCalendarConfig;\r\n this.$scope = $scope;\r\n this.$compile = $compile;\r\n this.$sce = $sce;\r\n this.eventSources = [];\r\n this.$onInit = function () {\r\n // console.log('Customer ShiftCalendarController');\r\n _this.eventSources = [_this.getEvents];\r\n _this.uiConfig = {\r\n calendar: {\r\n height: 700,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: true,\r\n axisFormat: 'h:mm',\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: true,\r\n eventClick: _this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: _this.eventRender\r\n }\r\n };\r\n _this.ShiftService.subscribe('ShiftCalendarController', function (type) {\r\n var newShift;\r\n var calendarItem;\r\n switch (type) {\r\n case 'post': {\r\n newShift = _this.ShiftService.item;\r\n calendarItem = new calendar_service_1.ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n _this.shifts.push(calendarItem);\r\n break;\r\n }\r\n case 'put': {\r\n _this.shifts = _this.shifts.filter(function (s) { return s.shift.id !== newShift.id; });\r\n if (_this.ShiftService.item.status !== 99) {\r\n newShift = _this.ShiftService.item;\r\n calendarItem = new calendar_service_1.ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n _this.shifts.push(calendarItem);\r\n }\r\n break;\r\n }\r\n case 'delete': {\r\n _this.shifts = _this.shifts.filter(function (s) { return s.shift.id !== _this.ShiftService.itemId; });\r\n break;\r\n }\r\n }\r\n _this.uiCalendarConfig.calendars['shiftsCalendar'].fullCalendar('refetchEvents');\r\n });\r\n };\r\n this.openItem = function (event) {\r\n //this.$state.go('.item', { 'id': event.shift.id });\r\n _this.$state.go('customerShifts.list.item', { 'id': event.shift.id, 'start': event.shift.start });\r\n };\r\n // private eventRender = (event, element, view) => {\r\n // element.attr({\r\n // 'uib-tooltip': event.title,\r\n // 'tooltip-append-to-body': true\r\n // });\r\n // if (moment().isBefore(event.start)) {\r\n // element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor });\r\n // } else {\r\n // element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor, 'opacity': 0.7 });\r\n // }\r\n // this.$compile(element)(this.$scope);\r\n // }\r\n this.eventRender = function (event, element, view) {\r\n // var status : any = _.find(this.statuses, {code: event.status.toString()});\r\n // var statusName = status ? status.name : \"\";\r\n // var eventTitle = event.title + \" - \" + event.shift.teamName + \"
\" + statusName + \"\";\r\n var color = event.statusColor;\r\n if (moment().isBefore(event.start)) {\r\n element.css({ 'background-color': color, 'border-color': color });\r\n }\r\n else {\r\n element.css({ 'background-color': color, 'border-color': color, 'opacity': 0.7 });\r\n }\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'tooltip-append-to-body': true\r\n });\r\n // element.tooltip({container: \"body\", title: eventTitle, placement: \"top\", html:true }); \r\n // var title = element.find('.fc-title, .fc-list-item-title'); \r\n // title.html(eventTitle);\r\n _this.$compile(element)(_this.$scope);\r\n };\r\n this.getEvents = function (start, end, timezone, callback) {\r\n _this.CalendarService.all({ 'start': start.toDate(), 'end': end.toDate() }).then(function (events) {\r\n _this.shifts = events;\r\n var employeeName;\r\n _this.shifts.forEach(function (s) {\r\n employeeName = s.shift.employeeDisplayName || '-';\r\n s.title = s.title + '\\n' + employeeName;\r\n });\r\n callback(events);\r\n });\r\n };\r\n this.$onDestroy = function () {\r\n _this.ShiftService.unsubscribe('ShiftCalendarController');\r\n };\r\n }\r\n ShiftCalendarController.prototype.statuses = function (arg0, arg1) {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n return ShiftCalendarController;\r\n}());\r\nexports.customerShiftCalendarComponent = {\r\n controller: ShiftCalendarController,\r\n bindings: {\r\n statuses: \"<\"\r\n },\r\n template: __webpack_require__(422)\r\n};\r\n\n\n/***/ }),\n/* 597 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ShiftController = /** @class */ (function () {\r\n function ShiftController() {\r\n 'ngInject';\r\n }\r\n return ShiftController;\r\n}());\r\nexports.customerShiftComponent = {\r\n controller: ShiftController,\r\n template: __webpack_require__(423)\r\n};\r\n\n\n/***/ }),\n/* 598 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.customerShiftState = {\r\n parent: 'app',\r\n name: \"customerShifts\",\r\n url: \"/customerShifts\",\r\n component: 'customerShiftComponent',\r\n redirectTo: 'customerShifts.calendar',\r\n data: {\r\n permissions: {\r\n only: ['CUSTOMER'],\r\n redirectTo: 'shifts'\r\n }\r\n }\r\n};\r\nexports.customerShiftCalendarState = {\r\n name: \"customerShifts.calendar\",\r\n url: \"/calendar\",\r\n resolve: {\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }]\r\n },\r\n views: {\r\n \"main\": 'customerShiftCalendarComponent'\r\n }\r\n};\r\nexports.customerShiftCalendarItemState = {\r\n name: \"customerShifts.calendar.item\",\r\n url: \"/item/:id\",\r\n modal: true,\r\n size: \"lg\",\r\n component: 'shiftItemComponent',\r\n resolve: {\r\n shift: [\"ShiftService\", \"$stateParams\", function (ShiftService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n employees: [\"AccountsService\", \"AuthService\", function (AccountsService, AuthService) {\r\n 'ngInject';\r\n return AccountsService.customGet('employees');\r\n }],\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }]\r\n }\r\n};\r\nexports.customerShiftListState = {\r\n name: \"customerShifts.list\",\r\n url: \"/list\",\r\n views: {\r\n \"main\": 'shiftListComponent'\r\n },\r\n resolve: {\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n \"ngInject\";\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n },\r\n data: {\r\n contentClasses: 'no-padding'\r\n }\r\n};\r\nexports.customerShiftListItemState = {\r\n name: \"customerShifts.list.item\",\r\n url: \"/item/:id\",\r\n resolve: {\r\n shift: [\"ShiftService\", \"$stateParams\", function (ShiftService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n }],\r\n },\r\n views: {\r\n \"shiflistitem@customerShifts.list\": 'shiftListItemComponent'\r\n },\r\n};\r\n\n\n/***/ }),\n/* 599 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DashboardAvailableEmployeesController = /** @class */ (function () {\r\n DashboardAvailableEmployeesController.$inject = [\"EmployeeAvailabilityService\"];\r\n function DashboardAvailableEmployeesController(EmployeeAvailabilityService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.EmployeeAvailabilityService = EmployeeAvailabilityService;\r\n this.$onInit = function () {\r\n _this.getEmployeeAvailability();\r\n };\r\n this.getEmployeeAvailability = function () {\r\n var params = {\r\n limit: 10,\r\n sortfield: 'createdOn',\r\n sortorder: 'desc'\r\n };\r\n _this.EmployeeAvailabilityService.all(params).then(function (employeeAvailability) {\r\n _this.employeeAvailability = employeeAvailability;\r\n });\r\n };\r\n }\r\n return DashboardAvailableEmployeesController;\r\n}());\r\nexports.dashboardAvailableEmployeesComponent = {\r\n controller: DashboardAvailableEmployeesController,\r\n template: __webpack_require__(424)\r\n};\r\n\n\n/***/ }),\n/* 600 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar DashboardBirthdayController = /** @class */ (function () {\r\n DashboardBirthdayController.$inject = [\"EmployeesService\"];\r\n function DashboardBirthdayController(EmployeesService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$onInit = function () {\r\n _this.getEmployees();\r\n };\r\n this.getEmployees = function () {\r\n _this.EmployeesService.getEmployeesByStatus().then(function (employees) {\r\n _this.employees = employees;\r\n var now = moment();\r\n var currentYear = moment().year();\r\n _this.employees.forEach(function (employee) {\r\n var b = moment(employee.birthday).year(currentYear);\r\n if (moment().isAfter(b)) {\r\n employee.birthday = moment(employee.birthday).year(currentYear + 1).format('YYYY-MM-DD');\r\n }\r\n else {\r\n employee.birthday = moment(employee.birthday).year(currentYear).format('YYYY-MM-DD');\r\n }\r\n });\r\n _this.employees = _.remove(_this.employees, function (value, index) {\r\n if (value.displayName) {\r\n return value.displayName.length;\r\n }\r\n });\r\n _this.employees = _.orderBy(_this.employees, ['birthday'], ['asc']);\r\n });\r\n };\r\n }\r\n return DashboardBirthdayController;\r\n}());\r\nexports.dashboardBirthdayComponent = {\r\n controller: DashboardBirthdayController,\r\n template: __webpack_require__(425)\r\n};\r\n\n\n/***/ }),\n/* 601 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DashboardController = /** @class */ (function () {\r\n function DashboardController() {\r\n \"ngInject\";\r\n this.$onInit = function () {\r\n // console.log('DashboardController');\r\n };\r\n }\r\n return DashboardController;\r\n}());\r\nexports.dashboard = {\r\n controller: DashboardController,\r\n template: __webpack_require__(426)\r\n};\r\n\n\n/***/ }),\n/* 602 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar DashboardOpenshiftsController = /** @class */ (function () {\r\n DashboardOpenshiftsController.$inject = [\"ShiftService\"];\r\n function DashboardOpenshiftsController(ShiftService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.$onInit = function () {\r\n _this.getShift();\r\n };\r\n this.getShift = function () {\r\n var params = {\r\n from: moment().format('YYYY-MM-DD'),\r\n till: moment().add(1, 'w').format('YYYY-MM-DD'),\r\n includeSubscriptions: false,\r\n };\r\n _this.ShiftService.getFilter(params).then(function (shifts) {\r\n _this.shifts = shifts;\r\n // this.shifts.forEach((shift) => {\r\n // })\r\n _this.shifts = _.remove(_this.shifts, function (value, index) {\r\n if (value.status) {\r\n return value.status < 6;\r\n }\r\n });\r\n });\r\n };\r\n this.isSameDay = function (start, end) {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n }\r\n return DashboardOpenshiftsController;\r\n}());\r\nexports.dashboardOpenshiftsComponent = {\r\n controller: DashboardOpenshiftsController,\r\n template: __webpack_require__(427)\r\n};\r\n\n\n/***/ }),\n/* 603 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar DashboardSkillsController = /** @class */ (function () {\r\n DashboardSkillsController.$inject = [\"EmployeeSkillsService\"];\r\n function DashboardSkillsController(EmployeeSkillsService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.EmployeeSkillsService = EmployeeSkillsService;\r\n this.$onInit = function () {\r\n _this.getShift();\r\n };\r\n this.getShift = function () {\r\n _this.EmployeeSkillsService.getList({ sortfield: 'end', sortorder: 'ASC' }).then(function (skills) {\r\n _this.skills = skills.value;\r\n });\r\n };\r\n this.isExpired = function (date) {\r\n if (moment(date) <= moment()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n }\r\n return DashboardSkillsController;\r\n}());\r\nexports.dashboardSkillsComponent = {\r\n controller: DashboardSkillsController,\r\n template: __webpack_require__(428)\r\n};\r\n\n\n/***/ }),\n/* 604 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.dashboardState = {\r\n parent: 'app',\r\n name: \"dashboard\",\r\n url: \"/dashboard?:newsall\",\r\n params: {\r\n \"newsall\": { dynamic: true },\r\n },\r\n component: 'dashboard',\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'customerShifts'\r\n }\r\n }\r\n};\r\nexports.newsItemBasicState = {\r\n name: \"dashboard.newsitem\",\r\n url: \"/newsitem/:id\",\r\n params: {\r\n \"id\": null\r\n },\r\n modal: [],\r\n resolve: {},\r\n component: 'newsItemBasicComponent'\r\n};\r\n\n\n/***/ }),\n/* 605 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar dashboard_birthday_component_1 = __webpack_require__(600);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar dashboard_component_1 = __webpack_require__(601);\r\nvar dashboard_states_1 = __webpack_require__(604);\r\nvar dashboard_openshifts_component_1 = __webpack_require__(602);\r\nvar dashboard_skills_component_1 = __webpack_require__(603);\r\nvar dashboardNotes_component_1 = __webpack_require__(608);\r\nvar dashboardAvailableEmployees_component_1 = __webpack_require__(599);\r\nvar dashboardTimesheetsSummary_component_1 = __webpack_require__(610);\r\nvar dashboardTasks_component_1 = __webpack_require__(609);\r\nvar employeeAvailability_service_1 = __webpack_require__(22);\r\nvar news_service_1 = __webpack_require__(265);\r\nvar dashboardNews_component_1 = __webpack_require__(606);\r\nvar news_item_basic_component_1 = __webpack_require__(607);\r\nvar dashboardAppModule = {\r\n components: {\r\n dashboard: dashboard_component_1.dashboard,\r\n dashboardBirthdayComponent: dashboard_birthday_component_1.dashboardBirthdayComponent,\r\n dashboardOpenshiftsComponent: dashboard_openshifts_component_1.dashboardOpenshiftsComponent,\r\n dashboardSkillsComponent: dashboard_skills_component_1.dashboardSkillsComponent,\r\n dashboardNotesComponent: dashboardNotes_component_1.dashboardNotesComponent,\r\n dashboardAvailableEmployeesComponent: dashboardAvailableEmployees_component_1.dashboardAvailableEmployeesComponent,\r\n dashboardTimesheetsSummaryComponent: dashboardTimesheetsSummary_component_1.dashboardTimesheetsSummaryComponent,\r\n dashboardTasksComponent: dashboardTasks_component_1.dashboardTasksComponent,\r\n dashboardNewsComponent: dashboardNews_component_1.dashboardNewsComponent,\r\n newsItemBasicComponent: news_item_basic_component_1.newsItemBasicComponent\r\n },\r\n states: [\r\n dashboard_states_1.dashboardState,\r\n dashboard_states_1.newsItemBasicState\r\n ],\r\n services: { EmployeeAvailabilityService: employeeAvailability_service_1.EmployeeAvailabilityService, NewsService: news_service_1.NewsService }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, dashboardAppModule);\r\n\n\n/***/ }),\n/* 606 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DashboardNewsController = /** @class */ (function () {\r\n DashboardNewsController.$inject = [\"NewsService\", \"$state\", \"$stateParams\"];\r\n function DashboardNewsController(NewsService, $state, $stateParams) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.NewsService = NewsService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.newsItemTypes = [\r\n {\r\n id: 2,\r\n name: 'Intern'\r\n },\r\n {\r\n id: 4,\r\n name: 'Klant'\r\n },\r\n {\r\n id: 1,\r\n name: 'Medewerker'\r\n },\r\n ];\r\n this.$onInit = function () {\r\n if (_this.$stateParams['newsall']) {\r\n _this.all = _this.$stateParams['newsall'] == 'true' ? true : false;\r\n }\r\n _this.getNews();\r\n //this.all = false;\r\n };\r\n this.getType = function (id) {\r\n return _this.newsItemTypes.find(function (t) { return t.id == id; }).name;\r\n };\r\n this.setAll = function () {\r\n _this.$state.go(\".\", { \"newsall\": _this.all }, { notify: false });\r\n _this.getNews();\r\n };\r\n this.getNews = function () {\r\n var params = {\r\n limit: _this.all ? 100 : 10,\r\n sortfield: 'createdDate',\r\n sortorder: 'desc',\r\n all: _this.all\r\n };\r\n _this.NewsService.all(params).then(function (news) {\r\n _this.news = news;\r\n });\r\n };\r\n }\r\n DashboardNewsController.prototype.addNewsItem = function () {\r\n };\r\n return DashboardNewsController;\r\n}());\r\nexports.dashboardNewsComponent = {\r\n controller: DashboardNewsController,\r\n template: __webpack_require__(429)\r\n};\r\n\n\n/***/ }),\n/* 607 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar NewsItemBasicController = /** @class */ (function () {\r\n NewsItemBasicController.$inject = [\"NewsService\", \"$state\", \"$stateParams\", \"SweetAlert\"];\r\n function NewsItemBasicController(NewsService, $state, $stateParams, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.NewsService = NewsService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n _this.newsItemTypes = [\r\n {\r\n id: 2,\r\n name: 'Intern'\r\n },\r\n {\r\n id: 4,\r\n name: 'Klant'\r\n },\r\n {\r\n id: 1,\r\n name: 'Medewerker'\r\n },\r\n ];\r\n if (_this.$stateParams['id']) {\r\n _this.get();\r\n }\r\n };\r\n this.save = function () {\r\n _this.newsItem.createdDate = moment(_this.newsItem.createdDate).format('YYYY-MM-DD') + ' 00:00:00';\r\n _this.newsItem.expireDate = moment(_this.newsItem.expireDate).format('YYYY-MM-DD') + ' 23:59:59';\r\n if (_this.newsItem.id != undefined) {\r\n _this.NewsService.put(_this.newsItem.id, _this.newsItem).then(function (res) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n _this.NewsService.post(_this.newsItem).then(function (res) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n this.delete = function () {\r\n _this.SweetAlert.swal({\r\n title: 'Weet je het zeker?',\r\n text: \"Je verwijdert het nieuws item '\" + _this.newsItem.title + \"'. Dit kan niet meer ongedaan gemaakt worden!\",\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Verwijderen',\r\n cancelButtonText: 'Annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.NewsService.delete(_this.newsItem.id).then(function () {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n }\r\n NewsItemBasicController.prototype.get = function () {\r\n var _this = this;\r\n this.NewsService.get(this.$stateParams['id']).then(function (res) {\r\n _this.newsItem = res;\r\n });\r\n };\r\n NewsItemBasicController.prototype.closeModal = function () {\r\n this.$state.go('^', {}, { reload: true });\r\n };\r\n return NewsItemBasicController;\r\n}());\r\nexports.newsItemBasicComponent = {\r\n bindings: {\r\n close: \"&\"\r\n },\r\n controller: NewsItemBasicController,\r\n template: __webpack_require__(430)\r\n};\r\n\n\n/***/ }),\n/* 608 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DashboardNotesController = /** @class */ (function () {\r\n DashboardNotesController.$inject = [\"NotesService\"];\r\n function DashboardNotesController(NotesService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.NotesService = NotesService;\r\n this.$onInit = function () {\r\n _this.getNotes();\r\n };\r\n this.getNotes = function () {\r\n var params = {\r\n limit: 5000,\r\n sortfield: 'createdOn',\r\n sortorder: 'desc'\r\n };\r\n _this.NotesService.all(params)\r\n .then(function (notes) {\r\n _this.notes = notes.filter(function (note) { return !note.applicantId; }).slice(0, 10);\r\n });\r\n };\r\n }\r\n DashboardNotesController.prototype.getNoteAuthorName = function (note) {\r\n if (note.accountName)\r\n return note.accountName;\r\n if (note.employeeDisplayName)\r\n return note.employeeDisplayName;\r\n if (note.applicantName)\r\n return note.applicantName;\r\n return '';\r\n };\r\n return DashboardNotesController;\r\n}());\r\nexports.dashboardNotesComponent = {\r\n controller: DashboardNotesController,\r\n template: __webpack_require__(431)\r\n};\r\n\n\n/***/ }),\n/* 609 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DashboardTasksController = /** @class */ (function () {\r\n DashboardTasksController.$inject = [\"TasksService\"];\r\n function DashboardTasksController(TasksService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.TasksService = TasksService;\r\n this.$onInit = function () {\r\n _this.getTasks();\r\n };\r\n this.getTasks = function () {\r\n var params = {\r\n limit: 10,\r\n sortfield: 'createdOn',\r\n sortorder: 'desc'\r\n };\r\n _this.TasksService.all(params).then(function (tasks) {\r\n _this.tasks = tasks;\r\n });\r\n };\r\n }\r\n return DashboardTasksController;\r\n}());\r\nexports.dashboardTasksComponent = {\r\n controller: DashboardTasksController,\r\n template: __webpack_require__(432)\r\n};\r\n\n\n/***/ }),\n/* 610 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DashboardTimesheetsSummaryController = /** @class */ (function () {\r\n DashboardTimesheetsSummaryController.$inject = [\"EmployeesService\"];\r\n function DashboardTimesheetsSummaryController(EmployeesService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$onInit = function () {\r\n _this.moment = __webpack_require__(0);\r\n _this.getTimesheetsWeek1();\r\n _this.getTimesheetsWeek2();\r\n };\r\n this.getTimesheetsWeek1 = function () {\r\n _this.EmployeesService.customAll('employeeSummary', { from: _this.moment().startOf('isoweek').format(\"YYYY-MM-DD\"), till: _this.moment().endOf('isoweek').format(\"YYYY-MM-DD\") })\r\n .then(function (result) {\r\n _this.timesheetsWeek1 = result;\r\n });\r\n };\r\n this.getTimesheetsWeek2 = function () {\r\n _this.EmployeesService.customAll('employeeSummary', { from: _this.moment().startOf('isoweek').add(1, 'week').format(\"YYYY-MM-DD\"), till: _this.moment().endOf('isoweek').add(1, 'week').format(\"YYYY-MM-DD\") })\r\n .then(function (result) {\r\n _this.timesheetsWeek2 = result;\r\n });\r\n };\r\n }\r\n return DashboardTimesheetsSummaryController;\r\n}());\r\nexports.dashboardTimesheetsSummaryComponent = {\r\n controller: DashboardTimesheetsSummaryController,\r\n template: __webpack_require__(433)\r\n};\r\n\n\n/***/ }),\n/* 611 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DocumentationController = /** @class */ (function () {\r\n function DocumentationController() {\r\n 'ngInject';\r\n // console.log('DocumentationController');\r\n }\r\n ;\r\n return DocumentationController;\r\n}());\r\nexports.documentationComponent = {\r\n controller: DocumentationController,\r\n template: __webpack_require__(434)\r\n};\r\n\n\n/***/ }),\n/* 612 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.documentationState = {\r\n parent: \"app\",\r\n name: \"documentation\",\r\n url: \"/documentation\",\r\n component: \"documentationComponent\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE', 'EMPLOYEE'],\r\n }\r\n }\r\n};\r\n\n\n/***/ }),\n/* 613 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar documentation_states_1 = __webpack_require__(612);\r\nvar documentation_component_1 = __webpack_require__(611);\r\nvar documentationAppModule = {\r\n components: { documentationComponent: documentation_component_1.documentationComponent },\r\n states: [documentation_states_1.documentationState],\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, documentationAppModule);\r\n\n\n/***/ }),\n/* 614 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ApplicantsController = /** @class */ (function () {\r\n function ApplicantsController() {\r\n 'ngInject';\r\n // console.log('ApplicantsController');\r\n }\r\n return ApplicantsController;\r\n}());\r\nexports.applicantsComponent = {\r\n controller: ApplicantsController,\r\n template: __webpack_require__(435)\r\n};\r\n\n\n/***/ }),\n/* 615 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar ApplicantsItemBasicController = /** @class */ (function () {\r\n ApplicantsItemBasicController.$inject = [\"EnumService\", \"ApplicantsService\", \"$state\"];\r\n function ApplicantsItemBasicController(EnumService, ApplicantsService, $state) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EnumService = EnumService;\r\n this.ApplicantsService = ApplicantsService;\r\n this.$state = $state;\r\n this.$onInit = function () {\r\n _this.applicant = _this.resolve.applicant;\r\n _this.preferredTargetAudiences = _this.resolve.preferredTargetAudiences;\r\n _this.applicationStatuses = _this.resolve.applicationStatuses;\r\n _this.functions = _this.resolve.functions;\r\n _this.users = _this.resolve.users;\r\n _this.users.forEach(function (user) {\r\n user.id = user.id.toLowerCase();\r\n });\r\n _this.applicant.userId = _this.applicant.userId.toLowerCase();\r\n };\r\n this.save = function () {\r\n _this.applicant.date = moment(_this.applicant.date).format(\"YYYY-MM-DD HH:mm\");\r\n if (_this.applicant.id != undefined) {\r\n _this.ApplicantsService.put(_this.applicant.id, _this.applicant).then(function (applicant) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n _this.ApplicantsService.post(_this.applicant).then(function (applicant) {\r\n _this.$state.go('^', { 'id': applicant.id });\r\n });\r\n }\r\n };\r\n }\r\n ApplicantsItemBasicController.prototype.closeModal = function () {\r\n this.$state.go('^', {}, { reload: true });\r\n };\r\n return ApplicantsItemBasicController;\r\n}());\r\nexports.applicantsItemBasicComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: ApplicantsItemBasicController,\r\n template: __webpack_require__(436)\r\n};\r\n\n\n/***/ }),\n/* 616 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = __webpack_require__(6);\r\nvar config_1 = __webpack_require__(13);\r\nvar ApplicantsItemController = /** @class */ (function () {\r\n ApplicantsItemController.$inject = [\"localStorageService\", \"ApplicantsService\", \"$stateParams\", \"$state\", \"NotesService\", \"ApplicantStatusHistoryService\", \"AuthService\", \"SweetAlert\", \"FileSaver\", \"MasterdataService\", \"$filter\"];\r\n function ApplicantsItemController(localStorageService, ApplicantsService, $stateParams, $state, NotesService, ApplicantStatusHistoryService, AuthService, SweetAlert, FileSaver, MasterdataService, $filter) {\r\n 'ngInject';\r\n var _this = this;\r\n this.localStorageService = localStorageService;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.NotesService = NotesService;\r\n this.AuthService = AuthService;\r\n this.SweetAlert = SweetAlert;\r\n this.FileSaver = FileSaver;\r\n this.MasterdataService = MasterdataService;\r\n this.$filter = $filter;\r\n this.archive = false;\r\n this.$onInit = function () {\r\n if (_this.$state.current.params.archive) {\r\n _this.archive = true;\r\n }\r\n if (_this.$stateParams['tab']) {\r\n _this.activeTabIndex = _this.$stateParams['tab'];\r\n }\r\n if (_this.applicant.userId) {\r\n var user = _this.users.find(function (u) { return u.id.toLowerCase() == _this.applicant.userId.toLowerCase(); });\r\n if (user) {\r\n _this.applicant.userName = user.userName;\r\n }\r\n }\r\n _this.getFiles(_this.applicant.id);\r\n _this.MasterdataService.getItems('NoteTags').then(function (res) {\r\n _this.tags = res;\r\n });\r\n _this.filterNotes();\r\n };\r\n this.postFile = function (id) {\r\n return _this.applicantsService.postBlob(id, _this.uploadfile);\r\n };\r\n this.getFiles = function (id) {\r\n _this.applicantsService.getBlobs(id).then(function (files) {\r\n _this.files = files.value;\r\n });\r\n };\r\n this.deleteFile = function (blobid) {\r\n _this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u dit bestand wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.applicantsService.deleteBlob(_this.applicant.id, blobid).then(function (res) {\r\n _this.$state.go('.', { tab: 1 }, { reload: true });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n this.downloadFile = function (file) {\r\n // this.applicantsService.getBlob(this.applicant.id, file.id).then((blob) => {\r\n var xhr = new XMLHttpRequest();\r\n xhr.responseType = 'blob';\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n var url = URL.createObjectURL(xhr.response);\r\n var aLink = document.createElement('a');\r\n document.body.appendChild(aLink);\r\n aLink.href = url;\r\n aLink.download = file.filenameWithExtention;\r\n aLink.click();\r\n }\r\n };\r\n var token = _this.localStorageService.get(\"authorizationData\");\r\n var url = config_1.default.API_URL;\r\n xhr.open('GET', url + '/hr/applicant/' + _this.applicant.id + '/blobs/' + file.id);\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n // xhr.setRequestHeader('Dropbox-API-Arg', JSON.stringify({\"path\": \"/\"+filename}));\r\n xhr.send();\r\n // })\r\n };\r\n this.notesService = NotesService;\r\n this.applicantStatusHistoryService = ApplicantStatusHistoryService;\r\n this.applicantsService = ApplicantsService;\r\n angular.element(document).ready(function () {\r\n $('#notes-table').dataTable({\r\n \"pageLength\": 5,\r\n \"lengthChange\": false,\r\n \"searching\": false\r\n });\r\n });\r\n }\r\n ApplicantsItemController.prototype.submitApplicant = function () {\r\n if (this.applicant.id == null) {\r\n this.saveApplicant();\r\n }\r\n else {\r\n this.applicantsService.put(this.applicant.id, this.applicant);\r\n }\r\n };\r\n ApplicantsItemController.prototype.saveApplicant = function () {\r\n var _this = this;\r\n this.applicantsService.post(this.applicant).then(function (result) {\r\n _this.$state.go('hr.applicants.item', { 'id': result.id });\r\n });\r\n };\r\n ApplicantsItemController.prototype.archiveApplicant = function () {\r\n var _this = this;\r\n this.applicant.inactive = true;\r\n this.applicantsService.put(this.applicant.id, this.applicant).then(function (result) {\r\n _this.$state.go('hr.applicants.archiveitem', { 'id': result.id });\r\n });\r\n };\r\n ApplicantsItemController.prototype.unarchiveApplicant = function () {\r\n var _this = this;\r\n this.applicant.inactive = false;\r\n this.applicantsService.put(this.applicant.id, this.applicant).then(function (result) {\r\n _this.$state.go('hr.applicants.item', { 'id': result.id });\r\n });\r\n };\r\n ApplicantsItemController.prototype.deleteApplicant = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u ' + this.applicant.name + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.applicantsService.delete(_this.applicant.id);\r\n _this.$state.go('^.list').then(function () { _this.$state.reload(); });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n ApplicantsItemController.prototype.addNoteModal = function () {\r\n this.currentNote = null;\r\n $('#noteModal').modal('show');\r\n };\r\n ApplicantsItemController.prototype.updateNoteModal = function (item) {\r\n this.currentNote = item;\r\n $('#noteModal').modal('show');\r\n };\r\n ApplicantsItemController.prototype.filterNotes = function () {\r\n var _this = this;\r\n this.filteredNotes = this.$filter('filter')(this.notes, function (note) {\r\n if (!!_this.selectedTag) {\r\n return note.tags.indexOf(_this.selectedTag) !== -1;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n };\r\n ApplicantsItemController.prototype.submitNote = function (item) {\r\n var _this = this;\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.applicantId = this.applicant.id;\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(function (result) {\r\n _this.notes.push(result);\r\n });\r\n }\r\n else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n $('#noteModal').modal('hide');\r\n };\r\n ApplicantsItemController.prototype.deleteNote = function (item) {\r\n this.notes = this.notes.filter(function (note) { return note.id !== item.id; });\r\n this.notesService.delete(item.id);\r\n };\r\n ApplicantsItemController.prototype.updateNote = function (item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n };\r\n ApplicantsItemController.prototype.deleteHistory = function (item) {\r\n this.applicationStatusHistories = this.applicationStatusHistories.filter(function (x) { return x.id !== item.id; });\r\n this.applicantStatusHistoryService.delete(item.id);\r\n };\r\n ApplicantsItemController.prototype.updateHistory = function (item, action) {\r\n switch (action) {\r\n case 'delete':\r\n this.deleteHistory(item);\r\n break;\r\n }\r\n };\r\n ApplicantsItemController.prototype.uploadAll = function () {\r\n var _this = this;\r\n if (this.uploadfile) {\r\n this.postFile(this.applicant.id).then(function () {\r\n _this.$state.go('.', { tab: 1 }, { reload: true });\r\n });\r\n }\r\n };\r\n ApplicantsItemController.prototype.clickUpload = function () {\r\n angular.element('#myUploader').trigger('click');\r\n };\r\n ;\r\n return ApplicantsItemController;\r\n}());\r\nexports.applicantsItemComponent = {\r\n bindings: {\r\n applicant: '<',\r\n notes: '<',\r\n applicationStatusHistories: '<',\r\n preferredTargetAudiences: '<',\r\n applicationStatuses: '<',\r\n functions: '<',\r\n users: '<'\r\n },\r\n controller: ApplicantsItemController,\r\n template: __webpack_require__(438)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 617 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ApplicantsItemEmployeeController = /** @class */ (function () {\r\n ApplicantsItemEmployeeController.$inject = [\"EnumService\", \"ApplicantsService\", \"EmployeesService\", \"$state\"];\r\n function ApplicantsItemEmployeeController(EnumService, ApplicantsService, EmployeesService, $state) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EnumService = EnumService;\r\n this.ApplicantsService = ApplicantsService;\r\n this.EmployeesService = EmployeesService;\r\n this.$state = $state;\r\n this.$onInit = function () {\r\n _this.applicant = _this.resolve.applicant;\r\n _this.functions = _this.resolve.functions;\r\n _this.applicationStatuses = _this.resolve.applicationStatuses;\r\n _this.employee = {};\r\n _this.employee.homeAddress = {};\r\n _this.employee.firstName = _this.applicant.name.split(' ')[0];\r\n var names = _this.applicant.name.split(' ');\r\n names.shift();\r\n _this.employee.lastName = names.join(' ');\r\n _this.employee.telephoneMobilePrivate = _this.applicant.phoneNumber;\r\n _this.employee.emailPrivate = _this.applicant.email;\r\n _this.employee.homeAddress.city = _this.applicant.city;\r\n _this.employee.functionId = _this.applicant.functionId;\r\n _this.employee.zzp = _this.applicant.zzp;\r\n };\r\n this.save = function () {\r\n _this.EmployeesService.post(_this.employee).then(function (employee) {\r\n _this.applicant.employeeId = employee.id;\r\n _this.applicant.applicationStatusId = _this.applicationStatuses.find(function (s) { return s.code == 'accepted'; }).id;\r\n _this.ApplicantsService.put(_this.applicant.id, _this.applicant).then(function (applicant) {\r\n _this.$state.go('hr.employees.item', { 'id': applicant.employeeId });\r\n });\r\n });\r\n };\r\n }\r\n ApplicantsItemEmployeeController.prototype.closeModal = function () {\r\n this.$state.go('^', {}, { reload: true });\r\n };\r\n return ApplicantsItemEmployeeController;\r\n}());\r\nexports.applicantsItemEmployeeComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: ApplicantsItemEmployeeController,\r\n template: __webpack_require__(437)\r\n};\r\n\n\n/***/ }),\n/* 618 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ApplicantsListController = /** @class */ (function () {\r\n ApplicantsListController.$inject = [\"ApplicantsService\", \"$filter\", \"$stateParams\", \"$state\"];\r\n function ApplicantsListController(ApplicantsService, $filter, $stateParams, $state) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ApplicantsService = ApplicantsService;\r\n this.$filter = $filter;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.archive = false;\r\n this.$onInit = function () {\r\n if (_this.$state.current.params.archive) {\r\n _this.archive = true;\r\n }\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 11;\r\n _this.getApplicants();\r\n _this.statusFilter = '';\r\n if (_this.$stateParams['status']) {\r\n if (_this.$stateParams['status'] == 'all') {\r\n _this.statusFilter = '';\r\n }\r\n else {\r\n _this.statusFilter = _this.applicationStatuses.find(function (s) { return s.code == _this.$stateParams['status']; }).id;\r\n }\r\n }\r\n if (_this.$stateParams['recruiter']) {\r\n _this.userFilter = _this.$stateParams['recruiter'];\r\n }\r\n if (_this.$stateParams['function']) {\r\n _this.functionFilter = _this.$stateParams['function'];\r\n }\r\n if (_this.$stateParams['targetaudiance']) {\r\n _this.targetAudienceFilter = _this.$stateParams['targetaudiance'];\r\n }\r\n // if(this.$stateParams['search']) {\r\n // this.search = decodeURI(this.$stateParams['search']);\r\n // }\r\n };\r\n this.filter = function () {\r\n var status = _this.statusFilter ? _this.applicationStatuses.find(function (s) { return s.id == _this.statusFilter; }).code : 'all';\r\n if (_this.archive) {\r\n _this.$state.go('hr.applicants.archive', {\r\n 'recruiter': _this.userFilter,\r\n 'status': status,\r\n 'function': _this.functionFilter,\r\n 'targetaudiance': _this.targetAudienceFilter,\r\n 'search': encodeURI(_this.search)\r\n });\r\n }\r\n else {\r\n _this.$state.go('hr.applicants.list', {\r\n 'recruiter': _this.userFilter,\r\n 'status': status,\r\n 'function': _this.functionFilter,\r\n 'targetaudiance': _this.targetAudienceFilter,\r\n 'search': encodeURI(_this.search)\r\n });\r\n }\r\n };\r\n this.getApplicants = function () {\r\n if (_this.archive) {\r\n _this.ApplicantsService.getArchive().then(function (res) {\r\n _this.applicants = res;\r\n _this.applicants.forEach(function (applicant) {\r\n if (applicant.userId) {\r\n var user = _this.users.find(function (u) { return u.id == applicant.userId; });\r\n applicant.userName = user ? user.userName : '';\r\n }\r\n });\r\n _this.applyFilters();\r\n });\r\n }\r\n else {\r\n _this.ApplicantsService.all().then(function (res) {\r\n _this.applicants = res;\r\n _this.applicants.forEach(function (applicant) {\r\n if (applicant.userId) {\r\n var user = _this.users.find(function (u) { return u.id == applicant.userId; });\r\n applicant.userName = user ? user.userName : '';\r\n }\r\n });\r\n _this.applyFilters();\r\n });\r\n }\r\n };\r\n this.sortType = 'displayName';\r\n //console.log('ApplicantsListController');\r\n }\r\n ApplicantsListController.prototype.applyFilters = function () {\r\n this.filteredApplicants = this.$filter('filterBy')(this.applicants, ['name', 'city'], this.search);\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['functionId'], this.functionFilter);\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['preferredTargetAudienceId'], this.targetAudienceFilter);\r\n if (this.statusFilter) {\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['applicationStatusId'], this.statusFilter);\r\n }\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['userId'], this.userFilter);\r\n this.filteredApplicants = this.$filter('orderBy')(this.filteredApplicants, this.sortType);\r\n };\r\n return ApplicantsListController;\r\n}());\r\nexports.applicantsListComponent = {\r\n bindings: {\r\n functions: \"<\",\r\n preferredTargetAudiences: \"<\",\r\n applicationStatuses: \"<\",\r\n users: \"<\"\r\n },\r\n controller: ApplicantsListController,\r\n template: __webpack_require__(439)\r\n};\r\n\n\n/***/ }),\n/* 619 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar AvailabilityListController = /** @class */ (function () {\r\n AvailabilityListController.$inject = [\"$state\", \"EmployeesService\"];\r\n function AvailabilityListController($state, EmployeesService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$state = $state;\r\n this.EmployeesService = EmployeesService;\r\n this.$onInit = function () {\r\n var date = moment();\r\n _this.startDate = date.format(\"YYYY-MM-DD\");\r\n _this.endDate = date.add(1, 'M').format(\"YYYY-MM-DD\");\r\n _this.getAvailabilityByDate();\r\n };\r\n this.prevWeek = function () {\r\n _this.startDate = moment(_this.startDate).add(-7, 'day').toDate();\r\n _this.endDate = moment(_this.endDate).add(-7, 'day').toDate();\r\n };\r\n this.nextWeek = function () {\r\n _this.startDate = moment(_this.startDate).add(7, 'day').toDate();\r\n _this.endDate = moment(_this.endDate).add(7, 'day').toDate();\r\n };\r\n }\r\n AvailabilityListController.prototype.getAvailabilityByDate = function () {\r\n var _this = this;\r\n this.EmployeesService.getAvailabilityByRange(this.startDate, this.endDate).then(function (result) {\r\n result.forEach(function (a) {\r\n a.startDate = moment(a.start);\r\n });\r\n result = _.sortBy(result, 'startDate');\r\n _this.availabilities = result;\r\n });\r\n };\r\n return AvailabilityListController;\r\n}());\r\nexports.availabilityListComponent = {\r\n bindings: {\r\n avalabilityStatuses: '<'\r\n },\r\n controller: AvailabilityListController,\r\n template: __webpack_require__(440)\r\n};\r\n\n\n/***/ }),\n/* 620 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar AvailabilityCalendarController = /** @class */ (function () {\r\n AvailabilityCalendarController.$inject = [\"EmployeesService\", \"$state\", \"uiCalendarConfig\", \"$scope\", \"$compile\", \"$timeout\"];\r\n function AvailabilityCalendarController(EmployeesService, $state, uiCalendarConfig, $scope, $compile, $timeout) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$state = $state;\r\n this.uiCalendarConfig = uiCalendarConfig;\r\n this.$scope = $scope;\r\n this.$compile = $compile;\r\n this.$timeout = $timeout;\r\n this.eventSources = [];\r\n this.$onInit = function () {\r\n // console.log('init AvailabilityCalendarController')\r\n _this.eventSources = [_this.getEvents];\r\n // this.getEvents(moment().fromNow, '2016-07-13 23:00:00.0000000'.toDate(), null, function() {});\r\n _this.uiConfig = {\r\n calendar: {\r\n height: 537,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: true,\r\n axisFormat: 'h:mm',\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: true,\r\n eventClick: _this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: _this.eventRender\r\n }\r\n };\r\n _this.$timeout(function () {\r\n _this.renderCalendar();\r\n });\r\n };\r\n this.renderCalendar = function () {\r\n _this.uiCalendarConfig.calendars['employeeCalendar'].fullCalendar('render');\r\n _this.uiCalendarConfig.calendars['employeeCalendar'].fullCalendar('rerenderEvents');\r\n };\r\n this.getEvents = function (start, end, timezone, callback) {\r\n // console.log('getEvents');\r\n // console.log(start);\r\n _this.EmployeesService.customAll(_this.employeeId + '/availabilityByRange', { 'start': start.toDate(), 'end': end.toDate() }).then(function (events) {\r\n _this.availabilities = events;\r\n // console.log(events);\r\n callback(events);\r\n });\r\n };\r\n this.openItem = function (event) {\r\n _this.$state.go('hr.employees.item.availability', { 'employeeId': _this.employeeId, 'availabilityId': event.id });\r\n };\r\n this.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.comment,\r\n 'tooltip-append-to-body': true\r\n });\r\n //var employee = '';\r\n // if (event.shift.Employee) {\r\n // var employee = '
' + event.shift.Employee.DisplayName + '';\r\n // }\r\n // element.append('' + event.status.Name + employee + '');\r\n if (!event.status) {\r\n event.status = \"???\";\r\n }\r\n var color;\r\n if (event.status.toLowerCase() == 'available') {\r\n color = '#2ECC71'; // @brand-success\r\n }\r\n else {\r\n color = '#d96557'; // @brand-danger\r\n }\r\n if (moment().isBefore(event.from)) {\r\n element.css({ 'background-color': color, 'border-color': color });\r\n }\r\n else {\r\n element.css({ 'background-color': color, 'border-color': color, 'opacity': 0.7 });\r\n }\r\n _this.$compile(element)(_this.$scope);\r\n };\r\n }\r\n return AvailabilityCalendarController;\r\n}());\r\nexports.availabilityCalendarComponent = {\r\n controller: AvailabilityCalendarController,\r\n bindings: {\r\n employeeId: \"<\"\r\n },\r\n template: __webpack_require__(441)\r\n};\r\n\n\n/***/ }),\n/* 621 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar employeeAvailability_service_1 = __webpack_require__(22);\r\nvar AvailabilityItemController = /** @class */ (function () {\r\n AvailabilityItemController.$inject = [\"EmployeesService\", \"$stateParams\", \"$state\", \"$timeout\", \"SweetAlert\", \"$scope\"];\r\n function AvailabilityItemController(EmployeesService, $stateParams, $state, $timeout, SweetAlert, $scope) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.SweetAlert = SweetAlert;\r\n this.$scope = $scope;\r\n this.$onInit = function () {\r\n // console.log('AvailabilityItemController onInit');\r\n _this.statuses = _this.resolve.statuses;\r\n _this.employeeId = _this.$stateParams[\"employeeId\"];\r\n if (_this.$stateParams[\"availabilityId\"]) {\r\n _this.EmployeesService.customGet('availability/' + _this.$stateParams[\"availabilityId\"]).then(function (result) {\r\n _this.availability = result;\r\n // console.log(this.availability);\r\n if (_this.availability) {\r\n _this.availability.start = new Date(_this.availability.start);\r\n _this.availability.end = new Date(_this.availability.end);\r\n }\r\n });\r\n }\r\n else {\r\n _this.availability = new employeeAvailability_service_1.IEmployeeAvailability();\r\n _this.availability.start = _this.roundMinutes(new Date());\r\n _this.availability.end = moment(_this.availability.start).add(8, 'hour').toDate();\r\n }\r\n };\r\n }\r\n AvailabilityItemController.prototype.roundMinutes = function (date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n };\r\n AvailabilityItemController.prototype.submitAvailability = function () {\r\n var _this = this;\r\n this.$scope.availabilityForm.$setSubmitted();\r\n this.availability.start = moment(this.availability.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.availability.end = moment(this.availability.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (!this.availability.availabilityStatusId) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Vul een status in!',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n }\r\n });\r\n }\r\n else if (moment(this.availability.start).isAfter(this.availability.end)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Eindtijd ligt voor starttijd!',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n }\r\n });\r\n }\r\n else {\r\n if (this.availability.id === undefined) {\r\n this.EmployeesService.customPost(this.employeeId + '/availability', this.availability).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.EmployeesService.customPut('availability/' + this.availability.id, this.availability).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n }\r\n };\r\n AvailabilityItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.EmployeesService.customDelete('availability/' + this.availability.id).then(function () {\r\n _this.closeModal();\r\n });\r\n };\r\n AvailabilityItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 3 }, { reload: true });\r\n };\r\n return AvailabilityItemController;\r\n}());\r\nexports.availabilityItemComponent = {\r\n bindings: {\r\n resolve: '<'\r\n },\r\n controller: AvailabilityItemController,\r\n template: __webpack_require__(442)\r\n};\r\n\n\n/***/ }),\n/* 622 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeesController = /** @class */ (function () {\r\n function EmployeesController() {\r\n 'ngInject';\r\n // console.log('EmployeesController');\r\n }\r\n return EmployeesController;\r\n}());\r\nexports.employeesComponent = {\r\n controller: EmployeesController,\r\n template: __webpack_require__(443)\r\n};\r\n\n\n/***/ }),\n/* 623 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeesItemBasicController = /** @class */ (function () {\r\n EmployeesItemBasicController.$inject = [\"EnumService\", \"EmployeesService\", \"$state\"];\r\n function EmployeesItemBasicController(EnumService, EmployeesService, $state) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EnumService = EnumService;\r\n this.EmployeesService = EmployeesService;\r\n this.$state = $state;\r\n this.$onInit = function () {\r\n _this.employee = _this.resolve.employee;\r\n _this.functions = _this.resolve.functions;\r\n _this.transportationTypes = _this.resolve.transportationTypes;\r\n _this.salaryScales = _this.resolve.salaryScales;\r\n };\r\n this.save = function () {\r\n _this.employee.userName = _this.employee.emailPrivate;\r\n if (_this.employee.id != undefined) {\r\n _this.EmployeesService.put(_this.employee.id, _this.employee).then(function (employee) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n _this.EmployeesService.post(_this.employee).then(function (employee) {\r\n _this.$state.go('^', { 'id': employee.id });\r\n });\r\n }\r\n };\r\n }\r\n EmployeesItemBasicController.prototype.closeModal = function () {\r\n this.$state.go('^', {}, { reload: true });\r\n };\r\n return EmployeesItemBasicController;\r\n}());\r\nexports.employeesItemBasicComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: EmployeesItemBasicController,\r\n template: __webpack_require__(444)\r\n};\r\n\n\n/***/ }),\n/* 624 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = __webpack_require__(6);\r\nvar EmployeesItemController = /** @class */ (function () {\r\n EmployeesItemController.$inject = [\"EmployeesService\", \"$stateParams\", \"$state\", \"NotesService\", \"NmbrsService\", \"AuthService\", \"SweetAlert\", \"MasterdataService\", \"$filter\"];\r\n function EmployeesItemController(EmployeesService, $stateParams, $state, NotesService, NmbrsService, AuthService, SweetAlert, MasterdataService, $filter) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.NotesService = NotesService;\r\n this.NmbrsService = NmbrsService;\r\n this.AuthService = AuthService;\r\n this.SweetAlert = SweetAlert;\r\n this.MasterdataService = MasterdataService;\r\n this.$filter = $filter;\r\n this.$onInit = function () {\r\n if (_this.AuthService.hasRole(\"finance\")) {\r\n _this.activeTabIndex = 0;\r\n }\r\n else {\r\n _this.activeTabIndex = 1;\r\n }\r\n if (_this.$stateParams['tab']) {\r\n _this.activeTabIndex = _this.$stateParams['tab'];\r\n }\r\n if (_this.employee && _this.employee.nmbrsId) {\r\n _this.NmbrsService.customGet('employee/' + _this.employee.nmbrsId).then((function (result) {\r\n _this.nmbrsEmployee = result;\r\n }));\r\n _this.NmbrsService.customGet('employeeAddress/' + _this.employee.nmbrsId).then((function (result) {\r\n _this.nmbrsEmployeeAddress = result[0];\r\n }));\r\n _this.NmbrsService.customGet('employeeBankAccount/' + _this.employee.nmbrsId).then((function (result) {\r\n _this.nmbrsEmployeeBankAccount = result[0];\r\n }));\r\n _this.NmbrsService.customGet('employeeFunction/' + _this.employee.nmbrsId).then((function (result) {\r\n _this.nmbrsEmployeeFunction = result;\r\n }));\r\n _this.NmbrsService.customGet('employeeSalary/' + _this.employee.nmbrsId).then((function (result) {\r\n _this.nmbrsEmployeeSalary = result;\r\n }));\r\n _this.NmbrsService.customGet('employeeContract/' + _this.employee.nmbrsId).then((function (result) {\r\n _this.nmbrsEmployeeContract = result.employeeContracts[0];\r\n }));\r\n }\r\n _this.MasterdataService.getItems('NoteTags').then(function (res) {\r\n _this.tags = res;\r\n });\r\n _this.filterNotes();\r\n };\r\n this.notesService = NotesService;\r\n this.employeesService = EmployeesService;\r\n this.employeeId = $stateParams['employeeId'];\r\n angular.element(document).ready(function () {\r\n $('#notes-table').dataTable({\r\n \"pageLength\": 5,\r\n \"lengthChange\": false,\r\n \"searching\": false\r\n });\r\n });\r\n }\r\n EmployeesItemController.prototype.filterNotes = function () {\r\n var _this = this;\r\n this.filteredNotes = this.$filter('filter')(this.notes, function (note) {\r\n if (!!_this.selectedTag) {\r\n return note.tags.indexOf(_this.selectedTag) !== -1;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n };\r\n EmployeesItemController.prototype.submitEmployee = function () {\r\n if (this.employee.id == null) {\r\n this.saveEmployee();\r\n }\r\n else {\r\n this.employeesService.put(this.employee.id, this.employee);\r\n }\r\n };\r\n EmployeesItemController.prototype.saveEmployee = function () {\r\n var _this = this;\r\n this.employeesService.post(this.employee).then(function (result) {\r\n _this.$state.go('hr.employees.item', { 'id': result.id });\r\n });\r\n };\r\n EmployeesItemController.prototype.deleteEmployee = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze medewerker wilt verwijderen?\\n Diensten en declaraties van de medewerker blijven onveranderd!',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.employee.inactive = true;\r\n _this.employeesService.put(_this.employee.id, _this.employee);\r\n _this.$state.go('^.list').then(function () { _this.$state.reload(); });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n EmployeesItemController.prototype.restoreEmployee = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u de medewerker wilt herstellen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.employee.inactive = false;\r\n _this.employeesService.put(_this.employee.id, _this.employee);\r\n _this.$state.reload();\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n EmployeesItemController.prototype.addNoteModal = function () {\r\n this.currentNote = null;\r\n $('#noteModal').modal('show');\r\n };\r\n EmployeesItemController.prototype.updateNoteModal = function (item) {\r\n this.currentNote = item;\r\n $('#noteModal').modal('show');\r\n };\r\n EmployeesItemController.prototype.submitNote = function (item) {\r\n var _this = this;\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.employeeId = this.employee.id;\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(function (result) {\r\n _this.notes.unshift(result);\r\n });\r\n }\r\n else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n $('#noteModal').modal('hide');\r\n };\r\n EmployeesItemController.prototype.deleteNote = function (item) {\r\n this.notes = this.notes.filter(function (note) { return note.id !== item.id; });\r\n this.notesService.delete(item.id);\r\n };\r\n EmployeesItemController.prototype.updateNote = function (item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n };\r\n EmployeesItemController.prototype.refreshEmployeeNmbrs = function () {\r\n var _this = this;\r\n this.employeesService.refresh(this.employee.id).then(function () {\r\n _this.$state.reload();\r\n });\r\n };\r\n EmployeesItemController.prototype.copyGuid = function () {\r\n window.navigator['clipboard'].writeText(this.employee.id);\r\n alert(\"De Guid van \" + this.employee.displayName + \"is gekopieerd\");\r\n };\r\n return EmployeesItemController;\r\n}());\r\nexports.employeesItemComponent = {\r\n bindings: {\r\n notes: '<',\r\n userAccount: '<',\r\n employee: '<',\r\n history: '<',\r\n employeeSkills: '<',\r\n functions: '<'\r\n },\r\n controller: EmployeesItemController,\r\n template: __webpack_require__(445)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 625 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeesListController = /** @class */ (function () {\r\n EmployeesListController.$inject = [\"EmployeesService\", \"EnumService\", \"$stateParams\", \"$scope\", \"$filter\", \"$state\", \"TwinfieldService\"];\r\n function EmployeesListController(EmployeesService, EnumService, $stateParams, $scope, $filter, $state, TwinfieldService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.EnumService = EnumService;\r\n this.$stateParams = $stateParams;\r\n this.$scope = $scope;\r\n this.$filter = $filter;\r\n this.$state = $state;\r\n this.TwinfieldService = TwinfieldService;\r\n this.$onInit = function () {\r\n /** Set return URI */\r\n _this.TwinfieldService.setTwinfieldRedirectUri();\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 11;\r\n _this.getEmployees();\r\n // this.$scope.$watch(() => {\r\n // return this.filteredEmployees;\r\n // }, () => {\r\n // this.emailToClipboard();\r\n // });\r\n };\r\n this.onCopySuccess = function (e) {\r\n alert('Gegevens gekopieerd naar plakbord!');\r\n };\r\n this.getEmployees = function () {\r\n if (_this.statusFilter === 'inactive') {\r\n _this.EmployeesService.getEmployeesByStatus(false).then(function (res) {\r\n _this.employees = res;\r\n _this.applyFilters();\r\n });\r\n }\r\n else {\r\n _this.EmployeesService.getEmployeesByStatus().then(function (res) {\r\n _this.employees = res;\r\n _this.applyFilters();\r\n });\r\n }\r\n };\r\n //console.log(EnumService);\r\n this.sortType = 'displayName';\r\n //console.log('EmployeesListController');\r\n }\r\n EmployeesListController.prototype.applyFilters = function () {\r\n this.filteredEmployees = this.$filter('filter')(this.employees, this.tag);\r\n this.filteredEmployees = this.$filter('filterBy')(this.filteredEmployees, ['displayName', 'functionName', 'emailPrivate'], this.search);\r\n this.filteredEmployees = this.$filter('orderBy')(this.filteredEmployees, this.sortType);\r\n if (this.accountingFilter === 'nmbrs') {\r\n this.filteredEmployees = this.filteredEmployees.filter(function (e) { return e.nmbrsId; });\r\n }\r\n if (this.accountingFilter === 'zzp') {\r\n this.filteredEmployees = this.filteredEmployees.filter(function (e) { return !e.nmbrsId; });\r\n }\r\n // ($ctrl.employees | filter: $ctrl.tag | filterBy : ['displayName', 'functionName', 'emailPrivate']: $ctrl.search | orderBy:$ctrl.sortType:sortReverse)\r\n this.emailToClipboard();\r\n };\r\n EmployeesListController.prototype.emailToClipboard = function () {\r\n if (this.filteredEmployees.length > 0) {\r\n var emailsList = [];\r\n this.filteredEmployees.forEach(function (e, i) {\r\n if (e.emailPrivate) {\r\n emailsList.push(e.emailPrivate);\r\n }\r\n });\r\n this.emailaddresses = emailsList.join(';');\r\n }\r\n //console.log(emailsList.join(';'));\r\n //window.prompt(\"Ctrl+C to copy to clipboard, then paste in the BCC field of an email:\", emailsList.join(';'));\r\n };\r\n EmployeesListController.prototype.refreshEmployeesNmbrs = function () {\r\n var _this = this;\r\n $('#notificationModal').modal('show');\r\n this.inProgress = true;\r\n this.EmployeesService.refreshAll().then(function () {\r\n $('#notificationModal').modal('hide');\r\n _this.inProgress = false;\r\n _this.$state.reload();\r\n });\r\n };\r\n return EmployeesListController;\r\n}());\r\nexports.employeesListComponent = {\r\n bindings: {},\r\n controller: EmployeesListController,\r\n template: __webpack_require__(446)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 626 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HrController = /** @class */ (function () {\r\n function HrController() {\r\n // console.log('HrController');\r\n }\r\n HrController.$inject = [];\r\n return HrController;\r\n}());\r\nexports.hrComponent = {\r\n controller: HrController,\r\n template: __webpack_require__(448)\r\n};\r\n\n\n/***/ }),\n/* 627 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HrDashboardController = /** @class */ (function () {\r\n function HrDashboardController() {\r\n 'ngInject';\r\n }\r\n return HrDashboardController;\r\n}());\r\nexports.hrDashboardComponent = {\r\n controller: HrDashboardController,\r\n template: __webpack_require__(447)\r\n};\r\n\n\n/***/ }),\n/* 628 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar employeeSkills_service_1 = __webpack_require__(263);\r\nvar employees_item_component_1 = __webpack_require__(624);\r\nvar employees_list_component_1 = __webpack_require__(625);\r\nvar employees_component_1 = __webpack_require__(622);\r\nvar hr_dashboard_component_1 = __webpack_require__(627);\r\nvar hr_component_1 = __webpack_require__(626);\r\nvar hr_states_1 = __webpack_require__(259);\r\nvar hr_states_2 = __webpack_require__(259);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar index_1 = __webpack_require__(5);\r\nvar employees_item_basic_component_1 = __webpack_require__(623);\r\nvar shifts_list_component_1 = __webpack_require__(631);\r\nvar shifts_item_component_1 = __webpack_require__(630);\r\nvar availability_calendar_component_1 = __webpack_require__(620);\r\nvar availability_item_component_1 = __webpack_require__(621);\r\nvar skills_list_component_1 = __webpack_require__(633);\r\nvar skills_item_component_1 = __webpack_require__(632);\r\nvar uploader_component_1 = __webpack_require__(670);\r\nvar nmbrs_component_1 = __webpack_require__(629);\r\nvar availabilityList_component_1 = __webpack_require__(619);\r\nvar applicants_item_component_1 = __webpack_require__(616);\r\nvar applicants_list_component_1 = __webpack_require__(618);\r\nvar applicants_component_1 = __webpack_require__(614);\r\nvar applicants_item_basic_component_1 = __webpack_require__(615);\r\nvar applicants_item_employee_component_1 = __webpack_require__(617);\r\nvar hrAppModule = {\r\n components: { hrComponent: hr_component_1.hrComponent, hrDashboardComponent: hr_dashboard_component_1.hrDashboardComponent,\r\n employeesComponent: employees_component_1.employeesComponent, employeesListComponent: employees_list_component_1.employeesListComponent, employeesItemComponent: employees_item_component_1.employeesItemComponent,\r\n employeesItemBasicComponent: employees_item_basic_component_1.employeesItemBasicComponent, shiftsListComponent: shifts_list_component_1.shiftsListComponent, shiftsItemComponent: shifts_item_component_1.shiftsItemComponent,\r\n availabilityCalendarComponent: availability_calendar_component_1.availabilityCalendarComponent, availabilityItemComponent: availability_item_component_1.availabilityItemComponent,\r\n skillsListComponent: skills_list_component_1.skillsListComponent, skillsItemComponent: skills_item_component_1.skillsItemComponent, uploaderComponent: uploader_component_1.uploaderComponent,\r\n nmbrsComponent: nmbrs_component_1.nmbrsComponent,\r\n availabilityListComponent: availabilityList_component_1.availabilityListComponent,\r\n applicantsComponent: applicants_component_1.applicantsComponent, applicantsListComponent: applicants_list_component_1.applicantsListComponent, applicantsItemComponent: applicants_item_component_1.applicantsItemComponent, applicantsItemBasicComponent: applicants_item_basic_component_1.applicantsItemBasicComponent, applicantsItemEmployeeComponent: applicants_item_employee_component_1.applicantsItemEmployeeComponent\r\n },\r\n states: [hr_states_1.hrState, hr_states_1.hrDashboardState,\r\n hr_states_1.employeesState, hr_states_1.employeesListState, hr_states_1.employeesItemState,\r\n hr_states_2.employeesItemBasicState, hr_states_2.shiftsItemState, hr_states_2.availabilityItemState,\r\n hr_states_2.skillsItemState,\r\n hr_states_1.availabilityListState,\r\n hr_states_1.applicantsState, hr_states_1.applicantsListState, hr_states_1.applicantsItemState, hr_states_1.applicantsItemBasicState, hr_states_1.applicantsItemEmployeeState, hr_states_1.applicantsArchiveState, hr_states_1.applicantsArchiveItemState, hr_states_1.applicantsArchiveItemBasicState\r\n ],\r\n services: { EmployeesService: index_1.EmployeesService, ShiftService: index_1.ShiftService, DeclarationService: index_1.DeclarationService, EmployeeSkillsService: employeeSkills_service_1.EmployeeSkillsService, NmbrsService: index_1.NmbrsService, ApplicantsService: index_1.ApplicantsService, ApplicantStatusHistoryService: index_1.ApplicantStatusHistoryService }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, hrAppModule);\r\n\n\n/***/ }),\n/* 629 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar _ = __webpack_require__(7);\r\nvar NmbrsController = /** @class */ (function () {\r\n function NmbrsController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n _this.activeTabIndex = 0;\r\n };\r\n this.$onChange = function () {\r\n if (_this.nmbrsEmployeeFunction) {\r\n _this.function = _.find(_this.functions, { code: _this.nmbrsEmployeeFunction.code });\r\n }\r\n };\r\n }\r\n return NmbrsController;\r\n}());\r\nexports.nmbrsComponent = {\r\n bindings: {\r\n nmbrsEmployee: \"<\",\r\n nmbrsEmployeeAddress: \"<\",\r\n nmbrsEmployeeBankAccount: \"<\",\r\n nmbrsEmployeeFunction: \"<\",\r\n nmbrsEmployeeSalary: \"<\",\r\n nmbrsEmployeeContract: \"<\",\r\n functions: \"<\"\r\n },\r\n controller: NmbrsController,\r\n template: __webpack_require__(449)\r\n};\r\n\n\n/***/ }),\n/* 630 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar _ = __webpack_require__(7);\r\nvar moment = __webpack_require__(0);\r\nvar ShiftsItemController = /** @class */ (function () {\r\n ShiftsItemController.$inject = [\"ShiftService\", \"$state\", \"$stateParams\"];\r\n function ShiftsItemController(ShiftService, $state, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n _this.employee = _this.resolve.employee;\r\n var shiftId = _this.$stateParams['shiftId'];\r\n if (shiftId != '') {\r\n _this.shift = _.find(_this.resolve.shifts, { \"id\": shiftId });\r\n }\r\n else {\r\n _this.shift = new index_1.IShift();\r\n }\r\n };\r\n }\r\n ShiftsItemController.prototype.startDateBeforeRender = function ($dates) {\r\n // console.log('startDateBeforeRender');\r\n var todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0, 0, 0, 0);\r\n // $dates.filter(function (date) {\r\n // return date.utcDateValue < todaySinceMidnight.getTime();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n };\r\n ShiftsItemController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.shift.start) {\r\n var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n ShiftsItemController.prototype.submitShift = function () {\r\n var _this = this;\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.shift.id === undefined) {\r\n this.shift.employeeId = this.employee.id;\r\n this.ShiftService.post(this.shift).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.ShiftService.put(this.shift.id, this.shift).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n ShiftsItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.ShiftService.delete(this.shift.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n };\r\n ShiftsItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 0 }, { reload: true });\r\n };\r\n return ShiftsItemController;\r\n}());\r\nexports.shiftsItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: ShiftsItemController,\r\n template: __webpack_require__(450)\r\n};\r\n\n\n/***/ }),\n/* 631 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ShiftsListController = /** @class */ (function () {\r\n function ShiftsListController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 12;\r\n };\r\n this.$onChanges = function () {\r\n };\r\n }\r\n ShiftsListController.prototype.parseDate = function (item) {\r\n var date = new Date(item.start);\r\n return date;\r\n };\r\n return ShiftsListController;\r\n}());\r\nexports.shiftsListComponent = {\r\n bindings: {\r\n history: \"<\"\r\n },\r\n controller: ShiftsListController,\r\n template: __webpack_require__(451)\r\n};\r\n\n\n/***/ }),\n/* 632 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar moment = __webpack_require__(0);\r\nvar SkillsItemController = /** @class */ (function () {\r\n SkillsItemController.$inject = [\"EmployeeSkillsService\", \"$state\", \"$stateParams\", \"FileSaver\"];\r\n function SkillsItemController(EmployeeSkillsService, $state, $stateParams, FileSaver) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeeSkillsService = EmployeeSkillsService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.FileSaver = FileSaver;\r\n this.$onInit = function () {\r\n _this.employee = _this.resolve.employee;\r\n _this.skills = _this.resolve.skills;\r\n if (_this.$stateParams['employeeSkillId']) {\r\n _this.employeeSkill = _this.resolve.employeeSkills.find(function (s) { return s.id == _this.$stateParams['employeeSkillId']; });\r\n _this.getFiles(_this.$stateParams['employeeSkillId']);\r\n }\r\n else {\r\n _this.employeeSkill = new index_1.IEmployeeSkill();\r\n }\r\n };\r\n this.postFile = function (id) {\r\n return _this.EmployeeSkillsService.postBlob(id, _this.uploadfile);\r\n };\r\n this.getFiles = function (id) {\r\n _this.EmployeeSkillsService.getBlobs(id).then(function (files) {\r\n _this.file = files.value[files.value.length - 1];\r\n });\r\n };\r\n this.downloadFile = function (id) {\r\n _this.EmployeeSkillsService.getBlob(_this.employeeSkill.id, id).then(function (blob) {\r\n _this.FileSaver.saveAs(blob, _this.file.filenameWithExtention);\r\n });\r\n };\r\n }\r\n SkillsItemController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n SkillsItemController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n if (this.employeeSkill.start) {\r\n var activeDate = moment(this.employeeSkill.start).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n SkillsItemController.prototype.startDateSelected = function () {\r\n this.employeeSkill.end = moment(this.employeeSkill.start).add(1, 'year').toDate();\r\n };\r\n SkillsItemController.prototype.submitSkill = function () {\r\n var _this = this;\r\n this.employeeSkill.start = moment(this.employeeSkill.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.employeeSkill.end = moment(this.employeeSkill.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.employeeSkill.id === undefined) {\r\n if (this.employee) {\r\n this.employeeSkill.employeeId = this.employee.id;\r\n }\r\n this.EmployeeSkillsService.post(this.employeeSkill).then(function (data) {\r\n if (_this.uploadfile) {\r\n _this.postFile(data.id).then(function () {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n _this.closeModal();\r\n }\r\n });\r\n }\r\n else {\r\n this.EmployeeSkillsService.put(this.employeeSkill.id, this.employeeSkill).then(function (data) {\r\n if (_this.uploadfile) {\r\n _this.postFile(data.id).then(function () {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n _this.closeModal();\r\n }\r\n });\r\n }\r\n };\r\n SkillsItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.EmployeeSkillsService.delete(this.employeeSkill.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n };\r\n SkillsItemController.prototype.closeModal = function () {\r\n this.$state.go('^', { tab: 4 }, { reload: true });\r\n };\r\n return SkillsItemController;\r\n}());\r\nexports.skillsItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: SkillsItemController,\r\n template: __webpack_require__(452)\r\n};\r\n\n\n/***/ }),\n/* 633 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SkillsListController = /** @class */ (function () {\r\n function SkillsListController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 12;\r\n };\r\n this.$onChanges = function () {\r\n };\r\n }\r\n SkillsListController.prototype.parseDate = function (item) {\r\n var date = new Date(item.start);\r\n return date;\r\n };\r\n return SkillsListController;\r\n}());\r\nexports.skillsListComponent = {\r\n bindings: {\r\n employeeSkills: \"<\"\r\n },\r\n controller: SkillsListController,\r\n template: __webpack_require__(453)\r\n};\r\n\n\n/***/ }),\n/* 634 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar note_component_1 = __webpack_require__(635);\r\nvar note_list_component_1 = __webpack_require__(636);\r\nvar notes_states_1 = __webpack_require__(637);\r\n// import { noteItemComponent } from \"./note.item.component\";\r\n// import { noteItemBasicComponent } from \"./note.item.basic.component\";\r\n// import { noteArchiveComponent } from \"./note.archive.component\";\r\nvar subscriptionAppModule = {\r\n components: {\r\n noteComponent: note_component_1.noteComponent,\r\n noteListComponent: note_list_component_1.noteListComponent\r\n // , noteItemComponent\r\n // , noteItemBasicComponent\r\n // , noteArchiveComponent\r\n },\r\n states: [notes_states_1.noteState, notes_states_1.noteListState, notes_states_1.noteItemState, notes_states_1.noteItemBasicState\r\n // , noteArchiveState\r\n ],\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, subscriptionAppModule);\r\n\n\n/***/ }),\n/* 635 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar NoteController = /** @class */ (function () {\r\n function NoteController() {\r\n 'ngInject';\r\n }\r\n return NoteController;\r\n}());\r\nexports.noteComponent = {\r\n controller: NoteController,\r\n template: __webpack_require__(454)\r\n};\r\n\n\n/***/ }),\n/* 636 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar NoteListController = /** @class */ (function () {\r\n NoteListController.$inject = [\"$filter\", \"NotesService\"];\r\n function NoteListController($filter, NotesService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$filter = $filter;\r\n this.NotesService = NotesService;\r\n this.$onInit = function () {\r\n _this.sortType = 'createdOn';\r\n _this.filter();\r\n };\r\n this.notesService = NotesService;\r\n }\r\n NoteListController.prototype.filter = function () {\r\n var _this = this;\r\n this.filteredNotes = this.$filter('filter')(this.notes, function (note) {\r\n if (!!_this.selectedTag) {\r\n return note.tags.indexOf(_this.selectedTag) !== -1;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n };\r\n NoteListController.prototype.getNoteAuthorName = function (note) {\r\n if (note.accountName)\r\n return note.accountName;\r\n if (note.employeeDisplayName)\r\n return note.employeeDisplayName;\r\n if (note.applicantName)\r\n return note.applicantName;\r\n return '';\r\n };\r\n return NoteListController;\r\n}());\r\nexports.noteListComponent = {\r\n bindings: {\r\n notes: '<',\r\n noteTags: '<'\r\n },\r\n controller: NoteListController,\r\n template: __webpack_require__(455)\r\n};\r\n\n\n/***/ }),\n/* 637 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.noteState = {\r\n parent: 'app',\r\n name: \"notes\",\r\n url: \"/notes\",\r\n component: 'noteComponent',\r\n redirectTo: \"notes.list\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.noteListState = {\r\n name: \"notes.list\",\r\n url: \"/list\",\r\n resolve: {\r\n notes: [\"NotesService\", function (NotesService) {\r\n \"ngInject\";\r\n return NotesService.all().then(function (notes) { return notes.filter(function (note) { return !note.applicantId; }); });\r\n }],\r\n noteTags: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('NoteTags');\r\n }]\r\n },\r\n views: {\r\n \"main\": 'noteListComponent'\r\n },\r\n};\r\nexports.noteItemState = {\r\n name: \"notes.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"isArchive\": null\r\n },\r\n resolve: {\r\n note: [\"NotesService\", \"$stateParams\", function (NotesService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return NotesService.get($stateParams['id']);\r\n }\r\n }]\r\n },\r\n views: {\r\n \"main\": 'noteItemComponent'\r\n }\r\n};\r\nexports.noteItemBasicState = {\r\n name: \"notes.item.basic\",\r\n url: \"/basic\",\r\n modal: ['note'],\r\n resolve: {\r\n // users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); },\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n // contacts: (ContactsService: ContactsService) => { 'ngInject'; return ContactsService.all(); }, \r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n \"ngInject\";\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n },\r\n component: 'noteItemBasicComponent'\r\n};\r\n// export const noteArchiveState: aboTheme.IState = {\r\n// name: \"notes.archive\",\r\n// url: \"/archive\",\r\n// resolve: {\r\n// notes: (NotesService: NotesService) => { \"ngInject\"; return NotesService.getArchive(); },\r\n// },\r\n// views: {\r\n// \"main\": 'noteArchiveComponent'\r\n// },\r\n// }; \r\n\n\n/***/ }),\n/* 638 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar quotations_states_1 = __webpack_require__(643);\r\nvar quotations_component_1 = __webpack_require__(640);\r\nvar quotations_dashboard_component_1 = __webpack_require__(642);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar index_1 = __webpack_require__(5);\r\nvar invoiceDetails_component_1 = __webpack_require__(639);\r\nvar quotations_cootje_component_1 = __webpack_require__(641);\r\nvar cootje_service_1 = __webpack_require__(262);\r\nvar quotationsAppModule = {\r\n components: { quotationsComponent: quotations_component_1.quotationsComponent, quotationsDashboardComponent: quotations_dashboard_component_1.quotationsDashboardComponent, invoiceDetailsComponent: invoiceDetails_component_1.invoiceDetailsComponent, quotationsCootjeComponent: quotations_cootje_component_1.quotationsCootjeComponent },\r\n states: [quotations_states_1.quotationsState, quotations_states_1.quotationDashboardState, quotations_states_1.quotationProformaState, quotations_states_1.quotationCootjeState],\r\n services: { InvoicesService: index_1.InvoicesService, TwinfieldService: index_1.TwinfieldService, CootjeService: cootje_service_1.CootjeService }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, quotationsAppModule);\r\n\n\n/***/ }),\n/* 639 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar InvoiceDetailsController = /** @class */ (function () {\r\n InvoiceDetailsController.$inject = [\"$state\"];\r\n function InvoiceDetailsController($state) {\r\n 'ngInject';\r\n this.$state = $state;\r\n // console.log('InvoiceDetailController');\r\n }\r\n InvoiceDetailsController.prototype.deleteInvoice = function () {\r\n // console.log('delete invoice');\r\n this.onUpdate({ action: 'delete' });\r\n };\r\n InvoiceDetailsController.prototype.sendToTwinfield = function () {\r\n // console.log('sendToTwinfield');\r\n this.onUpdate({ action: 'send' });\r\n };\r\n return InvoiceDetailsController;\r\n}());\r\nexports.invoiceDetailsComponent = {\r\n bindings: {\r\n invoice: '<',\r\n proformaInvoicesOnly: '<',\r\n onUpdate: '&'\r\n },\r\n controller: InvoiceDetailsController,\r\n template: __webpack_require__(456)\r\n};\r\n\n\n/***/ }),\n/* 640 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar QuotationsController = /** @class */ (function () {\r\n function QuotationsController() {\r\n 'ngInject';\r\n }\r\n return QuotationsController;\r\n}());\r\nexports.quotationsComponent = {\r\n controller: QuotationsController,\r\n template: __webpack_require__(459)\r\n};\r\n\n\n/***/ }),\n/* 641 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar QuotationsCootjeController = /** @class */ (function () {\r\n QuotationsCootjeController.$inject = [\"CootjeService\", \"$stateParams\", \"$scope\"];\r\n function QuotationsCootjeController(CootjeService, $stateParams, $scope) {\r\n 'ngInject';\r\n var _this = this;\r\n this.CootjeService = CootjeService;\r\n this.$stateParams = $stateParams;\r\n this.$scope = $scope;\r\n this.loading = false;\r\n this.hasKM = false;\r\n this.$onInit = function () {\r\n /** Set return URI */\r\n // this.TwinfieldService.setTwinfieldRedirectUri();\r\n // this.proformaInvoicesOnly = this.$stateParams['proformaInvoicesOnly'];\r\n _this.sortType = 'account.name';\r\n _this.moment = __webpack_require__(0);\r\n _this.startDate = _this.moment().startOf('isoweek').toDate();\r\n _this.endDate = _this.moment().endOf('isoweek').toDate();\r\n _this.getCootje();\r\n };\r\n }\r\n QuotationsCootjeController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n QuotationsCootjeController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n QuotationsCootjeController.prototype.prevWeek = function () {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').toDate();\r\n };\r\n QuotationsCootjeController.prototype.nextWeek = function () {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(7, 'day').toDate();\r\n };\r\n QuotationsCootjeController.prototype.getCootje = function () {\r\n var _this = this;\r\n this.CootjeService.customGet('', { from: this.startDate, till: this.endDate }).then(function (result) {\r\n _this.list = result;\r\n if (_this.currentItem) {\r\n _this.selectInvoice(_this.list.find(function (i) { return i.employeeId == _this.currentItem.employeeId; }));\r\n }\r\n });\r\n };\r\n QuotationsCootjeController.prototype.selectInvoice = function (item) {\r\n var _this = this;\r\n this.currentItem = item;\r\n this.hasKM = false;\r\n this.currentItem.diensten.forEach(function (dienst) {\r\n dienst.declarations.forEach(function (declaration) {\r\n if (declaration.registrationType == 2) {\r\n _this.hasKM = true;\r\n }\r\n });\r\n });\r\n };\r\n QuotationsCootjeController.prototype.sendCootje = function () {\r\n var _this = this;\r\n this.loading = true;\r\n $('#sendToCootjeModal').modal('show');\r\n console.log(this.currentItem);\r\n this.CootjeService.sendToCootje(this.currentItem.diensten).then(function (result) {\r\n _this.repport = { 'failCount': 0, 'successCount': 0, 'fail': [], 'success': [] };\r\n console.log(result.message);\r\n _this.repport.failCount = result.message.fail != null ? result.message.fail.length : 0;\r\n _this.repport.successCount = result.message.succes != null ? result.message.succes.length : 0;\r\n _this.repport.fail = result.message.fail;\r\n _this.repport.fail.forEach(function (fail) {\r\n fail.shift = _this.currentItem.diensten.find(function (i) { return i.shiftId == fail.dienstGUID; }).shift;\r\n });\r\n _this.repport.success = result.message.succes;\r\n _this.repport.success.forEach(function (success) {\r\n success.shift = _this.currentItem.diensten.find(function (i) { return i.shiftId == success.dienstGUID; }).shift;\r\n });\r\n _this.getCootje();\r\n _this.loading = false;\r\n });\r\n };\r\n return QuotationsCootjeController;\r\n}());\r\nexports.quotationsCootjeComponent = {\r\n controller: QuotationsCootjeController,\r\n template: __webpack_require__(457)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 642 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar QuotationsDashboardController = /** @class */ (function () {\r\n QuotationsDashboardController.$inject = [\"InvoicesService\", \"$stateParams\", \"$scope\", \"TwinfieldService\"];\r\n function QuotationsDashboardController(InvoicesService, $stateParams, $scope, TwinfieldService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.InvoicesService = InvoicesService;\r\n this.$stateParams = $stateParams;\r\n this.$scope = $scope;\r\n this.TwinfieldService = TwinfieldService;\r\n this.$onInit = function () {\r\n /** Set return URI */\r\n _this.TwinfieldService.setTwinfieldRedirectUri();\r\n _this.proformaInvoicesOnly = _this.$stateParams['proformaInvoicesOnly'];\r\n _this.sortType = 'account.name';\r\n _this.moment = __webpack_require__(0);\r\n _this.startDate = _this.moment().startOf('isoweek').toDate();\r\n _this.endDate = _this.moment().endOf('isoweek').toDate();\r\n if (_this.proformaInvoicesOnly) {\r\n _this.getInvoices();\r\n }\r\n };\r\n }\r\n QuotationsDashboardController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n QuotationsDashboardController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n QuotationsDashboardController.prototype.prevWeek = function () {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').toDate();\r\n };\r\n QuotationsDashboardController.prototype.nextWeek = function () {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(7, 'day').toDate();\r\n };\r\n QuotationsDashboardController.prototype.getInvoices = function () {\r\n var _this = this;\r\n this.InvoicesService.customGet('makeinvoices', { from: this.startDate, till: this.endDate, proformaInvoicesOnly: this.proformaInvoicesOnly }).then(function (result) {\r\n _this.invoices = result;\r\n _this.checkForUnpaid();\r\n _this.getTotalAmount();\r\n });\r\n };\r\n QuotationsDashboardController.prototype.selectInvoice = function (item) {\r\n this.currentInvoice = item;\r\n };\r\n QuotationsDashboardController.prototype.checkForUnpaid = function () {\r\n this.invoices.forEach(function (invoice) {\r\n invoice.lines.forEach(function (line) {\r\n if (line.count > 0 && (line.totalAmount == 0 || line.totalAmount == undefined || line.amountPerUnit == 0 || line.amountPerUnit == undefined)) {\r\n invoice.hasUnpaid = true;\r\n }\r\n });\r\n });\r\n };\r\n QuotationsDashboardController.prototype.getTotalAmount = function () {\r\n var _this = this;\r\n this.invoicesTotalAmount = 0;\r\n this.twinfieldTotalAmount = 0;\r\n this.invoices.forEach(function (i) {\r\n _this.invoicesTotalAmount += i.totalAmount;\r\n if (i.twinfieldNumber) {\r\n _this.twinfieldTotalAmount += i.totalAmount;\r\n }\r\n });\r\n };\r\n QuotationsDashboardController.prototype.updateInvoice = function (action) {\r\n var _this = this;\r\n switch (action) {\r\n case 'delete': {\r\n this.InvoicesService.delete(this.currentInvoice.id).then(function () {\r\n _this.invoices = _this.invoices.filter(function (i) { return i.id != _this.currentInvoice.id; });\r\n _this.currentInvoice = null;\r\n });\r\n break;\r\n }\r\n case 'send': {\r\n this.InvoicesService.customPost(this.currentInvoice.id + '/send', null).then(function (data) {\r\n //this.currentInvoice = data;\r\n _.find(_this.invoices, { \"id\": _this.currentInvoice.id }).twinfieldNumber = data.twinfieldNumber;\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n return QuotationsDashboardController;\r\n}());\r\nexports.quotationsDashboardComponent = {\r\n controller: QuotationsDashboardController,\r\n template: __webpack_require__(458)\r\n};\r\n\n\n/***/ }),\n/* 643 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.quotationsState = {\r\n parent: \"app\",\r\n name: \"quotations\",\r\n url: \"/quotations\",\r\n redirectTo: \"quotations.proforma\",\r\n component: \"quotationsComponent\",\r\n data: {\r\n permissions: {\r\n only: ['FINANCE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.quotationProformaState = {\r\n name: \"quotations.proforma\",\r\n url: \"/proforma\",\r\n params: {\r\n proformaInvoicesOnly: true\r\n },\r\n views: {\r\n \"main\": 'quotationsDashboardComponent'\r\n }\r\n};\r\nexports.quotationCootjeState = {\r\n name: \"quotations.cootje\",\r\n url: \"/cootje\",\r\n params: {\r\n proformaInvoicesOnly: true\r\n },\r\n views: {\r\n \"main\": 'quotationsCootjeComponent'\r\n }\r\n};\r\nexports.quotationDashboardState = {\r\n name: \"quotations.dashboard\",\r\n url: \"/dashboard\",\r\n params: {\r\n proformaInvoicesOnly: false\r\n },\r\n views: {\r\n \"main\": 'quotationsDashboardComponent'\r\n }\r\n};\r\n\n\n/***/ }),\n/* 644 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar schedule_declaration_component_1 = __webpack_require__(647);\r\nvar schedule_item_component_1 = __webpack_require__(648);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar schedule_states_1 = __webpack_require__(650);\r\nvar schedule_component_1 = __webpack_require__(646);\r\nvar schedule_calendar_component_1 = __webpack_require__(645);\r\nvar schedule_list_component_1 = __webpack_require__(649);\r\nvar subscription_component_1 = __webpack_require__(651);\r\nvar scheduleAppModule = {\r\n components: { scheduleComponent: schedule_component_1.scheduleComponent, scheduleCalendarComponent: schedule_calendar_component_1.scheduleCalendarComponent, scheduleListComponent: schedule_list_component_1.scheduleListComponent, subscriptionItemComponent: subscription_component_1.subscriptionItemComponent, scheduleItemComponent: schedule_item_component_1.scheduleItemComponent, scheduleDeclarationComponent: schedule_declaration_component_1.scheduleDeclarationComponent },\r\n states: [schedule_states_1.scheduleState, schedule_states_1.scheduleCalendarState, schedule_states_1.scheduleListState,\r\n schedule_states_1.scheduleDeclarationState, schedule_states_1.scheduleAvailabilityState, schedule_states_1.scheduleSubscriptionState,\r\n schedule_states_1.scheduleShiftItemState, schedule_states_1.scheduleListItemState, schedule_states_1.scheduleListItemDeclarationState],\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, scheduleAppModule);\r\n\n\n/***/ }),\n/* 645 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar calendar_service_1 = __webpack_require__(17);\r\nvar ScheduleCalendarController = /** @class */ (function () {\r\n ScheduleCalendarController.$inject = [\"CalendarService\", \"AuthService\", \"ShiftService\", \"$state\", \"uiCalendarConfig\", \"$scope\", \"$compile\", \"$sce\", \"screenSize\"];\r\n function ScheduleCalendarController(CalendarService, AuthService, ShiftService, $state, uiCalendarConfig, $scope, $compile, $sce, screenSize) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.CalendarService = CalendarService;\r\n this.AuthService = AuthService;\r\n this.ShiftService = ShiftService;\r\n this.$state = $state;\r\n this.uiCalendarConfig = uiCalendarConfig;\r\n this.$scope = $scope;\r\n this.$compile = $compile;\r\n this.$sce = $sce;\r\n this.screenSize = screenSize;\r\n this.eventSources = [];\r\n this.$onInit = function () {\r\n // this.employeeId = this.AuthService.getEmployeeId(this.AuthService.GetAuthorizationData());\r\n _this.eventSources = [_this.getEvents];\r\n _this.uiConfig = {\r\n calendar: {\r\n height: 700,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: false,\r\n axisFormat: 'h:mm',\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: false,\r\n eventClick: _this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: _this.eventRender\r\n }\r\n };\r\n _this.ShiftService.subscribe('ScheduleCalendarController', function (type) {\r\n var newShift;\r\n var calendarItem;\r\n switch (type) {\r\n case 'post': {\r\n newShift = _this.ShiftService.item;\r\n calendarItem = new calendar_service_1.ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n _this.shifts.push(calendarItem);\r\n break;\r\n }\r\n case 'put': {\r\n _this.shifts = _this.shifts.filter(function (s) { return s.shift.id !== newShift.id; });\r\n if (_this.ShiftService.item.status !== 99) {\r\n newShift = _this.ShiftService.item;\r\n calendarItem = new calendar_service_1.ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n _this.shifts.push(calendarItem);\r\n }\r\n break;\r\n }\r\n case 'delete': {\r\n _this.shifts = _this.shifts.filter(function (s) { return s.shift.id !== _this.ShiftService.itemId; });\r\n break;\r\n }\r\n }\r\n _this.uiCalendarConfig.calendars['scheduleCalendar'].fullCalendar('refetchEvents');\r\n });\r\n if (_this.AuthService.hasRole(\"employee\")) {\r\n _this.isEmployee = true;\r\n }\r\n else {\r\n _this.isEmployee = false;\r\n }\r\n };\r\n this.openItem = function (event, jsEvent) {\r\n $(jsEvent.currentTarget).tooltip('hide');\r\n switch (event.type) {\r\n case 'shift':\r\n if (event.item.comment == \"Aangemaakt door gebruiker!\") {\r\n _this.$state.go('schedule.list.item', { 'id': event.item.id, 'start': event.item.start });\r\n }\r\n else {\r\n _this.$state.go('schedule.list.item', { 'id': event.item.id, 'start': event.item.start });\r\n }\r\n break;\r\n case 'availability':\r\n _this.$state.go('schedule.calendar.availability', { 'availabilityId': event.item.id });\r\n break;\r\n case 'subscription':\r\n _this.$state.go('schedule.calendar.subscription', { 'employeeId': '', 'subscriptionId': event.item.id });\r\n break;\r\n }\r\n };\r\n this.eventRender = function (event, element, view) {\r\n var status = _.find(_this.statuses, { code: event.status });\r\n var statusName = status ? status.name : \"\";\r\n var eventTitle = event.title + \" - \" + event.item.teamName + \"
\" + statusName + \"\";\r\n var color;\r\n switch (event.type) {\r\n case 'shift':\r\n if (_this.isEmployee && event.item.declarations.length > 0) {\r\n color = '#165B68'; // @brand-info darker shade\r\n eventTitle = event.title + \" - \" + event.item.teamName + \"
Gedeclareerd\";\r\n }\r\n else {\r\n color = '#4cc3d9'; // @brand-info\r\n }\r\n break;\r\n case 'availability':\r\n if (event.title.toLowerCase() == 'beschikbaar') {\r\n color = '#2ECC71'; // @brand-success\r\n eventTitle = event.title + \"
Beschikbaar\";\r\n }\r\n else {\r\n color = '#d96557'; // @brand-danger\r\n eventTitle = event.title + \"
Niet beschikbaar\";\r\n }\r\n break;\r\n case 'subscription':\r\n eventTitle = event.title + \"
Ingeschreven\";\r\n color = '#ffc65d'; // @brand-warning\r\n //element.hide();\r\n break;\r\n }\r\n if (moment().isBefore(event.start)) {\r\n element.css({ 'background-color': color, 'border-color': color });\r\n }\r\n else {\r\n element.css({ 'background-color': color, 'border-color': color, 'opacity': 0.7 });\r\n }\r\n element.tooltip({ container: \"body\", title: eventTitle, placement: \"top\", html: true });\r\n var title = element.find('.fc-title, .fc-list-item-title');\r\n title.html(eventTitle);\r\n _this.$compile(element)(_this.$scope);\r\n };\r\n this.getEvents = function (start, end, timezone, callback) {\r\n // console.log('getEvents');\r\n _this.CalendarService.customAll('employee', { 'start': start.toDate(), 'end': end.toDate() }).then(function (events) {\r\n //filter out canceld shifts\r\n events = _.reject(events, { \"status\": \"92\" });\r\n events = _.reject(events, { \"title\": null });\r\n _this.shifts = events;\r\n callback(events);\r\n });\r\n };\r\n }\r\n return ScheduleCalendarController;\r\n}());\r\nexports.scheduleCalendarComponent = {\r\n bindings: {\r\n statuses: \"<\"\r\n },\r\n controller: ScheduleCalendarController,\r\n template: __webpack_require__(460)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 646 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ScheduleController = /** @class */ (function () {\r\n function ScheduleController() {\r\n 'ngInject';\r\n }\r\n return ScheduleController;\r\n}());\r\nexports.scheduleComponent = {\r\n controller: ScheduleController,\r\n template: __webpack_require__(462)\r\n};\r\n\n\n/***/ }),\n/* 647 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar IShiftTeam = /** @class */ (function () {\r\n function IShiftTeam() {\r\n }\r\n return IShiftTeam;\r\n}());\r\nvar ScheduleDeclarationController = /** @class */ (function () {\r\n ScheduleDeclarationController.$inject = [\"DeclarationService\", \"EmployeesService\", \"$stateParams\"];\r\n function ScheduleDeclarationController(DeclarationService, EmployeesService, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.DeclarationService = DeclarationService;\r\n this.EmployeesService = EmployeesService;\r\n this.$stateParams = $stateParams;\r\n this.isZZP = false;\r\n this.invoiceMonthly = false;\r\n this.$onInit = function () {\r\n _this.EmployeesService.getIsZZP().then(function (value) {\r\n _this.isZZP = value.zzp;\r\n _this.invoiceMonthly = value.invoiceMonthly;\r\n _this.moment = __webpack_require__(0);\r\n if (_this.$stateParams[\"start\"]) {\r\n if (_this.invoiceMonthly) {\r\n _this.startDate = _this.moment(_this.$stateParams[\"start\"]).startOf('month').toDate();\r\n _this.endDate = _this.moment(_this.$stateParams[\"start\"]).endOf('month').toDate();\r\n }\r\n else {\r\n _this.startDate = _this.moment(_this.$stateParams[\"start\"]).startOf('isoweek').toDate();\r\n _this.endDate = _this.moment(_this.$stateParams[\"start\"]).endOf('isoweek').toDate();\r\n }\r\n }\r\n else {\r\n if (_this.invoiceMonthly) {\r\n _this.startDate = _this.moment().startOf('month').toDate();\r\n _this.endDate = _this.moment().endOf('month').toDate();\r\n }\r\n else {\r\n _this.startDate = _this.moment().startOf('isoweek').toDate();\r\n _this.endDate = _this.moment().endOf('isoweek').toDate();\r\n }\r\n }\r\n _this.getDeclartions();\r\n });\r\n };\r\n this.getDeclartions = function () {\r\n _this.EmployeesService.customAll('employeeSummary', { from: moment(_this.startDate).format(\"YYYY-MM-DD HH:mm\"), till: moment(_this.endDate).format(\"YYYY-MM-DD HH:mm\") }).then(function (employeeSummary) {\r\n _this.employeeSummary = employeeSummary[0];\r\n _this.declarationstoSend = { 'count': 0, 'totalHours': 0, 'countShifts': 0, 'teams': [] };\r\n _this.employeeSummary.shifts.forEach(function (shift) {\r\n _this.declarationstoSend.countShifts++;\r\n shift.declarations.forEach(function (declaration) {\r\n if (declaration.status <= 1) {\r\n _this.declarationstoSend.count++;\r\n _this.declarationstoSend.totalHours = _this.declarationstoSend.totalHours + declaration.duration;\r\n if (!_this.declarationstoSend.teams.find(function (t) { return t.id == shift.teamId; })) {\r\n _this.declarationstoSend.teams.push({\r\n id: shift.teamId,\r\n name: shift.teamName,\r\n location: shift.teamLocationName,\r\n account: shift.teamLocationAccountName,\r\n invoiceNumber: ''\r\n });\r\n }\r\n }\r\n });\r\n });\r\n });\r\n };\r\n this.postConfirm = function () {\r\n _this.DeclarationService.confirm({ teams: _this.declarationstoSend.teams, from: moment(_this.startDate).format(\"YYYY-MM-DD HH:mm\"), till: moment(_this.endDate).format(\"YYYY-MM-DD HH:mm\") }).then(function (data) {\r\n _this.getDeclartions();\r\n $('#sendDeclartionsFormModal').modal('hide');\r\n });\r\n };\r\n }\r\n ScheduleDeclarationController.prototype.prevWeek = function () {\r\n if (this.invoiceMonthly) {\r\n this.startDate = this.moment(this.startDate).add(-1, 'month').startOf('month').toDate();\r\n console.log(this.startDate);\r\n this.endDate = this.moment(this.endDate).add(-1, 'month').endOf('month').toDate();\r\n console.log(this.endDate);\r\n }\r\n else {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').toDate();\r\n }\r\n this.getDeclartions();\r\n };\r\n ScheduleDeclarationController.prototype.nextWeek = function () {\r\n if (this.invoiceMonthly) {\r\n this.startDate = this.moment(this.startDate).add(1, 'month').startOf('month').toDate();\r\n this.endDate = this.moment(this.endDate).add(1, 'month').endOf('month').toDate();\r\n }\r\n else {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(7, 'day').toDate();\r\n }\r\n this.getDeclartions();\r\n };\r\n ScheduleDeclarationController.prototype.sendZPPDeclarations = function () {\r\n $('#sendDeclartionsFormModal').modal('show');\r\n };\r\n return ScheduleDeclarationController;\r\n}());\r\nexports.scheduleDeclarationComponent = {\r\n bindings: {\r\n onChange: '&',\r\n },\r\n controller: ScheduleDeclarationController,\r\n template: __webpack_require__(461)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 648 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar ScheduleItemController = /** @class */ (function () {\r\n ScheduleItemController.$inject = [\"ShiftService\", \"EmployeesService\", \"$stateParams\", \"LocationService\"];\r\n function ScheduleItemController(ShiftService, EmployeesService, $stateParams, LocationService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.$stateParams = $stateParams;\r\n this.LocationService = LocationService;\r\n this.$onInit = function () {\r\n if (_this.$stateParams['id']) {\r\n _this.getShift();\r\n }\r\n if (_this.$stateParams['id']) {\r\n _this.onChange({ type: 'init', data: _this.$stateParams['id'] });\r\n }\r\n };\r\n this.getShift = function () {\r\n _this.ShiftService.get(_this.$stateParams['id']).then(function (shift) {\r\n _this.shift = shift;\r\n _this.EmployeesService.customAll('employeeSummary', { from: moment(_this.shift.start).subtract(1, 'h').toDate(), till: moment(_this.shift.start).add(1, 'h').toDate() }).then(function (employeeSummary) {\r\n _this.employeeSummary = employeeSummary[0];\r\n });\r\n _this.LocationService.get(_this.shift.teamLocationId).then(function (location) {\r\n _this.location = location;\r\n });\r\n });\r\n };\r\n }\r\n return ScheduleItemController;\r\n}());\r\nexports.scheduleItemComponent = {\r\n bindings: {\r\n // shift: '<',\r\n // employees: '<',\r\n // statuses: '<',\r\n // accounts: '<',\r\n // functions: '<',\r\n onChange: '&',\r\n },\r\n controller: ScheduleItemController,\r\n template: __webpack_require__(463)\r\n};\r\n\n\n/***/ }),\n/* 649 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar angular = __webpack_require__(6);\r\nvar ScheduleListController = /** @class */ (function () {\r\n ScheduleListController.$inject = [\"EmployeesService\", \"DeclarationService\", \"ShiftService\", \"$state\", \"$stateParams\", \"$timeout\", \"$filter\", \"screenSize\"];\r\n function ScheduleListController(EmployeesService, DeclarationService, ShiftService, $state, $stateParams, $timeout, $filter, screenSize) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.DeclarationService = DeclarationService;\r\n this.ShiftService = ShiftService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.$timeout = $timeout;\r\n this.$filter = $filter;\r\n this.screenSize = screenSize;\r\n this.$onInit = function () {\r\n _this.shiftsGrouping = 'date';\r\n _this.filter = {\r\n status: null\r\n };\r\n _this.moment = __webpack_require__(0);\r\n if (_this.$stateParams[\"start\"]) {\r\n _this.startDate = _this.moment.utc(_this.$stateParams[\"start\"]).startOf('isoweek').format();\r\n _this.endDate = _this.moment.utc(_this.$stateParams[\"start\"]).endOf('isoweek').format();\r\n }\r\n else {\r\n _this.startDate = _this.moment().startOf('isoweek').format();\r\n _this.endDate = _this.moment().endOf('isoweek').format();\r\n }\r\n _this.isMessageOpen = false;\r\n _this.getShifts();\r\n //this.getAvailibility();\r\n // this.getShiftsByDate();\r\n // this.DeclarationService.subscribe('ScheduleListController', (type) => {\r\n // var currentShift: IShift;\r\n // switch (type) {\r\n // case 'post': {\r\n // currentShift = this.employee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n // // console.log(this.currentEmployee)\r\n // // console.log(this.DeclarationService.item)\r\n // // console.log(currentShift)\r\n // currentShift.declarations.push(this.DeclarationService.item);\r\n // this.updateShiftDeclarationsSummary(currentShift);\r\n // break;\r\n // }\r\n // case 'put': {\r\n // currentShift = this.employee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n // currentShift.declarations = currentShift.declarations.filter(s => s.id !== this.DeclarationService.item.id);\r\n // currentShift.declarations.push(this.DeclarationService.item);\r\n // this.updateShiftDeclarationsSummary(currentShift);\r\n // break;\r\n // }\r\n // case 'delete': { \r\n // currentShift = this.employee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n // // console.log(this.currentEmployee)\r\n // // console.log(this.DeclarationService.item)\r\n // // console.log(currentShift)\r\n // this.updateShiftDeclarationsSummary(currentShift);\r\n // break;\r\n // }\r\n // }\r\n // });\r\n };\r\n this.$onDestroy = function () {\r\n //this.DeclarationService.unsubscribe('ScheduleListController');\r\n };\r\n // updateShiftDeclarationsSummary(currentShift) {\r\n // console.log('updateShiftDeclarationsSummary')\r\n // this.ShiftService.customGet(this.DeclarationService.item.shiftId + '/shiftDeclarations').then((result) => {\r\n // currentShift.plannedHours = result.plannedHours;\r\n // currentShift.declaredHours = result.declaredHours;\r\n // currentShift.hoursDifference = result.hoursDifference;\r\n // // this.EmployeesService.customGet(this.DeclarationService.item.employeeId + '/employeeSummary', {from: this.startDate, till: this.endDate}).then((result) => {\r\n // // this.employee.shiftHours = result.shiftHours;\r\n // // this.employee.shiftDeclarationHours = result.shiftDeclarationHours;\r\n // // });\r\n // });\r\n // }\r\n this.getShifts = function (scrollTo) {\r\n if (scrollTo === void 0) { scrollTo = true; }\r\n _this.ShiftService.getByCurrentEmployee(_this.startDate, _this.endDate).then(function (result) {\r\n _this.shifts = result;\r\n _this.filterShifts(scrollTo);\r\n });\r\n };\r\n this.getAvailibility = function (scrollTo) {\r\n if (scrollTo === void 0) { scrollTo = true; }\r\n _this.EmployeesService.getAvailabilityByRange(_this.startDate, _this.endDate).then(function (result) {\r\n _this.availibility = result;\r\n _this.availibility.forEach(function (item) {\r\n var dates = _this.getDateBetween(item.start, item.end);\r\n dates.forEach(function (date) {\r\n //console.log(moment(date).format(\"YYYY-MM-DD\"));\r\n var n = angular.copy(item);\r\n n.start = moment(date).format(\"YYYY-MM-DD\");\r\n n.end = moment(date).format(\"YYYY-MM-DD\");\r\n _this.shifts.push(n);\r\n //console.log(this.availibility);\r\n });\r\n if (dates.length > 0) {\r\n item.end = moment(item.start).format(\"YYYY-MM-DD\");\r\n _this.shifts.push(item);\r\n }\r\n else {\r\n _this.shifts.push(item);\r\n }\r\n });\r\n //this.shifts = //_.merge(this.shifts, this.availibility);\r\n _this.filterShifts(scrollTo);\r\n });\r\n };\r\n this.getDateBetween = function (start, end) {\r\n var dates = [];\r\n var startdate = moment(start).startOf('day');\r\n var lastDate = moment(end).startOf('day');\r\n while (startdate.add(1, 'days').diff(lastDate) < 0) {\r\n //console.log(startdate.toDate());\r\n dates.push(startdate.clone().toDate());\r\n }\r\n return (dates);\r\n };\r\n this.filterShifts = function (scrollTo) {\r\n if (scrollTo === void 0) { scrollTo = true; }\r\n if (_this.shiftsGrouping && _this.shiftsGrouping == 'date') {\r\n _this.groupedShifts = _.groupBy(_this.shifts, function (item) {\r\n return moment(item.start).format('dd DD-MM-YYYY');\r\n });\r\n }\r\n };\r\n this.handleChildChange = function (type, data) {\r\n // console.log(type);\r\n switch (type) {\r\n case 'init':\r\n _this.isMessageOpen = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n this.months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];\r\n }\r\n ScheduleListController.prototype.prevWeek = function () {\r\n this.startDate = this.moment.utc(this.startDate).add(-7, 'day').format();\r\n this.endDate = this.moment.utc(this.endDate).add(-7, 'day').format();\r\n this.getShifts();\r\n };\r\n ScheduleListController.prototype.nextWeek = function () {\r\n this.startDate = this.moment.utc(this.startDate).add(7, 'day').format();\r\n this.endDate = this.moment.utc(this.endDate).add(7, 'day').format();\r\n this.getShifts();\r\n };\r\n // getShiftsByDate() {\r\n // this.EmployeesService.customAll('employeeSummary', { from: this.startDate, till: this.endDate }).then((result: any) => {\r\n // this.employee = result[0];\r\n // });\r\n // }\r\n ScheduleListController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n ScheduleListController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n return ScheduleListController;\r\n}());\r\nexports.scheduleListComponent = {\r\n bindings: {},\r\n controller: ScheduleListController,\r\n template: __webpack_require__(464)\r\n};\r\n\n\n/***/ }),\n/* 650 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.scheduleState = {\r\n parent: 'app',\r\n name: \"schedule\",\r\n url: \"/schedule\",\r\n component: 'scheduleComponent',\r\n redirectTo: 'schedule.calendar',\r\n data: {\r\n permissions: {\r\n only: ['EMPLOYEE']\r\n }\r\n }\r\n};\r\nexports.scheduleCalendarState = {\r\n name: \"schedule.calendar\",\r\n url: \"/calendar\",\r\n views: {\r\n \"main\": 'scheduleCalendarComponent'\r\n },\r\n resolve: {\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }]\r\n }\r\n};\r\nexports.scheduleListState = {\r\n name: \"schedule.list\",\r\n url: \"/list?start\",\r\n params: {\r\n shiftId: null,\r\n start: null\r\n },\r\n views: {\r\n \"main\": 'scheduleListComponent'\r\n },\r\n resolve: {},\r\n data: {\r\n contentClasses: 'no-padding'\r\n }\r\n};\r\nexports.scheduleListItemState = {\r\n name: \"schedule.list.item\",\r\n url: \"/item/:id\",\r\n resolve: {},\r\n views: {\r\n \"shiflistitem@schedule.list\": 'scheduleItemComponent'\r\n },\r\n};\r\nexports.scheduleListItemDeclarationState = {\r\n name: \"schedule.declarations\",\r\n url: \"/declaration?openShiftId\",\r\n params: {\r\n openShiftId: null,\r\n },\r\n resolve: {},\r\n views: {\r\n \"main\": 'scheduleDeclarationComponent'\r\n },\r\n};\r\nexports.scheduleDeclarationState = {\r\n name: \"schedule.declarations.declaration\",\r\n url: \"/declaration/:declarationId?employeeId&shiftId&type&shiftStartDate&shiftEndDate\",\r\n params: {\r\n employeeId: null,\r\n shiftId: null,\r\n type: null,\r\n shiftStartDate: null,\r\n shiftEndDate: null,\r\n },\r\n modal: [],\r\n resolve: {\r\n wageCodes: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('HourCodes');\r\n }],\r\n declaration: [\"DeclarationService\", \"$stateParams\", function (DeclarationService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['declarationId']) {\r\n return DeclarationService.get($stateParams['declarationId']);\r\n }\r\n }],\r\n refresh: function () { return true; }\r\n },\r\n component: 'declarationComponent'\r\n};\r\nexports.scheduleAvailabilityState = {\r\n name: \"schedule.calendar.availability\",\r\n url: \"/availability/:availabilityId\",\r\n params: {\r\n \"availabilityId\": null\r\n },\r\n modal: [],\r\n resolve: {\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('AvalabilityStatus');\r\n }]\r\n },\r\n component: 'availabilityItemComponent'\r\n};\r\nexports.scheduleShiftItemState = {\r\n name: \"schedule.list.item.edit\",\r\n url: \"/edit\",\r\n params: {\r\n \"status\": null\r\n },\r\n modal: true,\r\n size: \"lg\",\r\n resolve: {\r\n shift: [\"ShiftService\", \"$stateParams\", function (ShiftService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n \"ngInject\";\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n statuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('ShiftStatus');\r\n }],\r\n refresh: function () { return true; }\r\n },\r\n component: 'shiftItemComponent'\r\n};\r\nexports.scheduleSubscriptionState = {\r\n name: \"schedule.calendar.subscription\",\r\n url: \"/subscription/:employeeId/:subscriptionId\",\r\n params: {\r\n \"subscriptionId\": null\r\n },\r\n modal: [],\r\n resolve: {},\r\n component: 'subscriptionItemComponent'\r\n};\r\n\n\n/***/ }),\n/* 651 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SubscriptionItemController = /** @class */ (function () {\r\n SubscriptionItemController.$inject = [\"EmployeesService\", \"$stateParams\", \"$state\", \"$timeout\"];\r\n function SubscriptionItemController(EmployeesService, $stateParams, $state, $timeout) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.$onInit = function () {\r\n _this.employeeId = _this.$stateParams[\"employeeId\"];\r\n _this.EmployeesService.getChild(_this.employeeId, 'subscriptions').then(function (result) {\r\n var subscriptions = result;\r\n _this.subscription = subscriptions.find(function (s) { return s.id == _this.$stateParams[\"subscriptionId\"]; });\r\n });\r\n };\r\n }\r\n SubscriptionItemController.prototype.submitSubscription = function () {\r\n var _this = this;\r\n if (this.subscription.id === undefined) {\r\n this.EmployeesService.postChild(this.subscription, this.employeeId, 'subscriptions').then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.EmployeesService.putChild(this.subscription, this.employeeId, 'subscriptions', this.subscription.id).then(function (data) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n SubscriptionItemController.prototype.delete = function () {\r\n var _this = this;\r\n this.EmployeesService.deleteChild(this.subscription.id, this.employeeId, 'subscriptions').then(function (data) {\r\n _this.closeModal();\r\n });\r\n };\r\n SubscriptionItemController.prototype.closeModal = function () {\r\n this.$state.go('^', {}, { reload: true });\r\n };\r\n return SubscriptionItemController;\r\n}());\r\nexports.subscriptionItemComponent = {\r\n bindings: {\r\n resolve: '<'\r\n },\r\n controller: SubscriptionItemController,\r\n template: __webpack_require__(465)\r\n};\r\n\n\n/***/ }),\n/* 652 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SettingsCompanyController = /** @class */ (function () {\r\n SettingsCompanyController.$inject = [\"SettingsService\"];\r\n function SettingsCompanyController(SettingsService) {\r\n \"ngInject\";\r\n this.settingsService = SettingsService;\r\n }\r\n SettingsCompanyController.prototype.submitSettings = function () {\r\n // console.log('submitSettings');\r\n this.settingsService.customPost('CompanySettings', this.company);\r\n };\r\n return SettingsCompanyController;\r\n}());\r\nexports.settingsCompanyComponent = {\r\n bindings: {\r\n company: \"<\"\r\n },\r\n controller: SettingsCompanyController,\r\n template: __webpack_require__(466)\r\n};\r\n\n\n/***/ }),\n/* 653 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeeItemController = /** @class */ (function () {\r\n EmployeeItemController.$inject = [\"PersonService\"];\r\n function EmployeeItemController(PersonService) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.PersonService = PersonService;\r\n this.save = function () {\r\n if (_this.employee.id && _this.employee.id > 0) {\r\n _this.PersonService.put(_this.employee.id, _this.employee).then(function () {\r\n });\r\n }\r\n else {\r\n _this.PersonService.post(_this.employee).then(function () {\r\n });\r\n }\r\n };\r\n }\r\n return EmployeeItemController;\r\n}());\r\nexports.employeeItemComponent = {\r\n bindings: {\r\n employee: \"<\"\r\n },\r\n controller: EmployeeItemController,\r\n template: __webpack_require__(467)\r\n};\r\n\n\n/***/ }),\n/* 654 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeeListController = /** @class */ (function () {\r\n function EmployeeListController() {\r\n \"ngInject\";\r\n }\r\n return EmployeeListController;\r\n}());\r\nexports.employeeListComponent = {\r\n bindings: {\r\n employees: \"<\"\r\n },\r\n controller: EmployeeListController,\r\n template: __webpack_require__(468)\r\n};\r\n\n\n/***/ }),\n/* 655 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar employee_item_component_1 = __webpack_require__(653);\r\nvar person_service_1 = __webpack_require__(266);\r\nvar staff_service_1 = __webpack_require__(725);\r\nvar employee_list_component_1 = __webpack_require__(654);\r\nvar settings_states_1 = __webpack_require__(659);\r\nvar settings_company_component_1 = __webpack_require__(652);\r\nvar settings_component_1 = __webpack_require__(658);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar index_1 = __webpack_require__(5);\r\nvar templatesEditor_component_1 = __webpack_require__(663);\r\nvar timezone_service_1 = __webpack_require__(268);\r\nvar timezones_component_1 = __webpack_require__(664);\r\nvar timezones_list_component_1 = __webpack_require__(667);\r\nvar timezones_item_component_1 = __webpack_require__(666);\r\nvar timezones_item_basic_component_1 = __webpack_require__(665);\r\nvar salaryScale_list_component_1 = __webpack_require__(657);\r\nvar salaryScale_dialog_component_1 = __webpack_require__(656);\r\nvar staff_component_1 = __webpack_require__(660);\r\nvar staff_list_component_1 = __webpack_require__(662);\r\nvar staff_item_component_1 = __webpack_require__(661);\r\nvar settingsAppModule = {\r\n components: {\r\n settingsComponent: settings_component_1.settingsComponent,\r\n settingsCompanyComponent: settings_company_component_1.settingsCompanyComponent,\r\n employeeListComponent: employee_list_component_1.employeeListComponent,\r\n employeeItemComponent: employee_item_component_1.employeeItemComponent,\r\n templatesEditorComponent: templatesEditor_component_1.templatesEditorComponent,\r\n timezonesComponent: timezones_component_1.timezonesComponent,\r\n timezonesListComponent: timezones_list_component_1.timezonesListComponent,\r\n timezonesItemComponent: timezones_item_component_1.timezonesItemComponent,\r\n timezonesItemBasicComponent: timezones_item_basic_component_1.timezonesItemBasicComponent,\r\n salaryScaleListComponent: salaryScale_list_component_1.salaryScaleListComponent,\r\n salaryScalesDialogComponent: salaryScale_dialog_component_1.salaryScalesDialogComponent,\r\n staffComponent: staff_component_1.staffComponent,\r\n staffListComponent: staff_list_component_1.staffListComponent,\r\n staffItemComponent: staff_item_component_1.staffItemComponent\r\n },\r\n states: [\r\n settings_states_1.settingsState,\r\n settings_states_1.settingsCompanyState,\r\n settings_states_1.settingsEmployeeState,\r\n settings_states_1.settingsEmployeeListState,\r\n settings_states_1.settingsEmployeeItemState,\r\n settings_states_1.templatesState,\r\n settings_states_1.timezonesState,\r\n settings_states_1.timezonesListState,\r\n settings_states_1.timezonesItemState,\r\n settings_states_1.settingsSalaryScaleState,\r\n settings_states_1.settingsSalaryScaleEditState,\r\n settings_states_1.staffState,\r\n settings_states_1.staffListState,\r\n settings_states_1.staffItemState\r\n ],\r\n services: {\r\n PersonService: person_service_1.PersonService, TemplatesService: index_1.TemplatesService, TimezonesService: timezone_service_1.TimezonesService, MasterdataAService: index_1.MasterdataAService, StaffService: staff_service_1.StaffService\r\n }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, settingsAppModule);\r\n\n\n/***/ }),\n/* 656 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar SalaryScalesDialogController = /** @class */ (function () {\r\n SalaryScalesDialogController.$inject = [\"MasterdataAService\", \"$state\", \"$stateParams\"];\r\n function SalaryScalesDialogController(MasterdataAService, $state, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.MasterdataAService = MasterdataAService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n var salaryScaleId = _this.$stateParams['id'];\r\n if (salaryScaleId) {\r\n _this.salaryScale = _this.resolve.salaryScales.find(function (s) { return s.id === salaryScaleId; });\r\n }\r\n else {\r\n _this.salaryScale = new index_1.Masterdata();\r\n _this.salaryScale.type = 'WageCodes';\r\n }\r\n };\r\n }\r\n SalaryScalesDialogController.prototype.submitSalaryScale = function () {\r\n var _this = this;\r\n if (this.salaryScale.id === undefined) {\r\n this.MasterdataAService.customPost('WageCodes', this.salaryScale).then(function (result) {\r\n _this.$state.go('^', {}, { reload: true });\r\n });\r\n }\r\n else {\r\n this.MasterdataAService.put(this.salaryScale.id, this.salaryScale).then(function (result) {\r\n _this.$state.go('^', {}, { reload: true });\r\n });\r\n }\r\n };\r\n SalaryScalesDialogController.prototype.delete = function () {\r\n var _this = this;\r\n this.MasterdataAService.delete(this.salaryScale.id).then(function (result) {\r\n _this.$state.go('^', {}, { reload: true });\r\n });\r\n };\r\n return SalaryScalesDialogController;\r\n}());\r\nexports.salaryScalesDialogComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: SalaryScalesDialogController,\r\n template: __webpack_require__(469)\r\n};\r\n\n\n/***/ }),\n/* 657 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeeListController = /** @class */ (function () {\r\n function EmployeeListController() {\r\n \"ngInject\";\r\n }\r\n return EmployeeListController;\r\n}());\r\nexports.salaryScaleListComponent = {\r\n bindings: {\r\n salaryScales: \"<\"\r\n },\r\n controller: EmployeeListController,\r\n template: __webpack_require__(470)\r\n};\r\n\n\n/***/ }),\n/* 658 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SettingsController = /** @class */ (function () {\r\n function SettingsController() {\r\n \"ngInject\";\r\n }\r\n return SettingsController;\r\n}());\r\nexports.settingsComponent = {\r\n controller: SettingsController,\r\n template: '
'\r\n};\r\n\n\n/***/ }),\n/* 659 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.settingsState = {\r\n parent: 'app',\r\n name: \"settings\",\r\n url: \"/settings\",\r\n component: 'settingsComponent',\r\n redirectTo: 'settings.company',\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.settingsCompanyState = {\r\n name: \"settings.company\",\r\n url: \"/company\",\r\n resolve: {\r\n company: [\"SettingsService\", function (SettingsService) {\r\n 'ngInject';\r\n return SettingsService.customGet('CompanySettings');\r\n }]\r\n },\r\n views: {\r\n \"main\": \"settingsCompanyComponent\"\r\n }\r\n};\r\nexports.settingsEmployeeState = {\r\n name: \"settings.employees\",\r\n url: \"/employee\",\r\n redirectTo: 'settings.employees.list'\r\n};\r\nexports.settingsEmployeeListState = {\r\n name: \"settings.employees.list\",\r\n url: \"/list\",\r\n resolve: {\r\n \"employees\": [\"PersonService\", function (PersonService) {\r\n \"ngInject\";\r\n return PersonService.all();\r\n }]\r\n },\r\n views: {\r\n \"main@settings\": \"employeeListComponent\"\r\n }\r\n};\r\nexports.settingsEmployeeItemState = {\r\n name: \"settings.employees.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n \"employee\": [\"PersonService\", \"$stateParams\", function (PersonService, $stateParams) {\r\n \"ngInject\";\r\n return PersonService.get($stateParams['id']);\r\n }]\r\n },\r\n views: {\r\n \"main@settings\": \"employeeItemComponent\"\r\n }\r\n};\r\nexports.settingsSalaryScaleState = {\r\n name: \"settings.salaryscales\",\r\n url: \"/salaryscales\",\r\n resolve: {\r\n \"salaryScales\": [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('WageCodes');\r\n }]\r\n },\r\n views: {\r\n \"main@settings\": \"salaryScaleListComponent\"\r\n }\r\n};\r\nexports.settingsSalaryScaleEditState = {\r\n name: \"settings.salaryscales.edit\",\r\n url: \"/:id\",\r\n modal: ['salaryScales'],\r\n resolve: {},\r\n component: 'salaryScalesDialogComponent'\r\n};\r\nexports.templatesState = {\r\n name: \"settings.templates\",\r\n url: \"/templates\",\r\n resolve: {\r\n templatesNames: [\"TemplatesService\", function (TemplatesService) {\r\n 'ngInject';\r\n return TemplatesService.all();\r\n }]\r\n },\r\n views: {\r\n \"main\": \"templatesEditorComponent\"\r\n }\r\n};\r\nexports.timezonesState = {\r\n name: \"settings.timezones\",\r\n url: \"/timezones\",\r\n redirectTo: 'settings.timezones.list',\r\n views: {\r\n \"main\": \"timezonesComponent\"\r\n }\r\n};\r\nexports.timezonesListState = {\r\n name: \"settings.timezones.list\",\r\n url: \"/list\",\r\n resolve: {\r\n timezones: [\"TimezonesService\", function (TimezonesService) {\r\n 'ngInject';\r\n return TimezonesService.all();\r\n }]\r\n },\r\n views: {\r\n \"main\": 'timezonesListComponent'\r\n }\r\n};\r\nexports.timezonesItemState = {\r\n name: \"settings.timezones.list.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n timezone: [\"TimezonesService\", \"$stateParams\", function (TimezonesService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n // console.log($stateParams['id']);\r\n return TimezonesService.get($stateParams['id']);\r\n }\r\n }],\r\n hourCodes: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('HourCodesAll');\r\n }]\r\n },\r\n modal: ['timezone', 'hourCodes'],\r\n component: 'timezonesItemBasicComponent'\r\n};\r\n// export const timezonesItemBasicState: aboTheme.IState = {\r\n// name: \"settings.timezones.list.basic\",\r\n// url: \"/:id\",\r\n// modal: ['timezone', 'hourCodes'],\r\n// resolve: {\r\n// },\r\n// component: 'timezonesItemBasicComponent'\r\n// };\r\nexports.staffState = {\r\n name: \"settings.staff\",\r\n url: \"/staff\",\r\n redirectTo: 'settings.staff.list',\r\n views: {\r\n \"main\": \"staffComponent\"\r\n },\r\n data: {\r\n permissions: {\r\n only: ['SUPERUSER'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.staffListState = {\r\n name: \"settings.staff.list\",\r\n url: \"/list\",\r\n resolve: {\r\n staff: [\"StaffService\", function (StaffService) {\r\n 'ngInject';\r\n return StaffService.all();\r\n }]\r\n },\r\n views: {\r\n \"main\": \"staffListComponent\"\r\n }\r\n};\r\nexports.staffItemState = {\r\n name: \"settings.staff.list.item\",\r\n url: \"/:id\",\r\n // modal: [],\r\n resolve: {\r\n staff: [\"StaffService\", \"$stateParams\", function (StaffService, $stateParams) {\r\n 'ngInject';\r\n if ($stateParams['id'] != '') {\r\n // console.log($stateParams['id']);\r\n return StaffService.get($stateParams['id']);\r\n }\r\n }],\r\n },\r\n modal: [],\r\n component: 'staffItemComponent'\r\n};\r\n\n\n/***/ }),\n/* 660 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StaffController = /** @class */ (function () {\r\n function StaffController() {\r\n 'ngInject';\r\n }\r\n return StaffController;\r\n}());\r\nexports.staffComponent = {\r\n controller: StaffController,\r\n template: __webpack_require__(471)\r\n};\r\n\n\n/***/ }),\n/* 661 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StaffItemController = /** @class */ (function () {\r\n StaffItemController.$inject = [\"StaffService\", \"$state\", \"SweetAlert\", \"$scope\"];\r\n function StaffItemController(StaffService, $state, SweetAlert, $scope) {\r\n 'ngInject';\r\n var _this = this;\r\n this.StaffService = StaffService;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n this.$scope = $scope;\r\n this.rolesList = ['backoffice', 'superuser', 'finance', 'timesheets'];\r\n this.password = '';\r\n this.confirmPassword = '';\r\n this.$onInit = function () {\r\n _this.staff = _this.resolve.staff;\r\n if (_this.staff.id) {\r\n _this.getUser();\r\n }\r\n };\r\n this.getUser = function () {\r\n _this.StaffService.getUser(_this.staff.id).then(function (user) {\r\n _this.user = user;\r\n if (_this.user.id) {\r\n _this.getRoles();\r\n }\r\n });\r\n };\r\n this.getRoles = function () {\r\n _this.StaffService.getRoles(_this.staff.id).then(function (roles) {\r\n _this.roles = roles;\r\n });\r\n };\r\n this.save = function () {\r\n if (_this.$scope.staffBasicInfoForm.$valid) {\r\n if (_this.staff.id) {\r\n _this.StaffService.put(_this.staff.id, _this.staff).then(function (staff) {\r\n _this.staff = staff;\r\n _this.StaffService.putRoles(_this.staff.id, _this.roles).then(function (roles) {\r\n _this.roles = roles;\r\n });\r\n if (_this.password.length > 0) {\r\n _this.StaffService.putPassword(_this.staff.id, _this.password).then(function (roles) {\r\n _this.password = '';\r\n _this.confirmPassword = '';\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n _this.StaffService.post(_this.staff).then(function (staff) {\r\n _this.staff = staff;\r\n _this.$state.go('settings.staff.list.item', { id: _this.staff.id }, { reload: true });\r\n });\r\n }\r\n }\r\n };\r\n this.createuser = function () {\r\n var user = {\r\n userName: _this.staff.email,\r\n email: _this.staff.email,\r\n phoneNumber: _this.staff.phoneNumber,\r\n password: _this.password,\r\n twoFactorEnabled: false\r\n };\r\n if (!_this.user && _this.staff.id) {\r\n _this.StaffService.createUser(_this.staff.id, user).then(function (user) {\r\n _this.password = '';\r\n _this.confirmPassword = '';\r\n _this.user = user;\r\n });\r\n }\r\n };\r\n this.deleteUser = function () {\r\n if (_this.staff.id && _this.user) {\r\n _this.StaffService.deleteUser(_this.staff.id).then(function (user) {\r\n });\r\n }\r\n };\r\n this.delete = function () {\r\n if (_this.staff.id) {\r\n if (_this.user) {\r\n _this.StaffService.deleteUser(_this.staff.id).then(function (user) {\r\n _this.StaffService.delete(_this.staff.id).then(function (user) {\r\n _this.$state.go('^', {}, { reload: true });\r\n });\r\n });\r\n }\r\n else {\r\n _this.StaffService.delete(_this.staff.id).then(function (user) {\r\n _this.$state.go('^', {}, { reload: true });\r\n });\r\n }\r\n }\r\n };\r\n }\r\n return StaffItemController;\r\n}());\r\nexports.staffItemComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: StaffItemController,\r\n template: __webpack_require__(472)\r\n};\r\n\n\n/***/ }),\n/* 662 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StaffListController = /** @class */ (function () {\r\n function StaffListController() {\r\n \"ngInject\";\r\n }\r\n return StaffListController;\r\n}());\r\nexports.staffListComponent = {\r\n bindings: {\r\n staff: \"<\"\r\n },\r\n controller: StaffListController,\r\n template: __webpack_require__(473)\r\n};\r\n\n\n/***/ }),\n/* 663 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// import * as monaco from \"monaco-editor/min/vs/editor/editor.main.js\";\r\nvar TemplatesEditorController = /** @class */ (function () {\r\n TemplatesEditorController.$inject = [\"TemplatesService\", \"SweetAlert\"];\r\n function TemplatesEditorController(TemplatesService, SweetAlert) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.TemplatesService = TemplatesService;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n // monaco.editor.create(document.getElementById(\"container\"), {\r\n // value: \"function hello() {\\n\\talert('Hello world!');\\n}\",\r\n // language: \"javascript\"\r\n // });\r\n // console.log('TemplatesEditorController init');\r\n var onGotAmdLoader = function () {\r\n // Load monaco\r\n window.require.config({ paths: { 'vs': '/vs' } });\r\n window.require(['vs/editor/editor.main'], function () {\r\n _this.initMonaco();\r\n });\r\n };\r\n // Load AMD loader if necessary\r\n if (!window.require) {\r\n var loaderScript = document.createElement('script');\r\n loaderScript.type = 'text/javascript';\r\n loaderScript.src = '/vs/loader.js';\r\n loaderScript.addEventListener('load', onGotAmdLoader);\r\n document.body.appendChild(loaderScript);\r\n }\r\n else {\r\n onGotAmdLoader();\r\n }\r\n };\r\n this.sweetAlert = SweetAlert;\r\n }\r\n // Will be called once monaco library is available\r\n TemplatesEditorController.prototype.initMonaco = function () {\r\n window.editor = window.monaco.editor.create(document.getElementById(\"container\"), {\r\n value: '',\r\n language: 'razor'\r\n });\r\n };\r\n TemplatesEditorController.prototype.getTemplate = function () {\r\n this.TemplatesService.customGet('template/' + this.currentTemplateName).then(function (result) {\r\n window.editor.setValue(result);\r\n });\r\n };\r\n TemplatesEditorController.prototype.saveTemplate = function () {\r\n var _this = this;\r\n var value = window.editor.getValue();\r\n // console.log(value);\r\n this.TemplatesService.customPut('template/' + this.currentTemplateName, '\"' + value.replace(/[\\\\\"']/g, '\\\\$&') + '\"').then(function () {\r\n _this.sweetAlert.swal('Updated!', 'Template has been succesfully updated!', 'success');\r\n });\r\n };\r\n return TemplatesEditorController;\r\n}());\r\nexports.templatesEditorComponent = {\r\n bindings: {\r\n templatesNames: \"<\"\r\n },\r\n controller: TemplatesEditorController,\r\n template: __webpack_require__(474)\r\n};\r\n\n\n/***/ }),\n/* 664 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TimezonesController = /** @class */ (function () {\r\n function TimezonesController() {\r\n 'ngInject';\r\n }\r\n return TimezonesController;\r\n}());\r\nexports.timezonesComponent = {\r\n controller: TimezonesController,\r\n template: __webpack_require__(475)\r\n};\r\n\n\n/***/ }),\n/* 665 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar timezone_service_1 = __webpack_require__(268);\r\nvar moment = __webpack_require__(0);\r\nvar TimezonesItemBasicController = /** @class */ (function () {\r\n TimezonesItemBasicController.$inject = [\"TimezonesService\", \"$state\", \"SweetAlert\"];\r\n function TimezonesItemBasicController(TimezonesService, $state, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.TimezonesService = TimezonesService;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n this.types = [\r\n 'Dagelijks', 'Dag van de week', 'Vaste dag elk jaar', 'Eenmalig'\r\n ];\r\n this.months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];\r\n this.weekDays = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'];\r\n this.from = {};\r\n this.till = {};\r\n this.$onInit = function () {\r\n _this.hourCodes = _this.resolve.hourCodes;\r\n if (_this.resolve.timezone) {\r\n _this.timezone = _this.resolve.timezone;\r\n }\r\n else {\r\n _this.timezone = new timezone_service_1.ITimezone();\r\n _this.timezone = {\r\n from: null,\r\n till: null,\r\n percentage: 0,\r\n amount: 0,\r\n priority: 0,\r\n dayOfWeek: 0,\r\n fixedDate: false,\r\n fixedDateWithoutYear: false,\r\n };\r\n }\r\n if (_this.timezone.dayOfWeek != null) {\r\n _this.type = _this.types[1];\r\n }\r\n else if (_this.timezone.fixedDateWithoutYear) {\r\n _this.type = _this.types[2];\r\n }\r\n else if (_this.timezone.fixedDate) {\r\n _this.type = _this.types[3];\r\n }\r\n else {\r\n _this.type = _this.types[0];\r\n }\r\n _this.from.weekDay = _this.weekDays[_this.timezone.dayOfWeek];\r\n _this.from.day = parseInt(moment(_this.timezone.from).format(\"DD\"));\r\n _this.from.month = _this.months[parseInt(moment(_this.timezone.from).format(\"MM\")) - 1];\r\n _this.from.year = moment(_this.timezone.from).format(\"YYYY\");\r\n _this.from.time = moment(_this.timezone.from).format(\"HH:mm\");\r\n _this.till.weekDay = _this.weekDays[_this.timezone.dayOfWeek];\r\n _this.till.day = parseInt(moment(_this.timezone.till).format(\"DD\"));\r\n _this.till.month = _this.months[parseInt(moment(_this.timezone.till).format(\"MM\")) - 1];\r\n _this.till.year = moment(_this.timezone.till).format(\"YYYY\");\r\n _this.till.time = moment(_this.timezone.till).format(\"HH:mm\");\r\n };\r\n }\r\n TimezonesItemBasicController.prototype.submitTimezone = function () {\r\n // this.timezone.from = moment(this.timezone.from).format(\"YYYY-MM-DD HH:mm\");\r\n // this.timezone.till = moment(this.timezone.till).format(\"YYYY-MM-DD HH:mm\");\r\n var _this = this;\r\n var fromDay = this.from.day < 10 ? '0' + this.from.day : this.from.day;\r\n var fromMonth = this.months.indexOf(this.from.month) + 1 < 10 ? '0' + (this.months.indexOf(this.from.month) + 1) : this.months.indexOf(this.from.month) + 1;\r\n var tillDay = this.till.day < 10 ? '0' + this.till.day : this.till.day;\r\n var tillMonth = this.months.indexOf(this.till.month) + 1 < 10 ? '0' + (this.months.indexOf(this.till.month) + 1) : this.months.indexOf(this.till.month) + 1;\r\n var fts = this.from.time.split(':');\r\n var fromtimehour = fts[0] < 10 && fts[0].length < 2 ? '0' + fts[0] : fts[0];\r\n var fromtime = fromtimehour + ':' + fts[1] + ':00';\r\n var tts = this.till.time.split(':');\r\n var tilltimehour = tts[0] < 10 && tts[0].length < 2 ? '0' + tts[0] : tts[0];\r\n var tilltime = tilltimehour + ':' + tts[1] + ':00';\r\n if (this.type == this.types[0]) {\r\n this.timezone.from = '1900-01-01T' + fromtime;\r\n this.timezone.till = '1900-01-01T' + tilltime;\r\n this.timezone.dayOfWeek = null;\r\n this.timezone.fixedDate = false;\r\n this.timezone.fixedDateWithoutYear = false;\r\n }\r\n if (this.type == this.types[1]) {\r\n this.timezone.from = '1900-01-01T' + fromtime;\r\n this.timezone.till = '1900-01-01T' + tilltime;\r\n this.timezone.dayOfWeek = this.weekDays.indexOf(this.from.weekDay);\r\n this.timezone.fixedDate = false;\r\n this.timezone.fixedDateWithoutYear = false;\r\n }\r\n if (this.type == this.types[2]) {\r\n this.timezone.from = '1900-' + fromMonth + '-' + fromDay + 'T' + fromtime;\r\n this.timezone.till = '1900-' + tillMonth + '-' + tillDay + 'T' + tilltime;\r\n this.timezone.dayOfWeek = null;\r\n this.timezone.fixedDate = true;\r\n this.timezone.fixedDateWithoutYear = true;\r\n }\r\n if (this.type == this.types[3]) {\r\n this.timezone.from = this.from.year + '-' + fromMonth + '-' + fromDay + 'T' + fromtime;\r\n this.timezone.till = this.from.year + '-' + tillMonth + '-' + tillDay + 'T' + tilltime;\r\n this.timezone.dayOfWeek = null;\r\n this.timezone.fixedDate = true;\r\n this.timezone.fixedDateWithoutYear = false;\r\n }\r\n if (this.timezone.id === undefined) {\r\n this.TimezonesService.post(this.timezone).then(function (result) {\r\n _this.$state.go('settings.timezones.item', { 'id': result.id });\r\n });\r\n }\r\n else {\r\n this.TimezonesService.put(this.timezone.id, this.timezone).then(function (result) {\r\n _this.$state.go('settings.timezones.item', { 'id': result.id }, { reload: true });\r\n });\r\n }\r\n };\r\n TimezonesItemBasicController.prototype.deleteTimezone = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Are you sure?',\r\n text: \"You won't be able to revert this!\",\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Yes, delete it!',\r\n cancelButtonText: 'No, cancel!',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.TimezonesService.delete(_this.timezone.id).then(function () {\r\n _this.$state.go('^', { reload: true });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n TimezonesItemBasicController.prototype.startDateBeforeRender = function ($dates) {\r\n // console.log('startDateBeforeRender');\r\n var todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0, 0, 0, 0);\r\n };\r\n TimezonesItemBasicController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.timezone.from) {\r\n var activeDate = moment(this.timezone.from).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n return TimezonesItemBasicController;\r\n}());\r\nexports.timezonesItemBasicComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: TimezonesItemBasicController,\r\n template: __webpack_require__(476)\r\n};\r\n\n\n/***/ }),\n/* 666 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TimezonesItemController = /** @class */ (function () {\r\n TimezonesItemController.$inject = [\"TimezonesService\", \"$state\", \"SweetAlert\"];\r\n function TimezonesItemController(TimezonesService, $state, SweetAlert) {\r\n 'ngInject';\r\n this.TimezonesService = TimezonesService;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n }\r\n TimezonesItemController.prototype.deleteTimezone = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Are you sure?',\r\n text: \"You won't be able to revert this!\",\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Yes, delete it!',\r\n cancelButtonText: 'No, cancel!',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.TimezonesService.delete(_this.timezone.id).then(function () {\r\n _this.$state.go('^', { reload: true });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n return TimezonesItemController;\r\n}());\r\nexports.timezonesItemComponent = {\r\n controller: TimezonesItemController,\r\n bindings: {\r\n timezone: '<',\r\n hourCodes: '<'\r\n },\r\n template: __webpack_require__(477)\r\n};\r\n\n\n/***/ }),\n/* 667 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TimezonesListController = /** @class */ (function () {\r\n function TimezonesListController() {\r\n 'ngInject';\r\n this.weekDays = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'];\r\n this.sortType = 'from';\r\n }\r\n return TimezonesListController;\r\n}());\r\nexports.timezonesListComponent = {\r\n controller: TimezonesListController,\r\n bindings: {\r\n timezones: '<'\r\n },\r\n template: __webpack_require__(478)\r\n};\r\n\n\n/***/ }),\n/* 668 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar angular = __webpack_require__(6);\r\nvar DateTimePickerController = /** @class */ (function () {\r\n DateTimePickerController.$inject = [\"$element\", \"$attrs\", \"$timeout\"];\r\n function DateTimePickerController($element, $attrs, $timeout) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$element = $element;\r\n this.$attrs = $attrs;\r\n this.$timeout = $timeout;\r\n this.time = true;\r\n this.$onInit = function () {\r\n if (!_this.$attrs.time) {\r\n _this.time = true;\r\n }\r\n _this.previousDate = angular.copy(_this.date);\r\n $(_this.$element).find('.datepicker').datepicker({\r\n format: 'dd-mm-yyyy',\r\n language: 'nl',\r\n autoclose: true,\r\n });\r\n _this.$timeout(function () {\r\n $(_this.$element).find('.open-datetimepicker').click(function (event) {\r\n event.preventDefault();\r\n $(_this.$element).find('.datepicker').datepicker('show');\r\n });\r\n $(_this.$element).find('.timepickerinput').timepicker({\r\n showMeridian: false,\r\n minuteStep: 5\r\n }).on('hide.timepicker', function (e) {\r\n _this.$timeout(function () {\r\n _this.setTime();\r\n });\r\n });\r\n _this.dateformat = moment(_this.date).format('DD-MM-YYYY');\r\n _this.timeformat = moment(_this.date).format('HH:mm');\r\n $(_this.$element).find('.datepicker').datepicker('setDate', _this.dateformat);\r\n $(_this.$element).find('.timepickerinput').timepicker('setTime', _this.timeformat);\r\n _this.checkMinDate();\r\n });\r\n _this.classes = _this.addClass;\r\n };\r\n this.$doCheck = function () {\r\n if (!angular.equals(_this.date, _this.previousDate)) {\r\n // console.log('previousDate', this.previousDate)\r\n _this.dateformat = moment(_this.date).format('DD-MM-YYYY');\r\n _this.timeformat = moment(_this.date).format('HH:mm');\r\n $(_this.$element).find('.timepickerinput').timepicker('setTime', _this.timeformat);\r\n if (_this.previousDate) {\r\n $(_this.$element).find('.datepicker').datepicker('setDate', _this.dateformat);\r\n }\r\n _this.previousDate = angular.copy(_this.date);\r\n _this.$timeout(function () {\r\n _this.checkMinDate();\r\n });\r\n }\r\n };\r\n this.$onChanges = function (changes) {\r\n if (changes.minDate && changes.minDate.previousValue.constructor.name != 'UNINITIALIZED_VALUE') {\r\n _this.$timeout(function () {\r\n _this.checkMinDate();\r\n });\r\n }\r\n };\r\n this.checkMinDate = function () {\r\n if (_this.minDate && _this.date) {\r\n //console.log(moment(this.date).format('DD-MM-YYYY'));\r\n //console.log(this.minDate);\r\n // if (moment(this.minDate).isAfter(this.date)) {\r\n // this.date = moment(this.minDate).add(1, 'hour');\r\n // this.dateformat = moment(this.date).format('DD-MM-YYYY');\r\n // this.timeformat = moment(this.date).format('HH:mm');\r\n // $(this.$element).find('.datepicker').datepicker('setDate', this.dateformat);\r\n // }\r\n $(_this.$element).find('.datepicker').datepicker('setStartDate', moment(_this.minDate).format('DD-MM-YYYY'));\r\n }\r\n };\r\n this.setDate = function () {\r\n if (_this.dateformat && _this.timeformat) {\r\n if (_this.time) {\r\n _this.date = moment(_this.dateformat + ' ' + _this.timeformat, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DDTHH:mm:ss');\r\n }\r\n else {\r\n _this.date = moment(_this.dateformat, 'DD-MM-YYYY').format('YYYY-MM-DD');\r\n }\r\n _this.$timeout(function () { _this.onChange(); });\r\n }\r\n };\r\n this.setTime = function () {\r\n if (_this.dateformat && _this.timeformat) {\r\n _this.date = moment(_this.dateformat + ' ' + _this.timeformat, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DDTHH:mm:ss');\r\n _this.$timeout(function () { _this.onChange(); });\r\n }\r\n };\r\n }\r\n return DateTimePickerController;\r\n}());\r\nexports.dateTimePickerComponent = {\r\n bindings: {\r\n date: '=',\r\n time: '<',\r\n maxDate: '<',\r\n minDate: '<',\r\n onChange: '&',\r\n addClass: '<',\r\n disabled: '<'\r\n },\r\n controller: DateTimePickerController,\r\n template: __webpack_require__(479)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 669 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ListController = /** @class */ (function () {\r\n ListController.$inject = [\"SweetAlert\"];\r\n function ListController(SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n _this.currentPage = 1;\r\n _this.itemsPerPage = 25;\r\n _this.maxSize = 3;\r\n var setFields = { description: null };\r\n if (_this.fields) {\r\n _this.fields = JSON.parse(_this.fields.replace(/\\'/g, '\"'));\r\n }\r\n else {\r\n _this.fields = {};\r\n }\r\n _this.setFields = {\r\n description: _this.fields.description ? _this.fields.description : 'description',\r\n tags: _this.fields.tags ? _this.fields.tags : 'tags',\r\n date: _this.fields.date ? _this.fields.date : 'date',\r\n endDate: _this.fields.endDate ? _this.fields.endDate : 'endDate'\r\n };\r\n };\r\n }\r\n ListController.prototype.delete = function (event, item) {\r\n var _this = this;\r\n event.stopPropagation();\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u ' + item[this.setFields.description] + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.onUpdate({ item: item, action: 'delete' });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n ListController.prototype.edit = function (item) {\r\n this.onUpdate({ item: item, action: 'edit' });\r\n };\r\n return ListController;\r\n}());\r\nexports.listComponent = {\r\n bindings: {\r\n list: '<',\r\n onUpdate: '&',\r\n fields: '@',\r\n hideDelete: '<'\r\n },\r\n controller: ListController,\r\n template: __webpack_require__(480)\r\n};\r\n\n\n/***/ }),\n/* 670 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar config_1 = __webpack_require__(13);\r\nvar UploaderController = /** @class */ (function () {\r\n UploaderController.$inject = [\"AuthService\", \"FileUploader\"];\r\n function UploaderController(AuthService, FileUploader) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AuthService = AuthService;\r\n this.FileUploader = FileUploader;\r\n this.$onInit = function () {\r\n _this.uploadOptions = {\r\n url: config_1.default.API_URL + _this.url,\r\n removeAfterUpload: true,\r\n headers: {\r\n 'Authorization': 'Bearer ' + _this.AuthService.GetAuthorizationData()\r\n },\r\n };\r\n _this.uploader = new _this.FileUploader();\r\n _this.uploader.onCompleteItem = function (item, response, status, headers) {\r\n _this.onCompleteItem({ item: item, response: response, status: status, headers: headers });\r\n };\r\n _this.uploader.onCompleteAll = function () {\r\n _this.onCompleteAll();\r\n _this.onUpload();\r\n };\r\n };\r\n }\r\n return UploaderController;\r\n}());\r\nexports.uploaderComponent = {\r\n bindings: {\r\n url: \"<\",\r\n single: \"<\",\r\n onUpload: \"&\",\r\n onCompleteItem: \"&\",\r\n onCompleteAll: \"&\"\r\n },\r\n controller: UploaderController,\r\n template: __webpack_require__(481)\r\n};\r\n\n\n/***/ }),\n/* 671 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar authusers_service_1 = __webpack_require__(258);\r\nvar _ = __webpack_require__(7);\r\nvar UserAccountController = /** @class */ (function () {\r\n UserAccountController.$inject = [\"AuthUserService\", \"EmployeesService\", \"ContactsService\", \"$state\", \"SweetAlert\"];\r\n function UserAccountController(AuthUserService, EmployeesService, ContactsService, $state, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.AuthUserService = AuthUserService;\r\n this.EmployeesService = EmployeesService;\r\n this.ContactsService = ContactsService;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n this.checkUserType = function () {\r\n if (_this.contact)\r\n return 'contact';\r\n if (_this.employee)\r\n return 'employee';\r\n else\r\n return undefined;\r\n };\r\n this.$onInit = function () {\r\n _this.newUser = true;\r\n var userType = _this.checkUserType();\r\n if (_this[userType].userId) {\r\n _this.AuthUserService.get(_this[userType].userId).then(function (res) {\r\n _this.userAccount = res;\r\n _this.newUser = false;\r\n });\r\n }\r\n };\r\n this.prepareEmployeeForUser = function (employee) {\r\n var user = {\r\n displayName: employee.displayName,\r\n roles: ['EMPLOYEE'],\r\n email: employee.emailPrivate,\r\n userName: employee.emailPrivate,\r\n password: _this.password,\r\n claims: { 'employeeId': employee.id },\r\n };\r\n return user;\r\n };\r\n this.prepareContactForUser = function (contact) {\r\n var user = {\r\n displayName: contact.name,\r\n roles: ['CUSTOMER'],\r\n email: contact.emailAddress,\r\n userName: contact.emailAddress,\r\n password: _this.password,\r\n claims: { 'contactId': contact.id, 'customerId': contact.accountId },\r\n };\r\n return user;\r\n };\r\n this.createUser = function () {\r\n var user = new authusers_service_1.IAuthUser();\r\n if (_this.employee) {\r\n var user_1 = _this.prepareEmployeeForUser(_this.employee);\r\n _this.AuthUserService.post(user_1).then(function (result) {\r\n _this.employee.userId = result.id;\r\n _this.employee.userName = _this.employee.emailPrivate;\r\n _this.EmployeesService.put(_this.employee.id, _this.employee).then(function (result) {\r\n _this.employee = result;\r\n _this.$onInit();\r\n });\r\n }).catch(function (error) {\r\n _this.AuthUserService.all().then(function (users) {\r\n var existUser = _.find(users, { userName: user_1.userName });\r\n _this.SweetAlert.swal({\r\n title: \"User already exist!\",\r\n text: \"User with \" + existUser.userName + \" do you want to connect this user to this contactperson?\",\r\n type: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#DD6B55\",\r\n confirmButtonText: \"Yes, connect it!\",\r\n closeOnConfirm: false\r\n }, function (isConfirm) {\r\n _this.employee.userId = existUser.id;\r\n _this.employee.userName = existUser.userName;\r\n _this.EmployeesService.put(_this.employee.id, _this.employee).then(function (employee) {\r\n _this.employee = employee;\r\n _this.$onInit();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n if (_this.contact) {\r\n var user_2 = _this.prepareContactForUser(_this.contact);\r\n _this.AuthUserService.post(user_2).then(function (result) {\r\n _this.contact.userId = result.id;\r\n _this.ContactsService.put(_this.contact.id, _this.contact).then(function (result) {\r\n _this.contact = result;\r\n _this.$onInit();\r\n });\r\n });\r\n }\r\n };\r\n this.deleteUser = function () {\r\n if (_this.employee) {\r\n _this.AuthUserService.delete(_this.employee.userId).then(function (result) {\r\n _this.employee.userId = undefined;\r\n _this.EmployeesService.put(_this.employee.id, _this.employee).then(function (employee) {\r\n _this.employee = employee;\r\n _this.$onInit();\r\n });\r\n });\r\n }\r\n if (_this.contact) {\r\n _this.AuthUserService.delete(_this.contact.userId).then(function (result) {\r\n _this.contact.userId = undefined;\r\n _this.ContactsService.put(_this.contact.id, _this.contact).then(function (contact) {\r\n _this.contact = contact;\r\n _this.$onInit();\r\n });\r\n });\r\n }\r\n };\r\n }\r\n return UserAccountController;\r\n}());\r\nexports.userAccountComponent = {\r\n bindings: {\r\n contact: \"<\",\r\n employee: \"<\"\r\n },\r\n controller: UserAccountController,\r\n template: __webpack_require__(482)\r\n};\r\n\n\n/***/ }),\n/* 672 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar moment = __webpack_require__(0);\r\nvar CheckAvailabilityModalController = /** @class */ (function () {\r\n CheckAvailabilityModalController.$inject = [\"ShiftService\", \"EmployeesService\", \"AccountsService\", \"MasterdataService\", \"LocationService\", \"$stateParams\", \"$state\", \"$timeout\", \"$window\"];\r\n function CheckAvailabilityModalController(ShiftService, EmployeesService, AccountsService, MasterdataService, LocationService, $stateParams, $state, $timeout, $window) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.AccountsService = AccountsService;\r\n this.MasterdataService = MasterdataService;\r\n this.LocationService = LocationService;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.$window = $window;\r\n this.$onInit = function () {\r\n _this.MasterdataService.getItems('Functions').then(function (result) {\r\n _this.functions = result;\r\n });\r\n _this.AccountsService.all().then(function (result) {\r\n _this.accounts = result;\r\n });\r\n _this.selectedEmployee = {};\r\n _this.activeEmployee = {};\r\n _this.setModalHeight();\r\n _this.$window.onresize = function (event) {\r\n _this.setModalHeight();\r\n };\r\n };\r\n this.setModalHeight = function () {\r\n var docHeight = $(window).height();\r\n var height = docHeight - 200;\r\n $(\"#checkAvailabilityModalBody\").height(height);\r\n };\r\n }\r\n CheckAvailabilityModalController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n CheckAvailabilityModalController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.shift.start) {\r\n var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n CheckAvailabilityModalController.prototype.startDateChanged = function () {\r\n this.shift.end = moment(this.shift.start).add(8, 'hour').toDate();\r\n if (this.shift.teamLocationId) {\r\n this.dataFilledIn();\r\n }\r\n };\r\n CheckAvailabilityModalController.prototype.endDateChanged = function () {\r\n if (this.shift.teamLocationId) {\r\n this.dataFilledIn();\r\n }\r\n };\r\n CheckAvailabilityModalController.prototype.dataFilledIn = function () {\r\n var _this = this;\r\n if (this.shift.start && this.shift.end) {\r\n var request = {\r\n accountId: this.shift.teamLocationAccountId,\r\n locationId: this.shift.teamLocationId,\r\n startDate: this.shift.start,\r\n endDate: this.shift.end,\r\n shiftId: this.shift.id\r\n };\r\n this.EmployeesService.customPost('availableEmployees', request, false).then(function (result) {\r\n _this.employees = result;\r\n });\r\n }\r\n };\r\n CheckAvailabilityModalController.prototype.selectedAccount = function () {\r\n var _this = this;\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n });\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'notes/?tag=planning').then(function (result) {\r\n _this.accountNotes = result;\r\n });\r\n };\r\n CheckAvailabilityModalController.prototype.locationSelected = function () {\r\n var _this = this;\r\n this.teams = this.locations.find(function (item) { return item.id === _this.shift.teamLocationId; }).teams;\r\n this.dataFilledIn();\r\n };\r\n CheckAvailabilityModalController.prototype.submitShift = function (after) {\r\n var _this = this;\r\n if (after === void 0) { after = null; }\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.shift.employeeId) {\r\n this.shift.status = 5;\r\n }\r\n else {\r\n this.shift.status = 3;\r\n }\r\n if (!this.shift.id) {\r\n this.ShiftService.post(this.shift).then(function (data) {\r\n _this.shift = data;\r\n _this.shifts.push(_this.shift);\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.ShiftService.put(this.shift.id, this.shift).then(function (data) {\r\n _this.shift = data;\r\n _this.shifts = _this.shifts.filter(function (s) { return s.id !== _this.shift.id; });\r\n _this.shifts.push(_this.shift);\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n CheckAvailabilityModalController.prototype.closeModal = function () {\r\n this.selectedEmployee = {};\r\n this.activeEmployee = {};\r\n this.employees = null;\r\n this.shift = new index_1.IShift();\r\n $('#check-availability-modal').modal('hide');\r\n };\r\n return CheckAvailabilityModalController;\r\n}());\r\nexports.checkAvailabilityModalComponent = {\r\n controller: CheckAvailabilityModalController,\r\n bindings: {\r\n shifts: '=',\r\n shift: '=',\r\n locations: '=',\r\n teams: '=',\r\n accountNotes: '=',\r\n employees: '=',\r\n selectedEmployee: '='\r\n },\r\n template: __webpack_require__(483)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 673 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar index_1 = __webpack_require__(5);\r\nvar EmployeePickerController = /** @class */ (function () {\r\n EmployeePickerController.$inject = [\"$scope\", \"SweetAlert\", \"EmployeesService\"];\r\n function EmployeePickerController($scope, SweetAlert, EmployeesService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.SweetAlert = SweetAlert;\r\n this.EmployeesService = EmployeesService;\r\n this.functions = [];\r\n this.ranges = [];\r\n this.availabilities = [];\r\n this.history = [];\r\n this.subscription = [];\r\n this.$onInit = function () {\r\n _this.ranges = [\r\n {\r\n name: '0 to 5',\r\n min: 0,\r\n max: 5,\r\n value: false\r\n },\r\n {\r\n name: '5 to 15',\r\n min: 5,\r\n max: 15,\r\n value: false\r\n },\r\n {\r\n name: '15 to 50',\r\n min: 15,\r\n max: 50,\r\n value: false\r\n },\r\n {\r\n name: '50 to 100',\r\n min: 50,\r\n max: 100,\r\n value: false\r\n },\r\n {\r\n name: 'More than 100',\r\n min: 100,\r\n max: 5000,\r\n value: false\r\n }\r\n ];\r\n _this.availabilities = [];\r\n _this.history = [];\r\n _this.subscription = [];\r\n //this.allEmployees = this.employees;\r\n // this.selectedEmployee = this.employees.find(e => e.employee.id == this.shift.employeeId);\r\n // this.$scope.$watch('this.shift.employeeId', function(newVal, oldVal){\r\n // this.selectedEmployee = this.employees.find(e => e.employee.id == this.shift.employeeId);\r\n // }, true);\r\n };\r\n this.$onChanges = function (changes) {\r\n _this.allEmployees = [];\r\n if (changes.employees) {\r\n _this.allEmployees = _this.employees;\r\n _this.filterEmployees();\r\n if (_this.allEmployees && _this.allEmployees.length > 0) {\r\n _this.allEmployees.forEach(function (item) {\r\n if (item.isAvailable) {\r\n if (item.subscription) {\r\n item.order = 1;\r\n }\r\n else if (item.availability) {\r\n item.order = 2;\r\n }\r\n else if (!item.availability) {\r\n item.order = 4;\r\n }\r\n }\r\n else {\r\n if (item.subscription) {\r\n item.order = 3;\r\n }\r\n else {\r\n item.order = 5;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n }\r\n EmployeePickerController.prototype.employeeSelected = function (employeeSummary) {\r\n var _this = this;\r\n this.onSelectEmployee();\r\n if (this.selectedEmployee && this.selectedEmployee.employee.id === employeeSummary.employee.id) {\r\n this.selectedEmployee = null;\r\n this.shift.employeeId = null;\r\n return true;\r\n }\r\n if (employeeSummary.conflictingShift) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Deze medewerker heeft al een dienst op dit tijdstip! Wil je deze medewerker alsnog koppelen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.selectedEmployee = employeeSummary;\r\n _this.shift.employeeId = _this.selectedEmployee.employee.id;\r\n }\r\n else { }\r\n });\r\n }\r\n else {\r\n this.selectedEmployee = employeeSummary;\r\n this.shift.employeeId = this.selectedEmployee.employee.id;\r\n }\r\n };\r\n EmployeePickerController.prototype.employeeActive = function (employeeSummary) {\r\n this.activeEmployee = employeeSummary;\r\n };\r\n EmployeePickerController.prototype.filterEmployees = function () {\r\n this.employees = this.allEmployees;\r\n if (this.functions) {\r\n var selectedFunctions = this.functions.filter(function (f) { return f.value; }).map(function (f) { return f.id; });\r\n if (selectedFunctions.length > 0) {\r\n this.employees = this.employees.filter(function (e) { return selectedFunctions.indexOf(e.employee.functionId) > -1; });\r\n }\r\n }\r\n var selectedRanges = this.ranges.filter(function (r) { return r.value; });\r\n if (selectedRanges.length > 0) {\r\n var minRange = Math.min.apply(null, selectedRanges.map(function (r) { return parseFloat(r.min); }));\r\n var maxRange = Math.max.apply(null, selectedRanges.map(function (r) { return parseFloat(r.max); }));\r\n this.employees = this.employees.filter(function (e) { return e.employee.kilometers > minRange && e.employee.kilometers < maxRange; });\r\n }\r\n if (this.availabilities.filter(function (a) { return a; }).length == 1) {\r\n if (this.availabilities[0]) {\r\n this.employees = this.employees.filter(function (e) { return e.isAvailable; });\r\n }\r\n if (this.availabilities[1]) {\r\n this.employees = this.employees.filter(function (e) { return !e.isAvailable; });\r\n }\r\n }\r\n if (this.history.filter(function (a) { return a; }).length == 1) {\r\n if (this.history[0]) {\r\n this.employees = this.employees.filter(function (e) { return e.history; });\r\n }\r\n if (this.history[1]) {\r\n this.employees = this.employees.filter(function (e) { return !e.history; });\r\n }\r\n }\r\n if (this.subscription.filter(function (a) { return a; }).length == 1) {\r\n if (this.subscription[0]) {\r\n this.employees = this.employees.filter(function (e) { return e.subscription; });\r\n }\r\n if (this.subscription[1]) {\r\n this.employees = this.employees.filter(function (e) { return !e.subscription; });\r\n }\r\n }\r\n };\r\n EmployeePickerController.prototype.removeSubscription = function (subscription, employeeSummary) {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze inschrijving wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.EmployeesService.customDelete('subscriptions/' + subscription.id).then(function () {\r\n employeeSummary.subscription = false;\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n return EmployeePickerController;\r\n}());\r\nvar Filter = /** @class */ (function (_super) {\r\n __extends(Filter, _super);\r\n function Filter() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.value = false;\r\n return _this;\r\n }\r\n return Filter;\r\n}(index_1.Masterdata));\r\nexports.employeePickerComponent = {\r\n bindings: {\r\n shift: '<',\r\n employees: '<',\r\n selectedEmployee: '<',\r\n activeEmployee: '<',\r\n functions: '<',\r\n isEmbedded: '<',\r\n disableFilter: '<',\r\n disableInfo: '<',\r\n onSelectEmployee: '&'\r\n },\r\n controller: EmployeePickerController,\r\n template: __webpack_require__(484)\r\n};\r\n\n\n/***/ }),\n/* 674 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmployeeSummaryController = /** @class */ (function () {\r\n function EmployeeSummaryController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onInit = function () {\r\n //this.employeeSummary.conflictingShift\r\n // {\"employee\":{\"id\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"name\":\"Ebrina Kok\",\"function\":\"Student VIG\",\"functionId\":\"98e2e502-4693-e711-80c2-0003ff4b7b6b\",\"addressId\":null,\"street\":null,\"number\":null,\"city\":null},\"conflictingShift\":{\"employeeId\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"name\":null,\"start\":\"2017-12-12T11:00:00\",\"end\":\"2017-12-13T12:00:00\",\"statusId\":6,\"shiftId\":\"827f9853-8cde-e711-80c3-0003ff433d90\"},\"availability\":{\"EmployeeId\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"name\":\"Ziek\",\"value\":null,\"comment\":null,\"from\":\"2017-12-11T13:45:00\",\"till\":\"2017-12-31T21:45:00\"},\"isAvailable\":false,\"subscription\":{\"employeeId\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"comment\":\"TEST TEST\"},\"history\":{\"count\":10,\"dates\":[\"2017-12-12T11:00:00\",\"2017-12-11T13:15:00\",\"2017-12-09T11:45:00\"]}}\r\n };\r\n this.$onChanges = function (change) {\r\n if (_this.employeeSummary && _this.employeeSummary.conflictingShift && _this.shift) {\r\n if (_this.employeeSummary.conflictingShift.shiftId == _this.shift.id) {\r\n _this.employeeSummary.conflictingShift = null;\r\n }\r\n }\r\n };\r\n }\r\n return EmployeeSummaryController;\r\n}());\r\nexports.employeeSummaryComponent = {\r\n bindings: {\r\n employeeSummary: '<',\r\n shift: '<',\r\n isEmbedded: '<'\r\n },\r\n controller: EmployeeSummaryController,\r\n template: __webpack_require__(485)\r\n};\r\n\n\n/***/ }),\n/* 675 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar shift_list_employee_component_1 = __webpack_require__(680);\r\nvar shift_list_item_component_1 = __webpack_require__(681);\r\nvar calendar_service_1 = __webpack_require__(17);\r\nvar shift_list_component_1 = __webpack_require__(679);\r\nvar shift_calendar_component_1 = __webpack_require__(676);\r\nvar shift_item_component_1 = __webpack_require__(678);\r\nvar shift_component_1 = __webpack_require__(677);\r\nvar shift_states_1 = __webpack_require__(260);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar employeeSummary_component_1 = __webpack_require__(674);\r\nvar checkAvailabilityModal_component_1 = __webpack_require__(672);\r\nvar employeePicker_component_1 = __webpack_require__(673);\r\nvar shift_states_2 = __webpack_require__(260);\r\nvar subscriptionsModal_component_1 = __webpack_require__(682);\r\nvar applicationsAppModule = {\r\n components: { shiftComponent: shift_component_1.shiftComponent, shiftItemComponent: shift_item_component_1.shiftItemComponent, shiftCalendarComponent: shift_calendar_component_1.shiftCalendarComponent, shiftListComponent: shift_list_component_1.shiftListComponent, checkAvailabilityModalComponent: checkAvailabilityModal_component_1.checkAvailabilityModalComponent, employeePickerComponent: employeePicker_component_1.employeePickerComponent, employeeSummaryComponent: employeeSummary_component_1.employeeSummaryComponent, shiftListItemComponent: shift_list_item_component_1.shiftListItemComponent, shiftListEmployeeComponent: shift_list_employee_component_1.shiftListEmployeeComponent, subscriptionsModalComponent: subscriptionsModal_component_1.subscriptionsModalComponent },\r\n states: [shift_states_1.shiftState, shift_states_1.shiftItemState, shift_states_1.shiftCalendarState, shift_states_1.shiftListState, shift_states_1.shiftListItemState, shift_states_1.checkAvailabilityState,\r\n shift_states_1.shiftListEmployeeState, shift_states_2.shiftListSubscriptionsModalState],\r\n services: { CalendarService: calendar_service_1.CalendarService }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, applicationsAppModule);\r\n\n\n/***/ }),\n/* 676 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar calendar_service_1 = __webpack_require__(17);\r\nvar moment = __webpack_require__(0);\r\nvar ShiftCalendarController = /** @class */ (function () {\r\n ShiftCalendarController.$inject = [\"ShiftService\", \"CalendarService\", \"$state\", \"uiCalendarConfig\", \"$scope\", \"$compile\"];\r\n function ShiftCalendarController(ShiftService, CalendarService, $state, uiCalendarConfig, $scope, $compile) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.CalendarService = CalendarService;\r\n this.$state = $state;\r\n this.uiCalendarConfig = uiCalendarConfig;\r\n this.$scope = $scope;\r\n this.$compile = $compile;\r\n this.eventSources = [];\r\n this.$onInit = function () {\r\n // console.log('ShiftCalendarController');\r\n // var eventSource = {\r\n // url: 'http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic',\r\n // className: 'gcal-event', // an option!\r\n // currentTimezone: 'America/Chicago' // an option!\r\n // };\r\n _this.eventSources = [_this.getEvents];\r\n _this.uiConfig = {\r\n calendar: {\r\n height: 700,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: true,\r\n axisFormat: 'h:mm',\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: true,\r\n eventClick: _this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: _this.eventRender\r\n }\r\n };\r\n _this.ShiftService.subscribe('ShiftCalendarController', function (type) {\r\n var newShift;\r\n var calendarItem;\r\n switch (type) {\r\n case 'post': {\r\n newShift = _this.ShiftService.item;\r\n calendarItem = new calendar_service_1.ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n if (newShift.status) {\r\n calendarItem.status = newShift.status.toString();\r\n }\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n _this.shifts.push(calendarItem);\r\n break;\r\n }\r\n case 'put': {\r\n newShift = _this.ShiftService.item;\r\n _this.shifts = _this.shifts.filter(function (s) { return s.shift.id !== newShift.id; });\r\n if (_this.ShiftService.item.status !== 99) {\r\n calendarItem = new calendar_service_1.ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n if (newShift.status) {\r\n calendarItem.status = newShift.status.toString();\r\n }\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n _this.shifts.push(calendarItem);\r\n }\r\n break;\r\n }\r\n case 'delete': {\r\n _this.shifts = _this.shifts.filter(function (s) { return s.shift.id !== _this.ShiftService.itemId; });\r\n break;\r\n }\r\n }\r\n _this.uiCalendarConfig.calendars['shiftsCalendar'].fullCalendar('refetchEvents');\r\n });\r\n };\r\n this.openItem = function (event) {\r\n //this.$state.go('shifts.calendar.item', { 'id': event.shift.id });\r\n _this.$state.go('shifts.list.item', { 'id': event.shift.id, 'start': event.shift.start });\r\n };\r\n this.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'tooltip-append-to-body': true\r\n });\r\n if (moment().isBefore(event.start)) {\r\n element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor });\r\n }\r\n else {\r\n element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor, 'opacity': 0.7 });\r\n }\r\n _this.$compile(element)(_this.$scope);\r\n };\r\n this.getEvents = function (start, end, timezone, callback) {\r\n _this.CalendarService.all({ 'start': start.toDate(), 'end': end.toDate() }).then(function (events) {\r\n _this.shifts = events;\r\n var employeeName;\r\n _this.shifts.forEach(function (s) {\r\n employeeName = s.shift.employeeDisplayName || '-';\r\n s.title = s.title + '\\n' + employeeName;\r\n });\r\n callback(events);\r\n });\r\n };\r\n this.$onDestroy = function () {\r\n _this.ShiftService.unsubscribe('ShiftCalendarController');\r\n };\r\n }\r\n return ShiftCalendarController;\r\n}());\r\nexports.shiftCalendarComponent = {\r\n controller: ShiftCalendarController,\r\n template: __webpack_require__(486)\r\n};\r\n\n\n/***/ }),\n/* 677 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ShiftController = /** @class */ (function () {\r\n function ShiftController() {\r\n 'ngInject';\r\n }\r\n return ShiftController;\r\n}());\r\nexports.shiftComponent = {\r\n controller: ShiftController,\r\n template: __webpack_require__(487)\r\n};\r\n\n\n/***/ }),\n/* 678 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar services_1 = __webpack_require__(5);\r\nvar moment = __webpack_require__(0);\r\nvar ShiftItemController = /** @class */ (function () {\r\n ShiftItemController.$inject = [\"ShiftService\", \"EmployeesService\", \"AccountsService\", \"AuthService\", \"$stateParams\", \"$state\", \"$timeout\", \"$scope\", \"SweetAlert\"];\r\n function ShiftItemController(ShiftService, EmployeesService, AccountsService, AuthService, $stateParams, $state, $timeout, $scope, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.AccountsService = AccountsService;\r\n this.AuthService = AuthService;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.$scope = $scope;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n _this.sortType = 'start';\r\n //this.onChange({type: 'open', data: ''});\r\n _this.shift = _this.resolve.shift;\r\n _this.accounts = _this.resolve.accounts;\r\n _this.functions = _this.resolve.functions;\r\n _this.statuses = _this.resolve.statuses;\r\n _this.employees = _this.resolve.employees;\r\n if (!_this.employees.find(function (e) { return e.displayName === '--- Geen ---'; })) {\r\n var emp = new services_1.IEmployee();\r\n emp.displayName = '--- Geen ---';\r\n _this.employees.push(emp);\r\n }\r\n if (_this.shift) {\r\n _this.shift.start = new Date(_this.shift.start);\r\n _this.shift.end = new Date(_this.shift.end);\r\n if (moment().isAfter(_this.shift.start)) {\r\n _this.shift.isInThePast = true;\r\n }\r\n }\r\n else {\r\n _this.shift = new services_1.IShift();\r\n _this.shift.start = _this.roundMinutes(new Date());\r\n _this.shift.end = moment(_this.shift.start).add(8, 'hour').toDate();\r\n if (_this.AuthService.hasRole('customer')) {\r\n _this.shift.status = 6;\r\n }\r\n // console.log(this.$stateParams['status']);\r\n if (_this.$stateParams['status']) {\r\n _this.shift.status = _this.$stateParams['status'];\r\n }\r\n _this.shift.employeeId = null;\r\n }\r\n // console.log(this.AuthService.getTokenData().customerId);\r\n if (_this.AuthService.hasRole('customer')) {\r\n _this.shift.teamLocationAccountId = _this.AuthService.getTokenData().customerId;\r\n }\r\n if (_this.shift.teamLocationAccountId) {\r\n _this.AccountsService.getChild(_this.shift.teamLocationAccountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n if (_this.shift.teamLocationId) {\r\n _this.teams = _this.locations.find(function (item) { return item.id === _this.shift.teamLocationId; }).teams;\r\n }\r\n });\r\n }\r\n };\r\n }\r\n ShiftItemController.prototype.roundMinutes = function (date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n };\r\n ShiftItemController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n ShiftItemController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.shift.start) {\r\n var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n ShiftItemController.prototype.selectedAccount = function () {\r\n var _this = this;\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n });\r\n };\r\n ShiftItemController.prototype.locationSelected = function () {\r\n var _this = this;\r\n this.teams = this.locations.find(function (item) { return item.id === _this.shift.teamLocationId; }).teams;\r\n };\r\n ShiftItemController.prototype.submitShift = function (after) {\r\n var _this = this;\r\n if (after === void 0) { after = null; }\r\n if (this.shift.isInThePast) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Deze dienst is in het verleden. Weet je zeker dit zeker?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.save(after);\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n else {\r\n this.save(after);\r\n }\r\n };\r\n ShiftItemController.prototype.save = function (after) {\r\n var _this = this;\r\n if (moment(this.shift.start).isAfter(this.shift.end)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Eindtijd ligt voor starttijd',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'OK',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n }\r\n });\r\n }\r\n else {\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (!this.shift.id) {\r\n this.ShiftService.post(this.shift).then(function (data) {\r\n _this.shift = data;\r\n _this.handleAfterSubmit(after);\r\n });\r\n }\r\n else {\r\n this.ShiftService.put(this.shift.id, this.shift).then(function (data) {\r\n _this.handleAfterSubmit(after);\r\n });\r\n }\r\n }\r\n };\r\n ShiftItemController.prototype.deleteShift = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze dienst wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.ShiftService.delete(_this.shift.id).then(function () {\r\n // this.shifts = this.shifts.filter(s => s.id !== this.shift.id);\r\n _this.shift = null;\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n ShiftItemController.prototype.handleAfterSubmit = function (after) {\r\n switch (after) {\r\n case \"copy\": {\r\n this.shift.id = null;\r\n this.shift.start = moment(this.shift.start).add(1, 'day').toDate();\r\n this.shift.end = moment(this.shift.end).add(1, 'day').toDate();\r\n if (moment().isAfter(this.shift.start)) {\r\n this.shift.isInThePast = true;\r\n }\r\n else {\r\n this.shift.isInThePast = false;\r\n }\r\n break;\r\n }\r\n case \"new\": {\r\n this.shift = new services_1.IShift();\r\n break;\r\n }\r\n default: {\r\n this.closeModal();\r\n }\r\n }\r\n };\r\n ShiftItemController.prototype.closeModal = function () {\r\n if (this.shift && this.shift.id) {\r\n this.$state.go('^', { 'id': this.shift.id }, { reload: true });\r\n }\r\n else {\r\n this.$state.go('^', { 'id': null }, { reload: true });\r\n }\r\n };\r\n return ShiftItemController;\r\n}());\r\nexports.shiftItemComponent = {\r\n bindings: {\r\n resolve: '<',\r\n },\r\n controller: ShiftItemController,\r\n template: __webpack_require__(488)\r\n};\r\n\n\n/***/ }),\n/* 679 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar shifts_service_1 = __webpack_require__(18);\r\nvar moment = __webpack_require__(0);\r\nvar _ = __webpack_require__(7);\r\nvar ShiftListController = /** @class */ (function () {\r\n ShiftListController.$inject = [\"ShiftService\", \"EmployeesService\", \"ThemeAppService\", \"$scope\", \"$state\", \"SweetAlert\", \"$timeout\", \"$filter\", \"$sce\", \"AuthUserService\", \"$stateParams\"];\r\n function ShiftListController(ShiftService, EmployeesService, ThemeAppService, $scope, $state, SweetAlert, $timeout, $filter, $sce, AuthUserService, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.ThemeAppService = ThemeAppService;\r\n this.$scope = $scope;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n this.$timeout = $timeout;\r\n this.$filter = $filter;\r\n this.$sce = $sce;\r\n this.AuthUserService = AuthUserService;\r\n this.$stateParams = $stateParams;\r\n this.groupedShifts = [];\r\n this.days = [];\r\n this.teams = [];\r\n this.$onInit = function () {\r\n _this.isMessageOpen = false;\r\n _this.shiftsGrouping = 'date';\r\n ///console.log(this.$stateParams);\r\n _this.$scope.$watchCollection(function () {\r\n return _this.$state.params;\r\n }, function () {\r\n if (_this.$stateParams['refreshShift']) {\r\n _this.refreshShift(_this.$stateParams['refreshShift']);\r\n _this.$state.go(\".\", { \"refreshShift\": '' }, { notify: false });\r\n }\r\n });\r\n _this.filter = {\r\n status: null\r\n };\r\n var date = moment();\r\n if (_this.$stateParams['start']) {\r\n date = moment(_this.$stateParams['start']);\r\n _this.startDate = date.format(\"YYYY-MM-DD\");\r\n if (_this.$stateParams['end']) {\r\n _this.endDate = moment(_this.$stateParams['end']).format(\"YYYY-MM-DD\");\r\n }\r\n else {\r\n _this.endDate = date.add(1, 'M').format(\"YYYY-MM-DD\");\r\n }\r\n }\r\n else {\r\n _this.startDate = date.format(\"YYYY-MM-DD\");\r\n _this.endDate = date.add(1, 'M').format(\"YYYY-MM-DD\");\r\n }\r\n _this.AuthUserService.getCurrentUser().then(function (user) {\r\n _this.user = user;\r\n });\r\n _this.getShiftsByDate();\r\n };\r\n this.$onDestroy = function () {\r\n _this.ShiftService.unsubscribe('ShiftListController');\r\n };\r\n this.isSameDay = function (start, end) {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n this.getShiftsByDate = function () {\r\n _this.$state.go(\".\", { \"start\": _this.startDate, \"end\": _this.endDate }, { notify: false });\r\n _this.shifts = [];\r\n _this.getShifts();\r\n };\r\n this.prevWeek = function () {\r\n _this.startDate = moment(_this.startDate).add(-7, 'day').toDate();\r\n _this.endDate = moment(_this.endDate).add(-7, 'day').toDate();\r\n _this.shifts = [];\r\n _this.getShiftsByDate();\r\n };\r\n this.nextWeek = function () {\r\n _this.startDate = moment(_this.startDate).add(7, 'day').toDate();\r\n _this.endDate = moment(_this.endDate).add(7, 'day').toDate();\r\n _this.shifts = [];\r\n _this.getShiftsByDate();\r\n };\r\n this.resetFilters = function () {\r\n _this.filter = {\r\n search: null,\r\n status: null,\r\n createdby: null,\r\n createdsince: null\r\n };\r\n _this.shifts = [];\r\n _this.getShifts();\r\n };\r\n this.nextPage = function () {\r\n _this.loading = true;\r\n _this.getShifts(true, _this.shifts.length);\r\n };\r\n this.setFilters = function (resetTime) {\r\n if (resetTime === void 0) { resetTime = true; }\r\n _this.loading = true;\r\n _this.shifts = [];\r\n if (resetTime) {\r\n _this.filter.createdsince = null;\r\n _this.filter.updatedsince = null;\r\n }\r\n _this.getShifts(true, 0);\r\n };\r\n this.getShifts = function (scrollTo, offset) {\r\n if (scrollTo === void 0) { scrollTo = true; }\r\n if (offset === void 0) { offset = 0; }\r\n _this.loading = true;\r\n var params = {\r\n from: _this.startDate,\r\n till: _this.endDate,\r\n includeSubscriptions: true,\r\n sortfield: 'start',\r\n sortorder: 'asc',\r\n limit: 25,\r\n offset: offset\r\n };\r\n if (_this.filter) {\r\n if (_this.filter.status) {\r\n params.status = _this.filter.status;\r\n }\r\n if (_this.filter.search && _this.filter.search.length > 3) {\r\n params.q = _this.filter.search;\r\n }\r\n if (_this.filter.createdby) {\r\n params.createdBy = _this.filter.createdby;\r\n // params.updatedBy = this.filter.createdby;\r\n }\r\n if (_this.filter.createdsince) {\r\n params.createdSince = _this.filter.createdsince;\r\n params.updatedSince = _this.filter.createdsince;\r\n }\r\n }\r\n if (!_this.shiftLoading) {\r\n _this.shiftLoading = true;\r\n if (!_this.shifts) {\r\n _this.shifts = [];\r\n }\r\n _this.ShiftService.getFilter(params).then(function (result) {\r\n result.forEach(function (item) {\r\n _this.shifts.push(item);\r\n });\r\n //this.shifts = [...result];\r\n _this.getTeams();\r\n _this.filterShifts(scrollTo);\r\n _this.shiftLoading = false;\r\n if (result.length >= 25) {\r\n _this.loading = false;\r\n }\r\n else {\r\n _this.endList = true;\r\n }\r\n });\r\n }\r\n };\r\n this.filterShifts = function (scrollTo) {\r\n // this.shifts = this.$filter('filter')(this.shifts, this.filter.search);\r\n if (scrollTo === void 0) { scrollTo = true; }\r\n if (_this.shiftsGrouping && _this.shiftsGrouping == 'date') {\r\n _this.groupedShifts = _.groupBy(_this.shifts, function (item) {\r\n return moment(item.start).format('dd DD-MM-YYYY');\r\n });\r\n }\r\n if (!_this.shifts.length) {\r\n // this.$state.go(\"shifts.list\");\r\n }\r\n else if (_this.currentShift) {\r\n if (!_.find(_this.shifts, { id: _this.currentShift.id }) && !_this.handlingChildChange) {\r\n // this.$state.go(this.$state.current, { id: this.shifts[0].id });\r\n // this.currentShift = this.shifts[0];\r\n // this.$timeout(() => {\r\n // if (this.isMessageOpen && scrollTo) {\r\n // this.scrollToShift(this.currentShift.id);\r\n // }\r\n // });\r\n }\r\n else {\r\n _this.$timeout(function () {\r\n if (_this.handlingChildChange) {\r\n _this.handlingChildChange = false;\r\n }\r\n if (_this.isMessageOpen && scrollTo) {\r\n _this.scrollToShift(_this.currentShift.id);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // private mailTeam = (team) => {\r\n // var ids = [];\r\n // this.shifts.forEach(s => {\r\n // if (s.teamName && s.teamName == team && ids.find(id => id == s.id) == null) {\r\n // ids.push(s.id);\r\n // }\r\n // });\r\n // this.ShiftService.customPost('email/team', ids);\r\n // }\r\n this.notifyTeam = function () {\r\n _this.ShiftService.customPost('email/team', [_this.currentShift.id]);\r\n };\r\n this.notifyEmployee = function () {\r\n _this.ShiftService.customPost('email/employee', [_this.currentShift.id]);\r\n };\r\n this.getTeams = function () {\r\n _this.shifts.forEach(function (s) {\r\n if (_this.teams.indexOf(s.teamName) == -1) {\r\n _this.teams.push(s.teamName);\r\n }\r\n });\r\n };\r\n this.handleChildChange = function (type, data) {\r\n // console.log('handleChildChange')\r\n // console.log(type)\r\n _this.handlingChildChange = true;\r\n switch (type) {\r\n case 'open':\r\n _this.isMessageOpen = true;\r\n _this.currentShift = data;\r\n break;\r\n case 'close':\r\n _this.isMessageOpen = false;\r\n break;\r\n case 'new':\r\n _this.setFilters();\r\n break;\r\n case 'updated':\r\n _this.setFilters();\r\n break;\r\n case 'deleted':\r\n _this.setFilters();\r\n break;\r\n case 'copy':\r\n _this.setFilters(false);\r\n break;\r\n }\r\n };\r\n this.scrollToShift = function (shiftID) {\r\n // var target_offset = $(\"#s-\" + shiftID).offset();\r\n // var parent_offset = $('#shiftsmalllist').offset();\r\n // var target_top = target_offset.top - parent_offset.top - 10;\r\n // $('#shiftsmalllist').animate({ scrollTop: target_top }, 500);\r\n };\r\n this.selectAllChange = function () {\r\n _this.shifts.forEach(function (shift) {\r\n shift.$selected = _this.selectAll;\r\n });\r\n };\r\n this.submitAction = function () {\r\n var shifts = _.filter(_this.shifts, { $selected: true });\r\n var data = new shifts_service_1.IBulkactionData();\r\n data.ids = [];\r\n shifts.forEach(function (shift) {\r\n data.ids.push(shift.id);\r\n });\r\n var text = '';\r\n switch (_this.actionform.action) {\r\n case 'setstatus':\r\n var status = _this.actionform.status;\r\n data.shiftBulkAction = \"ChangeStatus\";\r\n data.statusId = status.code;\r\n text = 'Weet u zeker dat u van alle ' + shifts.length + ' geselecteerde diensten de status op ' + status.name + ' wilt zetten?';\r\n break;\r\n case 'emailteam':\r\n data.shiftBulkAction = \"SendEmail\";\r\n data.shiftEmail = \"Customer\";\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt mailen naar team?';\r\n break;\r\n case 'emailemployee':\r\n data.shiftBulkAction = \"SendEmail\";\r\n data.shiftEmail = \"EmployeeConfirm\";\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt mailen naar de medewerkers?';\r\n break;\r\n ;\r\n case 'setemployee':\r\n var employee = _this.actionform.employee;\r\n data.shiftBulkAction = \"SetEmployee\";\r\n data.employeeId = employee.id;\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt toewijzen aan ' + employee.displayName + '?';\r\n break;\r\n case 'delete':\r\n data.shiftBulkAction = \"Delete\";\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt verwijderen?';\r\n break;\r\n }\r\n _this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: text,\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.ShiftService.bulkAction(data).then(function () {\r\n _this.actionform.action = \"\";\r\n _this.shifts = [];\r\n _this.getShifts();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n this.months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];\r\n }\r\n ShiftListController.prototype.refreshShift = function (id) {\r\n var _this = this;\r\n this.ShiftService.get(id).then(function (shift) {\r\n var index = _.findIndex(_this.shifts, { id: id });\r\n _this.shifts[index] = shift;\r\n _this.filterShifts();\r\n });\r\n };\r\n return ShiftListController;\r\n}());\r\nexports.shiftListComponent = {\r\n bindings: {\r\n statuses: '<',\r\n functions: '<',\r\n employees: '<'\r\n },\r\n controller: ShiftListController,\r\n template: __webpack_require__(490)\r\n};\r\n\n\n/***/ }),\n/* 680 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar ShiftListEmployeeController = /** @class */ (function () {\r\n ShiftListEmployeeController.$inject = [\"ShiftService\", \"EmployeesService\"];\r\n function ShiftListEmployeeController(ShiftService, EmployeesService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.$onInit = function () {\r\n _this.onChange({ type: 'open', data: _this.shift });\r\n _this.getEmployees();\r\n };\r\n this.$onDestroy = function () {\r\n _this.onChange({ type: 'close', data: _this.shift });\r\n };\r\n this.getEmployees = function () {\r\n var request = {\r\n accountId: _this.shift.teamLocationAccountId,\r\n locationId: _this.shift.teamLocationId,\r\n startDate: _this.shift.start,\r\n endDate: _this.shift.end,\r\n shiftId: _this.shift.id\r\n };\r\n _this.EmployeesService.customPost('availableEmployees', request, false).then(function (result) {\r\n _this.employees = result;\r\n _this.selectedEmployee = _this.employees.find(function (employeeSummary) { return employeeSummary.employee.id == _this.shift.employeeId; });\r\n });\r\n };\r\n this.unassignEmployee = function () {\r\n _this.shift.employeeId = null;\r\n _this.shift.status = 2;\r\n _this.selectedEmployee = null;\r\n _this.submitShift();\r\n };\r\n }\r\n ShiftListEmployeeController.prototype.submitShift = function () {\r\n var _this = this;\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.shift.employeeId !== null) {\r\n this.shift.status = 6;\r\n }\r\n this.ShiftService.put(this.shift.id, this.shift).then(function (data) {\r\n _this.onChange({ type: 'updated', data: data });\r\n _this.getEmployees();\r\n });\r\n };\r\n return ShiftListEmployeeController;\r\n}());\r\nexports.shiftListEmployeeComponent = {\r\n bindings: {\r\n shift: '<',\r\n //employees: '<',\r\n functions: '<',\r\n onChange: '&',\r\n },\r\n controller: ShiftListEmployeeController,\r\n template: __webpack_require__(489)\r\n};\r\n\n\n/***/ }),\n/* 681 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar services_1 = __webpack_require__(5);\r\nvar moment = __webpack_require__(0);\r\nvar ShiftListItemController = /** @class */ (function () {\r\n ShiftListItemController.$inject = [\"ShiftService\", \"EmployeesService\", \"AccountsService\", \"AuthService\", \"$stateParams\", \"$state\", \"$timeout\", \"$scope\", \"SweetAlert\"];\r\n function ShiftListItemController(ShiftService, EmployeesService, AccountsService, AuthService, $stateParams, $state, $timeout, $scope, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.AccountsService = AccountsService;\r\n this.AuthService = AuthService;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.$scope = $scope;\r\n this.SweetAlert = SweetAlert;\r\n this.isBackoffice = false;\r\n this.isCustomer = false;\r\n this.isEmployee = false;\r\n this.$onInit = function () {\r\n _this.onChange({ type: 'open', data: _this.shift });\r\n if (!_this.employees.find(function (e) { return e.displayName === '--- Geen ---'; })) {\r\n var emp = new services_1.IEmployee();\r\n emp.displayName = '--- Geen ---';\r\n _this.employees.push(emp);\r\n }\r\n if (_this.shift) {\r\n if (moment().isAfter(_this.shift.start)) {\r\n _this.shift.isInThePast = true;\r\n }\r\n _this.currentShiftStatus = _this.shift.status;\r\n }\r\n else {\r\n _this.shift = new services_1.IShift();\r\n _this.shift.start = _this.roundMinutes(new Date());\r\n _this.shift.end = moment(_this.shift.start).add(8, 'hour').toDate();\r\n _this.shift.status = 2;\r\n // if (this.AuthService.hasRole('customer')) {\r\n // this.shift.status = 6;\r\n // }\r\n if (_this.$stateParams['status']) {\r\n _this.shift.status = _this.$stateParams['status'];\r\n }\r\n _this.shift.employeeId = null;\r\n }\r\n if (_this.AuthService.hasRole('customer')) {\r\n _this.shift.teamLocationAccountId = _this.AuthService.getTokenData().customerId;\r\n }\r\n if (_this.shift.teamLocationAccountId) {\r\n _this.AccountsService.getChild(_this.shift.teamLocationAccountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n if (_this.shift.teamLocationId) {\r\n _this.teams = _this.locations.find(function (item) { return item.id === _this.shift.teamLocationId; }).teams;\r\n }\r\n });\r\n }\r\n _this.currentDate = new Date(Date.now());\r\n _this.isBackoffice = _this.AuthService.hasRole('backoffice');\r\n _this.isCustomer = _this.AuthService.hasRole('customer');\r\n _this.isEmployee = _this.AuthService.hasRole('employee');\r\n };\r\n this.$onDestroy = function () {\r\n _this.onChange({ type: 'close', data: _this.shift });\r\n };\r\n // startDateBeforeRender($dates) {\r\n // }\r\n // endDateBeforeRender($view, $dates) {\r\n // // console.log('endDateBeforeRender');\r\n // if (this.shift.start) {\r\n // var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n // $dates.filter(function (date) {\r\n // return date.localDateValue() <= activeDate.valueOf();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n // }\r\n // }\r\n this.selectEmployee = function () {\r\n if (_this.shift.employeeId) {\r\n _this.shift.status = 6;\r\n }\r\n else {\r\n _this.shift.status = 2;\r\n }\r\n };\r\n this.save = function (after) {\r\n _this.shift.start = moment(_this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n _this.shift.end = moment(_this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (!_this.shift.id) {\r\n _this.ShiftService.post(_this.shift).then(function (data) {\r\n _this.shift = data;\r\n _this.handleAfterSubmit(after, 'new');\r\n });\r\n }\r\n else {\r\n _this.ShiftService.put(_this.shift.id, _this.shift).then(function (data) {\r\n _this.shift = data;\r\n _this.handleAfterSubmit(after, 'updated');\r\n });\r\n }\r\n };\r\n this.deleteShift = function () {\r\n _this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze dienst wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.ShiftService.delete(_this.shift.id).then(function () {\r\n _this.onChange({ type: 'deleted', data: _this.shift });\r\n _this.$state.go('^');\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n this.handleAfterSubmit = function (after, type) {\r\n switch (after) {\r\n case \"copy\": {\r\n _this.onChange({ type: 'copy', data: _this.shift });\r\n //this.$state.go('.', {'id': ''}, {notify: false});\r\n _this.shift.id = null;\r\n // this.shift.start = moment(this.shift.start).add(1, 'day').toDate();\r\n // this.shift.end = moment(this.shift.end).add(1, 'day').toDate();\r\n if (moment().isAfter(_this.shift.start)) {\r\n _this.shift.isInThePast = true;\r\n }\r\n else {\r\n _this.shift.isInThePast = false;\r\n }\r\n break;\r\n }\r\n case \"new\": {\r\n _this.onChange({ type: 'copy', data: _this.shift });\r\n _this.shift = null;\r\n _this.$state.go('shifts.list.item', { 'id': '' });\r\n break;\r\n }\r\n default: {\r\n _this.$state.go('shifts.list.item', { 'id': _this.shift.id });\r\n _this.onChange({ type: \"new\", data: _this.shift });\r\n }\r\n }\r\n };\r\n }\r\n ShiftListItemController.prototype.roundMinutes = function (date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n };\r\n ShiftListItemController.prototype.selectedAccount = function () {\r\n var _this = this;\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n });\r\n };\r\n ShiftListItemController.prototype.locationSelected = function () {\r\n var _this = this;\r\n if (this.shift.teamLocationId) {\r\n var location_1 = this.locations.find(function (item) { return item.id === _this.shift.teamLocationId; });\r\n this.teams = location_1 ? location_1.teams : [];\r\n }\r\n };\r\n ShiftListItemController.prototype.submitShift = function (after) {\r\n var _this = this;\r\n if (after === void 0) { after = null; }\r\n this.$scope.shiftForm.$setSubmitted();\r\n if (this.$scope.shiftForm.$valid) {\r\n if (this.isCustomer && moment().isAfter(this.shift.start)) {\r\n this.SweetAlert.swal('Dienst in het verleden', 'U kunt geen dienst in het verleden creëren.', 'warning');\r\n }\r\n else if (moment(this.shift.start).isAfter(this.shift.end)) {\r\n this.SweetAlert.swal('Let op!', 'Eindtijd ligt voor starttijd.', 'warning');\r\n }\r\n else if (moment().isAfter(this.shift.start)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Deze dienst is in het verleden. Weet je zeker dit zeker?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.currentShiftStatus = _this.shift.status;\r\n _this.save(after);\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n else if ((this.shift.status === 92 || this.shift.status === 7) && moment().add(4, 'day').isAfter(moment(this.shift.start))) {\r\n // console.log(\"HERE\")\r\n if (!this.shift.employeeId) {\r\n // console.log(\"1\")\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Let op: de dienst begint over minder dan 96 uur. Er is geen medewerker geselecteerd waarop een decalartie kan worden aangemaakt. Je kunt deze dienst niet annuleren',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Stop',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n else {\r\n // console.log(\"2\")\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Let op: de dienst begint over minder dan 96 uur. Er worden automatisch een declaratie aangemaakt. Weet u zeker dat u de dienst wilt annuleren?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.shift.status = 7;\r\n _this.currentShiftStatus = _this.shift.status;\r\n _this.save(after);\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n }\r\n else if ((this.currentShiftStatus === 7 && this.shift.status != 7)) {\r\n // console.log(\"3\")\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Let op: Deze dienst had status Geannuleerd 96 uur. Bij het opslaan zullen alle declaraties worden verwijderd. Weet je zeker dat je dit wilt?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.currentShiftStatus = _this.shift.status;\r\n _this.save(after);\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n else {\r\n this.currentShiftStatus = this.shift.status;\r\n this.save(after);\r\n }\r\n }\r\n };\r\n return ShiftListItemController;\r\n}());\r\nexports.shiftListItemComponent = {\r\n bindings: {\r\n shift: '<',\r\n employees: '<',\r\n statuses: '<',\r\n accounts: '<',\r\n functions: '<',\r\n onChange: '&',\r\n },\r\n controller: ShiftListItemController,\r\n template: __webpack_require__(491)\r\n};\r\n\n\n/***/ }),\n/* 682 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar SubscriptionsModalController = /** @class */ (function () {\r\n SubscriptionsModalController.$inject = [\"ShiftService\", \"EmployeesService\", \"$state\", \"$timeout\", \"SweetAlert\"];\r\n function SubscriptionsModalController(ShiftService, EmployeesService, $state, $timeout, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.$state = $state;\r\n this.$timeout = $timeout;\r\n this.SweetAlert = SweetAlert;\r\n this.mailcustomer = false;\r\n this.mailemployee = false;\r\n this.$onInit = function () {\r\n _this.shift = _this.resolve.shift;\r\n _this.statuses = _this.resolve.statuses;\r\n _this.getEmployee();\r\n _this.getEmployees();\r\n _this.setModalHeight();\r\n };\r\n this.setModalHeight = function () {\r\n // var docHeight = $(window).height();\r\n // var height = docHeight - 225;\r\n $(\"#checkAvailabilityModalBody #employeelist\").height(450);\r\n };\r\n this.getEmployees = function () {\r\n var request = {\r\n accountId: _this.shift.teamLocationAccountId,\r\n locationId: _this.shift.teamLocationId,\r\n startDate: _this.shift.start,\r\n endDate: _this.shift.end,\r\n shiftId: _this.shift.id\r\n };\r\n _this.EmployeesService.customPost('availableEmployees', request, false).then(function (result) {\r\n _this.employees = result;\r\n _this.employees = _this.employees.filter(function (employeeSummary) { return employeeSummary.subscription; });\r\n //this.selectedEmployee = this.employees.find(employeeSummary => employeeSummary.employee.id == this.shift.employeeId);\r\n });\r\n };\r\n this.onSelectEmployee = function () {\r\n _this.$timeout(function () {\r\n if (_this.shift.employeeId) {\r\n _this.shift.status = 6;\r\n }\r\n else {\r\n _this.shift.status = 2;\r\n }\r\n _this.getEmployee();\r\n });\r\n };\r\n this.getEmployee = function () {\r\n if (_this.shift.employeeId) {\r\n _this.EmployeesService.get(_this.shift.employeeId).then(function (employee) {\r\n _this.employee = employee;\r\n });\r\n }\r\n };\r\n this.save = function () {\r\n if (moment(_this.shift.start).isAfter(_this.shift.end)) {\r\n _this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Eindtijd ligt voor starttijd',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'OK',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n }\r\n });\r\n }\r\n else {\r\n _this.ShiftService.put(_this.shift.id, _this.shift).then(function (data) {\r\n _this.shift = data;\r\n if (_this.mailcustomer) {\r\n _this.notifyTeam();\r\n }\r\n if (_this.mailemployee) {\r\n _this.notifyEmployee();\r\n }\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n this.notifyTeam = function () {\r\n _this.ShiftService.customPost('email/team', [_this.shift.id]);\r\n };\r\n this.notifyEmployee = function () {\r\n _this.ShiftService.customPost('email/employee', [_this.shift.id]);\r\n };\r\n }\r\n // getEmployee(id) {\r\n // return this.EmployeesService.get(id).then(employee => {\r\n // return employee;\r\n // })\r\n // }\r\n SubscriptionsModalController.prototype.closeModal = function () {\r\n this.$state.go('^', { 'refreshShift': this.shift.id }, {\r\n location: true,\r\n reload: false,\r\n inherit: true,\r\n notify: true\r\n });\r\n };\r\n return SubscriptionsModalController;\r\n}());\r\nexports.subscriptionsModalComponent = {\r\n controller: SubscriptionsModalController,\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n template: __webpack_require__(492)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 683 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar skills_states_1 = __webpack_require__(686);\r\nvar skills_dashboard_component_1 = __webpack_require__(685);\r\nvar skills_component_1 = __webpack_require__(684);\r\nvar skillAppModule = {\r\n components: { skillsComponent: skills_component_1.skillsComponent, skillsDashboardComponent: skills_dashboard_component_1.skillsDashboardComponent },\r\n states: [skills_states_1.skillsState, skills_states_1.skillsDashboardState, skills_states_1.employeeSkillsItemState],\r\n filters: {}\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, skillAppModule);\r\n\n\n/***/ }),\n/* 684 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SkillsController = /** @class */ (function () {\r\n function SkillsController() {\r\n 'ngInject';\r\n }\r\n return SkillsController;\r\n}());\r\nexports.skillsComponent = {\r\n controller: SkillsController,\r\n template: __webpack_require__(494)\r\n};\r\n\n\n/***/ }),\n/* 685 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SkillsDashboardController = /** @class */ (function () {\r\n SkillsDashboardController.$inject = [\"EmployeeSkillsService\", \"$state\", \"$stateParams\"];\r\n function SkillsDashboardController(EmployeeSkillsService, $state, $stateParams) {\r\n \"ngInject\";\r\n this.EmployeeSkillsService = EmployeeSkillsService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n };\r\n }\r\n return SkillsDashboardController;\r\n}());\r\nexports.skillsDashboardComponent = {\r\n controller: SkillsDashboardController,\r\n bindings: {\r\n employeeSkills: '<'\r\n },\r\n template: __webpack_require__(493)\r\n};\r\n\n\n/***/ }),\n/* 686 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.skillsState = {\r\n parent: 'app',\r\n name: \"skills\",\r\n url: \"/skills\",\r\n redirectTo: \"skills.dashboard\",\r\n component: 'skillsComponent',\r\n data: {\r\n permissions: {\r\n only: ['EMPLOYEE']\r\n }\r\n }\r\n};\r\nexports.skillsDashboardState = {\r\n name: \"skills.dashboard\",\r\n url: \"/skillsDashboard\",\r\n resolve: {\r\n employeeSkills: [\"EmployeeSkillsService\", function (EmployeeSkillsService) {\r\n \"ngInject\";\r\n return EmployeeSkillsService.all();\r\n }]\r\n },\r\n views: {\r\n \"main\": 'skillsDashboardComponent'\r\n }\r\n};\r\nexports.employeeSkillsItemState = {\r\n name: \"skills.dashboard.skill\",\r\n url: \"/employeeSkill/:employeeSkillId\",\r\n params: {\r\n \"employeeSkillId\": null\r\n },\r\n modal: ['employeeSkills'],\r\n resolve: {\r\n skills: [\"MasterdataService\", function (MasterdataService) {\r\n 'ngInject';\r\n return MasterdataService.getItems('Skills');\r\n }]\r\n },\r\n component: 'skillsItemComponent'\r\n};\r\n\n\n/***/ }),\n/* 687 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar subscriptions_item_component_1 = __webpack_require__(690);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar subscriptions_states_1 = __webpack_require__(691);\r\nvar subscriptions_dashboard_component_1 = __webpack_require__(689);\r\nvar subscriptions_component_1 = __webpack_require__(688);\r\nvar isDay_filter_1 = __webpack_require__(556);\r\nvar subscriptionAppModule = {\r\n components: { subscriptionsComponent: subscriptions_component_1.subscriptionsComponent, subscriptionsDashboardComponent: subscriptions_dashboard_component_1.subscriptionsDashboardComponent, subscriptionsItemComponent: subscriptions_item_component_1.subscriptionsItemComponent },\r\n states: [subscriptions_states_1.subscriptionsState, subscriptions_states_1.subscriptionsDashboardState, subscriptions_states_1.subscriptionsDashboardItemState],\r\n filters: { isDay: isDay_filter_1.isDay }\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, subscriptionAppModule);\r\n\n\n/***/ }),\n/* 688 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SubscriptionsController = /** @class */ (function () {\r\n function SubscriptionsController() {\r\n 'ngInject';\r\n }\r\n return SubscriptionsController;\r\n}());\r\nexports.subscriptionsComponent = {\r\n controller: SubscriptionsController,\r\n template: __webpack_require__(496)\r\n};\r\n\n\n/***/ }),\n/* 689 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar _ = __webpack_require__(7);\r\nvar moment = __webpack_require__(0);\r\nvar SubscriptionsDashboardController = /** @class */ (function () {\r\n SubscriptionsDashboardController.$inject = [\"EmployeesService\", \"$state\", \"$stateParams\", \"ShiftService\", \"screenSize\"];\r\n function SubscriptionsDashboardController(EmployeesService, $state, $stateParams, ShiftService, screenSize) {\r\n \"ngInject\";\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.ShiftService = ShiftService;\r\n this.screenSize = screenSize;\r\n this.days = [];\r\n this.$onInit = function () {\r\n _this.isMessageOpen = false;\r\n _this.shiftsGrouping = 'date';\r\n _this.filter = {\r\n status: null\r\n };\r\n _this.maxDistanceFilter = '50';\r\n _this.isInitializing = true;\r\n _this.startDate = moment().toDate();\r\n _this.endDate = moment().add(1, 'w').toDate();\r\n _this.getShifts(true, true);\r\n };\r\n this.handleChildChange = function (type, data) {\r\n switch (type) {\r\n case 'init':\r\n _this.isMessageOpen = true;\r\n break;\r\n case 'update':\r\n _this.getShifts();\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n this.resetFilters = function () {\r\n _this.filter = {\r\n search: null,\r\n status: null,\r\n createdby: null,\r\n createdsince: null\r\n };\r\n _this.getShifts();\r\n };\r\n this.getShifts = function (scrollTo, isFirstGet) {\r\n if (scrollTo === void 0) { scrollTo = true; }\r\n if (isFirstGet === void 0) { isFirstGet = false; }\r\n if (!_this.isInitializing || isFirstGet) {\r\n // console.log('this.getShifts')\r\n var termTooShort = false;\r\n _this.currentShift = null;\r\n var params = {\r\n from: _this.startDate,\r\n till: _this.endDate,\r\n includeSubscriptions: false,\r\n includeDistance: true,\r\n sortfield: 'start',\r\n sortorder: 'asc'\r\n };\r\n if (_this.filter) {\r\n params.status = '2';\r\n // if (this.filter.status) {\r\n // params.status = '2';\r\n // }\r\n if (_this.filter.search) {\r\n if (_this.filter.search.length > 3) {\r\n params.q = _this.filter.search;\r\n }\r\n else {\r\n termTooShort = true;\r\n }\r\n }\r\n // if (this.filter.createdby) {\r\n // params.createdBy = this.filter.createdby;\r\n // params.updatedBy = this.filter.createdby;\r\n // }\r\n // if (this.filter.createdsince) {\r\n // params.createdSince = this.filter.createdsince;\r\n // params.updatedSince = this.filter.createdsince;\r\n // }\r\n }\r\n if (!termTooShort) {\r\n _this.ShiftService.getFilter(params).then(function (result) {\r\n _this.shifts = result;\r\n _this.setFilters();\r\n if (_this.isInitializing) {\r\n _this.isInitializing = false;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n }\r\n SubscriptionsDashboardController.prototype.prevWeek = function () {\r\n this.startDate = moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(-7, 'day').toDate();\r\n this.getShifts();\r\n };\r\n SubscriptionsDashboardController.prototype.nextWeek = function () {\r\n this.startDate = moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(7, 'day').toDate();\r\n this.getShifts();\r\n };\r\n SubscriptionsDashboardController.prototype.setFilters = function () {\r\n var _this = this;\r\n var filteredShifts = this.shifts;\r\n // filter by distance\r\n if (this.maxDistanceFilter) {\r\n var filteredShifts = filteredShifts.filter(function (s) { return s.distance < Number(_this.maxDistanceFilter); });\r\n }\r\n // filter by function\r\n if (this.functionFilter) {\r\n var filteredShifts = filteredShifts.filter(function (s) { return s.functionId === _this.functionFilter; });\r\n }\r\n if (this.shiftsGrouping && this.shiftsGrouping == 'date') {\r\n this.groupShifts(filteredShifts);\r\n }\r\n };\r\n SubscriptionsDashboardController.prototype.groupShifts = function (shifts) {\r\n // console.log('groupShifts')\r\n this.groupedShifts = _.groupBy(shifts, function (item) {\r\n return moment(item.start).format('dd DD-MM-YYYY');\r\n });\r\n };\r\n return SubscriptionsDashboardController;\r\n}());\r\nexports.subscriptionsDashboardComponent = {\r\n controller: SubscriptionsDashboardController,\r\n bindings: {\r\n subscriptions: '<',\r\n functions: '<'\r\n },\r\n template: __webpack_require__(495)\r\n};\r\n\n\n/***/ }),\n/* 690 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar services_1 = __webpack_require__(5);\r\nvar SubscriptionsItemController = /** @class */ (function () {\r\n SubscriptionsItemController.$inject = [\"ShiftService\", \"EmployeesService\", \"TeamService\", \"LocationService\", \"$stateParams\"];\r\n function SubscriptionsItemController(ShiftService, EmployeesService, TeamService, LocationService, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.ShiftService = ShiftService;\r\n this.EmployeesService = EmployeesService;\r\n this.TeamService = TeamService;\r\n this.LocationService = LocationService;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n _this.getShift();\r\n if (_this.$stateParams['id']) {\r\n _this.onChange({ type: 'init', data: _this.$stateParams['id'] });\r\n }\r\n };\r\n this.getShift = function () {\r\n _this.ShiftService.customGet(_this.$stateParams['id'] + '/withDistance').then(function (shift) {\r\n _this.shift = shift;\r\n if (_this.shift.subscriptionsCount > 0) {\r\n _this.shift.subscribed = true;\r\n _this.subscription = _this.shift.mySubscription;\r\n }\r\n else {\r\n _this.subscription = new services_1.IEmployeeSubscription();\r\n _this.subscription.shiftId = _this.shift.id;\r\n }\r\n _this.getLocation();\r\n });\r\n };\r\n this.signUp = function () {\r\n if (!_this.subscription.id) {\r\n _this.EmployeesService.postSubscription(_this.subscription).then(function (result) {\r\n _this.shift.subscribed = true;\r\n _this.onChange({ type: 'update', data: _this.$stateParams['id'] });\r\n });\r\n }\r\n else {\r\n _this.EmployeesService.putSubscription(_this.subscription).then(function (result) {\r\n _this.shift.subscribed = true;\r\n _this.onChange({ type: 'update', data: _this.$stateParams['id'] });\r\n });\r\n }\r\n };\r\n this.unsubscribe = function () {\r\n var subscriptionId = _this.shift.mySubscription.id;\r\n _this.EmployeesService.customDelete('subscriptions/' + subscriptionId).then(function () {\r\n _this.shift.subscribed = false;\r\n _this.onChange({ type: 'update', data: _this.$stateParams['id'] });\r\n });\r\n };\r\n }\r\n SubscriptionsItemController.prototype.getLocation = function () {\r\n var _this = this;\r\n this.LocationService.get(this.shift.teamLocationId).then(function (location) {\r\n _this.location = location;\r\n });\r\n };\r\n return SubscriptionsItemController;\r\n}());\r\nexports.subscriptionsItemComponent = {\r\n bindings: {\r\n onChange: '&',\r\n },\r\n controller: SubscriptionsItemController,\r\n template: __webpack_require__(497)\r\n};\r\n\n\n/***/ }),\n/* 691 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.subscriptionsState = {\r\n parent: 'app',\r\n name: \"subscriptions\",\r\n url: \"/subscriptions\",\r\n redirectTo: \"subscriptions.dashboard\",\r\n component: 'subscriptionsComponent',\r\n data: {\r\n permissions: {\r\n only: ['EMPLOYEE']\r\n }\r\n }\r\n};\r\nexports.subscriptionsDashboardState = {\r\n name: \"subscriptions.dashboard\",\r\n url: \"/dashboard?currentShiftId\",\r\n params: {\r\n currentShiftId: null\r\n },\r\n resolve: {\r\n // shifts: (ShiftService: ShiftService) => { \r\n // \"ngInject\";\r\n // var moment = require('moment');\r\n // var startDate = moment().toDate();\r\n // var endDate = moment().add(30, 'day').toDate();\r\n // return ShiftService.getLightByDate({start: startDate, end: endDate});\r\n // },\r\n subscriptions: [\"EmployeesService\", function (EmployeesService) {\r\n \"ngInject\";\r\n return EmployeesService.getSubscriptions();\r\n }],\r\n functions: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('Functions');\r\n }]\r\n },\r\n views: {\r\n \"main\": 'subscriptionsDashboardComponent'\r\n }\r\n};\r\nexports.subscriptionsDashboardItemState = {\r\n name: \"subscriptions.dashboard.item\",\r\n url: \"/item/:id\",\r\n resolve: {},\r\n views: {\r\n \"shiflistitem@subscriptions.dashboard\": 'subscriptionsItemComponent'\r\n },\r\n};\r\n\n\n/***/ }),\n/* 692 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar task_component_1 = __webpack_require__(694);\r\nvar task_list_component_1 = __webpack_require__(697);\r\nvar tasks_states_1 = __webpack_require__(698);\r\nvar task_item_component_1 = __webpack_require__(696);\r\nvar task_item_basic_component_1 = __webpack_require__(695);\r\nvar task_archive_component_1 = __webpack_require__(693);\r\nvar subscriptionAppModule = {\r\n components: { taskComponent: task_component_1.taskComponent, taskListComponent: task_list_component_1.taskListComponent, taskItemComponent: task_item_component_1.taskItemComponent, taskItemBasicComponent: task_item_basic_component_1.taskItemBasicComponent, taskArchiveComponent: task_archive_component_1.taskArchiveComponent },\r\n states: [tasks_states_1.taskState, tasks_states_1.taskListState, tasks_states_1.taskItemState, tasks_states_1.taskItemBasicState, tasks_states_1.taskArchiveState],\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, subscriptionAppModule);\r\n\n\n/***/ }),\n/* 693 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskArchiveController = /** @class */ (function () {\r\n TaskArchiveController.$inject = [\"$filter\"];\r\n function TaskArchiveController($filter) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$filter = $filter;\r\n this.$onInit = function () {\r\n _this.sortType = 'date';\r\n _this.filter();\r\n };\r\n }\r\n TaskArchiveController.prototype.filter = function () {\r\n this.filteredTasks = this.$filter('filterBy')(this.tasks, ['taskStatusName'], this.selectedStatus);\r\n };\r\n return TaskArchiveController;\r\n}());\r\nexports.taskArchiveComponent = {\r\n bindings: {\r\n tasks: '<',\r\n taskStatuses: '<'\r\n },\r\n controller: TaskArchiveController,\r\n template: __webpack_require__(498)\r\n};\r\n\n\n/***/ }),\n/* 694 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskController = /** @class */ (function () {\r\n function TaskController() {\r\n 'ngInject';\r\n }\r\n return TaskController;\r\n}());\r\nexports.taskComponent = {\r\n controller: TaskController,\r\n template: __webpack_require__(499)\r\n};\r\n\n\n/***/ }),\n/* 695 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskItemBasicController = /** @class */ (function () {\r\n TaskItemBasicController.$inject = [\"TasksService\", \"AccountsService\", \"$state\"];\r\n function TaskItemBasicController(TasksService, AccountsService, $state) {\r\n 'ngInject';\r\n var _this = this;\r\n this.TasksService = TasksService;\r\n this.AccountsService = AccountsService;\r\n this.$state = $state;\r\n this.$onInit = function () {\r\n _this.task = _this.resolve.task;\r\n _this.users = _this.resolve.users;\r\n _this.accounts = _this.resolve.accounts;\r\n _this.contacts = _this.resolve.contacts;\r\n _this.employees = _this.resolve.employees;\r\n _this.taskStatuses = _this.resolve.taskStatuses;\r\n };\r\n this.save = function () {\r\n _this.setUserName();\r\n if (_this.task.id != undefined) {\r\n _this.TasksService.put(_this.task.id, _this.task).then(function (task) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n _this.TasksService.post(_this.task).then(function (task) {\r\n _this.$state.go('^', { 'id': task.id });\r\n });\r\n }\r\n };\r\n }\r\n TaskItemBasicController.prototype.setUserName = function () {\r\n var _this = this;\r\n var selectedUser = this.users.find(function (u) { return u.id === _this.task.userId; });\r\n if (selectedUser) {\r\n this.task.userName = selectedUser.userName;\r\n }\r\n else {\r\n this.task.userName = null;\r\n }\r\n };\r\n TaskItemBasicController.prototype.accountSelected = function () {\r\n var _this = this;\r\n this.AccountsService.getChild(this.task.accountId, 'locations').then(function (result) {\r\n _this.locations = result;\r\n // console.log(this.locations);\r\n });\r\n };\r\n TaskItemBasicController.prototype.locationSelected = function () {\r\n var _this = this;\r\n this.teams = this.locations.find(function (item) { return item.id === _this.task.locationId; }).teams;\r\n };\r\n TaskItemBasicController.prototype.closeModal = function () {\r\n this.$state.go('^', {}, { reload: true });\r\n };\r\n return TaskItemBasicController;\r\n}());\r\nexports.taskItemBasicComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: TaskItemBasicController,\r\n template: __webpack_require__(500)\r\n};\r\n\n\n/***/ }),\n/* 696 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskItemController = /** @class */ (function () {\r\n TaskItemController.$inject = [\"TasksService\", \"AuthUserService\", \"$stateParams\", \"$state\", \"SweetAlert\"];\r\n function TaskItemController(TasksService, AuthUserService, $stateParams, $state, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$stateParams = $stateParams;\r\n this.$state = $state;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n if (_this.$stateParams['isArchive']) {\r\n _this.isArchive = true;\r\n }\r\n };\r\n this.tasksService = TasksService;\r\n this.userService = AuthUserService;\r\n }\r\n TaskItemController.prototype.submitTask = function () {\r\n if (this.task.id == null) {\r\n this.saveTask();\r\n }\r\n else {\r\n this.tasksService.put(this.task.id, this.task);\r\n }\r\n };\r\n TaskItemController.prototype.saveTask = function () {\r\n var _this = this;\r\n this.tasksService.post(this.task).then(function (result) {\r\n _this.$state.go('hr.tasks.item', { 'id': result.id });\r\n });\r\n };\r\n TaskItemController.prototype.deleteTask = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze medewerker wilt verwijderen?\\n Diensten en declaraties van de medewerker blijven onveranderd!',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.tasksService.delete(_this.task.id);\r\n _this.$state.go('^.list').then(function () { _this.$state.reload(); });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n return TaskItemController;\r\n}());\r\nexports.taskItemComponent = {\r\n bindings: {\r\n task: '<',\r\n },\r\n controller: TaskItemController,\r\n template: __webpack_require__(501)\r\n};\r\n\n\n/***/ }),\n/* 697 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskListController = /** @class */ (function () {\r\n TaskListController.$inject = [\"$filter\"];\r\n function TaskListController($filter) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$filter = $filter;\r\n this.$onInit = function () {\r\n _this.sortType = 'date';\r\n _this.filter();\r\n };\r\n }\r\n TaskListController.prototype.filter = function () {\r\n this.filteredTasks = this.$filter('filterBy')(this.tasks, ['taskStatusName'], this.selectedStatus);\r\n };\r\n return TaskListController;\r\n}());\r\nexports.taskListComponent = {\r\n bindings: {\r\n tasks: '<',\r\n taskStatuses: '<'\r\n },\r\n controller: TaskListController,\r\n template: __webpack_require__(502)\r\n};\r\n\n\n/***/ }),\n/* 698 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.taskState = {\r\n parent: 'app',\r\n name: \"tasks\",\r\n url: \"/tasks\",\r\n component: 'taskComponent',\r\n redirectTo: \"tasks.list\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.taskListState = {\r\n name: \"tasks.list\",\r\n url: \"/list\",\r\n resolve: {\r\n tasks: [\"TasksService\", function (TasksService) {\r\n \"ngInject\";\r\n return TasksService.all();\r\n }],\r\n taskStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('TaskStatus');\r\n }]\r\n },\r\n views: {\r\n \"main\": 'taskListComponent'\r\n },\r\n};\r\nexports.taskItemState = {\r\n name: \"tasks.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"isArchive\": null\r\n },\r\n resolve: {\r\n task: [\"TasksService\", \"$stateParams\", function (TasksService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return TasksService.get($stateParams['id']);\r\n }\r\n }]\r\n },\r\n views: {\r\n \"main\": 'taskItemComponent'\r\n }\r\n};\r\nexports.taskItemBasicState = {\r\n name: \"tasks.item.basic\",\r\n url: \"/basic\",\r\n modal: ['task'],\r\n resolve: {\r\n users: [\"EmployeesService\", function (EmployeesService) {\r\n 'ngInject';\r\n return EmployeesService.gatBackoffice();\r\n }],\r\n accounts: [\"AccountsService\", function (AccountsService) {\r\n \"ngInject\";\r\n return AccountsService.all();\r\n }],\r\n contacts: [\"ContactsService\", function (ContactsService) {\r\n 'ngInject';\r\n return ContactsService.all();\r\n }],\r\n employees: [\"EmployeesService\", function (EmployeesService) {\r\n \"ngInject\";\r\n return EmployeesService.getEmployeesByStatus();\r\n }],\r\n taskStatuses: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('TaskStatus');\r\n }]\r\n },\r\n component: 'taskItemBasicComponent'\r\n};\r\nexports.taskArchiveState = {\r\n name: \"tasks.archive\",\r\n url: \"/archive\",\r\n resolve: {\r\n tasks: [\"TasksService\", function (TasksService) {\r\n \"ngInject\";\r\n return TasksService.getArchive();\r\n }],\r\n },\r\n views: {\r\n \"main\": 'taskArchiveComponent'\r\n },\r\n};\r\n\n\n/***/ }),\n/* 699 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar services_1 = __webpack_require__(5);\r\nvar moment = __webpack_require__(0);\r\nvar DeclarationController = /** @class */ (function () {\r\n DeclarationController.$inject = [\"DeclarationService\", \"EmployeesService\", \"$state\", \"$stateParams\", \"SweetAlert\"];\r\n function DeclarationController(DeclarationService, EmployeesService, $state, $stateParams, SweetAlert) {\r\n 'ngInject';\r\n var _this = this;\r\n this.DeclarationService = DeclarationService;\r\n this.EmployeesService = EmployeesService;\r\n this.$state = $state;\r\n this.$stateParams = $stateParams;\r\n this.SweetAlert = SweetAlert;\r\n this.$onInit = function () {\r\n _this.wageCodes = _this.resolve.wageCodes;\r\n _this.declaration = _this.resolve.declaration;\r\n if (_this.declaration) {\r\n _this.declaration.dateTimeFrom = new Date(Date.parse(_this.declaration.dateTimeFrom));\r\n _this.declaration.dateTimeTo = new Date(Date.parse(_this.declaration.dateTimeTo));\r\n }\r\n else {\r\n _this.declaration = new services_1.IDeclaration();\r\n _this.declaration.dateTimeFrom = _this.$stateParams['shiftStartDate'];\r\n _this.declaration.dateTimeTo = _this.$stateParams['shiftEndDate'];\r\n _this.declaration.shiftId = _this.$stateParams['shiftId'];\r\n _this.declaration.employeeId = _this.$stateParams['employeeId'];\r\n _this.declaration.registrationType = _this.$stateParams['type'];\r\n _this.declaration.status = 0;\r\n }\r\n };\r\n }\r\n DeclarationController.prototype.roundMinutes = function (date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n };\r\n DeclarationController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n DeclarationController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n if (this.declaration.dateTimeFrom) {\r\n var activeDate = moment(this.declaration.dateTimeFrom).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n DeclarationController.prototype.submitDeclaration = function () {\r\n var _this = this;\r\n if (this.declaration.registrationType == '1') {\r\n var duration = moment.duration(moment(this.declaration.dateTimeTo).diff(moment(this.declaration.dateTimeFrom))).asHours();\r\n this.declaration.dateTimeFrom = moment(this.declaration.dateTimeFrom).format(\"YYYY-MM-DD HH:mm\");\r\n this.declaration.dateTimeTo = moment(this.declaration.dateTimeTo).format(\"YYYY-MM-DD HH:mm\");\r\n if (duration > 6) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'In geval van pauzes, maak 2 declaraties aan.',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.saveDeclaration();\r\n }\r\n else { }\r\n });\r\n }\r\n else {\r\n this.saveDeclaration();\r\n }\r\n }\r\n else {\r\n if (!this.declaration.wageCodeId) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Vul een type in',\r\n type: 'warning',\r\n confirmButtonColor: '#2ECC71',\r\n confirmButtonText: 'Ok',\r\n });\r\n }\r\n else {\r\n this.declaration.dateTimeFrom = null;\r\n this.declaration.dateTimeTo = null;\r\n this.saveDeclaration();\r\n }\r\n }\r\n };\r\n DeclarationController.prototype.saveDeclaration = function () {\r\n var _this = this;\r\n if (!this.declaration.id) {\r\n this.DeclarationService.post(this.declaration).then(function (result) {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n this.DeclarationService.put(this.declaration.id, this.declaration).then(function (result) {\r\n _this.closeModal();\r\n });\r\n }\r\n };\r\n DeclarationController.prototype.wageCodeUpdated = function () {\r\n var _this = this;\r\n var wageCode = this.wageCodes.find(function (w) { return w.id == _this.declaration.wageCodeId; });\r\n this.declaration.wageCodeCode = wageCode.code;\r\n };\r\n DeclarationController.prototype.deleteDeclaration = function () {\r\n var _this = this;\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze declaration wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#d96557',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.DeclarationService.delete(_this.declaration.id).then(function () {\r\n _this.closeModal();\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n DeclarationController.prototype.closeModal = function () {\r\n if (this.resolve.refresh) {\r\n this.$state.go('^', { \"openShiftId\": this.declaration.shiftId }, { reload: true });\r\n }\r\n else {\r\n this.$state.go('^', { \"openShiftId\": this.declaration.shiftId }, { reload: false });\r\n }\r\n };\r\n return DeclarationController;\r\n}());\r\nexports.declarationComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: DeclarationController,\r\n template: __webpack_require__(503)\r\n};\r\n\n\n/***/ }),\n/* 700 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar timesheets_states_1 = __webpack_require__(704);\r\nvar timesheets_component_1 = __webpack_require__(702);\r\nvar timesheets_dashboard_component_1 = __webpack_require__(703);\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar timesheetDetails_component_1 = __webpack_require__(701);\r\nvar declaration_component_1 = __webpack_require__(699);\r\nvar timesheetsOverview_component_1 = __webpack_require__(705);\r\nvar timesheetsSummary_component_1 = __webpack_require__(706);\r\nvar quotationsAppModule = {\r\n components: { timesheetsComponent: timesheets_component_1.timesheetsComponent, timesheetsDashboardComponent: timesheets_dashboard_component_1.timesheetsDashboardComponent, timesheetDetailsComponent: timesheetDetails_component_1.timesheetDetailsComponent,\r\n declarationComponent: declaration_component_1.declarationComponent, timesheetsOverviewComponent: timesheetsOverview_component_1.timesheetsOverviewComponent, timesheetsSummaryComponent: timesheetsSummary_component_1.timesheetsSummaryComponent },\r\n states: [timesheets_states_1.timesheetsState, timesheets_states_1.timesheetsDashboardState, timesheets_states_1.timesheetsDeclarationState,\r\n timesheets_states_1.timesheetsOverviewState],\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, quotationsAppModule);\r\n\n\n/***/ }),\n/* 701 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar TimesheetDetailsController = /** @class */ (function () {\r\n TimesheetDetailsController.$inject = [\"$state\", \"DeclarationService\", \"SweetAlert\", \"$stateParams\"];\r\n function TimesheetDetailsController($state, DeclarationService, SweetAlert, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.$state = $state;\r\n this.DeclarationService = DeclarationService;\r\n this.SweetAlert = SweetAlert;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n _this.openShift = _this.$stateParams['openShiftId'];\r\n _this.timesheet.shifts.forEach(function (s) {\r\n if (s.declarations.length > 0) {\r\n s.declarationsApproved = true;\r\n s.declarations.forEach(function (d) {\r\n if (d.status != 3) {\r\n s.declarationsApproved = false;\r\n }\r\n });\r\n }\r\n else {\r\n s.declarationsApproved = false;\r\n }\r\n });\r\n };\r\n }\r\n TimesheetDetailsController.prototype.approve = function (shift) {\r\n var _this = this;\r\n shift.declarations.forEach(function (declaration) {\r\n if (!declaration.invoiceId && !declaration.sendToCootje) {\r\n if (!_this.timesheet.employeeIsZZp || declaration.zzpInvoiceNumber.length > 0) {\r\n declaration.status = 3;\r\n _this.DeclarationService.put(declaration.id, declaration).then(function (result) {\r\n declaration = result;\r\n shift.declarationsApproved = true;\r\n });\r\n }\r\n }\r\n });\r\n };\r\n TimesheetDetailsController.prototype.reject = function (shift) {\r\n var _this = this;\r\n shift.declarations.forEach(function (declaration) {\r\n if (!declaration.invoiceId && !declaration.sendToCootje) {\r\n if (_this.timesheet.employeeIsZZp && declaration.status > 0) {\r\n declaration.status = 2;\r\n _this.DeclarationService.put(declaration.id, declaration).then(function (result) {\r\n declaration = result;\r\n });\r\n }\r\n }\r\n });\r\n };\r\n TimesheetDetailsController.prototype.isSameDay = function (start, end) {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n TimesheetDetailsController.prototype.deleteDeclaration = function (event, declaration, shift) {\r\n var _this = this;\r\n event.stopPropagation();\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze declaration wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#d96557',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, function (isConfirm) {\r\n if (isConfirm) {\r\n _this.DeclarationService.item = declaration;\r\n _this.DeclarationService.delete(declaration.id).then(function () {\r\n shift.declarations = shift.declarations.filter(function (d) { return d.id !== declaration.id; });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n };\r\n TimesheetDetailsController.prototype.isInvoiced = function (shift) {\r\n for (var i = 0; i < shift.declarations.length; i++) {\r\n if (shift.declarations[i].invoiceId || shift.declarations[i].sendToCootje) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n TimesheetDetailsController.prototype.isZZPOpen = function (shift) {\r\n for (var i = 0; i < shift.declarations.length; i++) {\r\n if (this.timesheet.employeeIsZZp && (shift.declarations[i].status == 0 && shift.declarations[i].zzpInvoiceNumber.length == 0)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return TimesheetDetailsController;\r\n}());\r\nexports.timesheetDetailsComponent = {\r\n bindings: {\r\n timesheet: '<',\r\n calendarStartDate: '<',\r\n calendarEndDate: '<'\r\n },\r\n controller: TimesheetDetailsController,\r\n template: __webpack_require__(504)\r\n};\r\n\n\n/***/ }),\n/* 702 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TimesheetsController = /** @class */ (function () {\r\n function TimesheetsController() {\r\n 'ngInject';\r\n }\r\n return TimesheetsController;\r\n}());\r\nexports.timesheetsComponent = {\r\n controller: TimesheetsController,\r\n template: __webpack_require__(506)\r\n};\r\n\n\n/***/ }),\n/* 703 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar TimesheetsDashboardController = /** @class */ (function () {\r\n TimesheetsDashboardController.$inject = [\"EmployeesService\", \"DeclarationService\", \"ShiftService\", \"$stateParams\"];\r\n function TimesheetsDashboardController(EmployeesService, DeclarationService, ShiftService, $stateParams) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.DeclarationService = DeclarationService;\r\n this.ShiftService = ShiftService;\r\n this.$stateParams = $stateParams;\r\n this.$onInit = function () {\r\n _this.moment = __webpack_require__(0);\r\n _this.sortType = 'employeeName';\r\n _this.startDate = _this.moment().startOf('isoweek').format(\"YYYY-MM-DD\");\r\n _this.endDate = _this.moment().endOf('isoweek').format(\"YYYY-MM-DD\");\r\n _this.DeclarationService.subscribe('TimesheetsDashboardController', function (type) {\r\n var currentShift;\r\n switch (type) {\r\n case 'post': {\r\n currentShift = _this.currentEmployee.shifts.find(function (s) { return s.id == _this.DeclarationService.item.shiftId; });\r\n _this.DeclarationService.get(_this.DeclarationService.item.id).then(function (declaration) {\r\n currentShift.declarations.push(declaration);\r\n _this.updateShiftDeclarationsSummary(currentShift);\r\n });\r\n break;\r\n }\r\n case 'put': {\r\n currentShift = _this.currentEmployee.shifts.find(function (s) { return s.id == _this.DeclarationService.item.shiftId; });\r\n currentShift.declarations = currentShift.declarations.filter(function (s) { return s.id !== _this.DeclarationService.item.id; });\r\n _this.DeclarationService.get(_this.DeclarationService.item.id).then(function (declaration) {\r\n currentShift.declarations.push(declaration);\r\n _this.updateShiftDeclarationsSummary(currentShift);\r\n });\r\n break;\r\n }\r\n case 'delete': {\r\n currentShift = _this.currentEmployee.shifts.find(function (s) { return s.id == _this.DeclarationService.item.shiftId; });\r\n _this.updateShiftDeclarationsSummary(currentShift);\r\n break;\r\n }\r\n }\r\n });\r\n // this.getTimesheets();\r\n _this.checkCompletionStatus();\r\n };\r\n // public $onChange = (change) => {\r\n // console.log(change);\r\n // }\r\n this.$onDestroy = function () {\r\n _this.DeclarationService.unsubscribe('TimesheetsDashboardController');\r\n };\r\n }\r\n TimesheetsDashboardController.prototype.updateShiftDeclarationsSummary = function (currentShift) {\r\n var _this = this;\r\n // console.log('updateShiftDeclarationsSummary')\r\n this.ShiftService.customGet(this.DeclarationService.item.shiftId + '/shiftDeclarations').then(function (result) {\r\n currentShift.plannedHours = result.plannedHours;\r\n currentShift.declaredHours = result.declaredHours;\r\n currentShift.hoursDifference = result.hoursDifference;\r\n _this.EmployeesService.customGet(_this.DeclarationService.item.employeeId + '/employeeSummary', { from: _this.startDate, till: _this.endDate }).then(function (result) {\r\n _this.currentEmployee.shiftHours = result.shiftHours;\r\n _this.currentEmployee.shiftDeclarationHours = result.shiftDeclarationHours;\r\n });\r\n _this.checkEmployeeCompletionsStatus(_this.currentEmployee);\r\n });\r\n };\r\n TimesheetsDashboardController.prototype.startDateBeforeRender = function ($dates) {\r\n };\r\n TimesheetsDashboardController.prototype.endDateBeforeRender = function ($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n };\r\n TimesheetsDashboardController.prototype.checkCompletionStatus = function () {\r\n var _this = this;\r\n this.employees.forEach(function (e) {\r\n _this.checkEmployeeCompletionsStatus(e);\r\n });\r\n };\r\n TimesheetsDashboardController.prototype.checkEmployeeCompletionsStatus = function (employee) {\r\n // console.log('checkEmployeeCompletionsStatus')\r\n employee.doneShiftCount = employee.shifts.filter(function (s) { return s.declarations.length > 0; }).length;\r\n employee.declarationsApproved = true;\r\n employee.shifts.forEach(function (s) {\r\n s.declarations.forEach(function (d) {\r\n if (d.status != 3) {\r\n employee.declarationsApproved = false;\r\n }\r\n });\r\n });\r\n };\r\n TimesheetsDashboardController.prototype.getTimesheets = function () {\r\n var _this = this;\r\n this.EmployeesService.customAll('employeeSummary', { from: this.startDate, till: this.endDate }).then(function (result) {\r\n _this.employees = result;\r\n _this.checkCompletionStatus();\r\n });\r\n };\r\n TimesheetsDashboardController.prototype.prevWeek = function () {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').format(\"YYYY-MM-DD\");\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').format(\"YYYY-MM-DD\");\r\n this.currentEmployee = null;\r\n this.getTimesheets();\r\n };\r\n TimesheetsDashboardController.prototype.nextWeek = function () {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').format(\"YYYY-MM-DD\");\r\n this.endDate = this.moment(this.endDate).add(7, 'day').format(\"YYYY-MM-DD\");\r\n this.currentEmployee = null;\r\n this.getTimesheets();\r\n };\r\n TimesheetsDashboardController.prototype.selectEmployee = function (item) {\r\n this.currentEmployee = item;\r\n };\r\n TimesheetsDashboardController.prototype.sendToNmbrs = function () {\r\n var start = this.startDate.getFullYear() + '-' + this.startDate.getMonth() + '-' + this.startDate.getDate();\r\n var end = this.endDate.getFullYear() + '-' + this.endDate.getMonth() + '-' + this.endDate.getDate();\r\n this.DeclarationService.customGet('pushtonmbrs', { from: start, till: end });\r\n };\r\n return TimesheetsDashboardController;\r\n}());\r\nexports.timesheetsDashboardComponent = {\r\n controller: TimesheetsDashboardController,\r\n bindings: {\r\n employees: '='\r\n },\r\n template: __webpack_require__(505)\r\n};\r\n\n\n/***/ }),\n/* 704 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.timesheetsState = {\r\n parent: \"app\",\r\n name: \"timesheets\",\r\n url: \"/timesheets\",\r\n redirectTo: \"timesheets.dashboard\",\r\n component: \"timesheetsComponent\",\r\n data: {\r\n permissions: {\r\n only: ['TIMESHEETS'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\nexports.timesheetsDashboardState = {\r\n name: \"timesheets.dashboard\",\r\n url: \"/dashboard\",\r\n resolve: {\r\n employees: [\"EmployeesService\", \"$stateParams\", function (EmployeesService, $stateParams) {\r\n \"ngInject\";\r\n var moment = __webpack_require__(0);\r\n var startDate = moment().startOf('isoweek').toDate();\r\n var endDate = moment().endOf('isoweek').toDate();\r\n return EmployeesService.customAll('employeeSummary', { from: startDate, till: endDate });\r\n }]\r\n },\r\n views: {\r\n \"main\": 'timesheetsDashboardComponent'\r\n }\r\n};\r\nexports.timesheetsOverviewState = {\r\n name: \"timesheets.overview\",\r\n url: \"/overview?employeeId\",\r\n resolve: {},\r\n views: {\r\n \"main\": 'timesheetsOverviewComponent'\r\n },\r\n data: {\r\n permissions: {\r\n only: ['FINANCE'],\r\n redirectTo: 'timesheets'\r\n }\r\n }\r\n};\r\nexports.timesheetsDeclarationState = {\r\n name: \"timesheets.dashboard.declaration\",\r\n url: \"/declaration/:declarationId?employeeId&shiftId&type&shiftStartDate&shiftEndDate\",\r\n params: {\r\n employeeId: null,\r\n shiftId: null,\r\n type: null,\r\n shiftStartDate: null,\r\n shiftEndDate: null\r\n },\r\n modal: true,\r\n resolve: {\r\n wageCodes: [\"MasterdataService\", function (MasterdataService) {\r\n \"ngInject\";\r\n return MasterdataService.getItems('HourCodes');\r\n }],\r\n declaration: [\"DeclarationService\", \"$stateParams\", function (DeclarationService, $stateParams) {\r\n \"ngInject\";\r\n if ($stateParams['declarationId']) {\r\n return DeclarationService.get($stateParams['declarationId']);\r\n }\r\n }],\r\n },\r\n component: 'declarationComponent'\r\n};\r\n\n\n/***/ }),\n/* 705 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar signalR = __webpack_require__(303);\r\nvar config_1 = __webpack_require__(13);\r\nvar TimesheetsOverviewController = /** @class */ (function () {\r\n TimesheetsOverviewController.$inject = [\"EmployeesService\", \"$stateParams\", \"DeclarationService\", \"EnumService\", \"$scope\"];\r\n function TimesheetsOverviewController(EmployeesService, $stateParams, DeclarationService, EnumService, $scope) {\r\n 'ngInject';\r\n var _this = this;\r\n this.EmployeesService = EmployeesService;\r\n this.$stateParams = $stateParams;\r\n this.DeclarationService = DeclarationService;\r\n this.EnumService = EnumService;\r\n this.$scope = $scope;\r\n this.months = [];\r\n // _hubConnection: HubConnection;\r\n this.notifications = [];\r\n this.progressNotifications = [];\r\n this.$onInit = function () {\r\n _this.sortType = 'account.name';\r\n _this.moment = __webpack_require__(0);\r\n if (_this.moment().subtract(1, 'year').format('YYYY') < 2020) {\r\n for (var i = 11; i <= 13; i++) {\r\n _this.months.push({\r\n index: i,\r\n startDate: _this.moment().subtract(1, 'year').startOf('year').add((i - 1) * 4, 'weeks').startOf('isoweek').toDate(),\r\n endDate: _this.moment().subtract(1, 'year').startOf('year').add((i - 1) * 4 + 3, 'weeks').endOf('isoweek').toDate(),\r\n year: _this.moment().subtract(1, 'year').format('YYYY'),\r\n month: i\r\n });\r\n }\r\n _this.months.find(function (m) { return m.month == 13 && m.year == 2019; }).endDate = _this.moment('2019-12-02').endOf('month').toDate();\r\n }\r\n else {\r\n for (var i = 9; i <= 11; i++) {\r\n _this.months.push({\r\n index: i,\r\n startDate: _this.moment().subtract(1, 'year').startOf('year').add(i, 'months').toDate(),\r\n endDate: _this.moment().subtract(1, 'year').startOf('year').add(i, 'months').endOf('month').toDate(),\r\n year: _this.moment().subtract(1, 'year').format('YYYY'),\r\n month: _this.moment().subtract(1, 'year').startOf('year').add(i, 'months').format('M')\r\n });\r\n }\r\n }\r\n if (_this.moment().format('YYYY') < 2020) {\r\n for (var i = 1; i <= 13; i++) {\r\n _this.months.push({\r\n index: i,\r\n startDate: _this.moment().startOf('year').add((i - 1) * 4, 'weeks').startOf('isoweek').toDate(),\r\n endDate: _this.moment().startOf('year').add((i - 1) * 4 + 3, 'weeks').endOf('isoweek').toDate(),\r\n year: _this.moment().format('YYYY'),\r\n month: i\r\n });\r\n }\r\n _this.months.find(function (m) { return m.month == 13 && m.year == 2019; }).endDate = _this.moment('2019-12-02').endOf('month').toDate();\r\n }\r\n else {\r\n for (var i = 0; i <= 11; i++) {\r\n _this.months.push({\r\n index: i,\r\n startDate: _this.moment().startOf('year').add(i, 'months').toDate(),\r\n endDate: _this.moment().startOf('year').add(i, 'months').endOf('month').toDate(),\r\n year: _this.moment().format('YYYY'),\r\n month: _this.moment().startOf('year').add(i, 'months').format('M')\r\n });\r\n }\r\n }\r\n _this.currentMonth = _this.months.find(function (m) { return m.month == _this.moment().format('M') && m.year == _this.moment().format('YYYY'); });\r\n _this.initHubConnection();\r\n };\r\n }\r\n TimesheetsOverviewController.prototype.initHubConnection = function () {\r\n var _this = this;\r\n // console.log('initHubConnection');\r\n this._hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(config_1.default.BASE_URL + 'notification')\r\n .build();\r\n //this._hubConnection = new HubConnection(env.BASE_URL + 'notification');\r\n this._hubConnection.on('Notify', function (notificationItem) {\r\n // console.log('event');\r\n // console.log(notificationItem);\r\n _this.notify(notificationItem);\r\n });\r\n // console.log('Hello ._hubConnection.start');\r\n this._hubConnection.start()\r\n .then(function () {\r\n // console.log('Hub connection started');\r\n })\r\n .catch(function (reason) {\r\n // console.log('Error while establishing connection');\r\n // console.log(reason);\r\n });\r\n };\r\n TimesheetsOverviewController.prototype.notify = function (notificationItem) {\r\n var _this = this;\r\n switch (notificationItem.notificationType) {\r\n case 1:\r\n //Start\r\n this.$scope.$apply(function () {\r\n _this.currentNotification = notificationItem;\r\n _this.inprogress = true;\r\n _this.notifications.push(notificationItem);\r\n });\r\n break;\r\n case 2:\r\n //Progress\r\n this.inprogress = true;\r\n var percentage = (notificationItem.currentValue / notificationItem.totalValue) * 100;\r\n this.progresscounter = { currentValue: notificationItem.currentValue, totalValue: notificationItem.totalValue, percentage: percentage };\r\n this.currentNotification = notificationItem;\r\n this.$scope.$apply(function () {\r\n _this.progressNotifications.push(notificationItem);\r\n });\r\n break;\r\n case 3:\r\n //Information\r\n this.$scope.$apply(function () {\r\n _this.currentNotification = notificationItem;\r\n _this.notifications.push(notificationItem);\r\n });\r\n break;\r\n case 4:\r\n //Finish\r\n this.$scope.$apply(function () {\r\n _this.currentNotification = notificationItem;\r\n _this.notifications.push(notificationItem);\r\n _this.inprogress = false;\r\n });\r\n break;\r\n }\r\n };\r\n TimesheetsOverviewController.prototype.getTimesheets = function () {\r\n var _this = this;\r\n var start = moment(this.currentMonth.startDate).format('YYYY-MM-DD');\r\n var end = moment(this.currentMonth.endDate).format('YYYY-MM-DD');\r\n this.EmployeesService.customAll('employeeSummary', { from: start, till: end }).then(function (result) {\r\n _this.employees = result;\r\n _this.getCompletionData();\r\n });\r\n };\r\n TimesheetsOverviewController.prototype.getCompletionData = function () {\r\n var _this = this;\r\n // console.log('getCompletionData')\r\n this.summary = {};\r\n this.summary.scheduledHours = 0;\r\n this.summary.scheduledShiftsCount = 0;\r\n this.summary.declaredHours = 0;\r\n this.summary.declaredShiftsCount = 0;\r\n this.summary.approvedHours = 0;\r\n this.summary.approvedShiftsCount = 0;\r\n this.employees.forEach(function (e) {\r\n e.approvedShiftCount = 0;\r\n e.approvedShiftHours = 0;\r\n e.declarationsApproved = true;\r\n e.doneShiftCount = e.shifts.filter(function (s) { return s.declarations.length > 0; }).length;\r\n e.shifts.forEach(function (s) {\r\n if (s.declarations.length > 0) {\r\n _this.summary.declaredShiftsCount++;\r\n if (s.declarations.filter(function (d) { return d.status != 3; }).length == 0) {\r\n e.approvedShiftCount++;\r\n }\r\n }\r\n s.declarations.forEach(function (d) {\r\n _this.summary.declaredHours += d.duration;\r\n if (d.status == 3) {\r\n e.approvedShiftHours += d.duration;\r\n }\r\n else {\r\n e.declarationsApproved = false;\r\n }\r\n });\r\n });\r\n _this.summary.scheduledHours += e.shiftHours;\r\n _this.summary.scheduledShiftsCount += e.shiftCount;\r\n _this.summary.approvedHours += e.approvedShiftHours;\r\n _this.summary.approvedShiftsCount += e.approvedShiftCount;\r\n });\r\n this.summary.scheduledHours = this.summary.scheduledHours.toFixed(2);\r\n this.summary.scheduledShiftsCount = this.summary.scheduledShiftsCount.toFixed(2);\r\n this.summary.declaredHours = this.summary.declaredHours.toFixed(2);\r\n this.summary.declaredShiftsCount = this.summary.declaredShiftsCount.toFixed(2);\r\n this.summary.approvedHours = this.summary.approvedHours.toFixed(2);\r\n this.summary.approvedShiftsCount = this.summary.approvedShiftsCount.toFixed(2);\r\n };\r\n TimesheetsOverviewController.prototype.sendToNmbrs = function () {\r\n var start = moment(this.currentMonth.startDate).format('YYYY-MM-DD');\r\n var end = moment(this.currentMonth.endDate).format('YYYY-MM-DD');\r\n // lil hack here, so they bill the last period in 2019 correctly\r\n if (start == '2019-01-01')\r\n start = '2019-01-02';\r\n $('#notificationModal').modal({ backdrop: 'static', keyboard: false });\r\n if (!this.inprogress) {\r\n this.DeclarationService.customGet('pushtonmbrs', { from: start, till: end }).then(function () {\r\n $('#notificationModal').modal('show');\r\n });\r\n }\r\n else {\r\n $('#notificationModal').modal('show');\r\n }\r\n };\r\n return TimesheetsOverviewController;\r\n}());\r\nexports.timesheetsOverviewComponent = {\r\n controller: TimesheetsOverviewController,\r\n template: __webpack_require__(507)\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 706 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TimesheetsSummaryController = /** @class */ (function () {\r\n function TimesheetsSummaryController() {\r\n 'ngInject';\r\n var _this = this;\r\n this.$onChanges = function () {\r\n // console.log('TimesheetsSummaryController')\r\n _this.getCompletionData();\r\n };\r\n }\r\n TimesheetsSummaryController.prototype.getCompletionData = function () {\r\n var _this = this;\r\n // console.log('getCompletionData')\r\n this.summary = {};\r\n this.summary.scheduledHours = 0;\r\n this.summary.scheduledShiftsCount = 0;\r\n this.summary.declaredHours = 0;\r\n this.summary.declaredShiftsCount = 0;\r\n this.summary.approvedHours = 0;\r\n this.summary.approvedShiftsCount = 0;\r\n this.summary.canceledShiftsCount = 0;\r\n this.summary.sickShiftsCount = 0;\r\n this.summary.canceledShiftsHours = 0;\r\n this.summary.sickShiftsHours = 0;\r\n this.employees.forEach(function (e) {\r\n e.approvedShiftCount = 0;\r\n e.approvedShiftHours = 0;\r\n e.declarationsApproved = true;\r\n e.doneShiftCount = e.shifts.filter(function (s) { return s.declarations.length > 0; }).length;\r\n e.shifts.forEach(function (s) {\r\n if (s.declarations.length > 0) {\r\n _this.summary.declaredShiftsCount++;\r\n if (s.declarations.filter(function (d) { return d.status != 3; }).length == 0) {\r\n e.approvedShiftCount++;\r\n }\r\n }\r\n s.declarations.forEach(function (d) {\r\n _this.summary.declaredHours += d.duration;\r\n if (d.status == 3) {\r\n e.approvedShiftHours += d.duration;\r\n }\r\n else {\r\n e.declarationsApproved = false;\r\n }\r\n });\r\n });\r\n _this.summary.scheduledHours += e.shiftHours;\r\n _this.summary.scheduledShiftsCount += e.shiftCount;\r\n _this.summary.approvedHours += e.approvedShiftHours;\r\n _this.summary.approvedShiftsCount += e.approvedShiftCount;\r\n _this.summary.canceledShiftsCount += e.shiftCanceledCount;\r\n _this.summary.sickShiftsCount += e.shiftSickCount;\r\n _this.summary.canceledShiftsHours += e.shiftCanceledHours;\r\n _this.summary.sickShiftsHours += e.shiftSickHours;\r\n });\r\n this.summary.scheduledHours = this.summary.scheduledHours.toFixed(2);\r\n this.summary.scheduledShiftsCount = this.summary.scheduledShiftsCount.toFixed(2);\r\n this.summary.declaredHours = this.summary.declaredHours.toFixed(2);\r\n this.summary.declaredShiftsCount = this.summary.declaredShiftsCount.toFixed(2);\r\n this.summary.approvedHours = this.summary.approvedHours.toFixed(2);\r\n this.summary.approvedShiftsCount = this.summary.approvedShiftsCount.toFixed(2);\r\n this.summary.canceledShiftsCount = this.summary.canceledShiftsCount.toFixed(2);\r\n this.summary.sickShiftsCount = this.summary.sickShiftsCount.toFixed(2);\r\n this.summary.canceledShiftsHours = this.summary.canceledShiftsHours.toFixed(2);\r\n this.summary.sickShiftsHours = this.summary.sickShiftsHours.toFixed(2);\r\n };\r\n return TimesheetsSummaryController;\r\n}());\r\nexports.timesheetsSummaryComponent = {\r\n controller: TimesheetsSummaryController,\r\n bindings: {\r\n employees: '<'\r\n },\r\n template: __webpack_require__(508)\r\n};\r\n\n\n/***/ }),\n/* 707 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ngmodule_1 = __webpack_require__(4);\r\nvar twinfield_service_1 = __webpack_require__(269);\r\nvar twinfield_component_1 = __webpack_require__(708);\r\nvar twinfield_states_1 = __webpack_require__(709);\r\nvar twinfieldAppModule = {\r\n components: {\r\n twinfieldOAuthCallbackComponent: twinfield_component_1.twinfieldOAuthCallbackComponent\r\n },\r\n services: {\r\n TwinfieldService: twinfield_service_1.TwinfieldService,\r\n },\r\n states: [twinfield_states_1.twinfieldState],\r\n};\r\nngmodule_1.loadNg1Module(ngmodule_1.ngmodule, twinfieldAppModule);\r\n\n\n/***/ }),\n/* 708 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TwinfieldOAuthCallbackController = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @return {void}\r\n */\r\n TwinfieldOAuthCallbackController.$inject = [\"TwinfieldService\", \"$scope\", \"localStorageService\"];\r\n function TwinfieldOAuthCallbackController(TwinfieldService, $scope, localStorageService) {\r\n 'ngInject';\r\n var _this = this;\r\n this.TwinfieldService = TwinfieldService;\r\n this.$scope = $scope;\r\n this.localStorageService = localStorageService;\r\n /**\r\n * Initiator\r\n *\r\n * @return {void}\r\n */\r\n this.$onInit = function () {\r\n /** Send code to API on oAuth2 callback */\r\n if (_this.getParameter('code')) {\r\n _this.TwinfieldService.setToken(_this.getParameter('code')).then(function (status) {\r\n _this.$scope.status = status == 'true';\r\n console.log('token: set ' + _this.$scope.status);\r\n _this.redirect();\r\n }).catch(function () {\r\n _this.$scope.status = false;\r\n _this.redirect();\r\n });\r\n /** Or redirect to app */\r\n }\r\n else {\r\n _this.redirect();\r\n }\r\n };\r\n /**\r\n * Get URI parameters\r\n *\r\n * @param {string} parameter\r\n * @return {mixed} Value or false\r\n */\r\n this.getParameter = function (parameter) {\r\n var url = window.location.href;\r\n var regex = new RegExp('^.*[\\?\\&]{1}' + parameter + '=');\r\n var value = url.match(regex) ? url.replace(regex, '').replace(/(\\&.+)?$/, '') : false;\r\n return value;\r\n };\r\n /**\r\n * Redirect after Twinfield token\r\n *\r\n * @return {void}\r\n */\r\n this.redirect = function () {\r\n /** Set twinfield URI nonces */\r\n var defaultUri = '/app';\r\n var redirectTo = _this.localStorageService.get('twinfieldRedirect') || defaultUri;\r\n /** Log */\r\n console.log('redirectTo: ' + redirectTo);\r\n /** Redirect */\r\n if (parent.location.pathname !== redirectTo.replace(/\\/*\\?+.*$/, '')) {\r\n /** Reset to prevent loop */\r\n _this.localStorageService.set('twinfieldRedirect', defaultUri);\r\n /** Redirect */\r\n parent.location.href = redirectTo;\r\n }\r\n };\r\n }\r\n return TwinfieldOAuthCallbackController;\r\n}());\r\nexports.twinfieldOAuthCallbackComponent = {\r\n controller: TwinfieldOAuthCallbackController,\r\n template: __webpack_require__(509)\r\n};\r\n\n\n/***/ }),\n/* 709 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.twinfieldState = {\r\n parent: 'app',\r\n name: \"twinfield\",\r\n url: \"/twinfield\",\r\n component: 'twinfieldOAuthCallbackComponent'\r\n};\r\n\n\n/***/ }),\n/* 710 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IAccountEmployee = /** @class */ (function (_super) {\r\n __extends(IAccountEmployee, _super);\r\n function IAccountEmployee() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IAccountEmployee;\r\n}(base_entity_1.BaseEntity));\r\nexports.IAccountEmployee = IAccountEmployee;\r\nvar AccountEmployeeService = /** @class */ (function (_super) {\r\n __extends(AccountEmployeeService, _super);\r\n AccountEmployeeService.$inject = [\"Restangular\", \"AppService\"];\r\n function AccountEmployeeService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/AccountEmployees') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return AccountEmployeeService;\r\n}(base_service_1.BaseService));\r\nexports.AccountEmployeeService = AccountEmployeeService;\r\n\n\n/***/ }),\n/* 711 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IAccount = /** @class */ (function () {\r\n function IAccount() {\r\n }\r\n return IAccount;\r\n}());\r\nexports.IAccount = IAccount;\r\nvar AccountsService = /** @class */ (function (_super) {\r\n __extends(AccountsService, _super);\r\n AccountsService.$inject = [\"Restangular\", \"AppService\", \"EnumService\"];\r\n function AccountsService(Restangular, AppService, EnumService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/accounts') || this;\r\n _this.AppService = AppService;\r\n _this.EnumService = EnumService;\r\n _this.getContacts = function (id) {\r\n return _this.one(id).all('contacts').getList().then(function (result) {\r\n var contacts = result.value;\r\n contacts.forEach(function (item) {\r\n item.name = item.firstName + ' ' + item.lastName;\r\n });\r\n return contacts.plain();\r\n });\r\n };\r\n return _this;\r\n }\r\n return AccountsService;\r\n}(base_service_1.BaseService));\r\nexports.AccountsService = AccountsService;\r\n\n\n/***/ }),\n/* 712 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IApplicantStatusHistory = /** @class */ (function () {\r\n function IApplicantStatusHistory() {\r\n }\r\n return IApplicantStatusHistory;\r\n}());\r\nexports.IApplicantStatusHistory = IApplicantStatusHistory;\r\nvar ApplicantStatusHistoryService = /** @class */ (function (_super) {\r\n __extends(ApplicantStatusHistoryService, _super);\r\n ApplicantStatusHistoryService.$inject = [\"Restangular\", \"AppService\"];\r\n function ApplicantStatusHistoryService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'hr/applicantStatusHistory') || this;\r\n _this.AppService = AppService;\r\n _this.getPerApplicant = function (applicantId) {\r\n return _this.Restangular.all(_this.itemName).customGET('', { \"applicantId\": applicantId }).then(function (response) {\r\n return _this.getListLoaded(response.plain());\r\n });\r\n };\r\n return _this;\r\n }\r\n return ApplicantStatusHistoryService;\r\n}(base_service_1.BaseService));\r\nexports.ApplicantStatusHistoryService = ApplicantStatusHistoryService;\r\n\n\n/***/ }),\n/* 713 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar angular = __webpack_require__(6);\r\nvar IApplicant = /** @class */ (function (_super) {\r\n __extends(IApplicant, _super);\r\n function IApplicant() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IApplicant;\r\n}(base_entity_1.BaseEntity));\r\nexports.IApplicant = IApplicant;\r\nvar ApplicantsService = /** @class */ (function (_super) {\r\n __extends(ApplicantsService, _super);\r\n ApplicantsService.$inject = [\"Restangular\", \"AppService\"];\r\n function ApplicantsService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'hr/applicant') || this;\r\n _this.AppService = AppService;\r\n _this.getArchive = function (queryParams) {\r\n if (queryParams === void 0) { queryParams = null; }\r\n return _this.Restangular.all(_this.itemName).customGET('archive').then(function (list) {\r\n _this.list = list.plain().value;\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n return _this;\r\n }\r\n ApplicantsService.prototype.postBlob = function (id, file) {\r\n var _this = this;\r\n // Create FormData to send in the request\r\n var formData = new FormData();\r\n formData.append('file', file, file.name);\r\n return this.Restangular.one('hr/applicant', id)\r\n .withHttpConfig({ transformRequest: angular.identity })\r\n .customPOST(formData, 'blobs', undefined, { 'Content-Type': undefined })\r\n .then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n _this.item = item.plain();\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n ApplicantsService.prototype.getBlobs = function (id) {\r\n return this.Restangular.one('hr/applicant', id).all('blobs').customGET('').then(function (collection) {\r\n return collection.plain();\r\n });\r\n };\r\n ApplicantsService.prototype.deleteBlob = function (id, blobid) {\r\n return this.Restangular.one('hr/applicant', id).customDELETE('/blobs/' + blobid).then(function (res) {\r\n return res;\r\n });\r\n };\r\n ApplicantsService.prototype.getBlob = function (id, blobid) {\r\n // this.Restangular.setFullResponse(true);\r\n // return this.Restangular.one('hr/applicant', id).one('blobs', blobid).customGET('', {}, { responseType: 'blob'}).then((response) => {\r\n // console.log(response);\r\n // const link = document.createElement('a');\r\n // link.href = URL.createObjectURL(response);\r\n // link.download = 'test.doc';\r\n // link.click();\r\n // return new Blob(response.data, { type: response.headers('Content-Type') });\r\n // })\r\n };\r\n return ApplicantsService;\r\n}(base_service_1.BaseService));\r\nexports.ApplicantsService = ApplicantsService;\r\n\n\n/***/ }),\n/* 714 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IContact = /** @class */ (function () {\r\n function IContact() {\r\n }\r\n return IContact;\r\n}());\r\nexports.IContact = IContact;\r\nvar ContactsService = /** @class */ (function (_super) {\r\n __extends(ContactsService, _super);\r\n ContactsService.$inject = [\"Restangular\", \"AppService\", \"AuthUserService\"];\r\n function ContactsService(Restangular, AppService, AuthUserService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/contacts') || this;\r\n _this.AppService = AppService;\r\n _this.AuthUserService = AuthUserService;\r\n return _this;\r\n }\r\n ContactsService.prototype.deleteAccount = function (authUser, contact) {\r\n var _this = this;\r\n // console.log('ContactsService deleteAccount');\r\n return this.AuthUserService.delete(authUser.id).then(function () {\r\n contact.userId = \"\";\r\n return _this.put(contact.id, contact).then(function (item) {\r\n // console.log(contact);\r\n // console.log('Account removed');\r\n return item;\r\n });\r\n });\r\n };\r\n ContactsService.prototype.createAccount = function (authUser, contact) {\r\n var _this = this;\r\n authUser.email = contact.emailAddress;\r\n authUser.userName = contact.emailAddress;\r\n authUser.roles = ['customer'];\r\n authUser.claims = {\r\n \"displayName\": contact.firstName + contact.lastName,\r\n \"customerId\": contact.accountId\r\n };\r\n return this.AuthUserService.post(authUser).then(function (response) {\r\n contact.userId = response.id;\r\n return _this.put(contact.id, contact).then(function (item) {\r\n // console.log('Account created');\r\n return item;\r\n });\r\n });\r\n };\r\n return ContactsService;\r\n}(base_service_1.BaseService));\r\nexports.ContactsService = ContactsService;\r\n\n\n/***/ }),\n/* 715 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IDashboard = /** @class */ (function () {\r\n function IDashboard() {\r\n }\r\n return IDashboard;\r\n}());\r\nexports.IDashboard = IDashboard;\r\nvar DashboardService = /** @class */ (function (_super) {\r\n __extends(DashboardService, _super);\r\n DashboardService.$inject = [\"Restangular\", \"AppService\"];\r\n function DashboardService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'dashboard') || this;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return DashboardService;\r\n}(base_service_1.BaseService));\r\nexports.DashboardService = DashboardService;\r\n\n\n/***/ }),\n/* 716 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IDeclaration = /** @class */ (function (_super) {\r\n __extends(IDeclaration, _super);\r\n function IDeclaration() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IDeclaration;\r\n}(base_entity_1.BaseEntity));\r\nexports.IDeclaration = IDeclaration;\r\nvar DeclarationService = /** @class */ (function (_super) {\r\n __extends(DeclarationService, _super);\r\n DeclarationService.$inject = [\"Restangular\", \"AppService\"];\r\n function DeclarationService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'declaration') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n DeclarationService.prototype.confirm = function (data) {\r\n return this.Restangular.all(this.itemName).one('confirm').customPOST(data).then(function (item) {\r\n return item;\r\n });\r\n };\r\n return DeclarationService;\r\n}(base_service_1.BaseService));\r\nexports.DeclarationService = DeclarationService;\r\n\n\n/***/ }),\n/* 717 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar IEmployee = /** @class */ (function () {\r\n function IEmployee() {\r\n }\r\n return IEmployee;\r\n}());\r\nexports.IEmployee = IEmployee;\r\nvar IEmployeeSubscription = /** @class */ (function (_super) {\r\n __extends(IEmployeeSubscription, _super);\r\n function IEmployeeSubscription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IEmployeeSubscription;\r\n}(base_entity_1.BaseEntity));\r\nexports.IEmployeeSubscription = IEmployeeSubscription;\r\nvar EmployeesService = /** @class */ (function (_super) {\r\n __extends(EmployeesService, _super);\r\n EmployeesService.$inject = [\"Restangular\", \"AppService\", \"AuthUserService\"];\r\n function EmployeesService(Restangular, AppService, AuthUserService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'hr/employee') || this;\r\n _this.AppService = AppService;\r\n _this.AuthUserService = AuthUserService;\r\n _this.refresh = function (id) {\r\n return _this.Restangular.one('hr/employee', id.toString()).one('refreshFromNmbrs', 'true').get().then(function (item) {\r\n _this.item = item;\r\n return item.plain();\r\n });\r\n };\r\n _this.refreshAll = function () {\r\n return _this.Restangular.all('nmbrs/employeeupdate').getList().then(function (items) {\r\n return items.plain();\r\n });\r\n };\r\n _this.getSubscriptions = function () {\r\n return _this.Restangular.all('hr/employee/subscriptions').getList().then(function (subscriptions) {\r\n return subscriptions.plain();\r\n });\r\n };\r\n _this.getAvailability = function () {\r\n return _this.Restangular.all('hr/employee/availability').getList().then(function (availability) {\r\n return availability.plain();\r\n });\r\n };\r\n _this.getAvailabilityByRange = function (start, end) {\r\n return _this.Restangular.all('hr/employee/availabilityByRange').getList({ start: start, end: end }).then(function (availability) {\r\n return availability.plain();\r\n });\r\n };\r\n _this.postSubscription = function (data) {\r\n return _this.Restangular.all('hr/employee/subscriptions').post(data).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n _this.putSubscription = function (data) {\r\n return _this.Restangular.one('hr/employee/subscriptions', data.id.toString()).customPUT(data).then(function (item) {\r\n _this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n _this.gatBackoffice = function () {\r\n return _this.Restangular.all('hr/employee/backoffice').getList().then(function (list) {\r\n return list.plain();\r\n })\r\n .catch(function (error) {\r\n _this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n };\r\n return _this;\r\n }\r\n EmployeesService.prototype.getEmployeesByStatus = function (active) {\r\n var _this = this;\r\n if (active === void 0) { active = true; }\r\n var type = '';\r\n if (active) {\r\n type = 'active';\r\n }\r\n else {\r\n type = 'inactive';\r\n }\r\n return this.Restangular.all(this.itemName).customGET('', { 'limit': 5000, 'type': type }).then(function (response) {\r\n _this.list = response.plain().value;\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n EmployeesService.prototype.getIsZZP = function () {\r\n return this.Restangular.all(this.itemName).one('iszzp').get().then(function (item) {\r\n var e = item.result;\r\n return { \"zzp\": e.zzp, \"invoiceMonthly\": e.incoiceMonthly };\r\n });\r\n };\r\n EmployeesService.prototype.deleteAccount = function (authUser, employee) {\r\n var _this = this;\r\n // console.log('EmployeesService deleteAccount');\r\n return this.AuthUserService.delete(authUser.id).then(function () {\r\n employee.userId = \"\";\r\n return _this.put(employee.id, employee).then(function (item) {\r\n // console.log('Account removed');\r\n return item;\r\n });\r\n });\r\n };\r\n EmployeesService.prototype.createAccount = function (authUser, employee) {\r\n var _this = this;\r\n authUser.email = employee.emailPrivate;\r\n authUser.userName = employee.emailPrivate;\r\n employee.username = authUser.userName;\r\n authUser.roles = ['employee'];\r\n authUser.claims = {\r\n \"displayName\": employee.displayName,\r\n \"employeeId\": employee.id\r\n };\r\n return this.AuthUserService.post(authUser).then(function (response) {\r\n employee.userId = response.id;\r\n return _this.put(employee.id, employee).then(function (item) {\r\n // console.log('Account created');\r\n return item;\r\n });\r\n });\r\n };\r\n return EmployeesService;\r\n}(base_service_1.BaseService));\r\nexports.EmployeesService = EmployeesService;\r\n\n\n/***/ }),\n/* 718 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EnumService = /** @class */ (function () {\r\n function EnumService() {\r\n this.accountTypes = [\r\n \"Leverancier\",\r\n \"Relatie\",\r\n \"Gemeente\",\r\n \"Uitzendbureau\",\r\n \"Opdrachtgever\"\r\n ];\r\n this.contactTypes = [\r\n \"backoffice\",\r\n \"employee\"\r\n ];\r\n this.employeeTypes = [\r\n \"Student\",\r\n \"Kantoormedewerker\",\r\n \"Medewerker\",\r\n \"Solicitant\"\r\n ];\r\n this.monthsOfTheYear = [\r\n \"januari\",\r\n \"februari\",\r\n \"maart\",\r\n \"april\",\r\n \"mei\",\r\n \"juni\",\r\n \"juli\",\r\n \"augustus\",\r\n \"september\",\r\n \"oktober\",\r\n \"november\",\r\n \"december\",\r\n ];\r\n }\r\n return EnumService;\r\n}());\r\nexports.EnumService = EnumService;\r\n\n\n/***/ }),\n/* 719 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IInvoice = /** @class */ (function (_super) {\r\n __extends(IInvoice, _super);\r\n function IInvoice() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.hasUnpaid = false;\r\n return _this;\r\n }\r\n return IInvoice;\r\n}(base_entity_1.BaseEntity));\r\nexports.IInvoice = IInvoice;\r\nvar IInvoiceLine = /** @class */ (function (_super) {\r\n __extends(IInvoiceLine, _super);\r\n function IInvoiceLine() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IInvoiceLine;\r\n}(base_entity_1.BaseEntity));\r\nexports.IInvoiceLine = IInvoiceLine;\r\nvar InvoicesService = /** @class */ (function (_super) {\r\n __extends(InvoicesService, _super);\r\n InvoicesService.$inject = [\"Restangular\", \"AppService\"];\r\n function InvoicesService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'finance/invoice') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return InvoicesService;\r\n}(base_service_1.BaseService));\r\nexports.InvoicesService = InvoicesService;\r\n\n\n/***/ }),\n/* 720 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ILead = /** @class */ (function () {\r\n function ILead() {\r\n }\r\n return ILead;\r\n}());\r\nexports.ILead = ILead;\r\nvar LeadsService = /** @class */ (function (_super) {\r\n __extends(LeadsService, _super);\r\n LeadsService.$inject = [\"Restangular\", \"AppService\"];\r\n function LeadsService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/leads') || this;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return LeadsService;\r\n}(base_service_1.BaseService));\r\nexports.LeadsService = LeadsService;\r\n\n\n/***/ }),\n/* 721 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar Masterdata = /** @class */ (function (_super) {\r\n __extends(Masterdata, _super);\r\n function Masterdata() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Masterdata;\r\n}(base_entity_1.BaseEntity));\r\nexports.Masterdata = Masterdata;\r\nvar MasterdataAService = /** @class */ (function (_super) {\r\n __extends(MasterdataAService, _super);\r\n MasterdataAService.$inject = [\"Restangular\", \"AppService\"];\r\n function MasterdataAService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'masterdata') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return MasterdataAService;\r\n}(base_service_1.BaseService));\r\nexports.MasterdataAService = MasterdataAService;\r\n\n\n/***/ }),\n/* 722 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar NmbrsService = /** @class */ (function (_super) {\r\n __extends(NmbrsService, _super);\r\n NmbrsService.$inject = [\"Restangular\", \"AppService\"];\r\n function NmbrsService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'nmbrs') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return NmbrsService;\r\n}(base_service_1.BaseService));\r\nexports.NmbrsService = NmbrsService;\r\n\n\n/***/ }),\n/* 723 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar INote = /** @class */ (function () {\r\n function INote() {\r\n }\r\n return INote;\r\n}());\r\nexports.INote = INote;\r\nvar NotesService = /** @class */ (function (_super) {\r\n __extends(NotesService, _super);\r\n NotesService.$inject = [\"Restangular\", \"AppService\"];\r\n function NotesService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/notes') || this;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return NotesService;\r\n}(base_service_1.BaseService));\r\nexports.NotesService = NotesService;\r\n\n\n/***/ }),\n/* 724 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar SettingsService = /** @class */ (function (_super) {\r\n __extends(SettingsService, _super);\r\n SettingsService.$inject = [\"Restangular\", \"AppService\"];\r\n function SettingsService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'settings') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return SettingsService;\r\n}(base_service_1.BaseService));\r\nexports.SettingsService = SettingsService;\r\n\n\n/***/ }),\n/* 725 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_entity_1 = __webpack_require__(8);\r\nvar base_service_1 = __webpack_require__(3);\r\nvar IStaff = /** @class */ (function (_super) {\r\n __extends(IStaff, _super);\r\n function IStaff() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IStaff;\r\n}(base_entity_1.BaseEntity));\r\nexports.IStaff = IStaff;\r\nvar StaffService = /** @class */ (function (_super) {\r\n __extends(StaffService, _super);\r\n StaffService.$inject = [\"Restangular\", \"AppService\"];\r\n function StaffService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'hr/staffmember') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n _this.getUser = function (id) {\r\n return _this.customGet(id + '/user').then(function (item) {\r\n return item;\r\n });\r\n };\r\n _this.createUser = function (id, user) {\r\n return _this.customPost(id + '/user', user).then(function (item) {\r\n return item;\r\n });\r\n };\r\n _this.deleteUser = function (id) {\r\n return _this.customDelete(id + '/user').then(function (item) {\r\n return item;\r\n });\r\n };\r\n _this.getRoles = function (id) {\r\n return _this.customGet(id + '/roles').then(function (item) {\r\n return item;\r\n });\r\n };\r\n _this.putRoles = function (id, roles) {\r\n return _this.customPut(id + '/roles', { roles: roles }).then(function (item) {\r\n return item;\r\n });\r\n };\r\n _this.putPassword = function (id, password) {\r\n return _this.customPut(id + '/password', { password: password }).then(function (item) {\r\n return item;\r\n });\r\n };\r\n return _this;\r\n }\r\n return StaffService;\r\n}(base_service_1.BaseService));\r\nexports.StaffService = StaffService;\r\n\n\n/***/ }),\n/* 726 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar ITask = /** @class */ (function () {\r\n function ITask() {\r\n }\r\n return ITask;\r\n}());\r\nexports.ITask = ITask;\r\nvar TasksService = /** @class */ (function (_super) {\r\n __extends(TasksService, _super);\r\n TasksService.$inject = [\"Restangular\", \"AppService\"];\r\n function TasksService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'crm/Tasks') || this;\r\n _this.AppService = AppService;\r\n _this.getArchive = function (queryParams) {\r\n if (queryParams === void 0) { queryParams = null; }\r\n return _this.Restangular.all(_this.itemName).customGET('archive', queryParams).then(function (list) {\r\n _this.list = list.plain().value;\r\n return _this.listLoaded(_this.list);\r\n });\r\n };\r\n return _this;\r\n }\r\n return TasksService;\r\n}(base_service_1.BaseService));\r\nexports.TasksService = TasksService;\r\n\n\n/***/ }),\n/* 727 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar base_service_1 = __webpack_require__(3);\r\nvar TemplatesService = /** @class */ (function (_super) {\r\n __extends(TemplatesService, _super);\r\n TemplatesService.$inject = [\"Restangular\", \"AppService\"];\r\n function TemplatesService(Restangular, AppService) {\r\n \"ngInject\";\r\n var _this = _super.call(this, Restangular, AppService, 'emails') || this;\r\n _this.Restangular = Restangular;\r\n _this.AppService = AppService;\r\n return _this;\r\n }\r\n return TemplatesService;\r\n}(base_service_1.BaseService));\r\nexports.TemplatesService = TemplatesService;\r\n\n\n/***/ })\n],[549]);\n\n\n// WEBPACK FOOTER //\n// js/common.7abaadaee21ce50c6d60.js","import { AppService } from '../main/app.service';\r\nimport * as _ from \"lodash\";\r\n\r\nexport interface IGetList {\r\n size: number;\r\n value: TEntity[]\r\n}\r\n\r\nexport interface IGetListParams {\r\n limit?: number;\r\n offset?: number;\r\n sortfield?: string;\r\n sortorder?: string;\r\n q?: string;\r\n}\r\n\r\nexport class BaseService {\r\n\r\n public observerCallbacks: any = [];\r\n public collection: Restangular.ICollection = null;\r\n public list: Array;\r\n public item: TEntity;\r\n public itemId: string | number;\r\n\r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService, public itemName: string) {\r\n this.collection = Restangular.all(itemName);\r\n }\r\n\r\n public subscribe = (ctrlname, callback) => {\r\n this.observerCallbacks.push({ callback: callback, ctrl: ctrlname });\r\n\r\n }\r\n\r\n public unsubscribe = (ctrlname) => {\r\n _.remove(this.observerCallbacks, { ctrl: ctrlname })\r\n }\r\n\r\n public notifyObservers = (type) => {\r\n this.observerCallbacks.forEach(item => {\r\n item.callback(type);\r\n });\r\n };\r\n\r\n public one(id: string | number = null): Restangular.IElement {\r\n if (id) {\r\n return this.Restangular.one(this.itemName, id.toString());\r\n } else {\r\n return this.Restangular.one(this.itemName);\r\n }\r\n }\r\n\r\n public all = (params: IGetListParams = { 'limit': 5000 }): ng.IPromise => {\r\n return this.Restangular.all(this.itemName).customGET('', params).then((response: Restangular.ICollection) => {\r\n this.list = response.plain().value;\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public listLoaded = (list: TEntity[]) => {\r\n return list;\r\n }\r\n\r\n public getList = (params: IGetListParams = { 'limit': 5000 }): ng.IPromise> => {\r\n return this.Restangular.all(this.itemName).customGET('', params).then((response: Restangular.ICollection) => {\r\n return this.getListLoaded(response.plain());\r\n });\r\n }\r\n\r\n public getListLoaded = (collection: IGetList) => {\r\n return collection;\r\n }\r\n\r\n public customAll = (url, queryParams : {[key:string] : any} = { 'limit': 5000 }): ng.IPromise => {\r\n // console.log('customAll')\r\n return this.Restangular.all(this.itemName + '/' + url).getList(queryParams).then((list: Restangular.ICollection) => {\r\n this.list = list;\r\n return list.plain();\r\n });\r\n }\r\n\r\n public get(id: string | number): ng.IPromise {\r\n if (id) {\r\n return this.Restangular.one(this.itemName, id.toString()).get().then((item) => {\r\n this.item = item;\r\n return item.plain();\r\n });\r\n } else {\r\n this.item = null;\r\n return null;\r\n }\r\n }\r\n\r\n // public create(): Restangular.IElement {\r\n // return this.Restangular.one(this.itemName);\r\n // }\r\n public delete(id: string | number): Restangular.IPromise {\r\n var promise = this.Restangular.one(this.itemName, id.toString()).remove();\r\n promise\r\n .then(result => {\r\n this.itemId = id;\r\n this.notifyObservers('delete');\r\n this.AppService.NotifyService.success('Verwijderd', 'De gegevens zijn verwijderd');\r\n })\r\n .catch(error => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n }\r\n\r\n public post(data): ng.IPromise {\r\n return this.collection.post(data).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n this.item = item.plain();\r\n this.notifyObservers('post');\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n public customPost(url: string, data, displayResult: boolean = true): ng.IPromise {\r\n return this.collection.customPOST(data, url).then((item: Restangular.IElement) => {\r\n if (displayResult) {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n }\r\n return item;\r\n })\r\n .catch((error) => {\r\n if (displayResult) {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n }\r\n return error;\r\n });\r\n }\r\n\r\n public put(id: string | number, data): Restangular.IPromise {\r\n var promise = this.Restangular.one(this.itemName, id.toString()).customPUT(data);\r\n promise\r\n .then(result => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n this.item = result.plain();\r\n this.notifyObservers('put');\r\n })\r\n .catch(error => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n }\r\n\r\n public customPut(url: string, data): ng.IPromise {\r\n // console.log(data);\r\n return this.collection.customPUT(data, url).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item;\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n public customGet(url: string, params = null): ng.IPromise {\r\n return this.Restangular.one(this.itemName + '/' + url).get(params).then((item) => {\r\n if (item) {\r\n this.item = item;\r\n if (typeof item !== \"string\" && item.plain()) {\r\n return item.plain();\r\n } else {\r\n return item;\r\n }\r\n } else {\r\n return null;\r\n }\r\n });\r\n }\r\n\r\n public getChild(id: string | number, childName, params:IGetListParams = { 'limit': 5000 }): ng.IPromise {\r\n if ((typeof id === \"number\" && id > 0) || (typeof id === \"string\" && id !== undefined)) {\r\n return this.Restangular.one(this.itemName, id.toString()).customGET(childName, params).then((item) => {\r\n this.item = item.value;\r\n return item.value;\r\n });\r\n } else {\r\n this.item = null;\r\n return null;\r\n }\r\n }\r\n\r\n public postChild(data, parentId, childName): Restangular.IPromise {\r\n var promise = this.Restangular.one(this.itemName, parentId.toString()).customPOST(data, childName);\r\n\r\n promise\r\n .then(result => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n })\r\n .catch(error => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n }\r\n\r\n public putChild(data, parentId, childName, childId): Restangular.IPromise {\r\n var promise = this.Restangular.one(this.itemName, parentId.toString()).customPUT(data, childName + '/' + childId);\r\n\r\n promise\r\n .then(result => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n })\r\n .catch(error => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n }\r\n\r\n public deleteChild(childId, parentId, childName): Restangular.IPromise {\r\n var promise = this.Restangular.one(this.itemName, parentId.toString()).customDELETE(childName + '/' + childId);\r\n promise.then(result => {\r\n this.AppService.NotifyService.success('Verwijderd', 'De gegevens zijn verwijderd');\r\n })\r\n .catch(error => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n });\r\n return promise;\r\n }\r\n\r\n public customDelete(url: string): ng.IPromise {\r\n return this.collection.customDELETE(url).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item;\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n // public one(id: string | number = null): Restangular.IElement {\r\n // if (id) {\r\n // return this.Restangular.one(this.itemName, id.toString());\r\n // } else {\r\n // return this.Restangular.one(this.itemName);\r\n // }\r\n // }\r\n\r\n // public listLoaded = () => {\r\n\r\n\r\n // }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/base.service.ts","import * as angular from \"angular\";\r\n\r\nexport const ngmodule = angular.module(\"app\", [\r\n 'abo-theme',\r\n 'abo-masterdata',\r\n 'ui.router',\r\n 'restangular',\r\n 'LocalStorageModule',\r\n 'ngLetterAvatar',\r\n 'ui.router.modal',\r\n 'angularFileUpload',\r\n 'ngMessages',\r\n 'gettext',\r\n 'permission',\r\n 'permission.ui',\r\n 'angular.filter',\r\n 'ng.deviceDetector',\r\n 'matchMedia', \r\n 'ngFileSaver',\r\n 'infinite-scroll',\r\n 'ngclipboard'\r\n]);\r\n\r\nconst BLANK_MODULE = {\r\n states: [],\r\n components: {},\r\n directives: {},\r\n services: {},\r\n filters: {},\r\n factories: {},\r\n configBlocks: [],\r\n runBlocks: []\r\n};\r\n\r\n/**\r\n * Register each app module's states, directives, components, filters, services,\r\n * and config/run blocks with the `ngmodule`\r\n *\r\n * @param ngModule the `angular.module()` object\r\n * @param appModule the feature module consisting of components, states, services, etc\r\n */\r\nexport const loadNg1Module = (ngModule, appModule) => {\r\n\r\n let module = Object.assign({}, BLANK_MODULE, appModule);\r\n\r\n ngModule.config(['$stateProvider', $stateProvider => module.states.forEach(state => $stateProvider.state(state))]);\r\n\r\n Object.keys(module.components).forEach(name => ngModule.component(name, module.components[name]));\r\n\r\n Object.keys(module.directives).forEach(name => ngModule.directive(name, module.directives[name]));\r\n\r\n Object.keys(module.services).forEach(name => ngModule.service(name, module.services[name]));\r\n\r\n Object.keys(module.filters).forEach(name => ngModule.filter(name, module.filters[name]));\r\n\r\n Object.keys(module.factories).forEach(name => ngModule.factory(name, module.factories[name]));\r\n\r\n module.configBlocks.forEach(configBlock => ngModule.config(configBlock));\r\n\r\n module.runBlocks.forEach(runBlock => ngModule.run(runBlock));\r\n\r\n return ngModule;\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/bootstrap/ngmodule.ts","export * from './accounts.service';\r\nexport * from './contacts.service';\r\nexport * from './dashboard.service';\r\nexport * from './leads.service';\r\nexport * from './notes.service';\r\nexport * from './tasks.service';\r\nexport * from './employees.service';\r\nexport * from './person.service';\r\nexport * from './location.service';\r\nexport * from './settings.service';\r\nexport * from './masterdata.service';\r\nexport * from './enum.service';\r\nexport * from './shifts.service';\r\nexport * from './declarations.service';\r\nexport * from './invoices.service';\r\nexport * from './team.service';\r\nexport * from './employeeSkills.service';\r\nexport * from './templates.service';\r\nexport * from './agreements.service';\r\nexport * from './nmbrs.service';\r\nexport * from './employeeAvailability.service';\r\nexport * from './news.service';\r\nexport * from './applicants.service';\r\nexport * from './applicantStatusHistory.service';\r\nexport * from './twinfield.service';\r\nexport * from './cootje.service';\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/index.ts","export class BaseEntity {\r\n id: number | string;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/base.entity.ts","var isProd = ($.trim(process.env.NODE_ENV) == 'production');\r\nvar isStaging = ($.trim(process.env.NODE_ENV) == 'staging');\r\nvar isDev = ($.trim(process.env.NODE_ENV) == 'develop');\r\nvar isDemo = ($.trim(process.env.NODE_ENV) == 'demo');\r\n\r\nvar config = {\r\n VERSION: '1.26.2',\r\n BASE_URL: '',\r\n BASE_AUTH_URL: '',\r\n API_URL: '',\r\n AUTH_API_URL: '',\r\n AUTH_LOGIN_URL: '',\r\n AUTH_LOGOUT_URL: '',\r\n AUTH_CLIENT_ID: '',\r\n AUTH_SCOPES: '',\r\n}\r\n\r\nconfig.AUTH_CLIENT_ID = 'js';\r\nconfig.AUTH_SCOPES = 'openid profile api';\r\n\r\nif (isProd) {\r\n\r\n config.BASE_URL = 'https://operando-api.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth.tccapps.nl/';\r\n\r\n} else if (isStaging) {\r\n\r\n config.BASE_URL = 'https://operando-api-staging.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth-staging.tccapps.nl/';\r\n\r\n} else if (isDev) {\r\n\r\n config.BASE_URL = 'https://operando-api-develop.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth-develop.tccapps.nl/';\r\n\r\n} else {\r\n\r\n\r\n config.BASE_URL = 'https://operando-api-develop.tccapps.nl/';\r\n config.BASE_AUTH_URL = 'https://operando-auth-develop.tccapps.nl/';\r\n //config.BASE_URL = 'http://localhost:5000/';\r\n //config.BASE_AUTH_URL = 'https://operando-auth-develop.azurewebsites.net/';\r\n}\r\n\r\nconfig.API_URL = config.BASE_URL + 'api/';\r\nconfig.AUTH_API_URL = config.BASE_AUTH_URL + 'auth/';\r\nconfig.AUTH_LOGIN_URL = config.BASE_AUTH_URL + 'connect/authorize';\r\nconfig.AUTH_LOGOUT_URL = config.BASE_AUTH_URL + 'connect/endsession';\r\n\r\nexport default config;\n\n\n// WEBPACK FOOTER //\n// ./src/app/config.ts","import { IShift } from './shifts.service';\r\nimport { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class ICalendarShift extends BaseEntity {\r\n start: string;\r\n end: string;\r\n status: string;\r\n title: string;\r\n shift: IShift;\r\n statusColor: string;\r\n}\r\n\r\n\r\nexport class CalendarService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'calendar');\r\n }\r\n\r\n public all = (params): ng.IPromise => {\r\n \r\n return this.Restangular.all('calendar').customGET('', params).then((response: Restangular.ICollection) => {\r\n this.list = response.plain();\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/calendar.service.ts","import { IEmployeeSubscription } from './employees.service';\r\nimport { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService, IGetListParams } from '../base/base.service';\r\nimport { IDeclaration } from \"./index\";\r\n\r\nexport class IShift extends BaseEntity {\r\n subscriptions: any;\r\n name: string;\r\n teamId: string;\r\n teamName: string;\r\n teamLocationId: string;\r\n teamLocationAccountId: string;\r\n employeeId: string;\r\n employeeDisplayName: string;\r\n start: any;\r\n end: any;\r\n startDate?: any;\r\n endDate?: any;\r\n startTime?: any;\r\n endTime?: any;\r\n comment: string;\r\n functionId: string;\r\n code: number;\r\n declarations: IDeclaration[];\r\n subscribed: boolean = false;\r\n isInThePast: boolean = false;\r\n accountId: string;\r\n locationId: string;\r\n status: number;\r\n statusColor: string;\r\n teamLocationName: string;\r\n plannedHours: number;\r\n declaredHours: number;\r\n hoursDifference: number;\r\n subscriptionsCount?: number;\r\n mySubscription?: IEmployeeSubscription;\r\n distance: number;\r\n}\r\nexport interface IGetShiftListParams extends IGetListParams {\r\n from: string,\r\n till: string,\r\n includeSubscriptions: boolean,\r\n includeDistance?: boolean,\r\n status?: string\r\n createdBy?: string;\r\n createdSince?: string;\r\n updatedBy?: string;\r\n updatedSince?: string;\r\n}\r\n\r\nexport class IBulkactionData {\r\n ids: string[];\r\n shiftBulkAction: \"None\" | \"ChangeStatus\" | \"Delete\" | \"SetEmployee\" | \"SendEmail\";\r\n statusId?: number;\r\n employeeId?: string;\r\n shiftEmail?: \"None\" | \"Customer\" | \"EmployeeSubscribe\" | \"EmployeeConfirm\";\r\n}\r\n\r\nexport class ShiftService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'shift');\r\n }\r\n\r\n public getFilter = (params: IGetShiftListParams): ng.IPromise => {\r\n params.limit = params.limit ? params.limit : 5000;\r\n return this.Restangular.all(this.itemName).customGET('', params).then((response: Restangular.ICollection) => {\r\n this.list = response.plain().value;\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public getLightByDate = (params: IGetShiftListParams): ng.IPromise => {\r\n params.limit = params.limit ? params.limit : 5000;\r\n return this.Restangular.all(this.itemName + '/getLightByDate').customGET('', params).then((response: Restangular.ICollection) => {\r\n this.list = response.plain().value;\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public getByEmployee = (start, end, employeeId): ng.IPromise => {\r\n var params = {'start': start, 'end': end}\r\n return this.Restangular.all(this.itemName + '/employee').customGET(employeeId, params).then((response: Restangular.ICollection) => {\r\n this.list = response.plain();\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public getByCurrentEmployee = (start, end): ng.IPromise => {\r\n var params = {'start': start, 'end': end}\r\n return this.Restangular.all(this.itemName + '/employee').customGET('', params).then((response: Restangular.ICollection) => {\r\n this.list = response.plain();\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public bulkAction = (data:IBulkactionData) => {\r\n return this.Restangular.all(this.itemName + '/bulk').post(data).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n } \r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/shifts.service.ts","import { BaseEntity } from \"../base/base.entity\";\r\nimport { BaseService } from \"../base/base.service\";\r\nimport { AppService } from \"../main/app.service\";\r\n\r\nexport class IEmployeeAvailability extends BaseEntity {\r\n start: any;\r\n end: any;\r\n availabilityStatusId: string;\r\n status: string;\r\n comment: string;\r\n employeeId: string;\r\n}\r\n\r\nexport class EmployeeAvailabilityService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'hr/EmployeeAvailability');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/employeeAvailability.service.ts","module.exports = __webpack_public_path__ + \"assets/beschikbaarheid2.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/beschikbaarheid2.jpg\n// module id = 142\n// module chunks = 0","import { AuthService } from '../../authorization/services';\r\nimport { BaseService } from '../../base/base.service';\r\nimport { AppService } from '../../main/app.service';\r\n\r\nexport class IAuthUser {\r\n id?: string;\r\n displayName?: string;\r\n userName: string;\r\n password: string;\r\n email: string;\r\n claims: { [name: string]: any };\r\n roles: Array;\r\n}\r\n\r\nexport class IAuthClaims {\r\n\r\n}\r\n\r\nexport class AuthUserService extends BaseService {\r\n\r\n constructor(AuthSettingsApi: Restangular.IService, protected AppService: AppService, private AuthService: AuthService, private localStorageService: any, private $q: ng.IQService) {\r\n 'ngInject';\r\n super(AuthSettingsApi, AppService, 'user');\r\n }\r\n\r\n public all = (): ng.IPromise => {\r\n return this.Restangular.all(this.itemName).getList().then((response: Restangular.ICollection) => {\r\n this.list = response.plain();\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public post(data): ng.IPromise {\r\n return this.collection.post(data).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n this.item = item.plain();\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n if(error.status == 406){\r\n if(error.data[0].code == \"DuplicateUserName\"){\r\n throw \"DuplicateUserName\";\r\n }\r\n }\r\n this.AppService.NotifyService.error('Foutmelding', \"Account kon niet worden opgeslagen!\");\r\n return error;\r\n });\r\n }\r\n\r\n resetPassword = (user: IAuthUser) => {\r\n return this.collection.one(user.id).all('resetpassword').post(user).then((response) => {\r\n return response;\r\n })\r\n }\r\n\r\n getRoles = (user: IAuthUser) => {\r\n\r\n return this.collection.one(user.id).all('roles').getList().then((response: Restangular.ICollection) => {\r\n return response.plain();\r\n })\r\n\r\n }\r\n\r\n getClaims = (user: IAuthUser) => {\r\n return this.collection.one(user.id).all('claims').getList().then((response: Restangular.ICollection) => {\r\n return response.plain();\r\n })\r\n }\r\n\r\n public getCurrentUser = () => {\r\n var tokendata = this.AuthService.getDataFromToken(this.AuthService.GetAuthorizationData());\r\n var userId = (tokendata).sub;\r\n if (this.localStorageService.get(\"user\") && this.localStorageService.get(\"user\").id == userId) {\r\n var deferred = this.$q.defer();\r\n var user = this.localStorageService.get(\"user\")\r\n deferred.resolve(user);\r\n return deferred.promise;\r\n } else {\r\n return this.get(userId).then((user) => {\r\n return this.getClaims(user).then((claims) => {\r\n return this.getRoles(user).then((roles) => {\r\n user.roles = roles;\r\n this.localStorageService.set(\"user\", user);\r\n return user;\r\n });\r\n })\r\n });\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/services/authusers.service.ts","import { EmployeesService, DeclarationService, ApplicantsService, ApplicantStatusHistoryService } from '../../services';\r\n\r\nexport const hrState: aboTheme.IState = {\r\n parent: \"app\",\r\n name: \"hr\",\r\n url: \"/hr\",\r\n redirectTo: \"hr.employees\",\r\n component: \"hrComponent\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\n\r\nexport const hrDashboardState: aboTheme.IState = {\r\n\r\n name: \"hr.dashboard\",\r\n url: \"/dashboard\",\r\n views: {\r\n \"main\": 'hrDashboardComponent'\r\n }\r\n\r\n};\r\n\r\n\r\nexport const employeesState: aboTheme.IState = {\r\n name: \"hr.employees\",\r\n url: \"/employees\",\r\n redirectTo: \"hr.employees.list\",\r\n views: {\r\n \"main\": \"employeesComponent\"\r\n }\r\n};\r\n\r\nexport const employeesListState: aboTheme.IState = {\r\n name: \"hr.employees.list\",\r\n url: \"/list\",\r\n resolve: {\r\n },\r\n views: {\r\n \"main\": 'employeesListComponent'\r\n }\r\n};\r\n\r\nexport const employeesItemState: aboTheme.IState = {\r\n name: \"hr.employees.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"tab\": null\r\n },\r\n resolve: {\r\n tasks: (EmployeesService: EmployeesService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return EmployeesService.getChild($stateParams['id'], 'tasks'); } },\r\n notes: (EmployeesService: EmployeesService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return EmployeesService.getChild($stateParams['id'], 'notes', {sortfield: 'date', sortorder: 'DESC'}); } },\r\n employee: (EmployeesService: EmployeesService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return EmployeesService.get($stateParams['id']); } },\r\n history: (DeclarationService: DeclarationService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return DeclarationService.customAll('employee/' + $stateParams['id'] + '/summary'); } },\r\n employeeSkills: (EmployeesService: EmployeesService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return EmployeesService.getChild($stateParams['id'], 'skills'); } },\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n },\r\n views: {\r\n \"main\": 'employeesItemComponent'\r\n }\r\n};\r\n\r\nexport const employeesItemBasicState: aboTheme.IState = {\r\n\r\n name: \"hr.employees.item.basic\",\r\n url: \"/basic\",\r\n params: {\r\n \"tab\": null\r\n },\r\n modal: ['employee'],\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n transportationTypes: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('TransportationType');\r\n },\r\n salaryScales: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('WageCodes');\r\n }\r\n },\r\n component: 'employeesItemBasicComponent'\r\n\r\n};\r\n\r\nexport const shiftsItemState: aboTheme.IState = {\r\n\r\n name: \"hr.employees.item.shift\",\r\n url: \"/shift/:shiftId\",\r\n params: {\r\n \"shiftId\": null\r\n },\r\n modal: ['employee', 'shifts'],\r\n resolve: {\r\n },\r\n component: 'shiftsItemComponent'\r\n\r\n};\r\n\r\nexport const availabilityItemState: aboTheme.IState = {\r\n\r\n name: \"hr.employees.item.availability\",\r\n url: \"/availability/:employeeId/:availabilityId\",\r\n params: {\r\n \"availabilityId\": null\r\n },\r\n modal: [],\r\n resolve: {\r\n statuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('AvalabilityStatus');\r\n }\r\n },\r\n component: 'availabilityItemComponent'\r\n\r\n};\r\n\r\nexport const skillsItemState: aboTheme.IState = {\r\n\r\n name: \"hr.employees.item.skill\",\r\n url: \"/skill/:employeeSkillId\",\r\n params: {\r\n \"employeeSkillId\": null\r\n },\r\n modal: ['employee', 'employeeSkills'],\r\n resolve: {\r\n skills: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Skills');\r\n }\r\n },\r\n component: 'skillsItemComponent'\r\n\r\n};\r\n\r\nexport const availabilityListState: aboTheme.IState = {\r\n name: \"hr.availability\",\r\n url: \"/availability\",\r\n resolve: {\r\n avalabilityStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('AvalabilityStatus');\r\n },\r\n },\r\n views: {\r\n \"main\": 'availabilityListComponent'\r\n }\r\n};\r\n\r\nexport const applicantsState: aboTheme.IState = {\r\n name: \"hr.applicants\",\r\n url: \"/applicants\",\r\n redirectTo: \"hr.applicants.list\",\r\n views: {\r\n \"main\": \"applicantsComponent\"\r\n }\r\n};\r\n\r\nexport const applicantsListState: aboTheme.IState = {\r\n name: \"hr.applicants.list\",\r\n url: \"/list?status&recruiter&function&targetaudiance\",\r\n params: {\r\n \"status\": null,\r\n \"recruiter\": null,\r\n \"function\" : null,\r\n \"targetaudiance\": null,\r\n },\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n preferredTargetAudiences: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n },\r\n users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); },\r\n },\r\n views: {\r\n \"main\": 'applicantsListComponent'\r\n }\r\n};\r\n\r\nexport const applicantsArchiveState: aboTheme.IState = {\r\n name: \"hr.applicants.archive\",\r\n url: \"/archive?status&recruiter&function&targetaudiance\",\r\n params: {\r\n \"status\": null,\r\n \"recruiter\": null,\r\n \"function\" : null,\r\n \"targetaudiance\": null,\r\n \"archive\": true\r\n },\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n preferredTargetAudiences: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n },\r\n users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); }\r\n },\r\n views: {\r\n \"main\": 'applicantsListComponent'\r\n }\r\n};\r\n\r\nexport const applicantsItemState: aboTheme.IState = {\r\n name: \"hr.applicants.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"tab\": null\r\n },\r\n resolve: {\r\n applicant: (ApplicantsService: ApplicantsService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ApplicantsService.get($stateParams['id']); } },\r\n notes: (ApplicantsService: ApplicantsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ApplicantsService.getChild($stateParams['id'], 'notes', {sortfield: 'date', sortorder: 'DESC'}); } },\r\n applicationStatusHistories: (ApplicantStatusHistoryService: ApplicantStatusHistoryService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ApplicantStatusHistoryService.getPerApplicant($stateParams['id']); } },\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n preferredTargetAudiences: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n },\r\n users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); },\r\n },\r\n views: {\r\n \"main\": 'applicantsItemComponent'\r\n }\r\n};\r\n\r\nexport const applicantsArchiveItemState: aboTheme.IState = {\r\n name: \"hr.applicants.archiveitem\",\r\n url: \"/archive/:id\",\r\n params: {\r\n \"tab\": null,\r\n \"archive\": true\r\n },\r\n resolve: {\r\n applicant: (ApplicantsService: ApplicantsService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ApplicantsService.get($stateParams['id']); } },\r\n notes: (ApplicantsService: ApplicantsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ApplicantsService.getChild($stateParams['id'], 'notes', {sortfield: 'date', sortorder: 'DESC'}); } },\r\n applicationStatusHistories: (ApplicantStatusHistoryService: ApplicantStatusHistoryService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ApplicantStatusHistoryService.getPerApplicant($stateParams['id']); } },\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n preferredTargetAudiences: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n },\r\n users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); },\r\n },\r\n views: {\r\n \"main\": 'applicantsItemComponent'\r\n }\r\n};\r\n\r\nexport const applicantsItemBasicState: aboTheme.IState = {\r\n\r\n name: \"hr.applicants.item.basic\",\r\n url: \"/basic\",\r\n params: {\r\n \"tab\": null\r\n },\r\n modal: ['applicant', 'users'],\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n preferredTargetAudiences: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n },\r\n \r\n },\r\n component: 'applicantsItemBasicComponent'\r\n\r\n};\r\n\r\nexport const applicantsArchiveItemBasicState: aboTheme.IState = {\r\n\r\n name: \"hr.applicants.archiveitem.basic\",\r\n url: \"/basic\",\r\n params: {\r\n \"tab\": null,\r\n \"archive\": true\r\n },\r\n modal: ['applicant', 'users'],\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n preferredTargetAudiences: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('PreferredTargetAudience');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n },\r\n \r\n },\r\n component: 'applicantsItemBasicComponent'\r\n\r\n};\r\n\r\n\r\nexport const applicantsItemEmployeeState: aboTheme.IState = {\r\n\r\n name: \"hr.applicants.item.employee\",\r\n url: \"/employee\",\r\n params: {\r\n \"tab\": null\r\n },\r\n modal: ['applicant'],\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Functions');\r\n },\r\n applicationStatuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('ApplicationStatus');\r\n }\r\n },\r\n component: 'applicantsItemEmployeeComponent'\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/hr.states.ts","import { ShiftService, EmployeesService, AccountsService } from '../../services';\r\nimport * as moment from 'moment';\r\nexport const shiftState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"shifts\",\r\n url: \"/shifts\",\r\n component: 'shiftComponent',\r\n redirectTo: 'shifts.list',\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const shiftCalendarState: aboTheme.IState = {\r\n\r\n name: \"shifts.calendar\",\r\n url: \"/calendar\",\r\n views: {\r\n \"main\": 'shiftCalendarComponent'\r\n }\r\n};\r\n\r\nexport const shiftItemState = {\r\n\r\n name: \"shifts.calendar.item\",\r\n url: \"/item/:id\",\r\n modal: true,\r\n size: \"lg\",\r\n component: 'shiftItemComponent',\r\n resolve: {\r\n shift: (ShiftService: ShiftService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n },\r\n functions : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n accounts : (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); },\r\n employees : (EmployeesService: EmployeesService) => { \"ngInject\"; return EmployeesService.getEmployeesByStatus(); },\r\n statuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); }\r\n }\r\n};\r\n\r\nexport const shiftListState: aboTheme.IState = {\r\n name: \"shifts.list\",\r\n url: \"/list?:start&:end&:refreshShift\",\r\n params: {\r\n \"start\" : { dynamic: true } ,\r\n \"end\" : { dynamic: true },\r\n \"refreshShift\" : { dynamic: true } \r\n },\r\n views: {\r\n \"main\": 'shiftListComponent'\r\n },\r\n resolve: {\r\n functions : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n statuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); },\r\n employees : (EmployeesService: EmployeesService, PermPermissionStore: ng.permission.PermissionStore) => { \r\n \"ngInject\"; return EmployeesService.getEmployeesByStatus(); \r\n },\r\n accounts : (AccountsService: AccountsService ) => { \"ngInject\"; return AccountsService.all(); },\r\n },\r\n data: {\r\n contentClasses: 'no-padding'\r\n }\r\n};\r\n\r\nexport const shiftListItemState = {\r\n name: \"shifts.list.item\",\r\n url: \"/item/:id\",\r\n resolve: {\r\n shift: (ShiftService: ShiftService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n },\r\n },\r\n views: {\r\n \"shiflistitem@shifts.list\": 'shiftListItemComponent'\r\n },\r\n};\r\n\r\nexport const shiftListSubscriptionsModalState = {\r\n name: \"shifts.list.subscriptionsmodal\",\r\n url: \"/subscriptions/:id\",\r\n modal: true,\r\n size: \"lg\",\r\n component: 'subscriptionsModalComponent',\r\n resolve: {\r\n shift: (ShiftService: ShiftService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n },\r\n statuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); },\r\n functions : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); }\r\n }\r\n};\r\n\r\nexport const shiftListEmployeeState = {\r\n name: \"shifts.list.item.employee\",\r\n url: \"/employee\",\r\n params : {\r\n filter : null\r\n },\r\n resolve: {\r\n\r\n },\r\n views: {\r\n \"shiflistitem@shifts.list\": 'shiftListEmployeeComponent'\r\n },\r\n};\r\n\r\nexport const checkAvailabilityState = {\r\n\r\n name: \"shifts.list.checkAvailability\",\r\n url: \"/checkAvailability\",\r\n modal: true,\r\n component: 'checkAvailabilityModalComponent',\r\n size: \"huge\",\r\n resolve: {\r\n functions : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n accounts : (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); }\r\n }\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.states.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class IAgreement extends BaseEntity {\r\n dateTimeFrom: any;\r\n dateTimeTo: any;\r\n accountId: string;\r\n employeeId: string;\r\n employeeDisplayName: string;\r\n grossHourlyWageValue: number;\r\n calculationIndex: number;\r\n salaryScaleId: string;\r\n}\r\n\r\n\r\nexport class AgreementService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/AccountAgreements');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/agreements.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\nimport { IEmployee } from '.';\r\n\r\n\r\nexport class ICootjeEmployee extends BaseEntity {\r\n employeeId: string;\r\n employee: IEmployee;\r\n diensten: ICootjeDienst[];\r\n}\r\n\r\nexport class ICootjeDienst extends BaseEntity {\r\n dienstId: string;\r\n professionalName: string;\r\n pOnummerGUID: string;\r\n boekinscodeGUID: string;\r\n factuurnummer: string;\r\n datumDienst: string;\r\n aantalUren: number;\r\n whiteLabelName: string;\r\n}\r\n\r\nexport class CootjeService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'finance/cootje');\r\n }\r\n\r\n public sendToCootje(diensten): ng.IPromise {\r\n return this.Restangular.all(this.itemName).one('sendToCootje').customPOST(diensten).then((item) => {\r\n return item;\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/cootje.service.ts","import { IShift } from './';\r\nimport { BaseService, IGetList } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseEntity } from '../base/base.entity';\r\nimport * as angular from 'angular';\r\n\r\nexport class IEmployeeSkill extends BaseEntity {\r\n employeeId: string\r\n skillId: string;\r\n skillName: string;\r\n start: any;\r\n end: any;\r\n documentOfProofId: string;\r\n comment: string;\r\n}\r\n\r\nexport class IBlob {\r\n filenameWithExtention: string\r\n}\r\n\r\nexport class EmployeeSkillsService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'hr/employeeSkill');\r\n }\r\n\r\n public postBlob(id, file: any): ng.IPromise {\r\n\r\n // Create FormData to send in the request\r\n var formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n return this.Restangular.one('hr/employeeSkill', id)\r\n .withHttpConfig({ transformRequest: angular.identity })\r\n .customPOST(formData, 'blobs', undefined, { 'Content-Type': undefined })\r\n .then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n this.item = item.plain();\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n\r\n public getBlobs(id): ng.IPromise> {\r\n return this.Restangular.one('hr/employeeSkill', id).all('blobs').customGET('').then((collection: Restangular.ICollection) => {\r\n return collection.plain();\r\n })\r\n }\r\n\r\n public getBlob(id, blobid): ng.IPromise {\r\n this.Restangular.setFullResponse(true);\r\n return this.Restangular.one('hr/employeeSkill', id).one('blobs', blobid).customGET('').then((response) => {\r\n return new Blob([response.data], { type: response.headers('Content-Type') });\r\n })\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/employeeSkills.service.ts","import { ITeam } from './team.service';\r\nimport { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class ILocation extends BaseEntity {\r\n name: string;\r\n street?: string;\r\n number?: string;\r\n zip?: string;\r\n city?: string;\r\n customerId?: number;\r\n accountId: string;\r\n teams: ITeam[];\r\n}\r\n\r\nexport class LocationService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/locations');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/location.service.ts","import { BaseService, IGetList } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class INewsItem {\r\n id: string;\r\n title: string;\r\n text: string;\r\n newsItemTypeList: string[];\r\n createdDate: any;\r\n expireDate: any;\r\n}\r\n\r\nexport class NewsService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'newsItem');\r\n }\r\n\r\n public getUnread = (): ng.IPromise> => {\r\n return this.Restangular.all(this.itemName).customGET('unread', {}).then((response: Restangular.ICollection) => {\r\n return this.getListLoaded(response.plain());\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/news.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class IPerson extends BaseEntity {\r\n name: string;\r\n}\r\n\r\nexport class PersonService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'person');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/person.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class ITeam extends BaseEntity {\r\n name: string;\r\n locationId: string;\r\n teamContacts: any;\r\n}\r\n\r\nexport class TeamService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'team');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/team.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\nexport class ITimezone {\r\n id?: any;\r\n from: any;\r\n till: any;\r\n percentage: number;\r\n amount: number;\r\n priority: number;\r\n dayOfWeek: number;\r\n fixedDate: boolean;\r\n fixedDateWithoutYear: boolean;\r\n}\r\n\r\nexport class TimezonesService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'timezone');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/timezone.service.ts","import { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\nexport class TwinfieldService extends BaseService {\r\n\r\n /** Constructor */\r\n\r\n constructor(\r\n protected Restangular: Restangular.IService,\r\n protected AppService: AppService,\r\n private localStorageService: ng.local.storage.ILocalStorageService\r\n ){\r\n \"ngInject\";\r\n super(Restangular, AppService, 'twinfield');\r\n }\r\n\r\n /**\r\n * Check if Twinfield API token in APIis still valid.\r\n *\r\n * @return {void}\r\n */\r\n\r\n public verifyToken = () => {\r\n\r\n return this.Restangular.one( 'twinfield' ).withHttpConfig({cache: false}).customGET( '' ); }\r\n\r\n /**\r\n * Set Twinfield API token with oAuth2 code\r\n *\r\n * @return {void}\r\n */\r\n\r\n public setToken = (code) => {\r\n\r\n return this.Restangular.one( 'twinfield' ).withHttpConfig({cache: false}).customGET( code, {\r\n \r\n redirectUrl: window.location.protocol + '//' + window.location.host + '/app/twinfield' }); }\r\n\r\n /**\r\n * Set redirect URL for\r\n *\r\n * @return {void}\r\n */\r\n \r\n public setTwinfieldRedirectUri = () => {\r\n\r\n /** Log */\r\n\r\n console.log( 'twinfieldRedirect: ' + window.location.pathname + window.location.search );\r\n\r\n /** Set URI */\r\n\r\n this.localStorageService.set( 'twinfieldRedirect', window.location.pathname + window.location.search ); }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/twinfield.service.ts","angular.module('gettext').run(['gettextCatalog', function (gettextCatalog) {\n/* jshint -W100 */\n gettextCatalog.setStrings('nl_NL', {\"A password has to have at least 8 characters with minimal one uppercase, number and non alphanumeric character\":\"Een wachtwoord moet minimaal een hoofdletter, een nummer en een niet-alfanumeriek karakter bevatten\",\"Account\":\"Account\",\"Account notes\":\"Notities\",\"Account/Employee/Applicant\":\"Bedrijf/Medewerker/Sollicitant\",\"Account:\":\"Account:\",\"Accounts\":\"Accounts\",\"Actions\":\"Acties\",\"Add Account\":\"Account toevoegen\",\"Add Applicant\":\"Sollicitant toevoegen\",\"First Status\":\"Eerste Status\",\"Last Status\":\"Laatste Status\",\"Add Contact\":\"Contact toevoegen\",\"Add Contact Person\":\"Contactpersoon toevoegen\",\"Add Employee\":\"Medewerker toevoegen\",\"Add Lead\":\"Lead toevoegen\",\"Add News Item\":\"Nieuws item toevoegen\",\"Add Shift\":\"Dienst toevoegen\",\"Add Task\":\"Taak toevoegen\",\"Add User\":\"Gebruiker toevoegen\",\"Add agreement\":\"Overeenkomst toevoegen\",\"Add availability\":\"Beschikbaarheid toevoegen\",\"Add employee\":\"Medewerker toevoegen\",\"Add location\":\"Locatie toevoegen\",\"Add note\":\"Notitie toevoegen\",\"Add reminder interval\":\"Herinnerings interval toevoegen\",\"Add salary scale\":\"Salarisschaal toevoegen\",\"Add skill\":\"Vaardigheid toevoegen\",\"Add timezone\":\"Tijdslot toevoegen\",\"Address\":\"Adres\",\"Address:\":\"Adres:\",\"Age\":\"Leeftijd\",\"Age:\":\"Leeftijd:\",\"Agreement\":\"Overeenkomst\",\"Agreements\":\"Overeenkomsten\",\"Ammount\":\"Hoeveelheid\",\"Amount\":\"Per uur\",\"Amount of hours\":\"Aantal uur\",\"Amount:\":\"Per uur:\",\"Applicant basic information\":\"Sollicitant informatie\",\"Applicants\":\"Sollicitanten\",\"Apply\":\"Uitvoeren\",\"Approved\":\"Goedgekeurd\",\"Archive\":\"Archief\",\"Assign\":\"Medewerker toewijzen\",\"Auth Settings\":\"Authorisatie Instellingen\",\"Availability\":\"Beschikbaarheid\",\"Available\":\"Beschikbaar\",\"BIC:\":\"BIC:\",\"BSN\":\"BSN\",\"BSN:\":\"BSN:\",\"Back\":\"Terug\",\"Bank Account Number\":\"Bankrekeningnummer\",\"Bank account\":\"Bankrekeningnummer\",\"Basic info\":\"Basis info\",\"Birthday\":\"Verjaardag\",\"Birthday:\":\"Verjaardag:\",\"Calculation index\":\"Omrekenfactor\",\"Calendar\":\"Kalender\",\"Cancel\":\"Annuleren\",\"Chamber Of Commerce Number\":\"KvK nummer\",\"Chamber of Commerce Number\":\"KvK nummer\",\"Check availability\":\"Beschikbaarheid controleren\",\"Logout\":\"Uitloggen\",\"City\":\"Stad\",\"City:\":\"Stad:\",\"Claims\":\"Claims\",\"Close\":\"Sluiten\",\"Code\":\"Code\",\"Code:\":\"RVA Code:\",\"Comment\":\"Opmerking\",\"Comment customer\":\"Opmerking klant\",\"Comment employee\":\"Opmerking medewerker\",\"Comment internal\":\"Opmerking intern\",\"Comment:\":\"Opmerking:\",\"Company\":\"Bedrijf\",\"Company Name\":\"Bedrijfsnaam\",\"Company basic information\":\"Bedrijfsinformatie\",\"Company contact information\":\"Contact\",\"Company financial information\":\"Financieel\",\"Confirm password\":\"Wachtwoord bevestigen\",\"Conflicting shift:\":\"Overlappende dienst:\",\"Contact\":\"Contact\",\"Contact Persons\":\"Contactpersonen\",\"Contact basic information\":\"Contact\",\"Contact:\":\"Contact:\",\"Contacts\":\"Contacten\",\"Contract\":\"Contract\",\"Contract ID:\":\"Contact:\",\"Count\":\"Hoeveelheid\",\"Country\":\"Land\",\"Country of birth:\":\"Geboorteland:\",\"Country:\":\"Land:\",\"Create account\":\"Account maken\",\"Create employee\":\"Medewerker aanmaken\",\"Create task\":\"Taak maken\",\"Created by me\":\"Aangemaakt door mij\",\"Creation date:\":\"Vervaldatum:\",\"Customer reference\":\"Klant referentie\",\"Date\":\"Datum\",\"Date:\":\"Datum:\",\"Declarations\":\"Declaraties\",\"Declarations count\":\"Aantal declaraties\",\"Declared hours sum\":\"Totaal gedeclareerde uren\",\"Declared:\":\"Gedeclareerd:\",\"Delete\":\"Verwijderen\",\"Delete account\":\"Account verwijderen\",\"Delete applicant\":\"Sollicitant verwijderen\",\"Delete contact\":\"Contact verwijderen\",\"Delete employee\":\"Medewerker verwijderen\",\"Delete task\":\"Taak verwijderen\",\"Delete timezone\":\"Medewerker verwijderen\",\"Delete user\":\"Verwijder gebruiker\",\"Delivery day\":\"Bezorgdag\",\"Description\":\"Beschrijving\",\"Description:\":\"Beschrijving:\",\"Display name:\":\"Naam:\",\"Distance\":\"Afstand\",\"Distance:\":\"Afstand:\",\"Document of proof\":\"Bewijs document\",\"Edit\":\"Bewerken\",\"Edit task\":\"Taak bewerken\",\"Email\":\"Email\",\"Email Address\":\"Emailadres\",\"Email employee\":\"Email Medewerkers\",\"Email team\":\"Email team\",\"Email:\":\"Email:\",\"Employee\":\"Medewerkers\",\"Employee basic information\":\"Medewerker\",\"Employee selector\":\"Medewerker selecteren\",\"Employee:\":\"Medewerker:\",\"Employees\":\"Medewerkers\",\"End\":\"Einde\",\"End Date\":\"Einddatum\",\"End date\":\"Einddatum\",\"Expenses declaration\":\"Onkosten declaratie\",\"Fax\":\"Fax\",\"Fax:\":\"Fax:\",\"Files\":\"Bestanden\",\"Status history\":\"Status geschiedenis\",\"Filter by function\":\"Filteren op functie\",\"Filter by max distance\":\"Filter op max. afstand\",\"Filter by status\":\"Filter op status\",\"Filter created by\":\"Aangemaakt door allen\",\"Filters\":\"Filters\",\"Financial\":\"Financieel\",\"First name\":\"Voornaam\",\"First name:\":\"Voornaam:\",\"From\":\"Van\",\"From:\":\"Van:\",\"Full Name\":\"Volledige naam\",\"Function\":\"Functie\",\"Function:\":\"Functie:\",\"Gender:\":\"Gesalcht:\",\"Get emails\":\"Emailadressen kopiëren\",\"Global filters\":\"Algemene filters\",\"Gross hourly wage\":\"Uurloon\",\"Herhaal wachtwoord\":\"Herhaal wachtwoord\",\"Hour code\":\"Uurcode\",\"HourCodeName:\":\"Naam:\",\"Hourly wage\":\"Uurloon\",\"Hours sum\":\"Totaal uren\",\"I know Operando from\":\"Kent Operando van\",\"I know Operando from:\":\"Kent Operando van:\",\"IBAN\":\"IBAN\",\"IBAN:\":\"IBAN:\",\"ID\":\"ID\",\"In progress\":\"Bezig\",\"Inactive\":\"Niet actief\",\"Invoices\":\"Facturen\",\"Job offer\":\"Vacature\",\"Job offer:\":\"Vacature:\",\"Kilometers\":\"Kilometers\",\"Last name\":\"Achternaam\",\"Last name:\":\"Achternaam:\",\"Last shifts:\":\"Laatste diensten:\",\"Leads\":\"Leads\",\"Leads information\":\"Leads\",\"LinkedIn\":\"LinkedIn\",\"List\":\"Lijst\",\"Location\":\"Locatie\",\"Location:\":\"Locatie:\",\"Locations\":\"Locaties\",\"Login URL\":\"Login URL\",\"Logout URL\":\"Logout URL\",\"Marital status:\":\"Huwelijkse staat:\",\"Middle name\":\"Tussenvoegsel\",\"Mileage\":\"Kilometers\",\"More\":\"Meer\",\"Name\":\"Naam\",\"Name and Address\":\"Naam en adres\",\"Name:\":\"Naam:\",\"New shift\":\"Shift toevoegen\",\"News\":\"Nieuws\",\"News item\":\"Nieuws item\",\"Next\":\"Volgende\",\"Nickname:\":\"Naam:\",\"Nmbrs\":\"Nmbrs\",\"NmbrsId:\":\"NmbrsId:\",\"No items found\":\"Geen items gevonden\",\"Note\":\"Notitie\",\"Notes\":\"Notities\",\"Notes:\":\"Notities:\",\"Notify employee\":\"Email medewerker\",\"Notify team\":\"Email team\",\"Number\":\"Nummer\",\"Number declared\":\"Aantal gedeclareerd\",\"Number of approved hours\":\"Totaal geaccordeerde uren\",\"Number of approved shifts\":\"Aantal geaccordeerde diensten\",\"Number of declared hours\":\"Totaal gedeclareerde uren\",\"Number of declared shifts\":\"Aantal gedeclareerde diensten\",\"Number of scheduled hours\":\"Totaal geplande uren\",\"Number of scheduled shifts\":\"Aantal geplande diensten\",\"Number of services\":\"Aantal diensten\",\"Opdrachtgever\":\"Opdrachtgever\",\"Open\":\"Open\",\"Overview\":\"Overzicht\",\"Password\":\"Wachtwoord\",\"Percentage\":\"Percentage\",\"Percentage:\":\"Percentage:\",\"Personal info\":\"Persoonlijke informatie\",\"Phone\":\"Telefoon\",\"Phone Number\":\"Telefoonnummer\",\"Phone:\":\"Telefoon:\",\"Planned:\":\"Ingepland:\",\"Post Address\":\"Postadres\",\"Post City\":\"Stad\",\"Post Country\":\"Land\",\"Post Number\":\"Nummer\",\"Post Street\":\"Straat\",\"Post Zip\":\"Postcode\",\"Postal code:\":\"Postcode:\",\"Preferred target audience\":\"Doelgroep\",\"Preferred target audience:\":\"Doelgroep\",\"Prev\":\"Vorige\",\"Previously at location\":\"Eerder op locatie geweest\",\"Previously at location:\":\"Eerder op locatie geweest:\",\"Priority\":\"Prioriteit\",\"Priority:\":\"Prioriteit:\",\"Pro forma invoices\":\"Pro forma facturen\",\"RVA Code\":\"RVA Code\",\"Recruiter\":\"Recruiter\",\"Recruiter:\":\"Recruiter\",\"Refresh all employees from NMBRS\":\"Herlaad alle medewerker uit NMBRS\",\"Refresh employee from NMBRS\":\"Herlaad medewerker uit NMBRS\",\"Rejected\":\"Geweigerd\",\"Reminder interval\":\"Herinnering interval\",\"Reset Password\":\"Wachtwoord aanpassen\",\"Reset all\":\"Reset alle filters\",\"Reset filter\":\"Reset alle filters\",\"Restore employee\":\"Medewerker terugzetten\",\"Roles\":\"Rollen\",\"SCA Code\":\"SCA Code\",\"Salary scale\":\"Salarisschaal\",\"Salary scale:\":\"Salarisschaal:\",\"Save\":\"Opslaan\",\"Save and copy\":\"Opslaan en kopiëren\",\"Save and new\":\"Opslaan en nieuwe\",\"Saved\":\"Opgeslagen\",\"Schedule\":\"Agenda\",\"Search\":\"Zoeken\",\"Select status\":\"Status selecteren\",\"Send to Nmbrs\":\"Verstuur naar Nmbrs\",\"Send to Twinfield\":\"Naar Twinfield versturen\",\"Server Settings\":\"Server instellingen\",\"Set employee\":\"Medewerker selecteren\",\"Set status\":\"Status selecteren\",\"Settings\":\"Instellingen\",\"Shift\":\"Dienst\",\"Shift data\":\"Dienst gegevens\",\"Shift subscriptions\":\"Inschrijving\",\"Shifts\":\"Diensten\",\"Shifts count\":\"Aantal diensten\",\"Sign up\":\"Aanmelden\",\"Skill\":\"Vaardigheid\",\"Skills\":\"Vaardigheden\",\"Social information\":\"Social informatie\",\"Start\":\"Start\",\"Start date:\":\"Start:\",\"Startdatum\":\"Startdatum\",\"Starttijd\":\"Starttijd\",\"Status\":\"Status\",\"Status:\":\"Status:\",\"Street\":\"Straat\",\"Subscribe\":\"Inschrijven\",\"Subscribed\":\"Ingeschreven\",\"Subscription\":\"Inschrijving\",\"Sync with Nmbrs\":\"Synchroniseer met Nmbrs\",\"Tags\":\"Kenmerken\",\"Tags:\":\"Kenmerken:\",\"Target audience\":\"Doelgroep\",\"Tasks\":\"Taken\",\"Team\":\"Team\",\"Team:\":\"Team:\",\"The text is too long. It should be max 1024 characters\":\"Tekst is te lang. Maximaal 1024 tekens\",\"This field is required\":\"Dit veld is verplicht\",\"Till\":\"Tot\",\"Till:\":\"Tot:\",\"Time\":\"Tijd\",\"Time declaration\":\"Uren declaratie\",\"Timesheets\":\"Urenregistratie\",\"Timezone basic information\":\"Tijdslot informatie\",\"Timezones\":\"Tijdslots\",\"Title\":\"Titel\",\"Total\":\"Totaal\",\"Total amount\":\"Totaal bedrag\",\"Transportation type\":\"Vervoersmiddel\",\"Transportation type:\":\"Vervoersmiddel:\",\"Twinfield ID\":\"Twinfield ID\",\"Twinfield Id\":\"Twinfield Id\",\"Twinfield amount\":\"Twinfield amount\",\"Type\":\"Type\",\"Type:\":\"Type:\",\"Unassign\":\"Medewerker verwijderen\",\"Unknown\":\"Onbekend\",\"Unsubscribe\":\"Uitschrijven\",\"Upload file\":\"Upload bestand\",\"User\":\"Gebruiker\",\"User-Account\":\"Gebruikersaccount\",\"User:\":\"Gebruiker:\",\"Username\":\"Gebruikersnaam\",\"Username:\":\"Gebruikersnaam:\",\"Users\":\"Gebruikers\",\"VAT Code\":\"BTW code\",\"VAT Number\":\"BTW nummer\",\"Website\":\"Website\",\"Website:\":\"Website:\",\"Wijzigen\":\"Wijzigen\",\"Work history\":\"Werkhistorie\",\"Your passwords did not match\":\"Uw wachtwoorden komen niet overeen\",\"Zip\":\"Postcode\",\"choose a status\":\"filter op status\",\"choose a tag\":\"filter op kenmerk\",\"hours\":\"uren\",\"km\":\"km\",\"locations\":\"locaties\",\"search\":\"zoeken\",\"teams\":\"teams\",\"times\":\"aantal keer\",\"to\":\"tot\",\"until\":\"tot\"});\n/* jshint +W100 */\n}]);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/translations/nl_NL.po\n// module id = 276\n// module chunks = 0","import { AuthService } from './services';\r\nimport { authorizedState, loginState, logoutState, unauthorizedState } from './auth.states';\r\nimport { loadNg1Module, ngmodule } from \"../bootstrap/ngmodule\";\r\nimport { login } from './login';\r\nimport { logout } from './logout';\r\nimport { authorized } from './authorized';\r\nimport { unauthorized } from './unauthorized';\r\nimport { authHookRunBlock } from './services/auth.hook';\r\n\r\nconst authorizationAppModule: aboTheme.INgModule = {\r\n components: {login, logout, authorized, unauthorized},\r\n states: [loginState, logoutState, authorizedState, unauthorizedState],\r\n services: { AuthService },\r\n runBlocks: [authHookRunBlock]\r\n};\r\n\r\nloadNg1Module(ngmodule, authorizationAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/index.ts","import { authSettingsUsersItemComponent } from './components/authsettings.usersItem.component';\r\nimport { authSettingsServerComponent } from './components/authsettings.server.component';\r\nimport { AuthUserService } from './services/authusers.service';\r\nimport { AuthSettingsApi } from './services/authsettings.factory';\r\nimport { authServiceRun } from './authsettings.run';\r\nimport { authSettingsUsersComponent } from './components/authsettings.users.component';\r\nimport { authSettingsComponent } from './components/authsettings.component';\r\nimport { resetPasswordComponent } from './components/resetPassword.component';\r\nimport {\r\n authSettingsServerState,\r\n authSettingsState,\r\n authSettingsUsersItemState,\r\n authSettingsUsersState\r\n} from './authsettings.states';\r\nimport { AuthSettingsService } from './services/authsettings.service';\r\n\r\nimport { loadNg1Module, ngmodule } from \"../bootstrap/ngmodule\";\r\n\r\nconst authSettingsAppModule: aboTheme.INgModule = {\r\n components: { authSettingsComponent, authSettingsUsersComponent, authSettingsServerComponent, authSettingsUsersItemComponent, resetPasswordComponent },\r\n states: [ authSettingsState, authSettingsUsersState, authSettingsServerState, authSettingsUsersItemState ],\r\n services: { AuthSettingsService, AuthUserService },\r\n runBlocks: [ authServiceRun ],\r\n factories: { AuthSettingsApi }\r\n};\r\n\r\nloadNg1Module(ngmodule, authSettingsAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/index.ts","import {loadNg1Module, ngmodule} from \"../bootstrap/ngmodule\";\r\n\r\nconst globalAppModule = {\r\n directives: {},\r\n services: {},\r\n runBlocks: []\r\n};\r\n\r\nloadNg1Module(ngmodule, globalAppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/global/index.ts","import { dateTimePickerComponent } from '../modules/shared/dateTimePicker.component';\r\nimport { fixedHeight } from '../directive/fixedHeight';\r\nimport { browserPageComponent } from './browser.page.component';\r\nimport { compareTo } from '../directive/compareTo';\r\nimport { passwordValidation } from '../directive/passwordValidation';\r\nimport { bytes } from '../filters/bytes.filter';\r\nimport { LocationService } from '../services/location.service';\r\nimport { AppService } from './app.service';\r\nimport {loadNg1Module, ngmodule} from '../bootstrap/ngmodule';\r\nimport {app} from './app.component';\r\nimport { appState, browserState } from './app.states';\r\nimport { config, html5ConfigBlock, otherwiseConfigBlock, themeConfigBlock, masterDataConfigBlock } from './app.config';\r\nimport {run} from'./app.run';\r\nimport { SettingsService, EnumService } from '../services';\r\nimport { operandoNavbar } from \"./navbar.component\";\r\nimport { chatPanelComponent } from \"./chatPanel.component\";\r\nimport { newsPanelComponent } from \"./newsPanel.component\";\r\nimport { file } from '../directive/file';\r\nimport { twinfieldComponent } from '../components/twinfield.component';\r\n\r\n/**\r\n * Setting main app module\r\n */\r\nconst mainAppModule: aboTheme.INgModule = {\r\n components: {app, operandoNavbar, chatPanelComponent, browserPageComponent, dateTimePickerComponent, newsPanelComponent, twinfieldComponent },\r\n states: [appState, browserState],\r\n configBlocks: [config, otherwiseConfigBlock, html5ConfigBlock, themeConfigBlock, masterDataConfigBlock],\r\n runBlocks: [run],\r\n services: {AppService, LocationService, SettingsService, EnumService},\r\n filters : {bytes},\r\n directives: {passwordValidation, compareTo, fixedHeight, file}\r\n};\r\n\r\nloadNg1Module(ngmodule, mainAppModule);\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/index.ts","import './dashboard';\r\nimport './crm';\r\nimport './hr';\r\nimport './settings';\r\nimport './timesheets';\r\nimport './quotations';\r\nimport './shifts';\r\nimport './schedule';\r\nimport './subscriptions';\r\nimport './skills';\r\nimport './customerShifts';\r\nimport './documentation';\r\nimport './tasks';\r\nimport './notes';\r\nimport './twinfield';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/index.ts","if (typeof Object.assign != 'function') {\r\n Object.assign = function(target, varArgs) { // .length of function is 2\r\n 'use strict';\r\n if (target == null) { // TypeError if undefined or null\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource != null) { // Skip over if undefined or null\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n };\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/assign.polyfill.js\n// module id = 299\n// module chunks = 0","var map = {\n\t\"./af\": 26,\n\t\"./af.js\": 26,\n\t\"./ar\": 33,\n\t\"./ar-dz\": 27,\n\t\"./ar-dz.js\": 27,\n\t\"./ar-kw\": 28,\n\t\"./ar-kw.js\": 28,\n\t\"./ar-ly\": 29,\n\t\"./ar-ly.js\": 29,\n\t\"./ar-ma\": 30,\n\t\"./ar-ma.js\": 30,\n\t\"./ar-sa\": 31,\n\t\"./ar-sa.js\": 31,\n\t\"./ar-tn\": 32,\n\t\"./ar-tn.js\": 32,\n\t\"./ar.js\": 33,\n\t\"./az\": 34,\n\t\"./az.js\": 34,\n\t\"./be\": 35,\n\t\"./be.js\": 35,\n\t\"./bg\": 36,\n\t\"./bg.js\": 36,\n\t\"./bn\": 37,\n\t\"./bn.js\": 37,\n\t\"./bo\": 38,\n\t\"./bo.js\": 38,\n\t\"./br\": 39,\n\t\"./br.js\": 39,\n\t\"./bs\": 40,\n\t\"./bs.js\": 40,\n\t\"./ca\": 41,\n\t\"./ca.js\": 41,\n\t\"./cs\": 42,\n\t\"./cs.js\": 42,\n\t\"./cv\": 43,\n\t\"./cv.js\": 43,\n\t\"./cy\": 44,\n\t\"./cy.js\": 44,\n\t\"./da\": 45,\n\t\"./da.js\": 45,\n\t\"./de\": 48,\n\t\"./de-at\": 46,\n\t\"./de-at.js\": 46,\n\t\"./de-ch\": 47,\n\t\"./de-ch.js\": 47,\n\t\"./de.js\": 48,\n\t\"./dv\": 49,\n\t\"./dv.js\": 49,\n\t\"./el\": 50,\n\t\"./el.js\": 50,\n\t\"./en-au\": 51,\n\t\"./en-au.js\": 51,\n\t\"./en-ca\": 52,\n\t\"./en-ca.js\": 52,\n\t\"./en-gb\": 53,\n\t\"./en-gb.js\": 53,\n\t\"./en-ie\": 54,\n\t\"./en-ie.js\": 54,\n\t\"./en-nz\": 55,\n\t\"./en-nz.js\": 55,\n\t\"./eo\": 56,\n\t\"./eo.js\": 56,\n\t\"./es\": 58,\n\t\"./es-do\": 57,\n\t\"./es-do.js\": 57,\n\t\"./es.js\": 58,\n\t\"./et\": 59,\n\t\"./et.js\": 59,\n\t\"./eu\": 60,\n\t\"./eu.js\": 60,\n\t\"./fa\": 61,\n\t\"./fa.js\": 61,\n\t\"./fi\": 62,\n\t\"./fi.js\": 62,\n\t\"./fo\": 63,\n\t\"./fo.js\": 63,\n\t\"./fr\": 66,\n\t\"./fr-ca\": 64,\n\t\"./fr-ca.js\": 64,\n\t\"./fr-ch\": 65,\n\t\"./fr-ch.js\": 65,\n\t\"./fr.js\": 66,\n\t\"./fy\": 67,\n\t\"./fy.js\": 67,\n\t\"./gd\": 68,\n\t\"./gd.js\": 68,\n\t\"./gl\": 69,\n\t\"./gl.js\": 69,\n\t\"./gom-latn\": 70,\n\t\"./gom-latn.js\": 70,\n\t\"./he\": 71,\n\t\"./he.js\": 71,\n\t\"./hi\": 72,\n\t\"./hi.js\": 72,\n\t\"./hr\": 73,\n\t\"./hr.js\": 73,\n\t\"./hu\": 74,\n\t\"./hu.js\": 74,\n\t\"./hy-am\": 75,\n\t\"./hy-am.js\": 75,\n\t\"./id\": 76,\n\t\"./id.js\": 76,\n\t\"./is\": 77,\n\t\"./is.js\": 77,\n\t\"./it\": 78,\n\t\"./it.js\": 78,\n\t\"./ja\": 79,\n\t\"./ja.js\": 79,\n\t\"./jv\": 80,\n\t\"./jv.js\": 80,\n\t\"./ka\": 81,\n\t\"./ka.js\": 81,\n\t\"./kk\": 82,\n\t\"./kk.js\": 82,\n\t\"./km\": 83,\n\t\"./km.js\": 83,\n\t\"./kn\": 84,\n\t\"./kn.js\": 84,\n\t\"./ko\": 85,\n\t\"./ko.js\": 85,\n\t\"./ky\": 86,\n\t\"./ky.js\": 86,\n\t\"./lb\": 87,\n\t\"./lb.js\": 87,\n\t\"./lo\": 88,\n\t\"./lo.js\": 88,\n\t\"./lt\": 89,\n\t\"./lt.js\": 89,\n\t\"./lv\": 90,\n\t\"./lv.js\": 90,\n\t\"./me\": 91,\n\t\"./me.js\": 91,\n\t\"./mi\": 92,\n\t\"./mi.js\": 92,\n\t\"./mk\": 93,\n\t\"./mk.js\": 93,\n\t\"./ml\": 94,\n\t\"./ml.js\": 94,\n\t\"./mr\": 95,\n\t\"./mr.js\": 95,\n\t\"./ms\": 97,\n\t\"./ms-my\": 96,\n\t\"./ms-my.js\": 96,\n\t\"./ms.js\": 97,\n\t\"./my\": 98,\n\t\"./my.js\": 98,\n\t\"./nb\": 99,\n\t\"./nb.js\": 99,\n\t\"./ne\": 100,\n\t\"./ne.js\": 100,\n\t\"./nl\": 102,\n\t\"./nl-be\": 101,\n\t\"./nl-be.js\": 101,\n\t\"./nl.js\": 102,\n\t\"./nn\": 103,\n\t\"./nn.js\": 103,\n\t\"./pa-in\": 104,\n\t\"./pa-in.js\": 104,\n\t\"./pl\": 105,\n\t\"./pl.js\": 105,\n\t\"./pt\": 107,\n\t\"./pt-br\": 106,\n\t\"./pt-br.js\": 106,\n\t\"./pt.js\": 107,\n\t\"./ro\": 108,\n\t\"./ro.js\": 108,\n\t\"./ru\": 109,\n\t\"./ru.js\": 109,\n\t\"./sd\": 110,\n\t\"./sd.js\": 110,\n\t\"./se\": 111,\n\t\"./se.js\": 111,\n\t\"./si\": 112,\n\t\"./si.js\": 112,\n\t\"./sk\": 113,\n\t\"./sk.js\": 113,\n\t\"./sl\": 114,\n\t\"./sl.js\": 114,\n\t\"./sq\": 115,\n\t\"./sq.js\": 115,\n\t\"./sr\": 117,\n\t\"./sr-cyrl\": 116,\n\t\"./sr-cyrl.js\": 116,\n\t\"./sr.js\": 117,\n\t\"./ss\": 118,\n\t\"./ss.js\": 118,\n\t\"./sv\": 119,\n\t\"./sv.js\": 119,\n\t\"./sw\": 120,\n\t\"./sw.js\": 120,\n\t\"./ta\": 121,\n\t\"./ta.js\": 121,\n\t\"./te\": 122,\n\t\"./te.js\": 122,\n\t\"./tet\": 123,\n\t\"./tet.js\": 123,\n\t\"./th\": 124,\n\t\"./th.js\": 124,\n\t\"./tl-ph\": 125,\n\t\"./tl-ph.js\": 125,\n\t\"./tlh\": 126,\n\t\"./tlh.js\": 126,\n\t\"./tr\": 127,\n\t\"./tr.js\": 127,\n\t\"./tzl\": 128,\n\t\"./tzl.js\": 128,\n\t\"./tzm\": 130,\n\t\"./tzm-latn\": 129,\n\t\"./tzm-latn.js\": 129,\n\t\"./tzm.js\": 130,\n\t\"./uk\": 131,\n\t\"./uk.js\": 131,\n\t\"./ur\": 132,\n\t\"./ur.js\": 132,\n\t\"./uz\": 134,\n\t\"./uz-latn\": 133,\n\t\"./uz-latn.js\": 133,\n\t\"./uz.js\": 134,\n\t\"./vi\": 135,\n\t\"./vi.js\": 135,\n\t\"./x-pseudo\": 136,\n\t\"./x-pseudo.js\": 136,\n\t\"./yo\": 137,\n\t\"./yo.js\": 137,\n\t\"./zh-cn\": 138,\n\t\"./zh-cn.js\": 138,\n\t\"./zh-hk\": 139,\n\t\"./zh-hk.js\": 139,\n\t\"./zh-tw\": 140,\n\t\"./zh-tw.js\": 140\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 301;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@abosol/theme/~/moment/locale ^\\.\\/.*$\n// module id = 301\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/beschikbaarheid1.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/beschikbaarheid1.jpg\n// module id = 352\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/beschikbaarheid3.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/beschikbaarheid3.jpg\n// module id = 353\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst.jpg\n// module id = 354\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst1.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst1.jpg\n// module id = 355\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst2.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst2.jpg\n// module id = 356\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst3.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst3.jpg\n// module id = 357\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst4.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst4.jpg\n// module id = 358\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst5.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst5.jpg\n// module id = 359\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/dienst6.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/dienst6.jpg\n// module id = 360\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/howtoinschrijven.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/howtoinschrijven.jpg\n// module id = 361\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/inschrijven3.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/inschrijven3.jpg\n// module id = 362\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren1.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren1.jpg\n// module id = 363\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren2.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren2.jpg\n// module id = 364\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren3.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren3.jpg\n// module id = 365\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren4.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren4.jpg\n// module id = 366\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren5.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren5.jpg\n// module id = 367\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren6.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren6.jpg\n// module id = 368\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/urendeclareren7.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/images/urendeclareren7.jpg\n// module id = 369\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/avatar.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/avatar.jpg\n// module id = 370\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/logo-dark.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/logo-dark.png\n// module id = 371\n// module chunks = 0","module.exports = __webpack_public_path__ + \"assets/logo-white.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/logo-white.png\n// module id = 372\n// module chunks = 0","module.exports = \"

Loading..

Returning back to application
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authorization/authorized/index.html\n// module id = 380\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authorization/login/index.html\n// module id = 381\n// module chunks = 0","module.exports = \"

Logging out...

\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authorization/logout/index.html\n// module id = 382\n// module chunks = 0","module.exports = \"

UnAuthorized

Back to home

\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authorization/unauthorized/index.html\n// module id = 383\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authsettings/components/authsettings.html\n// module id = 384\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authsettings/components/authsettings.server.html\n// module id = 385\n// module chunks = 0","module.exports = \"

ID Username Email
{{ item.id }} {{ item.userName }} {{ item.email }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authsettings/components/authsettings.users.html\n// module id = 386\n// module chunks = 0","module.exports = \"
This field is required
This field is required

{{index}} {{value}}

{{index}} {{value}}
This field is required
This field is required
This field is required
This field is required
Your passwords did not match
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authsettings/components/authsettings.usersItem.html\n// module id = 387\n// module chunks = 0","module.exports = \"
This field is required
This field is required
Your passwords did not match
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/authsettings/components/resetPassword.html\n// module id = 388\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/twinfield.html\n// module id = 389\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/main/app.html\n// module id = 390\n// module chunks = 0","module.exports = \"

Internet Explorer wordt niet ondersteund

Het ziet eruit dat u gebruik maakt van Internet Explorer. Op het moment ondersteund deze applicatie geen Internet Explorer.

Om gebruik te maken van de deze applicatie gebruik Chrome of Firefox.

Download Chrome

\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/main/browser.page.html\n// module id = 391\n// module chunks = 0","module.exports = \"
{{ item.teamLocationName }}
{{ item.teamName }}
{{ item.start | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date : \\\"HH:mm\\\" }} to {{ item.end | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ item.statusName }}
{{ item.employeeDisplayName }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/main/chatPanel.html\n// module id = 392\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/main/navbar.html\n// module id = 393\n// module chunks = 0","module.exports = \"
{{item.createdDate | date : 'dd-MM'}} {{ item.title }}
Nieuw Gelezen

{{ item.text }}


\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/main/newsPanel.html\n// module id = 394\n// module chunks = 0","module.exports = \"
Name and Address
This field is required
Contact
Financial
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/accountBasicInfoModal.html\n// module id = 395\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/accounts.html\n// module id = 396\n// module chunks = 0","module.exports = \"
  1. Accounts
  2. {{ $ctrl.account.name }}

{{ $ctrl.account.name }}

{{ type }}
Address
{{ $ctrl.account.visitingAddress.street }} {{ $ctrl.account.visitingAddress.number }} {{ $ctrl.account.visitingAddress.numberSuffix}}
{{ $ctrl.account.visitingAddress.zip }} {{$ctrl.account.visitingAddress.city}}
{{ $ctrl.account.visitingAddress.country}}

Phone
{{ $ctrl.account.phoneNumber }}
Fax
{{ $ctrl.account.faxNumber }}
Post Address
{{ $ctrl.account.mailingAddress.street }} {{ $ctrl.account.mailingAddress.number }} {{ $ctrl.account.malingAddress.numberSuffix}}
{{ $ctrl.account.mailingAddress.zip }} {{$ctrl.account.mailingAddress.city}}
{{ $ctrl.account.mailingAddress.country}}
Email
{{ $ctrl.account.emailAddress }}

IBAN
{{ $ctrl.account.iban }}
Bank Account Number
{{ $ctrl.account.bankAccountNumber}}
Chamber Of Commerce Number
{{ $ctrl.account.chamberOfCommerceNumber }}
VAT Number
{{ $ctrl.account.vatNumber }}
Twinfield ID
{{ $ctrl.account.twinfieldId }}

SCA Code
{{ $ctrl.account.scaCode }}
RVA Code
{{ $ctrl.account.rvaCode }}
Contact Persons
{{ item.firstName }} {{ item.lastName }}
Notes
Add note
Locations Agreements Employees Settings
Name Interval
{{item.name}} {{item.interval}}
    0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/accounts.item.html\n// module id = 397\n// module chunks = 0","module.exports = \"

{{ item.name }}

{{ type }}
{{item.visitingAddress.street}} {{item.visitingAddress.number}} {{item.vistingAddress.numberSuffix}}
{{item.visitingAddress.zip}} {{item.visitingAddress.city}}
Company Name Address
{{item.name}}
{{ type }}
{{ item.visitingAddress.street }} {{ item.visitingAddress.number }} {{ item.vistingAddress.numberSuffix }}
{{ item.visitingAddress.zip }} {{ item.visitingAddress.city }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/accounts.list.html\n// module id = 398\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/contactInfoModal.html\n// module id = 399\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/financialInfoModal.html\n// module id = 400\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/accounts/reminderIntervalModal.html\n// module id = 401\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/agreements/agreements.item.html\n// module id = 402\n// module chunks = 0","module.exports = \"
Start End Employee Salary scale Gross hourly wage Calculation index
{{item.dateTimeFrom | date : \\\"dd-MM-yyyy\\\"}} {{item.dateTimeTo | date : \\\"dd-MM-yyyy\\\"}} {{item.employeeDisplayName}} {{item.salaryScale.name}} {{item.grossHourlyWageValue | currency : \\\"€\\\" : 2 }} {{item.calculationIndex}}
    0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/agreements/agreements.list.html\n// module id = 403\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/contacts/contactBasicInfoModal.html\n// module id = 404\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/contacts/contactSocialModal.html\n// module id = 405\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/contacts/contacts.html\n// module id = 406\n// module chunks = 0","module.exports = \"

{{ $ctrl.fullName }}

{{$ctrl.contact.function}} {{$ctrl.account.name}} {{ tag }}
Phone
{{ $ctrl.contact.phoneNumber }}
Email
{{ $ctrl.contact.emailAddress }}
Location
{{ $ctrl.contact.locationName }}

Birthday
{{ $ctrl.contact.birthday | date:'fullDate' }}
User-Account
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/contacts/contacts.item.html\n// module id = 407\n// module chunks = 0","module.exports = \"
Full Name Email Phone Location
{{ item.name }}
{{item.function}} {{ item.accountName }} {{ tag }}
{{ item.emailAddress }} {{ item.phoneNumber }} {{ item.locationName }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/contacts/contacts.list.html\n// module id = 408\n// module chunks = 0","module.exports = \"

Accounts

Company
{{ item.name }}

Contacts

Contact Company
{{ item.firstName }} {{ item.lastName }} {{ item.accountName}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/crm.dashboard.html\n// module id = 409\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/crm.html\n// module id = 410\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/employees/employees.item.html\n// module id = 411\n// module chunks = 0","module.exports = \"
Name End
{{item.employeeDisplayName}} {{item.dateTimeTo | date : \\\"dd-MM-yyyy HH:mm\\\"}}
    0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/employees/employees.list.html\n// module id = 412\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/leads/leads.html\n// module id = 413\n// module chunks = 0","module.exports = \"
This field is required
This field is required
This field is required
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/leads/leads.item.html\n// module id = 414\n// module chunks = 0","module.exports = \"
Company Name Full Name Phone
{{item.name}} {{ item.firstName }} {{ item.middleName }} {{ item.lastName }} {{ item.phoneNumber }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/leads/leads.list.html\n// module id = 415\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/leads/leadsInfoModal.html\n// module id = 416\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/locations/locations.item.html\n// module id = 417\n// module chunks = 0","module.exports = \"
Name Address Teams
{{item.name}} {{ item.address.street }} {{ item.address.number }} {{ item.address.numberSuffix}}
{{ item.address.zip }} {{item.address.city}}
{{ item.address.country}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/locations/locations.list.html\n// module id = 418\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/notes/note.html\n// module id = 419\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/teams/teams.item.html\n// module id = 420\n// module chunks = 0","module.exports = \"
{{item.name}} {{item.teamContacts.length}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/crm/teams/teams.list.html\n// module id = 421\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/customerShifts/shift.calendar.html\n// module id = 422\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/customerShifts/shift.html\n// module id = 423\n// module chunks = 0","module.exports = \"

Beschikbare medewerkers

Name Status
{{ item.employeeDisplayName }} {{ item.status }}
More...
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/availableEmployees/dashboardAvailableEmployees.html\n// module id = 424\n// module chunks = 0","module.exports = \"

Verjaardagen

Eerst volgende 10 verjaardagen
{{employee.birthday | date : 'dd-MM'}}{{employee.displayName}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/dashboard.birthday.html\n// module id = 425\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/dashboard.html\n// module id = 426\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/dashboard.openshifts.html\n// module id = 427\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/dashboard.skills.html\n// module id = 428\n// module chunks = 0","module.exports = \"

Laatst toegevoegde nieuws



{{item.createdDate | date : 'dd-MM'}} {{item.title}}
{{$ctrl.getType(type)}}
{{item.text}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/news/dashboardNews.html\n// module id = 429\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/news/news.item.basic.html\n// module id = 430\n// module chunks = 0","module.exports = \"

Laatst toegevoegde notities

Account/Employee/Applicant Description
{{$ctrl.getNoteAuthorName(item)}} {{item.description}}
More...
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/notes/dashboardNotes.html\n// module id = 431\n// module chunks = 0","module.exports = \"

Openstaande taken

Description End date User
{{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }} {{ item.userName }}
More...
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/tasks/dashboardTasks.html\n// module id = 432\n// module chunks = 0","module.exports = \"

Totaal ingeplande uren

\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/dashboard/timesheetsSummary/dashboardTimesheetsSummary.html\n// module id = 433\n// module chunks = 0","module.exports = \"

Hoe schrijf ik in voor een dienst?

\\\"kies

Ga naar het menuitem 'inschrijven'.

  1. Kies een dienst waarvoor je je wil inschrijven.
  2. Verstuur een verzoek.

Hoe kan ik mijn beschikbaarheid aangeven?

Klik op de knop Beschikbaarheid toevoegen.

  1. Kies een start en einddatum en/of -tijd.
  2. Klik om het menu met de beschikbaarheidsopties uit te klappen.

Selecteer de optie die van toepassing is.

  1. Omschrijf de reden van het verzoek.
  2. Sla de aanvraag op.

Hoe maak ik zelf een dienst aan?

Klik op de knop Dienst toevoegen.

  1. Geef de start en eindtijd aan.

Geef aan in welke functie je gaat werken.

Geef aan voor wie je gaat werken.

Kies een Locatie.

Kies dan een Team.

  1. Schrijf een klantreferentie.
  2. Sla op met de knop opslaan voor een enkele dienst, opslaan en kopieren voor dezelfde dienst de volgende dag en opslaan en nieuwe om een nieuwe dienst aan te maken

Hoe declareer ik mijn uren?

Klik op een dienst in de agenda om naar het weekoverzicht te gaan.

Je wordt nu doorverwezen naar het weekoverzicht.

  1. Klik op de betreffende dienst.
  2. Klik op het icoontje met de klok.
  1. Bevestig of wijzig de start en eindtijd van de dienst.
  2. Schrijf eventueel een korte beschrijving in het geval van bijzonderheden.
  3. Klik op opslaan om de dienst te bevestigen.

In het geval van reiskosten en/of onkosten vergoeding.

Klik op het icoontje met de auto.

Klik op 'select an option'.

Kies de onkostenvergoeding die van toepassing is.

  1. In het geval van kilometervergoeding verschijnt er een veld voor het aantal gereden kilometers.
  2. Voer de beschrijving van de gemaakte onkosten in (verplicht in alle gevallen buiten kilometervergoeding).
  3. Verstuur het verzoek voor de onkostenvergoeding.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/documentation/documentation.html\n// module id = 434\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/applicants/applicants.html\n// module id = 435\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/applicants/applicants.item.basic.html\n// module id = 436\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/applicants/applicants.item.employee.html\n// module id = 437\n// module chunks = 0","module.exports = \"
Basic info
Name:
{{$ctrl.applicant.name}}
Email:
{{$ctrl.applicant.email}}
City:
{{$ctrl.applicant.city}}
Age:
{{$ctrl.applicant.age}}
Function:
{{$ctrl.applicant.functionName}}
Beschikbaar vanaf:
{{$ctrl.applicant.date | date : \\\"dd-MM-yyyy\\\"}}
Preferred target audience:
{{$ctrl.applicant.preferredTargetAudienceName}}
Notitie:
{{$ctrl.applicant.note}}
Job offer:
{{$ctrl.applicant.jobOffer}}
Email:
{{$ctrl.applicant.email}}
I know Operando from:
{{$ctrl.applicant.iKnowOperandoFrom}}
Status:
{{$ctrl.applicant.applicationStatusName}}
Recruiter:
{{$ctrl.applicant.userName}}
ZZP'er:
Ja Nee
Notes
Add note
Files
{{file.name}}
Status history
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/applicants/applicants.item.html\n// module id = 438\n// module chunks = 0","module.exports = \"
Name City Target audience Recruiter First Status Last Status Status
{{ item.name }}
{{ item.functionName }}
{{ item.city }} {{ item.preferredTargetAudienceName }} {{ item.userName }} {{ item.firstStatusDate | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.lastStatusDate | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.applicationStatusName }}
{{ item.name }}
{{ item.functionName }}
{{ item.city }} {{ item.preferredTargetAudienceName }} {{ item.userName }} {{ item.firstStatusDate | date : \\\"dd-MM-yyyy\\\" }} {{ item.lastStatusDate | date : \\\"dd-MM-yyyy\\\" }} {{ item.applicationStatusName }}
    0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/applicants/applicants.list.html\n// module id = 439\n// module chunks = 0","module.exports = \"
Startdatum Einddatum Starttijd Eindtijd Name Function Status Note
{{availability.start | date :\\\"dd-MM-yyyy\\\"}} {{availability.end | date :\\\"dd-MM-yyyy\\\"}} {{availability.start | date :\\\"HH:mm\\\"}} {{availability.end | date :\\\"HH:mm\\\"}} {{ availability.employeeDisplayName }} {{ availability.employeeFunctionName }} {{ availability.status }} {{ availability.title }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/availabilityList/availabilityList.html\n// module id = 440\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/availability/availability.calendar.html\n// module id = 441\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/availability/availability.item.html\n// module id = 442\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/employees/employees.html\n// module id = 443\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/employees/employees.item.basic.html\n// module id = 444\n// module chunks = 0","module.exports = \"
Basic info
Name:
{{$ctrl.employee.displayName}}
Tags:
{{ tag }}
Username:
{{$ctrl.employee.username}}
Email:
{{$ctrl.employee.emailPrivate}}
Phone:
{{$ctrl.employee.telephoneMobilePrivate}}
Address
{{ $ctrl.employee.homeAddress.street }} {{ $ctrl.employee.homeAddress.number }} {{ $ctrl.employee.homeAddress.numberSuffix}}
{{ $ctrl.employee.homeAddress.zip }} {{$ctrl.employee.homeAddress.city}}
{{ $ctrl.employee.homeAddress.country}}
BSN:
{{$ctrl.employee.bsn}}
Function:
{{$ctrl.employee.functionName}}
Salary scale:
{{$ctrl.employee.salaryScaleName}}
Transportation type:
{{$ctrl.employee.transportationTypeName}}
Notes:
{{$ctrl.employee.notes}}
0\\\">
NmbrsId:
{{$ctrl.employee.nmbrsId}}
0\\\">
Personeelsnummer:
{{$ctrl.employee.number}}
0\\\">
ZZP-nummer:
{{$ctrl.employee.zzpNumber}}
0\\\">
Maandelijks factureren:
{{$ctrl.employee.incoiceMonthly}}
0\\\">
GUID voor Cootje:
Selecteer de GUID en klik op CMD-C of CTRL-C
Work history Notes
Add note
Availability Skills User-Account 0\\\"> Nmbrs
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/employees/employees.item.html\n// module id = 445\n// module chunks = 0","module.exports = \"
Name Email Phone
{{ item.displayName }}
{{item.functionName}} {{ tag }}
{{ item.emailPrivate }} {{ item.telephoneMobilePrivate }} {{ item.nmbrsId ? 'Nmbrs' : 'ZZP' }}
    0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/employees/employees.list.html\n// module id = 446\n// module chunks = 0","module.exports = \"HrDashboard\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/hr.dashboard.html\n// module id = 447\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/hr.html\n// module id = 448\n// module chunks = 0","module.exports = \"
Personal info
Display name:
{{ $ctrl.nmbrsEmployee.displayName }}
First name:
{{ $ctrl.nmbrsEmployee.firstName }}
Last name:
{{ $ctrl.nmbrsEmployee.lastName }}
Nickname:
{{ $ctrl.nmbrsEmployee.nickname }}
Gender:
{{ $ctrl.nmbrsEmployee.gender }}
Country of birth:
{{ $ctrl.nmbrsEmployee.countryOfBirthISOCode }}
Marital status:
{{ $ctrl.nmbrsEmployee.burgerlijkeStaat }}
Phone:
{{ $ctrl.nmbrsEmployee.telephoneMobilePrivate }}
Email:
{{ $ctrl.nmbrsEmployee.emailPrivate }}
Naamstelling:
{{ $ctrl.nmbrsEmployee.naamstelling }}
Birthday:
{{ $ctrl.nmbrsEmployee.birthday }}
Address
Address:
{{ $ctrl.nmbrsEmployeeAddress.street }} {{ $ctrl.nmbrsEmployeeAddress.houseNumber }}
City:
{{ $ctrl.nmbrsEmployeeAddress.city }}
Postal code:
{{ $ctrl.nmbrsEmployeeAddress.postalCode }}
Country:
{{ $ctrl.nmbrsEmployeeAddress.countryISOCode }}
Bank account
IBAN:
{{ $ctrl.nmbrsEmployeeBankAccount.iban }}
BIC:
{{ $ctrl.nmbrsEmployeeBankAccount.bic }}
Type:
{{ $ctrl.nmbrsEmployeeBankAccount.type }}
Contract
Contract ID:
{{ $ctrl.nmbrsEmployeeContract.contractID }}
Creation date:
{{ $ctrl.nmbrsEmployeeContract.creationDate | date : \\\"dd-MM-yyyy\\\" }}
Start date:
{{ $ctrl.nmbrsEmployeeContract.startDate | date : \\\"dd-MM-yyyy\\\" }}
Indefinite:
{{ $ctrl.nmbrsEmployeeContract.indefinite }}
Function
Code:
{{ $ctrl.nmbrsEmployeeFunction.code }}
{{$ctrl.function}}
Description:
{{ $ctrl.nmbrsEmployeeFunction.description }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/nmbrs/nmbrs.html\n// module id = 449\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/shifts/shifts.item.html\n// module id = 450\n// module chunks = 0","module.exports = \"
{{ account.accountName }} - {{ account.locationCount }} locations
Shifts count:
{{ account.shiftCount }}
Hours sum:
{{ account.shiftSum | number : 2 }} hours
Declarations count:
{{ account.declarationCount }}
Declared hours sum:
{{ account.declarationSum | number : 2 }} hours
{{ location.locationName }} - {{ location.teamCount }} teams
{{ team.teamName }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/shifts/shifts.list.html\n// module id = 451\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/skills/skills.item.html\n// module id = 452\n// module chunks = 0","module.exports = \"
Name Start End
{{item.skillName}} {{item.start | date : \\\"dd-MM-yyyy\\\"}} {{item.end | date : \\\"dd-MM-yyyy\\\"}}
    0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/hr/skills/skills.list.html\n// module id = 453\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/notes/note.html\n// module id = 454\n// module chunks = 0","module.exports = \"
Bedrijf/Medewerker Description Date Tags
{{ $ctrl.getNoteAuthorName(item) }} {{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }}
{{ tag }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/notes/note.list.html\n// module id = 455\n// module chunks = 0","module.exports = \"

{{ $ctrl.invoice.description }}

{{ $ctrl.invoice.totalAmount | currency : \\\"€\\\": 2 }}

{{$ctrl.invoice.account.name}}
{{$ctrl.invoice.account.visitingAddress.street}} {{$ctrl.invoice.account.visitingAddress.number}} {{$ctrl.invoice.account.vistingAddress.numberSuffix}}
{{$ctrl.invoice.account.visitingAddress.zip}} {{$ctrl.invoice.account.visitingAddress.city}}
Description
Count
Amount
Total
0 && (item.amountPerUnit == 0 || item.totalAmount == 0))}\\\">
{{ item.description }}
{{ item.count }}
{{ item.amountPerUnit | currency : \\\"€\\\": 2 }}
{{ item.totalAmount | currency : \\\"€\\\": 2 }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/quotations/invoiceDetails.html\n// module id = 456\n// module chunks = 0","module.exports = \"
  1. Uren doorsturen naar cootje
0\\\">
{{ item.employee.displayName}}
Aantal diensten: {{ item.numberOfDiensten }}, Aantal declaraties: {{ item.numberOfDeclarations }}, Aantal uren: {{ item.numberOfHours }}, Aantal uren verstuurd: {{ item.numberOfHoursSend }}
Verstuurd

{{ $ctrl.currentItem.employee.displayName }}

{{ dienst.shift.start | date : \\\"HH:mm dd-MM-yyyy\\\" }} - {{ dienst.shift.teamLocationAccountName }} - {{ dienst.shift.teamLocationName }} - {{ dienst.shift.teamName }}

Declaraties:

{{declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\"}} - {{declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\"}} - Aantal uren: {{declaration.duration}} - Factuurnummer: {{declaration.zzpInvoiceNumber}}
{{declaration.wageCodeName}}: {{declaration.value}} - Factuurnummer: {{declaration.zzpInvoiceNumber}}
{{declaration.errorCootje}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/quotations/quotations.cootje.html\n// module id = 457\n// module chunks = 0","module.exports = \"
  1. Invoices Pro forma invoices

Count: {{ $ctrl.invoices.length || 0 }} -- Total amount: {{ $ctrl.invoicesTotalAmount || 0 | currency : \\\"€\\\": 2 }} -- Twinfield amount: {{ $ctrl.twinfieldTotalAmount || 0 | currency : \\\"€\\\": 2 }}

0\\\">
{{ item.totalAmount | currency : \\\"€\\\": 2 }}
{{ item.account.name }}
{{ item.description }}
Saved Twinfield - {{item.twinfieldNumber}} Unpaid
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/quotations/quotations.dashboard.html\n// module id = 458\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/quotations/quotations.html\n// module id = 459\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/schedule/schedule.calendar.html\n// module id = 460\n// module chunks = 0","module.exports = \"
0\\\">
0\\\">
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/schedule/schedule.declaration.html\n// module id = 461\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/schedule/schedule.html\n// module id = 462\n// module chunks = 0","module.exports = \"

{{ $ctrl.shift.teamLocationAccountName }} - {{ $ctrl.shift.teamLocationName }} - {{ $ctrl.shift.teamName }}

Opdrachtgever:
{{ $ctrl.shift.teamLocationAccountName }}
Location:
{{ $ctrl.shift.teamLocationName }}
Address:
{{ $ctrl.location.address.street }} {{ $ctrl.location.address.number }} {{ $ctrl.location.address.numberSuffix}}
{{ $ctrl.location.address.zip }} {{$ctrl.location.address.city}}
{{ $ctrl.location.address.country}}
Team:
{{ $ctrl.shift.teamName }}
Time:
{{ $ctrl.shift.start | date :\\\"dd-MM-yyyy HH:mm\\\" }} - {{ $ctrl.shift.end | date :\\\"dd-MM-yyyy HH:mm\\\" }}
Comment:

{{ $ctrl.shift.employeeComment }}


Edit
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/schedule/schedule.item.html\n// module id = 463\n// module chunks = 0","module.exports = \"
{{ key }}
{{ item.teamLocationAccountName }} - {{ item.teamLocationName }} - {{ item.teamName }}
0\\\" ng-class=\\\"item.declarationStatus == 3 ? 'label-success' : 'label-warning'\\\">Gedeclareerd Ingevuld Voorstel Geannuleerd
{{ item.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date :\\\"HH:mm\\\" }} to {{ item.end | date :\\\"HH:mm dd-MM-yyyy\\\" }}
{{ item.employeeDisplayName }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/schedule/schedule.list.html\n// module id = 464\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/schedule/subscription.html\n// module id = 465\n// module chunks = 0","module.exports = \"

\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/company/settings.company.html\n// module id = 466\n// module chunks = 0","module.exports = \"

\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/employee/employee.item.html\n// module id = 467\n// module chunks = 0","module.exports = \"
Name
{{item.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/employee/employee.list.html\n// module id = 468\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/salaryScales/salaryScale.dialog.html\n// module id = 469\n// module chunks = 0","module.exports = \"
Code Name Description Hourly wage Conversion factor
{{ item.code }} {{ item.name }} {{ item.description }} {{ item.value }} {{ item.value2 }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/salaryScales/salaryScale.list.html\n// module id = 470\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/staff/staff.html\n// module id = 471\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/staff/staff.item.html\n// module id = 472\n// module chunks = 0","module.exports = \"
Name
{{item.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/staff/staff.list.html\n// module id = 473\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/templates/templatesEditor.html\n// module id = 474\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/timezones/timezones.html\n// module id = 475\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/timezones/timezones.item.basic.html\n// module id = 476\n// module chunks = 0","module.exports = \"
  1. Timezones
  2. {{ $ctrl.timezone.name }}
Basic info
Van {{$ctrl.timezone.from | date : \\\"dd-MM HH:mm\\\"}} tot {{$ctrl.timezone.till | date : \\\"dd-MM HH:mm\\\"}}
HourCodeName:
{{$ctrl.timezone.hourCodeName}}
Percentage:
{{$ctrl.timezone.percentage}}
Amount:
{{$ctrl.timezone.amount}}
Priority:
{{$ctrl.timezone.priority}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/timezones/timezones.item.html\n// module id = 477\n// module chunks = 0","module.exports = \"
From Till Hour code Percentage
{{ item.from | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.from | date : \\\"dd-MM HH:mm\\\" }} {{ item.dayOfWeek != null ? $ctrl.weekDays[item.dayOfWeek] : 'Elke dag'}} - {{ item.from | date : \\\"HH:mm\\\" }} {{ item.till | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ item.till | date : \\\"dd-MM HH:mm\\\" }} {{ item.dayOfWeek != null ? $ctrl.weekDays[item.dayOfWeek] : 'Elke dag'}} - {{ item.till | date : \\\"HH:mm\\\" }} {{ item.hourCodeName }} {{ item.percentage }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/settings/timezones/timezones.list.html\n// module id = 478\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shared/dateTimePicker.html\n// module id = 479\n// module chunks = 0","module.exports = \"
0\\\">
{{ item[$ctrl.setFields.description] }}
{{ tag }}
{{ item[$ctrl.setFields.date] | date : \\\"dd-MM-yyyy HH:mm\\\" }} until {{ item[$ctrl.setFields.endDate] | date : \\\"dd-MM-yyyy\\\" }}
No items found
$ctrl.itemsPerPage\\\">
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shared/list.html\n// module id = 480\n// module chunks = 0","module.exports = \"
    0)\\\">

    Queue length: {{ $ctrl.uploader.queue.length }}

    Name Size Progress Status Actions
    {{item.file.name}} {{item.file.size | bytes}}

    Queue progress:

    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shared/uploader.html\n// module id = 481\n// module chunks = 0","module.exports = \"
    This field is required
    A password has to have at least 8 characters with minimal one uppercase, number and non alphanumeric character
    This field is required
    Your passwords did not match
    {{ $ctrl.employee.displayName }} heeft een gebruikersaccount met gebruikersnaam {{ $ctrl.userAccount.userName }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shared/user-account/user-account.html\n// module id = 482\n// module chunks = 0","module.exports = \"
    0\\\">
    Account notes
    {{ note.description }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/checkAvailabilityModal.html\n// module id = 483\n// module chunks = 0","module.exports = \"
    Global filters
    Function
    Kilometers
    0\\\">
    {{ employeeSummary.employee.name }}
    {{ employeeSummary.employee.function }} 
    {{ employeeSummary.availability.name }}
    {{ employeeSummary.employee.kilometers | number:1 }} km
    Subscribed
    {{employeeSummary.subscription.comment}}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/employeePicker.html\n// module id = 484\n// module chunks = 0","module.exports = \"
    {{$ctrl.employeeSummary.employee.name}}
    {{$ctrl.employeeSummary.employee.function }}
    Subscribed
    {{$ctrl.employeeSummary.subscription.comment}}
    Status:
    {{ $ctrl.employeeSummary.availability.name }}Unknown
    Date:
    {{ $ctrl.employeeSummary.availability.from | date : \\\"dd-MM-yyyy HH:mm\\\" }} tot {{ $ctrl.employeeSummary.availability.till | date : \\\"dd-MM-yyyy HH:mm\\\" }}
    Conflicting shift:
    {{ $ctrl.employeeSummary.conflictingShift.name}}
    Date:
    {{ $ctrl.employeeSummary.conflictingShift.start | date : \\\"dd-MM-yyyy HH:mm\\\" }} tot {{ $ctrl.employeeSummary.conflictingShift.end | date : \\\"dd-MM-yyyy HH:mm\\\" }}
    Distance:
    {{ $ctrl.employeeSummary.employee.kilometers | number:1 }} km
    Previously at location:
    {{ $ctrl.employeeSummary.history.count }} times
    Last shifts:
    {{ date | date : \\\"dd-MM-yyyy\\\" }} ,
    0\\\">
    Notes:
    {{ value }}
    0\\\">
    Skills
    Name:
    {{ skill.name }}
    Comment:
    {{ skill.comment }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/employeeSummary.html\n// module id = 485\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/shift.calendar.html\n// module id = 486\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/shift.html\n// module id = 487\n// module chunks = 0","module.exports = \"
    This field is required
    This field is required
    This field is required
    This field is required
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/shift.item.html\n// module id = 488\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/shift.list.employee.html\n// module id = 489\n// module chunks = 0","module.exports = \"
    Filters
    Startdatum Starttijd Eindtijd Organisatie Location Team Status Employee Function
    {{item.start | date :\\\"dd-MM-yyyy\\\"}} {{item.start | date :\\\"HH:mm\\\"}} {{item.end | date :\\\"HH:mm\\\"}} {{ item.teamLocationAccountName }} {{ item.teamLocationName }} {{ item.teamName }} {{ item.statusName }} 0 ? 'subscribed' : ''\\\" ng-if=\\\"item.status && item.status==2\\\" ui-sref=\\\"shifts.list.subscriptionsmodal({'id': item.id})\\\">{{ item.statusName }} ({{ item.subscriptionsCount }}) {{item.employeeDisplayName}} {{ item.functionName }} Edit Open
    Loading...
    {{ key }}
    {{ item.teamLocationName }} - {{ item.teamName }}
    {{ item.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date :\\\"HH:mm\\\" }} to {{ item.end | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.statusName }} ({{ item.subscriptionsCount }})
    {{ item.employeeDisplayName }}
    List List Shift data
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/shift.list.html\n// module id = 490\n// module chunks = 0","module.exports = \"
    {{$ctrl.shift.teamLocationName}} - {{$ctrl.shift.teamName}}
    Aangemaakt door medewerker
    New shift

    5 && $ctrl.shift.id\\\">
    5 && $ctrl.shift.id\\\">
    This field is required
    This field is required
    This field is required
    This field is required
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/shift.list.item.html\n// module id = 491\n// module chunks = 0","module.exports = \"
    0\\\">Geen inschrijvingen gevonden! 0\\\">

    {{$ctrl.employee.displayName}}  

    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/shifts/subscriptionsModal.html\n// module id = 492\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/skills/skills.dashboard.html\n// module id = 493\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/skills/skills.html\n// module id = 494\n// module chunks = 0","module.exports = \"
    {{ key }}
    {{ item.teamLocationAccountName }} - {{ item.teamLocationName }} - {{ item.teamName }}
    0\\\" ng-class=\\\"item.declarationStatus == 3 ? 'label-success' : 'label-warning'\\\" translate>Subscribed
    {{ item.functionName }}
    {{ item.start | date :\\\"HH:mm dd-MM-yyyy\\\" }} {{ item.start | date :\\\"HH:mm\\\" }} to {{ item.end | date :\\\"HH:mm dd-MM-yyyy\\\" }}
    {{ item.employeeDisplayName }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/subscriptions/subscriptions.dashboard.html\n// module id = 495\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/subscriptions/subscriptions.html\n// module id = 496\n// module chunks = 0","module.exports = \"

    {{ $ctrl.shift.teamLocationName }} - {{ $ctrl.shift.teamName }}

    Location:
    {{ $ctrl.shift.teamLocationName }}
    Address:
    {{ $ctrl.location.address.street }} {{ $ctrl.location.address.number }} {{ $ctrl.location.address.numberSuffix}}
    {{ $ctrl.location.address.zip }} {{$ctrl.location.address.city}}
    {{ $ctrl.location.address.country}}
    Team:
    {{ $ctrl.shift.teamName }}
    {{ $ctrl.shift.teamDescription }}
    Time:
    {{ $ctrl.shift.start | date :\\\"dd-MM-yyyy HH:mm\\\" }} tot {{ $ctrl.shift.end | date :\\\"dd-MM-yyyy HH:mm\\\" }}
    Distance:
    {{ $ctrl.shift.distance | number : 1 }}km

    Sign up

    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/subscriptions/subscriptions.item.html\n// module id = 497\n// module chunks = 0","module.exports = \"
    Description Date User Status
    {{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }} {{ item.userName }} {{ item.taskStatusName }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/tasks/task.archive.html\n// module id = 498\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/tasks/task.html\n// module id = 499\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/tasks/task.item.basic.html\n// module id = 500\n// module chunks = 0","module.exports = \"
    Basic info
    Description:
    {{$ctrl.task.description}}
    Status:
    {{$ctrl.task.taskStatusName}}
    Date:
    {{$ctrl.task.date | date : \\\"dd-MM-yyyy\\\"}}
    User:
    {{$ctrl.task.userName}}
    Account:
    {{$ctrl.task.accountName}}
    Location:
    {{$ctrl.task.locationName}}
    Team:
    {{$ctrl.task.teamName}}
    Contact:
    {{$ctrl.task.contactName}}
    Employee:
    {{$ctrl.task.employeeDisplayName}}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/tasks/task.item.html\n// module id = 501\n// module chunks = 0","module.exports = \"
    Description Date User Status
    {{ item.description }} {{ item.date | date : \\\"dd-MM-yyyy\\\" }} {{ item.userName }} {{ item.taskStatusName }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/tasks/task.list.html\n// module id = 502\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/timesheets/declaration.html\n// module id = 503\n// module chunks = 0","module.exports = \"

    {{ $ctrl.timesheet.employeeName }} (Inactive)

    Number of services: {{ $ctrl.timesheet.shiftCount - $ctrl.timesheet.shiftCanceledCount - $ctrl.timesheet.shiftSickCount }}
    Amount of hours: {{ ($ctrl.timesheet.shiftHours - $ctrl.timesheet.shiftCanceledHours - $ctrl.timesheet.shiftSickHours ).toFixed(2) }}
    Number declared: {{ $ctrl.timesheet.shiftDeclarationHours.toFixed(2) }}
    {{ shift.start | date : \\\"dd-MM-yyyy HH:mm\\\" }} to {{ shift.end | date : \\\"dd-MM-yyyy HH:mm\\\" }} {{ shift.end | date : \\\"HH:mm\\\" }} - {{ shift.teamLocationAccountName }} - {{ shift.teamLocationName }} - {{shift.teamName}} Geannuleerd 96 uur Planned: {{ shift.plannedHours.toFixed(2) }} <> Declared: {{ shift.declaredHours.toFixed(2) }}
    Interne opmerkingen
    {{shift.internalComment}}

    Medewerker opmerkingen
    {{shift.employeeComment}}
    Opdrachtgever: {{ shift.teamLocationAccountName }}
    Location:
    {{ shift.teamLocationName }}
    {{ shift.team.location.address.street }} {{ shift.team.location.address.number }} {{ item.vistingAddress.numberSuffix }}
    {{ shift.team.location.address.zip }} {{ shift.team.location.address.city }}
    Team: 0\\\">
    Contacts:
    {{ shift.teamName }} 0\\\">
    {{ teamContact.contactName }}
    {{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved Open In progress Rejected
    {{ declaration.comment }}
    ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
    Geen factuurnummer ingevuld!
    {{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved Open In progress Rejected
    {{ declaration.comment }}
    ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
    {{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved Open In progress Rejected
    {{ declaration.comment }}
    ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
    {{ declaration.dateTimeFrom | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.dateTimeFrom | date : \\\"HH:mm\\\" }} to {{ declaration.dateTimeTo | date : \\\"HH:mm dd-MM-yyyy\\\" }} {{ declaration.wageCodeName }} > {{ declaration.value }} Approved In progress Rejected
    {{ declaration.comment }}
    ZZP factuurnummer: {{ declaration.zzpInvoiceNumber }}
    0\\\" permission permission-except=\\\"['EMPLOYEE']\\\">
    0\\\" permission permission-except=\\\"['EMPLOYEE']\\\">
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/timesheets/timesheetDetails.html\n// module id = 504\n// module chunks = 0","module.exports = \"
    0\\\">
    {{ item.employeeName }} (Inactive) {{ item.doneShiftCount }} / {{ item.shiftCount - item.shiftCanceledCount - item.shiftSickCount }}
    Planned: {{ (item.shiftHours - item.shiftCanceledHours - item.shiftSickHours ).toFixed(2) }} <> Declared: {{ item.shiftDeclarationHours.toFixed(2) }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/timesheets/timesheets.dashboard.html\n// module id = 505\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/timesheets/timesheets.html\n// module id = 506\n// module chunks = 0","module.exports = \"
    1. Overview
    Number of scheduled shifts: {{ $ctrl.summary.scheduledShiftsCount }}
    Number of scheduled hours: {{ $ctrl.summary.scheduledHours }} hours
    Number of declared shifts: {{ $ctrl.summary.declaredShiftsCount }}
    Number of declared hours: {{ $ctrl.summary.declaredHours }} hours
    Number of approved shifts: {{ $ctrl.summary.approvedShiftsCount }}
    Number of approved hours: {{ $ctrl.summary.approvedHours }} hours
    0\\\">
    {{ item.employeeName }} {{ item.doneShiftCount }} / {{ item.shiftCount - item.shiftCanceledCount - item.shiftSickCount }}
    Planned: {{ item.shiftHours.toFixed(2) }} <> Declared: {{ item.shiftDeclarationHours.toFixed(2) }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/timesheets/timesheetsOverview.html\n// module id = 507\n// module chunks = 0","module.exports = \"
    Number of scheduled shifts: {{ $ctrl.summary.scheduledShiftsCount - $ctrl.summary.canceledShiftsCount - $ctrl.summary.sickShiftsCount }}
    Number of scheduled hours: {{ $ctrl.summary.scheduledHours - $ctrl.summary.canceledShiftsHours - $ctrl.summary.sickShiftsHours }} hours
    Number of declared shifts: {{ $ctrl.summary.declaredShiftsCount }}
    Number of declared hours: {{ $ctrl.summary.declaredHours }} hours
    Number of approved shifts: {{ $ctrl.summary.approvedShiftsCount }}
    Number of approved hours: {{ $ctrl.summary.approvedHours }} hours
    Aantal geanuleerde diensten: {{ $ctrl.summary.canceledShiftsCount }}
    Aantal geanuleerde uren: {{ $ctrl.summary.canceledShiftsHours }}
    Aantal diensten ziek gemeld: {{ $ctrl.summary.sickShiftsCount }}
    Aantal uren ziek gemeld: {{ $ctrl.summary.sickShiftsHours }}
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/timesheets/timesheetsSummary.html\n// module id = 508\n// module chunks = 0","module.exports = \"
    \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/modules/twinfield/twinfield.html\n// module id = 509\n// module chunks = 0","var map = {\n\t\"./af\": 143,\n\t\"./af.js\": 143,\n\t\"./ar\": 150,\n\t\"./ar-dz\": 144,\n\t\"./ar-dz.js\": 144,\n\t\"./ar-kw\": 145,\n\t\"./ar-kw.js\": 145,\n\t\"./ar-ly\": 146,\n\t\"./ar-ly.js\": 146,\n\t\"./ar-ma\": 147,\n\t\"./ar-ma.js\": 147,\n\t\"./ar-sa\": 148,\n\t\"./ar-sa.js\": 148,\n\t\"./ar-tn\": 149,\n\t\"./ar-tn.js\": 149,\n\t\"./ar.js\": 150,\n\t\"./az\": 151,\n\t\"./az.js\": 151,\n\t\"./be\": 152,\n\t\"./be.js\": 152,\n\t\"./bg\": 153,\n\t\"./bg.js\": 153,\n\t\"./bn\": 154,\n\t\"./bn.js\": 154,\n\t\"./bo\": 155,\n\t\"./bo.js\": 155,\n\t\"./br\": 156,\n\t\"./br.js\": 156,\n\t\"./bs\": 157,\n\t\"./bs.js\": 157,\n\t\"./ca\": 158,\n\t\"./ca.js\": 158,\n\t\"./cs\": 159,\n\t\"./cs.js\": 159,\n\t\"./cv\": 160,\n\t\"./cv.js\": 160,\n\t\"./cy\": 161,\n\t\"./cy.js\": 161,\n\t\"./da\": 162,\n\t\"./da.js\": 162,\n\t\"./de\": 165,\n\t\"./de-at\": 163,\n\t\"./de-at.js\": 163,\n\t\"./de-ch\": 164,\n\t\"./de-ch.js\": 164,\n\t\"./de.js\": 165,\n\t\"./dv\": 166,\n\t\"./dv.js\": 166,\n\t\"./el\": 167,\n\t\"./el.js\": 167,\n\t\"./en-au\": 168,\n\t\"./en-au.js\": 168,\n\t\"./en-ca\": 169,\n\t\"./en-ca.js\": 169,\n\t\"./en-gb\": 170,\n\t\"./en-gb.js\": 170,\n\t\"./en-ie\": 171,\n\t\"./en-ie.js\": 171,\n\t\"./en-nz\": 172,\n\t\"./en-nz.js\": 172,\n\t\"./eo\": 173,\n\t\"./eo.js\": 173,\n\t\"./es\": 175,\n\t\"./es-do\": 174,\n\t\"./es-do.js\": 174,\n\t\"./es.js\": 175,\n\t\"./et\": 176,\n\t\"./et.js\": 176,\n\t\"./eu\": 177,\n\t\"./eu.js\": 177,\n\t\"./fa\": 178,\n\t\"./fa.js\": 178,\n\t\"./fi\": 179,\n\t\"./fi.js\": 179,\n\t\"./fo\": 180,\n\t\"./fo.js\": 180,\n\t\"./fr\": 183,\n\t\"./fr-ca\": 181,\n\t\"./fr-ca.js\": 181,\n\t\"./fr-ch\": 182,\n\t\"./fr-ch.js\": 182,\n\t\"./fr.js\": 183,\n\t\"./fy\": 184,\n\t\"./fy.js\": 184,\n\t\"./gd\": 185,\n\t\"./gd.js\": 185,\n\t\"./gl\": 186,\n\t\"./gl.js\": 186,\n\t\"./gom-latn\": 187,\n\t\"./gom-latn.js\": 187,\n\t\"./he\": 188,\n\t\"./he.js\": 188,\n\t\"./hi\": 189,\n\t\"./hi.js\": 189,\n\t\"./hr\": 190,\n\t\"./hr.js\": 190,\n\t\"./hu\": 191,\n\t\"./hu.js\": 191,\n\t\"./hy-am\": 192,\n\t\"./hy-am.js\": 192,\n\t\"./id\": 193,\n\t\"./id.js\": 193,\n\t\"./is\": 194,\n\t\"./is.js\": 194,\n\t\"./it\": 195,\n\t\"./it.js\": 195,\n\t\"./ja\": 196,\n\t\"./ja.js\": 196,\n\t\"./jv\": 197,\n\t\"./jv.js\": 197,\n\t\"./ka\": 198,\n\t\"./ka.js\": 198,\n\t\"./kk\": 199,\n\t\"./kk.js\": 199,\n\t\"./km\": 200,\n\t\"./km.js\": 200,\n\t\"./kn\": 201,\n\t\"./kn.js\": 201,\n\t\"./ko\": 202,\n\t\"./ko.js\": 202,\n\t\"./ky\": 203,\n\t\"./ky.js\": 203,\n\t\"./lb\": 204,\n\t\"./lb.js\": 204,\n\t\"./lo\": 205,\n\t\"./lo.js\": 205,\n\t\"./lt\": 206,\n\t\"./lt.js\": 206,\n\t\"./lv\": 207,\n\t\"./lv.js\": 207,\n\t\"./me\": 208,\n\t\"./me.js\": 208,\n\t\"./mi\": 209,\n\t\"./mi.js\": 209,\n\t\"./mk\": 210,\n\t\"./mk.js\": 210,\n\t\"./ml\": 211,\n\t\"./ml.js\": 211,\n\t\"./mr\": 212,\n\t\"./mr.js\": 212,\n\t\"./ms\": 214,\n\t\"./ms-my\": 213,\n\t\"./ms-my.js\": 213,\n\t\"./ms.js\": 214,\n\t\"./my\": 215,\n\t\"./my.js\": 215,\n\t\"./nb\": 216,\n\t\"./nb.js\": 216,\n\t\"./ne\": 217,\n\t\"./ne.js\": 217,\n\t\"./nl\": 219,\n\t\"./nl-be\": 218,\n\t\"./nl-be.js\": 218,\n\t\"./nl.js\": 219,\n\t\"./nn\": 220,\n\t\"./nn.js\": 220,\n\t\"./pa-in\": 221,\n\t\"./pa-in.js\": 221,\n\t\"./pl\": 222,\n\t\"./pl.js\": 222,\n\t\"./pt\": 224,\n\t\"./pt-br\": 223,\n\t\"./pt-br.js\": 223,\n\t\"./pt.js\": 224,\n\t\"./ro\": 225,\n\t\"./ro.js\": 225,\n\t\"./ru\": 226,\n\t\"./ru.js\": 226,\n\t\"./sd\": 227,\n\t\"./sd.js\": 227,\n\t\"./se\": 228,\n\t\"./se.js\": 228,\n\t\"./si\": 229,\n\t\"./si.js\": 229,\n\t\"./sk\": 230,\n\t\"./sk.js\": 230,\n\t\"./sl\": 231,\n\t\"./sl.js\": 231,\n\t\"./sq\": 232,\n\t\"./sq.js\": 232,\n\t\"./sr\": 234,\n\t\"./sr-cyrl\": 233,\n\t\"./sr-cyrl.js\": 233,\n\t\"./sr.js\": 234,\n\t\"./ss\": 235,\n\t\"./ss.js\": 235,\n\t\"./sv\": 236,\n\t\"./sv.js\": 236,\n\t\"./sw\": 237,\n\t\"./sw.js\": 237,\n\t\"./ta\": 238,\n\t\"./ta.js\": 238,\n\t\"./te\": 239,\n\t\"./te.js\": 239,\n\t\"./tet\": 240,\n\t\"./tet.js\": 240,\n\t\"./th\": 241,\n\t\"./th.js\": 241,\n\t\"./tl-ph\": 242,\n\t\"./tl-ph.js\": 242,\n\t\"./tlh\": 243,\n\t\"./tlh.js\": 243,\n\t\"./tr\": 244,\n\t\"./tr.js\": 244,\n\t\"./tzl\": 245,\n\t\"./tzl.js\": 245,\n\t\"./tzm\": 247,\n\t\"./tzm-latn\": 246,\n\t\"./tzm-latn.js\": 246,\n\t\"./tzm.js\": 247,\n\t\"./uk\": 248,\n\t\"./uk.js\": 248,\n\t\"./ur\": 249,\n\t\"./ur.js\": 249,\n\t\"./uz\": 251,\n\t\"./uz-latn\": 250,\n\t\"./uz-latn.js\": 250,\n\t\"./uz.js\": 251,\n\t\"./vi\": 252,\n\t\"./vi.js\": 252,\n\t\"./x-pseudo\": 253,\n\t\"./x-pseudo.js\": 253,\n\t\"./yo\": 254,\n\t\"./yo.js\": 254,\n\t\"./zh-cn\": 255,\n\t\"./zh-cn.js\": 255,\n\t\"./zh-hk\": 256,\n\t\"./zh-hk.js\": 256,\n\t\"./zh-tw\": 257,\n\t\"./zh-tw.js\": 257\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 510;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale ^\\.\\/.*$\n// module id = 510\n// module chunks = 0","export const loginState : aboTheme.IState = {\r\n\r\n name: \"login\",\r\n url: \"/login\",\r\n component: 'login',\r\n resolve: { returnTo: returnTo }\r\n \r\n};\r\n\r\nexport const logoutState : aboTheme.IState = {\r\n\r\n name: \"logout\",\r\n url: \"/logout\",\r\n component: 'logout'\r\n \r\n};\r\n\r\nexport const authorizedState : aboTheme.IState = {\r\n\r\n name: \"authorized\",\r\n url: \"/authorized\",\r\n component: 'authorized'\r\n \r\n};\r\n\r\nexport const unauthorizedState : aboTheme.IState = {\r\n\r\n name: \"unauthorized\",\r\n url: \"/unauthorized\",\r\n component: 'unauthorized'\r\n \r\n}; \r\n\r\n/**\r\n * A resolve function for 'login' state which figures out what state to return to, after a successful login.\r\n *\r\n * If the user was initially redirected to login state (due to the requiresAuth redirect), then return the toState/params\r\n * they were redirected from. Otherwise, if they transitioned directly, return the fromState/params. Otherwise\r\n * return the main \"home\" state.\r\n */\r\nreturnTo.$inject = ['$transition$'];\r\nfunction returnTo ($transition$) {\r\n if ($transition$.redirectedFrom() !== null) {\r\n // The user was redirected to the login state (e.g., via the requiresAuth hook when trying to activate contacts)\r\n // Return to the original attempted target state (e.g., contacts)\r\n return $transition$.redirectedFrom().targetState();\r\n }\r\n\r\n let $state = $transition$.router.stateService;\r\n\r\n // The user was not redirected to the login state; they directly activated the login state somehow.\r\n // Return them to the state they came from.\r\n if ($transition$.from().name !== '') {\r\n return $state.target($transition$.from(), $transition$.params(\"from\"));\r\n }\r\n\r\n // If the fromState's name is empty, then this was the initial transition. Just return them to the home state\r\n return $state.target('home');\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/auth.states.ts","import {AuthService} from '../services/auth.service';\r\n\r\nclass AuthorizedController implements ng.IComponentController {\r\n static $inject = ['AuthService', 'Restangular'];\r\n constructor(private authService: AuthService, private Restangular: Restangular.IService ) {\r\n \r\n }\r\n\r\n public $onInit = () => {\r\n this.authService.authorizeCallback();\r\n this.authService.setTokenHeader();\r\n }\r\n}\r\n\r\nexport const authorized = {\r\n controller : AuthorizedController,\r\n template : require('./index.html')\r\n}; \n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/authorized/index.ts","import { AuthService } from '../services/auth.service';\r\n\r\nclass LoginController implements ng.IComponentController {\r\n\r\n private returnTo: any;\r\n\r\n static $inject = ['AuthService', '$state', 'Restangular'];\r\n\r\n constructor(\r\n private AuthService: AuthService,\r\n private $state: ng.ui.IStateService,\r\n private Restangular: Restangular.IService\r\n ) {\r\n\r\n }\r\n\r\n public $onInit = () => {\r\n this.AuthService.authorize();\r\n //console.log(this.returnTo)\r\n }\r\n\r\n private returnToOriginalState = () => {\r\n let state = this.returnTo.state();\r\n let params = this.returnTo.params();\r\n let options = Object.assign({}, this.returnTo.options(), { reload: true });\r\n if(state){\r\n this.$state.go(state, params, options);\r\n } else {\r\n this.$state.go('app');\r\n }\r\n };\r\n\r\n public login = () => {\r\n \r\n var data = {\r\n \"grant_type\": \"client_credentials\",\r\n \"client_id\": \"TestClient\",\r\n \"client_secret\": \"TestClientSecret\"\r\n };\r\n\r\n this.Restangular.all('token').post(data)\r\n .then((response) => {\r\n this.AuthService.SetAuthorizationData(response.access_token, response.access_token).then(() => {\r\n this.AuthService.setTokenHeader();\r\n this.returnToOriginalState();\r\n });\r\n })\r\n .catch((response) => {});\r\n }\r\n}\r\n\r\nexport const login: aboTheme.IComponent = {\r\n bindings: { returnTo: '<' },\r\n controller: LoginController,\r\n template: require('./index.html')\r\n}; \n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/login/index.ts","import {AuthService} from '../services/auth.service';\r\n\r\nclass LogoutController implements ng.IComponentController {\r\n static $inject = ['AuthService'];\r\n constructor(private authService: AuthService) {\r\n \r\n }\r\n public $onInit = () => {\r\n this.authService.logout();\r\n }\r\n}\r\n\r\nexport const logout = {\r\n controller : LogoutController,\r\n template : require('./index.html')\r\n}; \n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/logout/index.ts","import {AuthService} from './auth.service';\r\n/**\r\n * This file contains a Transition Hook which protects a\r\n * route that requires authentication.\r\n *\r\n * This hook redirects to /login when both:\r\n * - The user is not authenticated\r\n * - The user is navigating to a state that requires authentication\r\n */\r\nexport const authHookRunBlock = ['$transitions', 'AuthService', ($transitions, AuthService: AuthService) => {\r\n AuthService.setTokenHeader();\r\n // Matches if the destination state's data property has a truthy 'requiresAuth' property\r\n let requiresAuthCriteria = {\r\n to: (state) => state.data && state.data.requiresAuth\r\n };\r\n\r\n // Function that returns a redirect for the current transition to the login state\r\n // if the user is not currently authenticated (according to the AuthService)\r\n\r\n let redirectToLogin = (transition) => {\r\n //let AuthService = transition.injector().get('AuthService');\r\n let $state = transition.router.stateService;\r\n AuthService.setTokenHeader();\r\n return AuthService.isAuthorized().catch(() => { \r\n return $state.target('login', undefined, { location: false });\r\n });\r\n };\r\n\r\n // Register the \"requires auth\" hook with the TransitionsService\r\n $transitions.onBefore(requiresAuthCriteria, redirectToLogin, {priority: 10});\r\n}];\n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/services/auth.hook.ts","import { login } from '../login';\r\nimport env from '../../config';\r\n\r\ninterface ITokenData {\r\n\r\n name: string;\r\n email: string;\r\n roles: Array | string;\r\n companyid: number;\r\n\r\n}\r\n\r\nexport class AuthService {\r\n\r\n static $inject = ['localStorageService', '$window', '$state', '$q', '$timeout', 'Restangular'];\r\n\r\n constructor(\r\n private localStorageService: ng.local.storage.ILocalStorageService,\r\n private $window: ng.IWindowService, \r\n private $state: ng.ui.IStateService,\r\n private $q: ng.IQService,\r\n private $timeout: ng.ITimeoutService,\r\n private Restangular: Restangular.IService\r\n ) {\r\n\r\n\r\n }\r\n\r\n public isAuthorized = (role = null): ng.IPromise => {\r\n var deferred = this.$q.defer();\r\n if (this.localStorageService.get(\"authorizationData\") != null && this.localStorageService.get(\"authorizationData\") != \"\") {\r\n if (role && !this.hasRole(role)) {\r\n deferred.reject({\r\n code: 401, text: 'Insufficient roles' });\r\n }\r\n deferred.resolve({ code: 200 });\r\n } else {\r\n deferred.reject({ code: 403 });\r\n }\r\n return deferred.promise;\r\n }\r\n\r\n public setTokenHeader = () => {\r\n this.Restangular.setDefaultHeaders({ 'Authorization': 'Bearer ' + this.localStorageService.get(\"authorizationData\")});\r\n }\r\n\r\n public hasRole = (role) => {\r\n var roles = this.getRoles();\r\n if (roles instanceof Array) {\r\n return (roles.indexOf(role) > -1);\r\n } else {\r\n return (roles == role);\r\n }\r\n }\r\n\r\n public getRoles = () => {\r\n\r\n var data:any = this.getDataFromToken(this.GetAuthorizationData());\r\n return data.role;\r\n\r\n }\r\n\r\n public getTokenData = () => {\r\n\r\n if (this.GetAuthorizationData()) {\r\n var data: any = this.getDataFromToken(this.GetAuthorizationData());\r\n return data;\r\n }\r\n return false;\r\n\r\n }\r\n\r\n public authorize = () => {\r\n\r\n // console.log(\"AuthorizedController time to log on\");\r\n\r\n var authorizationUrl = env.AUTH_LOGIN_URL;\r\n var client_id = env.AUTH_CLIENT_ID;\r\n var redirect_uri = this.$window.location.origin + '/authorized';\r\n var response_type = \"id_token token\";\r\n var scope = env.AUTH_SCOPES;\r\n var nonce = \"N\" + Math.random() + \"\" + Date.now();\r\n var state = Date.now() + \"\" + Math.random();\r\n\r\n this.localStorageService.set(\"authNonce\", nonce);\r\n this.localStorageService.set(\"authStateControl\", state);\r\n // console.log(\"AuthorizedController created. adding myautostate: \" + this.localStorageService.get(\"authStateControl\"));\r\n\r\n var url =\r\n authorizationUrl + \"?\" +\r\n \"response_type=\" + encodeURI(response_type) + \"&\" +\r\n \"client_id=\" + encodeURI(client_id) + \"&\" +\r\n \"redirect_uri=\" + encodeURI(redirect_uri) + \"&\" +\r\n \"scope=\" + encodeURI(scope) + \"&\" +\r\n \"nonce=\" + encodeURI(nonce) + \"&\" +\r\n \"state=\" + encodeURI(state);\r\n\r\n // console.log(url);\r\n this.$window.location.href = url;\r\n }\r\n \r\n public logout = () => {\r\n\r\n var id_token = this.localStorageService.get(\"authorizationDataIdToken\");\r\n var authorizationUrl = env.AUTH_LOGOUT_URL;\r\n var id_token_hint = id_token;\r\n var post_logout_redirect_uri = this.$window.location.origin + '';\r\n var state = Date.now() + \"\" + Math.random();\r\n\r\n var url =\r\n authorizationUrl + \"?\" +\r\n \"id_token_hint=\" + id_token_hint + \"&\" +\r\n \"post_logout_redirect_uri=\" + encodeURI(post_logout_redirect_uri) + \"&\" +\r\n \"state=\" + encodeURI(state);\r\n\r\n this.ResetAuthorizationData();\r\n this.$window.location.href = url;\r\n }\r\n\r\n\r\n public authorizeCallback = () => {\r\n\r\n // console.log(\"AuthorizedController created, has hash\");\r\n var hash = window.location.hash.substr(1);\r\n\r\n var result: any = hash.split('&').reduce(function (result, item) {\r\n var parts = item.split('=');\r\n result[parts[0]] = parts[1];\r\n return result;\r\n }, {});\r\n\r\n var token = \"\";\r\n var id_token = \"\";\r\n var authResponseIsValid = false;\r\n if (!result.error) {\r\n\r\n if (result.state !== this.localStorageService.get(\"authStateControl\")) {\r\n // console.log(\"AuthorizedCallback incorrect state\");\r\n } else {\r\n\r\n token = result.access_token;\r\n id_token = result.id_token\r\n\r\n var dataIdToken:any = this.getDataFromToken(id_token);\r\n // console.log(dataIdToken);\r\n\r\n // validate nonce\r\n if (dataIdToken.nonce !== this.localStorageService.get(\"authNonce\")) {\r\n // console.log(\"AuthorizedCallback incorrect nonce\");\r\n } else {\r\n this.localStorageService.set(\"authNonce\", \"\");\r\n this.localStorageService.set(\"authStateControl\", \"\");\r\n\r\n authResponseIsValid = true;\r\n // console.log(\"AuthorizedCallback state and nonce validated, returning access token\");\r\n }\r\n }\r\n }\r\n\r\n if (authResponseIsValid) {\r\n var state = this.$state;\r\n this.SetAuthorizationData(token, id_token).then(() => {\r\n //console.log(this.localStorageService.get(\"authorizationData\"));\r\n this.$window.location.href = this.$window.location.origin;\r\n });\r\n }\r\n else {\r\n this.ResetAuthorizationData();\r\n this.$state.go(\"unauthorized\");\r\n }\r\n }\r\n\r\n public getEmployeeId(token) {\r\n var data = this.getDataFromToken(token);\r\n // console.log(data);\r\n var userID = (data).employeeId;\r\n \r\n return userID;\r\n }\r\n\r\n public getDataFromToken(token) {\r\n var data = {};\r\n if (typeof token !== 'undefined') {\r\n var encoded = token.split('.')[1];\r\n data = JSON.parse(this.urlBase64Decode(encoded));\r\n }\r\n return data;\r\n }\r\n\r\n public ResetAuthorizationData = () => {\r\n this.localStorageService.set(\"authorizationData\", \"\");\r\n this.localStorageService.set(\"authorizationDataIdToken\", \"\");\r\n }\r\n\r\n public GetAuthorizationData = () => {\r\n return this.localStorageService.get(\"authorizationData\");\r\n }\r\n\r\n public SetAuthorizationData = (token, id_token) => {\r\n // console.log(token);\r\n var deferred = this.$q.defer();\r\n this.$timeout(() => {\r\n if (this.localStorageService.get(\"authorizationData\") !== \"\") {\r\n this.localStorageService.set(\"authorizationData\", \"\");\r\n }\r\n\r\n this.localStorageService.set(\"authorizationData\", token);\r\n this.localStorageService.set(\"authorizationDataIdToken\", id_token);\r\n \r\n deferred.resolve();\r\n }, 3000);\r\n\r\n return deferred.promise;\r\n\r\n }\r\n\r\n private urlBase64Decode(str) {\r\n var output = str.replace('-', '+').replace('_', '/');\r\n switch (output.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n output += '==';\r\n break;\r\n case 3:\r\n output += '=';\r\n break;\r\n default:\r\n throw 'Illegal base64url string!';\r\n }\r\n return window.atob(output);\r\n }\r\n\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/services/auth.service.ts","export * from './auth.service';\n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/services/index.ts","import {AuthService} from '../services/auth.service';\r\n\r\nclass UnAuthorizedController implements ng.IComponentController {\r\n static $inject = ['authService'];\r\n constructor(private authService: AuthService) {\r\n \r\n }\r\n\r\n}\r\n\r\nexport const unauthorized = {\r\n controller : UnAuthorizedController,\r\n template : require('./index.html')\r\n}; \n\n\n// WEBPACK FOOTER //\n// ./src/app/authorization/unauthorized/index.ts","export const authServiceRun = ['Restangular', (Restangular: Restangular.IService) => {\r\n \r\n}]\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/authsettings.run.ts","import { AuthUserService } from './services/authusers.service';\r\nexport const authSettingsState: aboTheme.IState = {\r\n\r\n parent: \"app\",\r\n name: \"authsettings\",\r\n url: \"/authsettings\",\r\n //redirectTo: \"authsettings.list\",\r\n component: \"authSettingsComponent\",\r\n data: {\r\n permissions: {\r\n only: ['SUPERUSER'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const authSettingsUsersState: aboTheme.IState = {\r\n\r\n name: \"authsettings.users\",\r\n url: \"/users\",\r\n resolve: {\r\n authUsers: (AuthUserService: AuthUserService) => { 'ngInject'; return AuthUserService.all(); }\r\n },\r\n views: {\r\n \"main\": 'authSettingsUsersComponent'\r\n } \r\n\r\n};\r\n\r\nexport const authSettingsUsersItemState: aboTheme.IState = {\r\n\r\n name: \"authsettings.users.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n authUser: (AuthUserService: AuthUserService, $stateParams: ng.ui.IStateParamsService) => {\r\n 'ngInject';\r\n if ($stateParams['id'] != 0) {\r\n return AuthUserService.get($stateParams['id']);\r\n }\r\n }\r\n },\r\n views: {\r\n \"main@authsettings\": 'authSettingsUsersItemComponent'\r\n }\r\n};\r\n\r\nexport const authSettingsServerState: aboTheme.IState = {\r\n\r\n name: \"authsettings.server\",\r\n url: \"/server\",\r\n //redirectTo: \"authsettings.list\",\r\n views: {\r\n \"main\": 'authSettingsServerComponent'\r\n }\r\n\r\n};\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/authsettings.states.ts","class AuthSettingsController implements ng.IComponentController {\r\n \r\n constructor() {\r\n 'ngInject';\r\n }\r\n}\r\n\r\nexport const authSettingsComponent : ng.IComponentOptions = {\r\n controller : AuthSettingsController,\r\n template : require('./authsettings.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/components/authsettings.component.ts","import { AuthSettingsService } from '../services/authsettings.service';\r\nclass AuthSettingsServerController implements ng.IComponentController {\r\n \r\n constructor(private AuthSettingsService: AuthSettingsService ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.AuthSettingsService.all();\r\n }\r\n}\r\n\r\nexport const authSettingsServerComponent : ng.IComponentOptions = {\r\n controller : AuthSettingsServerController,\r\n template : require('./authsettings.server.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/components/authsettings.server.component.ts","import { AuthUserService, IAuthUser } from '../services/authusers.service';\r\nclass AuthSettingsUsersController implements ng.IComponentController {\r\n \r\n private authUsers: IAuthUser[];\r\n\r\n constructor(private AuthUserService: AuthUserService ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n \r\n }\r\n}\r\n\r\nexport const authSettingsUsersComponent : ng.IComponentOptions = {\r\n bindings : {\r\n authUsers: \"<\"\r\n },\r\n controller : AuthSettingsUsersController,\r\n template : require('./authsettings.users.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/components/authsettings.users.component.ts","import { AuthUserService, IAuthUser } from '../services/authusers.service';\r\nimport * as _ from \"lodash\";\r\nclass AuthSettingsUsersItemController implements ng.IComponentController {\r\n\r\n private authUser: IAuthUser;\r\n private fieldedit: any;\r\n private roleedit: any;\r\n\r\n constructor(private AuthUserService: AuthUserService) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.AuthUserService.getRoles(this.authUser).then((roles) => {\r\n this.authUser.roles = roles;\r\n });\r\n\r\n this.AuthUserService.getClaims(this.authUser).then((claims) => {\r\n this.authUser.claims = new Object();\r\n for(var i = 0; i < claims.length; i++){\r\n var item = claims[i];\r\n this.authUser.claims[item.type] = item.value;\r\n }\r\n // console.log(this.authUser.claims);\r\n });\r\n }\r\n\r\n public save = () => {\r\n\r\n this.AuthUserService.post(this.authUser).then((response) => {\r\n // console.log(response);\r\n })\r\n\r\n }\r\n\r\n public createAccount = () => {\r\n this.authUser.userName = this.authUser.email;\r\n\r\n this.authUser.claims = {\r\n \"displayName\" : this.authUser.displayName,\r\n }\r\n\r\n this.authUser.roles = ['employee'];\r\n\r\n this.AuthUserService.post(this.authUser).then((response) => {\r\n // console.log('Account created');\r\n })\r\n }\r\n\r\n public updateUser = () => {\r\n this.AuthUserService.put(this.authUser.id, this.authUser).then((response) => {\r\n // console.log('Account created')\r\n })\r\n }\r\n\r\n public resetPassword = () => {\r\n //this.account = new IAuthUser();\r\n\r\n this.AuthUserService.resetPassword(this.authUser).then((response) => {\r\n //this.accountError = response;\r\n // console.log('Password reset')\r\n })\r\n }\r\n\r\n\r\n public editField = (index = null, value = null) => {\r\n this.deleteField(index, value);\r\n this.fieldedit.name = index;\r\n this.fieldedit.value = value;\r\n }\r\n\r\n public deleteField = (index = null, value = null) => {\r\n _.unset(this.authUser.claims, index);\r\n }\r\n\r\n public saveFields = () => {\r\n if(!this.authUser.claims) {\r\n this.authUser.claims = {};\r\n }\r\n this.authUser.claims[this.fieldedit.name] = this.fieldedit.value;\r\n this.fieldedit.name = null;\r\n this.fieldedit.value = null;\r\n }\r\n\r\n public editRole = (index = null, value = null) => {\r\n this.deleteRole(index, value);\r\n this.roleedit.name = value;\r\n }\r\n\r\n public deleteRole = (index = null, value = null) => {\r\n this.authUser.roles.splice(index, 1)\r\n }\r\n\r\n public saveRole = () => {\r\n if(!this.authUser.roles) {\r\n this.authUser.roles = [];\r\n }\r\n this.authUser.roles.push(this.roleedit.name);\r\n this.roleedit.name = null;\r\n }\r\n}\r\n\r\nexport const authSettingsUsersItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n authUser: \"<\"\r\n },\r\n controller: AuthSettingsUsersItemController,\r\n template: require('./authsettings.usersItem.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/components/authsettings.usersItem.component.ts","import { AuthUserService, IAuthUser } from '../services/authusers.service';\r\n\r\nclass ResetPasswordController implements ng.IComponentController {\r\n private authUser: IAuthUser;\r\n\r\n constructor(private AuthUserService: AuthUserService, private $state: ng.ui.IStateService) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n if(!this.authUser) {\r\n this.AuthUserService.getCurrentUser().then((user : IAuthUser) => {\r\n this.authUser = user;\r\n });\r\n }\r\n }\r\n\r\n public resetPassword = () => {\r\n this.AuthUserService.resetPassword(this.authUser).then((response) => {\r\n ($('#ResetPasswordModal')).modal('hide');\r\n });\r\n }\r\n}\r\n\r\nexport const resetPasswordComponent : ng.IComponentOptions = {\r\n bindings: {\r\n authUser: \"<\"\r\n },\r\n controller : ResetPasswordController,\r\n template : require('./resetPassword.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/components/resetPassword.component.ts","import env from '../../config';\r\n\r\nexport const AuthSettingsApi = ['Restangular', (Restangular: Restangular.IService) => {\r\n return Restangular.withConfig(function (RestangularConfigurer) {\r\n RestangularConfigurer.setBaseUrl(env.AUTH_API_URL);\r\n });\r\n}]\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/services/authsettings.factory.ts","import { BaseService } from '../../base/base.service';\r\nimport { AppService } from '../../main/app.service';\r\n\r\nexport class IAuthSettings {\r\n Id: number;\r\n Email?: string;\r\n}\r\n\r\nexport class AuthSettingsService extends BaseService {\r\n \r\n constructor(AuthSettingsApi: Restangular.IService, protected AppService: AppService) {\r\n 'ngInject';\r\n super(AuthSettingsApi, AppService, 'user');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/authsettings/services/authsettings.service.ts","export class BaseAppService {\r\n\r\n constructor() {\r\n \"ngInject\";\r\n }\r\n \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/base.app.service.ts","import * as $ from 'jquery';\r\nimport * as angular from \"angular\";\r\nimport * as moment from \"moment\";\r\n\r\n/** Set Moment defaults */\r\nmoment.locale('nl'); \r\n\r\nimport '../scripts/assign.polyfill.js';\r\n\r\nimport 'angular-ui-router/release/angular-ui-router.js';\r\n\r\nimport 'lodash';\r\nimport 'restangular';\r\nimport 'angular-local-storage';\r\nimport 'ngletteravatar';\r\nimport 'angular-ui-router-uib-modal';\r\nimport 'bootstrap-datepicker';\r\nimport 'bootstrap-timepicker';\r\nimport 'angular-file-upload';\r\nimport 'angular-messages';\r\nimport 'moment';\r\nimport 'ng-device-detector';\r\nimport 'angular-media-queries';\r\nimport 'angular-file-saver';\r\nimport 'ng-infinite-scroll/build/ng-infinite-scroll.min.js';\r\n\r\nimport 'ngclipboard/dist/ngclipboard.min.js'\r\n\r\nimport '@abosol/theme';\r\nimport '@abosol/masterdata';\r\n\r\nimport 'angular-gettext';\r\nimport '../translations/nl_NL.po';\r\n\r\nimport 'bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css';\r\nimport 'bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js';\r\nimport 'bootstrap-timepicker/css/bootstrap-timepicker.min.css';\r\n// import 'angular-bootstrap-datetimepicker/src/js/datetimepicker.js';\r\n// import 'angular-bootstrap-datetimepicker/src/js/datetimepicker.templates.js';\r\n// import 'angular-bootstrap-datetimepicker/src/css/datetimepicker.css';\r\n// import 'angular-date-time-input/src/dateTimeInput.js';\r\nimport 'angular-permission';\r\nimport 'angular-filter/dist/angular-filter.min.js';\r\n\r\n\r\n\r\nimport '../less/app.less';\r\n\r\nimport './global';\r\nimport './main';\r\nimport './authorization';\r\nimport './authsettings';\r\nimport './modules';\r\n\r\n\r\nangular.element(document).ready(function () {\r\n angular.bootstrap(document.body, ['app'], {\r\n strictDi: true\r\n });\r\n}); \r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/bootstrap.ts","import { TwinfieldService } from \"../services/twinfield.service\";\r\n\r\ninterface ITwinfieldScope extends ng.IScope {\r\n status: boolean;\r\n nonce: string;\r\n twinfieldUrl: string;\r\n}\r\n\r\nclass TwinfieldController implements ng.IComponentController {\r\n\r\n /**\r\n * Constructor\r\n *\r\n * @return {void}\r\n */\r\n\r\n constructor(\r\n private TwinfieldService: TwinfieldService,\r\n public $scope: ITwinfieldScope,\r\n private $state: ng.ui.IStateService,\r\n private localStorageService: ng.local.storage.ILocalStorageService,\r\n private $location: ng.ILocationService\r\n ){\r\n 'ngInject';\r\n }\r\n\r\n /**\r\n * Initiator\r\n *\r\n * @return {void}\r\n */\r\n\r\n public $onInit = () => {\r\n\r\n /** Set twinfield URI nonces */\r\n\r\n this.$scope.nonce = this.generateNonce();\r\n this.$scope.twinfieldUrl = 'https://login.twinfield.com/auth/authentication/connect/authorize'\r\n + '?client_id=brainsweb'\r\n + '&response_type=code'\r\n + '&scope=openid+twf.user+twf.organisation+twf.organisationUser+offline_access'\r\n + '&redirect_uri=' + window.location.protocol + '//' + window.location.host + '/app/twinfield'\r\n + '&state=' + this.generateNonce()\r\n + '&nonce=' + this.generateNonce();\r\n\r\n /** Get status */\r\n\r\n this.TwinfieldService.verifyToken().then(( status:any ) => {\r\n\r\n this.$scope.status = status; console.log( 'token: verify ' + this.$scope.status );\r\n\r\n }).catch(() => { \r\n \r\n this.$scope.status = false; });\r\n\r\n }\r\n\r\n /**\r\n * Generate a nonces\r\n\r\n * @return {string} Nonce\r\n */\r\n\r\n public generateNonce(): string {\r\n\r\n return ( Math.floor((Math.random()*6)+1) * new Date().getTime() ).toString(); }\r\n\r\n /**\r\n * Redirect to Twinfield for oAuth2 code retrieval\r\n *\r\n * @return {void}\r\n */\r\n\r\n public authenticateTwinfield(){\r\n\r\n parent.location.href = this.$scope.twinfieldUrl;\r\n }\r\n\r\n}\r\n\r\nexport const twinfieldComponent: ng.IComponentOptions = {\r\n controller: TwinfieldController,\r\n template: require('./twinfield.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/twinfield.component.ts","export const compareTo = () => {\r\n return {\r\n require: \"ngModel\",\r\n scope: {\r\n otherModelValue: \"=compareTo\"\r\n },\r\n link: function(scope, element, attributes, ngModel) {\r\n \r\n ngModel.$validators.compareTo = function(modelValue) {\r\n return modelValue == scope.otherModelValue;\r\n };\r\n \r\n scope.$watch(\"otherModelValue\", function() {\r\n ngModel.$validate();\r\n });\r\n }\r\n };\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/directive/compareTo.ts","export const file = () => {\r\n return {\r\n restrict: 'E',\r\n template: '',\r\n replace: true,\r\n require: 'ngModel',\r\n link: function(scope, element, attr, ctrl) {\r\n var listener = function() {\r\n scope.$apply(function() {\r\n attr.multiple ? ctrl.$setViewValue(element[0].files) : ctrl.$setViewValue(element[0].files[0]);\r\n });\r\n }\r\n element.bind('change', listener);\r\n }\r\n }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/directive/file.ts","export const fixedHeight = ($window: ng.IWindowService, $timeout: ng.ITimeoutService, screenSize: any) => {\r\n 'ngInject';\r\n return {\r\n restrict: 'AEC',\r\n scope: {\r\n resize: '@',\r\n },\r\n link: function (scope, element, $attrs) {\r\n function setheight() {\r\n var offset = $(element).offset();\r\n // console.log(offset)\r\n if (offset.top > 0) {\r\n var offsetmain = $(\"#mainview\").offset();\r\n var offsettop = (offset.top - offsetmain.top)\r\n var docHeight = $(window).height();\r\n var height = docHeight - offsettop - 95;\r\n $(element).height(height);\r\n }\r\n\r\n }\r\n if (!screenSize.is('xs, sm')) {\r\n $timeout(() => {\r\n setheight();\r\n });\r\n $window.onresize = (event) => {\r\n setheight();\r\n }\r\n $attrs.$observe('resize', function (resize) {\r\n $timeout(() => {\r\n setheight();\r\n });\r\n });\r\n }\r\n }\r\n };\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/directive/fixedHeight.ts","export const passwordValidation = () => {\r\n return {\r\n restrict: 'A',\r\n require: \"ngModel\",\r\n scope: {\r\n },\r\n link: function(scope, element, attributes, mCtrl) {\r\n function myValidation(value) {\r\n let re = /(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\da-zA-Z]).{8,}/;\r\n mCtrl.$setValidity('validation', re.test(value));\r\n return value;\r\n }\r\n mCtrl.$parsers.push(myValidation);\r\n }\r\n };\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/directive/passwordValidation.ts","export const bytes = [() => {\r\n return (bytes, precision) => {\r\n if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) return '-';\r\n if (typeof precision === 'undefined') precision = 1;\r\n var units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'],\r\n number = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number];\r\n };\r\n}];\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/filters/bytes.filter.ts","import { isArray } from 'util';\r\nexport const isDay = [() => {\r\n return function (input, day) {\r\n var out = [];\r\n if(input && isArray(input)){\r\n input.forEach(d => {\r\n // console.log(d)\r\n if (new Date(d.start).getDate() == day.getDate() && \r\n new Date(d.start).getMonth() == day.getMonth() &&\r\n new Date(d.start).getFullYear() == day.getFullYear()) {\r\n out.push(d);\r\n }\r\n });\r\n }\r\n return out;\r\n };\r\n}];\n\n\n// WEBPACK FOOTER //\n// ./src/app/filters/isDay.filter.ts","import { AuthUserService } from '../authsettings/services/authusers.service';\r\nimport { AuthService } from '../authorization/services';\r\nimport { IShift } from '../services/shifts.service';\r\nimport * as moment from 'moment';\r\nimport { ITeam } from \"../services/index\";\r\nimport env from '../config';\r\n\r\nclass AppController {\r\n private user: {};\r\n private version: string;\r\n\r\n private authorized: boolean;\r\n private menuItems: any;\r\n\r\n private shifts: IShift[];\r\n private currentShift: IShift;\r\n private locations: any;\r\n private teams: ITeam[];\r\n private accountNotes: any;\r\n private employees: any;\r\n private selectedEmployee: any;\r\n\r\n constructor(\r\n private AuthService: AuthService,\r\n private $scope: ng.IScope,\r\n private $window: ng.IWindowService,\r\n private ThemeService: aboTheme.IThemeService,\r\n private AuthUserService: AuthUserService\r\n ) {\r\n 'ngInject';\r\n\r\n this.menuItems = [\r\n {'name': 'Dashboard', 'sref': 'dashboard', 'iconclass': 'fa fa-flask', 'role': 'BACKOFFICE'},\r\n {'name': 'Diensten', 'sref': 'shifts', 'iconclass': 'fa fa-calendar-o', 'role': 'BACKOFFICE'},\r\n {'name': 'Taken', 'sref': 'tasks', 'iconclass': 'fa fa-tasks', 'role': 'BACKOFFICE', 'submenu': [\r\n {'name': 'Actieve taken', 'sref': 'tasks.list'},\r\n {'name': 'Archief', 'sref': 'tasks.archive'},\r\n ]},\r\n {'name': 'Urenregistratie', 'sref': 'timesheets', 'iconclass': 'fa fa-clock-o', 'role': 'TIMESHEETS', 'submenu': [\r\n {'name': 'Doorboeken', 'sref': 'timesheets.dashboard'},\r\n {'name': 'Overzicht', 'sref': 'timesheets.overview', 'role': 'FINANCE'},\r\n ]},\r\n {'name': 'Financieel', 'sref': 'quotations', 'iconclass': 'fa fa-file-text-o', 'role': 'FINANCE', 'submenu': [\r\n {'name': 'Pro forma facturen', 'sref': 'quotations.proforma'},\r\n {'name': 'Facturatie', 'sref': 'quotations.dashboard'},\r\n {'name': 'Cootje', 'sref': 'quotations.cootje'},\r\n ] },\r\n {'name': 'CRM', 'sref': 'crm', 'iconclass': 'fa fa-users', 'role': 'BACKOFFICE', 'submenu': [\r\n {'name': 'Bedrijven', 'sref': 'crm.accounts'},\r\n {'name': 'Contacten', 'sref': 'crm.contacts'},\r\n ] },\r\n {'name': 'HR', 'sref': 'hr', 'iconclass': 'fa fa-user-o', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Medewerkers', 'sref': 'hr.employees' },\r\n { 'name': 'Beschikbaarheid', 'sref': 'hr.availability' },\r\n ]},\r\n {'name': 'Recruitment', 'sref': 'hr.applicants', 'iconclass': 'fa fa-user-o', 'role': 'BACKOFFICE', 'submenu': [\r\n { 'name': 'Sollicitanten', 'sref': 'hr.applicants.list' },\r\n { 'name': 'Sollicitanten archief', 'sref': 'hr.applicants.archive' }\r\n ]},\r\n {'name': 'Instellingen', 'sref':'questions', 'iconclass': 'fa fa-gear', 'role': 'BACKOFFICE', 'submenu' : [\r\n {'name': 'Accounts', 'sref': 'authsettings', 'role': 'SUPERUSER' },\r\n {'name': 'Kantoorpersoneel', 'sref': 'settings.staff', 'role': 'SUPERUSER' },\r\n {'name': 'Stamdata', 'sref': 'masterdata', 'role': 'BACKOFFICE' },\r\n {'name': 'Salary scales', 'sref': 'settings.salaryscales', 'role': 'BACKOFFICE' },\r\n // {'name': 'Email-templates', 'sref': 'settings.templates', 'role': 'SUPERUSER' },\r\n {'name': 'ORT dagen', 'sref': 'settings.timezones', 'role': 'BACKOFFICE' }\r\n ] },\r\n // {'name': 'Dashboard', 'sref': 'dashboard', 'iconclass': 'fa fa-flask', 'role': 'EMPLOYEE'},\r\n {'name': 'Agenda', 'sref': 'schedule', 'iconclass': 'fa fa-calendar-o', 'role': 'EMPLOYEE'},\r\n {'name': 'Declaraties', 'sref': 'schedule.declarations', 'iconclass': 'fa fa-clock-o', 'role': 'EMPLOYEE'},\r\n {'name': 'Inschrijven', 'sref': 'subscriptions', 'iconclass': 'fa fa-list-ul', 'role': 'EMPLOYEE'},\r\n {'name': 'Vaardigheden', 'sref': 'skills', 'iconclass': 'fa fa-wrench', 'role': 'EMPLOYEE'},\r\n {'name': 'Documentatie', 'sref': 'documentation', 'iconclass': 'fa fa-book', 'role': 'EMPLOYEE'},\r\n {'name': 'Diensten', 'sref': 'customerShifts', 'iconclass': 'fa fa-calendar', 'role': 'CUSTOMER'}\r\n ];\r\n\r\n this.currentShift = new IShift();\r\n this.currentShift.start = this.roundMinutes(new Date());\r\n this.currentShift.end = moment(this.currentShift.start).add(8, 'hour').toDate();\r\n }\r\n\r\n roundMinutes(date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n }\r\n\r\n public $onInit = () => {\r\n\r\n this.version = env.VERSION;\r\n\r\n this.ThemeService.setIsSmallSidebar(false);\r\n\r\n this.AuthUserService.getCurrentUser().then((user) => {\r\n this.user = user;\r\n })\r\n\r\n // this.$scope.$on('getAdHocShiftsUp', (event, data) => {\r\n // console.log('getAdHocShiftsUp'); \r\n // this.$scope.$broadcast('getAdHocShiftsDown', data);\r\n // });\r\n }\r\n}\r\n\r\nexport const app = {\r\n controller: AppController,\r\n template: require('./app.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/app.component.ts","import env from '../config';\r\n\r\nexport const otherwiseConfigBlock = ['$urlRouterProvider', $urlRouterProvider => { \r\n $urlRouterProvider.otherwise('/app');\r\n}];\r\n\r\nexport const html5ConfigBlock = ['$locationProvider', $locationProvider => { \r\n $locationProvider.html5Mode({\r\n enabled: true,\r\n requireBase: false\r\n });\r\n}];\r\n\r\nexport const themeConfigBlock = ['ThemeServiceProvider', '$animateProvider', ( ThemeServiceProvider: aboTheme.IThemeProvider, $animateProvider: any ) => { \r\n ThemeServiceProvider.setLogo(require('../../images/logo-white.png')); \r\n ThemeServiceProvider.setLogoDark(require('../../images/logo-dark.png')); \r\n $animateProvider.classNameFilter(/ng-animate-enabled/);\r\n}];\r\n\r\nexport const masterDataConfigBlock = ['MasterdataServiceProvider', ( MasterdataServiceProvider: aboMasterdata.IServiceProvider ) => {\r\n MasterdataServiceProvider.setType('Skills', 'SKILLS');\r\n MasterdataServiceProvider.setType('Functions', 'Functions');\r\n MasterdataServiceProvider.setType('Hour codes', 'HourCodes');\r\n MasterdataServiceProvider.setType('Availability status', 'AvalabilityStatus');\r\n MasterdataServiceProvider.setType('Transportation type', 'TransportationType');\r\n MasterdataServiceProvider.setType('Note Tags', 'NoteTags');\r\n MasterdataServiceProvider.setType('Contact Tags', 'ContactTags');\r\n MasterdataServiceProvider.setType('Task Status', 'TaskStatus');\r\n MasterdataServiceProvider.setType('Preferred target audience', 'PreferredTargetAudience');\r\n MasterdataServiceProvider.setType('Application status', 'ApplicationStatus');\r\n MasterdataServiceProvider.setApiItemName('masterdata');\r\n}];\r\n\r\nexport const config = ['RestangularProvider', 'localStorageServiceProvider', (\r\n RestangularProvider: Restangular.IProvider,\r\n localStorageServiceProvider: ng.local.storage.ILocalStorageServiceProvider\r\n) => {\r\n\r\n RestangularProvider.setBaseUrl(env.API_URL);\r\n localStorageServiceProvider.setStorageType('sessionStorage');\r\n\r\n}];\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/app.config.ts","import { AuthService } from '../authorization/services';\r\n\r\n\r\nexport const run = ['Restangular', 'NotifyService', '$state', 'DTDefaultOptions', 'gettextCatalog', '$window', 'PermPermissionStore', 'PermRoleStore', 'deviceDetector', (\r\n Restangular: Restangular.IService,\r\n notifyService: aboTheme.INotifyService,\r\n $state: ng.ui.IStateService,\r\n DTDefaultOptions: any,\r\n gettextCatalog: ng.gettext.gettextCatalog,\r\n $window: ng.IWindowService,\r\n PermPermissionStore: angular.permission.PermissionStore,\r\n PermRoleStore: angular.permission.RoleStore,\r\n deviceDetector: any,\r\n) => {\r\n //SET LANGUAGE\r\n var lang = $window.navigator.language;\r\n var lf = '';\r\n switch(lang) {\r\n case 'nl':\r\n case 'nl-NL':\r\n lf = 'nl_NL';\r\n break;\r\n default: lf = 'en_US';\r\n }\r\n\r\n gettextCatalog.setCurrentLanguage(lf);\r\n gettextCatalog.debug = false;\r\n\r\n //CHECK IF IE\r\n var browser = deviceDetector.browser;\r\n if(deviceDetector.browser == \"ie\") {\r\n $state.go('browser');\r\n }\r\n\r\n Restangular.setErrorInterceptor((response, deferred, responseHandler) => {\r\n switch (response.status) {\r\n case 401:\r\n notifyService.error(response.status.toString(), 'Unauthorized');\r\n $state.go('login');\r\n break;\r\n case 403:\r\n $state.go('login');\r\n break;\r\n default:\r\n notifyService.error(response.status.toString());\r\n break;\r\n }\r\n });\r\n Restangular.addResponseInterceptor(function (data, operation, what, url, response) {\r\n \r\n switch (response.status) {\r\n case 200:\r\n return data;\r\n default:\r\n return data;\r\n }\r\n\r\n });\r\n\r\n DTDefaultOptions.setLanguage({\r\n sUrl: '//cdn.datatables.net/plug-ins/1.10.12/i18n/Dutch.json'\r\n });\r\n\r\n PermRoleStore.defineRole('EMPLOYEE', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n PermRoleStore.defineRole('SUPERUSER', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n PermRoleStore.defineRole('BACKOFFICE', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n PermRoleStore.defineRole('TIMESHEETS', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n PermRoleStore.defineRole('FINANCE', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n PermRoleStore.defineRole('ADMIN', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n PermRoleStore.defineRole('CUSTOMER', (roleName, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AuthService.hasRole(roleName.toLowerCase());\r\n });\r\n\r\n}];\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/app.run.ts","\r\nimport { BaseAppService } from '../base/base.app.service';\r\n\r\nexport class AppService extends BaseAppService {\r\n private userId: any;\r\n constructor(public NotifyService: aboTheme.INotifyService, public SweetAlert: any) {\r\n \"ngInject\";\r\n super();\r\n }\r\n\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/app.service.ts","//import { AuthService } from '../authorization/services/auth.service';\r\n\r\nexport const appState: aboTheme.IState = {\r\n name: 'app',\r\n url: '/app',\r\n redirectTo: 'dashboard',\r\n component: 'app',\r\n data: {\r\n requiresAuth: true\r\n }\r\n};\r\n\r\nexport const homeState = {\r\n name: 'home',\r\n url: '/home',\r\n component: 'home'\r\n};\r\n\r\nexport const browserState = {\r\n name: 'browser',\r\n url: '/browser',\r\n component: 'browserPageComponent'\r\n};\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/app.states.ts","class BrowserPageController implements ng.IComponentController {\r\n\r\n constructor(private deviceDetector: any) {\r\n 'ngInject';\r\n // console.log('CrmController');\r\n }\r\n}\r\n\r\nexport const browserPageComponent : ng.IComponentOptions = {\r\n controller : BrowserPageController,\r\n template : require('./browser.page.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/browser.page.component.ts","import { IShift, ShiftService } from '../services/shifts.service';\r\nimport { EmployeesService, AccountsService, ITeam } from \"../services/index\";\r\nimport * as moment from \"moment\";\r\n\r\nclass ChatPanelController {\r\n private shifts: IShift[];\r\n private currentShift: IShift;\r\n private locations: any;\r\n private teams: ITeam[];\r\n private accountNotes: any;\r\n private employees: any;\r\n private selectedEmployee: any;\r\n\r\n constructor(private $state: ng.ui.IStateService,\r\n private $scope: ng.IScope,\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private AccountsService: AccountsService) {\r\n 'ngInject'; \r\n }\r\n\r\n $onInit = () => {\r\n // this.$scope.$on('getAdHocShiftsDown', (event, data) => { \r\n // console.log('getAdHocShiftsDown'); \r\n // }); \r\n }\r\n\r\n isSameDay(start, end) {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n openShift(item) {\r\n this.currentShift = item;\r\n\r\n this.setLocations();\r\n this.setAccountNotes();\r\n this.setEmployees(); \r\n\r\n ($('#check-availability-modal')).modal('show');\r\n }\r\n\r\n setLocations() {\r\n if (this.currentShift.teamLocationAccountId) {\r\n this.AccountsService.getChild(this.currentShift.teamLocationAccountId, 'locations').then((result) => {\r\n this.locations = result;\r\n this.setTeams();\r\n });\r\n }\r\n }\r\n\r\n setAccountNotes() {\r\n if (this.currentShift.teamLocationAccountId) {\r\n this.AccountsService.getChild(this.currentShift.teamLocationAccountId, 'notes/?tag=planning').then((result) => {\r\n this.accountNotes = result;\r\n });\r\n }\r\n }\r\n\r\n setEmployees() {\r\n if (this.currentShift.start && this.currentShift.end) {\r\n var request = {\r\n accountId: this.currentShift.teamLocationAccountId,\r\n locationId: this.currentShift.teamLocationId,\r\n startDate: this.currentShift.start,\r\n endDate: this.currentShift.end,\r\n shiftId: this.currentShift.id\r\n };\r\n\r\n this.EmployeesService.customPost('availableEmployees', request, false).then((result) => {\r\n this.employees = result;\r\n\r\n this.selectedEmployee = this.employees.find(employeeSummary => employeeSummary.employee.id == this.currentShift.employeeId);\r\n });\r\n }\r\n }\r\n\r\n setTeams() {\r\n if (this.currentShift.teamLocationId) {\r\n this.teams = this.locations.find(item => item.id === this.currentShift.teamLocationId).teams;\r\n }\r\n }\r\n\r\n approve(event, shift) {\r\n event.stopPropagation();\r\n shift.status = 6;\r\n this.updateShift(shift);\r\n }\r\n\r\n reject(event, shift) {\r\n event.stopPropagation();\r\n shift.status = 99;\r\n this.updateShift(shift);\r\n }\r\n\r\n updateShift(shift) {\r\n this.ShiftService.put(shift.id, shift).then((data) => {\r\n this.shifts = this.shifts.filter(s => s.id !== shift.id);\r\n });\r\n }\r\n}\r\n\r\nexport const chatPanelComponent = {\r\n bindings: {\r\n shifts: '=',\r\n currentShift: '=',\r\n locations: '=',\r\n teams: '=',\r\n accountNotes: '=',\r\n employees: '=',\r\n selectedEmployee: '='\r\n },\r\n controller: ChatPanelController,\r\n template: require('./chatPanel.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/chatPanel.component.ts","import * as angular from \"angular\";\r\nimport { IShift, ShiftService } from \"../services/shifts.service\";\r\nimport * as moment from \"moment\";\r\nimport { INewsItem, NewsService } from \"../services\";\r\nimport { AuthService } from \"../authorization/services/index\";\r\n\r\nclass NavbarController implements ng.IComponentController {\r\n\r\n private logo: string;\r\n private userName: string;\r\n private currentShift: IShift;\r\n private shifts: IShift[];\r\n private news: INewsItem[];\r\n unreadCnt: any;\r\n\r\n isBackoffice = false;\r\n isCustomer = false;\r\n isEmployee = false;\r\n readLater: boolean;\r\n\r\n constructor(private ThemeService: aboTheme.IThemeService,\r\n private ShiftService: ShiftService,\r\n private NewsService: NewsService,\r\n private $scope: ng.IScope, \r\n private $interval: ng.IIntervalService,\r\n private SweetAlert: any,\r\n private AuthService: AuthService) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.logo = this.ThemeService.getLogoDark();\r\n \r\n \r\n this.isBackoffice = this.AuthService.hasRole('backoffice');\r\n this.isCustomer = this.AuthService.hasRole('customer');\r\n this.isEmployee = this.AuthService.hasRole('employee');\r\n\r\n this.unreadCnt = 0;\r\n\r\n this.getNewsCount();\r\n\r\n var theInterval = this.$interval(function(){\r\n this.getNewsCount();\r\n }.bind(this), 60000); \r\n \r\n }\r\n\r\n openResetPasswordModal() {\r\n ($('#ResetPasswordModal')).modal('show');\r\n }\r\n\r\n private toggleSidebar = () => {\r\n angular.element('.app').toggleClass('offscreen move-left');\r\n }\r\n\r\n private toggleSlider = () => {\r\n angular.element('.app').toggleClass('layout-chat-open');\r\n if (angular.element('.app').hasClass('layout-chat-open')) {\r\n this.ShiftService.customAll('getAdHoc').then((result) => {\r\n this.shifts = result;\r\n });\r\n }\r\n // this.$scope.$emit('getAdHocShiftsUp', null);\r\n }\r\n\r\n private toggleNewsSlider = () => {\r\n angular.element('.app').toggleClass('layout-news-open');\r\n if (angular.element('.app').hasClass('layout-news-open')) {\r\n this.NewsService.all().then((result) => {\r\n this.news = result;\r\n });\r\n }\r\n }\r\n\r\n showAvailModal() {\r\n this.currentShift = new IShift();\r\n this.currentShift.start = this.roundMinutes(new Date());\r\n this.currentShift.end = moment(this.currentShift.start).add(8, 'hour').toDate();\r\n ($('#check-availability-modal')).modal('show');\r\n }\r\n\r\n roundMinutes(date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n }\r\n\r\n getNewsCount() {\r\n if(this.isEmployee || this.isCustomer) {\r\n this.NewsService.getUnread().then(result => {\r\n\r\n var newitems = this.unreadCnt < result.size;\r\n this.unreadCnt = result.size;\r\n if(this.unreadCnt > 0) {\r\n\r\n if(this.unreadCnt == 1){\r\n var text = \"Er staat \"+ this.unreadCnt +\" nieuw bericht voor je klaar.\"\r\n } else {\r\n var text = \"Er staan \"+ this.unreadCnt +\" nieuwe berichten voor je klaar.\"\r\n }\r\n\r\n if(newitems) {\r\n \r\n this.SweetAlert.swal({\r\n title: 'Er zijn nieuwe nieuwsberichten',\r\n text: text,\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Nu lezen',\r\n cancelButtonText: 'Ik lees ze later',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.readLater = true;\r\n this.toggleNewsSlider();\r\n } else {\r\n this.readLater = true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\nexport const operandoNavbar : aboTheme.IComponent = {\r\n bindings: {\r\n userName: '<',\r\n shifts: '=',\r\n news: '=',\r\n currentShift: '='\r\n },\r\n controller: NavbarController,\r\n template: require('./navbar.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/navbar.component.ts","import { INewsItem, NewsService } from \"../services/index\";\r\n\r\nclass NewsPanelController {\r\n private news: INewsItem[];\r\n\r\n constructor( \r\n private NewsService: NewsService,\r\n private $state: ng.ui.IStateService,\r\n private $scope: ng.IScope) {\r\n 'ngInject'; \r\n }\r\n\r\n $onInit = () => {\r\n }\r\n\r\n setRead(id) {\r\n this.NewsService.customPut(id + '/read', {}).then(result => {\r\n this.NewsService.getList().then(result => {\r\n this.news = result.value;\r\n })\r\n });\r\n }\r\n}\r\n\r\nexport const newsPanelComponent = {\r\n bindings: {\r\n news: '<'\r\n },\r\n controller: NewsPanelController,\r\n template: require('./newsPanel.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main/newsPanel.component.ts","import { EnumService } from '../../../services/enum.service';\r\nclass AccountBasicInfoController {\r\n private onUpdate: any;\r\n private account: any;\r\n private type: any;\r\n\r\n constructor(private $state: ng.ui.IStateService, private EnumService: EnumService) {\r\n 'ngInject'; \r\n // console.log('AccountBasicInfoController');\r\n }\r\n\r\n submitAccountBasicInfo() {\r\n // console.log('update AccountBasicInfo');\r\n\r\n this.onUpdate({account: this.account});\r\n\r\n ($('#accountBasicInfoModal')).modal('hide');\r\n }\r\n}\r\n\r\nexport const accountBasicInfoComponent = {\r\n bindings: {\r\n type: '<',\r\n account: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: AccountBasicInfoController,\r\n template: require('./accountBasicInfoModal.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/accountBasicInfoModal.component.ts","class AccountsController implements ng.IComponentController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n // console.log('AccountsController');\r\n }\r\n}\r\n\r\nexport const accountsComponent : ng.IComponentOptions = {\r\n controller : AccountsController,\r\n template : require('./accounts.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/accounts.component.ts","import * as angular from 'angular';\r\nimport {\r\n AccountsService,\r\n NotesService,\r\n IAccount,\r\n INote,\r\n ILocation,\r\n TeamService,\r\n} from '../../../services';\r\n\r\nclass AccountsItemController {\r\n\r\n private accountEmployees: any;\r\n private account: IAccount;\r\n private accountsService: any;\r\n\r\n private notesService: any;\r\n private currentNote: any;\r\n private notes: INote[];\r\n private filteredNotes: INote[];\r\n private tags: string[];\r\n private selectedTag: string;\r\n\r\n private locations: ILocation[];\r\n\r\n private isNew: boolean;\r\n private sweetAlert: any;\r\n private activeTabIndex: number;\r\n\r\n private currentReminderInterval: any;\r\n private reminderIntervals: any;\r\n\r\n constructor(\r\n private AccountsService: AccountsService,\r\n private NotesService: NotesService,\r\n private TeamService: TeamService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private MasterdataService: aboMasterdata.IService,\r\n private SweetAlert: any,\r\n private $filter: any,\r\n ) {\r\n 'ngInject';\r\n // console.log('AccountsItemController');\r\n\r\n this.accountsService = AccountsService;\r\n this.notesService = NotesService;\r\n\r\n this.sweetAlert = SweetAlert;\r\n }\r\n\r\n $onInit = () => {\r\n this.activeTabIndex = 0;\r\n if(this.$stateParams['tab']){\r\n this.activeTabIndex = this.$stateParams['tab'];\r\n }\r\n\r\n if (!this.account) {\r\n this.account = new IAccount();\r\n this.isNew = true;\r\n ($('#accountBasicInfoModal')).modal('show');\r\n } else {\r\n \r\n }\r\n\r\n this.locations.forEach(location => {\r\n this.TeamService.customAll('location/' + location.id).then((result) => {\r\n location.teams = result;\r\n // console.log(result);\r\n });\r\n });\r\n\r\n this.reminderIntervals = this.reminderIntervals.reminderIntervals;\r\n this.reminderIntervals.forEach((item, index) => {\r\n item.index = index;\r\n });\r\n\r\n this.MasterdataService.getItems('NoteTags').then(res => {\r\n this.tags = res;\r\n });\r\n\r\n this.filterNotes();\r\n }\r\n\r\n filterNotes() {\r\n this.filteredNotes = this.$filter('filter')(this.notes, (note: INote): boolean => {\r\n if (!!this.selectedTag) {\r\n return note.tags.indexOf(this.selectedTag) !== -1;\r\n } else {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n submitAccount() {\r\n // console.log('update account');\r\n if (this.account.id == null) {\r\n if (this.account.name == null) {\r\n this.sweetAlert.swal('Please fill in the account name and save in order to create the account.');\r\n } else {\r\n this.saveAccount();\r\n }\r\n } else {\r\n this.accountsService.put(this.account.id, this.account);\r\n }\r\n }\r\n\r\n saveAccount() {\r\n this.accountsService.post(this.account).then(result => {\r\n this.$state.go('crm.accounts.item', { 'id': result.id });\r\n });\r\n }\r\n\r\n deleteAccount() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u '+ this.account.name +' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.accountsService.delete(this.account.id).then(() => {\r\n this.$state.go('^.list').then(() => { this.$state.reload(); });\r\n });\r\n } else {\r\n\r\n }\r\n }); \r\n }\r\n\r\n editAccountBasicInfoModal() {\r\n ($('#accountBasicInfoModal')).modal('show');\r\n }\r\n\r\n editContactInfoModal() {\r\n ($('#contactInfoModal')).modal('show');\r\n }\r\n\r\n editFinancialInfoModal() {\r\n (this.account).deliveryDay = new Date(Date.parse((this.account).deliveryDay));\r\n\r\n ($('#financialInfoModal')).modal('show');\r\n }\r\n\r\n updateNote(item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n }\r\n\r\n addNoteModal() {\r\n this.currentNote = null;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n updateNoteModal(item) {\r\n this.currentNote = item;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n submitNote(item) {\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.accountId = this.account.id;\r\n\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(result => {\r\n this.notes.push(result);\r\n });\r\n } else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n\r\n ($('#noteModal')).modal('hide');\r\n }\r\n\r\n deleteNote(item) {\r\n this.notes = this.notes.filter(note => note.id !== item.id);\r\n\r\n this.notesService.delete(item.id);\r\n }\r\n \r\n goBack() {\r\n window.history.go(-1);\r\n }\r\n\r\n public openProject = (item, action) => {\r\n this.$state.go('project.item', {'id': item.id})\r\n }\r\n\r\n submitReminderInterval(reminderInterval) {\r\n var itemToEdit = this.reminderIntervals.find(i => i.index === reminderInterval.index);\r\n if (!!itemToEdit) {\r\n itemToEdit = reminderInterval;\r\n } else {\r\n reminderInterval.index = this.reminderIntervals.length;\r\n this.reminderIntervals.push(reminderInterval);\r\n }\r\n this.accountsService.customPut(this.account.id + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(result => {\r\n this.currentReminderInterval = null;\r\n });\r\n }\r\n\r\n deleteReminderInterval(reminderInterval) {\r\n this.reminderIntervals = this.reminderIntervals.filter(i => i.index !== reminderInterval.index);\r\n this.accountsService.customPut(this.account.id + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(result => {\r\n })\r\n }\r\n}\r\n\r\nexport const accountsItemComponent = {\r\n bindings: {\r\n account: '<',\r\n contacts: '<',\r\n notes: '<',\r\n locations: '<',\r\n agreements: '<',\r\n accountEmployees: '<',\r\n reminderIntervals: '<'\r\n },\r\n controller: AccountsItemController,\r\n template: require('./accounts.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/accounts.item.component.ts","class AccountsListController implements ng.IComponentController {\r\n\r\n private menu: string;\r\n private sortType: string;\r\n\r\n constructor() {\r\n 'ngInject';\r\n // console.log('AccountsListController');\r\n }\r\n\r\n public $onInit = () => {\r\n this.sortType = 'name';\r\n this.menu = 'list';\r\n }\r\n}\r\n\r\nexport const accountsListComponent = {\r\n bindings: {\r\n accounts: '<'\r\n },\r\n controller: AccountsListController,\r\n template: require('./accounts.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/accounts.list.component.ts","class ContactInfoController {\r\n private onUpdate: any;\r\n private account: any;\r\n\r\n constructor(private $state: ng.ui.IStateService) {\r\n 'ngInject';\r\n // console.log('ContactInfoController');\r\n }\r\n\r\n submitContactInfo() {\r\n // console.log('update ContactInfo');\r\n\r\n this.onUpdate({ account: this.account });\r\n\r\n ($('#contactInfoModal')).modal('hide');\r\n }\r\n}\r\n\r\nexport const contactInfoComponent = {\r\n bindings: {\r\n account: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: ContactInfoController,\r\n template: require('./contactInfoModal.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/contactInfoModal.component.ts","class FinancialInfoController {\r\n private onUpdate: any;\r\n private account: any;\r\n\r\n constructor(private $state: ng.ui.IStateService) {\r\n 'ngInject';\r\n // console.log('FinancialInfoController');\r\n }\r\n\r\n submitFinancialInfo() {\r\n // console.log('update FinancialInfo');\r\n\r\n this.onUpdate({ account: this.account });\r\n\r\n ($('#financialInfoModal')).modal('hide');\r\n }\r\n}\r\n\r\nexport const financialInfoComponent = {\r\n bindings: {\r\n account: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: FinancialInfoController,\r\n template: require('./financialInfoModal.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/financialInfoModal.component.ts","import { AccountsService } from \"../../../services\";\r\nimport { resolve } from 'path';\r\n\r\ninterface IResolve {\r\n reminderIntervals: any;\r\n}\r\n\r\nclass ReminderIntervalController {\r\n private resolve: IResolve;\r\n private onUpdate: any;\r\n private onDelete: any;\r\n private reminderInterval: any;\r\n private reminderIntervals: any[];\r\n\r\n constructor(private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private AccountsService: AccountsService) {\r\n 'ngInject';\r\n // console.log('ReminderIntervalController');\r\n }\r\n\r\n public $onInit = () => {\r\n this.reminderIntervals = this.resolve.reminderIntervals.reminderIntervals;\r\n \r\n if (this.$stateParams['index']) {\r\n this.reminderInterval = this.reminderIntervals.find(s => s.index == this.$stateParams['index']);\r\n } else {\r\n this.reminderInterval = {};\r\n }\r\n }\r\n\r\n submit() {\r\n if (!this.reminderInterval.index) {\r\n this.reminderInterval.index = this.reminderIntervals.length;\r\n this.reminderIntervals.push(this.reminderInterval);\r\n }\r\n\r\n this.AccountsService.customPut(this.$stateParams['id'] + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(result => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n delete() {\r\n this.reminderIntervals = this.reminderIntervals.filter(i => i.index !== this.reminderInterval.index);\r\n this.AccountsService.customPut(this.$stateParams['id'] + '/nomatchfoundemailsettings', { reminderIntervals: this.reminderIntervals }).then(result => {\r\n this.closeModal();\r\n })\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 6}, {reload: true});\r\n }\r\n}\r\n\r\nexport const reminderIntervalComponent = {\r\n bindings: {\r\n resolve: '<'\r\n },\r\n controller: ReminderIntervalController,\r\n template: require('./reminderIntervalModal.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/accounts/reminderIntervalModal.component.ts","import { IEmployee } from '../../../services/employees.service';\r\nimport { IAccount, AgreementService, IAgreement, Masterdata } from \"../../../services/index\";\r\nimport * as _ from \"lodash\";\r\nimport * as moment from \"moment\";\r\ninterface IResolve {\r\n account: IAccount;\r\n agreements: IAgreement[];\r\n employees: IEmployee[];\r\n salaryScales: Masterdata[];\r\n}\r\n\r\nclass AgreementsItemController {\r\n salaryScales: Masterdata[];\r\n\r\n private resolve: IResolve;\r\n private account: IAccount;\r\n private agreement: IAgreement;\r\n private employees: IEmployee[];\r\n private byEmployee: boolean;\r\n\r\n constructor(\r\n private AgreementService: AgreementService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.account = this.resolve.account;\r\n this.employees = this.resolve.employees;\r\n this.salaryScales = this.resolve.salaryScales;\r\n var agreementId : string = this.$stateParams['agreementId'];\r\n if (agreementId) {\r\n this.agreement = _.find(this.resolve.agreements, { \"id\": agreementId });\r\n } else {\r\n this.agreement = new IAgreement();\r\n }\r\n if (this.agreement.employeeId) {\r\n this.byEmployee = true;\r\n }\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n // console.log('startDateBeforeRender');\r\n const todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0,0,0,0);\r\n // $dates.filter(function (date) {\r\n // return date.utcDateValue < todaySinceMidnight.getTime();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.agreement.dateTimeFrom) {\r\n var activeDate = moment(this.agreement.dateTimeFrom).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n public submitAgreement() {\r\n this.agreement.dateTimeFrom = moment(this.agreement.dateTimeFrom).format(\"YYYY-MM-DD HH:mm\");\r\n this.agreement.dateTimeTo = moment(this.agreement.dateTimeTo).format(\"YYYY-MM-DD HH:mm\");\r\n\r\n if(this.byEmployee){\r\n this.agreement.salaryScaleId = null;\r\n this.agreement.calculationIndex = null;\r\n } else {\r\n this.agreement.employeeId = null;\r\n this.agreement.grossHourlyWageValue = null;\r\n }\r\n\r\n if (this.agreement.id === undefined) {\r\n this.agreement.accountId = this.account.id;\r\n this.AgreementService.post(this.agreement).then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.AgreementService.put(this.agreement.id, this.agreement).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n this.AgreementService.delete(this.agreement.id).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 4}, {reload: true});\r\n }\r\n}\r\n\r\nexport const agreementsItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: AgreementsItemController,\r\n template: require('./agreements.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/agreements/agreements.item.component.ts","class AgreementsListController {\r\n public currentPage: number;\r\n public itemsPerPage: number;\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.currentPage = 1;\r\n this.itemsPerPage = 12;\r\n }\r\n\r\n public $onChanges = () => {\r\n \r\n }\r\n \r\n parseDate(item) {\r\n var date = new Date(item.start);\r\n return date;\r\n }\r\n}\r\n\r\nexport const agreementsListComponent = {\r\n bindings: {\r\n agreements: \"<\"\r\n },\r\n controller: AgreementsListController,\r\n template: require('./agreements.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/agreements/agreements.list.component.ts","import { EnumService } from '../../../services/enum.service';\r\nimport { AccountsService, \r\n IAccount, \r\n ILocation,\r\n LocationService,\r\n Masterdata\r\n } from '../../../services';\r\n\r\nclass ContactBasicInfoController {\r\n\r\n private onUpdate: any;\r\n private contact: any;\r\n private type: any;\r\n private accounts: IAccount[];\r\n private locations: ILocation[];\r\n private contactTags: Masterdata[];\r\n\r\n constructor(\r\n private $state: ng.ui.IStateService,\r\n private AccountsService: AccountsService,\r\n private LocationService: LocationService,\r\n private MasterdataService: aboMasterdata.IService,\r\n private EnumService: EnumService\r\n ) {\r\n 'ngInject';\r\n // console.log('ContactBasicInfoController');\r\n }\r\n\r\n public $onInit = () => {\r\n this.AccountsService.all().then((accounts) => {\r\n this.accounts = accounts;\r\n });\r\n\r\n if (this.contact.accountId) {\r\n this.getLocations();\r\n }\r\n\r\n this.getMasterdata();\r\n }\r\n\r\n submitContactBasicInfo() {\r\n // console.log('update ContactBasicInfo');\r\n\r\n this.onUpdate({ contact: this.contact });\r\n\r\n ($('#contactBasicInfoModal')).modal('hide');\r\n }\r\n\r\n accountSelected() {\r\n this.getLocations();\r\n }\r\n\r\n getLocations() {\r\n this.AccountsService.getChild(this.contact.accountId, 'locations').then((result: any) => {\r\n this.locations = result;\r\n });\r\n }\r\n\r\n getMasterdata() {\r\n this.MasterdataService.getItems('ContactTags').then(res => {\r\n this.contactTags = res;\r\n });\r\n }\r\n}\r\n\r\nexport const contactBasicInfoComponent = {\r\n bindings: {\r\n contact: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: ContactBasicInfoController,\r\n template: require('./contactBasicInfoModal.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/contacts/contactBasicInfoModal.component.ts","class ContactSocialController {\r\n private onUpdate: any;\r\n private contact: any;\r\n\r\n constructor(private $state: ng.ui.IStateService) {\r\n 'ngInject'; \r\n // console.log('ContactBasicInfoController');\r\n }\r\n\r\n submitSocialForm() {\r\n // console.log('update ContactBasicInfo');\r\n\r\n this.onUpdate({contact: this.contact});\r\n\r\n ($('#contactSocialModal')).modal('hide');\r\n }\r\n}\r\n\r\nexport const contactSocialComponent = {\r\n bindings: {\r\n contact: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: ContactSocialController,\r\n template: require('./contactSocialModal.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/contacts/contactSocialModal.component.ts","class ContactsController implements ng.IComponentController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n // console.log('ContactsController');\r\n }\r\n}\r\n\r\nexport const contactsComponent: ng.IComponentOptions = {\r\n controller: ContactsController,\r\n template: require('./contacts.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/contacts/contacts.component.ts","import * as angular from \"angular\";\r\nimport {\r\n AccountsService,\r\n IAccount,\r\n IContact,\r\n ContactsService,\r\n INote,\r\n NotesService,\r\n} from '../../../services';\r\n\r\nclass ContactsItemController {\r\n\r\n private contact: IContact;\r\n private contactsService: any;\r\n private fullName: string;\r\n\r\n private account: IAccount;\r\n\r\n private isNew: boolean;\r\n\r\n private notes: INote[];\r\n private notesService: any;\r\n private currentNote: any;\r\n\r\n private accountId: any;\r\n\r\n constructor(\r\n private ContactsService: ContactsService,\r\n private NotesService: NotesService,\r\n private AccountsService: AccountsService,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any,\r\n $stateParams: ng.ui.IStateParamsService\r\n ) {\r\n 'ngInject';\r\n // console.log('ContactsItemController');\r\n this.contactsService = ContactsService;\r\n this.notesService = NotesService;\r\n\r\n this.accountId = $stateParams['accountId'];\r\n\r\n angular.element(document).ready(() => {\r\n ($('#notes-table')).dataTable({\r\n \"pageLength\": 5,\r\n \"lengthChange\": false,\r\n \"searching\": false\r\n });\r\n });\r\n }\r\n\r\n $onInit = () => {\r\n if (this.contact == null) {\r\n this.contact = new IContact();\r\n this.isNew = true;\r\n ($('#contactBasicInfoModal')).modal('show');\r\n \r\n if (this.accountId) {\r\n this.contact.accountId =this.accountId;\r\n this.AccountsService.get(this.contact.accountId).then((account) => {\r\n this.account = account;\r\n });\r\n }\r\n\r\n } else {\r\n this.setFullName();\r\n // console.log(this.fullName);\r\n\r\n if (this.contact.accountId) {\r\n this.AccountsService.get(this.contact.accountId).then((account) => {\r\n this.account = account;\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n private setFullName = () => {\r\n this.fullName = [this.contact.firstName, this.contact.middleName, this.contact.lastName].join(' ');\r\n }\r\n\r\n submitContact() {\r\n if (this.contact.id == null) {\r\n this.saveContact();\r\n } else {\r\n this.contactsService.put(this.contact.id, this.contact).then(( data ) => {\r\n this.contact = data;\r\n this.setFullName();\r\n })\r\n\r\n }\r\n }\r\n\r\n saveContact() {\r\n if (this.accountId) {\r\n this.contact.accountId = this.accountId;\r\n }\r\n\r\n this.contactsService.post(this.contact).then(result => {\r\n this.$state.go('crm.contacts.item', { 'id': result.id }, { location: \"replace\" });\r\n });\r\n }\r\n\r\n deleteContact() {\r\n\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u '+ this.fullName + ' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.contactsService.delete(this.contact.id).then(() => {\r\n this.goBack()\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n editContactBasicInfoModal() {\r\n ($('#contactBasicInfoModal')).modal('show');\r\n }\r\n\r\n editContactSocialModal() {\r\n ($('#contactSocialModal')).modal('show');\r\n }\r\n\r\n updateNote(item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n }\r\n\r\n addNoteModal() {\r\n this.currentNote = null;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n updateNoteModal(item) {\r\n this.currentNote = item;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n submitNote(item) {\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.contactId = this.contact.id;\r\n\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(result => {\r\n this.notes.push(result);\r\n });\r\n } else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n\r\n ($('#noteModal')).modal('hide');\r\n }\r\n\r\n deleteNote(item) {\r\n this.notes = this.notes.filter(note => note.id !== item.id);\r\n\r\n this.notesService.delete(item.id);\r\n }\r\n\r\n goBack() {\r\n window.history.go(-1);\r\n }\r\n}\r\n\r\nexport const contactsItemComponent = {\r\n bindings: {\r\n contact: '<',\r\n notes: '<',\r\n },\r\n controller: ContactsItemController,\r\n template: require('./contacts.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/contacts/contacts.item.component.ts","\r\nimport { ContactsService, EnumService, IContact, IAccount, AccountsService, Masterdata } from '../../../services';\r\n\r\n\r\nclass ContactsListController {\r\n\r\n private search: string;\r\n private tag: string;\r\n private company: string;\r\n private contacts: IContact[];\r\n private accounts: IAccount[];\r\n private contactsService: any;\r\n private accountId: any;\r\n private contactTags: Masterdata[];\r\n\r\n constructor(\r\n private ContactsService: ContactsService,\r\n private MasterdataService: aboMasterdata.IService,\r\n private EnumService: EnumService,\r\n private $stateParams: ng.ui.IStateParamsService) {\r\n 'ngInject';\r\n // console.log('ContactsListController');\r\n\r\n this.contactsService = ContactsService;\r\n }\r\n\r\n public $onInit = () => {\r\n this.getMasterdata();\r\n }\r\n\r\n\r\n getMasterdata() {\r\n this.MasterdataService.getItems('ContactTags').then(res => {\r\n this.contactTags = res;\r\n });\r\n }\r\n\r\n\r\n emailToClipboard() {\r\n var emailsList = [];\r\n this.contacts.forEach(e => {\r\n if (e.emailAddress &&\r\n ((this.search && e.name.toUpperCase().indexOf(this.search.toUpperCase()) !== -1) || !this.search) &&\r\n ((this.tag && e.tags.indexOf(this.tag) !== -1) || !this.tag) &&\r\n ((this.company && e.accountName.toUpperCase().indexOf(this.company.toUpperCase()) !== -1) || !this.company)) {\r\n emailsList.push(e.emailAddress);\r\n }\r\n });\r\n\r\n // console.log(emailsList.join(';'));\r\n window.prompt(\"Ctrl+C to copy to clipboard, then paste in the BCC field of an email:\", emailsList.join(';'));\r\n }\r\n\r\n resetFilter() {\r\n this.company = '';\r\n this.search = '';\r\n this.tag = '';\r\n }\r\n}\r\n\r\nexport const contactsListComponent = {\r\n bindings: {\r\n contacts: '<',\r\n accounts: '<'\r\n },\r\n controller: ContactsListController,\r\n template: require('./contacts.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/contacts/contacts.list.component.ts","class CrmController implements ng.IComponentController {\r\n \r\n constructor() {\r\n 'ngInject';\r\n // console.log('CrmController');\r\n }\r\n}\r\n\r\nexport const crmComponent : ng.IComponentOptions = {\r\n controller : CrmController,\r\n template : require('./crm.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/crm.component.ts","import { INote, NotesService } from '../../services';\r\nimport * as angular from 'angular';\r\n\r\nclass CrmDashboardController implements ng.IComponentController {\r\n private sortTypeContacts: string;\r\n private sortType: string;\r\n\r\n private currentNote: any;\r\n private notes: INote[];\r\n private notesService: any;\r\n\r\n constructor(NotesService: NotesService, private $state: ng.ui.IStateService) {\r\n 'ngInject';\r\n // console.log('AccountsItemController');\r\n\r\n this.notesService = NotesService;\r\n\r\n this.sortType = 'name';\r\n this.sortTypeContacts = 'lastName';\r\n }\r\n\r\n updateNote(item, action) {\r\n switch (action) {\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n }\r\n\r\n updateNoteModal(item) {\r\n this.currentNote = item;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n submitNote(item) {\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(result => {\r\n this.notes.push(result);\r\n });\r\n } else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n\r\n ($('#noteModal')).modal('hide');\r\n }\r\n\r\n deleteNote(item) {\r\n this.notes = this.notes.filter(note => note.id !== item.id);\r\n\r\n this.notesService.delete(item.id);\r\n }\r\n}\r\n\r\nexport const crmDashboardComponent: ng.IComponentOptions = {\r\n bindings: { \r\n accounts: '<',\r\n contacts: '<',\r\n summary: '<',\r\n notes: '<'\r\n },\r\n controller: CrmDashboardController,\r\n template: require('./crm.dashboard.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/crm.dashboard.component.ts","import {\r\n AccountsService,\r\n ContactsService,\r\n DashboardService,\r\n LeadsService,\r\n NotesService,\r\n TasksService,\r\n LocationService,\r\n EmployeesService\r\n} from '../../services';\r\n\r\nexport const crmState: aboTheme.IState = {\r\n parent: \"app\",\r\n name: \"crm\",\r\n url: \"/crm\",\r\n redirectTo: \"crm.dashboard\",\r\n component: \"crmComponent\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\n\r\nexport const crmDashboardState: aboTheme.IState = {\r\n\r\n name: \"crm.dashboard\",\r\n url: \"/dashboard\",\r\n resolve: {\r\n accounts: (AccountsService: AccountsService) => { 'ngInject'; return AccountsService.all(); },\r\n contacts: (ContactsService: ContactsService) => { 'ngInject'; return ContactsService.all(); }, \r\n summary: (DashboardService: DashboardService) => { 'ngInject'; return DashboardService.one(); },\r\n notes: (NotesService: NotesService) => { 'ngInject'; return NotesService.all({sortfield: 'date'}); },\r\n },\r\n views: {\r\n \"main\": 'crmDashboardComponent'\r\n }\r\n};\r\n\r\n\r\nexport const accountsState: aboTheme.IState = {\r\n name: \"crm.accounts\",\r\n url: \"/accounts\",\r\n redirectTo: \"crm.accounts.list\",\r\n views: {\r\n \"main\" : \"accountsComponent\"\r\n }\r\n};\r\n\r\nexport const accountsListState: aboTheme.IState = {\r\n name: \"crm.accounts.list\",\r\n url: \"/list\", \r\n resolve: {\r\n accounts: (AccountsService: AccountsService) => { 'ngInject'; return AccountsService.all(); },\r\n\r\n },\r\n views: {\r\n \"main\": 'accountsListComponent'\r\n }\r\n};\r\n\r\nexport const accountsItemState: aboTheme.IState = {\r\n name: \"crm.accounts.item\",\r\n url: \"/:id\",\r\n params : {\r\n \"tab\" : null\r\n },\r\n resolve: {\r\n account: (AccountsService: AccountsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.get($stateParams['id']); } },\r\n contacts: (AccountsService: AccountsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.getChild($stateParams['id'], 'contacts'); } },\r\n notes: (AccountsService: AccountsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.getChild($stateParams['id'], 'notes' ); } },\r\n locations: (AccountsService: AccountsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.getChild($stateParams['id'], 'locations'); } },\r\n agreements: (AccountsService: AccountsService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.customGet($stateParams['id'] + '/agreements'); } },\r\n accountEmployees: (AccountsService: AccountsService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.customGet($stateParams['id'] + '/employees'); } },\r\n reminderIntervals: (AccountsService: AccountsService, $stateParams: ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return AccountsService.customGet($stateParams['id'] + '/nomatchfoundemailsettings'); } },\r\n },\r\n views: {\r\n \"main\": 'accountsItemComponent'\r\n }\r\n};\r\n\r\nexport const locationsItemState: aboTheme.IState = {\r\n\r\n name: \"crm.accounts.item.location\",\r\n url: \"/location/:locationId\",\r\n params: {\r\n \"locationId\": null\r\n },\r\n modal: ['account', 'locations'],\r\n resolve: {\r\n },\r\n component: 'locationsItemComponent'\r\n\r\n};\r\n\r\nexport const teamsItemState: aboTheme.IState = {\r\n\r\n name: \"crm.accounts.item.team\",\r\n url: \"/team/:locationId/:teamId\",\r\n params: {\r\n \"locationId\": null,\r\n \"teamId\": null\r\n },\r\n modal: ['locations', 'contacts'],\r\n resolve: {\r\n },\r\n component: 'teamsItemComponent'\r\n\r\n};\r\n\r\nexport const agreementsItemState: aboTheme.IState = {\r\n\r\n name: \"crm.accounts.item.agreement\",\r\n url: \"/agreement/:agreementId\",\r\n params: {\r\n \"agreementId\": null\r\n },\r\n modal: ['account', 'agreements'],\r\n resolve: {\r\n employees: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.getEmployeesByStatus(); },\r\n salaryScales : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('WageCodes'); }\r\n },\r\n component: 'agreementsItemComponent'\r\n\r\n};\r\n\r\nexport const accountEmployeesItemState: aboTheme.IState = {\r\n\r\n name: \"crm.accounts.item.employee\",\r\n url: \"/employee/:accountEmployeeId\",\r\n params: {\r\n \"accountEmployeeId\": null\r\n },\r\n modal: ['account', 'accountEmployees'],\r\n resolve: {\r\n employees: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.getEmployeesByStatus(); }\r\n },\r\n component: 'accountEmployeesItemComponent'\r\n\r\n};\r\n\r\n\r\nexport const contactsState: aboTheme.IState = {\r\n name: \"crm.contacts\",\r\n url: \"/contacts\",\r\n redirectTo: \"crm.contacts.list\",\r\n views: {\r\n \"main\" : \"contactsComponent\"\r\n }\r\n};\r\n\r\nexport const contactsListState: aboTheme.IState = {\r\n name: \"crm.contacts.list\",\r\n url: \"/list\",\r\n params: {\r\n accountId: null,\r\n },\r\n resolve: {\r\n accounts: (AccountsService: AccountsService) => { 'ngInject' ; return AccountsService.all() },\r\n contacts: (ContactsService: ContactsService) => { 'ngInject'; return ContactsService.all() },\r\n },\r\n views: {\r\n \"main\": 'contactsListComponent'\r\n }\r\n};\r\n\r\nexport const contactsItemState: aboTheme.IState = {\r\n name: \"crm.contacts.item\",\r\n url: \"/:id\",\r\n params: {\r\n accountId: null,\r\n },\r\n resolve: {\r\n contact: (ContactsService: ContactsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ContactsService.get($stateParams['id']); } },\r\n notes: (ContactsService: ContactsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return ContactsService.getChild($stateParams['id'], 'notes'); } },\r\n },\r\n views: {\r\n \"main\": 'contactsItemComponent'\r\n }\r\n};\r\n\r\nexport const leadsState: aboTheme.IState = {\r\n name: \"crm.leads\",\r\n url: \"/leads\",\r\n redirectTo: \"crm.leads.list\",\r\n views: {\r\n \"main\" : \"leadsComponent\"\r\n }\r\n};\r\n\r\nexport const leadsListState: aboTheme.IState = {\r\n name: \"crm.leads.list\",\r\n url: \"/list\",\r\n resolve: {\r\n leads: (LeadsService: LeadsService) => { 'ngInject'; return LeadsService.all(); }\r\n },\r\n views: {\r\n \"main\": 'leadsListComponent'\r\n }\r\n};\r\n\r\nexport const leadsItemState: aboTheme.IState = {\r\n name: \"crm.leads.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n lead: (LeadsService: LeadsService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') { return LeadsService.get($stateParams['id']); } }\r\n },\r\n views: {\r\n \"main\": 'leadsItemComponent'\r\n }\r\n};\r\n\r\nexport const reminderItemState: aboTheme.IState = {\r\n\r\n name: \"crm.accounts.item.reminder\",\r\n url: \"/reminder/:index\",\r\n params: {\r\n \"index\": null\r\n },\r\n modal: ['reminderIntervals'],\r\n resolve: {\r\n },\r\n component: 'reminderIntervalComponent'\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/crm.states.ts","import * as _ from \"lodash\";\r\nimport * as moment from \"moment\";\r\nimport { IAccount, IEmployee } from \"../../../services/index\";\r\nimport { AccountEmployeeService } from \"../../../services/accountEmployee.service\";\r\ninterface IResolve {\r\n account: IAccount;\r\n accountEmployees: any;\r\n employees: IEmployee[];\r\n}\r\n\r\nclass AccountEmployeesItemController {\r\n\r\n private resolve: IResolve;\r\n private account: IAccount;\r\n private accountEmployees: any;\r\n private accountEmployee: any;\r\n private employees: IEmployee[];\r\n\r\n constructor(\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private AccountEmployeeService: AccountEmployeeService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.account = this.resolve.account;\r\n this.employees = this.resolve.employees;\r\n this.accountEmployees = this.resolve.accountEmployees;\r\n var accountEmployeeId : string = this.$stateParams['accountEmployeeId'];\r\n if (accountEmployeeId) {\r\n this.accountEmployee = _.find(this.resolve.accountEmployees, { \"id\": accountEmployeeId });\r\n } else {\r\n this.accountEmployee = {};\r\n // console.log('new accountEmployee');\r\n }\r\n }\r\n\r\n endDateBeforeRender($dates) {\r\n // console.log('endDateBeforeRender');\r\n const todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0,0,0,0);\r\n // console.log($dates);\r\n // $dates.filter(function (date) {\r\n // return date.utcDateValue < todaySinceMidnight.getTime();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n }\r\n\r\n public submitAccountEmployee() {\r\n this.accountEmployee.dateTimeTo = moment(this.accountEmployee.dateTimeTo).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.accountEmployee.id === undefined) {\r\n this.accountEmployee.accountId = this.account.id;\r\n this.AccountEmployeeService.post(this.accountEmployee).then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.AccountEmployeeService.put(this.accountEmployee.id, this.accountEmployee).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n this.AccountEmployeeService.delete(this.accountEmployee.id).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 5}, {reload: true});\r\n }\r\n}\r\n\r\nexport const accountEmployeesItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: AccountEmployeesItemController,\r\n template: require('./employees.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/employees/employees.item.component.ts","class AccountEmployeesListController {\r\n public currentPage: number;\r\n public itemsPerPage: number;\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.currentPage = 1;\r\n this.itemsPerPage = 12;\r\n }\r\n \r\n parseDate(item) {\r\n var date = new Date(item.start);\r\n return date;\r\n }\r\n}\r\n\r\nexport const accountEmployeesListComponent = {\r\n bindings: {\r\n accountEmployees: \"<\"\r\n },\r\n controller: AccountEmployeesListController,\r\n template: require('./employees.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/employees/employees.list.component.ts","import { agreementsItemComponent } from './agreements/agreements.item.component';\r\nimport { agreementsListComponent } from './agreements/agreements.list.component';\r\nimport { AgreementService } from '../../services/agreements.service';\r\nimport { TeamService } from '../../services/team.service';\r\nimport {\r\n AccountsService,\r\n ContactsService,\r\n DashboardService,\r\n LeadsService,\r\n NotesService,\r\n TasksService\r\n} from '../../services';\r\nimport { contactSocialComponent } from './contacts/contactSocialModal.component';\r\nimport { leadsInfoComponent } from './leads/leadsInfoModal.component';\r\nimport { contactBasicInfoComponent } from './contacts/contactBasicInfoModal.component';\r\nimport { financialInfoComponent } from './accounts/financialInfoModal.component';\r\nimport { contactInfoComponent } from './accounts/contactInfoModal.component';\r\nimport { accountBasicInfoComponent } from './accounts/accountBasicInfoModal.component';\r\nimport { crmNoteComponent } from './notes/note.component';\r\nimport { leadsItemComponent } from './leads/leads.item.component';\r\nimport { leadsListComponent } from './leads/leads.list.component';\r\nimport { leadsComponent } from './leads/leads.component';\r\nimport { crmDashboardComponent } from './crm.dashboard.component';\r\nimport { contactsItemComponent } from './contacts/contacts.item.component';\r\nimport { contactsListComponent } from './contacts/contacts.list.component';\r\nimport { contactsComponent } from './contacts/contacts.component';\r\nimport { accountsItemComponent } from './accounts/accounts.item.component';\r\nimport { accountsListComponent } from './accounts/accounts.list.component';\r\nimport { accountsComponent } from './accounts/accounts.component';\r\nimport { crmComponent } from './crm.component';\r\nimport {\r\n accountsItemState,\r\n accountsListState,\r\n accountsState,\r\n contactsItemState,\r\n contactsListState,\r\n contactsState,\r\n crmDashboardState,\r\n crmState,\r\n leadsItemState,\r\n leadsListState,\r\n leadsState,\r\n locationsItemState,\r\n teamsItemState,\r\n agreementsItemState,\r\n accountEmployeesItemState,\r\n reminderItemState\r\n} from './crm.states';\r\nimport { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { listComponent } from \"../shared/list.component\";\r\nimport { locationsListComponent } from \"./locations/locations.list.component\";\r\nimport { locationsItemComponent } from \"./locations/locations.item.component\";\r\nimport { teamsListComponent } from \"./teams/teams.list.component\";\r\nimport { teamsItemComponent } from \"./teams/teams.item.component\";\r\nimport { userAccountComponent } from \"../shared/user-account/user-account.component\";\r\nimport { accountEmployeesListComponent } from \"./employees/employees.list.component\";\r\nimport { accountEmployeesItemComponent } from \"./employees/employees.item.component\";\r\nimport { AccountEmployeeService } from \"../../services/accountEmployee.service\";\r\nimport { reminderIntervalComponent } from './accounts/reminderIntervalModal.component';\r\n\r\nconst crmAppModule: aboTheme.INgModule = {\r\n components: {\r\n crmComponent, crmDashboardComponent,\r\n accountsComponent, accountsListComponent, accountsItemComponent,\r\n accountBasicInfoComponent, contactInfoComponent, financialInfoComponent,\r\n contactsComponent, contactsListComponent, contactsItemComponent,\r\n contactBasicInfoComponent,\r\n leadsComponent, leadsListComponent, leadsItemComponent,\r\n crmNoteComponent, leadsInfoComponent, contactSocialComponent,\r\n listComponent, locationsListComponent, locationsItemComponent,\r\n teamsListComponent, teamsItemComponent, userAccountComponent,\r\n agreementsListComponent, agreementsItemComponent,\r\n accountEmployeesListComponent, accountEmployeesItemComponent,\r\n reminderIntervalComponent\r\n },\r\n states: [crmState, crmDashboardState,\r\n accountsState, accountsListState, accountsItemState,\r\n contactsState, contactsListState, contactsItemState,\r\n leadsState, leadsListState, leadsItemState,\r\n locationsItemState, teamsItemState, agreementsItemState, accountEmployeesItemState,\r\n reminderItemState],\r\n services: { ContactsService, DashboardService, AccountsService, NotesService, TasksService, LeadsService, TeamService, AgreementService, AccountEmployeeService }\r\n};\r\n\r\nloadNg1Module(ngmodule, crmAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/index.ts","class LeadsController implements ng.IComponentController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n // console.log('LeadsController');\r\n }\r\n}\r\n\r\nexport const leadsComponent : ng.IComponentOptions = {\r\n controller : LeadsController,\r\n template : require('./leads.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/leads/leads.component.ts","import { ILead, LeadsService } from '../../../services';\r\n\r\nclass LeadsItemController {\r\n\r\n private lead: ILead;\r\n private leadsService: any;\r\n\r\n constructor(LeadsService: LeadsService, private $state: ng.ui.IStateService) {\r\n 'ngInject'; \r\n // console.log('LeadsItemController');\r\n this.leadsService = LeadsService;\r\n }\r\n\r\n submitLead() {\r\n // console.log('update lead');\r\n\r\n if (this.lead.id == null) {\r\n this.saveLead();\r\n } else {\r\n this.leadsService.put(this.lead.id, this.lead);\r\n }\r\n }\r\n\r\n saveLead() {\r\n this.leadsService.post(this.lead).then(result => {\r\n this.$state.go('crm.leads.item', {'id': result.id});\r\n });\r\n }\r\n\r\n deleteLead() {\r\n // console.log('delete lead');\r\n this.leadsService.delete(this.lead.id);\r\n\r\n this.$state.go('^.list').then(() => { this.$state.reload(); });\r\n }\r\n}\r\n\r\nexport const leadsItemComponent = {\r\n bindings: { \r\n lead: '<'\r\n },\r\n controller : LeadsItemController,\r\n template : require('./leads.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/leads/leads.item.component.ts","import { ILead, LeadsService } from '../../../services';\r\nclass LeadsListController {\r\n \r\n private leads: ILead[];\r\n\r\n constructor(private LeadsService: LeadsService) {\r\n \"ngInject\";\r\n }\r\n\r\n public submitLead = () => {\r\n this.LeadsService.all().then((leads)=> {\r\n this.leads = leads;\r\n });\r\n }\r\n \r\n}; \r\n\r\n\r\n\r\nexport const leadsListComponent = {\r\n bindings: {\r\n leads: '<'\r\n },\r\n controller: LeadsListController,\r\n template: require('./leads.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/leads/leads.list.component.ts","import { ILead, LeadsService } from '../../../services';\r\n\r\nclass LeadsInfoController {\r\n\r\n private onUpdate: any;\r\n private lead: ILead;\r\n private leadsService: any;\r\n\r\nconstructor(LeadsService: LeadsService, private $state: ng.ui.IStateService) {\r\n 'ngInject';\r\n // console.log('LeadsInfoController');\r\n this.leadsService = LeadsService;\r\n }\r\n\r\n submitLead() {\r\n // console.log('update lead');\r\n\r\n if (this.lead.id == null) {\r\n this.saveLead();\r\n } else {\r\n this.leadsService.put(this.lead.id, this.lead);\r\n }\r\n }\r\n\r\n saveLead() {\r\n this.leadsService.post(this.lead).then(result => {\r\n this.onUpdate();\r\n ($('#leadsModal')).modal('hide');\r\n //this.$state.go('crm.leads.list').then(() => { this.$state.reload(); });\r\n });\r\n }\r\n\r\n deleteLead() {\r\n // console.log('delete lead');\r\n this.leadsService.delete(this.lead.id);\r\n\r\n this.$state.go('^.list').then(() => { this.$state.reload(); });\r\n }\r\n}\r\n\r\nexport const leadsInfoComponent = {\r\n bindings: {\r\n lead: '<',\r\n onUpdate: \"&\"\r\n },\r\n controller: LeadsInfoController,\r\n template: require('./leadsInfoModal.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/leads/leadsInfoModal.component.ts","import { IAccount, LocationService, ILocation } from \"../../../services/index\";\r\nimport * as _ from \"lodash\";\r\ninterface IResolve {\r\n account: IAccount;\r\n locations: ILocation[];\r\n}\r\n\r\nclass LocationsItemController {\r\n\r\n private resolve: IResolve;\r\n private account: IAccount;\r\n private location: ILocation;\r\n private close: any;\r\n\r\n constructor(\r\n private LocationService: LocationService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => {\r\n this.account = this.resolve.account;\r\n var locationId : string = this.$stateParams['locationId'];\r\n if (locationId != '') {\r\n this.location = _.find(this.resolve.locations, { 'id': locationId });\r\n } else {\r\n this.location = new ILocation();\r\n }\r\n }\r\n\r\n public submitLocation() {\r\n if (this.location.id === undefined) {\r\n this.location.accountId = this.account.id;\r\n this.LocationService.post(this.location).then((data) => {\r\n this.closeModal();\r\n });\r\n // this.locations.push(this.location);\r\n } else {\r\n this.LocationService.put(this.location.id, this.location).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u '+ this.location.name +' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.LocationService.delete(this.location.id).then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n\r\n }\r\n }); \r\n \r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 3}, {reload: true});\r\n }\r\n}\r\n\r\nexport const locationsItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: LocationsItemController,\r\n template: require('./locations.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/locations/locations.item.component.ts","class LocationsListController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => {\r\n }\r\n\r\n public $onChanges = () => {\r\n \r\n }\r\n}\r\n\r\nexport const locationsListComponent = {\r\n bindings: {\r\n locations: \"<\"\r\n },\r\n controller: LocationsListController,\r\n template: require('./locations.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/locations/locations.list.component.ts","import { INote, NotesService } from '../../../services';\r\nimport * as _ from \"lodash\";\r\nimport * as moment from \"moment\";\r\n\r\nclass NoteController {\r\n public notes: INote[];\r\n private note: INote;\r\n private tags: string[];\r\n private tag: string;\r\n private onUpdate: any;\r\n\r\n constructor(\r\n private MasterdataService: aboMasterdata.IService,\r\n private $state: ng.ui.IStateService,\r\n private NotesService: NotesService,\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n $onInit = () => {\r\n this.MasterdataService.getItems('NoteTags').then(res => {\r\n this.tags = res;\r\n });\r\n }\r\n\r\n focusInput() {\r\n document.getElementById('input').focus();\r\n }\r\n\r\n submitNote() {\r\n this.note.endDate = moment(this.note.endDate).format(\"YYYY-MM-DD HH:mm\");\r\n this.onUpdate({ note: this.note });\r\n }\r\n\r\n endDateBeforeRender($dates) {\r\n const todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0, 0, 0, 0);\r\n }\r\n}\r\n\r\nexport const crmNoteComponent = {\r\n bindings: {\r\n note: '<',\r\n onUpdate: \"&\",\r\n },\r\n controller: NoteController,\r\n template: require('./note.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/notes/note.component.ts","import { TeamService, ITeam, ILocation, IContact } from \"../../../services/index\";\r\nimport * as _ from \"lodash\";\r\ninterface IResolve {\r\n locations: ILocation[];\r\n contacts: IContact[];\r\n}\r\n\r\nclass TeamsItemController {\r\n\r\n private resolve: IResolve;\r\n private location: ILocation;\r\n private team: ITeam;\r\n private contacts: IContact[];\r\n private newContact: IContact;\r\n\r\n constructor(\r\n private TeamService: TeamService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $timeout: ng.ITimeoutService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => {\r\n this.contacts = this.resolve.contacts;\r\n var locationId : string = this.$stateParams['locationId'];\r\n var teamId : string = this.$stateParams['teamId'];\r\n this.location = _.find(this.resolve.locations, { 'id': locationId });\r\n this.$timeout(() => {\r\n if (teamId != '') {\r\n this.TeamService.get(teamId).then((result) => {\r\n this.team = result;\r\n });\r\n // this.team = _.find(this.location.teams, { 'id': teamId });\r\n } else {\r\n this.team = new ITeam();\r\n }\r\n\r\n // console.log(this.location);\r\n // console.log(this.location.teams);\r\n // console.log(teamId);\r\n });\r\n }\r\n\r\n public submitTeam() {\r\n if (this.team.id === undefined) {\r\n this.team.locationId = this.location.id.toString();\r\n this.TeamService.post(this.team).then((data) => {\r\n this.closeModal();\r\n });\r\n // this.teams.push(this.team);\r\n } else {\r\n this.TeamService.put(this.team.id, this.team).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u '+ this.team.name +' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.TeamService.delete(this.team.id).then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n\r\n }\r\n }); \r\n \r\n }\r\n\r\n addContact() {\r\n // console.log(this.newContact);\r\n var teamContact = { teamId: this.team.id, contactId: this.newContact.id };\r\n this.TeamService.postChild(teamContact, this.team.id, 'teamContacts').then((result) => {\r\n this.$state.go('.', {tab: 2}, {reload: true});\r\n // teamContact = result;\r\n // teamContact.contactName = this.newContact.name;\r\n // this.team.teamContacts.push(teamContact);\r\n });\r\n }\r\n\r\n deleteContact(event, item) {\r\n event.stopPropagation();\r\n this.TeamService.deleteChild(item.id, this.team.id, 'teamContacts').then(() => {\r\n this.$state.go('.', {tab: 2}, {reload: true});\r\n // this.team.teamContacts = this.team.teamContacts.filter(tc => tc.id != item.id);\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 3}, {reload: true});\r\n }\r\n\r\n copyGuid() {\r\n window.navigator['clipboard'].writeText(this.team.id.toString());\r\n alert(\"De Guid van \" + this.team.name + \"is gekopieerd\");\r\n }\r\n}\r\n\r\nexport const teamsItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: TeamsItemController,\r\n template: require('./teams.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/teams/teams.item.component.ts","class TeamsListController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => {\r\n }\r\n\r\n public $onChanges = () => {\r\n \r\n }\r\n}\r\n\r\nexport const teamsListComponent = {\r\n bindings: {\r\n teams: \"<\",\r\n locationId: \"<\"\r\n },\r\n controller: TeamsListController,\r\n template: require('./teams.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/crm/teams/teams.list.component.ts","import { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { customerShiftComponent } from \"./shift.component\";\r\nimport { customerShiftCalendarComponent } from \"./shift.calendar.component\";\r\nimport { customerShiftState, customerShiftCalendarState, customerShiftCalendarItemState, customerShiftListState, customerShiftListItemState } from \"./shift.states\";\r\n\r\nconst applicationsAppModule: aboTheme.INgModule = {\r\n components: {customerShiftComponent, customerShiftCalendarComponent},\r\n states: [ customerShiftState, customerShiftCalendarState, customerShiftCalendarItemState, customerShiftListState, customerShiftListItemState ],\r\n services: {}\r\n};\r\n\r\nloadNg1Module(ngmodule, applicationsAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/customerShifts/index.ts","import { CalendarService, ICalendarShift } from '../../services/calendar.service';\r\nimport { ShiftService } from '../../services';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nclass ShiftCalendarController implements ng.IComponentController {\r\n\r\n statuses(arg0: any, arg1: any): any {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n private shifts: ICalendarShift[];\r\n\r\n private uiConfig: any;\r\n private eventSources: any = [];\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private CalendarService: CalendarService,\r\n private $state: ng.ui.IStateService,\r\n private uiCalendarConfig: any,\r\n private $scope: ng.IScope,\r\n private $compile: ng.ICompileService,\r\n private $sce: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n // console.log('Customer ShiftCalendarController');\r\n \r\n this.eventSources = [this.getEvents];\r\n\r\n this.uiConfig = {\r\n\r\n calendar: {\r\n\r\n height: 700,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: true,\r\n\r\n axisFormat: 'h:mm',\r\n\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: true,\r\n eventClick: this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: this.eventRender\r\n }\r\n };\r\n\r\n this.ShiftService.subscribe('ShiftCalendarController', (type) => {\r\n var newShift;\r\n var calendarItem;\r\n switch (type) {\r\n case 'post': {\r\n newShift = this.ShiftService.item;\r\n calendarItem = new ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n this.shifts.push(calendarItem);\r\n break;\r\n }\r\n case 'put': {\r\n this.shifts = this.shifts.filter(s => s.shift.id !== newShift.id);\r\n if (this.ShiftService.item.status !== 99) {\r\n newShift = this.ShiftService.item;\r\n calendarItem = new ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n this.shifts.push(calendarItem);\r\n }\r\n break;\r\n }\r\n case 'delete': {\r\n this.shifts = this.shifts.filter(s => s.shift.id !== this.ShiftService.itemId);\r\n break;\r\n }\r\n }\r\n\r\n this.uiCalendarConfig.calendars['shiftsCalendar'].fullCalendar('refetchEvents');\r\n });\r\n }\r\n\r\n private openItem = (event) => {\r\n //this.$state.go('.item', { 'id': event.shift.id });\r\n this.$state.go('customerShifts.list.item', { 'id': event.shift.id, 'start' : event.shift.start });\r\n }\r\n\r\n // private eventRender = (event, element, view) => {\r\n \r\n // element.attr({\r\n // 'uib-tooltip': event.title,\r\n // 'tooltip-append-to-body': true\r\n // });\r\n // if (moment().isBefore(event.start)) {\r\n // element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor });\r\n // } else {\r\n // element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor, 'opacity': 0.7 });\r\n // }\r\n\r\n // this.$compile(element)(this.$scope);\r\n // }\r\n private eventRender = (event, element, view) => {\r\n // var status : any = _.find(this.statuses, {code: event.status.toString()});\r\n // var statusName = status ? status.name : \"\";\r\n // var eventTitle = event.title + \" - \" + event.shift.teamName + \"
    \" + statusName + \"\";\r\n var color = event.statusColor;\r\n \r\n if (moment().isBefore(event.start)) {\r\n element.css({ 'background-color': color, 'border-color': color });\r\n } else {\r\n element.css({ 'background-color': color, 'border-color': color, 'opacity': 0.7 });\r\n }\r\n\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'tooltip-append-to-body': true\r\n });\r\n // element.tooltip({container: \"body\", title: eventTitle, placement: \"top\", html:true }); \r\n // var title = element.find('.fc-title, .fc-list-item-title'); \r\n // title.html(eventTitle);\r\n\r\n this.$compile(element)(this.$scope);\r\n }\r\n\r\n private getEvents = (start, end, timezone, callback) => {\r\n this.CalendarService.all({ 'start': start.toDate() , 'end': end.toDate() }).then((events) => {\r\n this.shifts = events;\r\n var employeeName;\r\n this.shifts.forEach(s => {\r\n employeeName = s.shift.employeeDisplayName || '-';\r\n s.title = s.title + '\\n' + employeeName;\r\n });\r\n callback(events);\r\n });\r\n }\r\n\r\n public $onDestroy = () => {\r\n this.ShiftService.unsubscribe('ShiftCalendarController');\r\n }\r\n}\r\n\r\nexport const customerShiftCalendarComponent: ng.IComponentOptions = {\r\n controller: ShiftCalendarController,\r\n bindings: {\r\n statuses: \"<\"\r\n },\r\n template: require('./shift.calendar.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/customerShifts/shift.calendar.component.ts","class ShiftController implements ng.IComponentController {\r\n\r\n constructor(\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n}\r\n\r\nexport const customerShiftComponent: ng.IComponentOptions = {\r\n controller: ShiftController,\r\n template: require('./shift.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/customerShifts/shift.component.ts","import { ShiftService, EmployeesService, AccountsService } from '../../services';\r\nimport * as moment from 'moment';\r\nimport { AuthService } from \"../../authorization/services/index\";\r\n\r\nexport const customerShiftState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"customerShifts\",\r\n url: \"/customerShifts\",\r\n component: 'customerShiftComponent',\r\n redirectTo: 'customerShifts.calendar',\r\n data: {\r\n permissions: {\r\n only: ['CUSTOMER'],\r\n redirectTo: 'shifts'\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const customerShiftCalendarState: aboTheme.IState = {\r\n\r\n name: \"customerShifts.calendar\",\r\n url: \"/calendar\",\r\n resolve: {\r\n statuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); }\r\n },\r\n views: {\r\n \"main\": 'customerShiftCalendarComponent'\r\n }\r\n\r\n};\r\n\r\nexport const customerShiftCalendarItemState = {\r\n\r\n name: \"customerShifts.calendar.item\",\r\n url: \"/item/:id\",\r\n modal: true,\r\n size: \"lg\",\r\n component: 'shiftItemComponent',\r\n resolve: {\r\n shift: (ShiftService: ShiftService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n },\r\n functions: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n accounts: (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); },\r\n employees: (AccountsService: AccountsService, AuthService: AuthService) => {\r\n 'ngInject';\r\n return AccountsService.customGet('employees');\r\n },\r\n statuses: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); }\r\n }\r\n};\r\n\r\nexport const customerShiftListState: aboTheme.IState = {\r\n name: \"customerShifts.list\",\r\n url: \"/list\",\r\n views: {\r\n \"main\": 'shiftListComponent'\r\n },\r\n resolve: {\r\n functions: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n statuses: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); },\r\n accounts: (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); },\r\n employees: (EmployeesService: EmployeesService) => { \"ngInject\"; return EmployeesService.getEmployeesByStatus(); },\r\n },\r\n data: {\r\n contentClasses: 'no-padding'\r\n }\r\n};\r\n\r\nexport const customerShiftListItemState = {\r\n\r\n name: \"customerShifts.list.item\",\r\n url: \"/item/:id\",\r\n resolve: {\r\n shift: (ShiftService: ShiftService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n },\r\n //functions: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n //statuses: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); }\r\n },\r\n views: {\r\n \"shiflistitem@customerShifts.list\": 'shiftListItemComponent'\r\n },\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/customerShifts/shift.states.ts","import { EmployeeAvailabilityService } from './../../../services/employeeAvailability.service';\r\nimport { IGetListParams } from './../../../base/base.service';\r\nimport { IEmployeeAvailability } from '../../../services/employeeAvailability.service';\r\n\r\nclass DashboardAvailableEmployeesController {\r\n private employeeAvailability: IEmployeeAvailability[];\r\n constructor(private EmployeeAvailabilityService: EmployeeAvailabilityService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.getEmployeeAvailability();\r\n }\r\n\r\n public getEmployeeAvailability = () => {\r\n const params: IGetListParams = {\r\n limit: 10,\r\n sortfield: 'createdOn',\r\n sortorder: 'desc'\r\n }\r\n this.EmployeeAvailabilityService.all(params).then((employeeAvailability) => {\r\n this.employeeAvailability = employeeAvailability;\r\n })\r\n }\r\n}\r\n\r\nexport const dashboardAvailableEmployeesComponent = {\r\n controller: DashboardAvailableEmployeesController,\r\n template: require('./dashboardAvailableEmployees.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/availableEmployees/dashboardAvailableEmployees.component.ts","import { EmployeesService, IEmployee } from '../../services/employees.service';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nclass DashboardBirthdayController {\r\n private employees: IEmployee[];\r\n constructor(private EmployeesService: EmployeesService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.getEmployees();\r\n }\r\n\r\n public getEmployees = () => {\r\n this.EmployeesService.getEmployeesByStatus().then((employees) => {\r\n this.employees = employees;\r\n var now = moment();\r\n var currentYear = moment().year();\r\n this.employees.forEach(employee => {\r\n var b = moment(employee.birthday).year(currentYear);\r\n if(moment().isAfter(b)) {\r\n employee.birthday = moment(employee.birthday).year(currentYear + 1).format('YYYY-MM-DD');\r\n } else {\r\n employee.birthday = moment(employee.birthday).year(currentYear).format('YYYY-MM-DD');\r\n }\r\n });\r\n this.employees = _.remove(this.employees, function(value, index) {\r\n if(value.displayName){\r\n return value.displayName.length;\r\n }\r\n });\r\n this.employees = _.orderBy(this.employees, ['birthday'], ['asc']);\r\n })\r\n }\r\n}\r\n\r\nexport const dashboardBirthdayComponent = {\r\n controller: DashboardBirthdayController,\r\n template: require('./dashboard.birthday.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/dashboard.birthday.component.ts","class DashboardController {\r\n constructor() {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n // console.log('DashboardController');\r\n }\r\n}\r\n\r\nexport const dashboard = {\r\n controller: DashboardController,\r\n template: require('./dashboard.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/dashboard.component.ts","import { IGetListParams } from '../../base/base.service';\r\nimport { IGetShiftListParams, IShift, ShiftService } from '../../services/shifts.service';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nclass DashboardOpenshiftsController {\r\n private shifts: IShift[];\r\n constructor(private ShiftService: ShiftService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.getShift();\r\n }\r\n\r\n public getShift = () => {\r\n var params: IGetShiftListParams = {\r\n from: moment().format('YYYY-MM-DD'),\r\n till: moment().add(1, 'w').format('YYYY-MM-DD'),\r\n includeSubscriptions: false,\r\n }\r\n\r\n this.ShiftService.getFilter(params).then((shifts) => {\r\n this.shifts = shifts;\r\n // this.shifts.forEach((shift) => {\r\n \r\n // })\r\n\r\n this.shifts = _.remove(this.shifts, function(value, index) {\r\n if(value.status){\r\n return value.status < 6;\r\n }\r\n });\r\n })\r\n }\r\n\r\n public isSameDay = (start, end) => {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nexport const dashboardOpenshiftsComponent = {\r\n controller: DashboardOpenshiftsController,\r\n template: require('./dashboard.openshifts.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/dashboard.openshifts.component.ts","import { IGetListParams } from '../../base/base.service';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { EmployeeSkillsService, IEmployeeSkill } from '../../services/employeeSkills.service';\r\n\r\nclass DashboardSkillsController {\r\n private skills: IEmployeeSkill[];\r\n constructor(private EmployeeSkillsService: EmployeeSkillsService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.getShift();\r\n }\r\n\r\n public getShift = () => {\r\n this.EmployeeSkillsService.getList({sortfield: 'end', sortorder: 'ASC'}).then((skills) => {\r\n this.skills = skills.value;\r\n })\r\n }\r\n\r\n public isExpired = (date) => {\r\n if (moment(date) <= moment()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nexport const dashboardSkillsComponent = {\r\n controller: DashboardSkillsController,\r\n template: require('./dashboard.skills.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/dashboard.skills.component.ts","export const dashboardState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"dashboard\",\r\n url: \"/dashboard?:newsall\",\r\n params: {\r\n \"newsall\" : { dynamic: true } ,\r\n },\r\n component: 'dashboard',\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'customerShifts'\r\n }\r\n }\r\n};\r\n\r\nexport const newsItemBasicState: aboTheme.IState = {\r\n\r\n name: \"dashboard.newsitem\",\r\n url: \"/newsitem/:id\",\r\n params: {\r\n \"id\": null\r\n },\r\n modal: [],\r\n resolve: {\r\n },\r\n component: 'newsItemBasicComponent'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/dashboard.states.ts","import { dashboardBirthdayComponent } from './dashboard.birthday.component';\r\nimport { loadNg1Module, ngmodule } from '../../bootstrap/ngmodule';\r\nimport { dashboard } from './dashboard.component';\r\nimport { dashboardState, newsItemBasicState } from './dashboard.states';\r\nimport { dashboardOpenshiftsComponent } from './dashboard.openshifts.component';\r\nimport { dashboardSkillsComponent } from './dashboard.skills.component';\r\nimport { dashboardNotesComponent } from './notes/dashboardNotes.component';\r\nimport { dashboardAvailableEmployeesComponent } from './availableEmployees/dashboardAvailableEmployees.component';\r\nimport { dashboardTimesheetsSummaryComponent } from './timesheetsSummary/dashboardTimesheetsSummary.component';\r\nimport { dashboardTasksComponent } from './tasks/dashboardTasks.component';\r\nimport { EmployeeAvailabilityService } from '../../services/employeeAvailability.service';\r\nimport { NewsService } from '../../services/news.service';\r\nimport { dashboardNewsComponent } from './news/dashboardNews.component';\r\nimport { newsItemBasicComponent } from './news/news.item.basic.component';\r\n\r\nconst dashboardAppModule: aboTheme.INgModule = {\r\n components: {\r\n dashboard,\r\n dashboardBirthdayComponent,\r\n dashboardOpenshiftsComponent,\r\n dashboardSkillsComponent,\r\n dashboardNotesComponent,\r\n dashboardAvailableEmployeesComponent,\r\n dashboardTimesheetsSummaryComponent,\r\n dashboardTasksComponent,\r\n dashboardNewsComponent,\r\n newsItemBasicComponent\r\n },\r\n states: [\r\n dashboardState,\r\n newsItemBasicState\r\n ],\r\n services: { EmployeeAvailabilityService, NewsService }\r\n};\r\n\r\nloadNg1Module(ngmodule, dashboardAppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/index.ts","import { IGetListParams } from './../../../base/base.service';\r\nimport { NewsService, INewsItem } from \"../../../services\";\r\n\r\nclass DashboardNewsController {\r\n private news: INewsItem[];\r\n private newsItemTypes = [\r\n {\r\n id: 2,\r\n name: 'Intern'\r\n },\r\n {\r\n id: 4,\r\n name: 'Klant'\r\n },\r\n {\r\n id: 1,\r\n name: 'Medewerker'\r\n },\r\n ];\r\n\r\n private all: boolean;\r\n\r\n constructor(private NewsService: NewsService, private $state: ng.ui.IStateService, private $stateParams: ng.ui.IStateParamsService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n\r\n if (this.$stateParams['newsall']) { \r\n this.all = this.$stateParams['newsall'] == 'true' ? true : false;\r\n }\r\n this.getNews();\r\n //this.all = false;\r\n }\r\n\r\n public getType = (id) => {\r\n return this.newsItemTypes.find(t => t.id == id).name;\r\n }\r\n\r\n public setAll = () => {\r\n this.$state.go(\".\", { \"newsall\": this.all }, { notify: false });\r\n this.getNews();\r\n }\r\n\r\n public getNews = () => {\r\n const params = {\r\n limit: this.all ? 100 : 10,\r\n sortfield: 'createdDate',\r\n sortorder: 'desc',\r\n all: this.all\r\n }\r\n this.NewsService.all(params).then((news) => {\r\n this.news = news;\r\n })\r\n }\r\n\r\n addNewsItem() {\r\n \r\n }\r\n}\r\n\r\nexport const dashboardNewsComponent = {\r\n controller: DashboardNewsController,\r\n template: require('./dashboardNews.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/news/dashboardNews.component.ts","import moment = require(\"moment\");\r\nimport { INewsItem, NewsService } from \"../../../services\";\r\n\r\nclass NewsItemBasicController {\r\n private newsItem: INewsItem;\r\n private newsItemTypes: any[];\r\n\r\n constructor(\r\n private NewsService: NewsService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.newsItemTypes = [\r\n {\r\n id: 2,\r\n name: 'Intern'\r\n },\r\n {\r\n id: 4,\r\n name: 'Klant'\r\n },\r\n {\r\n id: 1,\r\n name: 'Medewerker'\r\n },\r\n ];\r\n\r\n if (this.$stateParams['id']) {\r\n this.get();\r\n }\r\n }\r\n\r\n get() {\r\n this.NewsService.get(this.$stateParams['id']).then(res => {\r\n this.newsItem = res;\r\n })\r\n }\r\n\r\n public save = () => {\r\n this.newsItem.createdDate = moment(this.newsItem.createdDate).format('YYYY-MM-DD') + ' 00:00:00';\r\n this.newsItem.expireDate = moment(this.newsItem.expireDate).format('YYYY-MM-DD') + ' 23:59:59';\r\n if (this.newsItem.id != undefined) {\r\n this.NewsService.put(this.newsItem.id, this.newsItem).then((res) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.NewsService.post(this.newsItem).then((res) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n public delete = () => {\r\n this.SweetAlert.swal({\r\n title: 'Weet je het zeker?',\r\n text: \"Je verwijdert het nieuws item '\"+ this.newsItem.title +\"'. Dit kan niet meer ongedaan gemaakt worden!\",\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Verwijderen',\r\n cancelButtonText: 'Annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.NewsService.delete(this.newsItem.id).then(() => {\r\n this.closeModal();\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {}, { reload: true });\r\n }\r\n}\r\n\r\nexport const newsItemBasicComponent = { \r\n bindings: {\r\n close: \"&\"\r\n },\r\n controller: NewsItemBasicController,\r\n template: require('./news.item.basic.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/news/news.item.basic.component.ts","import { IGetListParams } from './../../../base/base.service';\r\nimport { NotesService, INote } from \"../../../services\";\r\n\r\nclass DashboardNotesController {\r\n private notes: INote[];\r\n constructor(private NotesService: NotesService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.getNotes();\r\n }\r\n\r\n public getNotes = () => {\r\n const params: IGetListParams = {\r\n limit: 5000,\r\n sortfield: 'createdOn',\r\n sortorder: 'desc'\r\n }\r\n this.NotesService.all(params)\r\n .then((notes) => {\r\n this.notes = notes.filter(note => !note.applicantId).slice(0, 10);\r\n })\r\n }\r\n\r\n getNoteAuthorName(note) {\r\n if (note.accountName) return note.accountName;\r\n if (note.employeeDisplayName) return note.employeeDisplayName;\r\n if (note.applicantName) return note.applicantName;\r\n return '';\r\n }\r\n}\r\n\r\nexport const dashboardNotesComponent = {\r\n controller: DashboardNotesController,\r\n template: require('./dashboardNotes.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/notes/dashboardNotes.component.ts","import { IGetListParams } from './../../../base/base.service';\r\nimport { TasksService, ITask } from \"../../../services\";\r\n\r\nclass DashboardTasksController {\r\n private tasks: ITask[];\r\n constructor(private TasksService: TasksService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.getTasks();\r\n }\r\n\r\n public getTasks = () => {\r\n const params: IGetListParams = {\r\n limit: 10,\r\n sortfield: 'createdOn',\r\n sortorder: 'desc'\r\n }\r\n this.TasksService.all(params).then((tasks) => {\r\n this.tasks = tasks;\r\n })\r\n }\r\n}\r\n\r\nexport const dashboardTasksComponent = {\r\n controller: DashboardTasksController,\r\n template: require('./dashboardTasks.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/tasks/dashboardTasks.component.ts","import { IGetListParams } from './../../../base/base.service';\r\nimport { EmployeesService, IEmployee } from \"../../../services\";\r\nimport * as moment from 'moment';\r\n\r\nclass DashboardTimesheetsSummaryController {\r\n private timesheetsWeek1: any;\r\n private timesheetsWeek2: any;\r\n private moment: any;\r\n\r\n constructor(private EmployeesService: EmployeesService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.moment = require('moment');\r\n \r\n this.getTimesheetsWeek1();\r\n this.getTimesheetsWeek2();\r\n }\r\n\r\n public getTimesheetsWeek1 = () => {\r\n this.EmployeesService.customAll('employeeSummary', {from: this.moment().startOf('isoweek').format(\"YYYY-MM-DD\"), till: this.moment().endOf('isoweek').format(\"YYYY-MM-DD\")})\r\n .then((result: Restangular.ICollection) => {\r\n this.timesheetsWeek1 = result;\r\n });\r\n }\r\n\r\n public getTimesheetsWeek2 = () => {\r\n this.EmployeesService.customAll('employeeSummary', {from: this.moment().startOf('isoweek').add(1, 'week').format(\"YYYY-MM-DD\"), till: this.moment().endOf('isoweek').add(1, 'week').format(\"YYYY-MM-DD\")})\r\n .then((result: Restangular.ICollection) => {\r\n this.timesheetsWeek2 = result;\r\n });\r\n }\r\n}\r\n\r\nexport const dashboardTimesheetsSummaryComponent = {\r\n controller: DashboardTimesheetsSummaryController,\r\n template: require('./dashboardTimesheetsSummary.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/dashboard/timesheetsSummary/dashboardTimesheetsSummary.component.ts","class DocumentationController implements ng.IComponentController {\r\n height: number;\r\n scrollY: number;\r\n constructor(\r\n ) {\r\n 'ngInject';\r\n // console.log('DocumentationController');\r\n }; \r\n}\r\n\r\nexport const documentationComponent: ng.IComponentOptions = {\r\n controller: DocumentationController,\r\n template: require('./documentation.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/documentation/documentation.component.ts","export const documentationState: aboTheme.IState = {\r\n parent: \"app\",\r\n name: \"documentation\",\r\n url: \"/documentation\",\r\n component: \"documentationComponent\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE', 'EMPLOYEE'],\r\n }\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/documentation/documentation.states.ts","import { loadNg1Module, ngmodule } from '../../bootstrap/ngmodule';\r\nimport { documentationState } from './documentation.states';\r\nimport { documentationComponent } from './documentation.component';\r\n\r\nconst documentationAppModule: aboTheme.INgModule = {\r\n components: { documentationComponent },\r\n states: [ documentationState ],\r\n};\r\n\r\nloadNg1Module(ngmodule, documentationAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/documentation/index.ts","class ApplicantsController implements ng.IComponentController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n // console.log('ApplicantsController');\r\n }\r\n}\r\n\r\nexport const applicantsComponent : ng.IComponentOptions = {\r\n controller : ApplicantsController,\r\n template : require('./applicants.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/applicants/applicants.component.ts","import { IApplicant, ApplicantsService, EnumService } from \"../../../services/index\";\r\nimport * as moment from 'moment';\r\n\r\ninterface IResolve {\r\n applicant: IApplicant;\r\n preferredTargetAudiences: any;\r\n applicationStatuses: any;\r\n functions: any;\r\n users: any;\r\n}\r\n\r\nclass ApplicantsItemBasicController {\r\n\r\n private resolve: IResolve;\r\n private applicant: IApplicant;\r\n private preferredTargetAudiences: any;\r\n private applicationStatuses: any;\r\n private functions: any;\r\n users: any;\r\n\r\n constructor(\r\n private EnumService: EnumService,\r\n private ApplicantsService: ApplicantsService,\r\n private $state: ng.ui.IStateService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => { \r\n this.applicant = this.resolve.applicant;\r\n this.preferredTargetAudiences = this.resolve.preferredTargetAudiences;\r\n this.applicationStatuses = this.resolve.applicationStatuses;\r\n this.functions = this.resolve.functions;\r\n this.users = this.resolve.users;\r\n\r\n this.users.forEach(user => {\r\n user.id = user.id.toLowerCase();\r\n });\r\n\r\n this.applicant.userId = this.applicant.userId.toLowerCase();\r\n }\r\n\r\n public save = () => {\r\n this.applicant.date = moment(this.applicant.date).format(\"YYYY-MM-DD HH:mm\");\r\n \r\n if (this.applicant.id != undefined) {\r\n this.ApplicantsService.put(this.applicant.id, this.applicant).then((applicant: IApplicant) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.ApplicantsService.post(this.applicant).then((applicant: IApplicant) => {\r\n this.$state.go('^', { 'id': applicant.id });\r\n });\r\n }\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {}, { reload: true });\r\n }\r\n}\r\n\r\nexport const applicantsItemBasicComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: ApplicantsItemBasicController,\r\n template: require('./applicants.item.basic.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/applicants/applicants.item.basic.component.ts","import { AuthService } from '../../../authorization/services';\r\nimport * as angular from 'angular';\r\nimport { IApplicant, ApplicantsService, INote, NotesService, IBlob, ApplicantStatusHistoryService, IApplicantStatusHistory } from '../../../services';\r\nimport config from '../../../config';\r\n\r\nclass ApplicantsItemController {\r\n\r\n private applicant: IApplicant;\r\n private applicantsService: ApplicantsService;\r\n private activeTabIndex: number;\r\n\r\n private applicantStatusHistoryService: ApplicantStatusHistoryService;\r\n private applicationStatuses: any;\r\n private applicationStatusHistories: IApplicantStatusHistory[];\r\n\r\n private notes: INote[];\r\n private filteredNotes: INote[];\r\n private notesService: any;\r\n private currentNote: any;\r\n private tags: string[];\r\n private selectedTag: string;\r\n\r\n private files: IBlob[];\r\n private uploadfile: any;\r\n users: any;\r\n archive = false;\r\n\r\n constructor(\r\n private localStorageService: ng.local.storage.ILocalStorageService,\r\n ApplicantsService: ApplicantsService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private NotesService: NotesService,\r\n ApplicantStatusHistoryService: ApplicantStatusHistoryService,\r\n private AuthService: AuthService,\r\n private SweetAlert: any,\r\n private FileSaver: ng.FileSaver,\r\n private MasterdataService: aboMasterdata.IService,\r\n private $filter: any,\r\n ) {\r\n 'ngInject';\r\n\r\n this.notesService = NotesService;\r\n this.applicantStatusHistoryService = ApplicantStatusHistoryService;\r\n this.applicantsService = ApplicantsService;\r\n\r\n angular.element(document).ready(() => {\r\n ($('#notes-table')).dataTable({\r\n \"pageLength\": 5,\r\n \"lengthChange\": false,\r\n \"searching\": false\r\n });\r\n });\r\n }\r\n\r\n public $onInit = () => {\r\n if(this.$state.current.params.archive){\r\n this.archive = true;\r\n }\r\n \r\n if (this.$stateParams['tab']) {\r\n this.activeTabIndex = this.$stateParams['tab'];\r\n }\r\n\r\n if(this.applicant.userId) {\r\n var user = this.users.find(u => u.id.toLowerCase() == this.applicant.userId.toLowerCase());\r\n if(user) {\r\n this.applicant.userName = user.userName;\r\n }\r\n }\r\n\r\n this.getFiles(this.applicant.id);\r\n this.MasterdataService.getItems('NoteTags').then(res => {\r\n this.tags = res;\r\n });\r\n \r\n this.filterNotes();\r\n }\r\n\r\n submitApplicant() {\r\n if (this.applicant.id == null) {\r\n this.saveApplicant();\r\n } else {\r\n this.applicantsService.put(this.applicant.id, this.applicant);\r\n }\r\n }\r\n\r\n saveApplicant() {\r\n this.applicantsService.post(this.applicant).then(result => {\r\n this.$state.go('hr.applicants.item', { 'id': result.id });\r\n });\r\n }\r\n\r\n archiveApplicant() {\r\n this.applicant.inactive = true;\r\n this.applicantsService.put(this.applicant.id, this.applicant).then(result => {\r\n this.$state.go('hr.applicants.archiveitem', { 'id': result.id });\r\n });\r\n }\r\n\r\n unarchiveApplicant() {\r\n this.applicant.inactive = false;\r\n this.applicantsService.put(this.applicant.id, this.applicant).then(result => {\r\n this.$state.go('hr.applicants.item', { 'id': result.id });\r\n });\r\n }\r\n\r\n deleteApplicant() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u '+ this.applicant.name +' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.applicantsService.delete(this.applicant.id);\r\n this.$state.go('^.list').then(() => { this.$state.reload(); });\r\n } else {\r\n\r\n }\r\n }); \r\n }\r\n\r\n addNoteModal() {\r\n this.currentNote = null;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n updateNoteModal(item) {\r\n this.currentNote = item;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n filterNotes() {\r\n this.filteredNotes = this.$filter('filter')(this.notes, (note: INote): boolean => {\r\n if (!!this.selectedTag) {\r\n return note.tags.indexOf(this.selectedTag) !== -1;\r\n } else {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n submitNote(item) {\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.applicantId = this.applicant.id;\r\n\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(result => {\r\n this.notes.push(result);\r\n });\r\n } else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n\r\n ($('#noteModal')).modal('hide');\r\n }\r\n\r\n deleteNote(item) {\r\n this.notes = this.notes.filter(note => note.id !== item.id);\r\n\r\n this.notesService.delete(item.id);\r\n }\r\n\r\n updateNote(item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n }\r\n\r\n deleteHistory(item) {\r\n this.applicationStatusHistories = this.applicationStatusHistories.filter(x => x.id !== item.id);\r\n\r\n this.applicantStatusHistoryService.delete(item.id);\r\n }\r\n \r\n updateHistory(item, action) {\r\n switch (action) {\r\n case 'delete':\r\n this.deleteHistory(item);\r\n break;\r\n }\r\n }\r\n\r\n uploadAll() {\r\n if (this.uploadfile){\r\n this.postFile(this.applicant.id).then(() => {\r\n this.$state.go('.', {tab: 1}, {reload: true});\r\n })\r\n }\r\n }\r\n\r\n private postFile = (id) => {\r\n return this.applicantsService.postBlob(id, this.uploadfile);\r\n }\r\n\r\n clickUpload() {\r\n angular.element('#myUploader').trigger('click');\r\n };\r\n \r\n public getFiles = (id) => {\r\n this.applicantsService.getBlobs(id).then((files) => {\r\n this.files = files.value;\r\n })\r\n }\r\n\r\n public deleteFile = (blobid) => {\r\n\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u dit bestand wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.applicantsService.deleteBlob(this.applicant.id, blobid).then((res) => {\r\n this.$state.go('.', {tab: 1}, {reload: true});\r\n })\r\n } else {\r\n\r\n }\r\n }); \r\n \r\n }\r\n\r\n public downloadFile = (file) => {\r\n // this.applicantsService.getBlob(this.applicant.id, file.id).then((blob) => {\r\n var xhr = new XMLHttpRequest();\r\n xhr.responseType = 'blob';\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n var url = URL.createObjectURL(xhr.response);\r\n var aLink = document.createElement('a');\r\n document.body.appendChild(aLink);\r\n aLink.href = url;\r\n aLink.download = file.filenameWithExtention;\r\n aLink.click();\r\n }\r\n };\r\n \r\n var token = this.localStorageService.get(\"authorizationData\");\r\n \r\n var url = config.API_URL; \r\n xhr.open('GET', url + '/hr/applicant/'+ this.applicant.id +'/blobs/'+ file.id);\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n // xhr.setRequestHeader('Dropbox-API-Arg', JSON.stringify({\"path\": \"/\"+filename}));\r\n xhr.send();\r\n // })\r\n } \r\n}\r\n\r\nexport const applicantsItemComponent = {\r\n bindings: {\r\n applicant: '<',\r\n notes: '<',\r\n applicationStatusHistories: '<',\r\n preferredTargetAudiences: '<',\r\n applicationStatuses: '<',\r\n functions: '<',\r\n users: '<'\r\n },\r\n controller: ApplicantsItemController,\r\n template: require('./applicants.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/applicants/applicants.item.component.ts","import { IApplicant, ApplicantsService, EnumService, IEmployee, EmployeesService } from \"../../../services/index\";\r\nimport * as moment from 'moment';\r\n\r\ninterface IResolve {\r\n applicant: IApplicant;\r\n preferredTargetAudiences: any;\r\n applicationStatuses: any;\r\n functions: any;\r\n}\r\n\r\n\r\nclass ApplicantsItemEmployeeController {\r\n\r\n private resolve: IResolve;\r\n private applicant: IApplicant;\r\n public employee: any;\r\n functions: any;\r\n applicationStatuses: any;\r\n\r\n\r\n constructor(\r\n private EnumService: EnumService,\r\n private ApplicantsService: ApplicantsService,\r\n private EmployeesService: EmployeesService,\r\n private $state: ng.ui.IStateService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => {\r\n this.applicant = this.resolve.applicant;\r\n this.functions = this.resolve.functions;\r\n this.applicationStatuses = this.resolve.applicationStatuses;\r\n\r\n this.employee = {};\r\n this.employee.homeAddress = {};\r\n\r\n this.employee.firstName = this.applicant.name.split(' ')[0];\r\n\r\n const names = this.applicant.name.split(' ');\r\n names.shift();\r\n this.employee.lastName = names.join(' ');\r\n\r\n this.employee.telephoneMobilePrivate = this.applicant.phoneNumber;\r\n this.employee.emailPrivate = this.applicant.email;\r\n this.employee.homeAddress.city = this.applicant.city;\r\n this.employee.functionId = this.applicant.functionId;\r\n this.employee.zzp = this.applicant.zzp;\r\n\r\n }\r\n\r\n public save = () => {\r\n\r\n this.EmployeesService.post(this.employee).then((employee: IEmployee) => {\r\n\r\n this.applicant.employeeId = employee.id\r\n this.applicant.applicationStatusId = this.applicationStatuses.find(s => s.code == 'accepted').id;\r\n\r\n this.ApplicantsService.put(this.applicant.id, this.applicant).then((applicant: IApplicant) => {\r\n this.$state.go('hr.employees.item', { 'id': applicant.employeeId });\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {}, { reload: true });\r\n }\r\n}\r\n\r\nexport const applicantsItemEmployeeComponent = {\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n controller: ApplicantsItemEmployeeController,\r\n template: require('./applicants.item.employee.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/applicants/applicants.item.employee.component.ts","import { IApplicant, ApplicantsService } from \"../../../services/index\";\r\nimport { IAuthUser } from \"../../../authsettings/services/authusers.service\";\r\n\r\nclass ApplicantsListController implements ng.IComponentController {\r\n \r\n private currentPage: number;\r\n private itemsPerPage: number;\r\n private sortType: string;\r\n private search: string;\r\n private applicants: IApplicant[];\r\n private filteredApplicants: IApplicant[];\r\n private preferredTargetAudiences: any;\r\n private functions: any;\r\n private users: IAuthUser[];\r\n functionFilter: any;\r\n targetAudienceFilter: any;\r\n statusFilter: any;\r\n applicationStatuses: any;\r\n userFilter: any;\r\n\r\n archive = false;\r\n\r\n constructor(\r\n private ApplicantsService: ApplicantsService,\r\n private $filter: any,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService\r\n ) {\r\n 'ngInject';\r\n this.sortType = 'displayName';\r\n //console.log('ApplicantsListController');\r\n }\r\n\r\n public $onInit = () => {\r\n if(this.$state.current.params.archive) {\r\n this.archive = true;\r\n }\r\n\r\n this.currentPage = 1;\r\n this.itemsPerPage = 11;\r\n this.getApplicants();\r\n\r\n this.statusFilter = '';\r\n\r\n\r\n if(this.$stateParams['status']) {\r\n\r\n if(this.$stateParams['status'] == 'all'){\r\n this.statusFilter = '';\r\n } else {\r\n this.statusFilter = this.applicationStatuses.find(s => s.code == this.$stateParams['status']).id;\r\n }\r\n \r\n }\r\n if(this.$stateParams['recruiter']) {\r\n this.userFilter = this.$stateParams['recruiter'];\r\n }\r\n if(this.$stateParams['function']) {\r\n this.functionFilter = this.$stateParams['function'];\r\n }\r\n if(this.$stateParams['targetaudiance']) {\r\n this.targetAudienceFilter = this.$stateParams['targetaudiance'];\r\n }\r\n // if(this.$stateParams['search']) {\r\n // this.search = decodeURI(this.$stateParams['search']);\r\n // }\r\n }\r\n\r\n public filter = () => {\r\n var status = this.statusFilter ? this.applicationStatuses.find(s => s.id == this.statusFilter).code : 'all';\r\n if(this.archive) {\r\n this.$state.go('hr.applicants.archive', { \r\n 'recruiter': this.userFilter, \r\n 'status': status,\r\n 'function': this.functionFilter,\r\n 'targetaudiance': this.targetAudienceFilter,\r\n 'search': encodeURI(this.search)\r\n });\r\n } else {\r\n this.$state.go('hr.applicants.list', { \r\n 'recruiter': this.userFilter, \r\n 'status': status,\r\n 'function': this.functionFilter,\r\n 'targetaudiance': this.targetAudienceFilter,\r\n 'search': encodeURI(this.search)\r\n });\r\n }\r\n\r\n }\r\n\r\n public getApplicants = () => {\r\n if(this.archive) {\r\n this.ApplicantsService.getArchive().then(res => {\r\n this.applicants = res;\r\n this.applicants.forEach((applicant) => {\r\n if(applicant.userId) {\r\n var user = this.users.find(u => u.id == applicant.userId);\r\n applicant.userName = user ? user.userName : '';\r\n }\r\n })\r\n this.applyFilters();\r\n })\r\n } else {\r\n this.ApplicantsService.all().then(res => {\r\n this.applicants = res;\r\n this.applicants.forEach((applicant) => {\r\n if(applicant.userId) {\r\n var user = this.users.find(u => u.id == applicant.userId);\r\n applicant.userName = user ? user.userName : '';\r\n }\r\n })\r\n this.applyFilters();\r\n })\r\n }\r\n \r\n }\r\n\r\n applyFilters() {\r\n this.filteredApplicants = this.$filter('filterBy')(this.applicants, ['name', 'city'], this.search);\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['functionId'], this.functionFilter);\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['preferredTargetAudienceId'], this.targetAudienceFilter);\r\n if(this.statusFilter) {\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['applicationStatusId'], this.statusFilter);\r\n }\r\n this.filteredApplicants = this.$filter('filterBy')(this.filteredApplicants, ['userId'], this.userFilter);\r\n this.filteredApplicants = this.$filter('orderBy')(this.filteredApplicants, this.sortType);\r\n }\r\n}\r\n\r\nexport const applicantsListComponent = {\r\n bindings: {\r\n functions : \"<\",\r\n preferredTargetAudiences : \"<\",\r\n applicationStatuses: \"<\",\r\n users: \"<\"\r\n },\r\n controller: ApplicantsListController,\r\n template: require('./applicants.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/applicants/applicants.list.component.ts","import { EmployeesService } from '../../../services/employees.service';\r\nimport * as moment from 'moment';\r\nimport * as _ from \"lodash\";\r\nimport { IEmployeeAvailability } from '../../../services/employeeAvailability.service';\r\n\r\nclass AvailabilityListController implements ng.IComponentController {\r\n private startDate: any;\r\n private endDate: any;\r\n private availabilities: IEmployeeAvailability[];\r\n\r\n constructor(\r\n private $state: ng.ui.IStateService,\r\n private EmployeesService: EmployeesService \r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n var date = moment();\r\n this.startDate = date.format(\"YYYY-MM-DD\");\r\n this.endDate = date.add(1, 'M').format(\"YYYY-MM-DD\");\r\n this.getAvailabilityByDate();\r\n }\r\n\r\n private prevWeek = () => {\r\n this.startDate = moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(-7, 'day').toDate();\r\n }\r\n\r\n private nextWeek = () => {\r\n this.startDate = moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(7, 'day').toDate();\r\n }\r\n\r\n public getAvailabilityByDate() {\r\n this.EmployeesService.getAvailabilityByRange(this.startDate, this.endDate).then((result) => {\r\n result.forEach(a => {\r\n a.startDate = moment(a.start);\r\n });\r\n result = _.sortBy(result, 'startDate');\r\n this.availabilities = result;\r\n });\r\n }\r\n}\r\n\r\nexport const availabilityListComponent = {\r\n bindings: {\r\n avalabilityStatuses: '<'\r\n },\r\n controller: AvailabilityListController,\r\n template: require('./availabilityList.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/availabilityList/availabilityList.component.ts","import * as moment from 'moment';\r\nimport { EmployeesService } from \"../../../services/index\";\r\nimport { IEmployeeAvailability } from '../../../services/employeeAvailability.service';\r\n\r\nclass AvailabilityCalendarController implements ng.IComponentController {\r\n private availabilities: IEmployeeAvailability[];\r\n private uiConfig: any;\r\n private eventSources: any = [];\r\n private employeeId: string;\r\n \r\n constructor(\r\n private EmployeesService: EmployeesService,\r\n private $state: ng.ui.IStateService,\r\n private uiCalendarConfig: any,\r\n private $scope: ng.IScope,\r\n private $compile : ng.ICompileService,\r\n private $timeout : ng.ITimeoutService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n // console.log('init AvailabilityCalendarController')\r\n this.eventSources = [this.getEvents];\r\n // this.getEvents(moment().fromNow, '2016-07-13 23:00:00.0000000'.toDate(), null, function() {});\r\n\r\n this.uiConfig = {\r\n\r\n calendar: {\r\n\r\n height: 537,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: true,\r\n\r\n axisFormat: 'h:mm',\r\n\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: true,\r\n eventClick: this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: this.eventRender\r\n }\r\n\r\n \r\n };\r\n\r\n this.$timeout(() => {\r\n this.renderCalendar();\r\n });\r\n }\r\n\r\n\r\n private renderCalendar = () => {\r\n this.uiCalendarConfig.calendars['employeeCalendar'].fullCalendar('render');\r\n this.uiCalendarConfig.calendars['employeeCalendar'].fullCalendar('rerenderEvents');\r\n }\r\n\r\n private getEvents = (start, end, timezone, callback) => {\r\n // console.log('getEvents');\r\n // console.log(start);\r\n this.EmployeesService.customAll(this.employeeId + '/availabilityByRange', { 'start': start.toDate() , 'end': end.toDate() }).then((events: any) => {\r\n this.availabilities = events;\r\n // console.log(events);\r\n callback(events);\r\n });\r\n }\r\n\r\n private openItem = (event) => {\r\n this.$state.go('hr.employees.item.availability', { 'employeeId': this.employeeId, 'availabilityId': event.id });\r\n }\r\n\r\n private eventRender = (event, element, view) => {\r\n element.attr({\r\n 'uib-tooltip': event.comment,\r\n 'tooltip-append-to-body': true\r\n });\r\n //var employee = '';\r\n // if (event.shift.Employee) {\r\n // var employee = '
    ' + event.shift.Employee.DisplayName + '';\r\n // }\r\n // element.append('' + event.status.Name + employee + '');\r\n if (!event.status) {\r\n event.status = \"???\";\r\n }\r\n\r\n var color: string;\r\n if (event.status.toLowerCase() == 'available') {\r\n color = '#2ECC71'; // @brand-success\r\n } else {\r\n color = '#d96557'; // @brand-danger\r\n }\r\n\r\n if (moment().isBefore(event.from)) {\r\n element.css({ 'background-color': color, 'border-color': color });\r\n } else {\r\n element.css({ 'background-color': color, 'border-color': color, 'opacity': 0.7 });\r\n }\r\n\r\n this.$compile(element)(this.$scope);\r\n }\r\n}\r\n\r\nexport const availabilityCalendarComponent: ng.IComponentOptions = {\r\n controller: AvailabilityCalendarController,\r\n bindings: {\r\n employeeId : \"<\"\r\n },\r\n template: require('./availability.calendar.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/availability/availability.calendar.component.ts","import { IEmployee } from '../../../services/employees.service';\r\nimport * as moment from 'moment';\r\nimport { EmployeesService, Masterdata } from \"../../../services/index\";\r\nimport { IEmployeeAvailability } from '../../../services/employeeAvailability.service';\r\n\r\ninterface IResolve {\r\n statuses: Masterdata[];\r\n}\r\n\r\nclass AvailabilityItemController implements ng.IComponentController {\r\n private availability: IEmployeeAvailability;\r\n private statuses: Masterdata[];\r\n private resolve: IResolve;\r\n private employeeId: string;\r\n\r\n constructor(\r\n private EmployeesService: EmployeesService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: ng.ITimeoutService,\r\n private SweetAlert: any,\r\n private $scope: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n // console.log('AvailabilityItemController onInit');\r\n this.statuses = this.resolve.statuses;\r\n this.employeeId = this.$stateParams[\"employeeId\"];\r\n\r\n if (this.$stateParams[\"availabilityId\"]) {\r\n this.EmployeesService.customGet('availability/' + this.$stateParams[\"availabilityId\"]).then((result: any) => {\r\n this.availability = result;\r\n // console.log(this.availability);\r\n if (this.availability) {\r\n this.availability.start = new Date(this.availability.start);\r\n this.availability.end = new Date(this.availability.end);\r\n }\r\n });\r\n } else {\r\n this.availability = new IEmployeeAvailability();\r\n this.availability.start = this.roundMinutes(new Date());\r\n this.availability.end = moment(this.availability.start).add(8, 'hour').toDate();\r\n } \r\n }\r\n\r\n roundMinutes(date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n }\r\n\r\n public submitAvailability() {\r\n\r\n this.$scope.availabilityForm.$setSubmitted();\r\n\r\n this.availability.start = moment(this.availability.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.availability.end = moment(this.availability.end).format(\"YYYY-MM-DD HH:mm\");\r\n\r\n if (!this.availability.availabilityStatusId) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Vul een status in!',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n\r\n }\r\n });\r\n } else if (moment(this.availability.start).isAfter(this.availability.end)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Eindtijd ligt voor starttijd!',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n\r\n }\r\n });\r\n } else {\r\n if (this.availability.id === undefined) {\r\n this.EmployeesService.customPost(this.employeeId + '/availability', this.availability).then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.EmployeesService.customPut('availability/' + this.availability.id, this.availability).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n }\r\n\r\n delete() {\r\n this.EmployeesService.customDelete('availability/' + this.availability.id).then(() => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 3}, {reload: true});\r\n }\r\n}\r\n\r\nexport const availabilityItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n resolve: '<'\r\n },\r\n controller: AvailabilityItemController,\r\n template: require('./availability.item.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/availability/availability.item.component.ts","class EmployeesController implements ng.IComponentController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n // console.log('EmployeesController');\r\n }\r\n}\r\n\r\nexport const employeesComponent : ng.IComponentOptions = {\r\n controller : EmployeesController,\r\n template : require('./employees.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/employees/employees.component.ts","import { IEmployee, EmployeesService, EnumService } from \"../../../services/index\";\r\n\r\n\r\ninterface IResolve {\r\n employee: IEmployee;\r\n functions: any;\r\n transportationTypes: any;\r\n salaryScales: any;\r\n users: any;\r\n}\r\n\r\nclass EmployeesItemBasicController {\r\n\r\n private resolve: IResolve;\r\n private employee: IEmployee;\r\n private functions: any;\r\n private transportationTypes: any;\r\n private salaryScales: any;\r\n\r\n constructor(\r\n private EnumService: EnumService,\r\n private EmployeesService: EmployeesService,\r\n private $state: ng.ui.IStateService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => { \r\n this.employee = this.resolve.employee;\r\n this.functions = this.resolve.functions;\r\n this.transportationTypes = this.resolve.transportationTypes;\r\n this.salaryScales = this.resolve.salaryScales;\r\n \r\n }\r\n\r\n public save = () => {\r\n this.employee.userName = this.employee.emailPrivate;\r\n if (this.employee.id != undefined) {\r\n this.EmployeesService.put(this.employee.id, this.employee).then((employee: IEmployee) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.EmployeesService.post(this.employee).then((employee: IEmployee) => {\r\n this.$state.go('^', { 'id': employee.id });\r\n });\r\n }\r\n \r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {}, { reload: true });\r\n }\r\n}\r\n\r\nexport const employeesItemBasicComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: EmployeesItemBasicController,\r\n template: require('./employees.item.basic.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/employees/employees.item.basic.component.ts","import { AuthService } from '../../../authorization/services';\r\nimport * as angular from 'angular';\r\nimport { IEmployee, EmployeesService, INote, NotesService, NmbrsService } from '../../../services';\r\n\r\nclass EmployeesItemController {\r\n\r\n\r\n private employee: IEmployee;\r\n private employeeId: any;\r\n private employeesService: EmployeesService;\r\n private activeTabIndex: number;\r\n\r\n private notes: INote[];\r\n private filteredNotes: INote[];\r\n private notesService: any;\r\n private currentNote: any;\r\n private tags: string[];\r\n private selectedTag: string;\r\n\r\n private nmbrsEmployee: any;\r\n private nmbrsEmployeeAddress: any;\r\n private nmbrsEmployeeBankAccount: any;\r\n private nmbrsEmployeeFunction: any;\r\n private nmbrsEmployeeSalary: any;\r\n private nmbrsEmployeeContract: any;\r\n\r\n private navigator: any;\r\n\r\n constructor(\r\n EmployeesService: EmployeesService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private NotesService: NotesService,\r\n private NmbrsService: NmbrsService,\r\n private AuthService: AuthService,\r\n private SweetAlert: any,\r\n private MasterdataService: aboMasterdata.IService,\r\n private $filter: any,\r\n ) {\r\n 'ngInject';\r\n\r\n this.notesService = NotesService;\r\n this.employeesService = EmployeesService;\r\n\r\n this.employeeId = $stateParams['employeeId']\r\n\r\n angular.element(document).ready(() => {\r\n ($('#notes-table')).dataTable({\r\n \"pageLength\": 5,\r\n \"lengthChange\": false,\r\n \"searching\": false\r\n });\r\n });\r\n }\r\n\r\n public $onInit = () => {\r\n if (this.AuthService.hasRole(\"finance\")) {\r\n this.activeTabIndex = 0;\r\n } else {\r\n this.activeTabIndex = 1;\r\n }\r\n if (this.$stateParams['tab']) {\r\n this.activeTabIndex = this.$stateParams['tab'];\r\n }\r\n\r\n if (this.employee && this.employee.nmbrsId) {\r\n this.NmbrsService.customGet('employee/' + this.employee.nmbrsId).then((result => {\r\n this.nmbrsEmployee = result;\r\n }));\r\n\r\n this.NmbrsService.customGet('employeeAddress/' + this.employee.nmbrsId).then((result => {\r\n this.nmbrsEmployeeAddress = result[0];\r\n }));\r\n\r\n this.NmbrsService.customGet('employeeBankAccount/' + this.employee.nmbrsId).then((result => {\r\n this.nmbrsEmployeeBankAccount = result[0];\r\n }));\r\n\r\n this.NmbrsService.customGet('employeeFunction/' + this.employee.nmbrsId).then((result => {\r\n this.nmbrsEmployeeFunction = result;\r\n }));\r\n\r\n this.NmbrsService.customGet('employeeSalary/' + this.employee.nmbrsId).then((result => {\r\n this.nmbrsEmployeeSalary = result;\r\n }));\r\n\r\n this.NmbrsService.customGet('employeeContract/' + this.employee.nmbrsId).then((result => {\r\n this.nmbrsEmployeeContract = result.employeeContracts[0];\r\n }));\r\n }\r\n\r\n this.MasterdataService.getItems('NoteTags').then(res => {\r\n this.tags = res;\r\n });\r\n\r\n this.filterNotes();\r\n }\r\n\r\n filterNotes() {\r\n this.filteredNotes = this.$filter('filter')(this.notes, (note: INote): boolean => {\r\n if (!!this.selectedTag) {\r\n return note.tags.indexOf(this.selectedTag) !== -1;\r\n } else {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n submitEmployee() {\r\n if (this.employee.id == null) {\r\n this.saveEmployee();\r\n } else {\r\n this.employeesService.put(this.employee.id, this.employee);\r\n }\r\n }\r\n\r\n saveEmployee() {\r\n this.employeesService.post(this.employee).then(result => {\r\n this.$state.go('hr.employees.item', { 'id': result.id });\r\n });\r\n }\r\n\r\n deleteEmployee() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze medewerker wilt verwijderen?\\n Diensten en declaraties van de medewerker blijven onveranderd!',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.employee.inactive = true;\r\n this.employeesService.put(this.employee.id, this.employee);\r\n this.$state.go('^.list').then(() => { this.$state.reload(); });\r\n } else {\r\n\r\n }\r\n }); \r\n }\r\n\r\n restoreEmployee() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u de medewerker wilt herstellen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.employee.inactive = false;\r\n this.employeesService.put(this.employee.id, this.employee);\r\n this.$state.reload();\r\n } else {\r\n\r\n }\r\n }); \r\n }\r\n\r\n addNoteModal() {\r\n this.currentNote = null;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n updateNoteModal(item) {\r\n this.currentNote = item;\r\n ($('#noteModal')).modal('show');\r\n }\r\n\r\n submitNote(item) {\r\n var newNote = item;\r\n newNote.date = new Date(Date.now());\r\n newNote.employeeId = this.employee.id;\r\n\r\n if (newNote.id == null) {\r\n this.notesService.post(newNote).then(result => {\r\n this.notes.unshift(result);\r\n });\r\n } else {\r\n this.notesService.put(newNote.id, newNote);\r\n }\r\n\r\n ($('#noteModal')).modal('hide');\r\n }\r\n\r\n deleteNote(item) {\r\n this.notes = this.notes.filter(note => note.id !== item.id);\r\n\r\n this.notesService.delete(item.id);\r\n }\r\n\r\n updateNote(item, action) {\r\n switch (action) {\r\n case 'add':\r\n this.addNoteModal();\r\n break;\r\n case 'edit':\r\n this.updateNoteModal(item);\r\n break;\r\n case 'delete':\r\n this.deleteNote(item);\r\n break;\r\n }\r\n }\r\n\r\n refreshEmployeeNmbrs() {\r\n this.employeesService.refresh(this.employee.id).then(() => {\r\n this.$state.reload();\r\n })\r\n }\r\n\r\n copyGuid() {\r\n window.navigator['clipboard'].writeText(this.employee.id);\r\n alert(\"De Guid van \" + this.employee.displayName + \"is gekopieerd\");\r\n }\r\n}\r\n\r\nexport const employeesItemComponent = {\r\n bindings: {\r\n notes: '<',\r\n userAccount: '<',\r\n employee: '<',\r\n history: '<',\r\n employeeSkills: '<',\r\n functions: '<'\r\n },\r\n controller: EmployeesItemController,\r\n template: require('./employees.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/employees/employees.item.component.ts","import { IEmployee, EmployeesService, EnumService, TwinfieldService } from \"../../../services/index\";\r\n\r\nclass EmployeesListController {\r\n inProgress: boolean;\r\n emailaddresses: string;\r\n private currentPage: number;\r\n private itemsPerPage: number;\r\n private sortType: string;\r\n private search: string;\r\n private tag: string;\r\n private statusFilter: string;\r\n private accountingFilter: string;\r\n private employees: IEmployee[];\r\n private filteredEmployees: IEmployee[];\r\n\r\n constructor(\r\n private EmployeesService: EmployeesService,\r\n private EnumService: EnumService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $scope: any,\r\n private $filter: any,\r\n private $state: ng.ui.IStateService,\r\n private TwinfieldService: TwinfieldService\r\n ) {\r\n 'ngInject';\r\n //console.log(EnumService);\r\n this.sortType = 'displayName';\r\n //console.log('EmployeesListController');\r\n\r\n \r\n }\r\n\r\n public $onInit = () => {\r\n\r\n /** Set return URI */\r\n\r\n this.TwinfieldService.setTwinfieldRedirectUri();\r\n \r\n this.currentPage = 1;\r\n this.itemsPerPage = 11;\r\n this.getEmployees();\r\n // this.$scope.$watch(() => {\r\n // return this.filteredEmployees;\r\n // }, () => {\r\n // this.emailToClipboard();\r\n // });\r\n }\r\n public onCopySuccess = (e) => {\r\n alert('Gegevens gekopieerd naar plakbord!')\r\n }\r\n\r\n public getEmployees = () => {\r\n\r\n if (this.statusFilter === 'inactive') {\r\n this.EmployeesService.getEmployeesByStatus(false).then(res => {\r\n this.employees = res;\r\n this.applyFilters();\r\n })\r\n } else {\r\n this.EmployeesService.getEmployeesByStatus().then(res => {\r\n this.employees = res;\r\n this.applyFilters();\r\n })\r\n }\r\n }\r\n\r\n applyFilters() {\r\n this.filteredEmployees = this.$filter('filter')(this.employees, this.tag);\r\n this.filteredEmployees = this.$filter('filterBy')(this.filteredEmployees, ['displayName', 'functionName', 'emailPrivate'], this.search);\r\n this.filteredEmployees = this.$filter('orderBy')(this.filteredEmployees, this.sortType);\r\n if (this.accountingFilter === 'nmbrs') {\r\n this.filteredEmployees = this.filteredEmployees.filter(e => e.nmbrsId);\r\n }\r\n if (this.accountingFilter === 'zzp') {\r\n this.filteredEmployees = this.filteredEmployees.filter(e => !e.nmbrsId);\r\n }\r\n // ($ctrl.employees | filter: $ctrl.tag | filterBy : ['displayName', 'functionName', 'emailPrivate']: $ctrl.search | orderBy:$ctrl.sortType:sortReverse)\r\n\r\n this.emailToClipboard();\r\n }\r\n\r\n emailToClipboard() {\r\n if (this.filteredEmployees.length > 0) {\r\n var emailsList = [];\r\n this.filteredEmployees.forEach((e, i) => {\r\n if (e.emailPrivate) {\r\n emailsList.push(e.emailPrivate);\r\n }\r\n });\r\n this.emailaddresses = emailsList.join(';');\r\n }\r\n\r\n //console.log(emailsList.join(';'));\r\n //window.prompt(\"Ctrl+C to copy to clipboard, then paste in the BCC field of an email:\", emailsList.join(';'));\r\n }\r\n\r\n refreshEmployeesNmbrs() {\r\n ($('#notificationModal')).modal('show');\r\n this.inProgress = true;\r\n this.EmployeesService.refreshAll().then(() => {\r\n ($('#notificationModal')).modal('hide');\r\n this.inProgress = false;\r\n this.$state.reload();\r\n })\r\n }\r\n\r\n}\r\n\r\nexport const employeesListComponent = {\r\n bindings: {\r\n },\r\n controller: EmployeesListController,\r\n template: require('./employees.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/employees/employees.list.component.ts","class HrController implements ng.IComponentController {\r\n static $inject = [];\r\n constructor() {\r\n // console.log('HrController');\r\n }\r\n}\r\n\r\nexport const hrComponent : ng.IComponentOptions = {\r\n controller : HrController,\r\n template : require('./hr.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/hr.component.ts","class HrDashboardController implements ng.IComponentController {\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n}\r\n\r\nexport const hrDashboardComponent: ng.IComponentOptions = {\r\n controller: HrDashboardController,\r\n template: require('./hr.dashboard.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/hr.dashboard.component.ts","import { EmployeeSkillsService } from '../../services/employeeSkills.service';\r\nimport { employeesItemComponent } from './employees/employees.item.component';\r\nimport { employeesListComponent } from './employees/employees.list.component';\r\nimport { employeesComponent } from './employees/employees.component';\r\nimport { hrDashboardComponent } from './hr.dashboard.component';\r\nimport { hrComponent } from './hr.component';\r\nimport { employeesItemState, employeesListState, employeesState, hrDashboardState, hrState, availabilityListState, applicantsState, applicantsListState, applicantsItemState, applicantsItemBasicState, applicantsItemEmployeeState, applicantsArchiveState, applicantsArchiveItemState, applicantsArchiveItemBasicState } from './hr.states';\r\nimport { employeesItemBasicState, shiftsItemState, availabilityItemState, skillsItemState } from './hr.states';\r\nimport { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { EmployeesService, ShiftService, DeclarationService, NmbrsService, ApplicantsService, ApplicantStatusHistoryService } from \"../../services/index\";\r\nimport { employeesItemBasicComponent } from \"./employees/employees.item.basic.component\";\r\nimport { shiftsListComponent } from \"./shifts/shifts.list.component\";\r\nimport { shiftsItemComponent } from \"./shifts/shifts.item.component\";\r\nimport { availabilityCalendarComponent } from \"./availability/availability.calendar.component\";\r\nimport { availabilityItemComponent } from \"./availability/availability.item.component\";\r\nimport { skillsListComponent } from \"./skills/skills.list.component\";\r\nimport { skillsItemComponent } from \"./skills/skills.item.component\";\r\nimport { uploaderComponent } from \"../shared/uploader.component\";\r\nimport { nmbrsComponent } from \"./nmbrs/nmbrs.component\";\r\nimport { availabilityListComponent } from './availabilityList/availabilityList.component';\r\nimport { applicantsItemComponent } from './applicants/applicants.item.component';\r\nimport { applicantsListComponent } from './applicants/applicants.list.component';\r\nimport { applicantsComponent } from './applicants/applicants.component';\r\nimport { applicantsItemBasicComponent } from \"./applicants/applicants.item.basic.component\";\r\nimport { applicantsItemEmployeeComponent } from \"./applicants/applicants.item.employee.component\";\r\n\r\nconst hrAppModule: aboTheme.INgModule = {\r\n components: { hrComponent, hrDashboardComponent,\r\n employeesComponent, employeesListComponent, employeesItemComponent,\r\n employeesItemBasicComponent, shiftsListComponent, shiftsItemComponent,\r\n availabilityCalendarComponent, availabilityItemComponent,\r\n skillsListComponent, skillsItemComponent, uploaderComponent,\r\n nmbrsComponent,\r\n availabilityListComponent,\r\n applicantsComponent, applicantsListComponent, applicantsItemComponent, applicantsItemBasicComponent, applicantsItemEmployeeComponent\r\n },\r\n states: [ hrState, hrDashboardState,\r\n employeesState, employeesListState, employeesItemState,\r\n employeesItemBasicState, shiftsItemState, availabilityItemState,\r\n skillsItemState,\r\n availabilityListState,\r\n applicantsState, applicantsListState, applicantsItemState, applicantsItemBasicState, applicantsItemEmployeeState, applicantsArchiveState, applicantsArchiveItemState, applicantsArchiveItemBasicState\r\n ],\r\n services: { EmployeesService, ShiftService, DeclarationService, EmployeeSkillsService, NmbrsService, ApplicantsService, ApplicantStatusHistoryService }\r\n};\r\n\r\nloadNg1Module(ngmodule, hrAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/index.ts","import * as _ from \"lodash\";\r\n\r\nclass NmbrsController {\r\n private nmbrsEmployeeAddress: any;\r\n private nmbrsEmployeeFunction: any;\r\n private function: any;\r\n private functions: any;\r\n private activeTabIndex: number;\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.activeTabIndex = 0;\r\n \r\n }\r\n\r\n public $onChange = () => {\r\n if(this.nmbrsEmployeeFunction){\r\n this.function = _.find(this.functions, {code: this.nmbrsEmployeeFunction.code});\r\n }\r\n }\r\n}\r\n\r\nexport const nmbrsComponent = {\r\n bindings: {\r\n nmbrsEmployee: \"<\",\r\n nmbrsEmployeeAddress: \"<\",\r\n nmbrsEmployeeBankAccount: \"<\",\r\n nmbrsEmployeeFunction: \"<\",\r\n nmbrsEmployeeSalary: \"<\",\r\n nmbrsEmployeeContract: \"<\",\r\n functions: \"<\"\r\n },\r\n controller: NmbrsController,\r\n template: require('./nmbrs.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/nmbrs/nmbrs.component.ts","import { IEmployee, ShiftService, IShift } from \"../../../services/index\";\r\nimport * as _ from \"lodash\";\r\nimport * as moment from \"moment\";\r\ninterface IResolve {\r\n employee: IEmployee;\r\n shifts: IShift[];\r\n}\r\n\r\nclass ShiftsItemController {\r\n\r\n private resolve: IResolve;\r\n private employee: IEmployee;\r\n private shift: IShift;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.employee = this.resolve.employee;\r\n var shiftId : string = this.$stateParams['shiftId'];\r\n if (shiftId != '') {\r\n this.shift = _.find(this.resolve.shifts, { \"id\": shiftId });\r\n } else {\r\n this.shift = new IShift();\r\n }\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n // console.log('startDateBeforeRender');\r\n const todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0,0,0,0);\r\n // $dates.filter(function (date) {\r\n // return date.utcDateValue < todaySinceMidnight.getTime();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.shift.start) {\r\n var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n public submitShift() {\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.shift.id === undefined) {\r\n this.shift.employeeId = this.employee.id;\r\n this.ShiftService.post(this.shift).then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.ShiftService.put(this.shift.id, this.shift).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n this.ShiftService.delete(this.shift.id).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 0}, {reload: true});\r\n }\r\n}\r\n\r\nexport const shiftsItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: ShiftsItemController,\r\n template: require('./shifts.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/shifts/shifts.item.component.ts","class ShiftsListController {\r\n public currentPage: number;\r\n public itemsPerPage: number;\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.currentPage = 1;\r\n this.itemsPerPage = 12;\r\n }\r\n\r\n public $onChanges = () => {\r\n \r\n }\r\n \r\n parseDate(item) {\r\n var date = new Date(item.start);\r\n return date;\r\n }\r\n}\r\n\r\nexport const shiftsListComponent = {\r\n bindings: {\r\n history: \"<\"\r\n },\r\n controller: ShiftsListController,\r\n template: require('./shifts.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/shifts/shifts.list.component.ts","import { IBlob } from '../../../services/employeeSkills.service';\r\nimport { IEmployee, EmployeeSkillsService, IEmployeeSkill, Masterdata } from \"../../../services/index\";\r\nimport * as moment from 'moment';\r\n\r\ninterface IResolve {\r\n employee: IEmployee;\r\n employeeSkills: IEmployeeSkill[];\r\n skills: Masterdata[];\r\n}\r\n\r\nclass SkillsItemController {\r\n private file: IBlob;\r\n private uploadfile: any;\r\n private resolve: IResolve;\r\n private employee: IEmployee;\r\n private employeeSkill: IEmployeeSkill;\r\n private skills: Masterdata[];\r\n\r\n constructor(\r\n private EmployeeSkillsService: EmployeeSkillsService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private FileSaver: ng.FileSaver\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.employee = this.resolve.employee;\r\n this.skills = this.resolve.skills;\r\n if (this.$stateParams['employeeSkillId']) {\r\n this.employeeSkill = this.resolve.employeeSkills.find(s => s.id == this.$stateParams['employeeSkillId']);\r\n this.getFiles(this.$stateParams['employeeSkillId']);\r\n } else {\r\n this.employeeSkill = new IEmployeeSkill();\r\n }\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n if (this.employeeSkill.start) {\r\n var activeDate = moment(this.employeeSkill.start).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n startDateSelected() {\r\n this.employeeSkill.end = moment(this.employeeSkill.start).add(1, 'year').toDate();\r\n }\r\n\r\n public submitSkill() {\r\n this.employeeSkill.start = moment(this.employeeSkill.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.employeeSkill.end = moment(this.employeeSkill.end).format(\"YYYY-MM-DD HH:mm\");\r\n\r\n if (this.employeeSkill.id === undefined) {\r\n\r\n if (this.employee) {\r\n this.employeeSkill.employeeId = this.employee.id;\r\n }\r\n this.EmployeeSkillsService.post(this.employeeSkill).then((data) => {\r\n if(this.uploadfile){\r\n this.postFile(data.id).then(() => {\r\n this.closeModal();\r\n })\r\n } else {\r\n this.closeModal();\r\n }\r\n \r\n });\r\n\r\n } else {\r\n this.EmployeeSkillsService.put(this.employeeSkill.id, this.employeeSkill).then((data) => {\r\n if(this.uploadfile){\r\n this.postFile(data.id).then(() => {\r\n this.closeModal();\r\n })\r\n } else {\r\n this.closeModal();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private postFile = (id) => {\r\n return this.EmployeeSkillsService.postBlob(id, this.uploadfile);\r\n }\r\n\r\n public getFiles = (id) => {\r\n this.EmployeeSkillsService.getBlobs(id).then((files) => {\r\n this.file = files.value[files.value.length - 1];\r\n })\r\n }\r\n\r\n public downloadFile = (id) => {\r\n this.EmployeeSkillsService.getBlob(this.employeeSkill.id, id).then((blob) => {\r\n this.FileSaver.saveAs(blob, this.file.filenameWithExtention)\r\n })\r\n } \r\n\r\n delete() {\r\n this.EmployeeSkillsService.delete(this.employeeSkill.id).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {tab: 4}, {reload: true});\r\n }\r\n}\r\n\r\nexport const skillsItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: SkillsItemController,\r\n template: require('./skills.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/skills/skills.item.component.ts","class SkillsListController {\r\n public currentPage: number;\r\n public itemsPerPage: number;\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.currentPage = 1;\r\n this.itemsPerPage = 12;\r\n }\r\n\r\n public $onChanges = () => {\r\n \r\n }\r\n \r\n parseDate(item) {\r\n var date = new Date(item.start);\r\n return date;\r\n }\r\n}\r\n\r\nexport const skillsListComponent = {\r\n bindings: {\r\n employeeSkills: \"<\"\r\n },\r\n controller: SkillsListController,\r\n template: require('./skills.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/hr/skills/skills.list.component.ts","import { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { noteComponent } from './note.component';\r\nimport { noteListComponent } from './note.list.component';\r\nimport {\r\n noteState, noteListState, noteItemState, noteItemBasicState\r\n // , noteArchiveState\r\n} from \"./notes.states\";\r\n// import { noteItemComponent } from \"./note.item.component\";\r\n// import { noteItemBasicComponent } from \"./note.item.basic.component\";\r\n// import { noteArchiveComponent } from \"./note.archive.component\";\r\n\r\nconst subscriptionAppModule: aboTheme.INgModule = {\r\n components: {\r\n noteComponent\r\n , noteListComponent\r\n // , noteItemComponent\r\n // , noteItemBasicComponent\r\n // , noteArchiveComponent\r\n },\r\n states: [noteState, noteListState, noteItemState, noteItemBasicState\r\n // , noteArchiveState\r\n ],\r\n};\r\n\r\nloadNg1Module(ngmodule, subscriptionAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/notes/index.ts","class NoteController implements ng.IComponentController {\r\n\r\n constructor(\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n}\r\n\r\nexport const noteComponent: ng.IComponentOptions = {\r\n controller: NoteController,\r\n template: require('./note.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/notes/note.component.ts","import { INote, NotesService } from \"../../services\";\r\n\r\nclass NoteListController implements ng.IComponentController {\r\n private sortType: string;\r\n private search: string;\r\n private notes: INote[];\r\n private filteredNotes: INote[];\r\n private selectedTag: string;\r\n private currentNote: INote;\r\n\r\n private notesService: any;\r\n\r\n constructor(\r\n private $filter: any,\r\n private NotesService: NotesService,\r\n ) {\r\n 'ngInject';\r\n this.notesService = NotesService;\r\n }\r\n\r\n public $onInit = () => {\r\n this.sortType = 'createdOn';\r\n this.filter();\r\n }\r\n\r\n filter(): void {\r\n this.filteredNotes = this.$filter('filter')(this.notes, (note: INote): boolean => {\r\n if (!!this.selectedTag) {\r\n return note.tags.indexOf(this.selectedTag) !== -1;\r\n } else {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n getNoteAuthorName(note: INote) {\r\n if (note.accountName) return note.accountName;\r\n if (note.employeeDisplayName) return note.employeeDisplayName;\r\n if (note.applicantName) return note.applicantName;\r\n return '';\r\n }\r\n\r\n // addNoteModal() {\r\n // this.currentNote = null;\r\n // ($('#noteModal')).modal('show');\r\n // }\r\n\r\n // submitNote(item) {\r\n // var newNote = item;\r\n // newNote.date = new Date(Date.now());\r\n // // newNote.accountId = this.account.id;\r\n\r\n // if (newNote.id == null) {\r\n // this.notesService.post(newNote).then(result => {\r\n // this.notes.push(result);\r\n // });\r\n // } else {\r\n // this.notesService.put(newNote.id, newNote);\r\n // }\r\n\r\n // ($('#noteModal')).modal('hide');\r\n // }\r\n}\r\n\r\nexport const noteListComponent = {\r\n bindings: {\r\n notes: '<',\r\n noteTags: '<'\r\n },\r\n controller: NoteListController,\r\n template: require('./note.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/notes/note.list.component.ts","import { INote } from './../../services/notes.service';\r\nimport { NotesService } from '../../services/notes.service';\r\nimport { AccountsService, EmployeesService, ContactsService } from '../../services';\r\n\r\nexport const noteState: aboTheme.IState = {\r\n parent: 'app',\r\n name: \"notes\",\r\n url: \"/notes\",\r\n component: 'noteComponent',\r\n redirectTo: \"notes.list\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\n\r\nexport const noteListState: aboTheme.IState = {\r\n name: \"notes.list\",\r\n url: \"/list\",\r\n resolve: {\r\n notes: (NotesService: NotesService) => { \"ngInject\"; return NotesService.all().then((notes: INote[]) => notes.filter(note => !note.applicantId)); },\r\n noteTags: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('NoteTags'); }\r\n },\r\n views: {\r\n \"main\": 'noteListComponent'\r\n },\r\n};\r\n\r\nexport const noteItemState = {\r\n name: \"notes.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"isArchive\": null\r\n },\r\n resolve: {\r\n note: (NotesService: NotesService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return NotesService.get($stateParams['id']);\r\n }\r\n }\r\n },\r\n views: {\r\n \"main\": 'noteItemComponent'\r\n }\r\n};\r\n\r\nexport const noteItemBasicState: aboTheme.IState = {\r\n\r\n name: \"notes.item.basic\",\r\n url: \"/basic\",\r\n modal: ['note'],\r\n resolve: {\r\n // users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); },\r\n accounts: (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); },\r\n // contacts: (ContactsService: ContactsService) => { 'ngInject'; return ContactsService.all(); }, \r\n employees: (EmployeesService: EmployeesService) => { \"ngInject\"; return EmployeesService.getEmployeesByStatus(); },\r\n // noteStatuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('NoteStatus'); }\r\n },\r\n component: 'noteItemBasicComponent'\r\n};\r\n\r\n// export const noteArchiveState: aboTheme.IState = {\r\n// name: \"notes.archive\",\r\n// url: \"/archive\",\r\n// resolve: {\r\n// notes: (NotesService: NotesService) => { \"ngInject\"; return NotesService.getArchive(); },\r\n// },\r\n// views: {\r\n// \"main\": 'noteArchiveComponent'\r\n// },\r\n// };\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/notes/notes.states.ts","import { quotationDashboardState, quotationsState, quotationProformaState, quotationCootjeState } from './quotations.states';\r\nimport { quotationsComponent } from './quotations.component';\r\nimport { quotationsDashboardComponent } from './quotations.dashboard.component';\r\nimport { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { InvoicesService, TwinfieldService } from \"../../services/index\";\r\nimport { invoiceDetailsComponent } from \"./invoiceDetails.component\";\r\nimport { quotationsCootjeComponent } from './quotations.cootje.component';\r\nimport { CootjeService } from '../../services/cootje.service';\r\nconst quotationsAppModule: aboTheme.INgModule = {\r\n components: { quotationsComponent, quotationsDashboardComponent, invoiceDetailsComponent, quotationsCootjeComponent },\r\n states: [ quotationsState, quotationDashboardState, quotationProformaState, quotationCootjeState ],\r\n services: { InvoicesService, TwinfieldService, CootjeService }\r\n};\r\n\r\nloadNg1Module(ngmodule, quotationsAppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/quotations/index.ts","class InvoiceDetailsController {\r\n private onUpdate: any;\r\n\r\n constructor(private $state: ng.ui.IStateService) {\r\n 'ngInject'; \r\n // console.log('InvoiceDetailController');\r\n }\r\n\r\n deleteInvoice() {\r\n // console.log('delete invoice');\r\n this.onUpdate({action: 'delete'});\r\n }\r\n\r\n sendToTwinfield() {\r\n // console.log('sendToTwinfield');\r\n this.onUpdate({action: 'send'});\r\n }\r\n}\r\n\r\nexport const invoiceDetailsComponent = {\r\n bindings: {\r\n invoice: '<',\r\n proformaInvoicesOnly: '<',\r\n onUpdate: '&'\r\n },\r\n controller: InvoiceDetailsController,\r\n template: require('./invoiceDetails.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/quotations/invoiceDetails.component.ts","class QuotationsController implements ng.IComponentController {\r\n constructor() {\r\n 'ngInject';\r\n }\r\n}\r\n\r\nexport const quotationsComponent : ng.IComponentOptions = {\r\n controller : QuotationsController,\r\n template :require('./quotations.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/quotations/quotations.component.ts","import { resolve } from 'path';\r\nimport { CootjeService, ICootjeEmployee } from \"../../services/index\";\r\nimport * as moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n\r\nclass QuotationsCootjeController implements ng.IComponentController {\r\n\r\n /** Injectables */\r\n\r\n private sortType: string;\r\n\r\n private startDate: any;\r\n private endDate: any;\r\n private list: ICootjeEmployee[];\r\n private moment: any;\r\n currentItem: any;\r\n repport: any;\r\n loading: boolean = false;\r\n hasKM: boolean = false;\r\n\r\n\r\n constructor(\r\n private CootjeService: CootjeService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $scope: ng.IScope,\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n\r\n /** Set return URI */\r\n\r\n // this.TwinfieldService.setTwinfieldRedirectUri();\r\n\r\n // this.proformaInvoicesOnly = this.$stateParams['proformaInvoicesOnly'];\r\n\r\n this.sortType = 'account.name';\r\n this.moment = require('moment');\r\n\r\n this.startDate = this.moment().startOf('isoweek').toDate();\r\n this.endDate = this.moment().endOf('isoweek').toDate();\r\n\r\n\r\n this.getCootje()\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n prevWeek() {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').toDate();\r\n }\r\n \r\n nextWeek() {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(7, 'day').toDate();\r\n }\r\n\r\n getCootje() {\r\n this.CootjeService.customGet('', {from: this.startDate, till: this.endDate}).then((result: any) => {\r\n this.list = result;\r\n if(this.currentItem) {\r\n this.selectInvoice(this.list.find(i => i.employeeId == this.currentItem.employeeId ));\r\n }\r\n });\r\n }\r\n\r\n selectInvoice(item) {\r\n this.currentItem= item;\r\n this.hasKM = false;\r\n this.currentItem.diensten.forEach(dienst => {\r\n dienst.declarations.forEach(declaration => {\r\n if(declaration.registrationType == 2) {\r\n this.hasKM = true;\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n sendCootje() {\r\n \r\n this.loading = true;\r\n ($('#sendToCootjeModal')).modal('show');\r\n\r\n console.log(this.currentItem)\r\n this.CootjeService.sendToCootje(this.currentItem.diensten).then((result: any) => {\r\n this.repport = {'failCount': 0, 'successCount' : 0, 'fail' : [], 'success' : []}\r\n\r\n console.log(result.message);\r\n this.repport.failCount = result.message.fail != null ? result.message.fail.length : 0;\r\n this.repport.successCount = result.message.succes != null ? result.message.succes.length : 0;\r\n this.repport.fail = result.message.fail;\r\n this.repport.fail.forEach(fail => {\r\n fail.shift = this.currentItem.diensten.find(i => i.shiftId == fail.dienstGUID).shift\r\n });\r\n this.repport.success = result.message.succes;\r\n this.repport.success.forEach(success => {\r\n success.shift = this.currentItem.diensten.find(i => i.shiftId == success.dienstGUID).shift\r\n });\r\n this.getCootje();\r\n\r\n this.loading = false;\r\n });\r\n \r\n }\r\n}\r\n\r\nexport const quotationsCootjeComponent : ng.IComponentOptions = {\r\n controller : QuotationsCootjeController,\r\n template :require('./quotations.cootje.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/quotations/quotations.cootje.component.ts","import { resolve } from 'path';\r\nimport { InvoicesService, IInvoice, TwinfieldService } from \"../../services/index\";\r\nimport * as moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n\r\nclass QuotationsDashboardController implements ng.IComponentController {\r\n\r\n /** Injectables */\r\n\r\n private sortType: string;\r\n\r\n private startDate: any;\r\n private endDate: any;\r\n private invoices: IInvoice[];\r\n private currentInvoice: IInvoice;\r\n private moment: any;\r\n private invoicesTotalAmount: number;\r\n private twinfieldTotalAmount: number;\r\n private proformaInvoicesOnly: boolean;\r\n\r\n constructor(\r\n private InvoicesService: InvoicesService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $scope: ng.IScope,\r\n private TwinfieldService: TwinfieldService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n\r\n /** Set return URI */\r\n\r\n this.TwinfieldService.setTwinfieldRedirectUri();\r\n\r\n this.proformaInvoicesOnly = this.$stateParams['proformaInvoicesOnly'];\r\n\r\n this.sortType = 'account.name';\r\n this.moment = require('moment');\r\n\r\n this.startDate = this.moment().startOf('isoweek').toDate();\r\n this.endDate = this.moment().endOf('isoweek').toDate();\r\n\r\n if (this.proformaInvoicesOnly) {\r\n this.getInvoices();\r\n }\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n prevWeek() {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').toDate();\r\n }\r\n \r\n nextWeek() {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(7, 'day').toDate();\r\n }\r\n\r\n getInvoices() {\r\n this.InvoicesService.customGet('makeinvoices', {from: this.startDate, till: this.endDate, proformaInvoicesOnly: this.proformaInvoicesOnly}).then((result: any) => {\r\n this.invoices = result;\r\n this.checkForUnpaid();\r\n this.getTotalAmount();\r\n });\r\n }\r\n\r\n selectInvoice(item) {\r\n this.currentInvoice = item;\r\n }\r\n\r\n checkForUnpaid() {\r\n this.invoices.forEach(invoice => {\r\n invoice.lines.forEach(line => {\r\n if (line.count > 0 && (line.totalAmount == 0 || line.totalAmount == undefined || line.amountPerUnit == 0 || line.amountPerUnit == undefined)) {\r\n invoice.hasUnpaid = true;\r\n }\r\n });\r\n });\r\n }\r\n\r\n getTotalAmount() {\r\n this.invoicesTotalAmount = 0;\r\n this.twinfieldTotalAmount = 0;\r\n this.invoices.forEach(i => {\r\n this.invoicesTotalAmount += i.totalAmount;\r\n if (i.twinfieldNumber) {\r\n this.twinfieldTotalAmount += i.totalAmount;\r\n }\r\n });\r\n }\r\n\r\n updateInvoice(action) {\r\n switch (action) {\r\n case 'delete': {\r\n this.InvoicesService.delete(this.currentInvoice.id).then(() => {\r\n this.invoices = this.invoices.filter(i => i.id != this.currentInvoice.id);\r\n this.currentInvoice = null;\r\n });\r\n break;\r\n }\r\n case 'send': {\r\n this.InvoicesService.customPost(this.currentInvoice.id + '/send', null).then((data) => {\r\n //this.currentInvoice = data;\r\n _.find(this.invoices, {\"id\": this.currentInvoice.id }).twinfieldNumber = data.twinfieldNumber;\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const quotationsDashboardComponent : ng.IComponentOptions = {\r\n controller : QuotationsDashboardController,\r\n template :require('./quotations.dashboard.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/quotations/quotations.dashboard.component.ts","export const quotationsState: aboTheme.IState = {\r\n parent: \"app\",\r\n name: \"quotations\",\r\n url: \"/quotations\",\r\n redirectTo: \"quotations.proforma\",\r\n component: \"quotationsComponent\",\r\n data: {\r\n permissions: {\r\n only: ['FINANCE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\n\r\nexport const quotationProformaState: aboTheme.IState = {\r\n\r\n name: \"quotations.proforma\",\r\n url: \"/proforma\",\r\n params: {\r\n proformaInvoicesOnly: true\r\n },\r\n views: {\r\n \"main\": 'quotationsDashboardComponent'\r\n }\r\n};\r\n\r\nexport const quotationCootjeState: aboTheme.IState = {\r\n\r\n name: \"quotations.cootje\",\r\n url: \"/cootje\",\r\n params: {\r\n proformaInvoicesOnly: true\r\n },\r\n views: {\r\n \"main\": 'quotationsCootjeComponent'\r\n }\r\n};\r\n\r\nexport const quotationDashboardState: aboTheme.IState = {\r\n\r\n name: \"quotations.dashboard\",\r\n url: \"/dashboard\",\r\n params: {\r\n proformaInvoicesOnly: false\r\n },\r\n views: {\r\n \"main\": 'quotationsDashboardComponent'\r\n }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/quotations/quotations.states.ts","import { scheduleDeclarationComponent } from './schedule.declaration.component';\r\nimport { scheduleItemComponent } from './schedule.item.component';\r\nimport {loadNg1Module, ngmodule} from \"../../bootstrap/ngmodule\";\r\nimport {\r\n scheduleAvailabilityState,\r\n scheduleCalendarState,\r\n scheduleDeclarationState,\r\n scheduleListItemDeclarationState,\r\n scheduleListItemState,\r\n scheduleListState,\r\n scheduleShiftItemState,\r\n scheduleState,\r\n scheduleSubscriptionState,\r\n} from './schedule.states';\r\nimport { scheduleComponent } from \"./schedule.component\";\r\nimport { scheduleCalendarComponent } from \"./schedule.calendar.component\";\r\nimport { scheduleListComponent } from \"./schedule.list.component\";\r\nimport { subscriptionItemComponent } from \"./subscription.component\";\r\n\r\n\r\nconst scheduleAppModule: aboTheme.INgModule = {\r\n components: { scheduleComponent, scheduleCalendarComponent, scheduleListComponent, subscriptionItemComponent, scheduleItemComponent, scheduleDeclarationComponent },\r\n states: [ scheduleState, scheduleCalendarState, scheduleListState, \r\n scheduleDeclarationState, scheduleAvailabilityState, scheduleSubscriptionState,\r\n scheduleShiftItemState, scheduleListItemState, scheduleListItemDeclarationState ],\r\n\r\n};\r\n\r\nloadNg1Module(ngmodule, scheduleAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/index.ts","import * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { ICalendarShift, CalendarService } from \"../../services/calendar.service\";\r\nimport { AuthService } from \"../../authorization/services/index\";\r\nimport { ShiftService } from \"../../services/index\";\r\n\r\nclass ScheduleCalendarController {\r\n statuses: any;\r\n private shifts: ICalendarShift[];\r\n private employeeId: string;\r\n private uiConfig: any;\r\n private eventSources: any = [];\r\n private isEmployee: boolean;\r\n \r\n constructor(private CalendarService: CalendarService,\r\n private AuthService: AuthService,\r\n private ShiftService: ShiftService,\r\n private $state: ng.ui.IStateService,\r\n private uiCalendarConfig: any,\r\n private $scope: ng.IScope,\r\n private $compile : ng.ICompileService,\r\n private $sce: ng.ISCEService,\r\n private screenSize: any\r\n ) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n // this.employeeId = this.AuthService.getEmployeeId(this.AuthService.GetAuthorizationData());\r\n\r\n this.eventSources = [this.getEvents];\r\n\r\n this.uiConfig = {\r\n\r\n calendar: {\r\n\r\n height: 700,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: false,\r\n\r\n axisFormat: 'h:mm',\r\n\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: false,\r\n eventClick: this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: this.eventRender\r\n }\r\n };\r\n\r\n this.ShiftService.subscribe('ScheduleCalendarController', (type) => {\r\n var newShift;\r\n var calendarItem;\r\n switch (type) {\r\n case 'post': {\r\n newShift = this.ShiftService.item;\r\n calendarItem = new ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n this.shifts.push(calendarItem);\r\n break;\r\n }\r\n case 'put': {\r\n this.shifts = this.shifts.filter(s => s.shift.id !== newShift.id);\r\n if (this.ShiftService.item.status !== 99) {\r\n newShift = this.ShiftService.item;\r\n calendarItem = new ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n calendarItem.status = newShift.status.toString();\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n this.shifts.push(calendarItem);\r\n } \r\n break;\r\n }\r\n case 'delete': {\r\n this.shifts = this.shifts.filter(s => s.shift.id !== this.ShiftService.itemId);\r\n break;\r\n }\r\n }\r\n\r\n this.uiCalendarConfig.calendars['scheduleCalendar'].fullCalendar('refetchEvents');\r\n });\r\n\r\n if (this.AuthService.hasRole(\"employee\")) {\r\n this.isEmployee = true;\r\n } else {\r\n this.isEmployee = false;\r\n }\r\n }\r\n\r\n private openItem = (event, jsEvent) => {\r\n $(jsEvent.currentTarget).tooltip('hide');\r\n switch (event.type) {\r\n case 'shift': \r\n if(event.item.comment == \"Aangemaakt door gebruiker!\"){\r\n this.$state.go('schedule.list.item', { 'id': event.item.id, 'start': event.item.start });\r\n } else {\r\n this.$state.go('schedule.list.item', { 'id': event.item.id, 'start': event.item.start });\r\n }\r\n break;\r\n case 'availability':\r\n this.$state.go('schedule.calendar.availability', { 'availabilityId': event.item.id });\r\n break;\r\n case 'subscription':\r\n this.$state.go('schedule.calendar.subscription', { 'employeeId': '', 'subscriptionId': event.item.id });\r\n break;\r\n }\r\n \r\n }\r\n private eventRender = (event, element, view) => {\r\n var status : any = _.find(this.statuses, {code: event.status});\r\n var statusName = status ? status.name: \"\";\r\n var eventTitle = event.title + \" - \" + event.item.teamName + \"
    \" + statusName + \"\";\r\n\r\n var color: string;\r\n switch (event.type) {\r\n case 'shift': \r\n if (this.isEmployee && event.item.declarations.length > 0) {\r\n color = '#165B68'; // @brand-info darker shade\r\n eventTitle = event.title + \" - \" + event.item.teamName + \"
    Gedeclareerd\";\r\n } else {\r\n color = '#4cc3d9'; // @brand-info\r\n }\r\n break;\r\n case 'availability':\r\n if (event.title.toLowerCase() == 'beschikbaar') {\r\n color = '#2ECC71'; // @brand-success\r\n eventTitle = event.title + \"
    Beschikbaar\";\r\n } else {\r\n color = '#d96557'; // @brand-danger\r\n eventTitle = event.title + \"
    Niet beschikbaar\";\r\n }\r\n break;\r\n case 'subscription':\r\n eventTitle = event.title + \"
    Ingeschreven\";\r\n color = '#ffc65d'; // @brand-warning\r\n //element.hide();\r\n break;\r\n }\r\n\r\n if (moment().isBefore(event.start)) {\r\n element.css({ 'background-color': color, 'border-color': color });\r\n } else {\r\n element.css({ 'background-color': color, 'border-color': color, 'opacity': 0.7 });\r\n }\r\n\r\n element.tooltip({container: \"body\", title: eventTitle, placement: \"top\", html:true }); \r\n var title = element.find('.fc-title, .fc-list-item-title'); \r\n title.html(eventTitle);\r\n\r\n this.$compile(element)(this.$scope);\r\n }\r\n\r\n private getEvents = (start, end, timezone, callback) => {\r\n // console.log('getEvents');\r\n this.CalendarService.customAll('employee', { 'start': start.toDate() , 'end': end.toDate() }).then((events) => {\r\n //filter out canceld shifts\r\n events = _.reject(events, {\"status\" : \"92\"});\r\n events = _.reject(events, {\"title\" : null});\r\n this.shifts = events;\r\n callback(events);\r\n });\r\n }\r\n}\r\n\r\nexport const scheduleCalendarComponent = {\r\n bindings: {\r\n statuses: \"<\"\r\n },\r\n controller: ScheduleCalendarController,\r\n template: require('./schedule.calendar.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/schedule.calendar.component.ts","class ScheduleController implements ng.IComponentController {\r\n\r\n constructor(\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n}\r\n\r\nexport const scheduleComponent: ng.IComponentOptions = {\r\n controller: ScheduleController,\r\n template: require('./schedule.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/schedule.component.ts","import { EmployeesService } from '../../services/employees.service';\r\nimport { DeclarationService} from '../../services/declarations.service';\r\nimport { IShift, ShiftService } from '../../services/shifts.service';\r\nimport * as moment from 'moment';\r\nimport { AuthService } from \"../../authorization/services/index\";\r\nimport { teamsItemComponent } from '../crm/teams/teams.item.component';\r\n\r\nclass IShiftTeam {\r\n id: string;\r\n name: string;\r\n account: string;\r\n location: string;\r\n invoiceNumber: string;\r\n}\r\n\r\n\r\nclass ScheduleDeclarationController implements ng.IComponentController {\r\n private onChange: any;\r\n private employeeSummary: any;\r\n private shift: IShift;\r\n private moment: any;\r\n private startDate: any;\r\n private endDate: any;\r\n isZZP: any = false;\r\n invoiceMonthly: any = false;\r\n invoicenumber: any;\r\n declarationstoSend: { count: number; totalHours: number; countShifts: number; 'teams' : IShiftTeam[] };\r\n\r\n constructor(\r\n private DeclarationService: DeclarationService,\r\n private EmployeesService: EmployeesService,\r\n private $stateParams: ng.ui.IStateParamsService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n \r\n this.EmployeesService.getIsZZP().then((value) => {\r\n this.isZZP = value.zzp;\r\n this.invoiceMonthly = value.invoiceMonthly;\r\n\r\n this.moment = require('moment');\r\n if (this.$stateParams[\"start\"]) {\r\n if( this.invoiceMonthly) {\r\n this.startDate = this.moment(this.$stateParams[\"start\"]).startOf('month').toDate();\r\n this.endDate = this.moment(this.$stateParams[\"start\"]).endOf('month').toDate();\r\n }else {\r\n this.startDate = this.moment(this.$stateParams[\"start\"]).startOf('isoweek').toDate();\r\n this.endDate = this.moment(this.$stateParams[\"start\"]).endOf('isoweek').toDate();\r\n }\r\n \r\n } else {\r\n if(this.invoiceMonthly) {\r\n this.startDate = this.moment().startOf('month').toDate();\r\n this.endDate = this.moment().endOf('month').toDate();\r\n } else {\r\n this.startDate = this.moment().startOf('isoweek').toDate();\r\n this.endDate = this.moment().endOf('isoweek').toDate();\r\n }\r\n }\r\n\r\n this.getDeclartions();\r\n });\r\n } \r\n\r\n public getDeclartions = () => {\r\n \r\n this.EmployeesService.customAll('employeeSummary', {from: moment(this.startDate).format(\"YYYY-MM-DD HH:mm\"), till: moment(this.endDate).format(\"YYYY-MM-DD HH:mm\")}).then((employeeSummary: any) => {\r\n this.employeeSummary = employeeSummary[0];\r\n\r\n this.declarationstoSend = {'count': 0, 'totalHours': 0, 'countShifts' : 0, 'teams' : []};\r\n\r\n this.employeeSummary.shifts.forEach(shift => {\r\n this.declarationstoSend.countShifts++;\r\n shift.declarations.forEach(declaration => {\r\n if(declaration.status <= 1){\r\n this.declarationstoSend.count++;\r\n this.declarationstoSend.totalHours = this.declarationstoSend.totalHours + declaration.duration;\r\n\r\n if(!this.declarationstoSend.teams.find(t => t.id == shift.teamId)) {\r\n this.declarationstoSend.teams.push({\r\n id: shift.teamId,\r\n name: shift.teamName,\r\n location: shift.teamLocationName,\r\n account: shift.teamLocationAccountName,\r\n invoiceNumber: ''\r\n });\r\n }\r\n }\r\n });\r\n });\r\n\r\n \r\n })\r\n \r\n }\r\n\r\n public postConfirm = () => {\r\n \r\n this.DeclarationService.confirm({teams: this.declarationstoSend.teams, from: moment(this.startDate).format(\"YYYY-MM-DD HH:mm\"), till: moment(this.endDate).format(\"YYYY-MM-DD HH:mm\")}).then((data: any) => {\r\n this.getDeclartions();\r\n ($('#sendDeclartionsFormModal')).modal('hide');\r\n })\r\n \r\n }\r\n\r\n prevWeek() {\r\n if(this.invoiceMonthly){\r\n this.startDate = this.moment(this.startDate).add(-1, 'month').startOf('month').toDate();\r\n console.log(this.startDate)\r\n this.endDate = this.moment(this.endDate).add(-1, 'month').endOf('month').toDate();\r\n console.log(this.endDate)\r\n } else {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').toDate();\r\n }\r\n \r\n this.getDeclartions();\r\n }\r\n\r\n nextWeek() {\r\n if(this.invoiceMonthly){\r\n this.startDate = this.moment(this.startDate).add(1, 'month').startOf('month').toDate();\r\n this.endDate = this.moment(this.endDate).add(1, 'month').endOf('month').toDate();\r\n } else {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = this.moment(this.endDate).add(7, 'day').toDate();\r\n }\r\n this.getDeclartions();\r\n }\r\n\r\n sendZPPDeclarations() {\r\n ($('#sendDeclartionsFormModal')).modal('show');\r\n }\r\n\r\n \r\n}\r\n\r\nexport const scheduleDeclarationComponent: ng.IComponentOptions = {\r\n bindings: {\r\n onChange: '&',\r\n\r\n },\r\n controller: ScheduleDeclarationController,\r\n template: require('./schedule.declaration.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/schedule.declaration.component.ts","import { EmployeesService } from '../../services/employees.service';\r\nimport { IShift, ShiftService } from '../../services/shifts.service';\r\nimport { ILocation, LocationService } from '../../services/location.service';\r\nimport * as moment from 'moment';\r\nimport { AuthService } from \"../../authorization/services/index\";\r\n\r\n\r\nclass ScheduleItemController implements ng.IComponentController {\r\n private location: ILocation;\r\n private onChange: any;\r\n private employeeSummary: any;\r\n private shift: IShift;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private LocationService: LocationService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n if (this.$stateParams['id']) {\r\n this.getShift();\r\n }\r\n\r\n if(this.$stateParams['id']) {\r\n this.onChange({type: 'init', data: this.$stateParams['id'] });\r\n }\r\n } \r\n \r\n public getShift = () => {\r\n this.ShiftService.get(this.$stateParams['id']).then((shift) => {\r\n this.shift = shift;\r\n this.EmployeesService.customAll('employeeSummary', {from: moment(this.shift.start).subtract(1, 'h').toDate(), till: moment(this.shift.start).add(1, 'h').toDate()}).then((employeeSummary: any) => {\r\n this.employeeSummary = employeeSummary[0];\r\n });\r\n this.LocationService.get(this.shift.teamLocationId).then((location) => {\r\n this.location = location;\r\n })\r\n })\r\n }\r\n \r\n}\r\n\r\nexport const scheduleItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n // shift: '<',\r\n // employees: '<',\r\n // statuses: '<',\r\n // accounts: '<',\r\n // functions: '<',\r\n onChange: '&',\r\n },\r\n controller: ScheduleItemController,\r\n template: require('./schedule.item.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/schedule.item.component.ts","import { IEmployee } from '../../services/employees.service';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { EmployeesService, DeclarationService } from \"../../services/index\";\r\nimport { IGetShiftListParams, IShift, ShiftService } from '../../services/shifts.service';\r\nimport * as angular from 'angular';\r\n\r\nclass ScheduleListController implements ng.IComponentController {\r\n availibility: any;\r\n private isMessageOpen: boolean;\r\n private currentShift: any;\r\n private groupedShifts: any;\r\n private shiftsGrouping: any;\r\n private shifts: IShift[];\r\n private filter: any;\r\n\r\n private sortType: any;\r\n private moment: any;\r\n private employee: IEmployee;\r\n private months: Array;\r\n private startDate: any;\r\n private endDate: any;\r\n\r\n constructor(\r\n private EmployeesService: EmployeesService,\r\n private DeclarationService: DeclarationService,\r\n private ShiftService: ShiftService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $timeout: ng.ITimeoutService,\r\n private $filter: any,\r\n private screenSize: any\r\n ) {\r\n 'ngInject';\r\n\r\n this.months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];\r\n }\r\n\r\n public $onInit = () => {\r\n\r\n this.shiftsGrouping = 'date';\r\n\r\n this.filter = {\r\n status: null\r\n }\r\n\r\n this.moment = require('moment');\r\n if (this.$stateParams[\"start\"]) {\r\n this.startDate = this.moment.utc(this.$stateParams[\"start\"]).startOf('isoweek').format();\r\n this.endDate = this.moment.utc(this.$stateParams[\"start\"]).endOf('isoweek').format();\r\n } else {\r\n this.startDate = this.moment().startOf('isoweek').format();\r\n this.endDate = this.moment().endOf('isoweek').format();\r\n }\r\n\r\n this.isMessageOpen = false;\r\n this.getShifts();\r\n \r\n //this.getAvailibility();\r\n\r\n // this.getShiftsByDate();\r\n\r\n // this.DeclarationService.subscribe('ScheduleListController', (type) => {\r\n // var currentShift: IShift;\r\n // switch (type) {\r\n // case 'post': {\r\n // currentShift = this.employee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n // // console.log(this.currentEmployee)\r\n // // console.log(this.DeclarationService.item)\r\n // // console.log(currentShift)\r\n // currentShift.declarations.push(this.DeclarationService.item);\r\n // this.updateShiftDeclarationsSummary(currentShift);\r\n // break;\r\n // }\r\n // case 'put': {\r\n // currentShift = this.employee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n // currentShift.declarations = currentShift.declarations.filter(s => s.id !== this.DeclarationService.item.id);\r\n // currentShift.declarations.push(this.DeclarationService.item);\r\n // this.updateShiftDeclarationsSummary(currentShift);\r\n // break;\r\n // }\r\n // case 'delete': { \r\n // currentShift = this.employee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n // // console.log(this.currentEmployee)\r\n // // console.log(this.DeclarationService.item)\r\n // // console.log(currentShift)\r\n // this.updateShiftDeclarationsSummary(currentShift);\r\n // break;\r\n // }\r\n // }\r\n // });\r\n }\r\n\r\n public $onDestroy = () => {\r\n //this.DeclarationService.unsubscribe('ScheduleListController');\r\n }\r\n\r\n // updateShiftDeclarationsSummary(currentShift) {\r\n // console.log('updateShiftDeclarationsSummary')\r\n // this.ShiftService.customGet(this.DeclarationService.item.shiftId + '/shiftDeclarations').then((result) => {\r\n // currentShift.plannedHours = result.plannedHours;\r\n // currentShift.declaredHours = result.declaredHours;\r\n // currentShift.hoursDifference = result.hoursDifference;\r\n\r\n // // this.EmployeesService.customGet(this.DeclarationService.item.employeeId + '/employeeSummary', {from: this.startDate, till: this.endDate}).then((result) => {\r\n // // this.employee.shiftHours = result.shiftHours;\r\n // // this.employee.shiftDeclarationHours = result.shiftDeclarationHours;\r\n // // });\r\n // });\r\n // }\r\n\r\n public getShifts = (scrollTo = true) => {\r\n this.ShiftService.getByCurrentEmployee(this.startDate, this.endDate).then((result) => {\r\n this.shifts = result;\r\n this.filterShifts(scrollTo);\r\n });\r\n }\r\n\r\n public getAvailibility = (scrollTo = true) => {\r\n\r\n this.EmployeesService.getAvailabilityByRange(this.startDate, this.endDate).then((result) => {\r\n this.availibility = result;\r\n this.availibility.forEach(item => {\r\n var dates = this.getDateBetween(item.start, item.end);\r\n dates.forEach(date => {\r\n //console.log(moment(date).format(\"YYYY-MM-DD\"));\r\n var n = angular.copy(item);\r\n n.start = moment(date).format(\"YYYY-MM-DD\");\r\n n.end = moment(date).format(\"YYYY-MM-DD\");\r\n this.shifts.push(n);\r\n //console.log(this.availibility);\r\n\r\n });\r\n if (dates.length > 0) {\r\n item.end = moment(item.start).format(\"YYYY-MM-DD\");\r\n this.shifts.push(item);\r\n } else {\r\n this.shifts.push(item);\r\n }\r\n\r\n });\r\n\r\n //this.shifts = //_.merge(this.shifts, this.availibility);\r\n\r\n this.filterShifts(scrollTo);\r\n });\r\n }\r\n\r\n private getDateBetween = (start, end) => {\r\n var dates = [];\r\n var startdate = moment(start).startOf('day');\r\n var lastDate = moment(end).startOf('day');\r\n\r\n while (startdate.add(1, 'days').diff(lastDate) < 0) {\r\n //console.log(startdate.toDate());\r\n dates.push(startdate.clone().toDate());\r\n }\r\n return (dates);\r\n }\r\n\r\n public filterShifts = (scrollTo = true) => {\r\n\r\n if (this.shiftsGrouping && this.shiftsGrouping == 'date') {\r\n this.groupedShifts = _.groupBy(this.shifts, (item) => {\r\n return moment(item.start).format('dd DD-MM-YYYY');\r\n });\r\n }\r\n }\r\n\r\n public handleChildChange = (type, data) => {\r\n // console.log(type);\r\n switch (type) {\r\n case 'init':\r\n this.isMessageOpen = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n prevWeek() {\r\n this.startDate = this.moment.utc(this.startDate).add(-7, 'day').format();\r\n this.endDate = this.moment.utc(this.endDate).add(-7, 'day').format();\r\n this.getShifts();\r\n }\r\n\r\n nextWeek() {\r\n this.startDate = this.moment.utc(this.startDate).add(7, 'day').format();\r\n this.endDate = this.moment.utc(this.endDate).add(7, 'day').format();\r\n this.getShifts();\r\n }\r\n\r\n // getShiftsByDate() {\r\n // this.EmployeesService.customAll('employeeSummary', { from: this.startDate, till: this.endDate }).then((result: any) => {\r\n // this.employee = result[0];\r\n // });\r\n // }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport const scheduleListComponent: ng.IComponentOptions = {\r\n bindings: {\r\n },\r\n controller: ScheduleListController,\r\n template: require('./schedule.list.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/schedule.list.component.ts","import { ShiftService, AccountsService, EmployeesService, DeclarationService } from \"../../services/index\";\r\n\r\nexport const scheduleState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"schedule\",\r\n url: \"/schedule\",\r\n component: 'scheduleComponent',\r\n redirectTo: 'schedule.calendar',\r\n data: {\r\n permissions: {\r\n only: ['EMPLOYEE']\r\n }\r\n }\r\n};\r\n\r\nexport const scheduleCalendarState: aboTheme.IState = {\r\n\r\n name: \"schedule.calendar\",\r\n url: \"/calendar\",\r\n views: {\r\n \"main\": 'scheduleCalendarComponent'\r\n },\r\n resolve: {\r\n statuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); }\r\n }\r\n};\r\n\r\nexport const scheduleListState: aboTheme.IState = {\r\n name: \"schedule.list\",\r\n url: \"/list?start\",\r\n params: {\r\n shiftId: null,\r\n start: null\r\n },\r\n views: {\r\n \"main\": 'scheduleListComponent'\r\n },\r\n resolve: {\r\n },\r\n data: {\r\n contentClasses: 'no-padding'\r\n }\r\n};\r\n\r\nexport const scheduleListItemState = {\r\n name: \"schedule.list.item\",\r\n url: \"/item/:id\",\r\n resolve: {\r\n \r\n },\r\n views: {\r\n \"shiflistitem@schedule.list\": 'scheduleItemComponent'\r\n },\r\n};\r\n\r\nexport const scheduleListItemDeclarationState = {\r\n name: \"schedule.declarations\",\r\n url: \"/declaration?openShiftId\",\r\n params: {\r\n openShiftId: null,\r\n },\r\n resolve: {\r\n \r\n },\r\n views: {\r\n \"main\": 'scheduleDeclarationComponent'\r\n },\r\n};\r\n\r\nexport const scheduleDeclarationState: aboTheme.IState = {\r\n\r\n name: \"schedule.declarations.declaration\",\r\n url: \"/declaration/:declarationId?employeeId&shiftId&type&shiftStartDate&shiftEndDate\",\r\n params: {\r\n employeeId: null,\r\n shiftId: null,\r\n type: null,\r\n shiftStartDate: null,\r\n shiftEndDate: null,\r\n },\r\n modal: [],\r\n resolve: {\r\n wageCodes: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('HourCodes'); },\r\n declaration: (DeclarationService: DeclarationService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['declarationId']) {\r\n return DeclarationService.get($stateParams['declarationId']);\r\n }\r\n },\r\n refresh: () => { return true; }\r\n },\r\n component: 'declarationComponent'\r\n};\r\n\r\nexport const scheduleAvailabilityState: aboTheme.IState = {\r\n\r\n name: \"schedule.calendar.availability\",\r\n url: \"/availability/:availabilityId\",\r\n params: {\r\n \"availabilityId\": null\r\n },\r\n modal: [],\r\n resolve: {\r\n statuses: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('AvalabilityStatus');\r\n }\r\n },\r\n component: 'availabilityItemComponent'\r\n\r\n};\r\n\r\nexport const scheduleShiftItemState = {\r\n\r\n name: \"schedule.list.item.edit\",\r\n url: \"/edit\",\r\n params: {\r\n \"status\": null\r\n },\r\n modal: true,\r\n size: \"lg\",\r\n resolve: {\r\n shift: (ShiftService: ShiftService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return ShiftService.get($stateParams['id']);\r\n }\r\n },\r\n functions : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); },\r\n accounts : (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); },\r\n employees : (EmployeesService: EmployeesService) => { \"ngInject\"; return EmployeesService.getEmployeesByStatus(); },\r\n statuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('ShiftStatus'); },\r\n refresh: () => { return true; }\r\n },\r\n component: 'shiftItemComponent'\r\n};\r\n\r\nexport const scheduleSubscriptionState: aboTheme.IState = {\r\n\r\n name: \"schedule.calendar.subscription\",\r\n url: \"/subscription/:employeeId/:subscriptionId\",\r\n params: {\r\n \"subscriptionId\": null\r\n },\r\n modal: [],\r\n resolve: {\r\n },\r\n component: 'subscriptionItemComponent'\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/schedule.states.ts","import { IEmployeeSubscription, EmployeesService } from \"../../services/index\";\r\n\r\ninterface IResolve {\r\n}\r\n\r\nclass SubscriptionItemController implements ng.IComponentController {\r\n private resolve: IResolve;\r\n private employeeId: string;\r\n private subscriptionId: string;\r\n private subscription: IEmployeeSubscription;\r\n\r\n constructor(\r\n private EmployeesService: EmployeesService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: ng.ITimeoutService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.employeeId = this.$stateParams[\"employeeId\"];\r\n this.EmployeesService.getChild(this.employeeId, 'subscriptions').then((result: any) => {\r\n var subscriptions = result;\r\n this.subscription = subscriptions.find(s => s.id == this.$stateParams[\"subscriptionId\"]);\r\n });\r\n }\r\n\r\n public submitSubscription() {\r\n if (this.subscription.id === undefined) {\r\n this.EmployeesService.postChild(this.subscription, this.employeeId, 'subscriptions').then((data) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.EmployeesService.putChild(this.subscription, this.employeeId, 'subscriptions', this.subscription.id).then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n this.EmployeesService.deleteChild(this.subscription.id, this.employeeId, 'subscriptions').then((data) => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {}, {reload: true});\r\n }\r\n}\r\n\r\nexport const subscriptionItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n resolve: '<'\r\n },\r\n controller: SubscriptionItemController,\r\n template: require('./subscription.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/schedule/subscription.component.ts","import { SettingsService } from \"../../../services/index\";\r\n\r\nclass SettingsCompanyController {\r\n private company: any;\r\n private settingsService: any;\r\n\r\n constructor(SettingsService: SettingsService) {\r\n \"ngInject\";\r\n\r\n this.settingsService = SettingsService;\r\n }\r\n\r\n submitSettings() {\r\n // console.log('submitSettings');\r\n\r\n this.settingsService.customPost('CompanySettings', this.company);\r\n }\r\n}\r\n\r\nexport const settingsCompanyComponent = {\r\n bindings: {\r\n company : \"<\"\r\n },\r\n controller : SettingsCompanyController,\r\n template : require(\"./settings.company.html\")\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/company/settings.company.component.ts","import { IPerson, PersonService } from '../../../services/person.service';\r\nclass EmployeeItemController {\r\n\r\n private employee: IPerson;\r\n\r\n constructor(private PersonService: PersonService) {\r\n \"ngInject\";\r\n }\r\n\r\n public save = () => {\r\n if (this.employee.id && this.employee.id > 0) {\r\n this.PersonService.put(this.employee.id, this.employee).then(() => {\r\n\r\n });\r\n } else {\r\n this.PersonService.post(this.employee).then(() => {\r\n\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport const employeeItemComponent = {\r\n bindings: {\r\n employee: \"<\"\r\n },\r\n controller: EmployeeItemController,\r\n template: require(\"./employee.item.html\")\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/employee/employee.item.component.ts","import { IPerson } from '../../../services/person.service';\r\nclass EmployeeListController {\r\n\r\n private employees: IPerson[];\r\n \r\n constructor() {\r\n \"ngInject\";\r\n }\r\n}\r\n\r\nexport const employeeListComponent = {\r\n bindings: {\r\n employees : \"<\"\r\n },\r\n controller : EmployeeListController,\r\n template : require(\"./employee.list.html\")\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/employee/employee.list.component.ts","import { employeeItemComponent } from './employee/employee.item.component';\r\nimport { PersonService } from '../../services/person.service';\r\nimport { StaffService } from '../../services/staff.service';\r\nimport { employeeListComponent } from './employee/employee.list.component';\r\nimport {\r\n settingsCompanyState,\r\n settingsEmployeeItemState,\r\n settingsEmployeeListState,\r\n settingsEmployeeState,\r\n settingsState,\r\n templatesState,\r\n timezonesItemState,\r\n timezonesListState,\r\n timezonesState,\r\n settingsSalaryScaleState,\r\n settingsSalaryScaleEditState,\r\n staffState,\r\n staffListState,\r\n staffItemState\r\n} from './settings.states';\r\nimport { settingsCompanyComponent } from './company/settings.company.component';\r\nimport { settingsComponent } from './settings.component';\r\nimport { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { TemplatesService, MasterdataAService } from \"../../services/index\";\r\nimport { templatesEditorComponent } from \"./templates/templatesEditor.component\";\r\nimport { TimezonesService } from \"../../services/timezone.service\";\r\nimport { timezonesComponent } from \"./timezones/timezones.component\";\r\nimport { timezonesListComponent } from \"./timezones/timezones.list.component\";\r\nimport { timezonesItemComponent } from \"./timezones/timezones.item.component\";\r\nimport { timezonesItemBasicComponent } from \"./timezones/timezones.item.basic.component\";\r\nimport { salaryScaleListComponent } from './salaryScales/salaryScale.list.component';\r\nimport { salaryScalesDialogComponent } from './salaryScales/salaryScale.dialog.component';\r\nimport { staffComponent } from './staff/staff.component';\r\nimport { staffListComponent } from './staff/staff.list.component';\r\nimport { staffItemComponent } from './staff/staff.item.component';\r\n\r\nconst settingsAppModule: aboTheme.INgModule = {\r\n components: {\r\n settingsComponent,\r\n settingsCompanyComponent,\r\n employeeListComponent,\r\n employeeItemComponent,\r\n templatesEditorComponent,\r\n timezonesComponent,\r\n timezonesListComponent,\r\n timezonesItemComponent,\r\n timezonesItemBasicComponent,\r\n salaryScaleListComponent,\r\n salaryScalesDialogComponent,\r\n staffComponent,\r\n staffListComponent,\r\n staffItemComponent\r\n },\r\n states: [\r\n settingsState,\r\n settingsCompanyState,\r\n settingsEmployeeState,\r\n settingsEmployeeListState,\r\n settingsEmployeeItemState,\r\n templatesState,\r\n timezonesState,\r\n timezonesListState,\r\n timezonesItemState,\r\n settingsSalaryScaleState,\r\n settingsSalaryScaleEditState,\r\n staffState,\r\n staffListState,\r\n staffItemState\r\n ],\r\n services: {\r\n PersonService, TemplatesService, TimezonesService, MasterdataAService, StaffService\r\n }\r\n};\r\n\r\nloadNg1Module(ngmodule, settingsAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/index.ts","import { Masterdata, MasterdataAService } from \"../../../services/index\";\r\n\r\ninterface IResolve {\r\n salaryScales: Masterdata[];\r\n}\r\n\r\nclass SalaryScalesDialogController {\r\n\r\n private resolve: IResolve;\r\n private salaryScale: Masterdata;\r\n\r\n constructor(\r\n private MasterdataAService: MasterdataAService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n let salaryScaleId = this.$stateParams['id'];\r\n if (salaryScaleId) {\r\n this.salaryScale = this.resolve.salaryScales.find(s => s.id === salaryScaleId);\r\n } else {\r\n this.salaryScale = new Masterdata();\r\n this.salaryScale.type = 'WageCodes';\r\n }\r\n }\r\n\r\n submitSalaryScale() {\r\n if (this.salaryScale.id === undefined) {\r\n this.MasterdataAService.customPost('WageCodes', this.salaryScale).then((result: any) => {\r\n this.$state.go('^', { }, {reload: true});\r\n });\r\n } else {\r\n this.MasterdataAService.put(this.salaryScale.id, this.salaryScale).then(result => {\r\n this.$state.go('^', { }, {reload: true});\r\n });\r\n }\r\n }\r\n\r\n delete() {\r\n this.MasterdataAService.delete(this.salaryScale.id).then((result: any) => {\r\n this.$state.go('^', { }, {reload: true});\r\n });\r\n }\r\n}\r\n\r\nexport const salaryScalesDialogComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: SalaryScalesDialogController,\r\n template: require('./salaryScale.dialog.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/salaryScales/salaryScale.dialog.component.ts","import { IPerson } from '../../../services/person.service';\r\nclass EmployeeListController {\r\n\r\n private salaryScales: IPerson[];\r\n \r\n constructor() {\r\n \"ngInject\";\r\n }\r\n}\r\n\r\nexport const salaryScaleListComponent = {\r\n bindings: {\r\n salaryScales : \"<\"\r\n },\r\n controller : EmployeeListController,\r\n template : require(\"./salaryScale.list.html\")\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/salaryScales/salaryScale.list.component.ts","class SettingsController {\r\n constructor() {\r\n \"ngInject\";\r\n }\r\n}\r\n\r\nexport const settingsComponent = {\r\n controller : SettingsController,\r\n template : '
    '\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/settings.component.ts","import { PersonService } from '../../services/person.service';\r\nimport { SettingsService, TemplatesService } from \"../../services/index\";\r\nimport { TimezonesService } from \"../../services/timezone.service\";\r\nimport { StaffService } from \"../../services/staff.service\";\r\nexport const settingsState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"settings\",\r\n url: \"/settings\",\r\n component: 'settingsComponent',\r\n redirectTo: 'settings.company',\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const settingsCompanyState: aboTheme.IState = {\r\n\r\n name: \"settings.company\",\r\n url: \"/company\",\r\n resolve: {\r\n company: (SettingsService: SettingsService) => { 'ngInject'; return SettingsService.customGet('CompanySettings'); }\r\n },\r\n views : {\r\n \"main\" : \"settingsCompanyComponent\"\r\n }\r\n\r\n};\r\n\r\nexport const settingsEmployeeState: aboTheme.IState = {\r\n\r\n name: \"settings.employees\",\r\n url: \"/employee\",\r\n redirectTo: 'settings.employees.list'\r\n\r\n};\r\n\r\nexport const settingsEmployeeListState: aboTheme.IState = {\r\n\r\n name: \"settings.employees.list\",\r\n url: \"/list\",\r\n resolve : {\r\n \"employees\" : (PersonService: PersonService) => { \"ngInject\"; return PersonService.all(); }\r\n },\r\n views : {\r\n \"main@settings\" : \"employeeListComponent\"\r\n }\r\n\r\n};\r\n\r\nexport const settingsEmployeeItemState: aboTheme.IState = {\r\n\r\n name: \"settings.employees.item\",\r\n url: \"/:id\",\r\n resolve : {\r\n \"employee\" : (PersonService: PersonService, $stateParams: ng.ui.IStateParamsService) => { \r\n \"ngInject\"; \r\n return PersonService.get($stateParams['id']); }\r\n },\r\n views : {\r\n \"main@settings\" : \"employeeItemComponent\"\r\n }\r\n\r\n};\r\n\r\nexport const settingsSalaryScaleState: aboTheme.IState = {\r\n\r\n name: \"settings.salaryscales\",\r\n url: \"/salaryscales\",\r\n resolve : {\r\n \"salaryScales\" : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('WageCodes'); }\r\n },\r\n views : {\r\n \"main@settings\" : \"salaryScaleListComponent\"\r\n }\r\n};\r\n\r\nexport const settingsSalaryScaleEditState: aboTheme.IState = {\r\n\r\n name: \"settings.salaryscales.edit\",\r\n url: \"/:id\",\r\n modal: ['salaryScales'],\r\n resolve: {\r\n },\r\n component: 'salaryScalesDialogComponent'\r\n\r\n};\r\n\r\nexport const templatesState: aboTheme.IState = {\r\n\r\n name: \"settings.templates\",\r\n url: \"/templates\",\r\n resolve: {\r\n templatesNames: (TemplatesService: TemplatesService) => { 'ngInject'; return TemplatesService.all(); }\r\n },\r\n views: {\r\n \"main\": \"templatesEditorComponent\"\r\n }\r\n\r\n};\r\n\r\nexport const timezonesState: aboTheme.IState = {\r\n\r\n name: \"settings.timezones\",\r\n url: \"/timezones\",\r\n redirectTo: 'settings.timezones.list',\r\n views: {\r\n \"main\": \"timezonesComponent\"\r\n }\r\n\r\n};\r\n\r\nexport const timezonesListState: aboTheme.IState = {\r\n\r\n name: \"settings.timezones.list\",\r\n url: \"/list\",\r\n resolve: { \r\n timezones: (TimezonesService: TimezonesService) => { 'ngInject'; return TimezonesService.all(); }\r\n },\r\n views: {\r\n \"main\" : 'timezonesListComponent'\r\n }\r\n};\r\n\r\nexport const timezonesItemState: aboTheme.IState = {\r\n\r\n name: \"settings.timezones.list.item\",\r\n url: \"/:id\",\r\n resolve: {\r\n timezone: (TimezonesService: TimezonesService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') {\r\n // console.log($stateParams['id']);\r\n return TimezonesService.get($stateParams['id']);\r\n } },\r\n hourCodes: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('HourCodesAll');\r\n }\r\n },\r\n modal: ['timezone', 'hourCodes'],\r\n component: 'timezonesItemBasicComponent'\r\n};\r\n\r\n// export const timezonesItemBasicState: aboTheme.IState = {\r\n\r\n// name: \"settings.timezones.list.basic\",\r\n// url: \"/:id\",\r\n// modal: ['timezone', 'hourCodes'],\r\n// resolve: {\r\n// },\r\n// component: 'timezonesItemBasicComponent'\r\n\r\n// };\r\n\r\nexport const staffState: aboTheme.IState = {\r\n\r\n name: \"settings.staff\",\r\n url: \"/staff\",\r\n redirectTo: 'settings.staff.list',\r\n views: {\r\n \"main\": \"staffComponent\"\r\n },\r\n data: {\r\n permissions: {\r\n only: ['SUPERUSER'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const staffListState: aboTheme.IState = {\r\n\r\n name: \"settings.staff.list\",\r\n url: \"/list\",\r\n resolve: { \r\n staff: (StaffService: StaffService) => { 'ngInject'; return StaffService.all(); }\r\n }, \r\n views: {\r\n \"main\": \"staffListComponent\"\r\n }\r\n\r\n};\r\n\r\nexport const staffItemState: aboTheme.IState = {\r\n\r\n name: \"settings.staff.list.item\",\r\n url: \"/:id\",\r\n // modal: [],\r\n resolve: {\r\n staff: (StaffService: StaffService, $stateParams:ng.ui.IStateParamsService) => { 'ngInject'; if ($stateParams['id'] != '') {\r\n // console.log($stateParams['id']);\r\n return StaffService.get($stateParams['id']);\r\n } },\r\n },\r\n modal: [],\r\n component: 'staffItemComponent'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/settings.states.ts","class StaffController implements ng.IComponentController {\r\n \r\n constructor() {\r\n 'ngInject';\r\n }\r\n}\r\n\r\nexport const staffComponent = {\r\n controller: StaffController,\r\n template: require('./staff.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/staff/staff.component.ts","import { IStaff, StaffService } from \"../../../services/staff.service\";\r\n\r\ninterface IResolve {\r\n staff: IStaff;\r\n}\r\n\r\nclass StaffItemController {\r\n\r\n private resolve: IResolve;\r\n private staff: IStaff;\r\n user: any;\r\n roles: any;\r\n \r\n rolesList = ['backoffice', 'superuser', 'finance', 'timesheets'];\r\n password: any = '';\r\n confirmPassword: any = '';\r\n\r\n constructor(\r\n private StaffService: StaffService,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any,\r\n private $scope: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => { \r\n this.staff = this.resolve.staff;\r\n\r\n if(this.staff.id) {\r\n this.getUser();\r\n \r\n }\r\n \r\n }\r\n\r\n public getUser = () => {\r\n this.StaffService.getUser(this.staff.id).then(user => {\r\n this.user = user;\r\n\r\n if(this.user.id) {\r\n this.getRoles();\r\n }\r\n })\r\n }\r\n\r\n public getRoles = () => {\r\n this.StaffService.getRoles(this.staff.id).then(roles => {\r\n this.roles = roles;\r\n })\r\n }\r\n\r\n public save = () => {\r\n if(this.$scope.staffBasicInfoForm.$valid) {\r\n\r\n \r\n if(this.staff.id) {\r\n this.StaffService.put(this.staff.id, this.staff).then(staff => {\r\n this.staff = staff;\r\n this.StaffService.putRoles(this.staff.id, this.roles).then(roles => { \r\n this.roles = roles;\r\n })\r\n\r\n if(this.password.length > 0) {\r\n this.StaffService.putPassword(this.staff.id, this.password).then(roles => { \r\n this.password = '';\r\n this.confirmPassword = '';\r\n })\r\n }\r\n })\r\n } else {\r\n this.StaffService.post(this.staff).then(staff => {\r\n this.staff = staff;\r\n this.$state.go('settings.staff.list.item', {id: this.staff.id}, {reload: true});\r\n });\r\n }\r\n }\r\n }\r\n\r\n public createuser = () => {\r\n var user = {\r\n userName : this.staff.email,\r\n email : this.staff.email,\r\n phoneNumber : this.staff.phoneNumber,\r\n password: this.password,\r\n twoFactorEnabled : false\r\n }\r\n if(!this.user && this.staff.id) {\r\n this.StaffService.createUser(this.staff.id, user).then(user => {\r\n this.password = '';\r\n this.confirmPassword = '';\r\n this.user = user;\r\n })\r\n }\r\n }\r\n\r\n public deleteUser = () => {\r\n if(this.staff.id && this.user) {\r\n this.StaffService.deleteUser(this.staff.id).then(user => {\r\n \r\n })\r\n }\r\n }\r\n\r\n public delete = () => {\r\n if(this.staff.id) {\r\n if(this.user) {\r\n this.StaffService.deleteUser(this.staff.id).then(user => {\r\n this.StaffService.delete(this.staff.id).then(user => {\r\n this.$state.go('^', {}, {reload: true});\r\n });\r\n })\r\n } else {\r\n this.StaffService.delete(this.staff.id).then(user => {\r\n this.$state.go('^', {}, {reload: true});\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const staffItemComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: StaffItemController,\r\n template: require('./staff.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/staff/staff.item.component.ts","import { IPerson } from '../../../services/person.service';\r\nimport { IStaff } from '../../../services/staff.service';\r\nclass StaffListController {\r\n\r\n private staff: IStaff[];\r\n \r\n constructor() {\r\n \"ngInject\";\r\n }\r\n}\r\n\r\nexport const staffListComponent: ng.IComponentOptions = {\r\n bindings: {\r\n staff : \"<\"\r\n },\r\n controller : StaffListController,\r\n template : require(\"./staff.list.html\")\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/staff/staff.list.component.ts","import { TemplatesService } from '../../../services';\r\n// import * as monaco from \"monaco-editor/min/vs/editor/editor.main.js\";\r\n\r\n\r\nclass TemplatesEditorController {\r\n editorContent: any;\r\n currentTemplateName: string;\r\n private sweetAlert: any;\r\n\r\n constructor(private TemplatesService: TemplatesService,\r\n private SweetAlert: any) {\r\n \"ngInject\";\r\n this.sweetAlert = SweetAlert;\r\n }\r\n\r\n $onInit = () => {\r\n // monaco.editor.create(document.getElementById(\"container\"), {\r\n // value: \"function hello() {\\n\\talert('Hello world!');\\n}\",\r\n // language: \"javascript\"\r\n // });\r\n\r\n // console.log('TemplatesEditorController init');\r\n \r\n var onGotAmdLoader = () => {\r\n // Load monaco\r\n (window).require.config({ paths: { 'vs': '/vs' }});\r\n (window).require(['vs/editor/editor.main'], () => {\r\n this.initMonaco();\r\n \r\n });\r\n };\r\n\r\n // Load AMD loader if necessary\r\n if (!(window).require) {\r\n var loaderScript = document.createElement('script');\r\n loaderScript.type = 'text/javascript';\r\n loaderScript.src = '/vs/loader.js';\r\n loaderScript.addEventListener('load', onGotAmdLoader);\r\n document.body.appendChild(loaderScript);\r\n } else {\r\n onGotAmdLoader();\r\n }\r\n }\r\n\r\n // Will be called once monaco library is available\r\n initMonaco() {\r\n (window).editor = (window).monaco.editor.create(document.getElementById(\"container\"), {\r\n value: '',\r\n language: 'razor'\r\n });\r\n \r\n \r\n }\r\n\r\n getTemplate() {\r\n this.TemplatesService.customGet('template/' + this.currentTemplateName).then((result) => {\r\n (window).editor.setValue(result);\r\n });\r\n }\r\n\r\n saveTemplate() {\r\n var value = (window).editor.getValue();\r\n // console.log(value);\r\n\r\n this.TemplatesService.customPut('template/' + this.currentTemplateName, '\"' + value.replace(/[\\\\\"']/g, '\\\\$&') + '\"').then(()=> {\r\n this.sweetAlert.swal('Updated!', 'Template has been succesfully updated!', 'success');\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const templatesEditorComponent = {\r\n bindings: {\r\n templatesNames: \"<\"\r\n },\r\n controller: TemplatesEditorController,\r\n template: require(\"./templatesEditor.html\")\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/templates/templatesEditor.component.ts","class TimezonesController implements ng.IComponentController {\r\n \r\n constructor() {\r\n 'ngInject';\r\n }\r\n}\r\n\r\nexport const timezonesComponent: ng.IComponentOptions = {\r\n controller: TimezonesController,\r\n template: require('./timezones.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/timezones/timezones.component.ts","import { TimezonesService, ITimezone } from \"../../../services/timezone.service\";\r\nimport * as moment from \"moment\";\r\nimport { Masterdata } from \"../../../services/index\";\r\n\r\ninterface IResolve {\r\n timezone: ITimezone;\r\n hourCodes: Masterdata[];\r\n}\r\n\r\nclass TimezonesItemBasicController {\r\n\r\n private resolve: IResolve;\r\n private timezone: ITimezone;\r\n hourCodes: Masterdata[];\r\n private close: any;\r\n\r\n private type: string;\r\n private types = [\r\n 'Dagelijks', 'Dag van de week', 'Vaste dag elk jaar', 'Eenmalig'\r\n ]\r\n\r\n private months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];\r\n private weekDays = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'];\r\n\r\n private from: {month?: string, day?: number, time?: any, weekDay?: string, year?: string} = {};\r\n private till: {month?: string, day?: number, time?: any, weekDay?: string, year?: string} = {};\r\n\r\n constructor(\r\n private TimezonesService: TimezonesService,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => { \r\n this.hourCodes = this.resolve.hourCodes;\r\n if (this.resolve.timezone) {\r\n this.timezone = this.resolve.timezone;\r\n } else {\r\n this.timezone = new ITimezone();\r\n this.timezone = {\r\n from: null,\r\n till: null,\r\n percentage: 0,\r\n amount: 0,\r\n priority: 0,\r\n dayOfWeek: 0,\r\n fixedDate: false,\r\n fixedDateWithoutYear: false,\r\n }\r\n }\r\n\r\n if(this.timezone.dayOfWeek != null) {\r\n this.type = this.types[1]\r\n } \r\n else if (this.timezone.fixedDateWithoutYear) {\r\n this.type = this.types[2]\r\n }\r\n else if (this.timezone.fixedDate) {\r\n this.type = this.types[3]\r\n }\r\n else {\r\n this.type = this.types[0]\r\n }\r\n\r\n this.from.weekDay = this.weekDays[this.timezone.dayOfWeek];\r\n this.from.day = parseInt(moment(this.timezone.from).format(\"DD\"));\r\n this.from.month = this.months[parseInt(moment(this.timezone.from).format(\"MM\")) - 1];\r\n this.from.year = moment(this.timezone.from).format(\"YYYY\");\r\n this.from.time = moment(this.timezone.from).format(\"HH:mm\");\r\n\r\n this.till.weekDay = this.weekDays[this.timezone.dayOfWeek];\r\n this.till.day = parseInt(moment(this.timezone.till).format(\"DD\"));\r\n this.till.month = this.months[parseInt(moment(this.timezone.till).format(\"MM\")) - 1];\r\n this.till.year = moment(this.timezone.till).format(\"YYYY\");\r\n this.till.time = moment(this.timezone.till).format(\"HH:mm\");\r\n }\r\n\r\n submitTimezone() {\r\n // this.timezone.from = moment(this.timezone.from).format(\"YYYY-MM-DD HH:mm\");\r\n // this.timezone.till = moment(this.timezone.till).format(\"YYYY-MM-DD HH:mm\");\r\n\r\n var fromDay = this.from.day < 10 ? '0' + this.from.day : this.from.day;\r\n var fromMonth = this.months.indexOf(this.from.month) + 1 < 10 ? '0' + (this.months.indexOf(this.from.month) + 1) : this.months.indexOf(this.from.month) + 1;\r\n\r\n var tillDay = this.till.day < 10 ? '0' + this.till.day : this.till.day;\r\n var tillMonth = this.months.indexOf(this.till.month) + 1 < 10 ? '0' + (this.months.indexOf(this.till.month) + 1) : this.months.indexOf(this.till.month) + 1;\r\n\r\n\r\n var fts = this.from.time.split(':')\r\n var fromtimehour = fts[0] < 10 && fts[0].length < 2 ? '0' + fts[0] : fts[0];\r\n var fromtime = fromtimehour + ':' + fts[1] + ':00'\r\n\r\n var tts = this.till.time.split(':')\r\n var tilltimehour = tts[0] < 10 && tts[0].length < 2 ? '0' + tts[0] : tts[0];\r\n var tilltime = tilltimehour + ':' + tts[1] + ':00'\r\n\r\n if(this.type == this.types[0]) {\r\n this.timezone.from = '1900-01-01T' + fromtime\r\n this.timezone.till = '1900-01-01T' + tilltime\r\n this.timezone.dayOfWeek = null;\r\n this.timezone.fixedDate = false;\r\n this.timezone.fixedDateWithoutYear = false;\r\n }\r\n\r\n if(this.type == this.types[1]) {\r\n this.timezone.from = '1900-01-01T' + fromtime\r\n this.timezone.till = '1900-01-01T' + tilltime\r\n this.timezone.dayOfWeek = this.weekDays.indexOf(this.from.weekDay);\r\n this.timezone.fixedDate = false;\r\n this.timezone.fixedDateWithoutYear = false;\r\n }\r\n\r\n if(this.type == this.types[2]) {\r\n this.timezone.from = '1900-'+ fromMonth +'-'+ fromDay +'T' + fromtime\r\n this.timezone.till = '1900-'+ tillMonth +'-'+ tillDay +'T' + tilltime\r\n this.timezone.dayOfWeek = null;\r\n this.timezone.fixedDate = true;\r\n this.timezone.fixedDateWithoutYear = true;\r\n }\r\n\r\n if(this.type == this.types[3]) {\r\n this.timezone.from = this.from.year +'-'+ fromMonth +'-'+ fromDay +'T' + fromtime\r\n this.timezone.till = this.from.year +'-'+ tillMonth +'-'+ tillDay +'T' + tilltime\r\n this.timezone.dayOfWeek = null;\r\n this.timezone.fixedDate = true;\r\n this.timezone.fixedDateWithoutYear = false;\r\n }\r\n\r\n\r\n if (this.timezone.id === undefined) {\r\n this.TimezonesService.post(this.timezone).then((result: any) => {\r\n this.$state.go('settings.timezones.item', { 'id': result.id });\r\n });\r\n } else {\r\n this.TimezonesService.put(this.timezone.id, this.timezone).then(result => {\r\n this.$state.go('settings.timezones.item', { 'id': result.id }, {reload: true});\r\n });\r\n }\r\n }\r\n\r\n deleteTimezone() {\r\n this.SweetAlert.swal({\r\n title: 'Are you sure?',\r\n text: \"You won't be able to revert this!\",\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Yes, delete it!',\r\n cancelButtonText: 'No, cancel!',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.TimezonesService.delete(this.timezone.id).then(() => {\r\n this.$state.go('^', {reload: true});\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n // console.log('startDateBeforeRender');\r\n const todaySinceMidnight = new Date();\r\n todaySinceMidnight.setUTCHours(0,0,0,0);\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.timezone.from) {\r\n var activeDate = moment(this.timezone.from).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport const timezonesItemBasicComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: TimezonesItemBasicController,\r\n template: require('./timezones.item.basic.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/timezones/timezones.item.basic.component.ts","import { TimezonesService, ITimezone } from \"../../../services/timezone.service\";\r\n\r\nclass TimezonesItemController implements ng.IComponentController {\r\n private timezone: ITimezone;\r\n\r\n constructor(private TimezonesService: TimezonesService,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any) {\r\n 'ngInject';\r\n }\r\n\r\n deleteTimezone() {\r\n this.SweetAlert.swal({\r\n title: 'Are you sure?',\r\n text: \"You won't be able to revert this!\",\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#DD6B55',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Yes, delete it!',\r\n cancelButtonText: 'No, cancel!',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.TimezonesService.delete(this.timezone.id).then(() => {\r\n this.$state.go('^', {reload: true});\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const timezonesItemComponent: ng.IComponentOptions = {\r\n controller: TimezonesItemController,\r\n bindings: { \r\n timezone: '<',\r\n hourCodes: '<'\r\n },\r\n template: require('./timezones.item.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/timezones/timezones.item.component.ts","class TimezonesListController implements ng.IComponentController {\r\n sortType: string;\r\n\r\n private weekDays = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'];\r\n\r\n constructor() {\r\n 'ngInject';\r\n\r\n this.sortType = 'from';\r\n }\r\n}\r\n\r\nexport const timezonesListComponent: ng.IComponentOptions = {\r\n controller: TimezonesListController,\r\n bindings: {\r\n timezones:'<'\r\n },\r\n template: require('./timezones.list.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/settings/timezones/timezones.list.component.ts","import * as moment from 'moment';\r\nimport * as angular from 'angular';\r\nclass DateTimePickerController implements ng.IComponentController {\r\n previousDate: any;\r\n addClass: any;\r\n classes: any;\r\n private minDate: any;\r\n private maxDate: any;\r\n private onChange: any;\r\n private timeformat: string;\r\n private dateformat: string;\r\n private date: any;\r\n private time: boolean = true;\r\n constructor(\r\n private $element: ng.IRootElementService,\r\n private $attrs: ng.IAttributes,\r\n private $timeout: ng.ITimeoutService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n\r\n if (!this.$attrs.time) {\r\n this.time = true;\r\n }\r\n\r\n this.previousDate = angular.copy(this.date);\r\n\r\n ($(this.$element).find('.datepicker').datepicker)({\r\n format: 'dd-mm-yyyy',\r\n language: 'nl',\r\n autoclose: true,\r\n });\r\n\r\n this.$timeout(() => {\r\n\r\n $(this.$element).find('.open-datetimepicker').click((event) => {\r\n event.preventDefault();\r\n $(this.$element).find('.datepicker').datepicker('show');\r\n });\r\n\r\n $(this.$element).find('.timepickerinput').timepicker({\r\n showMeridian: false,\r\n minuteStep: 5\r\n }).on('hide.timepicker', (e) => {\r\n this.$timeout(() => {\r\n this.setTime()\r\n });\r\n });\r\n\r\n this.dateformat = moment(this.date).format('DD-MM-YYYY');\r\n this.timeformat = moment(this.date).format('HH:mm');\r\n $(this.$element).find('.datepicker').datepicker('setDate', this.dateformat);\r\n $(this.$element).find('.timepickerinput').timepicker('setTime', this.timeformat);\r\n this.checkMinDate();\r\n });\r\n\r\n this.classes = this.addClass;\r\n }\r\n\r\n public $doCheck = () => {\r\n\r\n if (!angular.equals(this.date, this.previousDate)) {\r\n // console.log('previousDate', this.previousDate)\r\n this.dateformat = moment(this.date).format('DD-MM-YYYY');\r\n this.timeformat = moment(this.date).format('HH:mm');\r\n $(this.$element).find('.timepickerinput').timepicker('setTime', this.timeformat);\r\n if(this.previousDate){\r\n $(this.$element).find('.datepicker').datepicker('setDate', this.dateformat);\r\n }\r\n this.previousDate = angular.copy(this.date);\r\n this.$timeout(() => {\r\n this.checkMinDate();\r\n });\r\n }\r\n\r\n }\r\n\r\n public $onChanges = (changes) => {\r\n \r\n if(changes.minDate && changes.minDate.previousValue.constructor.name != 'UNINITIALIZED_VALUE') {\r\n\r\n this.$timeout(() => {\r\n this.checkMinDate();\r\n });\r\n }\r\n }\r\n\r\n private checkMinDate = () => {\r\n if (this.minDate && this.date) {\r\n //console.log(moment(this.date).format('DD-MM-YYYY'));\r\n //console.log(this.minDate);\r\n // if (moment(this.minDate).isAfter(this.date)) {\r\n // this.date = moment(this.minDate).add(1, 'hour');\r\n // this.dateformat = moment(this.date).format('DD-MM-YYYY');\r\n // this.timeformat = moment(this.date).format('HH:mm');\r\n // $(this.$element).find('.datepicker').datepicker('setDate', this.dateformat);\r\n // }\r\n $(this.$element).find('.datepicker').datepicker('setStartDate', moment(this.minDate).format('DD-MM-YYYY'));\r\n }\r\n }\r\n\r\n private setDate = () => {\r\n if (this.dateformat && this.timeformat) {\r\n if (this.time) {\r\n this.date = moment(this.dateformat + ' ' + this.timeformat, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DDTHH:mm:ss');\r\n } else {\r\n this.date = moment(this.dateformat, 'DD-MM-YYYY').format('YYYY-MM-DD');\r\n }\r\n this.$timeout(() => { this.onChange(); });\r\n }\r\n }\r\n\r\n private setTime = () => {\r\n if (this.dateformat && this.timeformat) {\r\n this.date = moment(this.dateformat + ' ' + this.timeformat, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DDTHH:mm:ss');\r\n this.$timeout(() => { this.onChange(); });\r\n }\r\n }\r\n}\r\n\r\nexport const dateTimePickerComponent: ng.IComponentOptions = {\r\n bindings: {\r\n date: '=',\r\n time: '<',\r\n maxDate: '<',\r\n minDate: '<',\r\n onChange: '&',\r\n addClass: '<',\r\n disabled: '<'\r\n },\r\n controller: DateTimePickerController,\r\n template: require('./dateTimePicker.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shared/dateTimePicker.component.ts","class ListController {\r\n public onUpdate: any;\r\n public list: any;\r\n public currentPage: number;\r\n public itemsPerPage: number;\r\n public maxSize: number;\r\n public hideDelete: boolean;\r\n\r\n private fields: any;\r\n private setFields: any;\r\n\r\n constructor(private SweetAlert: any) {\r\n 'ngInject';\r\n }\r\n\r\n $onInit = () => {\r\n this.currentPage = 1;\r\n this.itemsPerPage = 25;\r\n this.maxSize = 3;\r\n\r\n var setFields = { description: null }\r\n if (this.fields) {\r\n this.fields = JSON.parse(this.fields.replace(/\\'/g, '\"'));\r\n } else {\r\n this.fields = {}\r\n }\r\n\r\n this.setFields = {\r\n description: this.fields.description ? this.fields.description : 'description',\r\n tags: this.fields.tags ? this.fields.tags : 'tags',\r\n date: this.fields.date ? this.fields.date : 'date',\r\n endDate: this.fields.endDate ? this.fields.endDate : 'endDate' \r\n };\r\n }\r\n\r\n public delete(event, item) {\r\n event.stopPropagation();\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u '+ item[this.setFields.description] +' wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.onUpdate({ item: item, action: 'delete' });\r\n } else {\r\n\r\n }\r\n }); \r\n \r\n }\r\n\r\n public edit(item) {\r\n this.onUpdate({ item: item, action: 'edit' });\r\n }\r\n}\r\n\r\nexport const listComponent = {\r\n bindings: {\r\n list: '<',\r\n onUpdate: '&',\r\n fields: '@',\r\n hideDelete: '<'\r\n },\r\n controller: ListController,\r\n template: require('./list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shared/list.component.ts","import { AuthService } from '../../authorization/services';\r\nimport env from '../../config';\r\n\r\nclass UploaderController {\r\n\r\n private onCompleteAll: any;\r\n private onCompleteItem: any;\r\n private onUpload: any;\r\n\r\n private url: any;\r\n\r\n private uploadOptions: any;\r\n private uploader: any;\r\n\r\n constructor(\r\n private AuthService: AuthService,\r\n private FileUploader: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.uploadOptions = {\r\n url: env.API_URL + this.url,\r\n removeAfterUpload: true,\r\n headers: {\r\n 'Authorization': 'Bearer ' + this.AuthService.GetAuthorizationData()\r\n },\r\n \r\n }\r\n\r\n this.uploader = new this.FileUploader();\r\n this.uploader.onCompleteItem = (item, response, status, headers) => {\r\n this.onCompleteItem({item: item, response: response, status: status, headers: headers});\r\n }\r\n this.uploader.onCompleteAll = () => {\r\n this.onCompleteAll();\r\n this.onUpload();\r\n }\r\n }\r\n}\r\n\r\nexport const uploaderComponent = {\r\n bindings: {\r\n url : \"<\",\r\n single: \"<\",\r\n onUpload: \"&\",\r\n onCompleteItem: \"&\",\r\n onCompleteAll: \"&\"\r\n \r\n },\r\n controller: UploaderController,\r\n template: require('./uploader.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shared/uploader.component.ts","import { ContactsService, IContact } from '../../../services/contacts.service';\r\nimport { EmployeesService, IEmployee } from '../../../services';\r\nimport { AuthUserService, IAuthUser } from '../../../authsettings/services/authusers.service';\r\nimport * as _ from \"lodash\";\r\n\r\nclass UserAccountController implements ng.IComponentController {\r\n\r\n public userAccount: IAuthUser;\r\n public employee?: IEmployee;\r\n public contact?: IContact;\r\n\r\n public password: string;\r\n public newUser: boolean;\r\n\r\n constructor(\r\n private AuthUserService: AuthUserService,\r\n private EmployeesService: EmployeesService,\r\n private ContactsService: ContactsService,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n private checkUserType = (): string => {\r\n if (this.contact) return 'contact';\r\n if (this.employee) return 'employee';\r\n else return undefined;\r\n }\r\n\r\n public $onInit = () => {\r\n this.newUser = true;\r\n const userType = this.checkUserType();\r\n if (this[userType].userId) {\r\n this.AuthUserService.get(this[userType].userId).then(res => {\r\n this.userAccount = res;\r\n this.newUser = false;\r\n })\r\n }\r\n }\r\n\r\n private prepareEmployeeForUser = (employee: IEmployee): IAuthUser => {\r\n const user: IAuthUser = {\r\n displayName: employee.displayName,\r\n roles: ['EMPLOYEE'],\r\n email: employee.emailPrivate,\r\n userName: employee.emailPrivate,\r\n password: this.password,\r\n claims: { 'employeeId': employee.id },\r\n }\r\n return user;\r\n }\r\n\r\n private prepareContactForUser = (contact: IContact): IAuthUser => {\r\n const user: IAuthUser = {\r\n displayName: contact.name,\r\n roles: ['CUSTOMER'],\r\n email: contact.emailAddress,\r\n userName: contact.emailAddress,\r\n password: this.password,\r\n claims: { 'contactId': contact.id, 'customerId': contact.accountId },\r\n }\r\n return user\r\n }\r\n\r\n public createUser = (): void => {\r\n let user = new IAuthUser();\r\n if (this.employee) {\r\n let user = this.prepareEmployeeForUser(this.employee);\r\n this.AuthUserService.post(user).then(result => {\r\n this.employee.userId = result.id;\r\n this.employee.userName = this.employee.emailPrivate;\r\n this.EmployeesService.put(this.employee.id, this.employee).then(\r\n result => {\r\n this.employee = result;\r\n this.$onInit();\r\n });\r\n\r\n }).catch((error) => {\r\n this.AuthUserService.all().then((users) => {\r\n var existUser = _.find(users, {userName: user.userName});\r\n this.SweetAlert.swal({\r\n title: \"User already exist!\",\r\n text: \"User with \"+ existUser.userName +\" do you want to connect this user to this contactperson?\",\r\n type: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#DD6B55\",\r\n confirmButtonText: \"Yes, connect it!\",\r\n closeOnConfirm: false\r\n }, (isConfirm) => {\r\n this.employee.userId = existUser.id;\r\n this.employee.userName = existUser.userName;\r\n this.EmployeesService.put(this.employee.id, this.employee).then(employee => {\r\n this.employee = employee;\r\n this.$onInit();\r\n });\r\n });\r\n });\r\n })\r\n }\r\n if (this.contact) {\r\n let user = this.prepareContactForUser(this.contact);\r\n this.AuthUserService.post(user).then(result => {\r\n this.contact.userId = result.id;\r\n this.ContactsService.put(this.contact.id, this.contact).then(\r\n result => {\r\n this.contact = result;\r\n this.$onInit();\r\n });\r\n })\r\n }\r\n }\r\n\r\n public deleteUser = (): void => {\r\n if (this.employee) {\r\n this.AuthUserService.delete(this.employee.userId).then(result => {\r\n this.employee.userId = undefined;\r\n this.EmployeesService.put(this.employee.id, this.employee).then(employee => {\r\n this.employee = employee;\r\n this.$onInit();\r\n })\r\n })\r\n } if (this.contact) {\r\n this.AuthUserService.delete(this.contact.userId).then(result => {\r\n this.contact.userId = undefined;\r\n this.ContactsService.put(this.contact.id, this.contact).then(contact => {\r\n this.contact = contact;\r\n this.$onInit();\r\n })\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const userAccountComponent = {\r\n bindings: {\r\n contact: \"<\",\r\n employee: \"<\"\r\n },\r\n controller: UserAccountController,\r\n template: require('./user-account.html')\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shared/user-account/user-account.component.ts","import { IAccount, IShift, ShiftService, EmployeesService, AccountsService, LocationService, Masterdata, ITeam } from \"../../services/index\";\r\nimport * as moment from \"moment\";\r\n\r\nclass CheckAvailabilityModalController implements ng.IComponentController {\r\n private shifts: IShift[];\r\n private shift: IShift;\r\n private accounts: IAccount[];\r\n private functions: Masterdata[];\r\n private locations: any;\r\n private teams: ITeam[];\r\n private employees: any;\r\n private accountNotes: any;\r\n private selectedEmployee: any;\r\n private activeEmployee: any;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private AccountsService: AccountsService,\r\n private MasterdataService: aboMasterdata.IService,\r\n private LocationService: LocationService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: ng.ITimeoutService,\r\n private $window : ng.IWindowService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n $onInit = () => {\r\n this.MasterdataService.getItems('Functions').then((result) => {\r\n this.functions = result;\r\n });\r\n\r\n this.AccountsService.all().then((result) => {\r\n this.accounts = result;\r\n }); \r\n\r\n this.selectedEmployee = {};\r\n this.activeEmployee = {}; \r\n \r\n this.setModalHeight();\r\n \r\n this.$window.onresize = (event) => {\r\n this.setModalHeight();\r\n }\r\n }\r\n\r\n private setModalHeight = () => {\r\n var docHeight = $(window).height();\r\n var height = docHeight - 200;\r\n $(\"#checkAvailabilityModalBody\").height(height);\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.shift.start) {\r\n var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n startDateChanged() {\r\n this.shift.end = moment(this.shift.start).add(8, 'hour').toDate();\r\n if (this.shift.teamLocationId) {\r\n this.dataFilledIn();\r\n }\r\n }\r\n\r\n endDateChanged() {\r\n if (this.shift.teamLocationId) {\r\n this.dataFilledIn();\r\n }\r\n }\r\n\r\n dataFilledIn() {\r\n if (this.shift.start && this.shift.end) {\r\n var request = {\r\n accountId: this.shift.teamLocationAccountId,\r\n locationId: this.shift.teamLocationId,\r\n startDate: this.shift.start,\r\n endDate: this.shift.end,\r\n shiftId: this.shift.id\r\n };\r\n\r\n this.EmployeesService.customPost('availableEmployees', request, false).then((result) => {\r\n this.employees = result;\r\n });\r\n }\r\n }\r\n\r\n selectedAccount() {\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then((result) => {\r\n this.locations = result;\r\n });\r\n\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'notes/?tag=planning').then((result) => {\r\n this.accountNotes = result;\r\n });\r\n }\r\n\r\n locationSelected() {\r\n this.teams = this.locations.find(item => item.id === this.shift.teamLocationId).teams;\r\n this.dataFilledIn();\r\n }\r\n\r\n submitShift(after = null) {\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.shift.employeeId) {\r\n this.shift.status = 5;\r\n } else {\r\n this.shift.status = 3;\r\n }\r\n \r\n if (!this.shift.id) {\r\n this.ShiftService.post(this.shift).then((data) => {\r\n this.shift = data;\r\n\r\n this.shifts.push(this.shift);\r\n this.closeModal();\r\n });\r\n } else {\r\n this.ShiftService.put(this.shift.id, this.shift).then((data) => {\r\n this.shift = data;\r\n\r\n this.shifts = this.shifts.filter(s => s.id !== this.shift.id);\r\n this.shifts.push(this.shift);\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.selectedEmployee = {};\r\n this.activeEmployee = {};\r\n this.employees = null;\r\n this.shift = new IShift();\r\n ($('#check-availability-modal')).modal('hide');\r\n }\r\n}\r\n\r\nexport const checkAvailabilityModalComponent: ng.IComponentOptions = {\r\n controller: CheckAvailabilityModalController,\r\n bindings: {\r\n shifts: '=',\r\n shift: '=',\r\n locations: '=',\r\n teams: '=',\r\n accountNotes: '=',\r\n employees: '=',\r\n selectedEmployee: '='\r\n },\r\n template: require('./checkAvailabilityModal.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/checkAvailabilityModal.component.ts","import { Masterdata, IShift, EmployeesService } from \"../../services/index\";\r\nimport { IEmployeeAvailability } from \"../../services/employeeAvailability.service\";\r\n\r\nclass EmployeePickerController implements ng.IComponentController {\r\n onSelectEmployee: any;\r\n private shift: IShift;\r\n private employees: any;\r\n private allEmployees: any;\r\n private employeeNote: string;\r\n private employeeAvailability: IEmployeeAvailability[];\r\n private selectedEmployee: any;\r\n private activeEmployee: any;\r\n private functions: Filter[] = [];\r\n private ranges: any[] = [];\r\n private availabilities: boolean[] = [];\r\n private history: boolean[] = [];\r\n private subscription: boolean[] = [];\r\n\r\n constructor(private $scope: ng.IScope, private SweetAlert: any, private EmployeesService: EmployeesService) {\r\n 'ngInject';\r\n }\r\n\r\n $onInit = () => {\r\n this.ranges = [\r\n {\r\n name: '0 to 5',\r\n min: 0,\r\n max: 5,\r\n value: false\r\n },\r\n {\r\n name: '5 to 15',\r\n min: 5,\r\n max: 15,\r\n value: false\r\n },\r\n {\r\n name: '15 to 50',\r\n min: 15,\r\n max: 50,\r\n value: false\r\n },\r\n {\r\n name: '50 to 100',\r\n min: 50,\r\n max: 100,\r\n value: false\r\n },\r\n {\r\n name: 'More than 100',\r\n min: 100,\r\n max: 5000,\r\n value: false\r\n }\r\n ];\r\n\r\n this.availabilities = [];\r\n this.history = [];\r\n this.subscription = [];\r\n //this.allEmployees = this.employees;\r\n\r\n\r\n // this.selectedEmployee = this.employees.find(e => e.employee.id == this.shift.employeeId);\r\n\r\n // this.$scope.$watch('this.shift.employeeId', function(newVal, oldVal){\r\n // this.selectedEmployee = this.employees.find(e => e.employee.id == this.shift.employeeId);\r\n // }, true);\r\n }\r\n\r\n public $onChanges = (changes) => {\r\n this.allEmployees = [];\r\n if (changes.employees) {\r\n this.allEmployees = this.employees;\r\n this.filterEmployees();\r\n\r\n if (this.allEmployees && this.allEmployees.length > 0) {\r\n this.allEmployees.forEach(item => {\r\n\r\n if (item.isAvailable) {\r\n if (item.subscription) {\r\n item.order = 1\r\n } else if (item.availability) {\r\n item.order = 2\r\n } else if (!item.availability) {\r\n item.order = 4\r\n }\r\n } else {\r\n if (item.subscription) {\r\n item.order = 3\r\n } else {\r\n item.order = 5\r\n }\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n employeeSelected(employeeSummary) {\r\n\r\n this.onSelectEmployee();\r\n \r\n if(this.selectedEmployee && this.selectedEmployee.employee.id === employeeSummary.employee.id) {\r\n this.selectedEmployee = null;\r\n this.shift.employeeId = null;\r\n return true;\r\n }\r\n\r\n if (employeeSummary.conflictingShift) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Deze medewerker heeft al een dienst op dit tijdstip! Wil je deze medewerker alsnog koppelen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.selectedEmployee = employeeSummary;\r\n this.shift.employeeId = this.selectedEmployee.employee.id;\r\n } else { }\r\n });\r\n } else {\r\n this.selectedEmployee = employeeSummary;\r\n this.shift.employeeId = this.selectedEmployee.employee.id;\r\n }\r\n }\r\n\r\n employeeActive(employeeSummary) {\r\n this.activeEmployee = employeeSummary;\r\n }\r\n\r\n filterEmployees() {\r\n this.employees = this.allEmployees;\r\n if (this.functions) {\r\n var selectedFunctions = this.functions.filter(f => f.value).map(f => f.id);\r\n if (selectedFunctions.length > 0) {\r\n this.employees = this.employees.filter(e => selectedFunctions.indexOf(e.employee.functionId) > -1);\r\n }\r\n }\r\n\r\n var selectedRanges = this.ranges.filter(r => r.value);\r\n if (selectedRanges.length > 0) {\r\n var minRange = Math.min.apply(null, selectedRanges.map(r => parseFloat(r.min)));\r\n var maxRange = Math.max.apply(null, selectedRanges.map(r => parseFloat(r.max)));\r\n this.employees = this.employees.filter(e => e.employee.kilometers > minRange && e.employee.kilometers < maxRange);\r\n }\r\n\r\n if (this.availabilities.filter(a => a).length == 1) {\r\n if (this.availabilities[0]) {\r\n this.employees = this.employees.filter(e => e.isAvailable);\r\n }\r\n if (this.availabilities[1]) {\r\n this.employees = this.employees.filter(e => !e.isAvailable);\r\n }\r\n }\r\n\r\n if (this.history.filter(a => a).length == 1) {\r\n if (this.history[0]) {\r\n this.employees = this.employees.filter(e => e.history);\r\n }\r\n if (this.history[1]) {\r\n this.employees = this.employees.filter(e => !e.history);\r\n }\r\n }\r\n\r\n if (this.subscription.filter(a => a).length == 1) {\r\n if (this.subscription[0]) {\r\n this.employees = this.employees.filter(e => e.subscription);\r\n }\r\n if (this.subscription[1]) {\r\n this.employees = this.employees.filter(e => !e.subscription);\r\n }\r\n }\r\n }\r\n\r\n removeSubscription(subscription, employeeSummary) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze inschrijving wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.EmployeesService.customDelete('subscriptions/' + subscription.id).then(() => {\r\n employeeSummary.subscription = false;\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\nclass Filter extends Masterdata {\r\n type: string;\r\n value: boolean = false;\r\n}\r\n\r\nexport const employeePickerComponent: ng.IComponentOptions = {\r\n bindings: {\r\n shift: '<',\r\n employees: '<',\r\n selectedEmployee: '<',\r\n activeEmployee: '<',\r\n functions: '<',\r\n isEmbedded: '<',\r\n disableFilter: '<',\r\n disableInfo: '<',\r\n onSelectEmployee: '&'\r\n },\r\n controller: EmployeePickerController,\r\n template: require('./employeePicker.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/employeePicker.component.ts","class EmployeeSummaryController {\r\n shift: any;\r\n private employeeSummary: any;\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n //this.employeeSummary.conflictingShift\r\n\r\n // {\"employee\":{\"id\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"name\":\"Ebrina Kok\",\"function\":\"Student VIG\",\"functionId\":\"98e2e502-4693-e711-80c2-0003ff4b7b6b\",\"addressId\":null,\"street\":null,\"number\":null,\"city\":null},\"conflictingShift\":{\"employeeId\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"name\":null,\"start\":\"2017-12-12T11:00:00\",\"end\":\"2017-12-13T12:00:00\",\"statusId\":6,\"shiftId\":\"827f9853-8cde-e711-80c3-0003ff433d90\"},\"availability\":{\"EmployeeId\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"name\":\"Ziek\",\"value\":null,\"comment\":null,\"from\":\"2017-12-11T13:45:00\",\"till\":\"2017-12-31T21:45:00\"},\"isAvailable\":false,\"subscription\":{\"employeeId\":\"baeaf909-4693-e711-80c2-0003ff4b7b6b\",\"comment\":\"TEST TEST\"},\"history\":{\"count\":10,\"dates\":[\"2017-12-12T11:00:00\",\"2017-12-11T13:15:00\",\"2017-12-09T11:45:00\"]}}\r\n }\r\n\r\n public $onChanges = (change) => {\r\n if(this.employeeSummary && this.employeeSummary.conflictingShift && this.shift) {\r\n if(this.employeeSummary.conflictingShift.shiftId == this.shift.id) {\r\n this.employeeSummary.conflictingShift = null;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const employeeSummaryComponent = {\r\n bindings: {\r\n employeeSummary: '<',\r\n shift: '<',\r\n isEmbedded: '<'\r\n },\r\n controller: EmployeeSummaryController,\r\n template: require('./employeeSummary.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/employeeSummary.component.ts","import { shiftListEmployeeComponent } from './shift.list.employee.component';\r\nimport { shiftListItemComponent } from './shift.list.item.component';\r\nimport { CalendarService } from '../../services/calendar.service';\r\nimport { shiftListComponent } from './shift.list.component';\r\nimport { shiftCalendarComponent } from './shift.calendar.component';\r\nimport { shiftItemComponent } from './shift.item.component';\r\nimport { shiftComponent } from './shift.component';\r\nimport {\r\n checkAvailabilityState,\r\n shiftCalendarState,\r\n shiftItemState,\r\n shiftListEmployeeState,\r\n shiftListItemState,\r\n shiftListState,\r\n shiftState,\r\n} from './shift.states';\r\n\r\nimport { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { employeeSummaryComponent } from \"./employeeSummary.component\";\r\nimport { checkAvailabilityModalComponent } from \"./checkAvailabilityModal.component\";\r\nimport { employeePickerComponent } from \"./employeePicker.component\";\r\nimport { shiftListSubscriptionsModalState } from './shift.states';\r\nimport { subscriptionsModalComponent } from './subscriptionsModal.component';\r\n\r\nconst applicationsAppModule: aboTheme.INgModule = {\r\n components: {shiftComponent, shiftItemComponent, shiftCalendarComponent, shiftListComponent, checkAvailabilityModalComponent, employeePickerComponent, employeeSummaryComponent, shiftListItemComponent, shiftListEmployeeComponent, subscriptionsModalComponent },\r\n states: [shiftState, shiftItemState, shiftCalendarState, shiftListState, shiftListItemState, checkAvailabilityState, \r\n shiftListEmployeeState, shiftListSubscriptionsModalState],\r\n services: {CalendarService}\r\n};\r\n\r\nloadNg1Module(ngmodule, applicationsAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/index.ts","import { CalendarService, ICalendarShift } from '../../services/calendar.service';\r\nimport { ShiftService } from '../../services';\r\nimport * as moment from 'moment';\r\n\r\nclass ShiftCalendarController implements ng.IComponentController {\r\n\r\n private shifts: ICalendarShift[];\r\n\r\n private uiConfig: any;\r\n private eventSources: any = [];\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private CalendarService: CalendarService,\r\n private $state: ng.ui.IStateService,\r\n private uiCalendarConfig: any,\r\n private $scope: ng.IScope,\r\n private $compile : ng.ICompileService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n // console.log('ShiftCalendarController');\r\n\r\n // var eventSource = {\r\n // url: 'http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic',\r\n // className: 'gcal-event', // an option!\r\n // currentTimezone: 'America/Chicago' // an option!\r\n // };\r\n this.eventSources = [this.getEvents];\r\n\r\n this.uiConfig = {\r\n\r\n calendar: {\r\n\r\n height: 700,\r\n locale: 'nl',\r\n header: {\r\n left: 'title',\r\n right: ' prev,next month,agendaWeek,agendaDay'\r\n },\r\n buttonIcons: {\r\n prev: ' fa fa-caret-left',\r\n next: ' fa fa-caret-right',\r\n },\r\n displayEventEnd: true,\r\n\r\n axisFormat: 'h:mm',\r\n\r\n allDaySlot: false,\r\n timeFormat: 'H:mm',\r\n eventLimit: true,\r\n eventClick: this.openItem,\r\n //eventDrop: $scope.alertOnDrop,\r\n //eventResize: $scope.alertOnResize,\r\n eventRender: this.eventRender\r\n }\r\n };\r\n\r\n this.ShiftService.subscribe('ShiftCalendarController', (type) => {\r\n var newShift;\r\n var calendarItem;\r\n switch (type) {\r\n case 'post': {\r\n newShift = this.ShiftService.item;\r\n calendarItem = new ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n if (newShift.status) {\r\n calendarItem.status = newShift.status.toString();\r\n }\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n this.shifts.push(calendarItem);\r\n break;\r\n }\r\n case 'put': {\r\n \r\n newShift = this.ShiftService.item;\r\n this.shifts = this.shifts.filter(s => s.shift.id !== newShift.id);\r\n if (this.ShiftService.item.status !== 99) {\r\n calendarItem = new ICalendarShift();\r\n calendarItem.start = newShift.start;\r\n calendarItem.end = newShift.end;\r\n if (newShift.status) {\r\n calendarItem.status = newShift.status.toString();\r\n }\r\n calendarItem.statusColor = newShift.statusColor;\r\n calendarItem.title = newShift.teamLocationName;\r\n calendarItem.shift = newShift;\r\n this.shifts.push(calendarItem);\r\n }\r\n break;\r\n }\r\n case 'delete': {\r\n this.shifts = this.shifts.filter(s => s.shift.id !== this.ShiftService.itemId);\r\n break;\r\n }\r\n }\r\n\r\n this.uiCalendarConfig.calendars['shiftsCalendar'].fullCalendar('refetchEvents');\r\n });\r\n }\r\n\r\n private openItem = (event) => {\r\n //this.$state.go('shifts.calendar.item', { 'id': event.shift.id });\r\n this.$state.go('shifts.list.item', { 'id': event.shift.id, 'start' : event.shift.start });\r\n \r\n }\r\n\r\n private eventRender = (event, element, view) => {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'tooltip-append-to-body': true\r\n });\r\n if (moment().isBefore(event.start)) {\r\n element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor });\r\n } else {\r\n element.css({ 'background-color': event.statusColor, 'border-color': event.statusColor, 'opacity': 0.7 });\r\n }\r\n\r\n this.$compile(element)(this.$scope);\r\n }\r\n\r\n private getEvents = (start, end, timezone, callback) => {\r\n this.CalendarService.all({ 'start': start.toDate() , 'end': end.toDate() }).then((events) => {\r\n this.shifts = events;\r\n var employeeName;\r\n this.shifts.forEach(s => {\r\n employeeName = s.shift.employeeDisplayName || '-';\r\n s.title = s.title + '\\n' + employeeName;\r\n });\r\n callback(events);\r\n });\r\n }\r\n\r\n public $onDestroy = () => {\r\n this.ShiftService.unsubscribe('ShiftCalendarController');\r\n }\r\n\r\n}\r\n\r\nexport const shiftCalendarComponent: ng.IComponentOptions = {\r\n controller: ShiftCalendarController,\r\n template: require('./shift.calendar.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.calendar.component.ts","class ShiftController implements ng.IComponentController {\r\n\r\n constructor(\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n}\r\n\r\nexport const shiftComponent: ng.IComponentOptions = {\r\n controller: ShiftController,\r\n template: require('./shift.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.component.ts","import {\r\n EmployeesService,\r\n IAccount,\r\n IShift,\r\n ShiftService,\r\n ITeam,\r\n Masterdata,\r\n IEmployee\r\n} from '../../services';\r\nimport * as moment from \"moment\";\r\nimport { AuthService } from \"../../authorization/services/index\";\r\nimport { AccountsService } from '../../services/accounts.service';\r\nimport { IEmployeeAvailability } from '../../services/employeeAvailability.service';\r\n\r\ninterface IResolve {\r\n shift: IShift;\r\n accounts: IAccount[];\r\n functions: Masterdata[];\r\n employees: IEmployee;\r\n statuses: Masterdata[];\r\n}\r\n\r\nclass ShiftItemController implements ng.IComponentController {\r\n private onChange: any;\r\n private employees: any;\r\n private functions: Masterdata[];\r\n private statuses: Masterdata[];\r\n private accounts: IAccount[];\r\n private locations: any;\r\n private teams: ITeam[];\r\n private resolve: IResolve;\r\n private shift: IShift;\r\n private employeeNote: string;\r\n private employeeAvailability: IEmployeeAvailability[];\r\n private selectedEmployee: any;\r\n private mode: string;\r\n\r\n private sortType: string;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private AccountsService: AccountsService,\r\n private AuthService: AuthService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: ng.ITimeoutService,\r\n private $scope: ng.IScope,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.sortType = 'start';\r\n //this.onChange({type: 'open', data: ''});\r\n\r\n this.shift = this.resolve.shift;\r\n this.accounts = this.resolve.accounts;\r\n this.functions = this.resolve.functions;\r\n this.statuses = this.resolve.statuses;\r\n this.employees = this.resolve.employees;\r\n if(!this.employees.find(e => e.displayName === '--- Geen ---')){\r\n var emp = new IEmployee();\r\n emp.displayName = '--- Geen ---';\r\n this.employees.push(emp);\r\n }\r\n \r\n if (this.shift) {\r\n this.shift.start = new Date(this.shift.start);\r\n this.shift.end = new Date(this.shift.end);\r\n\r\n if (moment().isAfter(this.shift.start)) {\r\n this.shift.isInThePast = true;\r\n }\r\n } else {\r\n this.shift = new IShift();\r\n this.shift.start = this.roundMinutes(new Date());\r\n this.shift.end = moment(this.shift.start).add(8, 'hour').toDate();\r\n if (this.AuthService.hasRole('customer')) {\r\n this.shift.status = 6;\r\n }\r\n\r\n // console.log(this.$stateParams['status']);\r\n if (this.$stateParams['status']) {\r\n this.shift.status = this.$stateParams['status'];\r\n }\r\n\r\n this.shift.employeeId = null;\r\n }\r\n\r\n // console.log(this.AuthService.getTokenData().customerId);\r\n if (this.AuthService.hasRole('customer')) {\r\n this.shift.teamLocationAccountId = this.AuthService.getTokenData().customerId;\r\n }\r\n\r\n if (this.shift.teamLocationAccountId) {\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then((result) => {\r\n this.locations = result;\r\n if (this.shift.teamLocationId) {\r\n this.teams = this.locations.find(item => item.id === this.shift.teamLocationId).teams;\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n roundMinutes(date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n // console.log('endDateBeforeRender');\r\n if (this.shift.start) {\r\n var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n public selectedAccount() {\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then((result) => {\r\n this.locations = result;\r\n });\r\n }\r\n\r\n public locationSelected() {\r\n this.teams = this.locations.find(item => item.id === this.shift.teamLocationId).teams;\r\n }\r\n\r\n public submitShift(after = null) {\r\n if (this.shift.isInThePast) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Deze dienst is in het verleden. Weet je zeker dit zeker?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.save(after);\r\n } else {\r\n\r\n }\r\n });\r\n } else {\r\n this.save(after);\r\n }\r\n\r\n }\r\n\r\n save(after) {\r\n if (moment(this.shift.start).isAfter(this.shift.end)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Eindtijd ligt voor starttijd',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'OK',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n\r\n }\r\n });\r\n } else {\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (!this.shift.id) {\r\n this.ShiftService.post(this.shift).then((data) => {\r\n this.shift = data;\r\n this.handleAfterSubmit(after);\r\n });\r\n } else {\r\n this.ShiftService.put(this.shift.id, this.shift).then((data) => {\r\n this.handleAfterSubmit(after);\r\n });\r\n }\r\n }\r\n }\r\n\r\n deleteShift() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze dienst wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.ShiftService.delete(this.shift.id).then(() => {\r\n // this.shifts = this.shifts.filter(s => s.id !== this.shift.id);\r\n this.shift = null;\r\n this.closeModal();\r\n });\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n handleAfterSubmit(after) {\r\n switch (after) {\r\n case \"copy\": {\r\n this.shift.id = null;\r\n this.shift.start = moment(this.shift.start).add(1, 'day').toDate();\r\n this.shift.end = moment(this.shift.end).add(1, 'day').toDate();\r\n if (moment().isAfter(this.shift.start)) {\r\n this.shift.isInThePast = true;\r\n } else {\r\n this.shift.isInThePast = false;\r\n }\r\n break;\r\n }\r\n case \"new\": {\r\n this.shift = new IShift();\r\n break;\r\n }\r\n default: {\r\n this.closeModal();\r\n }\r\n }\r\n }\r\n\r\n private closeModal() {\r\n if (this.shift && this.shift.id) {\r\n this.$state.go('^', { 'id': this.shift.id }, { reload: true });\r\n } else {\r\n this.$state.go('^', { 'id': null }, { reload: true });\r\n }\r\n }\r\n}\r\n\r\nexport const shiftItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n resolve: '<',\r\n //onChange: '&',\r\n },\r\n controller: ShiftItemController,\r\n template: require('./shift.item.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.item.component.ts","import { IBulkactionData } from '../../services/shifts.service';\r\nimport { AuthUserService } from '../../authsettings/services/authusers.service';\r\nimport { AppService } from '../../main/app.service';\r\nimport { Masterdata } from '../../services';\r\nimport { IShift, ShiftService, EmployeesService, IGetShiftListParams } from '../../services';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nclass ShiftListController implements ng.IComponentController {\r\n endList: boolean;\r\n loading: boolean;\r\n shiftLoading: any;\r\n private user: any;\r\n private groupedShifts: IShift[] = [];\r\n private moment: any;\r\n private actionform: any;\r\n private selectAll: any;\r\n private isMessageOpen: boolean;\r\n private sortType: any;\r\n private shiftsGrouping: string;\r\n private filter: any;\r\n private statuses: Masterdata[];\r\n private functions: Masterdata[];\r\n private shifts: IShift[];\r\n private currentShift: IShift;\r\n private months: Array;\r\n private startDate: any;\r\n private endDate: any;\r\n private days: any = [];\r\n private teams: any = [];\r\n private employees: any;\r\n //private selectedEmployee: any;\r\n private handlingChildChange: boolean;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private ThemeAppService: aboTheme.IThemeAppService,\r\n private $scope: ng.IScope,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any,\r\n private $timeout: ng.ITimeoutService,\r\n private $filter: any,\r\n private $sce: ng.ISCEService,\r\n private AuthUserService: AuthUserService,\r\n private $stateParams: ng.ui.IStateParamsService\r\n ) {\r\n 'ngInject';\r\n\r\n this.months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];\r\n }\r\n\r\n public $onInit = () => {\r\n this.isMessageOpen = false;\r\n this.shiftsGrouping = 'date';\r\n\r\n ///console.log(this.$stateParams);\r\n\r\n this.$scope.$watchCollection(() => {\r\n return this.$state.params;\r\n }, () => {\r\n if(this.$stateParams['refreshShift']) {\r\n this.refreshShift(this.$stateParams['refreshShift']);\r\n this.$state.go(\".\", { \"refreshShift\": '' }, { notify: false });\r\n }\r\n });\r\n\r\n this.filter = {\r\n status: null\r\n }\r\n\r\n var date = moment();\r\n if (this.$stateParams['start']) {\r\n date = moment(this.$stateParams['start']);\r\n this.startDate = date.format(\"YYYY-MM-DD\");\r\n if (this.$stateParams['end']) {\r\n this.endDate = moment(this.$stateParams['end']).format(\"YYYY-MM-DD\");\r\n } else {\r\n this.endDate = date.add(1, 'M').format(\"YYYY-MM-DD\");\r\n }\r\n } else {\r\n this.startDate = date.format(\"YYYY-MM-DD\");\r\n this.endDate = date.add(1, 'M').format(\"YYYY-MM-DD\");\r\n }\r\n\r\n this.AuthUserService.getCurrentUser().then((user) => {\r\n this.user = user;\r\n });\r\n\r\n this.getShiftsByDate();\r\n }\r\n\r\n public $onDestroy = () => {\r\n this.ShiftService.unsubscribe('ShiftListController');\r\n }\r\n\r\n private refreshShift(id) {\r\n this.ShiftService.get(id).then(shift => {\r\n var index = _.findIndex(this.shifts, { id: id });\r\n this.shifts[index] = shift;\r\n this.filterShifts();\r\n })\r\n }\r\n\r\n\r\n private isSameDay = (start, end) => {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private getShiftsByDate = () => {\r\n this.$state.go(\".\", { \"start\": this.startDate, \"end\": this.endDate }, { notify: false });\r\n this.shifts = [];\r\n this.getShifts();\r\n }\r\n\r\n private prevWeek = () => {\r\n this.startDate = moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(-7, 'day').toDate();\r\n this.shifts = [];\r\n this.getShiftsByDate();\r\n }\r\n\r\n private nextWeek = () => {\r\n \r\n this.startDate = moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(7, 'day').toDate();\r\n this.shifts = [];\r\n this.getShiftsByDate();\r\n }\r\n\r\n public resetFilters = () => {\r\n this.filter = {\r\n search: null,\r\n status: null,\r\n createdby: null,\r\n createdsince: null\r\n }\r\n this.shifts = [];\r\n this.getShifts();\r\n }\r\n\r\n public nextPage = () => {\r\n this.loading = true;\r\n this.getShifts(true, this.shifts.length);\r\n }\r\n\r\n public setFilters = (resetTime = true) => {\r\n this.loading = true;\r\n this.shifts = [];\r\n if (resetTime) {\r\n this.filter.createdsince = null;\r\n this.filter.updatedsince = null;\r\n }\r\n this.getShifts(true, 0);\r\n }\r\n\r\n public getShifts = (scrollTo = true, offset = 0) => {\r\n this.loading = true;\r\n var params: IGetShiftListParams = {\r\n from: this.startDate,\r\n till: this.endDate,\r\n includeSubscriptions: true,\r\n sortfield: 'start',\r\n sortorder: 'asc',\r\n limit: 25,\r\n offset: offset\r\n }\r\n\r\n if (this.filter) {\r\n if (this.filter.status) {\r\n params.status = this.filter.status;\r\n }\r\n if (this.filter.search && this.filter.search.length > 3) {\r\n params.q = this.filter.search;\r\n }\r\n if (this.filter.createdby) {\r\n params.createdBy = this.filter.createdby;\r\n // params.updatedBy = this.filter.createdby;\r\n }\r\n if (this.filter.createdsince) {\r\n params.createdSince = this.filter.createdsince;\r\n params.updatedSince = this.filter.createdsince;\r\n }\r\n }\r\n\r\n if (!this.shiftLoading) {\r\n this.shiftLoading = true;\r\n if (!this.shifts) {\r\n this.shifts = [];\r\n }\r\n this.ShiftService.getFilter(params).then((result) => {\r\n result.forEach(item => {\r\n this.shifts.push(item);\r\n })\r\n //this.shifts = [...result];\r\n this.getTeams();\r\n this.filterShifts(scrollTo);\r\n this.shiftLoading = false;\r\n if (result.length >= 25) {\r\n this.loading = false;\r\n } else {\r\n this.endList = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public filterShifts = (scrollTo = true) => {\r\n\r\n // this.shifts = this.$filter('filter')(this.shifts, this.filter.search);\r\n\r\n if (this.shiftsGrouping && this.shiftsGrouping == 'date') {\r\n this.groupedShifts = _.groupBy(this.shifts, (item) => {\r\n return moment(item.start).format('dd DD-MM-YYYY');\r\n });\r\n }\r\n\r\n if (!this.shifts.length) {\r\n // this.$state.go(\"shifts.list\");\r\n } else if (this.currentShift) {\r\n if (!_.find(this.shifts, { id: this.currentShift.id }) && !this.handlingChildChange) {\r\n // this.$state.go(this.$state.current, { id: this.shifts[0].id });\r\n // this.currentShift = this.shifts[0];\r\n // this.$timeout(() => {\r\n // if (this.isMessageOpen && scrollTo) {\r\n // this.scrollToShift(this.currentShift.id);\r\n // }\r\n // });\r\n } else {\r\n this.$timeout(() => {\r\n if (this.handlingChildChange) {\r\n this.handlingChildChange = false;\r\n }\r\n if (this.isMessageOpen && scrollTo) {\r\n this.scrollToShift(this.currentShift.id);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // private mailTeam = (team) => {\r\n\r\n // var ids = [];\r\n // this.shifts.forEach(s => {\r\n // if (s.teamName && s.teamName == team && ids.find(id => id == s.id) == null) {\r\n // ids.push(s.id);\r\n // }\r\n // });\r\n\r\n // this.ShiftService.customPost('email/team', ids);\r\n // }\r\n\r\n private notifyTeam = () => {\r\n this.ShiftService.customPost('email/team', [this.currentShift.id]);\r\n }\r\n\r\n private notifyEmployee = () => {\r\n this.ShiftService.customPost('email/employee', [this.currentShift.id]);\r\n }\r\n\r\n private getTeams = () => {\r\n this.shifts.forEach(s => {\r\n if (this.teams.indexOf(s.teamName) == -1) {\r\n this.teams.push(s.teamName);\r\n }\r\n });\r\n }\r\n\r\n public handleChildChange = (type, data) => {\r\n // console.log('handleChildChange')\r\n // console.log(type)\r\n this.handlingChildChange = true;\r\n switch (type) {\r\n case 'open':\r\n this.isMessageOpen = true;\r\n this.currentShift = data;\r\n break;\r\n case 'close':\r\n this.isMessageOpen = false;\r\n break;\r\n case 'new':\r\n this.setFilters();\r\n break;\r\n case 'updated':\r\n this.setFilters();\r\n break;\r\n case 'deleted':\r\n this.setFilters();\r\n break;\r\n case 'copy':\r\n this.setFilters(false);\r\n break;\r\n }\r\n }\r\n\r\n public scrollToShift = (shiftID) => {\r\n // var target_offset = $(\"#s-\" + shiftID).offset();\r\n // var parent_offset = $('#shiftsmalllist').offset();\r\n // var target_top = target_offset.top - parent_offset.top - 10;\r\n // $('#shiftsmalllist').animate({ scrollTop: target_top }, 500);\r\n }\r\n\r\n public selectAllChange = () => {\r\n this.shifts.forEach(shift => {\r\n (shift).$selected = this.selectAll;\r\n })\r\n }\r\n\r\n public submitAction = () => {\r\n var shifts = _.filter(this.shifts, { $selected: true });\r\n var data = new IBulkactionData();\r\n data.ids = [];\r\n shifts.forEach((shift) => {\r\n data.ids.push(shift.id);\r\n });\r\n var text = '';\r\n\r\n switch (this.actionform.action) {\r\n case 'setstatus':\r\n var status = this.actionform.status;\r\n data.shiftBulkAction = \"ChangeStatus\";\r\n data.statusId = status.code;\r\n text = 'Weet u zeker dat u van alle ' + shifts.length + ' geselecteerde diensten de status op ' + status.name + ' wilt zetten?';\r\n break;\r\n case 'emailteam':\r\n data.shiftBulkAction = \"SendEmail\";\r\n data.shiftEmail = \"Customer\";\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt mailen naar team?';\r\n break;\r\n case 'emailemployee':\r\n data.shiftBulkAction = \"SendEmail\";\r\n data.shiftEmail = \"EmployeeConfirm\";\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt mailen naar de medewerkers?'\r\n break;;\r\n case 'setemployee':\r\n var employee = this.actionform.employee;\r\n data.shiftBulkAction = \"SetEmployee\";\r\n data.employeeId = employee.id;\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt toewijzen aan ' + employee.displayName + '?';\r\n break;\r\n case 'delete':\r\n data.shiftBulkAction = \"Delete\";\r\n text = 'Weet u zeker dat u alle ' + shifts.length + ' geselecteerde diensten wilt verwijderen?';\r\n break;\r\n }\r\n\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: text,\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.ShiftService.bulkAction(data).then(() => {\r\n this.actionform.action = \"\";\r\n this.shifts = [];\r\n this.getShifts();\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const shiftListComponent: ng.IComponentOptions = {\r\n bindings: {\r\n statuses: '<',\r\n functions: '<',\r\n employees: '<'\r\n },\r\n controller: ShiftListController,\r\n template: require('./shift.list.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.list.component.ts","import { EmployeesService, IEmployee, IShift, ShiftService } from '../../services';\r\nimport * as moment from 'moment';\r\n\r\nclass ShiftListEmployeeController implements ng.IComponentController {\r\n private selectedEmployee: any;\r\n private employees: any;\r\n private onChange: any;\r\n private shift: IShift;\r\n\r\n constructor(\r\n private ShiftService: ShiftService, private EmployeesService: EmployeesService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.onChange({type: 'open', data: this.shift});\r\n this.getEmployees();\r\n } \r\n\r\n public $onDestroy = () => {\r\n this.onChange({type: 'close', data: this.shift});\r\n }\r\n\r\n private getEmployees = () => {\r\n var request = {\r\n accountId: this.shift.teamLocationAccountId,\r\n locationId: this.shift.teamLocationId,\r\n startDate: this.shift.start,\r\n endDate: this.shift.end,\r\n shiftId: this.shift.id\r\n };\r\n\r\n this.EmployeesService.customPost('availableEmployees', request, false).then((result: any) => {\r\n this.employees = result;\r\n this.selectedEmployee = this.employees.find(employeeSummary => employeeSummary.employee.id == this.shift.employeeId);\r\n });\r\n }\r\n\r\n private unassignEmployee = () => {\r\n this.shift.employeeId = null;\r\n this.shift.status = 2;\r\n this.selectedEmployee = null;\r\n this.submitShift();\r\n }\r\n\r\n private submitShift() {\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n if (this.shift.employeeId !== null) {\r\n this.shift.status = 6;\r\n }\r\n this.ShiftService.put(this.shift.id, this.shift).then((data) => {\r\n this.onChange({type: 'updated', data: data});\r\n this.getEmployees();\r\n });\r\n }\r\n}\r\n\r\nexport const shiftListEmployeeComponent: ng.IComponentOptions = {\r\n bindings: {\r\n shift: '<',\r\n //employees: '<',\r\n functions: '<',\r\n onChange: '&',\r\n },\r\n controller: ShiftListEmployeeController,\r\n template: require('./shift.list.employee.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.list.employee.component.ts","import { timesheetsOverviewState } from '../timesheets/timesheets.states';\r\nimport {\r\n EmployeesService,\r\n IAccount,\r\n IShift,\r\n ShiftService,\r\n ITeam,\r\n Masterdata,\r\n IEmployee\r\n} from '../../services';\r\nimport * as moment from 'moment';\r\nimport { AuthService } from \"../../authorization/services/index\";\r\nimport { AccountsService } from '../../services/accounts.service';\r\nimport { IEmployeeAvailability } from '../../services/employeeAvailability.service';\r\n\r\ninterface IResolve {\r\n shift: IShift;\r\n accounts: IAccount[];\r\n functions: Masterdata[];\r\n employees: IEmployee;\r\n statuses: Masterdata[];\r\n}\r\n\r\ninterface IScope extends ng.IScope {\r\n shiftForm: ng.IFormController;\r\n}\r\n\r\nclass ShiftListItemController implements ng.IComponentController {\r\n currentShiftStatus: number;\r\n private onChange: any;\r\n private employees: any;\r\n private functions: Masterdata[];\r\n private statuses: Masterdata[];\r\n private accounts: IAccount[];\r\n private locations: any;\r\n private teams: ITeam[];\r\n private resolve: IResolve;\r\n private shift: IShift;\r\n private employeeNote: string;\r\n private employeeAvailability: IEmployeeAvailability[];\r\n private selectedEmployee: any;\r\n private mode: string;\r\n private currentDate: any;\r\n\r\n private sortType: string;\r\n\r\n private isBackoffice = false;\r\n private isCustomer = false;\r\n private isEmployee = false;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private AccountsService: AccountsService,\r\n private AuthService: AuthService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: ng.ITimeoutService,\r\n private $scope: IScope,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.onChange({ type: 'open', data: this.shift });\r\n\r\n if (!this.employees.find(e => e.displayName === '--- Geen ---')) {\r\n var emp = new IEmployee();\r\n emp.displayName = '--- Geen ---';\r\n this.employees.push(emp);\r\n }\r\n\r\n if (this.shift) {\r\n if (moment().isAfter(this.shift.start)) {\r\n this.shift.isInThePast = true;\r\n }\r\n this.currentShiftStatus = this.shift.status;\r\n } else {\r\n this.shift = new IShift();\r\n this.shift.start = this.roundMinutes(new Date());\r\n this.shift.end = moment(this.shift.start).add(8, 'hour').toDate();\r\n this.shift.status = 2;\r\n\r\n // if (this.AuthService.hasRole('customer')) {\r\n // this.shift.status = 6;\r\n // }\r\n if (this.$stateParams['status']) {\r\n this.shift.status = this.$stateParams['status'];\r\n }\r\n this.shift.employeeId = null;\r\n }\r\n\r\n if (this.AuthService.hasRole('customer')) {\r\n this.shift.teamLocationAccountId = this.AuthService.getTokenData().customerId;\r\n }\r\n\r\n if (this.shift.teamLocationAccountId) {\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then((result) => {\r\n this.locations = result;\r\n if (this.shift.teamLocationId) {\r\n this.teams = this.locations.find(item => item.id === this.shift.teamLocationId).teams;\r\n }\r\n });\r\n }\r\n\r\n this.currentDate = new Date(Date.now());\r\n\r\n this.isBackoffice = this.AuthService.hasRole('backoffice');\r\n this.isCustomer = this.AuthService.hasRole('customer');\r\n this.isEmployee = this.AuthService.hasRole('employee');\r\n }\r\n\r\n $onDestroy = () => {\r\n this.onChange({ type: 'close', data: this.shift });\r\n }\r\n\r\n roundMinutes(date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n }\r\n\r\n // startDateBeforeRender($dates) {\r\n // }\r\n\r\n // endDateBeforeRender($view, $dates) {\r\n // // console.log('endDateBeforeRender');\r\n // if (this.shift.start) {\r\n // var activeDate = moment(this.shift.start).subtract(1, $view).add(1, 'minute');\r\n\r\n // $dates.filter(function (date) {\r\n // return date.localDateValue() <= activeDate.valueOf();\r\n // }).forEach(function (date) {\r\n // date.selectable = false;\r\n // });\r\n // }\r\n // }\r\n\r\n public selectEmployee = () => {\r\n if (this.shift.employeeId) {\r\n this.shift.status = 6;\r\n } else {\r\n this.shift.status = 2;\r\n }\r\n }\r\n\r\n public selectedAccount() {\r\n this.AccountsService.getChild(this.shift.teamLocationAccountId, 'locations').then((result) => {\r\n this.locations = result;\r\n });\r\n }\r\n\r\n public locationSelected() {\r\n if (this.shift.teamLocationId) {\r\n let location = this.locations.find(item => item.id === this.shift.teamLocationId);\r\n this.teams = location ? location.teams : [];\r\n }\r\n }\r\n\r\n public submitShift(after = null) {\r\n this.$scope.shiftForm.$setSubmitted();\r\n if (this.$scope.shiftForm.$valid) {\r\n if (this.isCustomer && moment().isAfter(this.shift.start)) {\r\n this.SweetAlert.swal('Dienst in het verleden', 'U kunt geen dienst in het verleden creëren.', 'warning');\r\n } else if (moment(this.shift.start).isAfter(this.shift.end)) {\r\n this.SweetAlert.swal('Let op!', 'Eindtijd ligt voor starttijd.', 'warning');\r\n } else if (moment().isAfter(this.shift.start)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Deze dienst is in het verleden. Weet je zeker dit zeker?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.currentShiftStatus = this.shift.status;\r\n this.save(after);\r\n } else {\r\n\r\n }\r\n });\r\n } else if ((this.shift.status === 92 || this.shift.status === 7) && moment().add(4, 'day').isAfter(moment(this.shift.start))) {\r\n // console.log(\"HERE\")\r\n if (!this.shift.employeeId) {\r\n // console.log(\"1\")\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Let op: de dienst begint over minder dan 96 uur. Er is geen medewerker geselecteerd waarop een decalartie kan worden aangemaakt. Je kunt deze dienst niet annuleren',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Stop',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n } else {\r\n }\r\n });\r\n } else {\r\n // console.log(\"2\")\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Let op: de dienst begint over minder dan 96 uur. Er worden automatisch een declaratie aangemaakt. Weet u zeker dat u de dienst wilt annuleren?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.shift.status = 7;\r\n this.currentShiftStatus = this.shift.status;\r\n this.save(after);\r\n } else {\r\n }\r\n });\r\n }\r\n } else if ((this.currentShiftStatus === 7 && this.shift.status != 7)) {\r\n // console.log(\"3\")\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Let op: Deze dienst had status Geannuleerd 96 uur. Bij het opslaan zullen alle declaraties worden verwijderd. Weet je zeker dat je dit wilt?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja, opslaan',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.currentShiftStatus = this.shift.status;\r\n this.save(after);\r\n } else {\r\n }\r\n });\r\n } else {\r\n this.currentShiftStatus = this.shift.status;\r\n this.save(after);\r\n }\r\n }\r\n }\r\n\r\n public save = (after) => {\r\n this.shift.start = moment(this.shift.start).format(\"YYYY-MM-DD HH:mm\");\r\n this.shift.end = moment(this.shift.end).format(\"YYYY-MM-DD HH:mm\");\r\n\r\n if (!this.shift.id) {\r\n this.ShiftService.post(this.shift).then((data) => {\r\n this.shift = data;\r\n this.handleAfterSubmit(after, 'new');\r\n });\r\n } else {\r\n this.ShiftService.put(this.shift.id, this.shift).then((data) => {\r\n this.shift = data;\r\n this.handleAfterSubmit(after, 'updated');\r\n });\r\n }\r\n }\r\n\r\n private deleteShift = () => {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze dienst wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.ShiftService.delete(this.shift.id).then(() => {\r\n this.onChange({ type: 'deleted', data: this.shift });\r\n this.$state.go('^');\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n private handleAfterSubmit = (after, type) => {\r\n switch (after) {\r\n case \"copy\": {\r\n this.onChange({ type: 'copy', data: this.shift });\r\n //this.$state.go('.', {'id': ''}, {notify: false});\r\n this.shift.id = null;\r\n // this.shift.start = moment(this.shift.start).add(1, 'day').toDate();\r\n // this.shift.end = moment(this.shift.end).add(1, 'day').toDate();\r\n if (moment().isAfter(this.shift.start)) {\r\n this.shift.isInThePast = true;\r\n } else {\r\n this.shift.isInThePast = false;\r\n }\r\n\r\n break;\r\n }\r\n case \"new\": {\r\n this.onChange({ type: 'copy', data: this.shift });\r\n this.shift = null;\r\n this.$state.go('shifts.list.item', { 'id': '' });\r\n break;\r\n }\r\n default: {\r\n this.$state.go('shifts.list.item', { 'id': this.shift.id });\r\n this.onChange({ type: \"new\", data: this.shift });\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const shiftListItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n shift: '<',\r\n employees: '<',\r\n statuses: '<',\r\n accounts: '<',\r\n functions: '<',\r\n onChange: '&',\r\n },\r\n controller: ShiftListItemController,\r\n template: require('./shift.list.item.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/shift.list.item.component.ts","import { ShiftService, IShift } from '../../services/shifts.service';\r\nimport { EmployeesService, IEmployee } from '../../services/employees.service';\r\nimport * as moment from 'moment';\r\n\r\n\r\nclass SubscriptionsModalController implements ng.IComponentController {\r\n employee: IEmployee;\r\n mailcustomer: boolean = false;\r\n mailemployee: boolean = false;\r\n close: any;\r\n statuses: any;\r\n employees: any;\r\n selectedEmployee: any;\r\n public shift: any;\r\n private resolve: any;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: any,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n $onInit = () => {\r\n this.shift = this.resolve.shift;\r\n this.statuses = this.resolve.statuses;\r\n this.getEmployee();\r\n this.getEmployees();\r\n this.setModalHeight();\r\n }\r\n\r\n private setModalHeight = () => {\r\n // var docHeight = $(window).height();\r\n // var height = docHeight - 225;\r\n $(\"#checkAvailabilityModalBody #employeelist\").height(450);\r\n }\r\n\r\n private getEmployees = () => {\r\n var request = {\r\n accountId: this.shift.teamLocationAccountId,\r\n locationId: this.shift.teamLocationId,\r\n startDate: this.shift.start,\r\n endDate: this.shift.end,\r\n shiftId: this.shift.id\r\n };\r\n\r\n this.EmployeesService.customPost('availableEmployees', request, false).then((result: any) => {\r\n this.employees = result;\r\n this.employees = this.employees.filter(employeeSummary => employeeSummary.subscription)\r\n //this.selectedEmployee = this.employees.find(employeeSummary => employeeSummary.employee.id == this.shift.employeeId);\r\n });\r\n }\r\n\r\n public onSelectEmployee = () => {\r\n this.$timeout(() => {\r\n if (this.shift.employeeId) {\r\n this.shift.status = 6\r\n } else {\r\n this.shift.status = 2;\r\n }\r\n this.getEmployee();\r\n\r\n });\r\n }\r\n\r\n getEmployee = () => {\r\n if (this.shift.employeeId) {\r\n this.EmployeesService.get(this.shift.employeeId).then(employee => {\r\n this.employee = employee;\r\n });\r\n }\r\n }\r\n\r\n save = () => {\r\n if (moment(this.shift.start).isAfter(this.shift.end)) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Eindtijd ligt voor starttijd',\r\n type: 'warning',\r\n showCancelButton: false,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'OK',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n\r\n }\r\n });\r\n } else {\r\n this.ShiftService.put(this.shift.id, this.shift).then((data) => {\r\n this.shift = data;\r\n\r\n if (this.mailcustomer) {\r\n this.notifyTeam();\r\n }\r\n\r\n if (this.mailemployee) {\r\n this.notifyEmployee();\r\n }\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n private notifyTeam = () => {\r\n this.ShiftService.customPost('email/team', [this.shift.id]);\r\n }\r\n\r\n private notifyEmployee = () => {\r\n this.ShiftService.customPost('email/employee', [this.shift.id]);\r\n }\r\n\r\n\r\n // getEmployee(id) {\r\n // return this.EmployeesService.get(id).then(employee => {\r\n // return employee;\r\n // })\r\n // }\r\n\r\n closeModal() {\r\n this.$state.go('^', { 'refreshShift': this.shift.id }, {\r\n location: true,\r\n reload: false,\r\n inherit: true,\r\n notify: true\r\n });\r\n }\r\n}\r\n\r\nexport const subscriptionsModalComponent: ng.IComponentOptions = {\r\n controller: SubscriptionsModalController,\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\"\r\n },\r\n template: require('./subscriptionsModal.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/shifts/subscriptionsModal.component.ts","import {loadNg1Module, ngmodule} from \"../../bootstrap/ngmodule\";\r\nimport { skillsState, skillsDashboardState, employeeSkillsItemState } from \"./skills.states\";\r\nimport { skillsDashboardComponent } from \"./skills.dashboard.component\";\r\nimport { skillsComponent } from \"./skills.component\";\r\n\r\n\r\nconst skillAppModule: aboTheme.INgModule = {\r\n components: { skillsComponent, skillsDashboardComponent },\r\n states: [ skillsState, skillsDashboardState, employeeSkillsItemState ],\r\n filters: { }\r\n};\r\n\r\nloadNg1Module(ngmodule, skillAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/skills/index.ts","class SkillsController implements ng.IComponentController {\r\n constructor() {\r\n 'ngInject';\r\n }\r\n}\r\n\r\nexport const skillsComponent : ng.IComponentOptions = {\r\n controller : SkillsController,\r\n template :require('./skills.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/skills/skills.component.ts","import { EmployeeSkillsService } from \"../../services/index\";\r\n\r\nclass SkillsDashboardController {\r\n\r\n constructor(private EmployeeSkillsService: EmployeeSkillsService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n }\r\n}\r\n\r\nexport const skillsDashboardComponent = {\r\n controller: SkillsDashboardController,\r\n bindings: {\r\n employeeSkills: '<'\r\n },\r\n template: require('./skills.dashboard.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/skills/skills.dashboard.component.ts","import { EmployeesService } from '../../services/employees.service';\r\n\r\nexport const skillsState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"skills\",\r\n url: \"/skills\",\r\n redirectTo: \"skills.dashboard\",\r\n component: 'skillsComponent',\r\n data: {\r\n permissions: {\r\n only: ['EMPLOYEE']\r\n }\r\n }\r\n};\r\n\r\nexport const skillsDashboardState: aboTheme.IState = {\r\n\r\n name: \"skills.dashboard\",\r\n url: \"/skillsDashboard\",\r\n resolve: { \r\n employeeSkills: (EmployeeSkillsService: EmployeesService) => {\r\n \"ngInject\";\r\n return EmployeeSkillsService.all();\r\n }\r\n },\r\n views: {\r\n \"main\": 'skillsDashboardComponent'\r\n }\r\n};\r\n\r\nexport const employeeSkillsItemState: aboTheme.IState = {\r\n\r\n name: \"skills.dashboard.skill\",\r\n url: \"/employeeSkill/:employeeSkillId\",\r\n params: {\r\n \"employeeSkillId\": null\r\n },\r\n modal: ['employeeSkills'],\r\n resolve: {\r\n skills: (MasterdataService: aboMasterdata.IService) => {\r\n 'ngInject';\r\n return MasterdataService.getItems('Skills');\r\n }\r\n },\r\n component: 'skillsItemComponent'\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/skills/skills.states.ts","import { subscriptionsItemComponent } from './subscriptions.item.component';\r\nimport {loadNg1Module, ngmodule} from \"../../bootstrap/ngmodule\";\r\nimport { subscriptionsDashboardItemState, subscriptionsDashboardState, subscriptionsState } from './subscriptions.states';\r\nimport { subscriptionsDashboardComponent } from \"./subscriptions.dashboard.component\";\r\nimport { subscriptionsComponent } from \"./subscriptions.component\";\r\nimport { isDay } from \"../../filters/isDay.filter\";\r\n\r\n\r\nconst subscriptionAppModule: aboTheme.INgModule = {\r\n components: { subscriptionsComponent, subscriptionsDashboardComponent, subscriptionsItemComponent },\r\n states: [ subscriptionsState, subscriptionsDashboardState, subscriptionsDashboardItemState ],\r\n filters: { isDay }\r\n};\r\n\r\nloadNg1Module(ngmodule, subscriptionAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/subscriptions/index.ts","class SubscriptionsController implements ng.IComponentController {\r\n constructor() {\r\n 'ngInject';\r\n }\r\n}\r\n\r\nexport const subscriptionsComponent : ng.IComponentOptions = {\r\n controller : SubscriptionsController,\r\n template :require('./subscriptions.html')\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/subscriptions/subscriptions.component.ts","import { IGetShiftListParams, ShiftService } from '../../services/shifts.service';\r\nimport { EmployeesService } from '../../services/employees.service';\r\nimport { IEmployeeSubscription, IShift } from \"../../services/index\";\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { timingSafeEqual } from 'crypto';\r\n\r\nclass SubscriptionsDashboardController {\r\n groupedShifts: any;\r\n isMessageOpen: boolean;\r\n shiftsGrouping: string;\r\n filter: any;\r\n endDate: any;\r\n startDate: any;\r\n private sortType: string;\r\n private shifts: IShift[];\r\n private days: any = [];\r\n private currentShift: IShift;\r\n private subscriptions: IEmployeeSubscription[];\r\n private newSubscription: IEmployeeSubscription;\r\n private isInitializing: boolean;\r\n private maxDistanceFilter: string;\r\n private functionFilter: string;\r\n\r\n constructor(\r\n private EmployeesService: EmployeesService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private ShiftService: ShiftService,\r\n private screenSize: any\r\n ) {\r\n \"ngInject\";\r\n }\r\n\r\n public $onInit = () => {\r\n this.isMessageOpen = false;\r\n this.shiftsGrouping = 'date';\r\n this.filter = {\r\n status : null\r\n }\r\n this.maxDistanceFilter = '50';\r\n this.isInitializing = true;\r\n this.startDate = moment().toDate();\r\n this.endDate = moment().add(1, 'w').toDate();\r\n this.getShifts(true, true);\r\n }\r\n\r\n public handleChildChange = (type, data) => {\r\n switch (type){\r\n case 'init':\r\n this.isMessageOpen = true;\r\n break;\r\n case 'update':\r\n this.getShifts();\r\n break;\r\n default : \r\n break;\r\n }\r\n }\r\n\r\n prevWeek() {\r\n this.startDate = moment(this.startDate).add(-7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(-7, 'day').toDate();\r\n this.getShifts();\r\n }\r\n\r\n nextWeek() {\r\n this.startDate = moment(this.startDate).add(7, 'day').toDate();\r\n this.endDate = moment(this.endDate).add(7, 'day').toDate();\r\n this.getShifts();\r\n }\r\n\r\n setFilters() {\r\n var filteredShifts = this.shifts;\r\n \r\n // filter by distance\r\n if (this.maxDistanceFilter) {\r\n var filteredShifts = filteredShifts.filter(s => s.distance < Number(this.maxDistanceFilter));\r\n }\r\n\r\n // filter by function\r\n if (this.functionFilter) {\r\n var filteredShifts = filteredShifts.filter(s => s.functionId === this.functionFilter);\r\n }\r\n \r\n if (this.shiftsGrouping && this.shiftsGrouping == 'date'){\r\n this.groupShifts(filteredShifts);\r\n }\r\n }\r\n\r\n groupShifts(shifts) {\r\n // console.log('groupShifts')\r\n this.groupedShifts = _.groupBy(shifts, (item) => {\r\n return moment(item.start).format('dd DD-MM-YYYY');\r\n });\r\n }\r\n\r\n public resetFilters = () => {\r\n this.filter = {\r\n search: null,\r\n status : null,\r\n createdby: null,\r\n createdsince: null\r\n }\r\n this.getShifts();\r\n }\r\n\r\n public getShifts = (scrollTo = true, isFirstGet = false) => {\r\n if (!this.isInitializing || isFirstGet) {\r\n // console.log('this.getShifts')\r\n var termTooShort = false;\r\n this.currentShift = null;\r\n var params: IGetShiftListParams = {\r\n from: this.startDate,\r\n till: this.endDate,\r\n includeSubscriptions: false,\r\n includeDistance: true,\r\n sortfield: 'start',\r\n sortorder: 'asc'\r\n }\r\n\r\n if (this.filter) {\r\n params.status = '2';\r\n // if (this.filter.status) {\r\n // params.status = '2';\r\n // }\r\n if (this.filter.search) {\r\n if (this.filter.search.length > 3) {\r\n params.q = this.filter.search;\r\n } else {\r\n termTooShort = true;\r\n }\r\n }\r\n // if (this.filter.createdby) {\r\n // params.createdBy = this.filter.createdby;\r\n // params.updatedBy = this.filter.createdby;\r\n // }\r\n // if (this.filter.createdsince) {\r\n // params.createdSince = this.filter.createdsince;\r\n // params.updatedSince = this.filter.createdsince;\r\n // }\r\n }\r\n\r\n if (!termTooShort) { \r\n this.ShiftService.getFilter(params).then((result) => {\r\n this.shifts = result;\r\n this.setFilters()\r\n if (this.isInitializing) {\r\n this.isInitializing = false;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n \r\n}\r\n\r\nexport const subscriptionsDashboardComponent = {\r\n controller: SubscriptionsDashboardController,\r\n bindings: {\r\n subscriptions: '<',\r\n functions: '<'\r\n },\r\n template: require('./subscriptions.dashboard.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/subscriptions/subscriptions.dashboard.component.ts","import { ILocation } from '../../services/location.service';\r\nimport { EmployeesService, IEmployeeSubscription, ITeam, LocationService, TeamService } from '../../services';\r\nimport { IShift, ShiftService } from '../../services/shifts.service';\r\nimport * as moment from 'moment';\r\nimport { AuthService } from \"../../authorization/services/index\";\r\n\r\n\r\nclass SubscriptionsItemController implements ng.IComponentController {\r\n private location: ILocation;\r\n private subscription: IEmployeeSubscription;\r\n private newSubscription: any;\r\n private onChange: any;\r\n private shift: IShift;\r\n\r\n constructor(\r\n private ShiftService: ShiftService,\r\n private EmployeesService: EmployeesService,\r\n private TeamService: TeamService,\r\n private LocationService: LocationService,\r\n private $stateParams: ng.ui.IStateParamsService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.getShift();\r\n\r\n if(this.$stateParams['id']){\r\n this.onChange({type: 'init', data: this.$stateParams['id'] });\r\n }\r\n } \r\n \r\n public getShift = () => {\r\n this.ShiftService.customGet(this.$stateParams['id'] + '/withDistance').then((shift) => {\r\n this.shift = shift;\r\n if(this.shift.subscriptionsCount > 0){\r\n this.shift.subscribed = true;\r\n this.subscription = this.shift.mySubscription;\r\n } else {\r\n this.subscription = new IEmployeeSubscription();\r\n this.subscription.shiftId = this.shift.id;\r\n }\r\n this.getLocation();\r\n })\r\n }\r\n\r\n public getLocation() {\r\n this.LocationService.get(this.shift.teamLocationId).then((location) => {\r\n this.location = location;\r\n })\r\n }\r\n\r\n public signUp = () => {\r\n if (!this.subscription.id) {\r\n this.EmployeesService.postSubscription(this.subscription).then((result: any) => {\r\n this.shift.subscribed = true;\r\n this.onChange({type: 'update', data: this.$stateParams['id'] });\r\n });\r\n } else {\r\n this.EmployeesService.putSubscription(this.subscription).then((result: any) => {\r\n this.shift.subscribed = true;\r\n this.onChange({type: 'update', data: this.$stateParams['id'] });\r\n });\r\n }\r\n }\r\n\r\n public unsubscribe = () => {\r\n var subscriptionId = this.shift.mySubscription.id\r\n this.EmployeesService.customDelete('subscriptions/' + subscriptionId).then(() => {\r\n this.shift.subscribed = false;\r\n this.onChange({type: 'update', data: this.$stateParams['id'] });\r\n });\r\n }\r\n \r\n}\r\n\r\nexport const subscriptionsItemComponent: ng.IComponentOptions = {\r\n bindings: {\r\n onChange: '&',\r\n },\r\n controller: SubscriptionsItemController,\r\n template: require('./subscriptions.item.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/subscriptions/subscriptions.item.component.ts","import { EmployeesService } from '../../services/employees.service';\r\nimport { ShiftService } from \"../../services/index\";\r\n\r\nexport const subscriptionsState: aboTheme.IState = {\r\n\r\n parent: 'app',\r\n name: \"subscriptions\",\r\n url: \"/subscriptions\",\r\n redirectTo: \"subscriptions.dashboard\",\r\n component: 'subscriptionsComponent',\r\n data: {\r\n permissions: {\r\n only: ['EMPLOYEE']\r\n }\r\n }\r\n};\r\n\r\nexport const subscriptionsDashboardState: aboTheme.IState = {\r\n\r\n name: \"subscriptions.dashboard\",\r\n url: \"/dashboard?currentShiftId\",\r\n params: {\r\n currentShiftId: null\r\n },\r\n resolve: {\r\n // shifts: (ShiftService: ShiftService) => { \r\n // \"ngInject\";\r\n // var moment = require('moment');\r\n // var startDate = moment().toDate();\r\n // var endDate = moment().add(30, 'day').toDate();\r\n // return ShiftService.getLightByDate({start: startDate, end: endDate});\r\n // },\r\n subscriptions: (EmployeesService: EmployeesService) => {\r\n \"ngInject\";\r\n return EmployeesService.getSubscriptions();\r\n },\r\n functions : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('Functions'); }\r\n },\r\n views: {\r\n \"main\": 'subscriptionsDashboardComponent'\r\n }\r\n};\r\n\r\nexport const subscriptionsDashboardItemState = {\r\n name: \"subscriptions.dashboard.item\",\r\n url: \"/item/:id\",\r\n resolve: {\r\n \r\n },\r\n views: {\r\n \"shiflistitem@subscriptions.dashboard\": 'subscriptionsItemComponent'\r\n },\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/subscriptions/subscriptions.states.ts","import { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { taskComponent } from './task.component';\r\nimport { taskListComponent } from './task.list.component';\r\nimport { taskState, taskListState, taskItemState, taskItemBasicState, taskArchiveState } from \"./tasks.states\";\r\nimport { taskItemComponent } from \"./task.item.component\";\r\nimport { taskItemBasicComponent } from \"./task.item.basic.component\";\r\nimport { taskArchiveComponent } from \"./task.archive.component\";\r\n\r\nconst subscriptionAppModule: aboTheme.INgModule = {\r\n components: { taskComponent, taskListComponent, taskItemComponent, taskItemBasicComponent, taskArchiveComponent },\r\n states: [ taskState, taskListState, taskItemState, taskItemBasicState, taskArchiveState ],\r\n };\r\n \r\n loadNg1Module(ngmodule, subscriptionAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/index.ts","import { ITask } from \"../../services\";\r\n\r\nclass TaskArchiveController implements ng.IComponentController {\r\n private sortType: string;\r\n private search: string;\r\n private tasks: ITask[];\r\n private filteredTasks: ITask[];\r\n private selectedStatus: string;\r\n\r\n constructor(private $filter: any) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.sortType = 'date';\r\n this.filter();\r\n }\r\n\r\n filter() {\r\n this.filteredTasks = this.$filter('filterBy')(this.tasks, ['taskStatusName'], this.selectedStatus);\r\n }\r\n}\r\n\r\nexport const taskArchiveComponent = {\r\n bindings: {\r\n tasks: '<',\r\n taskStatuses: '<'\r\n },\r\n controller: TaskArchiveController,\r\n template: require('./task.archive.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/task.archive.component.ts","class TaskController implements ng.IComponentController {\r\n\r\n constructor(\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n}\r\n\r\nexport const taskComponent: ng.IComponentOptions = {\r\n controller: TaskController,\r\n template: require('./task.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/task.component.ts","import { IContact } from './../../services/contacts.service';\r\nimport { IAuthUser } from './../../authsettings/services/authusers.service';\r\nimport { ITask, TasksService, ITeam } from \"../../services\";\r\nimport { IAccount, AccountsService } from '../../services/accounts.service';\r\nimport { IEmployee } from '../../services/employees.service';\r\nimport { ILocation } from '../../services/location.service';\r\n\r\ninterface IResolve {\r\n task: ITask;\r\n users: any;\r\n accounts: any;\r\n contacts: any;\r\n employees: any;\r\n taskStatuses: any;\r\n}\r\n\r\nclass TaskItemBasicController {\r\n\r\n private resolve: IResolve;\r\n private task: ITask;\r\n private users: IAuthUser[];\r\n private accounts: IAccount[];\r\n private locations: ILocation[];\r\n private teams: ITeam[];\r\n private contacts: IContact[];\r\n private employees: IEmployee[];\r\n private taskStatuses: any;\r\n\r\n constructor(\r\n private TasksService: TasksService,\r\n private AccountsService: AccountsService,\r\n private $state: ng.ui.IStateService\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n\r\n public $onInit = () => { \r\n this.task = this.resolve.task;\r\n this.users = this.resolve.users;\r\n this.accounts = this.resolve.accounts;\r\n this.contacts = this.resolve.contacts;\r\n this.employees = this.resolve.employees;\r\n this.taskStatuses = this.resolve.taskStatuses;\r\n }\r\n\r\n public save = () => {\r\n this.setUserName();\r\n\r\n if (this.task.id != undefined) {\r\n this.TasksService.put(this.task.id, this.task).then((task: ITask) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.TasksService.post(this.task).then((task: ITask) => {\r\n this.$state.go('^', { 'id': task.id });\r\n });\r\n }\r\n }\r\n\r\n setUserName() {\r\n var selectedUser = this.users.find(u => u.id === this.task.userId);\r\n if (selectedUser) {\r\n this.task.userName = selectedUser.userName;\r\n } else {\r\n this.task.userName = null;\r\n }\r\n }\r\n\r\n accountSelected() {\r\n this.AccountsService.getChild(this.task.accountId, 'locations').then((result: any) => {\r\n this.locations = result;\r\n // console.log(this.locations);\r\n });\r\n }\r\n\r\n locationSelected() {\r\n this.teams = this.locations.find(item => item.id === this.task.locationId).teams;\r\n }\r\n\r\n private closeModal() {\r\n this.$state.go('^', {}, { reload: true });\r\n }\r\n}\r\n\r\nexport const taskItemBasicComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: TaskItemBasicController,\r\n template: require('./task.item.basic.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/task.item.basic.component.ts","import * as angular from 'angular';\r\nimport { ITask, TasksService } from '../../services/tasks.service';\r\nimport { AuthUserService } from '../../authsettings/services/authusers.service';\r\n\r\nclass TaskItemController {\r\n private task: ITask;\r\n private tasksService: any;\r\n private userService: any;\r\n private isArchive: boolean;\r\n\r\n constructor(\r\n TasksService: TasksService,\r\n AuthUserService: AuthUserService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private $state: ng.ui.IStateService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n this.tasksService = TasksService;\r\n this.userService = AuthUserService;\r\n }\r\n\r\n public $onInit = () => {\r\n if (this.$stateParams['isArchive']) {\r\n this.isArchive = true;\r\n }\r\n }\r\n\r\n submitTask() {\r\n if (this.task.id == null) {\r\n this.saveTask();\r\n } else {\r\n this.tasksService.put(this.task.id, this.task);\r\n }\r\n }\r\n\r\n saveTask() {\r\n this.tasksService.post(this.task).then(result => {\r\n this.$state.go('hr.tasks.item', { 'id': result.id });\r\n });\r\n }\r\n\r\n deleteTask() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze medewerker wilt verwijderen?\\n Diensten en declaraties van de medewerker blijven onveranderd!',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.tasksService.delete(this.task.id);\r\n this.$state.go('^.list').then(() => { this.$state.reload(); });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const taskItemComponent = {\r\n bindings: {\r\n task: '<',\r\n },\r\n controller: TaskItemController,\r\n template: require('./task.item.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/task.item.component.ts","import { ITask } from \"../../services\";\r\n\r\nclass TaskListController implements ng.IComponentController {\r\n private sortType: string;\r\n private search: string;\r\n private tasks: ITask[];\r\n private filteredTasks: ITask[];\r\n private selectedStatus: string;\r\n\r\n constructor(private $filter: any) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.sortType = 'date';\r\n this.filter();\r\n }\r\n\r\n filter() {\r\n this.filteredTasks = this.$filter('filterBy')(this.tasks, ['taskStatusName'], this.selectedStatus);\r\n }\r\n}\r\n\r\nexport const taskListComponent = {\r\n bindings: {\r\n tasks: '<',\r\n taskStatuses: '<'\r\n },\r\n controller: TaskListController,\r\n template: require('./task.list.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/task.list.component.ts","import { TasksService } from '../../services/tasks.service';\r\nimport { AccountsService, EmployeesService, ContactsService } from '../../services';\r\nimport { AuthUserService } from '../../authsettings/services/authusers.service';\r\n\r\nexport const taskState: aboTheme.IState = {\r\n parent: 'app',\r\n name: \"tasks\",\r\n url: \"/tasks\",\r\n component: 'taskComponent',\r\n redirectTo: \"tasks.list\",\r\n data: {\r\n permissions: {\r\n only: ['BACKOFFICE'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\n\r\nexport const taskListState: aboTheme.IState = {\r\n name: \"tasks.list\",\r\n url: \"/list\",\r\n resolve: {\r\n tasks: (TasksService: TasksService) => { \"ngInject\"; return TasksService.all(); },\r\n taskStatuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('TaskStatus'); }\r\n },\r\n views: {\r\n \"main\": 'taskListComponent'\r\n },\r\n};\r\n\r\nexport const taskItemState = {\r\n name: \"tasks.item\",\r\n url: \"/:id\",\r\n params: {\r\n \"isArchive\": null\r\n },\r\n resolve: {\r\n task: (TasksService: TasksService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['id']) {\r\n return TasksService.get($stateParams['id']);\r\n }\r\n }\r\n },\r\n views: {\r\n \"main\": 'taskItemComponent'\r\n }\r\n};\r\n\r\nexport const taskItemBasicState: aboTheme.IState = {\r\n\r\n name: \"tasks.item.basic\",\r\n url: \"/basic\",\r\n modal: ['task'],\r\n resolve: {\r\n users: (EmployeesService: EmployeesService) => { 'ngInject'; return EmployeesService.gatBackoffice(); },\r\n accounts : (AccountsService: AccountsService) => { \"ngInject\"; return AccountsService.all(); },\r\n contacts: (ContactsService: ContactsService) => { 'ngInject'; return ContactsService.all(); }, \r\n employees : (EmployeesService: EmployeesService) => { \"ngInject\"; return EmployeesService.getEmployeesByStatus(); },\r\n taskStatuses : (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('TaskStatus'); }\r\n },\r\n component: 'taskItemBasicComponent'\r\n};\r\n\r\nexport const taskArchiveState: aboTheme.IState = {\r\n name: \"tasks.archive\",\r\n url: \"/archive\",\r\n resolve: {\r\n tasks: (TasksService: TasksService) => { \"ngInject\"; return TasksService.getArchive(); },\r\n },\r\n views: {\r\n \"main\": 'taskArchiveComponent'\r\n },\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/tasks/tasks.states.ts","import { EmployeesService } from '../../services/employees.service';\r\nimport { DeclarationService } from '../../services';\r\nimport { IDeclaration, IEmployee, Masterdata } from '../../services';\r\nimport * as moment from \"moment\";\r\n\r\ninterface IResolve {\r\n wageCodes: Masterdata[];\r\n declaration: IDeclaration;\r\n refresh: boolean;\r\n}\r\n\r\nclass DeclarationController {\r\n\r\n private resolve: IResolve;\r\n private declaration: IDeclaration;\r\n private wageCodes: Masterdata[];\r\n private calendarStartDate: any;\r\n private calendarEndDate: any;\r\n\r\n constructor(\r\n private DeclarationService: DeclarationService,\r\n private EmployeesService: EmployeesService,\r\n private $state: ng.ui.IStateService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private SweetAlert: any\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n public $onInit = () => {\r\n this.wageCodes = this.resolve.wageCodes;\r\n this.declaration = this.resolve.declaration;\r\n if (this.declaration) {\r\n this.declaration.dateTimeFrom = new Date(Date.parse(this.declaration.dateTimeFrom));\r\n this.declaration.dateTimeTo = new Date(Date.parse(this.declaration.dateTimeTo));\r\n } else {\r\n this.declaration = new IDeclaration();\r\n this.declaration.dateTimeFrom = this.$stateParams['shiftStartDate'];\r\n this.declaration.dateTimeTo = this.$stateParams['shiftEndDate'];\r\n this.declaration.shiftId = this.$stateParams['shiftId'];\r\n this.declaration.employeeId = this.$stateParams['employeeId'];\r\n this.declaration.registrationType = this.$stateParams['type'];\r\n this.declaration.status = 0;\r\n }\r\n }\r\n\r\n roundMinutes(date) {\r\n var coeff = 1000 * 60 * 15;\r\n return new Date(Math.round(date.getTime() / coeff) * coeff);\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n if (this.declaration.dateTimeFrom) {\r\n var activeDate = moment(this.declaration.dateTimeFrom).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n submitDeclaration() {\r\n if (this.declaration.registrationType == '1') {\r\n var duration = moment.duration(moment(this.declaration.dateTimeTo).diff(moment(this.declaration.dateTimeFrom))).asHours();\r\n\r\n this.declaration.dateTimeFrom = moment(this.declaration.dateTimeFrom).format(\"YYYY-MM-DD HH:mm\");\r\n this.declaration.dateTimeTo = moment(this.declaration.dateTimeTo).format(\"YYYY-MM-DD HH:mm\");\r\n\r\n if (duration > 6) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'In geval van pauzes, maak 2 declaraties aan.',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#2ECC71',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.saveDeclaration();\r\n } else { }\r\n });\r\n } else {\r\n this.saveDeclaration();\r\n }\r\n } else {\r\n if (!this.declaration.wageCodeId) {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Vul een type in',\r\n type: 'warning',\r\n confirmButtonColor: '#2ECC71',\r\n confirmButtonText: 'Ok',\r\n });\r\n } else {\r\n this.declaration.dateTimeFrom = null;\r\n this.declaration.dateTimeTo = null;\r\n this.saveDeclaration();\r\n }\r\n }\r\n \r\n }\r\n\r\n saveDeclaration() {\r\n if (!this.declaration.id) {\r\n this.DeclarationService.post(this.declaration).then((result: any) => {\r\n this.closeModal();\r\n });\r\n } else {\r\n this.DeclarationService.put(this.declaration.id, this.declaration).then(result => {\r\n this.closeModal();\r\n });\r\n }\r\n }\r\n\r\n wageCodeUpdated() {\r\n var wageCode = this.wageCodes.find(w => w.id == this.declaration.wageCodeId);\r\n this.declaration.wageCodeCode = (wageCode).code;\r\n }\r\n\r\n deleteDeclaration() {\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze declaration wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#d96557',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.DeclarationService.delete(this.declaration.id).then(() => {\r\n this.closeModal();\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n private closeModal() {\r\n if(this.resolve.refresh){\r\n this.$state.go('^', {\"openShiftId\": this.declaration.shiftId}, {reload: true});\r\n } else {\r\n this.$state.go('^', {\"openShiftId\": this.declaration.shiftId}, {reload: false});\r\n }\r\n }\r\n}\r\n\r\nexport const declarationComponent = { \r\n bindings: {\r\n resolve : \"<\",\r\n close: \"&\"\r\n },\r\n controller: DeclarationController,\r\n template: require('./declaration.html')\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/timesheets/declaration.component.ts","import { timesheetsDashboardState, timesheetsState, timesheetsDeclarationState, timesheetsOverviewState } from './timesheets.states';\r\nimport { timesheetsComponent } from './timesheets.component';\r\nimport { timesheetsDashboardComponent } from './timesheets.dashboard.component';\r\nimport { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { timesheetDetailsComponent } from \"./timesheetDetails.component\";\r\nimport { declarationComponent } from \"./declaration.component\";\r\nimport { timesheetsOverviewComponent } from \"./timesheetsOverview.component\";\r\nimport { timesheetsSummaryComponent } from './timesheetsSummary.component';\r\nconst quotationsAppModule: aboTheme.INgModule = {\r\n components: { timesheetsComponent, timesheetsDashboardComponent, timesheetDetailsComponent,\r\n declarationComponent, timesheetsOverviewComponent, timesheetsSummaryComponent },\r\n states: [ timesheetsState, timesheetsDashboardState, timesheetsDeclarationState,\r\n timesheetsOverviewState ],\r\n};\r\n\r\nloadNg1Module(ngmodule, quotationsAppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/timesheets/index.ts","import { IEmployee } from '../../services';\r\nimport { DeclarationService } from '../../services/declarations.service';\r\nimport * as moment from \"moment\";\r\n\r\nclass TimesheetDetailsController {\r\n timesheet: any;\r\n openShift: any;\r\n\r\n constructor(private $state: ng.ui.IStateService,\r\n private DeclarationService: DeclarationService,\r\n private SweetAlert: any,\r\n private $stateParams: ng.ui.IStateParamsService) {\r\n 'ngInject'; \r\n }\r\n\r\n public $onInit = () => {\r\n this.openShift = this.$stateParams['openShiftId'];\r\n\r\n this.timesheet.shifts.forEach(s => {\r\n if(s.declarations.length > 0) {\r\n s.declarationsApproved = true;\r\n s.declarations.forEach(d => {\r\n if (d.status != 3) {\r\n s.declarationsApproved = false;\r\n } \r\n });\r\n } else {\r\n s.declarationsApproved = false;\r\n }\r\n });\r\n }\r\n\r\n approve(shift) {\r\n shift.declarations.forEach(declaration => {\r\n \r\n if (!declaration.invoiceId && !declaration.sendToCootje) {\r\n if(!this.timesheet.employeeIsZZp || declaration.zzpInvoiceNumber.length > 0){\r\n declaration.status = 3;\r\n this.DeclarationService.put(declaration.id, declaration).then((result) => {\r\n declaration = result;\r\n shift.declarationsApproved = true;\r\n });\r\n } \r\n }\r\n });\r\n }\r\n\r\n reject(shift) {\r\n shift.declarations.forEach(declaration => {\r\n if (!declaration.invoiceId && !declaration.sendToCootje) {\r\n if(this.timesheet.employeeIsZZp && declaration.status > 0){\r\n declaration.status = 2;\r\n\r\n this.DeclarationService.put(declaration.id, declaration).then((result) => {\r\n declaration = result;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n isSameDay(start, end) {\r\n if (moment(start).toDate().getDate() == moment(end).toDate().getDate()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n deleteDeclaration(event, declaration, shift) {\r\n event.stopPropagation();\r\n\r\n this.SweetAlert.swal({\r\n title: 'Let op!',\r\n text: 'Weet u zeker dat u deze declaration wilt verwijderen?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#d96557',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Ja',\r\n cancelButtonText: 'Nee, annuleren',\r\n }, (isConfirm) => {\r\n if (isConfirm) {\r\n this.DeclarationService.item = declaration;\r\n this.DeclarationService.delete(declaration.id).then(() => {\r\n shift.declarations = shift.declarations.filter(d => d.id !== declaration.id);\r\n });\r\n } else {\r\n\r\n }\r\n });\r\n }\r\n\r\n isInvoiced(shift) {\r\n for(var i=0; i {\r\n this.moment = require('moment');\r\n\r\n this.sortType = 'employeeName';\r\n\r\n this.startDate = this.moment().startOf('isoweek').format(\"YYYY-MM-DD\");\r\n this.endDate = this.moment().endOf('isoweek').format(\"YYYY-MM-DD\");\r\n\r\n this.DeclarationService.subscribe('TimesheetsDashboardController', (type) => {\r\n var currentShift: IShift;\r\n switch (type) {\r\n case 'post': {\r\n currentShift = this.currentEmployee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n this.DeclarationService.get(this.DeclarationService.item.id).then((declaration) => {\r\n currentShift.declarations.push(declaration);\r\n this.updateShiftDeclarationsSummary(currentShift);\r\n });\r\n break;\r\n }\r\n case 'put': {\r\n currentShift = this.currentEmployee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n currentShift.declarations = currentShift.declarations.filter(s => s.id !== this.DeclarationService.item.id);\r\n \r\n this.DeclarationService.get(this.DeclarationService.item.id).then((declaration) => {\r\n currentShift.declarations.push(declaration);\r\n this.updateShiftDeclarationsSummary(currentShift);\r\n });\r\n break;\r\n }\r\n case 'delete': { \r\n currentShift = this.currentEmployee.shifts.find(s => s.id == this.DeclarationService.item.shiftId);\r\n this.updateShiftDeclarationsSummary(currentShift);\r\n break;\r\n }\r\n }\r\n });\r\n\r\n // this.getTimesheets();\r\n this.checkCompletionStatus();\r\n }\r\n\r\n // public $onChange = (change) => {\r\n // console.log(change);\r\n // }\r\n\r\n public $onDestroy = () => {\r\n this.DeclarationService.unsubscribe('TimesheetsDashboardController');\r\n }\r\n\r\n\r\n updateShiftDeclarationsSummary(currentShift) {\r\n // console.log('updateShiftDeclarationsSummary')\r\n this.ShiftService.customGet(this.DeclarationService.item.shiftId + '/shiftDeclarations').then((result) => {\r\n currentShift.plannedHours = result.plannedHours;\r\n currentShift.declaredHours = result.declaredHours;\r\n currentShift.hoursDifference = result.hoursDifference;\r\n\r\n this.EmployeesService.customGet(this.DeclarationService.item.employeeId + '/employeeSummary', {from: this.startDate, till: this.endDate}).then((result) => {\r\n this.currentEmployee.shiftHours = result.shiftHours;\r\n this.currentEmployee.shiftDeclarationHours = result.shiftDeclarationHours;\r\n });\r\n\r\n this.checkEmployeeCompletionsStatus(this.currentEmployee);\r\n });\r\n }\r\n\r\n startDateBeforeRender($dates) {\r\n }\r\n\r\n endDateBeforeRender($view, $dates) {\r\n if (this.startDate) {\r\n var activeDate = moment(this.startDate).subtract(1, $view).add(1, 'minute');\r\n\r\n $dates.filter(function (date) {\r\n return date.localDateValue() <= activeDate.valueOf();\r\n }).forEach(function (date) {\r\n date.selectable = false;\r\n });\r\n }\r\n }\r\n\r\n checkCompletionStatus() {\r\n this.employees.forEach(e => {\r\n this.checkEmployeeCompletionsStatus(e);\r\n });\r\n }\r\n\r\n checkEmployeeCompletionsStatus(employee) {\r\n // console.log('checkEmployeeCompletionsStatus')\r\n employee.doneShiftCount = employee.shifts.filter(s => s.declarations.length > 0).length;\r\n\r\n employee.declarationsApproved = true;\r\n employee.shifts.forEach(s => {\r\n s.declarations.forEach(d => {\r\n if (d.status != 3) {\r\n employee.declarationsApproved = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n getTimesheets() {\r\n this.EmployeesService.customAll('employeeSummary', {from: this.startDate, till: this.endDate}).then((result: Restangular.ICollection) => {\r\n this.employees = result;\r\n this.checkCompletionStatus();\r\n });\r\n }\r\n\r\n prevWeek() {\r\n this.startDate = this.moment(this.startDate).add(-7, 'day').format(\"YYYY-MM-DD\");\r\n this.endDate = this.moment(this.endDate).add(-7, 'day').format(\"YYYY-MM-DD\");\r\n this.currentEmployee = null;\r\n this.getTimesheets();\r\n }\r\n \r\n nextWeek() {\r\n this.startDate = this.moment(this.startDate).add(7, 'day').format(\"YYYY-MM-DD\");\r\n this.endDate = this.moment(this.endDate).add(7, 'day').format(\"YYYY-MM-DD\");\r\n this.currentEmployee = null;\r\n this.getTimesheets();\r\n }\r\n\r\n selectEmployee(item) {\r\n this.currentEmployee = item;\r\n }\r\n\r\n sendToNmbrs() {\r\n var start = this.startDate.getFullYear() + '-' + this.startDate.getMonth() + '-' + this.startDate.getDate();\r\n var end = this.endDate.getFullYear() + '-' + this.endDate.getMonth() + '-' + this.endDate.getDate();\r\n this.DeclarationService.customGet('pushtonmbrs', {from: start, till: end});\r\n }\r\n}\r\n\r\nexport const timesheetsDashboardComponent : ng.IComponentOptions = {\r\n controller: TimesheetsDashboardController,\r\n bindings: {\r\n employees: '='\r\n },\r\n template: require('./timesheets.dashboard.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/timesheets/timesheets.dashboard.component.ts","import { EmployeesService, DeclarationService } from \"../../services/index\";\r\n\r\nexport const timesheetsState: aboTheme.IState = {\r\n parent: \"app\",\r\n name: \"timesheets\",\r\n url: \"/timesheets\",\r\n redirectTo: \"timesheets.dashboard\",\r\n component: \"timesheetsComponent\",\r\n data: {\r\n permissions: {\r\n only: ['TIMESHEETS'],\r\n redirectTo: 'schedule'\r\n }\r\n }\r\n};\r\n\r\nexport const timesheetsDashboardState: aboTheme.IState = {\r\n\r\n name: \"timesheets.dashboard\",\r\n url: \"/dashboard\",\r\n resolve: { \r\n employees: (EmployeesService: EmployeesService, $stateParams: ng.ui.IStateParamsService) => { \r\n \"ngInject\"; \r\n var moment = require('moment');\r\n\r\n var startDate = moment().startOf('isoweek').toDate();\r\n var endDate = moment().endOf('isoweek').toDate();\r\n\r\n return EmployeesService.customAll('employeeSummary', {from: startDate, till: endDate});\r\n }\r\n },\r\n views: {\r\n \"main\": 'timesheetsDashboardComponent'\r\n }\r\n};\r\n\r\nexport const timesheetsOverviewState: aboTheme.IState = {\r\n\r\n name: \"timesheets.overview\",\r\n url: \"/overview?employeeId\",\r\n resolve: { \r\n },\r\n views: {\r\n \"main\": 'timesheetsOverviewComponent'\r\n },\r\n data: {\r\n permissions: {\r\n only: ['FINANCE'],\r\n redirectTo: 'timesheets'\r\n }\r\n }\r\n};\r\n\r\nexport const timesheetsDeclarationState: aboTheme.IState = {\r\n\r\n name: \"timesheets.dashboard.declaration\",\r\n url: \"/declaration/:declarationId?employeeId&shiftId&type&shiftStartDate&shiftEndDate\",\r\n params: {\r\n employeeId: null,\r\n shiftId: null,\r\n type: null,\r\n shiftStartDate: null,\r\n shiftEndDate: null\r\n },\r\n modal: true,\r\n resolve: {\r\n wageCodes: (MasterdataService: aboMasterdata.IService) => { \"ngInject\"; return MasterdataService.getItems('HourCodes'); },\r\n declaration: (DeclarationService: DeclarationService, $stateParams: ng.ui.IStateParamsService) => {\r\n \"ngInject\";\r\n if ($stateParams['declarationId']) {\r\n return DeclarationService.get($stateParams['declarationId']);\r\n }\r\n },\r\n },\r\n component: 'declarationComponent'\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/timesheets/timesheets.states.ts","import { DeclarationService } from '../../services';\r\nimport { EmployeesService } from \"../../services/index\";\r\nimport * as moment from 'moment';\r\nimport * as signalR from '@aspnet/signalr/dist/browser/signalr.min.js';\r\nimport env from '../../config';\r\nimport { NotificationItemModel } from '../shared/notificationItem.model';\r\nimport { EnumService } from '../../services/enum.service';\r\n\r\nclass TimesheetsOverviewController implements ng.IComponentController {\r\n inprogress: boolean;\r\n currentNotification: any;\r\n progresscounter: { currentValue: any; totalValue: any; percentage: number; };\r\n _hubConnection: any;\r\n\r\n private sortType: string;\r\n private moment: any;\r\n private months: any = [];\r\n private currentMonth: any;\r\n private employees: any[];\r\n private summary: any;\r\n // _hubConnection: HubConnection;\r\n notifications: NotificationItemModel[] = [];\r\n progressNotifications: NotificationItemModel[] = [];\r\n\r\n constructor(private EmployeesService: EmployeesService,\r\n private $stateParams: ng.ui.IStateParamsService,\r\n private DeclarationService: DeclarationService,\r\n private EnumService: EnumService,\r\n private $scope: ng.IScope\r\n ) {\r\n 'ngInject';\r\n }\r\n\r\n $onInit = () => {\r\n this.sortType = 'account.name';\r\n this.moment = require('moment');\r\n\r\n if (this.moment().subtract(1, 'year').format('YYYY') < 2020) {\r\n for (var i = 11; i <= 13; i++) {\r\n this.months.push({\r\n index: i,\r\n startDate: this.moment().subtract(1, 'year').startOf('year').add((i - 1) * 4, 'weeks').startOf('isoweek').toDate(),\r\n endDate: this.moment().subtract(1, 'year').startOf('year').add((i - 1) * 4 + 3, 'weeks').endOf('isoweek').toDate(),\r\n year: this.moment().subtract(1, 'year').format('YYYY'),\r\n month: i\r\n });\r\n }\r\n this.months.find(m => m.month == 13 && m.year == 2019).endDate = this.moment('2019-12-02').endOf('month').toDate();\r\n } else {\r\n for (var i = 9; i <= 11; i++) {\r\n this.months.push({\r\n index: i,\r\n startDate: this.moment().subtract(1, 'year').startOf('year').add(i, 'months').toDate(),\r\n endDate: this.moment().subtract(1, 'year').startOf('year').add(i, 'months').endOf('month').toDate(),\r\n year: this.moment().subtract(1, 'year').format('YYYY'),\r\n month: this.moment().subtract(1, 'year').startOf('year').add(i, 'months').format('M')\r\n });\r\n }\r\n }\r\n\r\n if (this.moment().format('YYYY') < 2020) {\r\n for (var i = 1; i <= 13; i++) {\r\n this.months.push({\r\n index: i,\r\n startDate: this.moment().startOf('year').add((i - 1) * 4, 'weeks').startOf('isoweek').toDate(),\r\n endDate: this.moment().startOf('year').add((i - 1) * 4 + 3, 'weeks').endOf('isoweek').toDate(),\r\n year: this.moment().format('YYYY'),\r\n month: i\r\n });\r\n }\r\n this.months.find(m => m.month == 13 && m.year == 2019).endDate = this.moment('2019-12-02').endOf('month').toDate();\r\n } else {\r\n\r\n for (var i = 0; i <= 11; i++) {\r\n this.months.push({\r\n index: i,\r\n startDate: this.moment().startOf('year').add(i, 'months').toDate(),\r\n endDate: this.moment().startOf('year').add(i, 'months').endOf('month').toDate(),\r\n year: this.moment().format('YYYY'),\r\n month: this.moment().startOf('year').add(i, 'months').format('M')\r\n });\r\n }\r\n }\r\n\r\n this.currentMonth = this.months.find(m => m.month == this.moment().format('M') && m.year == this.moment().format('YYYY'))\r\n\r\n this.initHubConnection();\r\n }\r\n\r\n initHubConnection() {\r\n // console.log('initHubConnection');\r\n this._hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(env.BASE_URL + 'notification')\r\n .build();\r\n //this._hubConnection = new HubConnection(env.BASE_URL + 'notification');\r\n this._hubConnection.on('Notify', (notificationItem: NotificationItemModel) => {\r\n // console.log('event');\r\n // console.log(notificationItem);\r\n this.notify(notificationItem);\r\n\r\n });\r\n // console.log('Hello ._hubConnection.start');\r\n this._hubConnection.start()\r\n .then(() => {\r\n // console.log('Hub connection started');\r\n })\r\n .catch((reason) => {\r\n // console.log('Error while establishing connection');\r\n // console.log(reason);\r\n });\r\n }\r\n\r\n notify(notificationItem) {\r\n switch (notificationItem.notificationType) {\r\n case 1:\r\n //Start\r\n this.$scope.$apply(() => {\r\n this.currentNotification = notificationItem;\r\n this.inprogress = true;\r\n this.notifications.push(notificationItem);\r\n });\r\n break;\r\n case 2:\r\n //Progress\r\n this.inprogress = true;\r\n var percentage = (notificationItem.currentValue / notificationItem.totalValue) * 100;\r\n this.progresscounter = { currentValue: notificationItem.currentValue, totalValue: notificationItem.totalValue, percentage: percentage };\r\n this.currentNotification = notificationItem;\r\n this.$scope.$apply(() => {\r\n this.progressNotifications.push(notificationItem);\r\n });\r\n break;\r\n case 3:\r\n //Information\r\n this.$scope.$apply(() => {\r\n this.currentNotification = notificationItem;\r\n this.notifications.push(notificationItem);\r\n });\r\n break;\r\n case 4:\r\n //Finish\r\n this.$scope.$apply(() => {\r\n this.currentNotification = notificationItem;\r\n this.notifications.push(notificationItem);\r\n this.inprogress = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n getTimesheets() {\r\n var start = moment(this.currentMonth.startDate).format('YYYY-MM-DD');\r\n var end = moment(this.currentMonth.endDate).format('YYYY-MM-DD');\r\n this.EmployeesService.customAll('employeeSummary', { from: start, till: end }).then((result: Restangular.ICollection) => {\r\n this.employees = result;\r\n this.getCompletionData();\r\n });\r\n }\r\n\r\n getCompletionData() {\r\n // console.log('getCompletionData')\r\n this.summary = {};\r\n this.summary.scheduledHours = 0;\r\n this.summary.scheduledShiftsCount = 0;\r\n this.summary.declaredHours = 0;\r\n this.summary.declaredShiftsCount = 0;\r\n this.summary.approvedHours = 0;\r\n this.summary.approvedShiftsCount = 0;\r\n\r\n this.employees.forEach(e => {\r\n e.approvedShiftCount = 0;\r\n e.approvedShiftHours = 0;\r\n e.declarationsApproved = true;\r\n\r\n e.doneShiftCount = e.shifts.filter(s => s.declarations.length > 0).length;\r\n\r\n e.shifts.forEach(s => {\r\n if (s.declarations.length > 0) {\r\n this.summary.declaredShiftsCount++;\r\n if (s.declarations.filter(d => d.status != 3).length == 0) {\r\n e.approvedShiftCount++;\r\n }\r\n }\r\n\r\n s.declarations.forEach(d => {\r\n this.summary.declaredHours += d.duration;\r\n if (d.status == 3) {\r\n e.approvedShiftHours += d.duration;\r\n } else {\r\n e.declarationsApproved = false;\r\n }\r\n });\r\n });\r\n\r\n this.summary.scheduledHours += e.shiftHours;\r\n this.summary.scheduledShiftsCount += e.shiftCount;\r\n this.summary.approvedHours += e.approvedShiftHours;\r\n this.summary.approvedShiftsCount += e.approvedShiftCount;\r\n });\r\n\r\n this.summary.scheduledHours = this.summary.scheduledHours.toFixed(2);\r\n this.summary.scheduledShiftsCount = this.summary.scheduledShiftsCount.toFixed(2);\r\n this.summary.declaredHours = this.summary.declaredHours.toFixed(2);\r\n this.summary.declaredShiftsCount = this.summary.declaredShiftsCount.toFixed(2);\r\n this.summary.approvedHours = this.summary.approvedHours.toFixed(2);\r\n this.summary.approvedShiftsCount = this.summary.approvedShiftsCount.toFixed(2);\r\n }\r\n\r\n sendToNmbrs() {\r\n var start = moment(this.currentMonth.startDate).format('YYYY-MM-DD');\r\n var end = moment(this.currentMonth.endDate).format('YYYY-MM-DD');\r\n\r\n // lil hack here, so they bill the last period in 2019 correctly\r\n if (start == '2019-01-01')\r\n start = '2019-01-02';\r\n\r\n ($('#notificationModal')).modal({ backdrop: 'static', keyboard: false });\r\n\r\n if (!this.inprogress) {\r\n this.DeclarationService.customGet('pushtonmbrs', { from: start, till: end }).then(() => {\r\n ($('#notificationModal')).modal('show');\r\n });\r\n } else {\r\n ($('#notificationModal')).modal('show');\r\n }\r\n }\r\n}\r\n\r\nexport const timesheetsOverviewComponent: ng.IComponentOptions = {\r\n controller: TimesheetsOverviewController,\r\n template: require('./timesheetsOverview.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/timesheets/timesheetsOverview.component.ts","import { IEmployee } from '../../services/employees.service';\r\n\r\nclass TimesheetsSummaryController implements ng.IComponentController {\r\n summary: any;\r\n employees: IEmployee[];\r\n\r\n constructor() {\r\n 'ngInject';\r\n }\r\n\r\n $onChanges = () => {\r\n // console.log('TimesheetsSummaryController')\r\n this.getCompletionData();\r\n }\r\n\r\n getCompletionData() {\r\n // console.log('getCompletionData')\r\n this.summary = {};\r\n this.summary.scheduledHours = 0;\r\n this.summary.scheduledShiftsCount = 0;\r\n this.summary.declaredHours = 0;\r\n this.summary.declaredShiftsCount = 0;\r\n this.summary.approvedHours = 0;\r\n this.summary.approvedShiftsCount = 0;\r\n this.summary.canceledShiftsCount = 0;\r\n this.summary.sickShiftsCount = 0;\r\n this.summary.canceledShiftsHours = 0;\r\n this.summary.sickShiftsHours = 0;\r\n\r\n this.employees.forEach(e => {\r\n e.approvedShiftCount = 0;\r\n e.approvedShiftHours = 0;\r\n e.declarationsApproved = true;\r\n\r\n e.doneShiftCount = e.shifts.filter(s => s.declarations.length > 0).length;\r\n\r\n e.shifts.forEach(s => {\r\n if (s.declarations.length > 0) {\r\n this.summary.declaredShiftsCount++; \r\n if (s.declarations.filter(d => d.status != 3).length == 0) {\r\n e.approvedShiftCount++;\r\n }\r\n }\r\n\r\n s.declarations.forEach(d => {\r\n this.summary.declaredHours += d.duration;\r\n if (d.status == 3) {\r\n e.approvedShiftHours += d.duration;\r\n } else {\r\n e.declarationsApproved = false;\r\n }\r\n });\r\n });\r\n\r\n this.summary.scheduledHours += e.shiftHours;\r\n this.summary.scheduledShiftsCount += e.shiftCount;\r\n this.summary.approvedHours += e.approvedShiftHours;\r\n this.summary.approvedShiftsCount += e.approvedShiftCount;\r\n this.summary.canceledShiftsCount += e.shiftCanceledCount;\r\n this.summary.sickShiftsCount += e.shiftSickCount;\r\n this.summary.canceledShiftsHours += e.shiftCanceledHours;\r\n this.summary.sickShiftsHours += e.shiftSickHours;\r\n\r\n \r\n });\r\n\r\n this.summary.scheduledHours = this.summary.scheduledHours.toFixed(2);\r\n this.summary.scheduledShiftsCount = this.summary.scheduledShiftsCount.toFixed(2);\r\n this.summary.declaredHours = this.summary.declaredHours.toFixed(2);\r\n this.summary.declaredShiftsCount = this.summary.declaredShiftsCount.toFixed(2);\r\n this.summary.approvedHours = this.summary.approvedHours.toFixed(2);\r\n this.summary.approvedShiftsCount = this.summary.approvedShiftsCount.toFixed(2);\r\n\r\n this.summary.canceledShiftsCount = this.summary.canceledShiftsCount.toFixed(2);\r\n this.summary.sickShiftsCount = this.summary.sickShiftsCount.toFixed(2);\r\n this.summary.canceledShiftsHours = this.summary.canceledShiftsHours.toFixed(2);\r\n this.summary.sickShiftsHours = this.summary.sickShiftsHours.toFixed(2);\r\n }\r\n}\r\n\r\nexport const timesheetsSummaryComponent : ng.IComponentOptions = {\r\n controller: TimesheetsSummaryController,\r\n bindings: {\r\n employees: '<'\r\n },\r\n template: require('./timesheetsSummary.html')\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/timesheets/timesheetsSummary.component.ts","import { loadNg1Module, ngmodule } from \"../../bootstrap/ngmodule\";\r\nimport { TwinfieldService } from \"../../services/twinfield.service\";\r\nimport { twinfieldOAuthCallbackComponent } from './twinfield.component';\r\nimport { twinfieldState } from \"./twinfield.states\";\r\n\r\nconst twinfieldAppModule: aboTheme.INgModule = {\r\n components: {\r\n twinfieldOAuthCallbackComponent\r\n },\r\n services: {\r\n TwinfieldService,\r\n },\r\n states: [twinfieldState],\r\n};\r\n\r\nloadNg1Module(ngmodule, twinfieldAppModule);\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/twinfield/index.ts","import { TwinfieldService } from \"../../services/twinfield.service\";\r\n\r\ninterface ITwinfieldScope extends ng.IScope {\r\n redirectTo: string;\r\n status: boolean;\r\n}\r\n\r\nclass TwinfieldOAuthCallbackController implements ng.IComponentController {\r\n\r\n /**\r\n * Constructor\r\n *\r\n * @return {void}\r\n */\r\n\r\n constructor(\r\n private TwinfieldService: TwinfieldService,\r\n public $scope: ITwinfieldScope,\r\n private localStorageService: ng.local.storage.ILocalStorageService\r\n ){\r\n 'ngInject';\r\n }\r\n\r\n /**\r\n * Initiator\r\n *\r\n * @return {void}\r\n */\r\n\r\n public $onInit = () => {\r\n\r\n /** Send code to API on oAuth2 callback */\r\n\r\n if( this.getParameter('code') ){\r\n\r\n this.TwinfieldService.setToken( this.getParameter('code') ).then(( status:any ) => {\r\n\r\n this.$scope.status = status == 'true'; console.log( 'token: set ' + this.$scope.status ); this.redirect();\r\n\r\n }).catch(() => { \r\n \r\n this.$scope.status = false; this.redirect(); });\r\n\r\n /** Or redirect to app */\r\n\r\n } else {\r\n\r\n this.redirect();\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Get URI parameters\r\n *\r\n * @param {string} parameter\r\n * @return {mixed} Value or false\r\n */\r\n\r\n private getParameter = ( parameter: string ) => {\r\n\r\n const url = window.location.href;\r\n const regex = new RegExp( '^.*[\\?\\&]{1}' + parameter + '=' );\r\n const value = url.match( regex ) ? url.replace( regex, '' ).replace( /(\\&.+)?$/, '' ) : false;\r\n\r\n return value; }\r\n\r\n /**\r\n * Redirect after Twinfield token\r\n *\r\n * @return {void}\r\n */\r\n\r\n private redirect = () => {\r\n\r\n /** Set twinfield URI nonces */\r\n\r\n let defaultUri: string = '/app';\r\n let redirectTo: string = this.localStorageService.get( 'twinfieldRedirect' ) || defaultUri;\r\n\r\n /** Log */\r\n\r\n console.log( 'redirectTo: ' + redirectTo );\r\n\r\n /** Redirect */\r\n\r\n if( parent.location.pathname !== redirectTo.replace( /\\/*\\?+.*$/, '' ) ){\r\n\r\n /** Reset to prevent loop */\r\n \r\n this.localStorageService.set( 'twinfieldRedirect', defaultUri ); \r\n\r\n /** Redirect */\r\n \r\n parent.location.href = redirectTo; } }\r\n\r\n}\r\n\r\nexport const twinfieldOAuthCallbackComponent: ng.IComponentOptions = {\r\n\r\n controller: TwinfieldOAuthCallbackController,\r\n template: require('./twinfield.html')\r\n\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/twinfield/twinfield.component.ts","\r\nexport const twinfieldState: aboTheme.IState = {\r\n parent: 'app',\r\n name: \"twinfield\",\r\n url: \"/twinfield\",\r\n component: 'twinfieldOAuthCallbackComponent'\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/modules/twinfield/twinfield.states.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\nexport class IAccountEmployee extends BaseEntity {\r\n dateTimeTo: any;\r\n accountId: string;\r\n employeeId: string;\r\n employeeDisplayName: string;\r\n}\r\n\r\nexport class AccountEmployeeService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/AccountEmployees');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/accountEmployee.service.ts","import { EnumService } from './enum.service';\r\nimport { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\nimport { IContact } from \"./contacts.service\";\r\nimport * as _ from \"lodash\";\r\n\r\nexport class IAccount {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport class AccountsService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService, private EnumService: EnumService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/accounts');\r\n }\r\n\r\n public getContacts = (id) : ng.IPromise => {\r\n return this.one(id).all('contacts').getList().then((result: any) => {\r\n let contacts = result.value;\r\n contacts.forEach(item => {\r\n item.name = item.firstName + ' ' + item.lastName;\r\n });\r\n return contacts.plain();\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/accounts.service.ts","import { BaseService, IGetList } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class IApplicantStatusHistory {\r\n id: string;\r\n newStatus: string;\r\n description: string;\r\n date: any;\r\n applicantId: string;\r\n}\r\n\r\nexport class ApplicantStatusHistoryService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'hr/applicantStatusHistory');\r\n }\r\n\r\n public getPerApplicant = (applicantId : number | string): ng.IPromise => {\r\n return this.Restangular.all(this.itemName).customGET('', {\"applicantId\" : applicantId }).then((response: Restangular.ICollection) => {\r\n return this.getListLoaded(response.plain());\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/applicantStatusHistory.service.ts","import { BaseService, IGetList } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseEntity } from '../base/base.entity';\r\nimport * as angular from 'angular';\r\nimport { IBlob } from '.';\r\n\r\nexport class IApplicant extends BaseEntity {\r\n name: string;\r\n email: string;\r\n phoneNumber: string;\r\n city: string;\r\n age: number;\r\n functionId: string;\r\n functionName: string;\r\n date: any;\r\n preferredTargetAudienceId: string;\r\n preferredTargetAudienceName: string;\r\n jobOffer: string;\r\n iKnowOperandoFrom: string;\r\n firstStatusDate: any;\r\n lastStatusDate: any;\r\n applicationStatusId: string;\r\n applicationStatusName: string;\r\n recruiter: string;\r\n employeeId: string;\r\n userName: string;\r\n userId: string;\r\n zzp: boolean;\r\n inactive : boolean;\r\n}\r\n\r\nexport class ApplicantsService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'hr/applicant');\r\n }\r\n\r\n public postBlob(id, file: any): ng.IPromise {\r\n\r\n // Create FormData to send in the request\r\n var formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n return this.Restangular.one('hr/applicant', id)\r\n .withHttpConfig({ transformRequest: angular.identity })\r\n .customPOST(formData, 'blobs', undefined, { 'Content-Type': undefined })\r\n .then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n this.item = item.plain();\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n public getBlobs(id): ng.IPromise> {\r\n return this.Restangular.one('hr/applicant', id).all('blobs').customGET('').then((collection: Restangular.ICollection) => {\r\n return collection.plain();\r\n })\r\n }\r\n\r\n public deleteBlob(id, blobid): ng.IPromise {\r\n return this.Restangular.one('hr/applicant', id).customDELETE('/blobs/'+ blobid).then((res) => {\r\n return res;\r\n })\r\n }\r\n\r\n public getBlob(id, blobid):any {\r\n\r\n\r\n // this.Restangular.setFullResponse(true);\r\n // return this.Restangular.one('hr/applicant', id).one('blobs', blobid).customGET('', {}, { responseType: 'blob'}).then((response) => {\r\n // console.log(response);\r\n // const link = document.createElement('a');\r\n // link.href = URL.createObjectURL(response);\r\n // link.download = 'test.doc';\r\n // link.click();\r\n // return new Blob(response.data, { type: response.headers('Content-Type') });\r\n // })\r\n }\r\n\r\n public getArchive = (queryParams = null) => {\r\n return this.Restangular.all(this.itemName).customGET('archive').then((list: Restangular.ICollection) => {\r\n this.list = list.plain().value;\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/applicants.service.ts","import { AuthUserService } from '../authsettings/services/authusers.service';\r\nimport { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class IContact {\r\n id: string;\r\n accountId: string;\r\n accountName: string;\r\n firstName: string;\r\n middleName: string;\r\n lastName: string;\r\n name: string;\r\n emailAddress: string;\r\n userId: string;\r\n tags: string[];\r\n}\r\n\r\nexport class ContactsService extends BaseService {\r\n constructor(\r\n Restangular: Restangular.IService, \r\n protected AppService: AppService,\r\n protected AuthUserService: AuthUserService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/contacts');\r\n }\r\n\r\n public deleteAccount(authUser, contact): ng.IPromise {\r\n // console.log('ContactsService deleteAccount');\r\n return this.AuthUserService.delete(authUser.id).then(() => {\r\n contact.userId = \"\";\r\n return this.put(contact.id, contact).then((item) => {\r\n // console.log(contact);\r\n // console.log('Account removed');\r\n return item;\r\n });\r\n });\r\n }\r\n\r\n public createAccount(authUser, contact): ng.IPromise {\r\n authUser.email = contact.emailAddress;\r\n authUser.userName = contact.emailAddress;\r\n authUser.roles = ['customer'];\r\n authUser.claims = {\r\n \"displayName\": contact.firstName + contact.lastName,\r\n \"customerId\": contact.accountId\r\n };\r\n return this.AuthUserService.post(authUser).then((response) => {\r\n contact.userId = response.id;\r\n return this.put(contact.id, contact).then((item) => {\r\n // console.log('Account created');\r\n return item;\r\n });\r\n });\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/contacts.service.ts","import { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class IDashboard {\r\n id: string;\r\n accountId: string;\r\n firstName: string;\r\n middleName: string;\r\n lastName: string;\r\n}\r\n\r\nexport class DashboardService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'dashboard');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/dashboard.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class IDeclaration extends BaseEntity {\r\n shiftId: string;\r\n employeeId: string;\r\n name: string;\r\n dateTimeFrom: any;\r\n dateTimeTo: any;\r\n status: number;\r\n registrationType: string;\r\n wageCodeId: string;\r\n wageCodeCode: string;\r\n duration: number;\r\n}\r\n\r\nexport class DeclarationService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'declaration');\r\n }\r\n\r\n public confirm(data): ng.IPromise {\r\n return this.Restangular.all(this.itemName).one('confirm').customPOST(data).then((item) => {\r\n return item;\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/declarations.service.ts","import { IShift } from './';\r\nimport { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseEntity } from '../base/base.entity';\r\nimport { AuthUserService } from '../authsettings/services/authusers.service';\r\n\r\nexport class IEmployee {\r\n id: string;\r\n nmbrsId: number;\r\n firstName: string;\r\n lastName: string;\r\n displayName: string;\r\n emailPrivate: string;\r\n lines: Array;\r\n notes: string;\r\n shifts: IShift[];\r\n shiftCount: number;\r\n shiftHours: number;\r\n shiftDeclarationHours: number;\r\n doneShiftCount: number;\r\n approvedShiftCount: number;\r\n approvedShiftHours: number;\r\n declarationsApproved: boolean;\r\n userId: any;\r\n tags: string[];\r\n birthday? : string;\r\n userName: string; \r\n inactive: boolean;\r\n shiftCanceledCount: number;\r\n shiftSickCount: number;\r\n shiftCanceledHours: number;\r\n shiftSickHours: number;\r\n telephoneMobilePrivate: string;\r\n}\r\n\r\nexport class IEmployeeSubscription extends BaseEntity {\r\n shiftId: string | number;\r\n employeeId?: string;\r\n comment: string;\r\n}\r\n\r\nexport class EmployeesService extends BaseService {\r\n constructor(\r\n Restangular: Restangular.IService,\r\n protected AppService: AppService,\r\n protected AuthUserService: AuthUserService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'hr/employee');\r\n }\r\n\r\n public getEmployeesByStatus(active: boolean = true): ng.IPromise {\r\n var type = '';\r\n if (active) {\r\n type = 'active';\r\n } else {\r\n type = 'inactive';\r\n }\r\n return this.Restangular.all(this.itemName).customGET('', { 'limit': 5000, 'type': type }).then((response: Restangular.ICollection) => {\r\n this.list = response.plain().value;\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n\r\n public getIsZZP(): ng.IPromise {\r\n return this.Restangular.all(this.itemName).one('iszzp').get().then((item) => {\r\n\r\n var e = item.result;\r\n\r\n return {\"zzp\" : e.zzp, \"invoiceMonthly\" : e.incoiceMonthly}\r\n\r\n });\r\n }\r\n\r\n public deleteAccount(authUser, employee): ng.IPromise {\r\n // console.log('EmployeesService deleteAccount');\r\n return this.AuthUserService.delete(authUser.id).then(() => {\r\n employee.userId = \"\";\r\n return this.put(employee.id, employee).then((item) => {\r\n // console.log('Account removed');\r\n return item;\r\n });\r\n });\r\n }\r\n\r\n public createAccount(authUser, employee): ng.IPromise {\r\n authUser.email = employee.emailPrivate;\r\n authUser.userName = employee.emailPrivate;\r\n employee.username = authUser.userName;\r\n authUser.roles = ['employee'];\r\n authUser.claims = {\r\n \"displayName\": employee.displayName,\r\n \"employeeId\": employee.id\r\n };\r\n return this.AuthUserService.post(authUser).then((response) => {\r\n employee.userId = response.id;\r\n return this.put(employee.id, employee).then((item) => {\r\n // console.log('Account created');\r\n return item;\r\n });\r\n });\r\n }\r\n\r\n public refresh = (id) => {\r\n return this.Restangular.one('hr/employee', id.toString()).one('refreshFromNmbrs', 'true').get().then((item) => {\r\n this.item = item;\r\n return item.plain();\r\n });\r\n }\r\n\r\n public refreshAll = () => {\r\n return this.Restangular.all('nmbrs/employeeupdate').getList().then((items: Restangular.ICollection) => {\r\n return items.plain();\r\n });\r\n }\r\n\r\n public getSubscriptions = () => {\r\n return this.Restangular.all('hr/employee/subscriptions').getList().then((subscriptions: Restangular.ICollection) => {\r\n return subscriptions.plain();\r\n })\r\n }\r\n\r\n public getAvailability = () => {\r\n return this.Restangular.all('hr/employee/availability').getList().then((availability: Restangular.ICollection) => {\r\n return availability.plain();\r\n })\r\n }\r\n\r\n public getAvailabilityByRange = (start, end) => {\r\n return this.Restangular.all('hr/employee/availabilityByRange').getList({start: start, end: end }).then((availability: Restangular.ICollection) => {\r\n return availability.plain();\r\n })\r\n }\r\n\r\n public postSubscription = (data: IEmployeeSubscription) => {\r\n return this.Restangular.all('hr/employee/subscriptions').post(data).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n public putSubscription = (data: IEmployeeSubscription) => {\r\n return this.Restangular.one('hr/employee/subscriptions', data.id.toString()).customPUT(data).then((item: Restangular.IElement) => {\r\n this.AppService.NotifyService.success('Opgeslagen', 'De gegevens zijn opgeslagen');\r\n return item.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n\r\n public gatBackoffice = () => {\r\n return this.Restangular.all('hr/employee/backoffice').getList().then((list: Restangular.ICollection) => {\r\n return list.plain();\r\n })\r\n .catch((error) => {\r\n this.AppService.NotifyService.error('Foutmelding', error.data);\r\n return error;\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/employees.service.ts","export class EnumService {\r\n\r\n public accountTypes = [\r\n \"Leverancier\",\r\n \"Relatie\",\r\n \"Gemeente\",\r\n \"Uitzendbureau\",\r\n \"Opdrachtgever\"\r\n ]\r\n\r\n public contactTypes = [\r\n \"backoffice\",\r\n \"employee\"\r\n ]\r\n\r\n public employeeTypes = [\r\n \"Student\",\r\n \"Kantoormedewerker\",\r\n \"Medewerker\",\r\n \"Solicitant\"\r\n ]\r\n\r\n public monthsOfTheYear = [\r\n \"januari\",\r\n \"februari\",\r\n \"maart\",\r\n \"april\",\r\n \"mei\",\r\n \"juni\",\r\n \"juli\",\r\n \"augustus\",\r\n \"september\",\r\n \"oktober\",\r\n \"november\",\r\n \"december\",\r\n ]\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/enum.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class IInvoice extends BaseEntity {\r\n name: string;\r\n totalAmount: number;\r\n lines: IInvoiceLine[];\r\n hasUnpaid: boolean = false;\r\n twinfieldNumber: number;\r\n}\r\n\r\nexport class IInvoiceLine extends BaseEntity {\r\n description: string;\r\n count: number;\r\n amountPerUnit: number;\r\n totalAmount: number;\r\n}\r\n\r\nexport class InvoicesService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'finance/invoice');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/invoices.service.ts","\r\nimport { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class ILead {\r\n id: string;\r\n}\r\n\r\nexport class LeadsService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/leads');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/leads.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class Masterdata extends BaseEntity {\r\n id: string;\r\n name: string;\r\n code: string;\r\n type: string;\r\n}\r\n\r\nexport class MasterdataAService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'masterdata');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/masterdata.service.ts","import { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\nexport class NmbrsService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'nmbrs');\r\n }\r\n\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/nmbrs.service.ts","import { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class INote {\r\n id: string;\r\n tags: string[];\r\n endDate: any;\r\n accountName?: string;\r\n employeeDisplayName?: string;\r\n applicantName?: string;\r\n applicantId?: string;\r\n}\r\n\r\nexport class NotesService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/notes');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/notes.service.ts","import { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\nexport class SettingsService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'settings');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/settings.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\n\r\nexport class IStaff extends BaseEntity {\r\n name: string;\r\n email: string;\r\n phoneNumber: string;\r\n}\r\n\r\nexport class StaffService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'hr/staffmember');\r\n }\r\n\r\n public getUser = (id) => {\r\n return this.customGet( id + '/user').then((item: any) => {\r\n return item;\r\n });\r\n }\r\n\r\n public createUser = (id, user) => {\r\n return this.customPost( id + '/user', user).then((item: any) => {\r\n return item;\r\n });\r\n }\r\n\r\n public deleteUser = (id) => {\r\n return this.customDelete( id + '/user').then((item: any) => {\r\n return item;\r\n });\r\n }\r\n\r\n public getRoles = (id) => {\r\n return this.customGet( id + '/roles').then((item: any) => {\r\n return item;\r\n });\r\n }\r\n\r\n public putRoles = (id, roles) => {\r\n return this.customPut( id + '/roles', {roles: roles}).then((item: any) => {\r\n return item;\r\n });\r\n }\r\n\r\n public putPassword = (id, password) => {\r\n return this.customPut( id + '/password', {password: password}).then((item: any) => {\r\n return item;\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/staff.service.ts","\r\nimport { BaseService } from '../base/base.service';\r\nimport { AppService } from '../main/app.service';\r\n\r\nexport class ITask {\r\n id: string;\r\n name: string;\r\n description: string;\r\n tags: string[];\r\n endDate: any;\r\n userId: string;\r\n userName: string;\r\n accountId: string;\r\n locationId: string;\r\n teamId: string;\r\n contactId: string;\r\n employeeId: string;\r\n}\r\n\r\nexport class TasksService extends BaseService {\r\n constructor(Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'crm/Tasks');\r\n }\r\n\r\n public getArchive = (queryParams = null) => {\r\n return this.Restangular.all(this.itemName).customGET('archive', queryParams).then((list: Restangular.ICollection) => {\r\n this.list = list.plain().value;\r\n return this.listLoaded(this.list);\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/tasks.service.ts","import { BaseEntity } from '../base/base.entity';\r\nimport { AppService } from '../main/app.service';\r\nimport { BaseService } from '../base/base.service';\r\n\r\nexport class TemplatesService extends BaseService {\r\n \r\n constructor(protected Restangular: Restangular.IService, protected AppService: AppService) {\r\n \"ngInject\";\r\n super(Restangular, AppService, 'emails');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/templates.service.ts"],"sourceRoot":""}