{"version":3,"file":"js/application-991359098b4c533a211d.js","mappings":"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AIruB,GAAWse,EAAM+P,KAAO,IACjD,IACCzf,UACA2P,OACA7f,OACL,GACF,CAEOojE,2BAAAA,CAA4BlgB,GAC5BA,EAAoBxU,YAEzBwU,EAAoBxU,WAAWhtC,mBAAmB7I,MAAMyF,IACtD9G,KAAK8b,UAAS,IAAM4vC,EAAoBxU,WAAWpwC,YAAcA,GAAY,GAEjF,EA5EOukE,GAAA9pE,QAAU,CACf,iBACA,WACA,8BACA,iBACD,UChBHjC,QAAQC,OAAO,oCAAoCC,UAAU,0BAA2B,CACtFC,SAAU,CACR2vC,OAAQ,KAEVvvC,S,6uNACAC,WAAYurE,K,qCC4Gd/rE,QACGC,OAAO,MAAO,CACb,UACA,eACA,YACA,oBACA,8BACA,YACA,aACA,YACA,WACA,sBACA,gCACA,kBACA,WACA,mBACA,yBACA,aACA,OACA,oBACA,aACA,iBACA,6BACA,mBACA,YACA,YACA,gBACA,cACA,cACA,aACA,aACA,YACA,mBACA,UACA,gBACA,mBACA,UACA,cACA,cACA,sBACA,sBACA,YACA,wBACA,yBACA,YACA,kBACA,QACA,qBACA,aACA,WACA,QACA,aACA,WACA,SACA,iBACA,qBACA,YACA,QACA,YACA,aACA,eACA,wBACA,uBACA,0BACA,0BACA,uBACA,kBACA,gBACA,YACA,aACA,aACA,kBACA,aACA,WACA,wBACA,cACA,WACA,SACA,eACA,mBACA,sBACA,YACA,WACA,aACA,yBACA,WACA,SACA,yBACA,sBAEDk/B,OAAO,CACN,gBACA,SAAUytC,GACRA,EAAcr2D,SAAS9N,QAAQokE,OAAO,gBAAkBz/B,GAAE,yBAAyB7zB,KAAK,UAC1F,IAGD4lB,OAAO,CACN,mBACA,SAAU2tC,GACRA,EAAiBC,2BAA2B,wCAE9C,IAGD5tC,OAAO,CACN,eACA,SAAU6tC,GACRA,EAAaC,OAAS,oBACtBD,EAAaE,QAAU,mBACzB,IAGD/tC,OAAO,CACN,0BACA,SAAUguC,GACRA,EAAwBC,kBAAkB,IAC5C,IAGDjuC,OAAO,CACN,sBACA,SAAUkuC,GACRrtE,QAAQiO,OAAOo/D,EAAqB,CACl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","sources":["webpack://entourage/./app/javascript/src/action_types/components/qualification-template/qualification-template.component.ts","webpack://entourage/./app/javascript/src/action_types/components/qualification-template/qualification-template.controller.ts","webpack://entourage/./app/javascript/src/action_types/components/briefing-template/briefing-template.component.ts","webpack://entourage/./app/javascript/src/action_types/components/first-call-template/first-call-template.component.ts","webpack://entourage/./app/javascript/src/action_types/components/debriefing-template/debriefing-template.controller.ts","webpack://entourage/./app/javascript/src/action_types/components/debriefing-template/debriefing-template.component.ts","webpack://entourage/./app/javascript/src/action_types/components/qualification-employees-projects-template/qualification-employees-projects-template.component.ts","webpack://entourage/./app/javascript/src/action_types/components/qualification-employees-projects-template/qualification-employees-projects-template.controller.ts","webpack://entourage/./app/javascript/src/priorities/services/priorities.contract.ts","webpack://entourage/./app/javascript/src/graduations/services/graduations.contract.ts","webpack://entourage/./app/javascript/src/job_categories/services/job_categories.contract.ts","webpack://entourage/./app/javascript/src/departments/services/departments.contract.ts","webpack://entourage/./app/javascript/src/job_types/services/job_types.contract.ts","webpack://entourage/./app/javascript/src/driving_licences/services/driving_licences.contract.ts","webpack://entourage/./app/javascript/src/career_levels/services/career_levels.contract.ts","webpack://entourage/./app/javascript/src/functional_areas/services/functional_areas.contract.ts","webpack://entourage/./app/javascript/src/highschools/services/highschools.contract.ts","webpack://entourage/./app/javascript/src/courses/services/courses.contract.ts","webpack://entourage/./app/javascript/src/leadership_experiences/services/leadership_experiences.contract.ts","webpack://entourage/./app/javascript/src/cancelation_periods/services/cancelation_periods.contract.ts","webpack://entourage/./app/javascript/src/marital_statuses/services/marital_status.contract.ts","webpack://entourage/./app/javascript/src/hierarchies/services/hierarchies.contract.ts","webpack://entourage/./app/javascript/src/organisation_units/services/organisation_units.contract.ts","webpack://entourage/./app/javascript/src/regions/services/regions.contract.ts","webpack://entourage/./app/javascript/src/languages/services/languages.contract.ts","webpack://entourage/./app/javascript/src/countries/services/countries.contract.ts","webpack://entourage/./app/javascript/src/transaction_bases/services/transaction_bases.contract.ts","webpack://entourage/./app/javascript/src/companies_transaction_bases/services/companies_transaction_bases.contract.ts","webpack://entourage/./app/javascript/src/action_types/services/action_types.contract.ts","webpack://entourage/./app/javascript/src/tags/services/tags.contract.ts","webpack://entourage/./app/javascript/src/api-routing/contract.ts","webpack://entourage/./app/javascript/src/services/my_csrf.service.ts","webpack://entourage/./app/javascript/src/api-routing/base-client.ts","webpack://entourage/./app/javascript/src/cancelation_periods/services/cancelation_periods.service.ts","webpack://entourage/./app/javascript/src/graduations/services/graduations.service.ts","webpack://entourage/./app/javascript/src/hierarchies/services/hierarchies.service.ts","webpack://entourage/./app/javascript/src/departments/services/departments.service.ts","webpack://entourage/./app/javascript/src/job_categories/services/job_categories.service.ts","webpack://entourage/./app/javascript/src/job_types/services/job_types.service.ts","webpack://entourage/./app/javascript/src/action_types/services/action_types.service.ts","webpack://entourage/./app/javascript/src/action_types/services/action_types.angular.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-candidates-list/quicklist-candidates-list.controller.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-candidates-list/quicklist-candidates-list.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-candidates-search/quicklist-candidates-search.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-employees-list/quicklist-employees-list.controller.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-employees-list/quicklist-employees-list.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-employees-search/quicklist-employees-search.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-companies-list/quicklist-companies-list.controller.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-companies-list/quicklist-companies-list.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklist-companies-search/quicklist-companies-search.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklists-table-body/quicklists-table-body.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/search-to-quicklist-button/search-to-quicklist-button.controller.ts","webpack://entourage/./app/javascript/src/quicklists/components/search-to-quicklist-button/search-to-quicklist-button.component.ts","webpack://entourage/./app/javascript/src/actions/components/components.module.ts","webpack://entourage/./app/javascript/src/actions/modals/show-actions-list-modal/show-actions-list-modal.controller.ts","webpack://entourage/./app/javascript/src/actions/modals/show-actions-list-modal/show-actions-list-modal.component.ts","webpack://entourage/./app/javascript/src/actions/modals/open-action-modal/open-action-modal.controller.ts","webpack://entourage/./app/javascript/src/actions/modals/open-action-modal/open-action-modal.component.ts","webpack://entourage/./app/javascript/src/actions/modals/event-confirm-modal/event-confirm-modal.controller.ts","webpack://entourage/./app/javascript/src/actions/modals/event-confirm-modal/event-confirm-modal.component.ts","webpack://entourage/./app/javascript/src/actions/modals/select-action-modal/select-action-modal.controller.ts","webpack://entourage/./app/javascript/src/actions/modals/select-action-modal/select-action-modal.component.ts","webpack://entourage/./app/javascript/src/actions/modals/action-edit-modal/action-edit-modal.controller.ts","webpack://entourage/./app/javascript/src/actions/modals/action-edit-modal/action-edit-modal.component.ts","webpack://entourage/./app/javascript/src/actions/modals/services/actions-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/actions/components/actions-history/actions-history.controller.ts","webpack://entourage/./app/javascript/src/actions/components/actions-history/history-table/history-table.component.ts","webpack://entourage/./app/javascript/src/actions/components/actions-history/history/history.component.ts","webpack://entourage/./app/javascript/src/actions/components/actions-history/follow-ups/follow-ups.controller.ts","webpack://entourage/./app/javascript/src/actions/components/actions-history/follow-ups/follow-ups.component.ts","webpack://entourage/./app/javascript/src/actions/components/actions-context-menu/actions-context-menu.controller.ts","webpack://entourage/./app/javascript/src/actions/components/actions-context-menu/actions-context-menu.component.ts","webpack://entourage/./app/javascript/src/actions/components/history-advanced-search/history-advanced-search.component.ts","webpack://entourage/./app/javascript/src/actions/components/history-advanced-search/history-advanced-search.controller.ts","webpack://entourage/./app/javascript/src/actions/components/advanced-actions-search/advanced-actions-search.component.ts","webpack://entourage/./app/javascript/src/actions/components/advanced-actions-search/advanced-actions-search.controller.ts","webpack://entourage/./app/javascript/src/services/state-transitions-config.factory.ts","webpack://entourage/./app/javascript/src/actions/components/actions-table-body/actions-table-body.controller.ts","webpack://entourage/./app/javascript/src/actions/components/actions-table-body/actions-table-body.component.ts","webpack://entourage/./app/javascript/src/actions/services/actions.service.ts","webpack://entourage/./app/javascript/src/services/generic-rails-serializer.service.ts","webpack://entourage/./app/javascript/src/cancelation_periods/services/cancelation_periods.angular.ts","webpack://entourage/./app/javascript/src/candidates/modals/candidates-show-duplicates/candidate-show-duplicates-modal.controller.ts","webpack://entourage/./app/javascript/src/candidates/modals/candidates-show-duplicates/candidate-show-duplicates-modal.component.ts","webpack://entourage/./app/javascript/src/candidates/components/candidate-search/candidate-search.controller.ts","webpack://entourage/./app/javascript/src/candidates/components/candidate-search/candidate-search.component.ts","webpack://entourage/./app/javascript/src/candidates/components/candidate-select/candidate-select.controller.ts","webpack://entourage/./app/javascript/src/candidates/components/candidate-select/candidate-select.component.ts","webpack://entourage/./app/javascript/src/candidates/components/candidates-project-search/candidates-project-search.controller.ts","webpack://entourage/./app/javascript/src/candidates/components/candidates-project-search/candidates-project-search.component.ts","webpack://entourage/./app/javascript/src/languages/services/languages.service.ts","webpack://entourage/./app/javascript/src/candidates/components/candidates-table-body/candidates-table-body.controller.ts","webpack://entourage/./app/javascript/src/candidates/components/candidates-table-body/candidates-table-body.component.ts","webpack://entourage/./app/javascript/src/candidates/components/candidates-context-menu/candidates-context-menu.controller.ts","webpack://entourage/./app/javascript/src/candidates/components/candidates-context-menu/candidates-context-menu.component.ts","webpack://entourage/./app/javascript/src/candidates/components/advanced-candidate-search/advanced-candidate-search.controller.ts","webpack://entourage/./app/javascript/src/candidates/components/advanced-candidate-search/advanced-candidate-search.component.ts","webpack://entourage/./app/javascript/src/candidates/views/show/candidates-show.controller.ts","webpack://entourage/./app/javascript/src/candidates/views/show/candidates-show-view.component.ts","webpack://entourage/./app/javascript/src/candidates/views/edit/candidates-edit.controller.ts","webpack://entourage/./app/javascript/src/candidates/views/edit/candidates-edit-view.component.ts","webpack://entourage/./app/javascript/src/candidates/views/index/candidates-index.controller.ts","webpack://entourage/./app/javascript/src/candidates/views/index/candidates-index-view.component.ts","webpack://entourage/./app/javascript/src/candidates/views/documents/candidates-documents-view.controller.ts","webpack://entourage/./app/javascript/src/candidates/views/documents/candidates-documents-view.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/modals/candidates-projects-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/candidates_projects/modals/edit-researcher-modal/edit-researcher-modal.controller.ts","webpack://entourage/./app/javascript/src/candidates_projects/modals/edit-researcher-modal/edit-researcher-modal.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/modals/send-open-job-offer-modal/send-open-job-offer-modal.controller.ts","webpack://entourage/./app/javascript/src/candidates_projects/modals/send-open-job-offer-modal/send-open-job-offer-modal.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/longlist/longlist.controller.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/longlist/longlist.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/advanced-longlist-search/advanced-longlist-search.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/advanced-longlist-search/advanced-longlist-search.controller.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/candidates-projects-context-menu/candidates-projects-context-menu.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/longlist-table-body/longlist-table-body.controller.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/longlist-table-body/longlist-table-body.component.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/candidates-projects-table-body/candidates-projects-table-body.controller.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/candidates-projects-table-body/candidates-projects-table-body.component.ts","webpack://entourage/./app/javascript/src/career_levels/services/career_levels.service.ts","webpack://entourage/./app/javascript/src/career_levels/services/career_levels.angular.ts","webpack://entourage/./app/javascript/src/companies/modals/company-contact-modal/company-contact-modal.component.ts","webpack://entourage/./app/javascript/src/companies/modals/company-contact-modal/company-contact-modal.controller.ts","webpack://entourage/./app/javascript/src/companies/components/employers-table-body/employers-table-body.component.ts","webpack://entourage/./app/javascript/src/companies/components/employers-table-body/employers-table-body.controller.ts","webpack://entourage/./app/javascript/src/companies/components/companies-advanced-search/companies-advanced-search.controller.ts","webpack://entourage/./app/javascript/src/companies/components/companies-advanced-search/companies-advanced-search.component.ts","webpack://entourage/./app/javascript/src/companies/components/companies-children-table-body/companies-children-table-body.component.ts","webpack://entourage/./app/javascript/src/companies/components/companies-site-addresses-form/companies-site-addresses-form.controller.ts","webpack://entourage/./app/javascript/src/companies/components/companies-site-addresses-form/companies-site-addresses-form.components.ts","webpack://entourage/./app/javascript/src/companies/components/company-select/company-select.controller.ts","webpack://entourage/./app/javascript/src/companies/components/company-select/company-select.component.ts","webpack://entourage/./app/javascript/src/companies/components/companies-table-body/companies-table-body.controller.ts","webpack://entourage/./app/javascript/src/companies/components/companies-table-body/companies-table-body.component.ts","webpack://entourage/./app/javascript/src/companies/components/companies-context-menu/companies-context-menu.component.ts","webpack://entourage/./app/javascript/src/companies/components/companies-context-menu/companies-context-menu.controller.ts","webpack://entourage/./app/javascript/src/companies/components/company-search/company-search.controller.ts","webpack://entourage/./app/javascript/src/companies/components/company-search/company-search.component.ts","webpack://entourage/./app/javascript/src/companies/views/show/show.controller.ts","webpack://entourage/./app/javascript/src/companies/views/show/show.component.ts","webpack://entourage/./app/javascript/src/companies/views/edit/edit.controller.ts","webpack://entourage/./app/javascript/src/companies/views/edit/edit.component.ts","webpack://entourage/./app/javascript/src/companies/views/menu/menu.component.ts","webpack://entourage/./app/javascript/src/companies/views/index/index.controller.ts","webpack://entourage/./app/javascript/src/companies/views/index/index.component.ts","webpack://entourage/./app/javascript/src/companies/views/documents/documents.controller.ts","webpack://entourage/./app/javascript/src/companies/views/documents/documents.component.ts","webpack://entourage/./app/javascript/src/api-routing/deep-map-keys-mega.ts","webpack://entourage/./app/javascript/src/transaction_bases/services/transaction_bases.service.ts","webpack://entourage/./app/javascript/src/companies_transaction_bases/services/companies_transaction_bases.service.ts","webpack://entourage/./app/javascript/src/companies_transaction_bases/services/companies_transaction_bases.angular.ts","webpack://entourage/./app/javascript/src/countries/services/countries.service.ts","webpack://entourage/./app/javascript/src/countries/components/nationalities-select/nationalities-select.component.ts","webpack://entourage/./app/javascript/src/countries/components/nationalities-select/nationalities-select.controller.ts","webpack://entourage/./app/javascript/src/countries/eu-countries.constant.ts","webpack://entourage/./app/javascript/src/countries/components/countries-select/countries-select.component.ts","webpack://entourage/./app/javascript/src/countries/components/countries-select/countries-select.controller.ts","webpack://entourage/./app/javascript/src/countries/services/countries.angular.ts","webpack://entourage/./app/javascript/src/courses/components/course-select/course-select.controller.ts","webpack://entourage/./app/javascript/src/courses/components/course-select/course-select.component.ts","webpack://entourage/./app/javascript/src/courses/services/courses.factory.ts","webpack://entourage/./app/javascript/src/courses/services/courses.angular.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-cards/dashboard-cards.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-cards/dashboard-cards.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/amount-covered-line-chart/amount-covered-line-chart.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/amount-covered-line-chart/amount-covered-line-chart.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-kpis-2021-card/dashboard-kpis-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-kpis-2021-card/dashboard-kpis-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-accounts-2021-card/dashboard-acounts-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-accounts-2021-card/dashboard-accounts-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-sendouts-2021-card/dashboard-sendouts-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-sendouts-2021-card/dashboard-sendouts-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-interviews-2021-card/dashboard-interviews-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-interviews-2021-card/dashboard-interviews-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-amount-covered-2021-card/dashboard-amount-covered-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-amount-covered-2021-card/dashboard-amount-covered-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-amount-covered-consultants-2021-card/dashboard-amount-covered-consultants-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-amount-covered-consultants-2021-card/dashboard-amount-covered-consultants-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-cv-2021-card/dashboard-cv-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-cv-2021-card/dashboard-cv-2021-card.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/popover/popover.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/popover/popover.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-deals-2021-card/dashboard-deals-2021-card.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/dashboard-deals-2021-card/dashboard-deals-2021-card.component.ts","webpack://entourage/./app/javascript/src/directives/money/values/currency.ts","webpack://entourage/./app/javascript/src/directives/money/services/money.service.ts","webpack://entourage/./app/javascript/src/dashboards/components/amount-covered-consultant-pie-chart/amount-covered-consultant-pie-chart.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/amount-covered-consultant-pie-chart/amount-covered-consultant-pie-chart.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-pie-chart/dashboard-pie-chart.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-pie-chart/dashboard-pie-chart.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/amount-covered-bar-chart/amount-covered-bar-chart.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/amount-covered-bar-chart/amount-covered-bar-chart.component.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-gauge-chart/dashboard-gauge-chart.controller.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-gauge-chart/dashboard-gauge-chart.component.ts","webpack://entourage/./app/javascript/src/dashboards/views/index/dashboards.controller.ts","webpack://entourage/./app/javascript/src/dashboards/views/index/dashboards.components.ts","webpack://entourage/./app/javascript/src/contract_drafts/components/edit-contract-draft/edit-contract-draft.controller.ts","webpack://entourage/./app/javascript/src/contract_drafts/components/edit-contract-draft/edit-contract-draft.component.ts","webpack://entourage/./app/javascript/src/contract_drafts/components/show-contract-draft/show-contract-draft.controller.ts","webpack://entourage/./app/javascript/src/contract_drafts/components/show-contract-draft/show-contract-draft.component.ts","webpack://entourage/./app/javascript/src/organisation_units/services/organisation_units.service.ts","webpack://entourage/./app/javascript/src/deals/modals/deals-modals-mixin.factory.ts","webpack://entourage/./app/javascript/src/deals/components/deal-notifications/deal-notifications.component.ts","webpack://entourage/./app/javascript/src/deals/components/deal-notifications/deal-notifications.controller.ts","webpack://entourage/./app/javascript/src/deals/components/companies-documents-list/companies-documents-list.controller.ts","webpack://entourage/./app/javascript/src/deals/components/companies-documents-list/companies-documents-list.component.ts","webpack://entourage/./app/javascript/src/deals/values/services-options.constant.ts","webpack://entourage/./app/javascript/src/deals/modals/deal-edit-modal/deal-edit-modal.controller.ts","webpack://entourage/./app/javascript/src/deals/modals/deal-edit-modal/deal-edit-modal.component.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/components/prsm-table/prsm-table.controller.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/components/prsm-table/prsm-table.component.ts","webpack://entourage/./app/javascript/src/directives/kpis/components/process-kpis/process-kpis.controller.ts","webpack://entourage/./app/javascript/src/directives/kpis/components/process-kpis/process-kpis.component.ts","webpack://entourage/./app/javascript/src/directives/components/address-select/address-select.component.ts","webpack://entourage/./app/javascript/src/directives/components/address-select/address-select.controller.ts","webpack://entourage/./app/javascript/src/directives/components/address-form/address-form.controller.ts","webpack://entourage/./app/javascript/src/directives/components/address-form/address-form.component.ts","webpack://entourage/./app/javascript/src/directives/components/person-duplicate-button/person-duplicate-button.controller.ts","webpack://entourage/./app/javascript/src/directives/components/person-duplicate-button/person-duplicate-button.component.ts","webpack://entourage/./app/javascript/src/directives/components/gender-select/gender-select.component.ts","webpack://entourage/./app/javascript/src/directives/components/free-date-picker/free-date-picker.controller.ts","webpack://entourage/./app/javascript/src/directives/components/free-date-picker/free-date-picker.component.ts","webpack://entourage/./app/javascript/src/directives/components/person-skillmatrix-form/person-skillmatrix-form.controller.ts","webpack://entourage/./app/javascript/src/directives/components/person-skillmatrix-form/person-skillmatrix-form.component.ts","webpack://entourage/./app/javascript/src/directives/components/contact-details/contact-details.controller.ts","webpack://entourage/./app/javascript/src/directives/components/contact-details/contact-details.component.ts","webpack://entourage/./app/javascript/src/directives/components/date-picker/date-picker.controller.ts","webpack://entourage/./app/javascript/src/directives/components/week-picker/week-picker.component.ts","webpack://entourage/./app/javascript/src/directives/components/address-block/address-block.controller.ts","webpack://entourage/./app/javascript/src/directives/components/address-block/address-block.component.ts","webpack://entourage/./app/javascript/src/directives/components/date-picker/date-picker.component.ts","webpack://entourage/./app/javascript/src/directives/components/deck-sub/deck-sub.controller.ts","webpack://entourage/./app/javascript/src/directives/components/deck-sub/deck-sub.component.ts","webpack://entourage/./app/javascript/src/directives/components/info-popover/info-popover.component.ts","webpack://entourage/./app/javascript/src/directives/components/info-popover/info-popover.controller.ts","webpack://entourage/./app/javascript/src/directives/components/traffic-light/traffic-light-requirements.component.ts","webpack://entourage/./app/javascript/src/directives/components/traffic-light/traffic-light.controller.ts","webpack://entourage/./app/javascript/src/directives/components/traffic-light/traffic-light.component.ts","webpack://entourage/./app/javascript/src/directives/components/social-media-details/social-media-details.component.ts","webpack://entourage/./app/javascript/src/directives/components/toggle-button/toggle-button.component.ts","webpack://entourage/./app/javascript/src/directives/components/person-duplicates/person-duplicates.components.ts","webpack://entourage/./app/javascript/src/directives/components/job-progress-bar/job-progress-bar.component.ts","webpack://entourage/./app/javascript/src/directives/money/components/money-output/money-output.component.ts","webpack://entourage/./app/javascript/src/directives/money/components/money-input/money-input.component.ts","webpack://entourage/./app/javascript/src/directives/money/components/money-input/money-input.controller.ts","webpack://entourage/./app/javascript/src/directives/money/services/money-factory.service.ts","webpack://entourage/./app/javascript/src/directives/money/services/money-serializer.factory.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/language-selector/language-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/language-selector/language-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/popover-transclude/popover-transclude.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/popover-transclude/popover-transclude.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/last-update-selector/last-update-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/last-update-selector/last-update-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/generic-selector/generic-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/generic-selector/generic-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/advanced-search/advanced-search.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/advanced-search/advanced-search.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/date-range-selector/date-range-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/date-range-selector/date-range-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/advanced-search-selector/advanced-search-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/advanced-search-selector/advanced-search-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/cv-last-update-selector/cv-last-update-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/cv-last-update-selector/cv-last-update-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/job-offers-search/job-offers-search.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/job-offers-search/job-offers-search.controller.ts","webpack://entourage/./app/javascript/src/priorities/services/priority.service.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/priority-search/priority-search.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/priority-search/priority-search.controller.ts","webpack://entourage/./app/javascript/src/locations/values/location-distances.constant.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/location-search/location-search.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/location-search/location-search.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/companies-transaction-search/companies-transaction-search.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/companies-transaction-search/companies-transaction-search.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/salary-range-selector/salary-range-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/salary-range-selector/salary-range-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/generic-static-selector/generic-static-selector.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/generic-static-selector/generic-static-selector.controller.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/entourage-candidates-search/entourage-candidates-search.component.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/components/entourage-candidates-search/entourage-candidates-search.controller.ts","webpack://entourage/./app/javascript/src/regions/services/regions.service.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/services/default-selector-fields.factory.ts","webpack://entourage/./app/javascript/src/departments/services/departments.angular.ts","webpack://entourage/./app/javascript/src/hierarchies/services/hierarchies.angular.ts","webpack://entourage/./app/javascript/src/documents/modals/textkernel-diff-modal/textkernel-diff-modal.controller.ts","webpack://entourage/./app/javascript/src/documents/modals/textkernel-diff-modal/textkernel-diff-modal.component.ts","webpack://entourage/./app/javascript/src/documents/modals/documents-fullscreen-mode/documents-fullscreen-mode.controller.ts","webpack://entourage/./app/javascript/src/documents/modals/documents-fullscreen-mode/documents-fullscreen-mode.component.ts","webpack://entourage/./app/javascript/src/documents/components/documents-deck-view/documents-deck-view.component.ts","webpack://entourage/./app/javascript/src/documents/components/documents-deck-view/documents-deck-view.controller.ts","webpack://entourage/./app/javascript/src/documents/components/advanced-documents-search/advanced-documents-search.component.ts","webpack://entourage/./app/javascript/src/documents/components/advanced-documents-search/advanced-documents-search.controller.ts","webpack://entourage/./app/javascript/src/documents/components/document-kpis/document-kpis.controller.ts","webpack://entourage/./app/javascript/src/documents/components/document-kpis/document-kpis.component.ts","webpack://entourage/./app/javascript/src/documents/components/documents-list/documents-list.controller.ts","webpack://entourage/./app/javascript/src/documents/components/documents-list/documents-list.component.ts","webpack://entourage/./app/javascript/src/driving_licences/services/driving_licences.service.ts","webpack://entourage/./app/javascript/src/driving_licences/services/driving_licences.angular.ts","webpack://entourage/./app/javascript/src/employees/modals/employees-show-duplicates/employees-show-duplicates-modal.controller.ts","webpack://entourage/./app/javascript/src/employees/modals/employees-show-duplicates/employees-show-duplicates-modal.component.ts","webpack://entourage/./app/javascript/src/employees/components/employees-context-menu/employees-context-menu.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employees-context-menu/employees-context-menu.component.ts","webpack://entourage/./app/javascript/src/employees/components/employees-project-list/employees-project-list.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employees-project-list/employees-project-list.component.ts","webpack://entourage/./app/javascript/src/employees/components/employee-search/employee-search.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employee-search/employee-search.component.ts","webpack://entourage/./app/javascript/src/employees/components/employees-advanced-search/employees-advanced-search.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employees-advanced-search/employees-advanced-search.component.ts","webpack://entourage/./app/javascript/src/employees/components/employee-select/employees-select.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employee-select/employees-select.component.ts","webpack://entourage/./app/javascript/src/employees/components/advanced-employees-search/advanced-employees-search.component.ts","webpack://entourage/./app/javascript/src/employees/components/advanced-employees-search/advanced-employees-search.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employees-table-body/employees-table-body.controller.ts","webpack://entourage/./app/javascript/src/employees/components/employees-table-body/employees-table-body.component.ts","webpack://entourage/./app/javascript/src/employees/views/show/employees-show.controller.ts","webpack://entourage/./app/javascript/src/employees/views/show/employees-show.component.ts","webpack://entourage/./app/javascript/src/employees/views/edit/employees-edit.controller.ts","webpack://entourage/./app/javascript/src/employees/views/edit/employees-edit.component.ts","webpack://entourage/./app/javascript/src/employees/views/menu/employees-menu-view.component.ts","webpack://entourage/./app/javascript/src/employees/views/index/employees-index.controller.ts","webpack://entourage/./app/javascript/src/employees/views/index/employees-index.component.ts","webpack://entourage/./app/javascript/src/expert_profiles/modals/sendout-modal/sendout-modal.component.ts","webpack://entourage/./app/javascript/src/expert_profiles/modals/sendout-modal/sendout-modal.controller.ts","webpack://entourage/./app/javascript/src/expert_profiles/views/edit/edit.controller.ts","webpack://entourage/./app/javascript/src/expert_profiles/views/edit/edit.component.ts","webpack://entourage/./app/javascript/src/functional_areas/services/functional_areas.service.ts","webpack://entourage/./app/javascript/src/functional_areas/services/functional_areas.angular.ts","webpack://entourage/./app/javascript/src/graduations/services/graduations.angular.ts","webpack://entourage/./app/javascript/src/highschools/components/highschools-select/highschools-select.controller.ts","webpack://entourage/./app/javascript/src/highschools/components/highschools-select/highschools-select.component.ts","webpack://entourage/./app/javascript/src/highschools/services/highschools.factory.ts","webpack://entourage/./app/javascript/src/highschools/services/highschools.angular.ts","webpack://entourage/./app/javascript/src/invoices/components/invoices-list/invoices-list.controller.ts","webpack://entourage/./app/javascript/src/invoices/components/invoices-list/invoices-list.component.ts","webpack://entourage/./app/javascript/src/invoices/components/invoices-table-body/invoices-table-body.component.ts","webpack://entourage/./app/javascript/src/invoices/components/invoices-table-body/invoices-table-body.controller.ts","webpack://entourage/./app/javascript/src/invoices/components/invoices-form/invoices-form.controller.ts","webpack://entourage/./app/javascript/src/invoices/components/invoices-form/invoices-form.component.ts","webpack://entourage/./app/javascript/src/job_categories/services/job_categories.angular.ts","webpack://entourage/./app/javascript/src/job_offers/components/job-offers-table-body/job-offers-table-body.component.ts","webpack://entourage/./app/javascript/src/job_offers/components/job-offers-table-body/job-offers-table-body.controller.ts","webpack://entourage/./app/javascript/src/job_offers/components/job-offers-context-menu/job-offers-context-menu.component.ts","webpack://entourage/./app/javascript/src/job_offers/components/job-offers-context-menu/job-offers-context-menu.controller.ts","webpack://entourage/./app/javascript/src/job_offers/components/job-offers/job-offers.controller.ts","webpack://entourage/./app/javascript/src/job_offers/components/job-offers/job-offers.component.ts","webpack://entourage/./app/javascript/src/job_offers/values/ideal-boolean-values.constant.ts","webpack://entourage/./app/javascript/src/custom_screening_questions/response_types.constant.ts","webpack://entourage/./app/javascript/src/job_offers/components/custom-requirement/custom-requirement.component.ts","webpack://entourage/./app/javascript/src/job_offers/components/custom-requirement/custom-requirement.controller.ts","webpack://entourage/./app/javascript/src/job_offers/components/language-proficiency-question/language-proficiency-question.component.ts","webpack://entourage/./app/javascript/src/job_offers/components/language-proficiency-question/language-proficiency-question.controller.ts","webpack://entourage/./app/javascript/src/job_offers/services/language-proficiency-question.factory.ts","webpack://entourage/./app/javascript/src/job_offers/services/custom-requirement.factory.ts","webpack://entourage/./app/javascript/src/job_offers/components/preliminary-questions-navbar/preliminary-questions-navbar.controller.ts","webpack://entourage/./app/javascript/src/job_offers/components/preliminary-questions-navbar/preliminary-questions-navbar.component.ts","webpack://entourage/./app/javascript/src/job_offers/views/show/show.controller.ts","webpack://entourage/./app/javascript/src/job_offers/views/show/show.component.ts","webpack://entourage/./app/javascript/src/languages/eu-languages.constant.ts","webpack://entourage/./app/javascript/src/job_offers/views/edit/edit.controller.ts","webpack://entourage/./app/javascript/src/job_offers/views/edit/edit.component.ts","webpack://entourage/./app/javascript/src/job_offers/views/menu/menu.component.ts","webpack://entourage/./app/javascript/src/job_offers/services/custom-requirement.angular.ts","webpack://entourage/./app/javascript/src/job_types/services/job_types.angular.ts","webpack://entourage/./app/javascript/src/languages/components/language-select/language-select.controller.ts","webpack://entourage/./app/javascript/src/languages/components/language-select/language-select.component.ts","webpack://entourage/./app/javascript/src/languages/services/languages.angular.ts","webpack://entourage/./app/javascript/src/leadership_experiences/services/leadership_experiences.service.ts","webpack://entourage/./app/javascript/src/leadership_experiences/services/leadership_experiences.angular.ts","webpack://entourage/./app/javascript/src/locations/components/location-preferences-form/location-preferences-form.controller.ts","webpack://entourage/./app/javascript/src/locations/components/location-preferences-form/location-preferences-form.component.ts","webpack://entourage/./app/javascript/src/login/views/login/login-page.controller.ts","webpack://entourage/./app/javascript/src/login/modals/login-form/login-form-modal.component.ts","webpack://entourage/./app/javascript/src/login/views/login/login-page.component.ts","webpack://entourage/./app/javascript/src/marital_statuses/services/marital_status.service.ts","webpack://entourage/./app/javascript/src/marital_statuses/services/marital_status.angular.ts","webpack://entourage/./app/javascript/src/modals/values/reasons-for-rejection.const.ts","webpack://entourage/./app/javascript/src/modals/modals/choose-locales-modal/choose-locales-modal.controller.ts","webpack://entourage/./app/javascript/src/modals/modals/choose-locales-modal/choose-locales-modal.component.ts","webpack://entourage/./app/javascript/src/modals/modals/choose-contact-modal/choose-contact-modal.component.ts","webpack://entourage/./app/javascript/src/modals/modals/choose-contact-modal/choose-contact-modal.controller.ts","webpack://entourage/./app/javascript/src/modals/modals/confirm-modal/confirm-modal.component.ts","webpack://entourage/./app/javascript/src/modals/modals/confirm-modal/confirm-modal.controller.ts","webpack://entourage/./app/javascript/src/modals/services/modal-util-mixin.factory.ts","webpack://entourage/./app/javascript/src/organisation_units/services/organisation_units.angular.ts","webpack://entourage/./app/javascript/src/organisation_units/components/organisation-units-selector/organisation-units-selector.component.ts","webpack://entourage/./app/javascript/src/organisation_units/components/organisation-units-selector/organisation-units-selector.controller.ts","webpack://entourage/./app/javascript/src/outlook_delivery/components/message-status/message-status.controller.ts","webpack://entourage/./app/javascript/src/outlook_delivery/components/message-status/message-status.component.ts","webpack://entourage/./app/javascript/src/persons/modals/contact-modal/contact-modal.component.ts","webpack://entourage/./app/javascript/src/persons/modals/contact-modal/contact-modal.controller.ts","webpack://entourage/./app/javascript/src/persons/modals/open-skillmatrix-edit-modal/open-skillmatrix-edit-modal.controller.ts","webpack://entourage/./app/javascript/src/persons/modals/open-skillmatrix-edit-modal/open-skillmatrix-edit-modal.component.ts","webpack://entourage/./app/javascript/src/persons/modals/choose-company-modal/choose-company-modal.controller.ts","webpack://entourage/./app/javascript/src/persons/modals/choose-company-modal/choose-company-modal.component.ts","webpack://entourage/./app/javascript/src/persons/modals/choose-info-presentation-modal/choose-info-presentation-modal.component.ts","webpack://entourage/./app/javascript/src/persons/modals/choose-info-presentation-modal/choose-info-presentation-modal.controller.ts","webpack://entourage/./app/javascript/src/persons/modals/company-org-chart-modal/company-org-chart-modal.controller.ts","webpack://entourage/./app/javascript/src/persons/modals/company-org-chart-modal/company-org-chart-modal.component.ts","webpack://entourage/./app/javascript/src/persons/modals/services/person-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/persons/components/company-org-chart-node/company-org-chart-node.component.ts","webpack://entourage/./app/javascript/src/persons_graduations/components/persons-graduation-form/persons-graduation-form.controller.ts","webpack://entourage/./app/javascript/src/persons_graduations/components/persons-graduation-form/persons-graduation-form.component.ts","webpack://entourage/./app/javascript/src/priorities/services/priorities.angular.ts","webpack://entourage/./app/javascript/src/priorities/components/priority-select/priority-select.controller.ts","webpack://entourage/./app/javascript/src/priorities/components/priority-select/priority-select.component.ts","webpack://entourage/./app/javascript/src/project_reportings/modals/kpi-operative-edit-modal/kpi-operative-edit-modal.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/modals/kpi-operative-edit-modal/kpi-operative-edit-modal.component.ts","webpack://entourage/./app/javascript/src/project_reportings/components/project-sheet/project-sheet.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/components/project-sheet/project-sheet.component.ts","webpack://entourage/./app/javascript/src/project_reportings/components/whiteboard-advanced-search/whiteboard-advanced-search.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/components/whiteboard-advanced-search/whiteboard-advanced-search.component.ts","webpack://entourage/./app/javascript/src/project_reportings/components/whiteboard-kpis/whiteboard-kpis.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/components/whiteboard-kpis/whiteboard-kpis.component.ts","webpack://entourage/./app/javascript/src/project_reportings/components/whiteboard-table-body/whiteboard-table-body.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/components/whiteboard-table-body/whiteboard-table-body.component.ts","webpack://entourage/./app/javascript/src/project_reportings/views/whiteboard/whiteboard.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/views/whiteboard/whiteboard.component.ts","webpack://entourage/./app/javascript/src/project_reportings/views/whiteboard_presenter/whiteboard_presenter.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/views/whiteboard_presenter/whiteboard_presenter.component.ts","webpack://entourage/./app/javascript/src/project_reportings/views/project-pipeline/project-pipeline.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/views/project-pipeline/project-pipeline.component.ts","webpack://entourage/./app/javascript/src/project_reportings/views/index/index.controller.ts","webpack://entourage/./app/javascript/src/project_reportings/views/index/index.component.ts","webpack://entourage/./app/javascript/src/projects/modals/project-document-export-modal/project-document-export-modal.controller.ts","webpack://entourage/./app/javascript/src/projects/modals/project-document-export-modal/project-document-export-modal.component.ts","webpack://entourage/./app/javascript/src/projects/modals/active-processes-modal/active-processes-modal.controller.ts","webpack://entourage/./app/javascript/src/projects/modals/active-processes-modal/active-processes-modal.component.ts","webpack://entourage/./app/javascript/src/projects/modals/edit-sales-modal/edit-sales-modal.controller.ts","webpack://entourage/./app/javascript/src/projects/modals/edit-sales-modal/edit-sales-modal.component.ts","webpack://entourage/./app/javascript/src/projects/modals/candidate-search-modal/candidate-search-modal.controller.ts","webpack://entourage/./app/javascript/src/projects/modals/candidate-search-modal/candidate-search-modal.component.ts","webpack://entourage/./app/javascript/src/projects/modals/pitch-modal/pitch-modal.controller.ts","webpack://entourage/./app/javascript/src/projects/modals/pitch-modal/pitch-modal.component.ts","webpack://entourage/./app/javascript/src/projects/components/project-search/project-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/project-search/project-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/candidates-auto-search/candidates-auto-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/candidates-auto-search/candidates-auto-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/employees-project-search/employees-project-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/employees-project-search/employees-project-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/project-select/project-select.controller.ts","webpack://entourage/./app/javascript/src/projects/components/project-select/project-select.component.ts","webpack://entourage/./app/javascript/src/projects/components/projects-candidate-search/projects-candidate-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-candidate-search/projects-candidate-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/projects-table-body/projects-table-body.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-table-body/projects-table-body.component.ts","webpack://entourage/./app/javascript/src/projects/components/advanced-projects-search/advanced-projects-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/advanced-projects-search/advanced-projects-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-list/projects-list.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-list/projects-list.component.ts","webpack://entourage/./app/javascript/src/projects/components/projects-context-menu/projects-context-menu.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-context-menu/projects-context-menu.component.ts","webpack://entourage/./app/javascript/src/projects/components/projects-auto-search/projects-auto-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-auto-search/projects-auto-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/projects-advanced-search/projects-advanced-search.controller.ts","webpack://entourage/./app/javascript/src/projects/components/projects-advanced-search/projects-advanced-search.component.ts","webpack://entourage/./app/javascript/src/projects/components/select-process-status/select-process-status.controller.ts","webpack://entourage/./app/javascript/src/projects/components/select-process-status/select-process-status.component.ts","webpack://entourage/./app/javascript/src/projects/views/show/projects-show-view.controller.ts","webpack://entourage/./app/javascript/src/projects/views/show/projects-show-view.component.ts","webpack://entourage/./app/javascript/src/projects/views/ia-edit/projects-ia-edit-view.controller.ts","webpack://entourage/./app/javascript/src/projects/views/ia-edit/projects-ia-edit-view.component.ts","webpack://entourage/./app/javascript/src/projects/views/edit/projects-edit-view.controller.ts","webpack://entourage/./app/javascript/src/projects/views/edit/projects-edit-view.component.ts","webpack://entourage/./app/javascript/src/projects/views/ia-show/projects-ia-show-view.controller.ts","webpack://entourage/./app/javascript/src/projects/views/ia-show/projects-ia-show-view.component.ts","webpack://entourage/./app/javascript/src/projects/views/menu/projects-menu-view.component.ts","webpack://entourage/./app/javascript/src/projects/views/index/projects-index-view.controller.ts","webpack://entourage/./app/javascript/src/projects/views/index/projects-index-view.component.ts","webpack://entourage/./app/javascript/src/quicklists/modals/choose-quicklist-modal/choose-quicklist-modal.controller.ts","webpack://entourage/./app/javascript/src/quicklists/modals/choose-quicklist-modal/choose-quicklist-modal.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklists-table-body/quicklists-table-body.controller.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklists-table-body/candidates/quicklists-candidates-table-body.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklists-table-body/employees/quicklists-employees-table-body.component.ts","webpack://entourage/./app/javascript/src/quicklists/components/quicklists-table-body/companies/quicklists-companies-table-body.component.ts","webpack://entourage/./app/javascript/src/quicklists/views/sidebar/sidebar.controller.ts","webpack://entourage/./app/javascript/src/quicklists/views/sidebar/sidebar.component.ts","webpack://entourage/./app/javascript/src/quicklists/views/show/show.controller.ts","webpack://entourage/./app/javascript/src/quicklists/views/show/show.component.ts","webpack://entourage/./app/javascript/src/quicklists/views/edit/edit.controller.ts","webpack://entourage/./app/javascript/src/quicklists/views/edit/edit.component.ts","webpack://entourage/./app/javascript/src/quicklists/views/menu/menu.component.ts","webpack://entourage/./app/javascript/src/regions/services/regions.angular.ts","webpack://entourage/./app/javascript/src/researcher_commissions/components/research-commissions-form/research-commissions-form.controller.ts","webpack://entourage/./app/javascript/src/researcher_commissions/components/research-commissions-form/research-commissions-form.component.ts","webpack://entourage/./app/javascript/src/saved_searches/components/saved-searches/saved-searches.controller.ts","webpack://entourage/./app/javascript/src/saved_searches/components/saved-searches/saved-searches.component.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-context-menu/sendouts-context-menu.component.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-table-body/sendouts-table-body.component.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-table-body/sendouts-table-body.controller.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-ep-table-body/sendouts-ep-table-body.controller.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-ep-table-body/sendouts-ep-table-body.component.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-list/sendouts-list.controller.ts","webpack://entourage/./app/javascript/src/sendouts/components/sendouts-list/sendouts-list.component.ts","webpack://entourage/./app/javascript/src/sendouts/components/advanced-sendouts-search/advanced-sendouts-search.component.ts","webpack://entourage/./app/javascript/src/sendouts/components/advanced-sendouts-search/advanced-sendouts-search.controller.ts","webpack://entourage/./app/javascript/src/tags/components/tags-list-inline/tags-list-inline.controller.ts","webpack://entourage/./app/javascript/src/tags/components/tags-list-inline/tags-list-inline.component.ts","webpack://entourage/./app/javascript/src/tags/services/tags.service.ts","webpack://entourage/./app/javascript/src/tags/components/tag-search/tag-search.controller.ts","webpack://entourage/./app/javascript/src/tags/components/tag-search/tag-search.component.ts","webpack://entourage/./app/javascript/src/tags/components/tags-list/tags-list.component.ts","webpack://entourage/./app/javascript/src/tags/services/tags.angular.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-longlist-confirm/textkernel-longlist-confirm.controller.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-longlist-confirm/textkernel-longlist-confirm.component.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-open-search/textkernel-open-search.controller.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-open-search/textkernel-open-search.component.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-import-finished/textkernel-import-finished.controller.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-import-finished/textkernel-import-finished.component.ts","webpack://entourage/./app/javascript/src/textkernel/services/textkernel.factory.ts","webpack://entourage/./app/javascript/src/trackings/services/trackings.factory.ts","webpack://entourage/./app/javascript/src/trackings/services/trackings.angular.ts","webpack://entourage/./app/javascript/src/trackings/components/trackings/trackings.controller.ts","webpack://entourage/./app/javascript/src/transaction_bases/components/transaction-basis-list/transaction-basis-list.controller.ts","webpack://entourage/./app/javascript/src/transaction_bases/components/transaction-basis-list/transaction-basis-table-body.component.ts","webpack://entourage/./app/javascript/src/transaction_bases/components/transaction-basis-table-body/transaction-basis-table-body.component.ts","webpack://entourage/./app/javascript/src/transaction_bases/components/transaction-basis-form/transaction-basis-form.controller.ts","webpack://entourage/./app/javascript/src/transaction_bases/components/transaction-basis-form/transaction-basis-form.component.ts","webpack://entourage/./app/javascript/src/transaction_bases/services/transaction_bases.angular.ts","webpack://entourage/./app/javascript/src/users/modals/account-settings/account-settings.controller.ts","webpack://entourage/./app/javascript/src/users/components/ur-user-select-box/ur-user-select-box.controller.ts","webpack://entourage/./app/javascript/src/users/components/ur-user-select-box/ur-user-select-box.component.ts","webpack://entourage/./app/javascript/src/users/components/team-select/team-select.controller.ts","webpack://entourage/./app/javascript/src/users/components/team-select/team-select.component.ts","webpack://entourage/./app/javascript/src/users/components/users-help-sidebar/users-help-sidebar.controller.ts","webpack://entourage/./app/javascript/src/users/components/users-help-sidebar/users-help-sidebar.component.ts","webpack://entourage/./app/javascript/src/users/services/users.factory.ts","webpack://entourage/./app/javascript/src/values/routing-options/candidate-opts.constant.ts","webpack://entourage/./app/javascript/src/values/routing-options/company-opts.constant.ts","webpack://entourage/./app/javascript/src/values/routing-options/employee-opts.constant.ts","webpack://entourage/./app/javascript/src/values/routing-options/job-offer-opts.constant.ts","webpack://entourage/./app/javascript/src/values/routing-options/project-opts.constant.ts","webpack://entourage/./app/javascript/src/working_relationships/components/working-relationship-list/working-relationship-list.controller.ts","webpack://entourage/./app/javascript/src/working_relationships/components/working-relationship-list/working-relationship-list.component.ts","webpack://entourage/./app/javascript/src/working_relationships/components/working-relationship-form/working-relationship-form.controller.ts","webpack://entourage/./app/javascript/src/working_relationships/components/working-relationship-form/working-relationship-form.component.ts","webpack://entourage/./app/javascript/src/application.ts","webpack://entourage/./app/javascript/src/directives/layout/components/deck/deck.controller.ts","webpack://entourage/./app/javascript/src/directives/layout/components/deck/deck.component.ts","webpack://entourage/./app/javascript/src/directives/layout/components/generic-deck/generic-deck.controller.ts","webpack://entourage/./app/javascript/src/directives/layout/components/generic-deck/generic-deck.component.ts","webpack://entourage/./app/javascript/src/directives/layout/components/root-view/root-view.component.ts","webpack://entourage/./app/javascript/src/directives/layout/components/main-view/main-view.controller.ts","webpack://entourage/./app/javascript/src/directives/layout/components/main-view/main-view.component.ts","webpack://entourage/./app/javascript/packs/application.ts","webpack://entourage/./app/javascript/src/action_types/action_types.module.ts","webpack://entourage/./app/javascript/src/action_types/components/components.module.ts","webpack://entourage/./app/javascript/src/actions/actions.module.ts","webpack://entourage/./app/javascript/src/actions/components/action-notice-form/action-notice-form.component.ts","webpack://entourage/./app/javascript/src/actions/modals/modals.module.ts","webpack://entourage/./app/javascript/src/actions/modals/services/action-modals.factory.ts","webpack://entourage/./app/javascript/src/cancelation_periods/cancelation_periods.module.ts","webpack://entourage/./app/javascript/src/candidates/candidates.module.ts","webpack://entourage/./app/javascript/src/candidates/components/components.module.ts","webpack://entourage/./app/javascript/src/candidates/modals/candidates-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/candidates/modals/modals.module.ts","webpack://entourage/./app/javascript/src/candidates/services/candidates-hotkeys.factory.ts","webpack://entourage/./app/javascript/src/candidates/services/candidates.factory.ts","webpack://entourage/./app/javascript/src/candidates/views/menu/candidates-menu-view.component.ts","webpack://entourage/./app/javascript/src/candidates/views/views.module.ts","webpack://entourage/./app/javascript/src/candidates_projects/candidates_projects.module.ts","webpack://entourage/./app/javascript/src/candidates_projects/components/components.module.ts","webpack://entourage/./app/javascript/src/candidates_projects/modals/modals.module.ts","webpack://entourage/./app/javascript/src/candidates_projects/services/candidates_project_statuses.service.ts","webpack://entourage/./app/javascript/src/candidates_projects/services/candidates_projects.service.ts","webpack://entourage/./app/javascript/src/candidates_projects/services/status_serializer.factory.ts","webpack://entourage/./app/javascript/src/candidates_projects/values/candidates_projects.constants.ts","webpack://entourage/./app/javascript/src/career_levels/career_levels.module.ts","webpack://entourage/./app/javascript/src/companies/companies.module.ts","webpack://entourage/./app/javascript/src/companies/components/components.module.ts","webpack://entourage/./app/javascript/src/companies/modals/companies-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/companies/modals/modals.module.ts","webpack://entourage/./app/javascript/src/companies/services/companies-hotkeys.factory.ts","webpack://entourage/./app/javascript/src/companies/services/companies.service.ts","webpack://entourage/./app/javascript/src/companies/views/views.module.ts","webpack://entourage/./app/javascript/src/companies_transaction_bases/companies_transaction_bases.module.ts","webpack://entourage/./app/javascript/src/contract_drafts/components/components.module.ts","webpack://entourage/./app/javascript/src/contract_drafts/contract_draft.module.ts","webpack://entourage/./app/javascript/src/contract_drafts/services/contract_drafts.service.ts","webpack://entourage/./app/javascript/src/countries/components/components.module.ts","webpack://entourage/./app/javascript/src/countries/countries.module.ts","webpack://entourage/./app/javascript/src/courses/components/components.module.ts","webpack://entourage/./app/javascript/src/courses/courses.module.ts","webpack://entourage/./app/javascript/src/dashboards/components/chart-gauge/chart-gauge.directive.ts","webpack://entourage/./app/javascript/src/dashboards/components/components.module.ts","webpack://entourage/./app/javascript/src/dashboards/components/dashboard-2021/components.module.ts","webpack://entourage/./app/javascript/src/dashboards/dashboards.module.ts","webpack://entourage/./app/javascript/src/dashboards/services/dashboards-factory.service.ts","webpack://entourage/./app/javascript/src/dashboards/settings/dashboard-settings.module.ts","webpack://entourage/./app/javascript/src/dashboards/settings/services/project-reporting-request-obj.service.ts","webpack://entourage/./app/javascript/src/dashboards/settings/values/chart-colors-2021.constant.ts","webpack://entourage/./app/javascript/src/dashboards/settings/values/dashboard-settings-2021.value.ts","webpack://entourage/./app/javascript/src/dashboards/views/views.module.ts","webpack://entourage/./app/javascript/src/deals/components/components.module.ts","webpack://entourage/./app/javascript/src/deals/deals.module.ts","webpack://entourage/./app/javascript/src/deals/modals/modals.module.ts","webpack://entourage/./app/javascript/src/deals/services/deals.service.ts","webpack://entourage/./app/javascript/src/deals/values/client-hourly-expenses-options.constant.ts","webpack://entourage/./app/javascript/src/deals/values/delivery-options.constant.ts","webpack://entourage/./app/javascript/src/deals/values/deployment-locations.constant.ts","webpack://entourage/./app/javascript/src/deals/values/entourage-subsidiaries.constant.ts","webpack://entourage/./app/javascript/src/deals/values/internal-job-types.constant.ts","webpack://entourage/./app/javascript/src/deals/values/period-of-payment-options.constant.ts","webpack://entourage/./app/javascript/src/departments/departments.module.ts","webpack://entourage/./app/javascript/src/directives/advanced_search/advanced_search.module.ts","webpack://entourage/./app/javascript/src/directives/components/close-deck-button/close-deck-button.component.ts","webpack://entourage/./app/javascript/src/directives/directives.module.ts","webpack://entourage/./app/javascript/src/directives/directives/multi-select-checker/multi-select-checker.directive.ts","webpack://entourage/./app/javascript/src/directives/directives/multiple-required/multiple-required.directive.ts","webpack://entourage/./app/javascript/src/directives/directives/outside-click-dropdown/outside-click-dropdown.directive.ts","webpack://entourage/./app/javascript/src/directives/directives/ui-select-keep-search-query/ui-select-keep-search-query.directive.ts","webpack://entourage/./app/javascript/src/directives/kpis/components/components.module.ts","webpack://entourage/./app/javascript/src/directives/kpis/kpis.module.ts","webpack://entourage/./app/javascript/src/directives/kpis/services/kpi-detail-directives-config.service.ts","webpack://entourage/./app/javascript/src/directives/layout/components/root-view/root-view.controller.ts","webpack://entourage/./app/javascript/src/directives/money/money.module.ts","webpack://entourage/./app/javascript/src/directives/money/values/currencies.constant.ts","webpack://entourage/./app/javascript/src/directives/money/values/default-currency.value.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/components/prsm-table-highlights/prsm-table-highlights.component.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/components/prsm-table-highlights/prsm-table-highlights.controller.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/components/prsm-table.module.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/prsm-table.module.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/services/prsm-table-attribute.service.ts","webpack://entourage/./app/javascript/src/directives/prsm_table/services/prsm-table-helper.factory.ts","webpack://entourage/./app/javascript/src/directives/tinymce/components/ui-tinymce-mega.component.ts","webpack://entourage/./app/javascript/src/directives/tinymce/components/ui-tinymce-mega.controller.ts","webpack://entourage/./app/javascript/src/directives/tinymce/ui-tinymce-mega.module.ts","webpack://entourage/./app/javascript/src/directives/tinymce/values/tinymce-config.constant.ts","webpack://entourage/./app/javascript/src/documents/components/components.module.ts","webpack://entourage/./app/javascript/src/documents/components/external-cv-uploader/external-cv-uploader.component.ts","webpack://entourage/./app/javascript/src/documents/components/external-cv-uploader/external-cv-uploader.controller.ts","webpack://entourage/./app/javascript/src/documents/components/external-cv-uploader/external-cv-uploader.module.ts","webpack://entourage/./app/javascript/src/documents/documents.module.ts","webpack://entourage/./app/javascript/src/documents/modals/modals.factory.ts","webpack://entourage/./app/javascript/src/documents/modals/modals.module.ts","webpack://entourage/./app/javascript/src/documents/services/documents-factory.service.ts","webpack://entourage/./app/javascript/src/documents/services/file-type-serializer.factory.ts","webpack://entourage/./app/javascript/src/driving_licences/driving_licences.module.ts","webpack://entourage/./app/javascript/src/employees/components/components.module.ts","webpack://entourage/./app/javascript/src/employees/components/employees-list/employees-list.component.ts","webpack://entourage/./app/javascript/src/employees/components/employees-list/employees-list.controller.ts","webpack://entourage/./app/javascript/src/employees/employees.module.ts","webpack://entourage/./app/javascript/src/employees/modals/employees-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/employees/modals/modals.module.ts","webpack://entourage/./app/javascript/src/employees/services/employees.factory.ts","webpack://entourage/./app/javascript/src/employees/views/views.module.ts","webpack://entourage/./app/javascript/src/employees_candidates_projects/employees_candidates_projects.module.ts","webpack://entourage/./app/javascript/src/employees_candidates_projects/services/employees_candidates_projects.service.ts","webpack://entourage/./app/javascript/src/expert_profiles/expert_profiles.module.ts","webpack://entourage/./app/javascript/src/expert_profiles/modals/expert-profiles-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/expert_profiles/modals/modals.module.ts","webpack://entourage/./app/javascript/src/expert_profiles/services/expert_profiles.service.ts","webpack://entourage/./app/javascript/src/expert_profiles/views/views.module.ts","webpack://entourage/./app/javascript/src/filters/call-to-phone-number/call-to-phone-number.filter.ts","webpack://entourage/./app/javascript/src/filters/camel-case-to-hyphens/camel-case-to-hyphens.filter.ts","webpack://entourage/./app/javascript/src/filters/capitalize-word/capitalize-word.filter.ts","webpack://entourage/./app/javascript/src/filters/filters.module.ts","webpack://entourage/./app/javascript/src/filters/format-if-empty/format-if-empty.filter.ts","webpack://entourage/./app/javascript/src/filters/free-date-text-format/free-date-text-format.filter.ts","webpack://entourage/./app/javascript/src/filters/german-date-format/german-date-format.filter.ts","webpack://entourage/./app/javascript/src/filters/german-time-format/german-time-format.filter.ts","webpack://entourage/./app/javascript/src/filters/percentage/percentage.filter.ts","webpack://entourage/./app/javascript/src/filters/phone-number/phone-number.filter.ts","webpack://entourage/./app/javascript/src/filters/strip-whitespace/strip-whitespace.filter.ts","webpack://entourage/./app/javascript/src/filters/to_trusted/to_trusted.filter.ts","webpack://entourage/./app/javascript/src/functional_areas/functional_areas.module.ts","webpack://entourage/./app/javascript/src/graduations/graduations.module.ts","webpack://entourage/./app/javascript/src/hierarchies/hierarchies.module.ts","webpack://entourage/./app/javascript/src/highschools/components/components.module.ts","webpack://entourage/./app/javascript/src/highschools/highschools.module.ts","webpack://entourage/./app/javascript/src/invoices/components/components.module.ts","webpack://entourage/./app/javascript/src/invoices/invoices.module.ts","webpack://entourage/./app/javascript/src/invoices/services/invoices.factory.ts","webpack://entourage/./app/javascript/src/job_categories/job_categories.module.ts","webpack://entourage/./app/javascript/src/job_offers/components/components.module.ts","webpack://entourage/./app/javascript/src/job_offers/job_offers.module.ts","webpack://entourage/./app/javascript/src/job_offers/services/job-offers.factory.ts","webpack://entourage/./app/javascript/src/job_offers/values/job-offer-main-categories.constant.ts","webpack://entourage/./app/javascript/src/job_offers/views/views.module.ts","webpack://entourage/./app/javascript/src/job_types/job_types.module.ts","webpack://entourage/./app/javascript/src/languages/components/components.module.ts","webpack://entourage/./app/javascript/src/languages/languages.module.ts","webpack://entourage/./app/javascript/src/leadership_experiences/leadership_experiences.module.ts","webpack://entourage/./app/javascript/src/locations/components/components.module.ts","webpack://entourage/./app/javascript/src/locations/locations.module.ts","webpack://entourage/./app/javascript/src/locations/services/locations.factory.ts","webpack://entourage/./app/javascript/src/login/login.module.ts","webpack://entourage/./app/javascript/src/login/modals/login-form/login_modal_mixin.factory.ts","webpack://entourage/./app/javascript/src/login/modals/modals.module.ts","webpack://entourage/./app/javascript/src/login/services/auth_service.factory.ts","webpack://entourage/./app/javascript/src/login/services/session.service.ts","webpack://entourage/./app/javascript/src/login/services/user_sessions.service.ts","webpack://entourage/./app/javascript/src/login/views/views.module.ts","webpack://entourage/./app/javascript/src/marital_statuses/marital_statuses.module.ts","webpack://entourage/./app/javascript/src/modals/modals.module.ts","webpack://entourage/./app/javascript/src/modals/modals/modals.module.ts","webpack://entourage/./app/javascript/src/modals/services/modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/organisation_units/components/components.module.ts","webpack://entourage/./app/javascript/src/organisation_units/directives/directives.module.ts","webpack://entourage/./app/javascript/src/organisation_units/organisation_units.module.ts","webpack://entourage/./app/javascript/src/outlook_delivery/components/components.module.ts","webpack://entourage/./app/javascript/src/outlook_delivery/outlook_delivery.module.ts","webpack://entourage/./app/javascript/src/outlook_delivery/services/outlook_delivery.service.ts","webpack://entourage/./app/javascript/src/persons/components/components.module.ts","webpack://entourage/./app/javascript/src/persons/modals/modals.module.ts","webpack://entourage/./app/javascript/src/persons/modals/services/person-modals.factory.ts","webpack://entourage/./app/javascript/src/persons_graduations/components/components.module.ts","webpack://entourage/./app/javascript/src/persons_graduations/persons_graduations.module.ts","webpack://entourage/./app/javascript/src/priorities/components/components.module.ts","webpack://entourage/./app/javascript/src/project_reportings/components/components.module.ts","webpack://entourage/./app/javascript/src/project_reportings/filters/sum-week-percentage.filter.ts","webpack://entourage/./app/javascript/src/project_reportings/filters/sum-week.filter.ts","webpack://entourage/./app/javascript/src/project_reportings/modals/kpi-operative-edit-modal.factory.ts","webpack://entourage/./app/javascript/src/project_reportings/modals/modals.module.ts","webpack://entourage/./app/javascript/src/project_reportings/project_reportings.module.ts","webpack://entourage/./app/javascript/src/project_reportings/services/longlist-entry-serializer.factory.ts","webpack://entourage/./app/javascript/src/project_reportings/services/project-reportings.service.ts","webpack://entourage/./app/javascript/src/project_reportings/views/views.module.ts","webpack://entourage/./app/javascript/src/projects/components/components.module.ts","webpack://entourage/./app/javascript/src/projects/modals/modals.module.ts","webpack://entourage/./app/javascript/src/projects/modals/services/projects-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/projects/projects.module.ts","webpack://entourage/./app/javascript/src/projects/services/projects-hot-keys.factory.ts","webpack://entourage/./app/javascript/src/projects/services/projects.service.ts","webpack://entourage/./app/javascript/src/projects/views/views.module.ts","webpack://entourage/./app/javascript/src/provisions/provisions.module.ts","webpack://entourage/./app/javascript/src/provisions/services/provisions.service.ts","webpack://entourage/./app/javascript/src/quicklists/components/components.module.ts","webpack://entourage/./app/javascript/src/quicklists/modals/choose-quicklist-modal.factory.ts","webpack://entourage/./app/javascript/src/quicklists/modals/modals.module.ts","webpack://entourage/./app/javascript/src/quicklists/quicklists.module.ts","webpack://entourage/./app/javascript/src/quicklists/services/quicklists.service.ts","webpack://entourage/./app/javascript/src/quicklists/values/quicklists.value.ts","webpack://entourage/./app/javascript/src/quicklists/views/views.module.ts","webpack://entourage/./app/javascript/src/regions/regions.module.ts","webpack://entourage/./app/javascript/src/researcher_commissions/components/components.module.ts","webpack://entourage/./app/javascript/src/researcher_commissions/researcher_commissions.module.ts","webpack://entourage/./app/javascript/src/researcher_commissions/services/researcher_commissions.factory.ts","webpack://entourage/./app/javascript/src/saved_searches/components/components.module.ts","webpack://entourage/./app/javascript/src/saved_searches/saved_searches.module.ts","webpack://entourage/./app/javascript/src/saved_searches/services/advanced-search-condition-serializer.factory.ts","webpack://entourage/./app/javascript/src/saved_searches/services/saved-searches.factory.ts","webpack://entourage/./app/javascript/src/saved_searches/values/saved-searches-singleton.value.ts","webpack://entourage/./app/javascript/src/sendouts/components/components.module.ts","webpack://entourage/./app/javascript/src/sendouts/sendouts.module.ts","webpack://entourage/./app/javascript/src/sendouts/services/sendouts-factory.service.ts","webpack://entourage/./app/javascript/src/services/autocompletes.factory.ts","webpack://entourage/./app/javascript/src/services/collection-proxy.factory.ts","webpack://entourage/./app/javascript/src/services/date-serializer.factory.ts","webpack://entourage/./app/javascript/src/services/daterangepicker-options.factory.ts","webpack://entourage/./app/javascript/src/services/deck-controller-mixin.factory.ts","webpack://entourage/./app/javascript/src/services/duplicate-checker.factory.ts","webpack://entourage/./app/javascript/src/services/duplicate-checker.service.ts","webpack://entourage/./app/javascript/src/services/dynamic-route.service.ts","webpack://entourage/./app/javascript/src/services/edit-util-mixin.factory.ts","webpack://entourage/./app/javascript/src/services/focus.factory.ts","webpack://entourage/./app/javascript/src/services/free-date-serializer.factory.ts","webpack://entourage/./app/javascript/src/services/highlighter.factory.ts","webpack://entourage/./app/javascript/src/services/kpi-serializer.factory.ts","webpack://entourage/./app/javascript/src/services/make-collection-proxy.factory.ts","webpack://entourage/./app/javascript/src/services/mg-paginate.service.ts","webpack://entourage/./app/javascript/src/services/my-csrf.provider.ts","webpack://entourage/./app/javascript/src/services/person-transformer.factory.ts","webpack://entourage/./app/javascript/src/services/recursive-access.factory.ts","webpack://entourage/./app/javascript/src/services/redirect-location.factory.ts","webpack://entourage/./app/javascript/src/services/resource-dependency-injector.factory.ts","webpack://entourage/./app/javascript/src/services/sanitize-serializer.factory.ts","webpack://entourage/./app/javascript/src/services/services.module.ts","webpack://entourage/./app/javascript/src/services/sidebar-factory.service.ts","webpack://entourage/./app/javascript/src/services/sidebar-service.service.ts","webpack://entourage/./app/javascript/src/services/state-generator.provider.ts","webpack://entourage/./app/javascript/src/services/unpack-envelope-interceptor.factory.ts","webpack://entourage/./app/javascript/src/services/url-serializer.factory.ts","webpack://entourage/./app/javascript/src/tags/components/components.module.ts","webpack://entourage/./app/javascript/src/tags/tags.module.ts","webpack://entourage/./app/javascript/src/textkernel/modals/modals.module.ts","webpack://entourage/./app/javascript/src/textkernel/modals/textkernel-modal-mixin.factory.ts","webpack://entourage/./app/javascript/src/textkernel/textkernel.module.ts","webpack://entourage/./app/javascript/src/trackings/components/components.module.ts","webpack://entourage/./app/javascript/src/trackings/components/trackings/trackings.component.ts","webpack://entourage/./app/javascript/src/trackings/trackings.module.ts","webpack://entourage/./app/javascript/src/transaction_bases/components/components.module.ts","webpack://entourage/./app/javascript/src/transaction_bases/transaction_bases.module.ts","webpack://entourage/./app/javascript/src/users/components/components.module.ts","webpack://entourage/./app/javascript/src/users/components/vws-users-table-body/vws-users-table-body.component.ts","webpack://entourage/./app/javascript/src/users/modals/account-settings/account-settings-modal.factory.ts","webpack://entourage/./app/javascript/src/users/modals/account-settings/account-settings.component.ts","webpack://entourage/./app/javascript/src/users/modals/modals.module.ts","webpack://entourage/./app/javascript/src/users/users.module.ts","webpack://entourage/./app/javascript/src/users/values/users-singleton.value.ts","webpack://entourage/./app/javascript/src/values/auth-events.constant.ts","webpack://entourage/./app/javascript/src/values/camel-case-to-hyphens.constant.ts","webpack://entourage/./app/javascript/src/values/csrf.constant.ts","webpack://entourage/./app/javascript/src/values/free-date-options.constant.ts","webpack://entourage/./app/javascript/src/values/loader-template-url.constant.ts","webpack://entourage/./app/javascript/src/values/routing-options/expert-profile-opts.constant.ts","webpack://entourage/./app/javascript/src/values/routing-options/routing-options.module.ts","webpack://entourage/./app/javascript/src/values/routing-options/saved-search-opts.constant.ts","webpack://entourage/./app/javascript/src/values/sidebar-states.value.ts","webpack://entourage/./app/javascript/src/values/values.module.ts","webpack://entourage/./app/javascript/src/working_relationships/components/components.module.ts","webpack://entourage/./app/javascript/src/working_relationships/services/working-relationships.factory.ts","webpack://entourage/./app/javascript/src/working_relationships/working-relationships.module.ts","webpack://entourage/./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import QualificationTemplateCtrl from \"./qualification-template.controller\";\nimport qualificationTemplateTemplate from \"./qualification-template.template.html\";\n\nangular.module(\"action_types.components\").component(\"qualificationTemplate\", {\n bindings: {\n object: \"<\",\n saveChanges: \"=\",\n action: \" void;\n}\n\nexport default class QualificationTemplateCtrl {\n public jobChangeMotivationDescriptionPopover: string;\n\n constructor() {\n this.jobChangeMotivationDescriptionPopover = actionTypesJobChangeMotivationDescriptionPopover;\n }\n\n private saveChanges(callback: (scope: IExtendedScope) => void): void {\n }\n\n public sendQualificationSummaryEmail(): void {\n this.saveChanges((scope: IExtendedScope) => {\n scope.action.candidate.openQualificationSummaryModal();\n scope.$close(scope.action);\n });\n }\n}","import briefingTemplateTemplate from \"./briefing-template.template.html\";\n\nangular.module(\"action_types.components\").component(\"briefingTemplate\", {\n bindings: {\n action: \"<\",\n object: \" {\n this.cpjoin = cpjoin;\n this.loading = false;\n }\n );\n }\n };\n}\n","import DebriefingTemplateCtrl from \"./debriefing-template.controller\";\nimport debriefingTemplateTemplate from \"./debriefing-template.template.html\";\n\nangular.module(\"action_types.components\").component(\"debriefingTemplate\", {\n bindings: {\n action: \"=\",\n object: \">();\nexport const prioritiesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/priorities\",\n responses: {\n 200: PrioritiesSchema,\n },\n summary: \"Get all priorities\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TGraduation } from \"../graduations\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst GraduationsSchema = c.type>();\nexport const graduationsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/graduations\",\n responses: {\n 200: GraduationsSchema,\n },\n summary: \"Get all graduations\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TJobCategories } from \"../job_categories\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst JobCategoriesSchema = c.type>();\nexport const jobCategoriesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/job_categories\",\n responses: {\n 200: JobCategoriesSchema,\n },\n summary: \"Get all job categories\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TDepartments } from \"../departments\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst DepartmentsSchema = c.type>();\nconst SingleDepartmentSchema = c.type>();\n\nexport const departmentsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/departments\",\n responses: {\n 200: DepartmentsSchema,\n },\n summary: \"Get all departments\",\n },\n getHierarchies: {\n method: \"GET\",\n path: \"/departments/:id/hierarchies\",\n responses: {\n 200: SingleDepartmentSchema,\n },\n summary: \"Get a department by ID\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TJobTypes } from \"../job_types\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst JobTypesSchema = c.type>();\nexport const jobTypesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/job_types\",\n responses: {\n 200: JobTypesSchema,\n },\n summary: \"Get all job types\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TDrivingLicence } from \"../driving_licences\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst DrivingLicenceSchema = c.type>();\nexport const drivingLicencesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/driving_licences\",\n responses: {\n 200: DrivingLicenceSchema,\n },\n summary: \"Get all driving licenses\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TCareerLevel } from \"../career_levels\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst CareerLevelsSchema = c.type>();\nexport const careerLevelsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/career_levels\",\n responses: {\n 200: CareerLevelsSchema,\n },\n summary: \"Get all career levels\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TFunctionalArea } from \"../functional_areas\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst FunctionalAreasSchema = c.type>();\nexport const functionalAreasContract = c.router({\n query: {\n method: \"GET\",\n path: \"/functional_areas\",\n responses: {\n 200: FunctionalAreasSchema,\n },\n summary: \"Get all functional areas\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { THighschool } from \"../highschools\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst HighschoolsSchema = c.type>();\nexport const highschoolsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/highschools\",\n responses: {\n 200: HighschoolsSchema,\n },\n summary: \"Get all highschools\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TCourse } from \"../courses\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst CoursesSchema = c.type>();\nexport const coursesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/courses\",\n responses: {\n 200: CoursesSchema,\n },\n summary: \"Get all courses\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TLeadershipExperience } from \"../leadership_experiences\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst LeadershipExperiencesSchema = c.type>();\nexport const leadershipExperiencesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/leadership_experiences\",\n responses: {\n 200: LeadershipExperiencesSchema,\n },\n summary: \"Get all Leadership Experiences\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TBaseResource } from \"../../api-routing\";\nimport { TCancelationPeriod } from \"../cancelation_periods\";\n\nconst c = initContract();\n\nconst CancelationPeriodsSchema = c.type>();\nexport const cancelationPeriodsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/cancelation_periods\",\n responses: {\n 200: CancelationPeriodsSchema,\n },\n summary: \"Get all cancelation periods\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TMaritalStatus } from \"../marital_status\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst MaritalStatusSchema = c.type>();\nexport const maritalStatusesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/marital_statuses\",\n responses: {\n 200: MaritalStatusSchema,\n },\n summary: \"Get all marital statuses\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TBaseResource } from \"../../api-routing\";\nimport { THierarchy } from \"../hierarchies\";\n\nconst c = initContract();\n\nconst HierarchiesSchema = c.type>();\nexport const hierarchiesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/hierarchies\",\n responses: {\n 200: HierarchiesSchema,\n },\n summary: \"Get all hierarchies\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TOrganisationUnit } from \"../organisation_units\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst OrganisationUnitsSchema = c.type>();\nexport const organisationUnitsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/organisation_units\",\n responses: {\n 200: OrganisationUnitsSchema,\n },\n summary: \"Get all organisation units\",\n },\n salesUnits: {\n method: \"GET\",\n path: \"/organisation_units/sales_units\",\n responses: {\n 200: OrganisationUnitsSchema,\n },\n summary: \"Get all sales units\",\n },\n});\n\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TRegion } from \"../regions\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\nconst RegionsSchema = c.type>();\nexport const RegionsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/regions\",\n responses: {\n 200: RegionsSchema,\n },\n summary: \"Get all regions\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TLanguage } from \"../languages\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst LanguagesSchema = c.type>();\nexport const languagesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/languages\",\n responses: {\n 200: LanguagesSchema,\n },\n summary: \"Get all languages\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TCountry } from \"../countries\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\nconst CountriesSchema = c.type>();\nexport const countriesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/countries\",\n responses: {\n 200: CountriesSchema,\n },\n summary: \"Get all countries\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\nimport { z } from \"zod\";\n\nimport { TBaseResource } from \"../../api-routing\";\nimport { TTransactionBases } from \"../transaction_bases\";\n\nconst c = initContract();\n\nconst TransactionBasisSchema = c.type>();\nexport const transactionBasisContract = c.router({\n query: {\n method: \"GET\",\n path: \"/transaction_basis\",\n responses: {\n 200: TransactionBasisSchema,\n },\n query: z.object({\n for_companies: z.boolean().optional(),\n }),\n summary: \"Get all transaction bases\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\nimport { z } from \"zod\";\n\nimport { TBaseResource } from \"../../api-routing\";\nimport { TCompaniesTransactionBases } from \"../companies_transaction_bases\";\n\nconst c = initContract();\n\nconst CompaniesTransactionBasisSchema = c.type>();\nconst SingleCompaniesTransactionBasisSchema = c.type>();\n\nconst SingleCompaniesTransactionBasisBodySchema = z.object({\n companies_transaction_basis: z.object({\n company_id: z.coerce.number(),\n }),\n});\n\nexport const companiesTransactionBasisContract = c.router({\n query: {\n method: \"GET\",\n path: \"/companies_transaction_basis\",\n responses: {\n 200: CompaniesTransactionBasisSchema,\n },\n summary: \"Get all companies transaction bases\",\n },\n update: {\n method: \"POST\",\n path: \"/companies_transaction_basis/:id\",\n responses: {\n 200: SingleCompaniesTransactionBasisSchema,\n },\n body: SingleCompaniesTransactionBasisBodySchema,\n pathParams: z.object({\n id: z.coerce.number(),\n }),\n summary: \"Update a companies transaction bases\",\n },\n create: {\n method: \"POST\",\n path: \"/companies_transaction_basis\",\n responses: {\n 200: SingleCompaniesTransactionBasisSchema,\n },\n body: SingleCompaniesTransactionBasisBodySchema,\n summary: \"Create a companies transaction bases\",\n },\n delete: {\n method: \"DELETE\",\n path: \"/companies_transaction_basis/:id\",\n responses: {\n 200: SingleCompaniesTransactionBasisSchema,\n },\n pathParams: z.object({\n id: z.coerce.number(),\n }),\n body: SingleCompaniesTransactionBasisBodySchema,\n summary: \"Delete a transaction bases\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TBaseResource } from \"../../api-routing\";\nimport { TActionType } from \"../action_types\";\n\nconst c = initContract();\n\nconst ActionTypesSchema = c.type>();\nexport const actionTypesContract = c.router({\n query: {\n method: \"GET\",\n path: \"/action_types\",\n responses: {\n 200: ActionTypesSchema,\n },\n summary: \"Get all action types\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { TTag } from \"../tags\";\nimport { TBaseResource } from \"../../api-routing\";\n\nconst c = initContract();\n\nconst TagsSchema = c.type>();\nexport const tagsContract = c.router({\n query: {\n method: \"GET\",\n path: \"/tags\",\n responses: {\n 200: TagsSchema,\n },\n summary: \"Get all tags\",\n },\n});\n","import { initContract } from \"@ts-rest/core\";\n\nimport { prioritiesContract } from \"../priorities/services/priorities.contract\";\nimport { graduationsContract } from \"../graduations/services/graduations.contract\";\nimport { jobCategoriesContract } from \"../job_categories/services/job_categories.contract\";\nimport { departmentsContract } from \"../departments/services/departments.contract\";\nimport { jobTypesContract } from \"../job_types/services/job_types.contract\";\nimport { drivingLicencesContract } from \"../driving_licences/services/driving_licences.contract\";\nimport { careerLevelsContract } from \"../career_levels/services/career_levels.contract\";\nimport { functionalAreasContract } from \"../functional_areas/services/functional_areas.contract\";\nimport { highschoolsContract } from \"../highschools/services/highschools.contract\";\nimport { coursesContract } from \"../courses/services/courses.contract\";\nimport { leadershipExperiencesContract } from \"../leadership_experiences/services/leadership_experiences.contract\";\nimport { cancelationPeriodsContract } from \"../cancelation_periods/services/cancelation_periods.contract\";\nimport { maritalStatusesContract } from \"../marital_statuses/services/marital_status.contract\";\nimport { hierarchiesContract } from \"../hierarchies/services/hierarchies.contract\";\nimport { organisationUnitsContract } from \"../organisation_units/services/organisation_units.contract\";\nimport { RegionsContract } from \"../regions/services/regions.contract\";\nimport { languagesContract } from \"../languages/services/languages.contract\";\nimport { countriesContract } from \"../countries/services/countries.contract\";\nimport { transactionBasisContract } from \"../transaction_bases/services/transaction_bases.contract\";\nimport { companiesTransactionBasisContract } from \"../companies_transaction_bases/services/companies_transaction_bases.contract\";\nimport { actionTypesContract } from \"../action_types/services/action_types.contract\";\nimport { tagsContract } from \"../tags/services/tags.contract\";\n\nconst c = initContract();\n\nexport const contract = c.router(\n {\n priorities: prioritiesContract,\n graduations: graduationsContract,\n jobCategories: jobCategoriesContract,\n departments: departmentsContract,\n jobTypes: jobTypesContract,\n drivingLicences: drivingLicencesContract,\n careerLevels: careerLevelsContract,\n functionalAreas: functionalAreasContract,\n highschools: highschoolsContract,\n courses: coursesContract,\n leadershipExperiences: leadershipExperiencesContract,\n cancelationPeriods: cancelationPeriodsContract,\n maritalStatuses: maritalStatusesContract,\n hierarchies: hierarchiesContract,\n organisationUnits: organisationUnitsContract,\n regions: RegionsContract,\n languages: languagesContract,\n countries: countriesContract,\n transactionBases: transactionBasisContract,\n companiesTransactionBasis: companiesTransactionBasisContract,\n actionTypes: actionTypesContract,\n tags: tagsContract,\n },\n {\n strictStatusCodes: true,\n }\n);\n","export const CSRF_HEADER_NAME: string = \"X-CSRF-TOKEN\";\nexport const CSRF_COOKIE_NAME: string = \"XSRF-TOKEN\";\n","import { initClient, tsRestFetchApi } from \"@ts-rest/core\";\nimport { contract } from \"../api-routing/contract\";\n\nimport { getCookie } from \"typescript-cookie\";\nimport { CSRF_COOKIE_NAME, CSRF_HEADER_NAME } from \"../services/my_csrf.service\";\n\nexport const baseClient = initClient(contract, {\n baseUrl: \"\",\n baseHeaders: {},\n api: async (args) => {\n args.headers[CSRF_HEADER_NAME] = getCookie(CSRF_COOKIE_NAME);\n\n return tsRestFetchApi(args);\n },\n});\n\nconst requestCache: { [key: string]: Array | null } = {};\n\nexport function cached(target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const original: any = descriptor.value;\n const targetProperty: string = propertyKey;\n\n descriptor.value = function (...args) {\n let cacheIdentifier = `${this.$$moduleName}-${targetProperty}-cache`;\n\n if (requestCache[cacheIdentifier]) {\n return new Promise((resolve, reject) => {\n resolve(requestCache[cacheIdentifier]);\n });\n } else {\n return original.call().then((response) => {\n return (requestCache[cacheIdentifier] = response);\n });\n }\n };\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TCancelationPeriod } from \"../cancelation_periods\";\n\nexport class CancelationPeriod {\n private id: number;\n private name: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.cancelationPeriods.query().then((response) => {\n return response.body.data.map((element) => {\n return new CancelationPeriod(element);\n });\n });\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TGraduation } from \"../graduations\";\n\nexport class Graduation {\n private id: number;\n private name: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.graduations.query().then((response) => {\n return response.body.data.map((element) => {\n return new Graduation(element);\n });\n });\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { THierarchy } from \"../hierarchies\";\n\nexport class Hierarchy {\n private id: number;\n private name: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.hierarchies.query().then((response) => {\n return response.body.data.map((element) => {\n return new Hierarchy(element);\n });\n });\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TDepartments } from \"../departments\";\nimport { TTag } from \"../../tags/tags\";\nimport { JobCategory } from \"../../job_categories/services/job_categories.service\";\nimport { Hierarchy } from \"../../hierarchies/services/hierarchies.service\";\n\nexport class Department {\n private id: number;\n private name: string;\n private slug: string;\n private jobCategories?: TTag[];\n public hierarchies?: Hierarchy[];\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) {\n let object = deepMapKeys>(fields, camelCase);\n object.jobCategories = object.jobCategories?.map((element) => (new JobCategory(element)) as TTag);\n object.hierarchies = object.hierarchies?.map((element) => (new Hierarchy(element)) as TTag);\n\n Object.assign(this, object);\n }\n }\n\n @cached\n public static getAll() {\n return baseClient.departments.query().then((response) => {\n return response.body.data.map((element) => {\n return new Department(element);\n });\n });\n }\n\n public async queryHierarchies() {\n return baseClient.departments.getHierarchies({ params: { id: this.id?.toString() } }).then((response) => {\n return this.hierarchies = response.body.data.hierarchies.map((hierarchy) => new Hierarchy(hierarchy));\n });\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TJobCategories } from \"../job_categories\";\nimport { TDepartments } from \"../../departments/departments\";\nimport { Department } from \"../../departments/services/departments.service\";\n\nexport class JobCategory {\n private serviceName: string = \"JobCategoriesFactory\";\n private id: number;\n private name: string;\n private slug: string;\n private departments?: TDepartments[];\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) {\n let object = deepMapKeys>(fields, camelCase);\n object.departments = object.departments?.map((element) => (new Department(element)) as TDepartments);\n\n Object.assign(this, object);\n }\n }\n\n @cached\n public static getAll() {\n return baseClient.jobCategories.query().then((response) => {\n return response.body.data.map((element) => {\n return new JobCategory(element);\n });\n });\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TJobTypes } from \"../job_types\";\n\nexport class JobType {\n private id: number;\n private name: string;\n private slug: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n public isPermanent() {\n return this.slug === \"permanent\";\n }\n\n public isProjectConsulting() {\n return this.slug === \"project-consulting\";\n }\n\n public isFreelancer() {\n return this.slug === \"freelancer\";\n }\n\n public isQuickCheck() {\n return this.slug === \"quick-check\";\n }\n\n public isManagementConsulting() {\n return this.slug === \"management-consulting\";\n }\n\n @cached\n public static getAll() {\n return baseClient.jobTypes.query().then((response) => {\n return response.body.data.map((element) => {\n return new JobType(element);\n });\n });\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\nimport _ from \"underscore\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TActionType } from \"../action_types\";\n\nimport { CancelationPeriod } from \"../../cancelation_periods/services/cancelation_periods.service\";\nimport { Graduation } from \"../../graduations/services/graduations.service\";\nimport { JobCategory } from \"../../job_categories/services/job_categories.service\";\nimport { JobType } from \"../../job_types/services/job_types.service\";\n\nexport class ActionType {\n private id: number;\n public completeDescription: string;\n private system: boolean;\n public typeName: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n public isSendoutAction() {\n return _.contains([\"profile-sent\", \"sendout\", \"profile-saved\"], this.typeName);\n }\n\n public isTelephoneAction() {\n return _.contains([\"telephone-meeting\", \"telephone-interview\"], this.typeName);\n }\n\n public isInterviewActionType() {\n return _.contains([\"telephone-interview\", \"presence-interview\"], this.typeName);\n }\n\n public isDealActionType() {\n return _.contains([\"closing\", \"deal\"], this.typeName);\n }\n\n public getActionTypeOptions(object) {\n let type = object && ActionTypeOptions[object.resourceType] ? object.resourceType : \"default\";\n\n return ActionTypeOptions[type][this.typeName] || {};\n }\n\n @cached\n public static getAll() {\n return baseClient.actionTypes.query().then((response) => {\n return response.body.data.map((element) => {\n return new ActionType(element);\n });\n });\n }\n\n public static async getAllWithoutVerbose() {\n let actionTypes: ActionType[] = await ActionType.getAll();\n return _.filter(actionTypes, (actionType: ActionType) => {\n return !actionType.system;\n });\n }\n\n public static async filter(arrOfTypeNames) {\n let actionTypes = await ActionType.getAll();\n return _.chain(actionTypes)\n .filter((actionType: ActionType) => {\n return _.contains(arrOfTypeNames, actionType.typeName);\n })\n .value();\n }\n}\n\nexport const ActionTypeOptions = {\n EmployeesProjects: {\n qualification: {\n actionTemplate: \"qualification-employees-projects-template\",\n },\n },\n Employee: {\n qualification: {\n actionTemplate: \"qualification-employees-projects-template\",\n },\n },\n default: {\n qualification: {\n actionTemplate: \"qualification-template\",\n resolves: function () {\n return [Graduation.getAll(), CancelationPeriod.getAll()];\n },\n },\n \"initial-interview\": {\n actionTemplate: \"first-call-template\",\n resolves: function () {\n return [JobCategory.getAll(), JobType.getAll()];\n },\n },\n briefing: {\n actionTemplate: \"briefing-template\",\n convertToEvent: true,\n },\n \"briefing-appointment\": {\n actionTemplate: \"briefing-template\",\n },\n debriefing: {\n actionTemplate: \"debriefing-template\",\n convertToEvent: true,\n },\n \"debriefing-appointment\": {\n actionTemplate: \"debriefing-template\",\n },\n \"phone-call\": {\n convertToEvent: true,\n },\n sendout: {\n hasTracking: true,\n },\n \"pitch-sendout\": {\n hasTracking: true,\n },\n \"project-summary-sent\": {\n hasTracking: true,\n },\n \"skill-matrix-sent\": {\n hasTracking: true,\n },\n },\n};\n","import { ActionType } from \"./action_types.service\";\n\nangular\n .module(\"action_types\")\n .factory(\"ActionTypeSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return _.isArray(data) ? data.map((element) => new ActionType(element)) : new ActionType(data);\n };\n this.serialize = function (data) {\n return data;\n };\n });\n },\n ])\n .service(\"ActionTypesFactory\", ActionType);\n","export class QuicklistsCandidatesListCtrl {\n static $inject = [\"CandidatesFactory\", \"PrsmTableAttributeService\"];\n\n constructor(private CandidateService: any, private PrsmTableAttributeService: any) {}\n\n public quicklist: any;\n public candidates_attributes: any;\n\n public $onInit() {\n var quicklist_entry_attributes = {\n deleteEntry: { show: !this.quicklist.isReadOnly() },\n kpis: { show: false },\n };\n\n this.candidates_attributes = new this.PrsmTableAttributeService(\n \"quicklist-candidates-table-attributes\",\n _.extend(angular.copy(this.CandidateService.defaultTableAttributes), quicklist_entry_attributes)\n ).getAttributes();\n }\n}\n","import { QuicklistsCandidatesListCtrl } from \"./quicklist-candidates-list.controller\";\nimport candidatesListTemplate from \"./candidates-list.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistCandidatesList\", {\n bindings: {\n advancedQuery: \"<\",\n quicklist: \"<\",\n quicklistEntriesLazyLoading: \"<\",\n setKpiKey: \"=\",\n steps: \"<\",\n },\n template: candidatesListTemplate,\n controller: QuicklistsCandidatesListCtrl,\n});\n","import candidatesSearchTemplate from \"./candidates-search.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistCandidatesSearch\", {\n bindings: {\n query: \"<\",\n advancedQuery: \"<\",\n updateEntries: \"&\",\n },\n template: candidatesSearchTemplate,\n});\n","export class QuicklistsEmployeesListCtrl {\n static $inject = [\"EmployeesFactory\", \"PrsmTableAttributeService\"];\n\n constructor(private EmployeeService: any, private PrsmTableAttributeService: any) {}\n\n public employees_attributes: any;\n public quicklist: any;\n\n public $onInit() {\n var quicklist_entry_attributes = {\n deleteEntry: { show: !this.quicklist.isReadOnly() },\n kpis: { show: false },\n };\n\n this.employees_attributes = new this.PrsmTableAttributeService(\n \"quicklist-employees-table-attributes\",\n _.extend(\n _.omit(this.EmployeeService.defaultTableAttributes, \"sales\", \"researcher\", \"processStatus\"),\n quicklist_entry_attributes\n )\n ).getAttributes();\n }\n}\n","import { QuicklistsEmployeesListCtrl } from \"./quicklist-employees-list.controller\";\nimport quicklistsEmployeesListTemplate from \"./employees-list.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistEmployeesList\", {\n bindings: {\n quicklist: \"<\",\n quicklistEntriesLazyLoading: \"<\",\n },\n template: quicklistsEmployeesListTemplate,\n controller: QuicklistsEmployeesListCtrl,\n});\n","import employeesSearchTemplate from \"./employees-search.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistEmployeesSearch\", {\n bindings: {\n query: \"<\",\n advancedQuery: \"<\",\n updateEntries: \"&\",\n },\n template: employeesSearchTemplate,\n});\n","export class QuicklistsCompaniesListCtrl {\n static $inject = [\"CompaniesFactory\", \"PrsmTableAttributeService\"];\n\n constructor(private CompanyService: any, private PrsmTableAttributeService: any) {}\n\n public quicklist: any;\n public companiesAttributes: any;\n\n public $onInit() {\n var quicklistCompanyEntryAttributes = {\n deleteEntry: { show: !this.quicklist.isReadOnly() },\n kpis: { show: false },\n };\n\n this.companiesAttributes = new this.PrsmTableAttributeService(\n \"quicklist-companies-table-attributes\",\n _.extend(angular.copy(this.CompanyService.defaultTableAttributes), quicklistCompanyEntryAttributes)\n ).getAttributes();\n }\n}\n","import { QuicklistsCompaniesListCtrl } from \"./quicklist-companies-list.controller\";\nimport companiesListTemplate from \"./companies-list.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistCompaniesList\", {\n bindings: {\n quicklist: \"<\",\n quicklistEntriesLazyLoading: \"<\",\n },\n template: companiesListTemplate,\n controller: QuicklistsCompaniesListCtrl,\n});\n","import companiesSearchTemplate from \"./companies-search.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistCompaniesSearch\", {\n bindings: {\n query: \"<\",\n advancedQuery: \"<\",\n updateEntries: \"&\",\n },\n template: companiesSearchTemplate,\n});\n","import quicklistsTableBodyTemplate from \"./quicklists-table-body.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistsTableBody\", {\n bindings: {\n quicklists: \"=data\",\n attributes: \"=\",\n tableRowIdentifier: \"=\",\n },\n template: quicklistsTableBodyTemplate,\n});\n","export class SearchToQuicklistButtonCtrl {\n static $inject = [\"$rootScope\", \"$filter\", \"QuicklistsFactory\", \"poller\"];\n\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $filter: ng.IFilterService,\n private QuicklistService: any,\n private poller: any\n ) {}\n\n public creatingQuicklist: boolean;\n public advancedQuery: any;\n\n public createQuicklist() {\n if (!this.creatingQuicklist) {\n var savedSearch = angular.copy(this.advancedQuery);\n savedSearch.system = true;\n\n this.creatingQuicklist = true;\n savedSearch.save().then(\n (result: any) => {\n var quicklistName = window.prompt(this.$filter(\"translate\")(\"NAME_QUICKLIST\"), result.name);\n if (quicklistName !== null) {\n new this.QuicklistService({ name: quicklistName, saved_search_id: result.id })\n .create()\n .then((resultList: any) => {\n var pollingService = this.poller.get(resultList.$url() + \".json\", {\n catchError: true,\n delay: 1000,\n });\n\n pollingService.promise.then(null, null, (response: any) => {\n if (response.status === 200) {\n var quicklist = new this.QuicklistService(response.data.data);\n if (!quicklist.generating) {\n pollingService.remove();\n\n this.creatingQuicklist = false;\n\n this.QuicklistService.clearCache();\n this.$rootScope.$broadcast(\"updatedQuicklist\");\n }\n } else {\n pollingService.remove();\n }\n });\n });\n } else {\n this.creatingQuicklist = false;\n }\n },\n (res: any) => {\n this.creatingQuicklist = false;\n }\n );\n }\n }\n}\n","import { SearchToQuicklistButtonCtrl } from \"./search-to-quicklist-button.controller\";\nimport searchToQuicklistButtonTemplate from \"./search-to-quicklist-button.template.html\";\n\nangular.module(\"quicklists.components\").component(\"searchToQuicklistButton\", {\n bindings: {\n advancedQuery: \"=\",\n },\n template: searchToQuicklistButtonTemplate,\n controller: SearchToQuicklistButtonCtrl,\n});\n","import \"./../../quicklists/components/components.module\";\nimport \"./../../quicklists/components/quicklist-candidates-list/quicklist-candidates-list.component\";\nimport \"./../../quicklists/components/quicklist-candidates-search/quicklist-candidates-search.component\";\nimport \"./../../quicklists/components/quicklist-employees-list/quicklist-employees-list.component\";\nimport \"./../../quicklists/components/quicklist-employees-search/quicklist-employees-search.component\";\nimport \"./../../quicklists/components/quicklist-companies-list/quicklist-companies-list.component\";\nimport \"./../../quicklists/components/quicklist-companies-search/quicklist-companies-search.component\";\nimport \"./../../quicklists/components/quicklists-table-body/quicklists-table-body.component\";\nimport \"./../../quicklists/components/search-to-quicklist-button/search-to-quicklist-button.component\";\n\nangular.module(\"actions.components\", []);\n","export default class showActionsListModalCtrl {\n private actions: any[];\n private step: any;\n private attributes: any;\n private dismiss: () => void;\n private resolve: any;\n \n static $inject = [\"ActionsFactory\", \"PrsmTableHelper\"];\n\n constructor (private Action: any, private PrsmTableHelper: any) {\n }\n\n public $onInit() {\n this.extend(this.resolve);\n this.attributes = this.getAttributes(\n \"actions-list-table-attributes-\" + this.step.key,\n this.defaultAttributes()\n );\n }\n\n private extend(resolve) {\n this.actions = resolve.actions;\n this.step = resolve.step;\n }\n\n private defaultAttributes() {\n if (this.step.key.match(/(deals)$/i)) {\n return this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Action.defaultTableAttributes),\n [\n \"id\",\n \"type\",\n \"responsibleUser\",\n \"processProvisionConsultant\",\n \"project\",\n \"jobType\",\n \"deal\",\n \"amountCovered\",\n \"connectionCdsSap\",\n \"status\",\n \"countableDate\",\n \"candidate\",\n \"company\",\n ],\n [\n \"id\",\n \"processProvisionConsultant\",\n \"project\",\n \"jobType\",\n \"deal\",\n \"amountCovered\",\n \"connectionCdsSap\",\n \"candidate\",\n \"company\",\n ]\n );\n } else if (this.step.key.match(/(closings)$/i)) {\n return this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Action.defaultTableAttributes),\n [\n \"id\",\n \"type\",\n \"responsibleUser\",\n \"consultant\",\n \"researcher\",\n \"processProvisionConsultant\",\n \"project\",\n \"jobType\",\n \"deal\",\n \"amountCovered\",\n \"status\",\n \"countableDate\",\n \"candidate\",\n \"company\",\n ],\n [\"id\", \"processProvisionConsultant\", \"project\", \"jobType\", \"deal\", \"amountCovered\", \"candidate\", \"company\"]\n );\n } else if (this.step.key.match(/(managerCalls)$/i)) {\n return this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Action.defaultTableAttributes),\n _.keys(_.omit(this.Action.defaultTableAttributes, \"connectionCdsSap\")),\n [\"type\", \"responsibleUser\", \"project\", \"status\", \"countableDate\", \"employees\", \"description\"]\n );\n } else {\n return _.omit(this.Action.defaultTableAttributes, \"connectionCdsSap\");\n }\n }\n\n private getAttributes(key: string, defaultAttributes) {\n return this.PrsmTableHelper.getAttributes(key, defaultAttributes);\n }\n\n public cancel () {\n this.dismiss();\n };\n}","import showActionsListModalCtrl from \"./show-actions-list-modal.controller\";\nimport showActionsListModalTemplate from \"./show-actions-list-modal.template.html\";\n\nangular.module(\"actions.modals\").component(\"showActionsListModal\", {\n bindings: {\n resolve: \"<\",\n dismiss: \"&\",\n },\n template: showActionsListModalTemplate,\n controller: showActionsListModalCtrl,\n});\n","export default class openActionModalCtrl {\n private dereg: () => void;\n private cpjoin: any;\n private action: any;\n private loading: boolean;\n private lastEdit: any;\n private object: any;\n private options: any;\n private dismiss: () => void;\n private resolve: any;\n\n static $inject = [\"$scope\", \"$filter\", \"UsersFactory\", \"DealsFactory\", \"dynamicRoute\", \"$rootScope\"];\n\n constructor(private $scope: any,\n private $filter: ng.IFilterService,\n private User: any,\n private Deal: any,\n private dynamicRoute: any,\n private $rootScope: ng.IRootScopeService,\n ) {\n\n\n this.$scope.$watchCollection(\"$ctrl.action.versions.length\", (nv, ov) => {\n if (ov > 0) {\n var lastVersion = this.action.versions[this.action.versions.length - 1];\n this.lastEdit = {\n user: User.findBy(parseInt(lastVersion.whodunnit)),\n timestamp: lastVersion.createdAt,\n };\n }\n });\n\n }\n\n\n public $onInit () {\n angular.extend(this.resolve);\n if (this.cpjoin && !this.cpjoin.expertProfile.isNew()) {\n this.cpjoin.expertProfile.cpjoin = this.cpjoin;\n }\n\n angular.extend(\n this,\n {\n action: this.resolve.action,\n options: this.resolve.options,\n object: this.resolve.object,\n cpjoin: this.resolve.cpjoin,\n isConvertableToEvent:\n !!this.resolve.action.actionType.getActionTypeOptions(this.resolve.object).convertToEvent &&\n this.resolve.action.id &&\n this.resolve.action.plannedFor &&\n !this.resolve.action.actionType.isEvent,\n },\n this.dynamicRoute\n );\n };\n\n public editDeal () {\n this.loading = true;\n this.dereg = this.$rootScope.$on(\"deal-form-opened\", (event) => {\n this.loading = false;\n this.dereg();\n });\n\n if (this.action.deal) {\n this.Deal.get(this.action.deal.id)\n .then( (deal) => {\n deal.edit();\n })\n .catch( () => {\n this.loading = false;\n this.dereg();\n });\n } else {\n var dealOptions = {\n add_action: { id: this.action.id },\n candidatesProjectId: this.cpjoin.id,\n closing: this.action.isActionType(\"closing\"),\n };\n\n if (this.action.actionableType == \"EmployeesCandidatesProject\") {\n _.extend(dealOptions, { employeesCandidatesProjectId: this.action.actionableId });\n }\n\n this.Deal.createAndEdit(dealOptions).catch( () => {\n this.loading = false;\n this.dereg();\n });\n }\n };\n\n public cancel () {\n this.dismiss();\n };\n\n public editAction (options) {\n this.action.actionEditModal(this.object, options).catch(angular.noop);\n };\n\n public deleteFollowUp () {\n this.action.deleteNote(this.object).then(\n (result) => {\n this.action.snapshot();\n this.cancel();\n },\n () => {\n window.alert(this.$filter(\"translate\")(\"HISTORY_ENTRIES_NOT_DELETED_NOTICE\"));\n }\n );\n };\n\n public decline () {\n this.action.$post(this.action.$url(\"/decline.json\")).then(\n (result) => {\n _.extend(this.action, _.pick(result, [\"declinedAt\", \"declinedByUser\"]));\n this.action.snapshot();\n },\n () => {\n window.alert(this.$filter(\"translate\")(\"HISTORY_ENTRIES_NOT_DECLINED_NOTICE\"));\n }\n );\n };\n\n public convertIntoEvent () {\n this.action.convertIntoEvent().then( (result) => {\n if (result) {\n this.action.actionEditModal(this.object, this.options).catch(angular.noop);\n }\n });\n };\n\n public $onDestroy () {\n if (angular.isFunction(this.dereg)) {\n this.dereg();\n }\n };\n}\n","import openActionModalCtrl from \"./open-action-modal.controller\";\nimport openActionModalTemplate from \"./open-action-modal.template.html\";\n\nangular.module(\"actions.modals\").component(\"openActionModal\", {\n bindings: {\n resolve: \"<\",\n dismiss: \"&\",\n },\n template: openActionModalTemplate,\n controller: openActionModalCtrl,\n});\n","export default class eventConfirmModalCtrl {\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private action: any;\n private resolve: any;\n \n static $inject = [\"$filter\"];\n\n\n constructor (private $filter: ng.IFilterService) {}\n\n public $onInit () {\n this.action = this.resolve.action;\n };\n\n public emailMissing (draft) {\n if (this.action.actionType.isTelephoneAction() && this.action.isMsTeamsMeeting) {\n return _.some(draft.attendees, (attendee) => {\n return _.isEmpty(attendee.email);\n });\n }\n };\n\n public getMissingEmails (draft) {\n var results = \"\";\n\n _.each(draft.attendees, (attendee) => {\n if (_.isEmpty(attendee.email)) {\n if (attendee.role == \"Employee\") {\n results = results + this.$filter(\"translate\")(\"EMPLOYEE_WORK_EMAIL_MISSING\", { name: attendee.name });\n } else if (attendee.role == \"Candidate\") {\n results = results + this.$filter(\"translate\")(\"CANDIDATE_PRIVATE_EMAIL_MISSING\", { name: attendee.name });\n }\n }\n });\n return results;\n };\n\n public ok () {\n this.modalInstance.close(true);\n };\n\n public cancel () {\n this.modalInstance.close(false);\n };\n\n}","import eventConfirmModalCtrl from \"./event-confirm-modal.controller\";\nimport eventConfirmModalTemplate from \"./event-confirm-modal.template.html\";\n\nangular.module(\"actions.modals\").component(\"eventConfirmModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: eventConfirmModalTemplate,\n controller: eventConfirmModalCtrl,\n});\n","\nexport default class SelectActionModalCtrl {\n\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private actions: any[];\n private action: any;\n private options: any;\n private resolve: any;\n\n static $inject = [\"$filter\"];\n\n constructor(private $filter: ng.IFilterService) {}\n\n private extend(resolve: any): void {\n this.actions = _.chain(resolve.actions)\n .each((action) => {\n if (action.successors) {\n action.firstSuccessor = _.first(action.successors);\n }\n })\n .filter((action) => {\n return this.selectedAction(action);\n })\n .value();\n this.action = _.first(this.actions);\n this.options = _.defaults(resolve.options, {\n showManager: true,\n showCandidate: false,\n historyTypeTitle: this.$filter(\"translate\")(\"HISTORY_ENTRY\"),\n });\n }\n\n public $onInit(): void {\n this.extend(this.resolve);\n }\n\n public selectedAction(action: any): boolean {\n return !!(action.predecessor || action.firstSuccessor);\n }\n\n public cancel(): void {\n this.modalInstance.dismiss(\"cancel\");\n }\n\n public selectAction(): void {\n if (this.action) {\n this.modalInstance.close(this.action);\n }\n }\n}\n","import selectActionModalCtrl from \"./select-action-modal.controller\";\nimport selectActionModalTemplate from \"./select-action-modal.template.html\";\n\nangular.module(\"actions.modals\").component(\"selectActionModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: selectActionModalTemplate,\n controller: selectActionModalCtrl,\n});\n","\nexport default class {\n private action: any;\n private object: any;\n private options: { [key: string]: any };\n private registerSaveHotkey: (callback: Function) => void;\n private force_validation: boolean;\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private actionForm: ng.IFormController;\n private onSaveError: (error: any) => void; ;\n private resolve: any;\n static $inject = [\"$scope\", \"$rootScope\", \"$filter\", \"EditUtilMixin\", \"ModalUtilMixin\", \"daterangepickerOptions\", \"$templateCache\"];\n\n constructor ( private $scope: any,\n private $rootScope: ng.IRootScopeService,\n private $filter: ng.IFilterService,\n private EditUtilMixin: any,\n private ModalUtilMixin: any,\n private daterangepickerOptions: any,\n private $templateCache: ng.ITemplateCacheService,\n ) {\n this.saveChanges = this.saveChanges.bind(this);\n this.$scope.$on(\"modal.closing\", (event) => {\n if (this.action && this.action.unsnappedChanges() || (this.object && this.object.unsnappedChanges())) {\n if (window.confirm(this.$filter(\"translate\")(\"WINDOW_CLOSING_CHANGES_WARNING\"))) {\n this.action.rollback(-1);\n if (this.object) {\n this.object.rollback(-1);\n }\n } else {\n event.preventDefault();\n }\n }\n });\n }\n\n\n public $onInit () {\n\n angular.extend(\n this,\n {\n actionTypes: this.resolve.actionTypes,\n jobCategories: this.resolve.jobCategories,\n jobTypes: this.resolve.jobTypes,\n projectsCount: this.resolve.projectsCount,\n action: _.defaults(this.resolve.action, { separateCandidatesEvent: false, sendInvitationToManagers: true }),\n options: _.defaults(this.resolve.options, {\n projectEditable: this.resolve.projectsCount > 0 && !this.resolve.options.actionTemplate,\n }),\n candidates: this.resolve.candidates,\n dateRangePickerOptions: _.extend(this.daterangepickerOptions, {\n timePicker24Hour: true,\n singleDatePicker: true,\n locale: _.extend(this.daterangepickerOptions.locale, {\n format: \"DD.MM.YYYY HH:mm\",\n }),\n }),\n },\n this.EditUtilMixin,\n this.ModalUtilMixin\n );\n\n if (this.action.candidate && this.action.candidate.resourceType === \"Candidate\") {\n this.object = angular.copy(this.action.candidate);\n this.action.employee = undefined; // workaround for corresponding employee\n } else {\n if (this.action.employee && this.action.employee.resourceType === \"Employee\") {\n this.object = angular.copy(this.action.employee);\n } else {\n if (this.action.company && this.action.company.resourceType === \"Company\") {\n this.object = angular.copy(this.action.company);\n }\n }\n }\n\n this.action.snapshot();\n if (this.object) {\n this.object.snapshot();\n }\n\n if (this.options.actionTemplate) {\n this.$templateCache.put(\n this.options.actionTemplate,\n \"<\" +\n this.options.actionTemplate +\n ' object=\"$ctrl.object\"' +\n ' action=\"$ctrl.action\"' +\n ' save-changes=\"$ctrl.saveChanges\"' +\n ' resolves=\"$ctrl.resolve\"' +\n \"><\" +\n this.options.actionTemplate +\n \"/>\"\n );\n }\n\n // perform after everything is rendered\n this.registerSaveHotkey(this.saveChanges);\n };\n\n public multipleManagers () {\n return !(this.action.actionableType === \"Company\" || this.action.actionableType === \"WorkingRelationship\");\n };\n\n public getCompanyId () {\n if (this.action.actionableType == \"Company\") {\n return this.action.actionableId;\n } else if (this.action.actionableType == \"WorkingRelationship\") {\n return this.action.company.id;\n } else if (this.action.project && !this.action.project.initiativeApplicationProject) {\n return this.action.project.company ? this.action.project.company.id : undefined;\n } else {\n return undefined;\n }\n };\n\n public showEmployeesSelect () {\n return (\n (((this.action.project && this.action.project.employeesCount > 0) || this.action.employees?.length > 0) &&\n !this.action.employee) ||\n this.action.company\n );\n };\n\n public showInterviewFollowUpOptions () {\n return (\n (this.action.actionType.isInterviewActionType() || this.action.actionType.isTelephoneAction()) &&\n this.action.candidate &&\n this.action.employees.length > 0 &&\n this.options.followUps\n );\n };\n\n public showContactDetailsEventText () {\n return (\n (this.action.candidate || this.action.employee || this.action.employees) &&\n this.action.project &&\n this.action.actionType.isEvent &&\n !this.action.isMsTeamsMeeting\n );\n };\n\n public saveChanges (closeAfterCallback) {\n this.force_validation = false;\n if (!_.isFunction(closeAfterCallback)) {\n closeAfterCallback = (scope: any) => {\n this.modalInstance.close(this.action);\n };\n }\n\n if (this.actionForm.$invalid) {\n if (this.actionForm.individualTeamsLink && this.actionForm.individualTeamsLink.$invalid) {\n window.alert(this.$filter(\"translate\")(\"INVALID_TEAMS_URL_NOTICE\"));\n } else if (\n !_.isEmpty(\n _.compact(\n _.map(this.actionForm.$error.required, function (attr) {\n _.filter(attr, { name: \"project\" });\n })\n )\n )\n ) {\n window.alert(this.$filter(\"translate\")(\"SELECT_PROJECT_NOTICE\"));\n return;\n } else {\n window.alert(this.$filter(\"translate\")(\"FILL_MANDATORY_FIELDS_NOTICE\"));\n }\n this.force_validation = true;\n return;\n }\n\n if (\n !this.options.followUps &&\n this.object &&\n !this.object.unsnappedChanges() &&\n this.actionForm[\"actionDescription-tinymce\"].$invalid\n ) {\n window.alert(this.$filter(\"translate\")(\"RECORD_ACTIVITY_PROCESS_NOTICE\"));\n this.force_validation = true;\n } else {\n this.action.snapshot();\n if (this.object && this.object.unsnappedChanges()) {\n this.object.snapshot();\n this.object\n .save()\n .then( (savedObject) => {\n if (this.action.candidate) {\n angular.extend(this.action.candidate, _.omit(savedObject, [\"actions\", \"candidatesProjects\"]));\n }\n\n this.action.snapshot();\n this.object.snapshot();\n\n closeAfterCallback(this);\n })\n .catch(this.onSaveError.bind(this));\n } else {\n closeAfterCallback(this);\n }\n }\n };\n\n public finishFollowUp () {\n this.saveChanges( () => {\n this.action\n .$post(this.action.$url(\"/complete.json\"))\n .then( (result) => {\n _.extend(this.action, _.pick(result, [\"completedAt\", \"completedByUser\"]));\n this.action.snapshot();\n this.modalInstance.close(this.action);\n })\n .catch( (result) => {\n if (result.status == 409) {\n // conflict if already completed\n this.modalInstance.close(this.action);\n } else {\n throw result;\n }\n });\n });\n };\n\n public declineFollowUp () {\n this.saveChanges( () => {\n this.action.$post(this.action.$url(\"/decline.json\")).then( (result) => {\n _.extend(this.action, _.pick(result, [\"declinedAt\", \"declinedByUser\"]));\n this.action.snapshot();\n this.modalInstance.close(this.action);\n });\n });\n };\n\n public checkAddressForNull(address) {\n var retVal =\n _.isNull(address.street) && _.isNull(address.houseId) && _.isNull(address.zipCode) && _.isNull(address.city);\n return retVal;\n };\n\n public setContactAddress(address, company) {\n if (!address || this.checkAddressForNull(address)) {\n return this.$filter(\"translate\")(\"NO_ADDRESS_LISTED\");\n } else {\n return company.name + \"\\n\" + address.street + \" \" + address.houseId + \"\\n\" + address.zipCode + \" \" + address.city;\n }\n };\n\n public updateContactDetails() {\n if (this.action && this.action.actionType) {\n if (!this.action.actionType.isTelephoneAction()) {\n const changed = this.action.unsnappedChanges();\n\n this.action.individualTeamsLink = undefined;\n this.action.isMsTeamsMeeting = false;\n if (!changed) {\n this.action.snapshot();\n }\n }\n\n switch (this.action.actionType.typeName) {\n case \"telephone-interview\":\n case \"telephone-meeting\":\n if (this.action.isMsTeamsMeeting) {\n this.action.contactDetailsEventText = this.$filter(\"translate\")(\"DIAL_IN_TEAMS\");\n } else {\n this.action.contactDetailsEventText = this.$filter(\"translate\")(\"DIAL_PHONE_NUMBER\");\n }\n\n break;\n case \"presence-interview\":\n case \"personal-meeting\":\n if (this.action.project && this.action.project.company) {\n this.action.contactDetailsEventText = this.setContactAddress(this.action.project.operationalSiteAddress, this.action.project.company);\n }\n break;\n default:\n this.action.contactDetailsEventText = undefined;\n }\n }\n };\n\n // WIP this is not being called\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n}\n","import actionEditModalCtrl from \"./action-edit-modal.controller\";\nimport actionEditModalTemplate from \"./action-edit-modal.template.html\";\n\nangular.module(\"actions.modals\").component(\"actionEditModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: actionEditModalTemplate,\n controller: actionEditModalCtrl,\n});\n","import { ActionType } from \"../../../action_types/services/action_types.service\";\nimport { JobCategory } from \"../../../job_categories/services/job_categories.service\";\nimport { JobType } from \"../../../job_types/services/job_types.service\";\n\nangular.module(\"actions.modals\").factory(\"ActionsModalMixin\", [\n \"$uibModal\",\n \"$q\",\n \"$rootScope\",\n \"$filter\",\n \"EditUtilMixin\",\n function ($uibModal, $q, $rootScope, $filter, EditUtilMixin) {\n function ActionsModalMixin() {}\n\n function actionEditModal(object, options) {\n var action = this;\n options = _.extend(action.actionType.getActionTypeOptions(object), _.isObject(options) ? options : {});\n\n if (action.id && action.actionType) {\n _.defaults(options, { actionTypeEditable: false });\n }\n\n // try to catch possible error cases\n if (object.resourceType == \"CandidatesProjects\" && !(object.project && object.candidate)) {\n window.rollbar.error(\"createNewAction without object raises error\", {\n object: object,\n action: action,\n options: options,\n });\n window.alert($filter(\"translate\")(\"ERROR_RELOAD_NOTICE\"));\n return;\n }\n\n var modalInstance = $uibModal.open({\n component: \"actionEditModal\",\n size: \"lg\",\n resolve: {\n actionTypes: ActionType.getAllWithoutVerbose,\n action: [\n \"ActionsFactory\",\n \"CandidatesFactory\",\n function (Action, Candidate) {\n function editedAction(action, object) {\n switch (object.resourceType) {\n case \"Candidate\":\n action.candidate = object;\n break;\n case \"Project\":\n action.project = object;\n if (object.initiativeApplicationProject) {\n return Candidate.get(object.candidate).then(function (result) {\n action.candidate = result;\n return action;\n });\n }\n break;\n case \"CandidatesProjects\":\n action.project = object.project;\n return Candidate.get(object.candidate).then(function (result) {\n action.candidate = result;\n return action;\n });\n case \"Employee\":\n action.employee = object;\n break;\n case \"EmployeesProjects\":\n action.employee = object.employee;\n action.project = object.project;\n break;\n case \"EmployeesCandidatesProject\":\n action.employees = object.employees;\n action.project = object.project;\n action.candidate = object.candidate;\n break;\n case \"Company\":\n action.company = object;\n break;\n }\n return action;\n }\n if (action.id) {\n return Action.get(action.id).then(function (resultAction) {\n return editedAction(action, object);\n });\n } else {\n return editedAction(action, object);\n }\n },\n ],\n options: function () {\n return options;\n },\n projectsCount: function () {\n if (object && object.resourceType == \"Candidate\") {\n return object.candidatesProjectsCount;\n } else if (object && object.resourceType == \"Employee\") {\n return object.projectsCount;\n } else {\n return 0;\n }\n }.bind(object),\n candidates: function () {\n if (object && object.resourceType == \"Project\") {\n return _.map(this.candidatesProjects || [], function (cp) {\n return cp.candidate;\n });\n } else {\n return [];\n }\n }.bind(object),\n jobCategories: [\n function () {\n if (options.actionTemplate) {\n return JobCategory.getAll();\n } else {\n return undefined;\n }\n },\n ],\n jobTypes: [\n function () {\n if (options.actionTemplate) {\n return JobType.getAll();\n } else {\n return undefined;\n }\n },\n ],\n templateResolve: [\n function () {\n if (options.actionTemplate && options.resolves) {\n return $q.all(options.resolves());\n }\n },\n ],\n },\n });\n\n var deferred = $q.defer();\n\n return modalInstance.result.then(\n function (action) {\n if (action) {\n return action.saveCustomNote(this).catch(\n function (error) {\n EditUtilMixin.onSaveError(error);\n\n action.actionEditModal(this, options).catch(angular.noop);\n }.bind(this)\n );\n } else {\n $rootScope.$broadcast(object.resourceType.toLowerCase() + \"_action_changed_\" + object.id);\n\n deferred.resolve();\n return deferred.promise;\n }\n }.bind(object),\n function () {\n deferred.reject();\n return deferred.promise;\n }\n );\n }\n\n function openActionModal(object, options) {\n var action = this;\n\n var modalInstance = $uibModal.open({\n component: \"openActionModal\",\n size: \"lg\",\n resolve: {\n users: [\n \"UsersFactory\",\n function (User) {\n return User.getAll();\n },\n ],\n action: [\n \"ActionsFactory\",\n function (Action) {\n return Action.get(action.id);\n },\n ],\n object: function () {\n return object;\n },\n options: function () {\n return _.isObject(options) ? options : {};\n },\n cpjoin: [\n \"CandidatesProjectsFactory\",\n function (CandidatesProjects) {\n if (action.candidate && action.project) {\n return CandidatesProjects.get({ candidate_id: action.candidate.id, project_id: action.project.id });\n } else {\n return undefined;\n }\n },\n ],\n },\n });\n\n return modalInstance.result.then(angular.noop, angular.noop);\n }\n\n function openEventConfirmModal(action) {\n var modalInstance = $uibModal.open({\n component: \"eventConfirmModal\",\n resolve: {\n action: function () {\n return action;\n },\n },\n size: \"lg\",\n });\n return modalInstance.result;\n }\n\n ActionsModalMixin.extended = function (Resource) {\n Resource.include({\n actionEditModal: actionEditModal,\n openActionModal: openActionModal,\n eventConfirm: openEventConfirmModal,\n });\n };\n\n return ActionsModalMixin;\n },\n]);\n","import actionsPaginationTemplate from \"../../../directives/components/pagination/pagination.template.html\";\nexport default class ActionsHistoryCtrl {\n\n private id: any = _.uniqueId;\n private paginationId: string = \"pagination-id-\" + this.id;\n private oldActionList: any[] = [];\n private paginationTemplateUrl: any = \"paginationTemplate\";\n private paginationService: any;\n private advancedActionsSearchOptions: any;\n private dereg: () => void;\n private followUps: any;\n private actionAttributes: any;\n private object: any;\n private identifier: string;\n private actionsPage: any;\n private advancedQuery: any;\n private setData: () => void;\n\n\n static $inject = [\"ActionsFactory\", \"SavedSearchesFactory\", \"hotkeys\", \"$rootScope\", \"$timeout\", \"PrsmTableHelper\", \"$filter\", \"dynamicRoute\", \"MgPaginateService\", \"$transitions\", \"$templateCache\"];\n \n constructor(\n private Action: any,\n private SavedSearch: any,\n private hotkeys: any,\n private $rootScope: ng.IRootScopeService,\n private $timeout: ng.ITimeoutService,\n private PrsmTableHelper: any,\n private $filter: ng.IFilterService,\n private dynamicRoute: any,\n private MgPaginateService: any,\n private $transitions: any,\n private $templateCache: ng.ITemplateCacheService\n ) {\n this.$templateCache.put(this.paginationTemplateUrl, actionsPaginationTemplate);\n\n angular.extend(this, dynamicRoute);\n\n this.paginationService = new this.MgPaginateService();\n\n if (!this.hotkeys.get(\"mod+h\")) {\n this.hotkeys.add({\n combo: \"mod+h\",\n description: this.$filter(\"translate\")(\"CREATE_NEW_HISTORY_ENTRY\"),\n callback: (event, hotkey) => {\n event.preventDefault();\n this.createAction();\n },\n });\n\n var dereg = this.$transitions.onSuccess({}, () => {\n this.hotkeys.del(\"mod+h\");\n dereg();\n });\n }\n\n this.advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"action_type\", query: \"\" },\n systemDisabled: false,\n });\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n this.advancedActionsSearchOptions = {\n setData: this.initializeActionsSearch.bind(this),\n advancedQuery: this.advancedQuery,\n followUps: this.followUps,\n };\n\n this.actionAttributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Action.defaultTableAttributes),\n [\n \"id\",\n \"type\",\n \"responsibleUser\",\n \"consultant\",\n \"researcher\",\n \"project\",\n \"deal\",\n \"amountCovered\",\n \"status\",\n \"countableDate\",\n \"candidate\",\n \"company\",\n \"employees\",\n \"description\",\n ],\n [\"type\", \"countableDate\", \"status\", \"project\", \"candidate\", \"company\", \"employees\", \"description\"]\n );\n }\n\n public $doCheck () {\n if (!this.object) return;\n if (!_.isFunction(this.object.actions)) return;\n\n var actionList = this.getActions();\n if (!angular.equals(actionList, this.oldActionList)) {\n if (actionList.meta) {\n this.actionsPage = this.getActions();\n this.paginationService.setData(this.actionsPage);\n this.paginationService.setTotalItems(this.actionsPage.meta.totalCount);\n }\n\n if (actionList.length !== this.oldActionList.length) {\n this.$rootScope.$broadcast(\"action\", this.object);\n }\n\n this.oldActionList = this.getActions();\n }\n };\n\n public getActions () {\n if (_.isFunction(this.object.actions)) {\n return this.object.actions();\n }\n };\n\n public createAction(options: any = {}) {\n _.defaults(options, { actionTypeEditable: true });\n this.Action.createNewAction(this.object, undefined, options).catch(angular.noop);\n }\n\n public initializeActionsSearch () {\n if (this.dereg) {\n this.dereg();\n }\n this.dereg = this.$rootScope.$on(\"History_\" + this.identifier + this.object.id, (event: any) => {\n this.$timeout(() => {\n this.Action.lazyLoadingActions.bind(this)(this.object, this.advancedQuery);\n }, 1);\n });\n\n this.dereg = this.$rootScope.$on(this.identifier + this.object.id, (event: any) => {\n this.$timeout(() => {\n this.Action.lazyLoadingActions.bind(this)(this.object, this.advancedQuery);\n }, 1);\n });\n\n this.$rootScope.$broadcast(\"History_\" + this.identifier + this.object.id);\n };\n\n public initializePagination () {\n this.advancedQuery.followUps = this.followUps;\n this.initializeActionsSearch();\n };\n public $postLink () {\n this.initializePagination();\n };\n }","import ActionsHistoryCtrl from \"../actions-history.controller\";\nimport historyTableTemplate from \"./history-table.template.html\";\n\nangular.module(\"actions.components\").component(\"historyTable\", {\n bindings: {\n object: \"=\",\n identifier: \"@\",\n disableNew: \"@\",\n },\n template: historyTableTemplate,\n controller: ActionsHistoryCtrl,\n});\n","import ActionsHistoryCtrl from \"../actions-history.controller\";\nimport historyTemplate from \"./history.template.html\";\n\nangular.module(\"actions.components\").component(\"history\", {\n bindings: {\n object: \"=\",\n identifier: \"@\",\n disableNew: \"@\",\n },\n template: historyTemplate,\n controller: ActionsHistoryCtrl,\n});\n","import paginationTemplate from \"../../../../directives/components/pagination/pagination.template.html\";\nimport { IRootScopeService, ITimeoutService, ITemplateCacheService } from 'angular'; \nexport default class FollowUpsCtrl {\n private object: any;\n private actionsPage: any;\n private identifier: string;\n private oldActionList: any[] = [];\n private paginationService: any;\n private paginationTemplateUrl: string = 'paginationTemplate';\n private paginationId: string;\n private dereg: () => void;\n private followUps: boolean = true;\n private advancedQuery: any;\n private advancedActionsSearchOptions: any;\n private actionAttributes: any;\n\n static $inject = [\"ActionsFactory\", \"SavedSearchesFactory\", \"$rootScope\", \"$timeout\", \"PrsmTableHelper\", \"dynamicRoute\", \"MgPaginateService\", \"$templateCache\"];\n\n constructor(\n private Action: any,\n private SavedSearch: any,\n private $rootScope: IRootScopeService,\n private $timeout: ITimeoutService,\n private PrsmTableHelper: any,\n private dynamicRoute: any,\n private MgPaginateService: any,\n private $templateCache: ITemplateCacheService,\n private id: any = _.uniqueId()\n ){\n this.paginationTemplateUrl = \"paginationTemplate\";\n $templateCache.put(this.paginationTemplateUrl, paginationTemplate);\n\n angular.extend(this, dynamicRoute);\n\n this.paginationId = \"pagination-id-\" + this.id;\n\n this.paginationService = new this.MgPaginateService();\n\n this.advancedQuery = new SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"action_type\", query: \"\" },\n systemDisabled: false,\n });\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n this.advancedActionsSearchOptions = {\n setData: this.initializeActionsSearch.bind(this),\n advancedQuery: this.advancedQuery,\n followUps: this.followUps,\n };\n\n this.actionAttributes = PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Action.defaultTableAttributes),\n [\n \"id\",\n \"type\",\n \"responsibleUser\",\n \"consultant\",\n \"researcher\",\n \"project\",\n \"deal\",\n \"amountCovered\",\n \"status\",\n \"countableDate\",\n \"candidate\",\n \"company\",\n \"employees\",\n \"description\",\n ],\n [\"type\", \"countableDate\", \"status\", \"project\", \"candidate\", \"company\", \"employees\", \"description\"]\n );\n }\n\n public $doCheck () {\n if (!this.object) return;\n if (!_.isFunction(this.object.followUps)) return;\n\n var actionList = this.getActions();\n if (actionList && !angular.equals(actionList, this.oldActionList)) {\n if (actionList.meta) {\n this.actionsPage = this.getActions();\n this.paginationService.setData(this.actionsPage);\n this.paginationService.setTotalItems(this.actionsPage.meta.totalCount);\n }\n\n if (actionList.length !== this.oldActionList.length) {\n this.$rootScope.$broadcast(\"action\", this.object);\n }\n\n this.oldActionList = this.getActions();\n }\n };\n\n public getActions () {\n if (_.isFunction(this.object.followUps)) {\n return this.object.followUps();\n }\n };\n\n public createAction (options) {\n options = options || {};\n _.defaults(options, { actionTypeEditable: true });\n this.Action.createNewAction(this.object, undefined, options).catch(angular.noop);\n };\n\n public initializeActionsSearch () {\n if (this.dereg) {\n this.dereg();\n }\n this.dereg = this.$rootScope.$on(\"FollowUps_\" + this.identifier + this.object.id, (event: any) => {\n this.$timeout(() => {\n this.Action.lazyLoadingActions.bind(this)(this.object, this.advancedQuery);\n }, 1);\n });\n\n this.dereg = this.$rootScope.$on(this.identifier + this.object.id, (event: any) => {\n this.$timeout(() => {\n this.Action.lazyLoadingActions.bind(this)(this.object, this.advancedQuery);\n }, 1);\n });\n\n this.$rootScope.$broadcast(\"FollowUps_\" + this.identifier + this.object.id);\n };\n\n public initializePagination () {\n this.advancedQuery.followUps = this.followUps;\n this.initializeActionsSearch();\n };\n\n public $postLink () {\n this.followUps = true;\n this.initializePagination();\n };\n\n public $onDestroy () {\n this.dereg();\n };\n}","import FollowUpsCtrl from \"./follow-ups.controller\";\nimport followUpsTemplate from \"./follow-ups.template.html\";\n\nangular.module(\"actions.components\").component(\"followUps\", {\n bindings: {\n object: \"=\",\n identifier: \"@\",\n disableNew: \"@\",\n },\n template: followUpsTemplate,\n controller: FollowUpsCtrl,\n});\n","import { IRootScopeService, IFilterService } from 'angular';\nexport default class ActionsContextMenuCtrl {\n\n private action: any;\n private versionsOld: number;\n private deregDealFormOpened: () => void;\n private cpjoin: any;\n private loading: boolean;\n private lastEdit: any;\n private object: any;\n\n static $inject = [\"$state\", \"$rootScope\", \"$filter\", \"CandidatesProjectsFactory\", \"UsersFactory\", \"DealsFactory\"];\n\n constructor(private $state: angular.ui.IStateService,\n private $rootScope: IRootScopeService,\n private $filter: IFilterService, \n private CandidatesProjects: any, \n private User: any, \n private Deal: any,\n public $dismiss: any) {}\n \n public $onInit () {\n this.versionsOld = this.action.versions.length;\n\n angular.extend(this.action, {\n isConvertableToEvent:\n !!this.action.actionType.getActionTypeOptions(this.object).convertToEvent &&\n this.action.id &&\n this.action.plannedFor &&\n !this.action.actionType.isEvent,\n });\n };\n\n public editDeal () {\n this.CandidatesProjects.get({ candidate_id: this.action.candidate.id, project_id: this.action.project.id }).then(\n (result: any) => {\n this.cpjoin = result;\n\n this.loading = true;\n this.deregDealFormOpened = this.$rootScope.$on(\"deal-form-opened\", (event: any) => {\n this.loading = false;\n this.deregDealFormOpened();\n });\n\n if (this.action.deal) {\n this.Deal.get(this.action.deal.id)\n .then((deal: any) => {\n deal.edit();\n })\n .catch(() => {\n this.loading = false;\n this.deregDealFormOpened();\n });\n } else {\n var dealOptions = {\n add_action: { id: this.action.id },\n candidatesProjectId: this.cpjoin.id,\n closing: this.action.isActionType(\"closing\"),\n };\n\n if (this.action.actionableType === \"EmployeesCandidatesProject\") {\n _.extend(dealOptions, { employeesCandidatesProjectId: this.action.actionableId });\n }\n\n this.Deal.createAndEdit(dealOptions).catch(() => {\n this.loading = false;\n this.deregDealFormOpened();\n });\n }\n }\n );\n };\n\n public openExpertProfile () {\n this.$state.go(\"root.candidates.show.expert_profile.new\", {\n candidate_id: this.action.candidate.id,\n project_id: this.action.project.id,\n });\n };\n\n public cancel () {\n this.$dismiss(\"cancel\");\n };\n\n public $doCheck () {\n if (this.versionsOld > 0) {\n var lastVersion = this.action.versions[this.action.versions.length - 1];\n this.lastEdit = {\n user: this.User.findBy(parseInt(lastVersion.whodunnit)),\n timestamp: lastVersion.createdAt,\n };\n this.versionsOld = this.action.versions.length;\n }\n };\n\n public editAction (options) {\n this.action.actionEditModal(this.object, options).catch(angular.noop);\n };\n\n public deleteFollowUp () {\n this.action.deleteNote(this.object).then(\n (result: any) => {\n this.action.snapshot();\n this.cancel();\n },\n () => {\n window.alert(this.$filter(\"translate\")(\"HISTORY_ENTRIES_NOT_DELETED_NOTICE\"));\n }\n );\n };\n\n public decline () {\n this.action.$post(this.action.$url(\"/decline.json\")).then(\n (result: any) => {\n _.extend(this.action, _.pick(result, [\"declinedAt\", \"declinedByUser\"]));\n this.action.snapshot();\n },\n () => {\n window.alert(this.$filter(\"translate\")(\"HISTORY_ENTRIES_NOT_DECLINED_NOTICE\"));\n }\n );\n };\n public $onDestroy () {\n if (angular.isFunction(this.deregDealFormOpened)) this.deregDealFormOpened();\n };\n}","import ActionsContextMenuCtrl from \"./actions-context-menu.controller\";\nimport actionsContextMenuTemplate from \"./actions-context-menu.template.html\";\n\nangular.module(\"actions.components\").component(\"actionsContextMenu\", {\n bindings: {\n action: \"=\",\n statePrefix: \"=\",\n object: \"=\",\n showTransform: \"=\",\n options: \"=\",\n stateArgs: \"&\",\n },\n template: actionsContextMenuTemplate,\n controller: ActionsContextMenuCtrl,\n});\n","import HistoryAdvancedSearchCtrl from \"./history-advanced-search.controller\";\nimport historyAdvancedSearchTemplate from \"./history-advanced-search.template.html\";\n\nangular.module(\"actions.components\").component(\"historyAdvancedSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n followUps: \"@\",\n closing: \"&\",\n },\n template: historyAdvancedSearchTemplate,\n controller: HistoryAdvancedSearchCtrl,\n});\n","export default class HistoryAdvancedSearchCtrl {\n private followUps: boolean;\n private setData: () => void;\n private closing: () => void;\n private selectableFields: string[] = [\n \"action_type\",\n \"responsible_user\",\n \"company_name\",\n \"candidate_name\",\n \"employee_name\",\n \"project_title\",\n ];\n\n constructor() {}\n\n public $onInit () {\n if (!this.followUps) {\n this.selectableFields.push(\"completed_by_user\");\n }\n };\n public performAdvancedSearch () {\n this.setData();\n this.closing();\n };\n}","import AdvancedActionsSearchCtrl from \"./advanced-actions-search.controller\";\nimport advancedActionsSearchTemplate from \"./advanced-actions-search.template.html\";\n//= require ../components.module.js\n\nangular.module(\"actions.components\").component(\"advancedActionsSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n followUps: \"@\",\n closing: \"&\",\n },\n template: advancedActionsSearchTemplate,\n controller: AdvancedActionsSearchCtrl,\n});\n","export default class AdvancedActionsSearchCtrl {\n private followUps: boolean;\n private setData: () => void;\n private closing: () => void;\n private selectableFields: string[] = [\"action_type\", \"responsible_user\"];\n\n constructor () {}\n\n public $onInit () {\n if (!this.followUps) {\n this.selectableFields.push(\"completed_by_user\");\n }\n };\n\n public performAdvancedSearch () {\n this.setData();\n this.closing();\n };\n}","export class StateTransitionsConfig {\n constructor() {}\n\n public static reduceParams(params): string {\n var args = _.reduce(\n params,\n (memo, obj) => {\n return _.extend(memo, obj);\n },\n {}\n );\n return JSON.stringify(args);\n }\n\n public static state(statePrefix, state, params): string {\n return (statePrefix || \"\") + \".\" + state + \"(\" + params + \")\";\n }\n\n public static transitionOptions(initialViewState): { relative: string } {\n return { relative: initialViewState.name };\n }\n}\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\nimport { IRootScopeService } from 'angular';\nexport default class ActionsTableBodyCtrl {\n private StateTransitionsConfig: any;\n private loading: boolean;\n private dereg: () => void;\n\n static $inject = [\"$rootScope\", \"ActionsFactory\", \"DealsFactory\"];\n\n constructor(private $rootScope: IRootScopeService, private Action: any, private Deal: any) {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n reduceParams: StateTransitionsConfig.reduceParams,\n });\n }\n \n public editDeal (action) {\n this.loading = true;\n this.dereg = this.$rootScope.$on(\"deal-form-opened\", (event: any) => {\n this.loading = false;\n this.dereg();\n });\n\n if (action.deal) {\n this.Deal.get(action.deal.id)\n .then( (deal: any) => {\n deal.edit();\n })\n .catch(() => {\n this.loading = false;\n this.dereg();\n });\n }\n };\n\n public $onDestroy () {\n if (_.isFunction(this.dereg)) { this.dereg(); }\n };\n}\n","import ActionsTableBodyCtrl from \"./actions-table-body.controller\";\nimport actionsTableBodyTemplate from \"./actions-table-body.template.html\";\n\nangular.module(\"actions.components\").component(\"actionsTableBody\", {\n bindings: {\n actionList: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n stateArgs: \"&\",\n context: \"=\",\n tableRowIdentifier: \"=\",\n },\n template: actionsTableBodyTemplate,\n controller: ActionsTableBodyCtrl,\n});\n","//= require ../actions.module.js\n\nimport { ActionType } from \"../../action_types/services/action_types.service\";\n\nangular.module(\"actions\").service(\"ActionsFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"railsSerializer\",\n \"$rootScope\",\n \"$http\",\n \"$q\",\n \"ActionsModalMixin\",\n \"ModalMixin\",\n \"makeCollectionProxy\",\n \"OutlookDelivery\",\n \"poller\",\n \"RedirectLocation\",\n \"$filter\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n railsSerializer,\n $rootScope,\n $http,\n $q,\n ActionsModalMixin,\n ModalMixin,\n makeCollectionProxy,\n OutlookDelivery,\n poller,\n RedirectLocation,\n $filter\n ) {\n function Action() {\n (Action).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return _.extend({ action_id: this.id }, RedirectLocation.redirectParams());\n };\n\n this.getCompany = function ($ctrl: any) {\n let cObj = this.company ? { \n company: this.company, \n state: $ctrl.state('root', 'companies.show', 'action.company.params()') \n }\n : (!this.company && this.project?.company) ? { \n company: this.project?.company, \n state: $ctrl.state('root', 'projects.show.company.show', $ctrl.reduceParams([this.project.params(), this.project.company.params()]))\n }\n : (!this.company && !this.project?.company && this.employee && this.current_company) ? { \n company: this.current_company, \n state: $ctrl.state('root', 'employees.show.company.show', $ctrl.reduceParams([this.employee.params(), this.current_company.params()] )) \n } : undefined;\n\n return cObj;\n };\n\n this.deleteNote = function (object) {\n var deferred = $q.defer();\n\n return this.delete().then(\n function (result) {\n // should be handled in object class\n if (object && object.resourceType) {\n $rootScope.$broadcast(object.resourceType.toLowerCase() + \"_action_changed_\" + object.id);\n }\n\n deferred.resolve(this);\n return deferred.promise;\n },\n function () {\n deferred.reject();\n return deferred.promise;\n }\n );\n };\n\n this.saveCustomNote = function (object) {\n if (this.plannedFor) {\n this.sendInvitation = true;\n }\n\n if (!this.completedAt && !this.plannedFor) {\n this.completedAt = new Date().toISOString();\n this.completedByUser = this.user;\n }\n\n return this.save().then(\n function (resAction) {\n // should be handled in object class\n if (object && object.resourceType) {\n $rootScope.$broadcast(object.resourceType.toLowerCase() + \"_action_changed_\" + object.id);\n }\n\n this.versions = resAction.versions;\n\n if (resAction.errorCode) {\n OutlookDelivery.handleErrors(resAction.errorCode);\n }\n\n if (this.actionType.isEvent && this.plannedFor && !this.outlookEventId && !this.declinedAt) {\n return resAction.eventConfirm(resAction).then(\n function (accepted) {\n if (accepted === true) {\n _.each(this.drafts, function (draft) {\n return $http.put(\"draft/\" + draft.id + \"/send_invitation.json\", { draft_params: draft });\n });\n\n if (this.employee || (this.employees && this.employees.length > 0)) {\n return resAction.createMessage(\"create_event_confirmation_email\", this).then(\n function (resDraft) {\n var pollingService = poller.get(resDraft.data.url, { delay: 1000 });\n this.confirm($filter(\"translate\")(\"EMAIL_SENT_CONFIRMATION\"), pollingService).then(\n function () {\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n\n return resAction;\n }.bind(resAction),\n function (declined) {\n return resAction;\n }\n );\n }\n }\n\n return resAction;\n }.bind(resAction),\n function (declined) {\n return resAction;\n }\n );\n }\n\n return resAction;\n }.bind(this)\n );\n };\n\n this.createMessage = function (actionRoute, emailParams) {\n var params = angular.merge(\n { id: this.id },\n { contact_details_event_text: emailParams.contactDetailsEventText }\n );\n return $http.post(\"actions/\" + this.id + \"/\" + actionRoute + \".json\", { action_params: params });\n };\n\n this.convertIntoEvent = function () {\n return (Action).$post(\"actions/\" + this.id + \"/convert_to_event.json\").then(\n function (resAction) {\n if (resAction) {\n _.extend(this, resAction);\n } else {\n return undefined;\n }\n }.bind(this)\n );\n };\n\n this.isDeclined = function () {\n return this.declinedAt;\n };\n\n this.isCompleted = function () {\n return !this.declinedAt && this.completedAt;\n };\n\n this.isPlanned = function () {\n return !(this.declinedAt || this.completedAt) && this.plannedFor;\n };\n\n this.isFollowUp = this.isPlanned;\n\n this.isActionType = function (typeName) {\n return this.actionType.typeName == typeName;\n };\n\n\n this.dealEditable = function () {\n return this.deal || this.actionType.isDealActionType();\n };\n\n this.isClosing = function () {\n return this.deal?.closing || _.contains([\"closing\"], this.actionType.typeName);\n };\n\n this.hasTracking = function () {\n var options = this.actionType.getActionTypeOptions();\n return options && !!options.hasTracking;\n };\n\n this.listTitle = function () {\n var subject = this.subject ? this.subject + \" (\" + this.actionType.completeDescription + \")\" : undefined;\n return (\n subject ||\n this.customType ||\n this.actionType.completeDescription ||\n $filter(\"translate\")(\"NOT_SPECIFIED_SMALL\")\n );\n };\n }\n\n Action.createNewAction = async function (object, actionTypeIdentifier, options) {\n let actionTypes: ActionType[] = await ActionType.getAll();\n var optAttr = {\n actionType: actionTypeIdentifier ? _.findWhere(actionTypes, { typeName: actionTypeIdentifier }) : null,\n };\n if (options && options.followUps) {\n _.extend(optAttr, {\n plannedFor: new Date().toISOString(),\n plannedLength: 30,\n });\n }\n\n return (Action)\n .$get(\"actions/new\", {\n action_params: _.extend(\n {\n actionable_type: object.resourceType,\n actionable_id: object.id,\n },\n optAttr\n ),\n })\n .then(function (action) {\n return action.actionEditModal(object, options);\n });\n };\n\n Action.lazyLoadingActions = function (resource, advancedQuery) {\n advancedQuery = advancedQuery || {};\n _.defaults(advancedQuery, { followUps: false });\n this.loading = true;\n return makeCollectionProxy(\n (Action).query.bind(Action),\n _.extend(resource.params(), { advanced: JSON.stringify(advancedQuery) })\n ).then(\n function (actions) {\n if (advancedQuery.followUps) {\n resource.followUps = function () {\n return actions;\n };\n } else {\n resource.actions = function () {\n return actions;\n };\n }\n this.loading = false;\n }.bind(this)\n );\n };\n\n Action.defaultTableAttributes = {\n id: {\n title: \"ID\",\n show: false,\n menu: true,\n class: \"id\",\n sortField: \"id\",\n },\n type: {\n title: \"ENTRY\",\n show: false,\n class: \"responsible\",\n sortField: \"action_type.type_name\",\n },\n responsibleUser: {\n title: \"CONSULTANT\",\n show: true,\n class: \"responsible\",\n sortField: \"completed_by_user.full_name.not_analyzed\",\n },\n consultant: {\n title: \"SALES\",\n show: false,\n class: \"responsible\",\n sortField: \"consultant.full_name.not_analyzed\",\n },\n researcher: {\n title: \"RESEARCHER\",\n show: false,\n class: \"responsible\",\n sortField: \"researcher.full_name.not_analyzed\",\n },\n processProvisionConsultant: {\n title: \"OVERALL_PROCESS\",\n show: false,\n class: \"responsible\",\n sortField: \"process_provision_consultant.full_name.not_analyzed\",\n },\n project: {\n title: \"PROJECT\",\n show: true,\n class: \"responsible\",\n sortField: \"project.title.not_analyzed\",\n },\n jobType: {\n title: \"PROJECT_TYPE\",\n show: false,\n class: \"responsible\",\n sortField: \"project.job_type.name\",\n },\n deal: {\n title: \"DEAL\",\n show: false,\n class: \"responsible\",\n sortField: \"deal.service_date\",\n },\n amountCovered: {\n title: \"PROFIT_CONTRIBUTION_TOKEN\",\n show: false,\n class: \"responsible\",\n sortField: \"deal.amount_covered_ist\",\n },\n connectionCdsSap: {\n title: \"CONNECTION_CDS_SAP_ESTABLISHED\",\n show: true,\n class: \"responsible\",\n sortField: \"deal.registered_in_external_platforms\",\n },\n status: {\n title: \"STATUS\",\n show: false,\n class: \"responsible\",\n sortField: \"status\",\n },\n countableDate: {\n title: \"DATE\",\n show: true,\n class: \"date\",\n sortField: \"countable_date\",\n },\n candidate: {\n title: \"CANDIDATE\",\n show: true,\n class: \"responsible\",\n sortField: \"candidate.full_name_with_title.not_analyzed\",\n },\n company: {\n title: \"COMPANY\",\n show: false,\n class: \"responsible\",\n sortField: \"company.name.not_analyzed\",\n },\n employees: {\n title: \"MANAGER\",\n show: true,\n class: \"title\",\n sortField: \"employees.full_name.not_analyzed\",\n },\n description: {\n title: \"ACTION_NOTE\",\n show: false,\n },\n };\n RailsResource.extendTo(Action);\n (Action).configure({\n url: \"/actions\",\n name: \"action_params\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"project\", \"ProjectsFactory\");\n this.resource(\"employee\", \"EmployeesFactory\");\n this.resource(\"employees\", \"EmployeesFactory\");\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.resource(\"user\", \"UsersFactory\");\n this.resource(\"createdByUser\", \"UsersFactory\");\n this.resource(\"completedByUser\", \"UsersFactory\");\n this.serializeWith(\"actionType\", \"ActionTypeSerializer\");\n this.resource(\"deal\", \"DealsFactory\");\n this.resource(\"provision\", \"ProvFactory\");\n this.resource(\"predecessor\", \"ActionsFactory\");\n this.serializeWith(\"plannedFor\", \"DateSerializer\");\n\n this.exclude(\"$snapshots\");\n }),\n });\n (Action).extend(ActionsModalMixin);\n (Action).extend(ModalMixin);\n (Action).extend(RailsResourceSnapshotsMixin);\n\n return Action;\n },\n]);\n","type Class = { new (...args: any[]): any };\n\nexport function deserialize(_Class: Class, data: any): null | InstanceType | InstanceType[] {\n return !data ? data : _.isArray(data) ? data.map((element) => new _Class(element)) : new _Class(data);\n}\n\nexport function serialize(data) {\n return data;\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { CancelationPeriod } from \"./cancelation_periods.service\";\n\nangular\n .module(\"cancelation_periods\")\n .factory(\"CancelationPeriodSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(CancelationPeriod, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"CancelationPeriodsFactory\", CancelationPeriod);\n","export default class CandidateShowDuplicatesModalCtrl {\n private candidate: any;\n private selectedManager: any;\n private duplicates: any;\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private resolve: any\n\n static $inject = [\"EmployeesFactory\"];\n\n constructor (private Employee: any) {}\n\n public getAttrName(scopeDescriptor) {\n switch (scopeDescriptor) {\n case \"fullNameWithTitle.standard\":\n return \"DUPL_ATTR_NAME\";\n case \"workEmail\":\n return \"DUPL_ATTR_EMAIL_WORK\";\n case \"workPhone\":\n return \"DUPL_ATTR_PHONE_WORK\";\n case \"workMobilePhone\":\n return \"DUPL_ATTR_MOBILE_WORK\";\n case \"privateEmail\":\n return \"DUPL_ATTR_EMAIL_PRIVATE\";\n case \"privatePhone\":\n return \"DUPL_ATTR_PHONE_PRIVATE\";\n case \"privateMobilePhone\":\n return \"DUPL_ATTR_MOBILE_PRIVATE\";\n }\n }\n\n public $onInit () {\n this.candidate = this.resolve.candidate;\n this.duplicates = this.resolve.duplicates;\n\n this.selectedManager = undefined;\n\n _.each(this.duplicates, (duplicate) => {\n duplicate.match = _.map(duplicate.highlight, (filterObj, filterKey) => {\n return { key: this.getAttrName(filterKey), value: _.flatten(filterObj) };\n });\n });\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public connectToManager (employee) {\n if(!employee) { return }\n \n this.cancel();\n (this.Employee)\n .$post(this.candidate.$url(\"/transform.json\"), { employee_id: employee.id })\n .then((this.Employee).transformResultHandlerOk)\n .catch((this.Employee).transformResultHandlerError);\n };\n\n public createNewManager () {\n this.cancel();\n\n (this.Employee)\n .$post(this.candidate.$url(\"/transform.json\"))\n .then((this.Employee).transformResultHandlerOk)\n .catch((this.Employee).transformResultHandlerError);\n };\n}","import CandidateShowDuplicatesModalCtrl from \"./candidate-show-duplicates-modal.controller\";\nimport candidateShowDuplicatesModalTemplate from \"./candidate-show-duplicates-modal.template.html\";\n\nangular.module(\"candidates.modals\").component(\"candidateShowDuplicates\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: candidateShowDuplicatesModalTemplate,\n controller: CandidateShowDuplicatesModalCtrl,\n});\n","export default class CandidateSearchCtrl {\n private advancedQuery: any;\n private loading: boolean;\n private remote: boolean;\n private setData: () => (params: any) => void;\n private advancedCandidateSearchOptions: any;\n private query: string;\n private cancelers: ng.IDeferred[] = [];\n private searchedSkills: any;\n private scores: any;\n\n static $inject = [\"$q\",\"SavedSearchesFactory\", \"Session\", \"Autocompletes\", \"$log\", \"$state\"];\n\n constructor(private $q: ng.IQService, \n private SavedSearchesFactory: any, \n private Session: any, \n private Autocompletes: any, \n private $log: ng.ILogService, \n private $state: angular.ui.IStateService) {}\n\n public $onInit() {\n if (this.advancedQuery) {\n this.advancedQuery.resourceType = \"CandidateSearch\";\n this.loading = false;\n }\n\n this.advancedCandidateSearchOptions = {\n query: this.query,\n setData: this.setData(),\n remote: this.remote,\n advancedQuery: this.advancedQuery,\n };\n\n this.cancelers = [];\n };\n\n public searchSkills (value) {\n if (value.length) {\n this.loading = true;\n\n this.searchedSkills = [{ resource_type: \"Query\", name: value }];\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(value, \"candidate_name\", _.last(this.cancelers)).then( (results) => {\n this.searchedSkills = _.chain(results)\n .groupBy(\"id\")\n .map( (result) => {\n switch (result[0].resource_type) {\n case \"candidate\":\n return {\n resource_type: \"Kandidat\",\n id: result[0].candidate.id,\n name: result[0].candidate.name,\n highlights: _.pluck(result, \"highlight\"),\n scores: _.pluck(result, \"score\"),\n };\n default:\n return {\n resource_type: \"Query\",\n name: result[0].highlight[0],\n highlights: _.pluck(result, \"highlight\"),\n };\n }\n })\n .sortBy((result) => {\n return _.reduce(\n result.scores || [],\n (memo, num) => memo + num,\n 0\n );\n })\n .value()\n .reverse();\n\n if (!_.isEmpty(this.searchedSkills)) {\n this.searchedSkills.splice(0, 0, this.searchedSkills.pop());\n }\n this.loading = false;\n });\n } else {\n this.searchedSkills = [];\n }\n };\n\n public search (item, query) {\n if (item && item.id) {\n query = item.name;\n }\n\n _.invoke(this.cancelers, \"resolve\");\n\n this.advancedQuery.basicQuery = query;\n var params = this.advancedQuery.collectSearchParams({ candidate_id: item ? item.id : undefined });\n\n if (!this.remote) {\n var route = \"root.candidates\";\n if (item && item.id) {\n route = \"root.candidates.show\";\n params.q = '\"' + query.replace(/\\//g, \" \") + '\"';\n }\n\n this.$state.go(route, params, { reload: true, inherit: false });\n } else {\n this.setData()(params);\n }\n };\n}\n\n","import CandidateSearchCtrl from \"./candidate-search.controller\";\nimport candidateSearchTemplate from \"./candidate-search.template.html\";\n\nangular.module(\"candidates.components\").component(\"candidateSearch\", {\n bindings: {\n savedSearches: \"=\",\n disableSavedSearch: \"@\",\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n },\n template: candidateSearchTemplate,\n controller: CandidateSearchCtrl,\n});\n","export default class CandidateSelectCtrl{ \n public candidates: any[];\n\n static $inject = [\"$rootScope\", \"CandidatesFactory\", \"Autocompletes\"];\n constructor(\n private $rootScope: ng.IRootScopeService,\n public Candidate: any,\n private Autocompletes: any) {\n _.defaults(this, { placeholder: \"CANDIDATES\" });\n }\n\n public autocomplete (text) {\n if (!text.length) {\n this.candidates = [];\n return false;\n }\n\n return this.Autocompletes.autocomplete(text, \"candidate_name\").then( (res) => {\n this.candidates = _.chain(res)\n .map( (entry) => {\n return entry.candidate ? new this.Candidate(entry.candidate) : null;\n })\n .compact()\n .uniq()\n .value();\n });\n }\n}\n\n\n","import CandidateSelectCtrl from \"./candidate-select.controller\";\nimport candidateSelectTemplate from \"./candidate-select.template.html\";\n\nangular.module(\"candidates.components\").component(\"candidateSelect\", {\n bindings: {\n ngModel: \"=\",\n },\n template: candidateSelectTemplate,\n controller: CandidateSelectCtrl,\n});\n","import { IStateService } from \"angular-ui-router\";\nexport default class CandidatesProjectSearchCtrl {\n private foundCandidates: any[] = [];\n private loading: boolean = false;\n public cancelers: ng.IDeferred[] = [];\n private project: any;\n private advancedQuery: any;\n private remote: boolean;\n private setData: () => (collectedparams: any) => void \n\n\n static $inject = [\"UsersFactory\", \"Session\", \"CandidatesFactory\", \"$state\", \"$q\", \"Autocompletes\"];\n constructor(public User: any,\n private Session: any,\n public Candidate: any,\n private $state: IStateService,\n public $q: ng.IQService,\n public Autocompletes: any ) {}\n\n public searchCandidates (query) {\n if (query.length) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(query, \"candidate_name\", _.last(this.cancelers)).then( (results) => {\n this.foundCandidates = _.map(results, (result) => {\n result.name = result.highlight[0];\n switch (result.resource_type) {\n case \"candidate\":\n return _.extend(new this.Candidate(result.candidate), {\n resource_type: \"Kandidat\",\n fn: (id, query) => {\n this.advancedQuery.basicQuery = query;\n this.$state.go(\"root.candidates.show\", this.advancedQuery.collectSearchParams({ candidate_id: id }), {\n reload: true,\n inherit: false,\n });\n },\n });\n default:\n return _.extend(result, {\n resource_type: \"Query\",\n fn: (id, query) => {\n this.search(id, query);\n },\n });\n }\n });\n this.loading = false;\n });\n } else {\n this.foundCandidates = [];\n }\n };\n\n public search (query, routeFn) {\n this.advancedQuery.basicQuery = query;\n\n if (!this.remote) {\n this.$state.go(\"root.candidates\", this.advancedQuery.collectSearchParams(), { reload: true, inherit: false });\n } else {\n this.setData()(this.advancedQuery.collectSearchParams());\n }\n };\n\n public addCandidateToProject (item) {\n if (!item || !item.id) {\n return;\n }\n\n this.$state.go(\"^.show\", { candidate_id: item.id });\n this.project.addCandidate(item);\n };\n}","import CandidatesProjectSearchCtrl from \"./candidates-project-search.controller\";\nimport candidatesProjectSearchTemplate from \"./candidates-project-search.template.html\"\n\nangular.module(\"candidates.components\").component(\"candidatesProjectSearch\", {\n bindings: {\n project: \"<\",\n query: \"<\",\n remote: \"<\",\n setData: \"&\",\n },\n template: candidatesProjectSearchTemplate,\n controller: CandidatesProjectSearchCtrl,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TLanguage } from \"../languages\";\n\nexport class Language {\n private serviceName: string = \"LanguagesFactory\";\n public id: number;\n private name: string;\n private key: string;\n public slug: string;\n\n static defaultOptions = [\n { name: \"GERMAN\", key: \"de\" },\n { name: \"ENGLISH\", key: \"en\" },\n ];\n\n static levels = [\n { name: \"GOOD\", id: 0 },\n { name: \"VERY_GOOD\", id: 1 },\n { name: \"FLUENT\", id: 2 },\n { name: \"NATIVE_SPEAKER\", id: 3 },\n { name: \"A1\", id: 4 },\n { name: \"A2\", id: 5 },\n { name: \"B1\", id: 6 },\n { name: \"B2\", id: 7 },\n { name: \"C1\", id: 8 },\n { name: \"C2\", id: 9 },\n { name: \"BUSINESS_FLUENT\", id: 10 },\n { name: \"ADVANCED\", id: 11 },\n { name: \"BASIC_KNOWLEDGE\", id: 12 },\n ];\n\n static levelInWords(level: number): string {\n const foundLevel = Language.levels.find((l) => l.id === level);\n return foundLevel ? foundLevel.name : \"UNKNOWN\";\n }\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.languages.query().then((response) => {\n return response.body.data.map((element) => {\n return new Language(element);\n });\n });\n }\n}\n","import { Language } from \"../../../languages/services/languages.service\";\nimport candidatesPriorityPopoverTemplate from \"../../../priorities/components/priority-popover/priority-popover.template.html\";\nimport { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class CandidatesTableBodyCtrl {\n private draggingHelper: (event: DragEvent) => void;\n private startCallback: () => void;\n private state: any;\n private reduceParams: (params: any) => any;\n private priorityPopoverTemplate: string;\n private languageLevelInWords: any;\n private createAsManager: () => void; \n private isCandidatesTable: boolean;\n \n static $inject = [\"QuicklistsFactory\", \"CandidatesFactory\", \"PersonTransformer\", \"$templateCache\"];\n\n constructor(private Quicklist: any, \n private Candidate: any, \n private PersonTransformer: any, \n private $templateCache: ng.ITemplateCacheService) {\n this.priorityPopoverTemplate = \"priority-popover-template\";\n this.$templateCache.put(this.priorityPopoverTemplate, candidatesPriorityPopoverTemplate);\n \n this.languageLevelInWords = Language.levelInWords;\n this.Candidate = Candidate;\n \n this.$templateCache.put(\"info-popover-candidate\", \"\");\n \n this.createAsManager = PersonTransformer.createAsManager;\n \n angular.extend(this, {\n draggingHelper: Quicklist.draggingHelper,\n startCallback: Quicklist.startCallback,\n state: StateTransitionsConfig.state,\n reduceParams: StateTransitionsConfig.reduceParams,\n });\n this.isCandidatesTable = true;\n }\n}","import CandidatesTableBodyCtrl from \"./candidates-table-body.controller\";\nimport candidatesTableBodyTemplate from \"./candidates-table-body.template.html\"\n\nangular.module(\"candidates.components\").component(\"candidatesTableBody\", {\n bindings: {\n candidateList: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n stateArgs: \"&\",\n context: \"=\",\n tableRowIdentifier: \"=\",\n initialViewState: \"<\",\n },\n template: candidatesTableBodyTemplate,\n controller: CandidatesTableBodyCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class CandidatesContextMenuCtrl {\n private transitionOptions: { [key: string]: any };\n private initialViewState: any;\n private isCandidatesTable: boolean;\n public candidate: any;\n public createAsManager: (person: any) => void;\n\n static $inject = [\"ProjectsFactory\", \"$state\", \"PersonTransformer\"];\n\n constructor(\n private Project: any,\n private $state: angular.ui.IStateService,\n private PersonTransformer: any,\n ) {\n this.createAsManager = this.PersonTransformer.createAsManager;\n }\n\n public $onInit() {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n transitionOptions: StateTransitionsConfig.transitionOptions(this.initialViewState),\n reduceParams: StateTransitionsConfig.reduceParams,\n });\n // set state to transition from to initial state\n };\n\n public openInitiativExpertProfile = () => {\n if (this.isCandidatesTable) {\n this.Project.$get(\"projects/initiative_application.json\", { candidate_id: this.candidate.id }).then(\n (result) => {\n this.$state.go(\"^.projects.show\", { project_id: result.id });\n },\n (not_found) => {\n this.$state.go(\"^.expert_profile.new\", {\n candidate_id: this.candidate.id,\n cpjoin_id: undefined,\n employee_id: undefined,\n initiative_expert_profile: true,\n });\n }\n );\n } else {\n this.Project.$get(\"projects/initiative_application.json\", { candidate_id: this.candidate.id }).then(\n (result) => {\n this.$state.go(\".projects.show\", { project_id: result.id });\n },\n (not_found) => {\n this.$state.go(\".expert_profile.new\", {\n candidate_id: this.candidate.id,\n cpjoin_id: undefined,\n employee_id: undefined,\n initiative_expert_profile: true,\n });\n }\n );\n }\n };\n}","import CandidatesContextMenuCtrl from \"./candidates-context-menu.controller\";\nimport candidatesContextMenuTemplate from \"./candidates-context-menu.template.html\";\n\nangular.module(\"candidates.components\").component(\"candidatesContextMenu\", {\n bindings: {\n candidate: \"=\",\n cpjoin: \"=?\",\n statePrefix: \"=\",\n isLonglistEntry: \"=\",\n context: \"=\",\n stateArgs: \"&\",\n isCandidatesTable: \"=\",\n initialViewState: \"<\",\n },\n template: candidatesContextMenuTemplate,\n controller: CandidatesContextMenuCtrl,\n});\n","export default class AdvancedCandidateSearchCtrl {\n\n public advancedQuery: any;\n public advancedQueryCopy: any;\n private setData: () => (collectedparams: any) => void;\n private closing: () => void;\n private remote: boolean;\n\n static $inject = [\"$state\"];\n\n constructor(private $state: angular.ui.IStateService) {}\n\n public performAdvancedSearch () {\n if (!this.remote) {\n this.$state.go(\"root.candidates\", this.advancedQueryCopy.collectSearchParams(), {\n reload: true,\n inherit: false,\n });\n } else {\n _.extend(this.advancedQuery, this.advancedQueryCopy);\n this.setData()(this.advancedQueryCopy.collectSearchParams());\n this.closing();\n }\n };\n\n $onInit() {\n this.advancedQueryCopy = angular.copy(this.advancedQuery);\n this.advancedQueryCopy.name = undefined;\n this.advancedQueryCopy.id = undefined;\n }\n}","import AdvancedCandidateSearchCtrl from \"./advanced-candidate-search.controller\";\nimport advancedCandidateSearchTemplate from \"./advanced-candidate-search.template.html\";\n\nangular.module(\"candidates.components\").component(\"advancedCandidateSearch\", {\n bindings: {\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n closing: \"&\",\n },\n template: advancedCandidateSearchTemplate,\n controller: AdvancedCandidateSearchCtrl,\n});\n","import candidatePriorityPopoverTemplate from \"../../../priorities/components/priority-popover/priority-popover.template.html\";\nimport { Language } from \"../../../languages/services/languages.service\";\nimport { TransitionService, Transition } from \"@uirouter/angularjs\";\n\nexport default class CandidatesShowCtrl {\n private deregActiveRowChanged: () => void;\n private deregActiveRowClosed: () => void;\n private deregActiveRowConnector: () => void;\n private priorityPopoverTemplate: string;\n private candidate: any;\n private projectsLazyLoading: boolean;\n private isCandidatesTable: boolean;\n private initializeActiveRowConnector: any;\n private stateParams: any;\n private openDocumentId: number;\n private activeProject: any;\n private activeCpjoin: any;\n private openDocument: { openDocumentFullScreen: (documents: any) => void } | undefined;\n\n static $inject = [\"$templateCache\", \"$rootScope\", \"CandidatesFactory\", \"DeckControllerMixin\", \"$transitions\"];\n\n constructor(private $templateCache: ng.ITemplateCacheService, \n private $rootScope: IExtendedRootScopeService,\n public Candidate: any,\n private DeckControllerMixin: any,\n private $transitions: TransitionService) {\n this.priorityPopoverTemplate = \"priority-popover-template\";\n this.$templateCache.put(this.priorityPopoverTemplate, candidatePriorityPopoverTemplate);\n\n this.$transitions.onSuccess({}, (transition: Transition) => {\n if (transition) {\n this.stateParams = _.pick(transition.params(), _.identity);\n this.openDocumentId = parseInt(transition.params().document_id);\n }\n });\n\n this.deregActiveRowChanged = this.$rootScope.$on(\"activeRowChanged\", (event, newActiveRow) => {\n switch (newActiveRow.resourceType) {\n case \"Project\":\n this.activeProject = newActiveRow;\n this.activeCpjoin = this.activeProject.getCpjoin(this.candidate);\n break;\n case \"CandidatesProjects\":\n this.activeProject = newActiveRow.project;\n this.activeCpjoin = newActiveRow;\n break;\n }\n });\n\n this.deregActiveRowClosed = this.$rootScope.$on(\"activeRowClosed\", (event, activeRow) => {\n if (_.contains([\"Project\", \"CandidatesProjects\"], activeRow.resourceType)) {\n this.activeProject = undefined;\n this.activeCpjoin = undefined;\n }\n });\n }\n \n public $onInit () {\n angular.extend(this, this.DeckControllerMixin, {\n languageLevelInWords: Language.levelInWords,\n openDocument: undefined,\n });\n\n this.$rootScope.setPageTitle(this.candidate.fullNameReverseWithTitle);\n this.projectsLazyLoading = true;\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.candidate);\n this.isCandidatesTable = false;\n };\n\n public $onDestroy () {\n this.deregActiveRowChanged();\n this.deregActiveRowClosed();\n this.deregActiveRowConnector();\n };\n\n public openDocumentFullScreen(event: Event) {\n event.preventDefault();\n if (!this.openDocument) {\n return;\n }\n\n this.openDocument.openDocumentFullScreen(this.candidate.documents);\n }\n}","import CandidatesShowCtrl from \"./candidates-show.controller\";\nimport candidatesShowViewTemplate from \"./candidates-show-view.template.html\";\n\nangular.module(\"candidates.views\").component(\"candidatesShowView\", {\n bindings: {\n candidate: \"<\",\n savedSearches: \" void;\n private deregDocumentsChanged: () => void;\n private saving: boolean;\n private candidate: any;\n private onSaveError: (error: any) => void;\n private contactForm: ng.IFormController;\n private maritalStatuses: MaritalStatus[];\n private leadershipExperiences: LeadershipExperience[];\n private languageSkills: any;\n private languages: Language[];\n private initializeActiveRowConnector: (candidate: any) => () => void;\n private registerSaveHotkey: (callback: () => void) => void;\n private deregCandidateDiff: () => void;\n \n\n static $inject = [\"$rootScope\", \"$state\", \"$templateCache\", \"EditUtilMixin\", \"DeckControllerMixin\", \"$filter\"];\n\n constructor(private $rootScope: IExtendedRootScopeService,\n private $state: IStateService,\n private $templateCache: ng.ITemplateCacheService, \n private EditUtilMixin: any, \n private DeckControllerMixin: any, \n private $filter: ng.IFilterService) {\n\n this.skillsDescriptionPopover = \"skills-description-popover\";\n this.coreCompetenciesDescriptionPopover = \"core-competencies-description-popover\";\n this.exclusionCriterionDescriptionPopover = \"exclusion-criterion-description-popover\";\n this.openApplicationsDescriptionPopover = \"open-applications-description-popover\";\n this.wantedJobDescriptionPopover = \"wantedJobDescription-popover\";\n this.jobChangeMotivationDescriptionPopover = \"job-change-motivation-description-popover\";\n this.jobTitlePopover = \"job-title-popover\";\n\n $templateCache.put(this.skillsDescriptionPopover, skillsDescriptionPopover);\n $templateCache.put(this.coreCompetenciesDescriptionPopover, coreCompetenciesDescriptionPopover);\n $templateCache.put(this.exclusionCriterionDescriptionPopover, exclusionCriterionDescriptionPopover);\n $templateCache.put(this.openApplicationsDescriptionPopover, openApplicationsDescriptionPopover);\n $templateCache.put(this.wantedJobDescriptionPopover, wantedJobDescriptionPopover);\n $templateCache.put(this.jobChangeMotivationDescriptionPopover, jobChangeMotivationDescriptionPopover);\n $templateCache.put(this.jobTitlePopover, jobTitlePopover);\n\n // needs update after init trusted documents urls\n this.deregDocumentsChanged = this.$rootScope.$on(\"candidateDocumentsChanged\", () => {\n this.candidate.snapshot();\n });\n }\n\n \n public $onInit () {\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin, {\n languageLevelInWords: Language.levelInWords,\n languageLevelIDs: _.pluck(Language.levels, \"id\"),\n });\n\n if (this.candidate.maritalStatus) {\n this.candidate.maritalStatus = _.find(this.maritalStatuses, (maritalStatus) => {\n return maritalStatus.id == this.candidate.maritalStatus.id;\n });\n }\n\n if (this.candidate.leadershipExperience) {\n this.candidate.leadershipExperience = _.find(this.leadershipExperiences, (leadershipExperience) => {\n return leadershipExperience.id === this.candidate.leadershipExperience.id;\n });\n }\n\n this.languageSkills = _.map(this.languages, (language) => {\n var languageSkill = _.find(this.candidate.languageSkills, (langSkill) => {\n return langSkill.language.id == language.id;\n });\n if (languageSkill) {\n return languageSkill;\n } else {\n return { id: null, level: null, language: language };\n }\n });\n\n if (this.candidate.id) {\n this.$rootScope.setPageTitle(this.candidate.fullNameReverseWithTitle);\n } else {\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"NEW_CANDIDATE\"));\n }\n\n // perform after everything is rendered\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.candidate);\n this.registerSaveHotkey(this.saveCandidate);\n };\n\n public save(route, params) {\n if (!this.saving) {\n this.saving = true;\n this.candidate.save().then( (savedCandidate) => {\n this.candidate.snapshot();\n this.$state.go(route || \"^.show\", _.extend(params || {}, savedCandidate.params()));\n\n this.saving = false;\n }, this.onSaveError.bind(this));\n }\n }\n\n public saveCandidate (route?: any, params?: any) {\n if (!this.contactForm.$valid) {\n window.alert(this.$filter(\"translate\")(\"INVALID_CONTACT_FORM\"));\n } else {\n if (this.candidate.$hasDuplicates) {\n this.candidate.confirm(this.$filter(\"translate\")(\"DUPLICATE_WARNING_CANDIDATE\")).then( (res) => {\n if (res) {\n this.save(route, params);\n } else {\n return;\n }\n });\n } else {\n this.save(route, params);\n }\n }\n };\n\n public $onDestroy () {\n this.deregCandidateDiff();\n this.deregDocumentsChanged();\n this.deregActiveRowConnector();\n };\n}\n","import CandidatesEditViewCtrl from \"./candidates-edit.controller\";\nimport candidatesEditViewTemplate from \"./candidates-edit-view.template.html\";\n\nangular.module(\"candidates.views\").component(\"candidatesEditView\", {\n bindings: {\n candidate: \"<\",\n languages: \"<\",\n maritalStatuses: \"<\",\n leadershipExperiences: \"<\",\n jobTypes: \"<\",\n drivingLicences: \"<\",\n deregCandidateDiff: \"&\",\n scrollspyScope: \"<\",\n },\n template: candidatesEditViewTemplate,\n controller: CandidatesEditViewCtrl,\n});\n","export default class CandidatesIndexViewCtrl {\n private loader: () => any; \n private candidatesLazyLoading: boolean;\n private canLonglist: boolean;\n private onLonglist: any;\n private advancedQuery: any;\n private query: string;\n private attributes: any; \n private stateParams: any;\n private longlist: (() => any[]) | undefined;\n\n static $inject = [\"makeCollectionProxy\", \"$state\", \"SavedSearchesFactory\", \"CandidatesFactory\", \"KPISteps\", \"PrsmTableAttributeService\"];\n\n constructor ( private makeCollectionProxy: (loader: () => any, stateParams: any) => Promise,\n private $state: angular.ui.IStateService,\n private SavedSearch: { results: (candidate: any) => any},\n public Candidate: { \n query: (params: any) => any,\n defaultTableAttributes: any \n },\n private KPISteps: { [key: string]: any },\n private PrsmTableAttributeService: { new (name: string, defaultAttributes: any): { getAttributes: () => any } }) {\n\n this.candidatesLazyLoading = true;\n this.canLonglist = this.onLonglist !== undefined;\n }\n\n \n public setKpiKey (key: string): void {\n this.advancedQuery.kpiFilter[key] = !this.advancedQuery.kpiFilter[key];\n this.advancedQuery.basicQuery = this.query;\n this.$state.go(\"root.candidates\", this.advancedQuery.collectSearchParams(), { reload: true, inherit: false });\n };\n\n public $onInit (): void {\n this.attributes = new this.PrsmTableAttributeService(\n \"candidates-index-table-attributes\",\n this.Candidate.defaultTableAttributes\n ).getAttributes();\n\n angular.extend(this, {\n advancedQuery: _.defaults(this.advancedQuery, { kpiFilter: {} }),\n steps: _.map(this.KPISteps, (value, key) => {\n return { key: key, value: value };\n }),\n });\n\n if (this.stateParams.saved_search_id) {\n this.loader = this.SavedSearch.results.bind(this.Candidate);\n } else {\n this.loader = this.Candidate.query.bind(this.Candidate);\n }\n\n this.makeCollectionProxy(this.loader, this.stateParams)\n .then( (candidates) => {\n angular.extend(this, {\n candidates: candidates,\n currentCandidate: candidates[0],\n });\n })\n .then( () => {\n this.candidatesLazyLoading = false;\n });\n };\n\n public isLonglisted (candidate): boolean {\n if (this.longlist !== undefined) {\n return _.any(this.longlist(), (c) => {\n return c.id == candidate.id;\n });\n } else {\n return false;\n }\n };\n\n public onLonglistClicked (candidate): void {\n this.onLonglist({ $candidate: candidate });\n };\n}","import CandidatesIndexViewCtrl from \"./candidates-index.controller\";\nimport candidatesIndexViewTemplate from \"./candidates-index-view.template.html\";\n\nangular.module(\"candidates.views\").component(\"candidatesIndexView\", {\n bindings: {\n savedSearches: \" void;\n private openDocument: any;\n private candidate: any;\n private $transition$: Transition;\n private openDocumentId: number;\n\n static $inject = [\"SidebarService\", \"$transitions\",];\n\n constructor (private SidebarService: any, private $transitions: TransitionService) {\n this.closeSidebar = SidebarService.closeSidebar;\n $transitions.onSuccess({}, (transition) => {\n if (this.$transition$) {\n this.openDocumentId = parseInt(this.$transition$.params().document_id);\n }\n });\n }\n\n public openDocumentFullScreen (event) {\n event.preventDefault();\n if (!this.openDocument) {\n return;\n }\n this.openDocument.openDocumentFullScreen(this.candidate.documents);\n };\n}","import CandidatesDocumentsViewCtrl from \"./candidates-documents-view.controller\";\nimport candidatesDocumentsViewTemplate from \"./candidates-documents-view.template.html\";\n\nangular.module(\"candidates.views\").component(\"candidatesDocumentsView\", {\n bindings: {\n candidate: \" boolean;\n private resolve: any;\n\n\n static $inject = [\"UsersFactory\"];\n \n constructor(private User: any) {}\n\n private extend(resolve): void {\n this.project = resolve.project;\n this.candidatesProject = resolve.candidatesProject;\n }\n\n public $onInit(): void {\n this.extend(this.resolve);\n\n this.filterUsers = this._filterUsers.bind(this);\n this.researcherFromTeam = _.filter(this.User.getAll(), {\n isSelectable: true,\n team: this.project.projectManager.team,\n type: \"ResearchConsultantUser\",\n });\n };\n\n private _filterUsers(user: any): boolean {\n return _.any(\n _.compact(_.union(this.project.researchConsultants, [this.project.projectManager], this.researcherFromTeam)),\n function (u2) {\n return u2.id == user.id;\n }\n );\n };\n\n public cancel(): void {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public save(): void {\n this.modalInstance.close(this.candidatesProject);\n };\n};\n","import { EditResearcherModalCtrl } from \"./edit-researcher-modal.controller\";\nimport editResearcherModalTemplate from \"./edit-researcher-modal.template.html\";\n\nangular.module(\"candidates_projects.modals\").component(\"editResearcherModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: editResearcherModalTemplate,\n controller: EditResearcherModalCtrl,\n});\n","export class SendOpenJobOfferModalCtrl {\n public cpjoin: any;\n public jobOffers: any;\n public email: any;\n public user: any;\n public resolve: any;\n public openJobOfferEmail: any;\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [\"Session\"];\n \n constructor(private Session: any) {}\n\n private extend(resolve) : void {\n this.cpjoin = resolve.cpjoin;\n this.jobOffers = resolve.jobOffers;\n this.email = resolve.email;\n }\n\n public $onInit() : void {\n this.user = this.Session.user;\n this.extend(this.resolve);\n this.openJobOfferEmail = {\n jobOffer: _.first(this.jobOffers),\n email: this.email,\n callback: null,\n };\n };\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public save() {\n this.openJobOfferEmail.callback = this.cpjoin.createMessage(\n \"create_open_job_offer_email\",\n this.openJobOfferEmail\n );\n this.modalInstance.close(this.openJobOfferEmail);\n };\n\n};\n","import { SendOpenJobOfferModalCtrl } from \"./send-open-job-offer-modal.controller\";\nimport sendOpenJobOfferModalTemplate from \"./send-open-job-offer-modal.template.html\";\n\nangular.module(\"candidates_projects.modals\").component(\"sendOpenJobOfferModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: sendOpenJobOfferModalTemplate,\n controller: SendOpenJobOfferModalCtrl,\n});\n","export class LonglistCtrl {\n static $inject = [\n \"$rootScope\",\n \"CandidatesProjectsFactory\",\n \"PrsmTableHelper\",\n \"makeCollectionProxy\",\n \"SavedSearchesFactory\",\n ];\n\n private oldObjectCandidatesProjects: any[] = [];\n private lazyLoading: boolean = false;\n private longlistObject;\n private object;\n private activeRow;\n private advancedQuery;\n private advancedLonglistSearchOptions;\n private attributes;\n\n constructor(\n private $rootScope: ng.IRootScopeService,\n private CandidatesProjects: any,\n private PrsmTableHelper: any,\n private makeCollectionProxy: any,\n private SavedSearch: any\n ) {}\n\n public $doCheck() {\n var newObjectCandidatesProjects = angular.copy(this.object.candidatesProjects);\n if (newObjectCandidatesProjects.length != this.oldObjectCandidatesProjects.length) {\n this.updateLongListObjectAndActiveRow(newObjectCandidatesProjects);\n this.oldObjectCandidatesProjects = newObjectCandidatesProjects;\n }\n }\n\n public $onInit() {\n if (this.object.resourceType == \"Candidate\") {\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.CandidatesProjects.defaultTableAttributes),\n [\"id\", \"projectTitle\", \"processStatus\", \"projectStatus\", \"sendout\", \"sendoutAt\"],\n [\"id\", \"projectTitle\", \"processStatus\", \"projectStatus\", \"sendout\"]\n );\n } else if (this.object.resourceType == \"Project\") {\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.CandidatesProjects.defaultTableAttributes),\n [\"name\", \"sales\", \"researcher\", \"tags\", \"processStatus\", \"sendoutAt\"],\n [\"name\", \"sales\", \"researcher\", \"processStatus\", \"sendoutAt\"]\n );\n }\n\n this.$rootScope.$on(\"candidate_add_to_project\", () => {\n this.object.candidatesProjectsCount++;\n });\n\n this.$rootScope.$on(\"candidate_remove_from_project\", () => {\n this.object.candidatesProjectsCount--;\n this.object.candidatesProjects = this.existingCandidatesProjects(this.object.candidatesProjects);\n });\n\n this.advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"longlist_status\", query: \"\" },\n });\n\n // don't show Lost entries\n if (this.object.resourceType == \"Project\") {\n this.advancedQuery.conditions.push({\n field: \"longlist_status\",\n modifier: \"not\",\n query: _.findWhere(this.CandidatesProjects.statuses, { id: 4 }),\n });\n } else if (this.object.resourceType == \"Candidate\") {\n this.advancedQuery.conditions.push({\n field: \"project_status\",\n modifier: \"must\",\n query: \"active\",\n });\n this.advancedQuery.conditions.push({\n field: \"longlist_status\",\n modifier: \"not\",\n query: _.findWhere(this.CandidatesProjects.statuses, { id: 4 }),\n });\n }\n\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n this.updateObjects();\n\n this.advancedLonglistSearchOptions = {\n setData: () => { this.updateObjects() },\n advancedQuery: this.advancedQuery,\n };\n }\n\n /**\n *\n * @param {*} allCandidatesProjects\n * @returns all existing candidates projects\n */\n private existingCandidatesProjects(allCandidatesProjects) {\n const candidatesProjects: any[] = [];\n allCandidatesProjects.forEach((cp) => {\n if (!cp.deleted) {\n candidatesProjects.push(cp);\n }\n });\n return candidatesProjects;\n }\n\n /**\n * Updates the longlist\n * @param {*} updatedCandidatesProjects\n */\n private updateLongListObjectAndActiveRow(updatedCandidatesProjects) {\n this.longlistObject = _.chain(updatedCandidatesProjects)\n .each((cp) => {\n cp.candidate.sendoutAt = cp.expertProfile && cp.expertProfile.sendoutAt;\n cp.candidate.cp = _.pick(cp, \"expertProfile\", \"status\", \"id\");\n })\n .pluck(\"candidate\")\n .value();\n this.activeRow = this.longlistObject[0];\n }\n\n /**\n * Updates longlist from search results\n * @param {*} candidatesProjects\n */\n private initSearchResults(candidatesProjects) {\n this.object.candidatesProjects = candidatesProjects;\n this.updateLongListObjectAndActiveRow(this.object.candidatesProjects);\n this.lazyLoading = false;\n }\n\n private updateObjects() {\n this.lazyLoading = true;\n\n var params = _.extend(this.object.params(), {\n advanced: JSON.stringify(this.advancedQuery.beforeStringify()),\n additional_pages: Math.min(this.object.candidatesProjectsCount / 20 + 1, 3),\n });\n\n if (!_.isFunction(this.object.candidatesProjects.search)) {\n this.makeCollectionProxy(this.CandidatesProjects.query.bind(this.CandidatesProjects), params)\n .then((response) => {\n this.initSearchResults(response)\n });\n } else {\n this.object.candidatesProjects.search(params).then((response) => {\n this.initSearchResults(response)\n });\n }\n }\n}\n","import { LonglistCtrl } from \"./longlist.controller\";\n\nimport longlistTemplate from \"./longlist.template.html\";\n\nangular.module(\"candidates_projects.components\").component(\"longlist\", {\n bindings: {\n object: \"=\",\n activeRow: \"=\",\n initialViewState: \"<\",\n },\n template: longlistTemplate,\n controller: LonglistCtrl,\n});\n","import { AdvancedLonglistSearchCtrl } from \"./advanced-longlist-search.controller\";\n\nimport advancedLonglistSearchTemplate from \"./advanced-longlist-search.template.html\";\n\nangular.module(\"candidates_projects.components\").component(\"advancedLonglistSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n closing: \"&\",\n },\n template: advancedLonglistSearchTemplate,\n controller: AdvancedLonglistSearchCtrl,\n});\n","export class AdvancedLonglistSearchCtrl {\n public advancedQuery: any;\n private setData: () => void;\n private closing: () => void;\n\n constructor() {}\n\n public performAdvancedSearch() {\n this.setData();\n this.closing();\n }\n\n $onInit() {\n this.advancedQuery.name = undefined;\n this.advancedQuery.id = undefined;\n }\n}\n","import candidatesProjectsContextMenuTemplate from \"./candidates-projects-context-menu.template.html\";\n\nangular.module(\"candidates_projects.components\").component(\"candidatesProjectsContextMenu\", {\n bindings: {\n cpjoin: \"=\",\n },\n template: candidatesProjectsContextMenuTemplate,\n controller: () => {},\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport class LonglistTableBodyControllerCtrl {\n static $inject = [\"CandidatesProjectsFactory\", \"QuicklistsFactory\", \"CandidatesFactory\"];\n\n public projectStatuses: any[];\n public state: any;\n public reduceParams: any;\n public draggingHelper: any;\n public startCallback: any;\n\n constructor(private CandidatesProjects: any, private Quicklist: any, public Candidate: any) {\n this.projectStatuses = CandidatesProjects.statuses;\n\n angular.extend(this, {\n draggingHelper: Quicklist.draggingHelper,\n startCallback: Quicklist.startCallback,\n state: StateTransitionsConfig.state,\n reduceParams: StateTransitionsConfig.reduceParams,\n });\n }\n}\n","import { LonglistTableBodyControllerCtrl } from \"./longlist-table-body.controller\";\n\nimport longlistTableBodyTemplate from \"./longlist-table-body.template.html\";\n\nangular.module(\"candidates_projects.components\").component(\"longlistTableBody\", {\n bindings: {\n candidatesProjects: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n stateArgs: \"&\",\n context: \"=\",\n tableRowIdentifier: \"=\",\n },\n template: longlistTableBodyTemplate,\n controller: LonglistTableBodyControllerCtrl,\n});\n","export class CandidatesProjectsTableBodyCtrl {\n static $inject = [\"CandidatesProjectsFactory\", \"ProjectsFactory\"];\n public projectStatuses: any[];\n\n constructor(private CandidatesProjects: any, public Project: any) {\n this.projectStatuses = CandidatesProjects.statuses;\n }\n}\n","import { CandidatesProjectsTableBodyCtrl } from \"./candidates-projects-table-body.controller\";\n\nimport candidatesProjectsTableBodyTemplate from \"./candidates-projects-table-body.template.html\";\n\nangular.module(\"candidates_projects.components\").component(\"candidatesProjectsTableBody\", {\n bindings: {\n candidatesProjects: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n identifier: \"@\",\n initialViewState: \"<\",\n },\n template: candidatesProjectsTableBodyTemplate,\n controller: CandidatesProjectsTableBodyCtrl,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TCareerLevel } from \"../career_levels\";\n\nexport class CareerLevel {\n private id: number;\n private name: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.careerLevels.query().then((response) => {\n return response.body.data.map((element) => {\n return new CareerLevel(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { CareerLevel } from \"./career_levels.service\";\n\nangular\n .module(\"career_levels\")\n .factory(\"CareerLevelSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(CareerLevel, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"CareerLevelsFactory\", CareerLevel);\n","import CompanyContactModalCtrl from \"./company-contact-modal.controller\";\nimport companyContactModalTemplate from \"./company-contact-modal.template.html\";\n\nangular.module(\"companies.modals\").component(\"companyContactModal\", {\n bindings: {\n resolve: \"<\",\n dismiss: \"&\",\n },\n template: companyContactModalTemplate,\n controller: CompanyContactModalCtrl,\n});\n","export default class CompanyContactModalCtrl {\n company: any;\n resolve: {\n company: any\n };\n dismiss: (status: string) => () => void;\n\n constructor() {}\n\n public $onInit() {\n this.company = this.resolve.company;\n };\n\n public cancel() {\n this.dismiss(\"cancel\");\n };\n\n};","import EmployersTableBodyCtrl from \"./employers-table-body.controller\";\nimport employersTableBodyTemplate from \"./employers-table-body.template.html\";\n\nangular.module(\"companies.components\").component(\"employersTableBody\", {\n bindings: {\n workingRelationships: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n tableRowIdentifier: \"=\",\n statePrefix: \"@\",\n initialViewState: \"<\",\n },\n template: employersTableBodyTemplate,\n controller: EmployersTableBodyCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class EmployersTableBodyCtrl {\n public state: StateTransitionsConfig;\n\n constructor() {}\n\n public $onInit() {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n });\n };\n};\n","import { IStateService } from 'angular-ui-router';\nexport default class CompaniesAdvancedSearchCtrl {\n static $inject = [\"$state\"];\n public advancedQuery: any;\n public advancedQueryCopy: any;\n private setData: () => (collectedparams: any) => void;\n private closing: () => void;\n public remote: boolean;\n\n constructor(private $state: IStateService) { }\n\n public $onInit() {\n this.advancedQueryCopy = angular.copy(this.advancedQuery);\n this.advancedQueryCopy.name = undefined;\n this.advancedQueryCopy.id = undefined;\n };\n\n public performAdvancedSearch() {\n if (!this.remote) {\n this.$state.go(\"root.companies\", this.advancedQueryCopy.collectSearchParams(), {\n reload: true,\n inherit: false,\n });\n } else {\n _.extend(this.advancedQuery, this.advancedQueryCopy);\n this.setData()(this.advancedQueryCopy.collectSearchParams());\n this.closing();\n }\n };\n};\n","import CompaniesAdvancedSearchCtrl from \"./companies-advanced-search.controller\";\nimport companiesAdvancedSearchTemplate from \"./companies-advanced-search.template.html\";\n\nangular.module(\"companies.components\").component(\"companiesAdvancedSearch\", {\n bindings: {\n advancedQuery: \"=\",\n closing: \"&\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n },\n template: companiesAdvancedSearchTemplate,\n controller: CompaniesAdvancedSearchCtrl,\n});\n","import companiesChildrenTableBodyTemplate from \"./companies-children-table-body.template.html\";\n\nangular.module(\"companies.components\").component(\"companiesChildrenTableBody\", {\n bindings: {\n companies: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n tableRowIdentifier: \"=\",\n },\n template: companiesChildrenTableBodyTemplate,\n});\n","import { IFilterService } from 'angular';\nimport companySiteAddressesInfoPopover from \"../../views/popovers/company-site-addresses-info-popover.html\";\nexport default class CompaniesSiteAddressesFormCtrl {\n static $inject = [\"$filter\", \"$translate\", \"$templateCache\"];\n public siteAddressesInfoPopover: string;\n public siteAddresses: any[];\n\n constructor(\n private $filter: IFilterService,\n private $translate: angular.translate.ITranslateService,\n private $templateCache: ng.ITemplateCacheService) { }\n\n public $onInit() {\n this.siteAddressesInfoPopover = companySiteAddressesInfoPopover;\n this.$templateCache.put(this.siteAddressesInfoPopover, companySiteAddressesInfoPopover);\n };\n\n public addSiteAddress() {\n this.siteAddresses.push({});\n };\n\n public deleteSiteAddress (index) {\n this.siteAddresses.splice(index, 1);\n };\n};\n","import CompaniesSiteAddressesFormCtrl from \"./companies-site-addresses-form.controller\";\nimport companiesSiteAddressesFormTemplate from \"./companies-site-addresses-form.template.html\";\n\nangular.module(\"companies.components\").component(\"companySiteAddressesForm\", {\n bindings: {\n siteAddresses: \"=\",\n },\n template: companiesSiteAddressesFormTemplate,\n controller: CompaniesSiteAddressesFormCtrl,\n});\n","import { IFilterService } from \"angular\";\n\nexport default class CompanySelectCtrl {\n public cancelers: ng.IDeferred[] = [];\n public foundCompanies: any[] = [];\n public exclude: number;\n\n static $inject = [\"$q\", \"$rootScope\", \"$filter\", \"Autocompletes\", \"CompaniesFactory\"];\n\n constructor(\n private $q: ng.IQService,\n private $rootScope: IExtendedRootScopeService,\n private $filter: IFilterService,\n public Autocompletes: any,\n public Company: any,\n ) { }\n\n public searchCompanies(viewValue) {\n if (viewValue.length) {\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(viewValue, \"company_name\", _.last(this.cancelers)).then((results) => {\n this.foundCompanies = _.chain(results)\n .filter({ resource_type: \"company\" })\n .map((result) => {\n return _.extend(result, {\n resource_type: this.$filter(\"translate\")(\"COMPANY\"),\n });\n })\n .uniq((resource) => {\n return resource.company.id;\n })\n .filter((obj) => {\n return this.exclude != obj.company.id;\n })\n .value();\n });\n } else {\n this.foundCompanies = [];\n }\n };\n\n public triggerCompanySelectBroadcast($item, $model) {\n this.$rootScope.$broadcast(\"companyChanged\", $item);\n };\n};","import CompanySelectCtrl from \"./company-select.controller\"\nimport companySelectTemplate from \"./company-select.template.html\";\n\nangular.module(\"companies.components\").component(\"companySelect\", {\n bindings: {\n model: \"=\",\n exclude: \"@\",\n },\n template: companySelectTemplate,\n controller: CompanySelectCtrl,\n});\n","export default class CompaniesTableBodyCtrl {\n public isCompaniesTable: boolean;\n public draggingHelper: () => (link: string) => void;\n public startCallback: (event: any, ui: any, title: any) => () => void;\n\n static $inject = [\"$templateCache\", \"QuicklistsFactory\", \"CompaniesFactory\"];\n\n constructor(\n private $templateCache: ng.ITemplateCacheService,\n private Quicklist: any,\n public Company: any\n ) {\n this.$templateCache.put(\"info-popover-company\", \"\");\n\n angular.extend(this, {\n draggingHelper: this.Quicklist.draggingHelper,\n startCallback: this.Quicklist.startCallback,\n });\n this.isCompaniesTable = true;\n }\n};","import CompaniesTableBodyCtrl from \"./companies-table-body.controller\";\nimport companiesTableBodyTemplate from \"./companies-table-body.template.html\";\n\nangular.module(\"companies.components\").component(\"companiesTableBody\", {\n bindings: {\n companies: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n stateArgs: \"&\",\n context: \"=\",\n tableRowIdentifier: \"=\",\n initialViewState: \"<\",\n },\n template: companiesTableBodyTemplate,\n controller: CompaniesTableBodyCtrl,\n});\n","import CompaniesContextMenuCtrl from \"./companies-context-menu.controller\";\nimport companiesContextMenuTemplate from \"./companies-context-menu.template.html\";\n\nangular.module(\"companies.components\").component(\"companiesContextMenu\", {\n bindings: {\n company: \"<\",\n statePrefix: \"=\",\n initialViewState: \"<\",\n options: \"<\",\n stateArgs: \"&\",\n },\n template: companiesContextMenuTemplate,\n controller: CompaniesContextMenuCtrl,\n});","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class CompaniesContextMenuCtrl {\n initialViewState: any;\n constructor() {}\n \n public $onInit() {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n transitionOptions: StateTransitionsConfig.transitionOptions(this.initialViewState),\n });\n };\n};","import { IFilterService } from 'angular';\nimport { IStateService } from 'angular-ui-router';\nexport default class CompanySearchCtrl {\n public foundCompanies: any[] = [];\n public loading: boolean;\n public cancelers: ng.IDeferred[] = [];\n public advancedQuery: any;\n public advancedCompanySearchOptions: any;\n public query: string;\n public remote: boolean;\n private setData: () => (params: any) => void;\n\n static $inject = [\n \"$state\",\n \"$q\",\n \"$filter\",\n \"CompaniesFactory\",\n \"EmployeesFactory\",\n \"Autocompletes\",\n \"SavedSearchesFactory\"\n ];\n\n constructor(\n private $state: IStateService,\n private $q: ng.IQService,\n private $filter: IFilterService,\n private Companies: any,\n private Employees: any,\n private Autocompletes: any,\n private SavedSearch: any,\n ) { }\n \n public $onInit() {\n if (this.advancedQuery) {\n this.advancedQuery.resourceType = \"CompanySearch\";\n this.loading = false;\n }\n this.advancedCompanySearchOptions = {\n query: this.query,\n setData: this.setData(),\n remote: this.remote,\n advancedQuery: this.advancedQuery,\n };\n };\n\n public searchCompanies(viewValue) {\n if (viewValue.length) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(viewValue, \"company_name,employee_name\", _.last(this.cancelers)).then(\n (results) => {\n this.foundCompanies = _.map(results, (result: any) => {\n switch (result.resource_type) {\n case \"company\":\n if (result.company && result.company.name) {\n result.name = result.company.name;\n }\n return _.extend(result, {\n resource_type: this.$filter(\"translate\")(\"COMPANY\"),\n fn: (id, query) => {\n this.advancedQuery.basicQuery = query;\n this.$state.go(\"root.companies.show\", this.advancedQuery.collectSearchParams({ company_id: id }), {\n reload: true,\n inherit: false,\n });\n },\n });\n case \"employee\":\n if (result.employee && result.employee.full_name) {\n result.name = result.employee.full_name;\n }\n return _.extend(result, {\n resource_type: this.$filter(\"translate\")(\"MANAGER\"),\n fn: function (id, query) {\n this.advancedQuery.basicQuery = query;\n this.$state.go(\n \"root.companies.list.employees.show\",\n this.advancedQuery.collectSearchParams({ employee_id: id }),\n { reload: true, inherit: false }\n );\n },\n });\n default:\n result.name = result.highlight[0];\n return _.extend(result, {\n resource_type: \"Query\",\n fn: function (id, query) {\n this.search(query);\n },\n });\n }\n });\n this.loading = false;\n });\n } else {\n this.foundCompanies = [];\n }\n };\n\n public search(item, query) {\n if (item && item.id) {\n query = item.name;\n }\n _.invoke(this.cancelers, \"resolve\");\n\n this.advancedQuery.basicQuery = query;\n var params = this.advancedQuery.collectSearchParams({ company_id: item ? item.id : undefined });\n\n if (!this.remote) {\n var route = \"root.companies\";\n if (item && item.id) {\n route = \"root.companies.show\";\n params.q = '\"' + query.replace(/\\//g, \" \") + '\"';\n }\n\n this.$state.go(route, params, { reload: true, inherit: false });\n } else {\n this.setData()(params);\n }\n };\n\n};","import CompanySearchCtrl from \"./company-search.controller\"\nimport companySearchTemplate from \"./company-search.template.html\";\n\nangular.module(\"companies.components\").component(\"companySearch\", {\n bindings: {\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n savedSearches: \"=\",\n disableSavedSearch: \"@\",\n },\n template: companySearchTemplate,\n controller: CompanySearchCtrl,\n});\n","import { IHttpService } from \"angular\";\n\nexport default class CompaniesShowCtrl {\n public deregActiveRowConnector: () => void;\n public deregActionListener: () => void;\n public deregAddEmployeetoCompany: () => void;\n public deregAddProjectToCompany: () => void;\n public openCompanyOrgChart: (company: any) => void;\n public company: any;\n public showContact: boolean | null;\n public companyAttributes: any;\n public contactActionTypes: any;\n\n public initializeActiveRowConnector: (company: any) => () => void;\n\n static $inject = [\"$state\", \"$http\", \"$rootScope\", \"CompaniesFactory\", \"EmployeesFactory\", \"PrsmTableHelper\", \"DeckControllerMixin\", \"PersonModals\"];\n\n constructor(\n private $state: angular.ui.IStateService,\n private $http: IHttpService,\n private $rootScope: IExtendedRootScopeService,\n private Company: any,\n private Employee: any,\n private PrsmTableHelper: any,\n private DeckControllerMixin: any,\n private PersonModals: any,\n ) {\n this.companyAttributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Company.defaultTableAttributes),\n [\"id\", \"name\", \"responsibleUser\", \"city\", \"region\", \"priority\", \"tags\", \"createdAt\"],\n [\"id\", \"name\", \"region\"]\n );\n this.contactActionTypes = {\n email: \"e-mail\",\n telephone: \"phone-call\",\n };\n\n this.deregActionListener = this.$rootScope.$on(\"action\", (event, object) => {\n if (object.resourceType == \"Employee\") {\n var employee = _.findWhere(this.company.employees, { id: object.id });\n if (employee) {\n angular.copy(object.actions, employee.actions);\n }\n }\n });\n this.deregAddEmployeetoCompany = this.$rootScope.$on(\"addEmployee\", (event, employee) => {\n this.company.employees.push(employee);\n });\n this.deregAddProjectToCompany = this.$rootScope.$on(\"addProject\", (event, projects) => {\n this.company.projects.push(projects);\n });\n }\n \n public $onInit () {\n angular.extend(this, this.DeckControllerMixin, {\n openCompanyOrgChart: this.PersonModals.openCompanyOrgChart,\n });\n \n if (this.$state.current.name.match(/^root.companies.(edit|show)$/g) && this.company.employeesCount > 0) {\n this.$http.get(this.company.$url(\"/first_manager\")).then((result: any) => {\n var employee = new this.Employee(result.data.data);\n this.$state.go(\"root.companies.show.employees.show\", employee.params());\n });\n }\n\n this.$rootScope.setPageTitle(this.company.name);\n this.showContact = null;\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.company);\n };\n\n public $onDestroy() {\n this.deregActionListener();\n this.deregAddEmployeetoCompany();\n this.deregAddProjectToCompany();\n this.deregActiveRowConnector();\n };\n};","import CompaniesShowCtrl from \"./show.controller\";\nimport showTemplate from \"./show.template.html\";\n\nangular.module(\"companies.views\").component(\"companiesShow\", {\n bindings: {\n company: \" void;\n public deregActiveRowConnector: () => void;\n public onStateChanged: (company: any) => void;\n public initializeActiveRowConnector: (company: any) => () => void;\n public registerSaveHotkey: (saveCompany: any) => void;\n\n static $inject = [\"$rootScope\", \"$state\", \"$filter\", \"EditUtilMixin\", \"DeckControllerMixin\"];\n\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $state: IStateService,\n private $filter: IFilterService,\n private EditUtilMixin: any,\n private DeckControllerMixin: any,\n ) {}\n\n public $onInit () {\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin);\n\n if (this.company.id) {\n this.$rootScope.setPageTitle(this.company.name);\n } else {\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"NEW_COMPANY\"));\n }\n\n this.onStateChanged(this.company);\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.company);\n this.registerSaveHotkey(this.saveCompany);\n };\n\n public saveCompany(route, params) {\n if (!this.contactForm.$valid) {\n window.alert(this.$filter(\"translate\")(\"WRONG_CONTACT_DATA_NOTICE\"));\n } else {\n if (!this.saving) {\n this.saving = true;\n this.company.save().then((newCompany) => {\n this.$rootScope.$broadcast(\"resetObjectChangedState\", newCompany);\n this.company.snapshot();\n\n this.$state.go(route || \"^.show\", params || { company_id: newCompany.id });\n }, this.onSaveError.bind(this));\n }\n }\n };\n\n public $onDestroy () {\n this.deregActiveRowConnector();\n };\n};","import CompaniesEditCtrl from \"./edit.controller\";\nimport companiesEditTemplate from \"./edit.template.html\";\n\nangular.module(\"companies.views\").component(\"companiesEdit\", {\n bindings: {\n company: \" any; \n public companiesLazyLoading: boolean;\n public attributes: any;\n public stateParams: any;\n public companies: any;\n static $inject = [\"makeCollectionProxy\", \"CompaniesFactory\", \"SavedSearchesFactory\", \"$rootScope\", \"$filter\", \"PrsmTableAttributeService\"];\n\n constructor(\n private makeCollectionProxy: any,\n private Company: any,\n private SavedSearch: any,\n private $rootScope: IExtendedRootScopeService,\n private $filter: IFilterService,\n private PrsmTableAttributeService: any,\n ) {\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"COMPANY\"));\n }\n\n public $onInit() {\n this.attributes = new this.PrsmTableAttributeService(\n \"companies-index-table-attributes\",\n this.Company.defaultTableAttributes\n ).getAttributes();\n\n if (this.stateParams.saved_search_id) {\n this.loader = this.SavedSearch.results.bind(this.Company);\n } else {\n this.loader = this.Company.query.bind(this.Company);\n }\n\n this.makeCollectionProxy(this.loader, this.stateParams)\n .then((response) => {\n this.companies = response;\n })\n .then(() => {\n this.companiesLazyLoading = false;\n });\n };\n};","import CompaniesIndexCtrl from \"./index.controller\";\nimport companiesIndexTemplate from \"./index.template.html\";\n\nangular.module(\"companies.views\").component(\"companiesIndex\", {\n bindings: {\n query: \"<\",\n advancedQuery: \"<\",\n $state$: \"<\",\n stateParams: \"<\",\n },\n template: companiesIndexTemplate,\n controller: CompaniesIndexCtrl,\n});\n","import { Transition } from \"@uirouter/angularjs\";\n\nexport default class CompaniesDocumentsCtrl {\n public openDocument: { openDocumentFullScreen: (documents: any) => void } | undefined;\n public company: any;\n public closeSidebar: { close: () => void };\n static $inject = [\"$transition$\", \"SidebarService\"];\n\n constructor(private $transition$: Transition, private SidebarService: any) {\n this.closeSidebar = this.SidebarService.closeSidebar();\n }\n\n public $onInit () {\n this.openDocument = _.where(this.company.documents, {\n id: parseInt(this.$transition$.params().document_id) || this.company.documents[0],\n })[0];\n };\n};","import CompaniesDocumentsCtrl from \"./documents.controller\";\nimport documentsTemplate from \"./documents.template.html\";\n\nangular.module(\"companies.views\").component(\"companiesDocuments\", {\n bindings: {\n company: \"(object: any, mapFn: MapFn, options?: Opts): T {\n options = _.isEmpty(options) ? {} : options;\n\n if (!mapFn) {\n throw new Error(\"mapFn is required\");\n } else if (!_.isFunction(mapFn)) {\n throw new TypeError(\"mapFn must be a function\");\n } else if (!_.isObject(options)) {\n throw new TypeError(\"options must be an object\");\n }\n\n return new DeepMapKeysMega(mapFn, options).map(object);\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TTransactionBases } from \"../transaction_bases\";\n\nexport class TransactionBasis {\n private serviceName: string = \"TransactionBasesFactory\";\n public id: number;\n public name: string;\n public slug?: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n public isAGBContract() {\n return this.slug === \"gtc\";\n }\n\n public isFullContract() {\n return this.slug === \"framework-contract-fixed\";\n }\n\n public isFreelancerContract() {\n return this.slug === \"framework-contract-free\";\n }\n\n public isProjectConsultingContract() {\n return this.slug === \"framework-contract-employee-leasing-el\";\n }\n\n public isServiceContract() {\n return this.slug === \"framework-contract-for-work-and-services\";\n }\n\n public isIndividualContract() {\n return this.slug === \"individual-contract\";\n }\n\n @cached\n public static getAll() {\n return baseClient.transactionBases.query().then((response) => {\n return response.body.data.map((element) => {\n return new TransactionBasis(element);\n });\n });\n }\n\n @cached\n public static getAllForCompanies() {\n return baseClient.transactionBases.query({ query: { for_companies: true } }).then((response) => {\n return response.body.data.map((element) => {\n return new TransactionBasis(element);\n });\n });\n }\n}\n\nexport const PERIOD_OF_PAYMENT_OPTIONS = [\n { name: \"PAYMENT_PERIOD_0_DAYS\", value: 0 },\n { name: \"PAYMENT_PERIOD_14_DAYS\", value: 14 },\n { name: \"PAYMENT_PERIOD_30_DAYS\", value: 30 },\n { name: \"PAYMENT_PERIOD_60_DAYS\", value: 60 },\n { name: \"PAYMENT_PERIOD_90_DAYS\", value: 90 },\n];\n","import { camelCase, snakeCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { TCompaniesTransactionBases } from \"../companies_transaction_bases\";\nimport { TransactionBasis } from \"../../transaction_bases/services/transaction_bases.service\";\nimport { baseClient } from \"../../api-routing/base-client\";\nimport { deepMapKeysMega } from \"../../api-routing/deep-map-keys-mega\";\n\nexport class CompaniesTransactionBasis {\n public id: number;\n public companyId: number;\n startDate: Date;\n endDate: Date;\n brokerage: number;\n periodOfPayment: number;\n surchargePresent: boolean;\n surchargePercentage: number;\n contractType: InstanceType;\n document: { id: number } | undefined;\n documents: ({ id: number } | undefined)[];\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) {\n let object = deepMapKeysMega>(fields, camelCase);\n object.contractType = new TransactionBasis(object.contractType);\n object.startDate = object.startDate ? new Date(object.startDate) : undefined;\n object.endDate = object.endDate ? new Date(object.endDate) : undefined;\n\n Object.assign(this, object);\n }\n }\n\n public isAGBContract() {\n return this.contractType.isAGBContract();\n }\n\n public isFullContract() {\n return this.contractType.isFullContract();\n }\n\n public isFreelancerContract() {\n return this.contractType.isFreelancerContract();\n }\n\n public isProjectConsultingContract() {\n return this.contractType.isProjectConsultingContract();\n }\n\n public isServiceContract() {\n return this.contractType.isServiceContract();\n }\n\n public isIndividualContract() {\n return this.contractType.isIndividualContract();\n }\n\n public $url() {\n return `/companies_transaction_basis/${this.id}`;\n }\n\n public snapshot() {}\n\n public save() {\n let body = deepMapKeys({ companiesTransactionBasis: this }, snakeCase);\n\n let request = this.id\n ? baseClient.companiesTransactionBasis.update({ params: { id: this.id }, body: body })\n : baseClient.companiesTransactionBasis.create({ body: body });\n\n return request.then((response) => {\n return new CompaniesTransactionBasis(response.body.data);\n });\n }\n\n public delete() {\n return baseClient.companiesTransactionBasis.delete({ params: { id: this.id } }).then((response) => {\n return true;\n });\n }\n}\n","import { deepMapKeysMega } from \"../../api-routing/deep-map-keys-mega\";\nimport { snakeCase } from \"change-case-all\";\n\nimport { TCompaniesTransactionBases } from \"../companies_transaction_bases\";\nimport { CompaniesTransactionBasis } from \"./companies_transaction_bases.service\";\n\nangular\n .module(\"companies_transaction_bases\")\n .factory(\"CompaniesTransactionBasesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return _.isArray(data)\n ? data.map((element) => new CompaniesTransactionBasis(element))\n : new CompaniesTransactionBasis(data);\n };\n this.serialize = function (data) {\n return deepMapKeysMega>(data, snakeCase);\n };\n });\n },\n ])\n .service(\"CompaniesTransactionBasesFactory\", CompaniesTransactionBasis);\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TCountry } from \"../countries\";\nexport class Country {\n private serviceName: string = \"CountriesFactory\";\n private name: string;\n private id: number;\n private nationality: string;\n public slug: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.countries.query().then((response) => {\n return response.body.data.map((element) => {\n return new Country(element);\n });\n });\n }\n\n public static nationalities(countries: Country[]): TCountry[] {\n return countries.map((country) => ({\n id: country.id,\n name: country.name,\n nationality: country.nationality,\n slug: country.slug,\n }));\n }\n public static async findByName(name: string): Promise {\n const countries = await Country.getAll();\n return countries.find((country) => country.name === name);\n }\n}\n","import nationalitiesSelectCtrl from \"./nationalities-select.controller\";\nimport nationalitiesSelectTemplate from \"./nationalities-select.template.html\";\n\nangular.module(\"countries.components\").component(\"nationalitiesSelect\", {\n bindings: {\n nationalities: \"=ngModel\",\n },\n controller: nationalitiesSelectCtrl,\n template: nationalitiesSelectTemplate,\n});\n\n\n","import { Country } from \"../../../countries/services/countries.service\";\nimport { TCountry } from \"../../countries\";\n\ntype PersonsNationality = {\n id: number | null;\n nationality: TCountry;\n};\n\nexport default class nationalitiesSelectCtrl {\n private personsNationalities: PersonsNationality[];\n private nationalities: PersonsNationality[];\n\n constructor () {}\n\n public $onInit() {\n Country.getAll().then((countries: Country[]) => {\n var allNationalities: TCountry[] = Country.nationalities(countries);\n\n this.personsNationalities = _.map(allNationalities, (nationality: TCountry) => {\n var citizenship: PersonsNationality = _.find(this.nationalities, (persNational: PersonsNationality) => {\n return persNational.nationality.id == nationality.id;\n });\n\n if (citizenship) {\n return citizenship;\n } else {\n return { id: null, nationality: nationality } as PersonsNationality;\n }\n });\n });\n }\n}\n","export const EUcountries = [\n \"de\",\n \"at\",\n \"ch\",\n \"it\",\n \"fr\",\n \"us\",\n \"es\",\n \"pt\",\n \"be\",\n \"nl\",\n \"pl\",\n ];\n","import CountriesSelectCtrl from \"./countries-select.controller\";\nimport countriesSelectTemplate from \"./countries-select.template.html\";\n\nangular.module(\"countries.components\").component(\"countriesSelect\", {\n bindings: {\n ngModel: \"=\",\n onlyEu: \"<\",\n required: \"<\",\n forceValidation: \"<\",\n },\n template: countriesSelectTemplate,\n controller: CountriesSelectCtrl,\n});\n","import { Country } from \"../../../countries/services/countries.service\";\nimport { EUcountries } from \"../../../countries/eu-countries.constant\";\n\nexport default class CountriesSelectCtrl {\n countries: Country[] = [];\n public onlyEu: boolean;\n public required: boolean;\n public forceValidation: boolean;\n\n constructor() {\n Country.getAll().then((countries) => {\n this.countries = countries;\n if (this.onlyEu) {\n this.countries = this.countries.filter((country) => {\n return EUcountries.includes(country.slug);\n });\n }\n });\n }\n\n public $onInit() {\n this.required = this.required || false;\n this.forceValidation = this.forceValidation || false;\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Country } from \"./countries.service\";\nangular\n .module(\"countries\")\n\n .factory(\"CountrySerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Country, data);\n this.serialize = serialize;\n });\n },\n ])\n\n .service(\"CountriesFactory\", Country);\n","import { IFilterService } from \"angular\";\n\nexport default class CourseSelectCtrl {\n public cancelers: ng.IDeferred[] = [];\n public foundCourses: any[] = [];\n static $inject = [\"$q\", \"Autocompletes\", \"$filter\"];\n\n constructor(\n private $q: ng.IQService,\n private Autocompletes: any,\n private $filter: IFilterService\n ) {}\n\n public searchCourses(viewValue) {\n var _this = this;\n if (viewValue.length) {\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(viewValue, \"courses\", _.last(this.cancelers)).then((results) => {\n _this.foundCourses = _.chain(results)\n .filter({ resource_type: \"Tag\" })\n .map((result) => {\n return _.extend(result, {\n resource_type: this.$filter(\"translate\")(\"FIELD_OF_STUDY\"),\n });\n })\n .uniq((resource) => {\n return resource.tag.id;\n })\n .value();\n });\n } else {\n this.foundCourses = [];\n }\n };\n};\n","import CourseSelectCtrl from \"./course-select.controller\";\nimport courseSelectTemplate from \"./course-select.template.html\";\n//= require ../components.module.js\n\nangular.module(\"courses.components\").component(\"courseSelect\", {\n bindings: {\n ngModel: \"=\",\n },\n controller: CourseSelectCtrl,\n template: courseSelectTemplate,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TCourse } from \"../courses\";\n\nexport class Course {\n private id: number;\n private name: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.courses.query().then((response) => {\n return response.body.data.map((element) => {\n return new Course(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Course } from \"./courses.factory\";\n\nangular\n .module(\"courses\")\n .factory(\"CoursesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Course, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"CoursesFactory\", Course);\n","import { ITemplateCacheService } from \"angular\";\n\nexport default class DashboardCardsCtrl {\n public dashboardSettingsCopy: any; \n public expandQuicklist: any;\n static $inject = [\"dashboardSettings2021\", \"$templateCache\", \"$cookies\"];\n\n constructor(\n private dashboardSettings: any,\n private $templateCache: ITemplateCacheService,\n private $cookies: angular.cookies.ICookiesService,\n ) {}\n\n public $onInit() {\n this.dashboardSettingsCopy = this.dashboardSettings;\n this.expandQuicklist = this.$cookies.get(\"expandQuicklist\") != \"false\";\n\n _.each(this.dashboardSettingsCopy, (dashboardSetting) => {\n this.$templateCache.put(\n dashboardSetting.directive,\n \"<\" + dashboardSetting.directive + \">\"\n );\n });\n };\n};","import DashboardCardsCtrl from \"./dashboard-cards.controller\";\nimport dashboardCardsTemplate from \"./dashboard-cards.template.html\";\n\nangular.module(\"dashboards.components\").component(\"dashboardCards\", {\n template: dashboardCardsTemplate,\n controller: DashboardCardsCtrl\n});\n","import { IFilterService } from \"angular\";\n\nexport default class AmountCoveredLineChartCtrl {\n public colors: string[] = [];\n public options: any;\n public projectReportingWeeks: any;\n public amountCoveredSollPerYear: any;\n public labels: string[];\n public series: string[];\n public data: Array;\n public sales: any;\n static $inject = [\"ChartColors2021\", \"$filter\"];\n\n constructor(\n private ChartColors: any,\n private $filter: IFilterService,\n ) {}\n\n public $onInit() {\n this.colors = [this.ChartColors[3], this.ChartColors[0], this.ChartColors[1]];\n this.options = {\n responsive: true,\n aspectRatio: 1,\n maintainAspectRatio: false,\n layout: {\n padding: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n },\n legend: {\n display: true,\n position: \"bottom\",\n labels: {\n boxWidth: 12,\n fontSize: 10,\n padding: 16,\n usePointStyle: true,\n },\n },\n };\n };\n\n public isEmpty (obj) {\n return !_.chain(obj)\n .flatten()\n .any((value) => {\n return value > 0;\n })\n .value();\n };\n\n public updateChartData() {\n if (_.isObject(this.projectReportingWeeks) && _.isObject(this.amountCoveredSollPerYear)) {\n var currency = this.amountCoveredSollPerYear.currency.isoCode;\n this.labels = _.keys(this.projectReportingWeeks);\n this.series = [\n this.$filter(\"translate\")(\"CURRENT_IN_TOKEN_CAPS\", { currency: currency }),\n this.$filter(\"translate\")(\"TARGET_IN_YEAR\", { currency: currency }),\n this.$filter(\"translate\")(\"TARGET_IN_PERIOD\", { currency: currency }),\n ];\n\n var sumAmountCoveredIst = 0;\n var sumAmountCoveredSoll = 0;\n\n _.each(this.projectReportingWeeks, (week) => {\n if (_.isUndefined(this.sales)) {\n sumAmountCoveredIst = sumAmountCoveredIst + week.amountCoveredIst.cents / 100;\n sumAmountCoveredSoll = sumAmountCoveredSoll + week.amountCoveredSoll.cents / 100;\n } else {\n // LEGACY 2019\n sumAmountCoveredIst =\n sumAmountCoveredIst +\n (this.sales ? week.salesAmountCoveredIst.cents : week.researchAmountCoveredIst.cents) / 100;\n sumAmountCoveredSoll =\n sumAmountCoveredSoll +\n (this.sales ? week.salesAmountCoveredSoll.cents : week.researchAmountCoveredSoll.cents) / 100;\n }\n\n week.amountCoveredIstPerWeek = sumAmountCoveredIst.toFixed(0);\n week.amountCoveredSollPerWeek = sumAmountCoveredSoll.toFixed(0);\n });\n\n this.data = [\n _.pluck(this.projectReportingWeeks, \"amountCoveredIstPerWeek\"),\n _.map(this.projectReportingWeeks, () => {\n return this.amountCoveredSollPerYear ? this.amountCoveredSollPerYear.cents : 0;\n }),\n _.pluck(this.projectReportingWeeks, \"amountCoveredSollPerWeek\"),\n ];\n }\n };\n\n public $onChanges(changes) {\n if (\n (changes.projectReportingWeeks &&\n changes.projectReportingWeeks.previousValue != changes.projectReportingWeeks.currentValue) ||\n (changes.amountCoveredSollPerYear &&\n changes.amountCoveredSollPerYear.previousValue != changes.amountCoveredSollPerYear.currentValue)\n ) {\n this.updateChartData();\n }\n };\n};","import AmountCoveredLineChartCtrl from \"./amount-covered-line-chart.controller\";\nimport amountCoveredLineChartTemplate from \"./amount-covered-line-chart.template.html\";\n\nangular.module(\"dashboards.components\").component(\"amountCoveredLineChart\", {\n bindings: {\n projectReportingWeeks: \"<\",\n amountCoveredSollPerYear: \"<\",\n sales: \"<\",\n },\n template: amountCoveredLineChartTemplate,\n controller: AmountCoveredLineChartCtrl,\n});\n","import { ITemplateCacheService } from \"angular\";\nimport { KPISteps, kpiIST, kpiSOLL } from \"../../../../types/kpis\"\nimport openPopoverTemplate from \"../popover/open-popover.template.html\";\n\nexport default class DashboardKpis2021CardCtrl {\n public KPISteps: Partial;\n public kpiIST: Partial;\n public kpiSOLL: Partial;\n public loading: boolean;\n public steps: any[];\n public data: {\n fullTimeEquivalent: number,\n kpis: {\n kpiIst: any,\n kpiSoll: any,\n kpiSollPerYear: any\n },\n };\n public params: any;\n public enableKpiKeySelect: boolean;\n public selectedKpiKey: any;\n public readonly projectReportingRequestObj: any;\n \n static $inject = [\"DashboardKPISteps\", \"ProjectReportingRequestObj\", \"$templateCache\"];\n\n constructor(\n private DashboardKPISteps: any,\n private ProjectReportingRequestObj: any,\n private $templateCache: ITemplateCacheService,\n ) {\n this.$templateCache.put(\"open-popover-template\", openPopoverTemplate);\n\n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(this, \"dashboardKpisCard\", (result) => {\n this.kpiIST = {\n kpis: result.kpis.kpiIst,\n params: this.params,\n };\n this.kpiSOLL.kpis = result.kpis.kpiSoll;\n\n this.data = result;\n\n this.setSteps();\n });\n }\n\n public $onInit() {\n this.KPISteps = this.DashboardKPISteps;\n this.kpiIST = {};\n this.kpiSOLL = {};\n\n this.loading = true;\n };\n\n public setSteps() {\n this.steps = _.chain(this.KPISteps)\n .mapObject((kpiStep, key) => {\n return _.extend(kpiStep, {\n key: key,\n isOpen: false,\n model: this.kpiIST,\n ist: this.kpiIST.kpis[key],\n soll: this.kpiSOLL.kpis[key],\n sollPerYear: this.data.kpis.kpiSollPerYear[key],\n });\n })\n .omit(\"bruttoContacts\", \"nettoContacts\", \"longlist\", \"shortlist\")\n .values()\n .value();\n };\n\n public setKpiKey (stepkey) {\n if (this.enableKpiKeySelect) {\n this.selectedKpiKey = stepkey;\n }\n };\n\n public $onDestroy () {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};","import DashboardKpis2021CardCtrl from \"./dashboard-kpis-2021-card.controller\";\nimport dashboardKpis2021CardTemplate from \"./dashboard-kpis-2021-card.template.html\";\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardKpis2021Card\", {\n template: dashboardKpis2021CardTemplate,\n controller: DashboardKpis2021CardCtrl,\n});\n","import { ITemplateCacheService } from \"angular\";\nimport { KPISteps, kpiIST, kpiSOLL } from \"../../../../types/kpis\"\nimport dashboardsOpenPopoverTemplate from \"../popover/open-popover.template.html\";\n\nexport default class DashboardAccounts2021CardCtrl {\n public KPISteps: Partial;\n public kpiIST: Partial;\n public kpiSOLL: Partial;\n public loading: boolean;\n public enableKpiKeySelect: boolean; \n public selectedKpiKey: any;\n public steps: any[];\n public data: {\n accounts: Array<{name: string, count: number}>,\n fullTimeEquivalent: number,\n kpis: any,\n meta: any\n };\n public params: any;\n public labels: string[]; \n public options: any;\n public readonly projectReportingRequestObj: any;\n\n static $inject = [\"ProjectReportingRequestObj\", \"ManagerKPISteps\", \"$templateCache\"];\n\n constructor (\n private ProjectReportingRequestObj: any,\n private ManagerKPISteps: any,\n private $templateCache: ITemplateCacheService,\n ) {\n this.$templateCache.put(\"open-popover-template\", dashboardsOpenPopoverTemplate);\n\n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(this, \"dashboardAccounts2021Card\", (\n result\n ) => {\n this.kpiIST = {\n kpis: result.kpis.kpiIst,\n params: this.params,\n };\n this.kpiSOLL.kpis = result.kpis.kpiSoll;\n \n this.data = result;\n \n this.setSteps();\n \n var accounts = _.sortBy(this.data.accounts, _.iteratee(\"count\"));\n this.data.kpis.accounts = _.pluck(accounts, \"count\");\n \n this.labels = _.pluck(accounts, \"name\");\n this.options = {\n legend: {\n display: false,\n },\n };\n });\n }\n \n public $onInit() {\n this.KPISteps = this.ManagerKPISteps;\n this.kpiIST = {};\n this.kpiSOLL = {};\n\n this.loading = true;\n };\n\n public setSteps() {\n this.steps = _.chain(this.KPISteps)\n .mapObject((kpiStep, key) => {\n return _.extend(kpiStep, {\n key: key,\n isOpen: false,\n model: this.kpiIST,\n ist: this.kpiIST.kpis[key],\n soll: this.kpiSOLL.kpis[key],\n sollPerYear: this.data.kpis.kpiSollPerYear[key],\n });\n })\n .values()\n .value();\n };\n\n public setKpiKey(stepkey) {\n if (this.enableKpiKeySelect) {\n this.selectedKpiKey = stepkey;\n };\n };\n\n public $onDestroy() {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};\n\n","import DashboardAccounts2021CardCtrl from \"./dashboard-acounts-2021-card.controller\";\nimport dashboardAccounts2021CardTemplate from \"./dashboard-accounts-2021-card.template.html\";\n//= require ../components.module.js\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardAccounts2021Card\", {\n template: dashboardAccounts2021CardTemplate,\n controller: DashboardAccounts2021CardCtrl,\n});\n","export default class DashboardSendouts2021CardCtrl {\n public loading: boolean;\n public data: any;\n public readonly projectReportingRequestObj: any;\n\n static $inject = [\"ProjectReportingRequestObj\"];\n\n constructor(private ProjectReportingRequestObj: any)\n {\n this.loading = true;\n \n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(\n this,\n \"dashboardSendouts2021Card\", \n (result) => {\n this.data = result;\n });\n }\n\n public isEmpty(obj) {\n return !_.chain(obj)\n .flatten()\n .any((value) => {\n return value > 0;\n })\n .value();\n };\n\n public $onDestroy() {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};","import DashboardSendouts2021CardCtrl from \"./dashboard-sendouts-2021-card.controller\";\nimport dashboardSendouts2021CardTemplate from \"./dashboard-sendouts-2021-card.template.html\";\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardSendouts2021Card\", {\n template: dashboardSendouts2021CardTemplate,\n controller: DashboardSendouts2021CardCtrl,\n});\n","import { IFilterService } from \"angular\";\n\nexport default class DashboardInterviews2021CardCtrl {\n public loading: boolean;\n public data: {\n fullTimeEquivalent: number,\n kpis: {\n kpiIST: {\n firstInterviewDealsRatio: number,\n firstInterviews: number,\n interviewDealsRatio: number,\n interviews: number,\n interviewsRatio: number,\n presenceInterviewDealsRatio: number,\n presenceInterviews: number,\n secondInterviewDealsRatio: number,\n secondInterviews: number,\n telephoneInterviewDealsRatio: number,\n telephoneInterviews: number,\n }\n }\n };\n public labels: string[];\n public readonly projectReportingRequestObj: any;\n\n static $inject = [\"$filter\", \"$translate\", \"ProjectReportingRequestObj\"];\n\n constructor(\n private $filter: IFilterService,\n private $translate: angular.translate.ITranslateService,\n private ProjectReportingRequestObj: any\n ) {\n this.labels = [\n this.$filter(\"translate\")(\"COMPLETED\"), \n this.$filter(\"translate\")(\"CANCELED\"), \n this.$filter(\"translate\")(\"OPEN\")\n ];\n this.loading = true;\n\n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(\n this,\n \"dashboardInterviews2021Card\",\n (result) => {\n this.data = result;\n }\n );\n }\n\n public $onDestroy() {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};","import DashboardInterviews2021CardCtrl from \"./dashboard-interviews-2021-card.controller\";\nimport dashboardInterviews2021CardTemplate from \"./dashboard-interviews-2021-card.template.html\";\n//= require ../components.module.js\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardInterviews2021Card\", {\n template: dashboardInterviews2021CardTemplate,\n controller: DashboardInterviews2021CardCtrl,\n});\n","export default class DashboardAmountCovered2021CardCtrl {\n public loading: boolean;\n public data: any;\n public readonly projectReportingRequestObj: any;\n\n static $inject = [\"ProjectReportingRequestObj\"];\n\n constructor(private ProjectReportingRequestObj: any) \n {\n this.loading = true;\n\n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(\n this,\n \"dashboardAmountCovered2021Card\",\n (result) => {\n this.data = result;\n }\n );\n \n }\n\n public isEmpty(obj) {\n return !_.chain(obj)\n .flatten()\n .any((value) => {\n return value > 0;\n })\n .value();\n };\n \n public $onDestroy() {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};\n","import DashboardAmountCovered2021CardCtrl from \"./dashboard-amount-covered-2021-card.controller\";\nimport dashboardAmountCovered2021CardTemplate from \"./dashboard-amount-covered-2021-card.template.html\";\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardAmountCovered2021Card\", {\n template: dashboardAmountCovered2021CardTemplate,\n controller: DashboardAmountCovered2021CardCtrl,\n});\n","import { IFilterService, IRootScopeService } from 'angular';\nexport default class DashboardAmountCoveredConsultants2021CardCtrl {\n public loading: boolean;\n public canceler: ng.IDeferred;\n public labelNames: string[];\n public showSum: boolean;\n public labels: Array<{ color: string, name: string }>;\n public consultantsData: any[];\n public params: any;\n public loadingError: any;\n private deregisterDashboardQueryChanged: () => void;\n private deregisterDashboardQueryTimeout: () => void;\n\n static $inject = [\"$rootScope\", \"$q\", \"$filter\", \"$translate\", \"ProjectReportingsFactory\", \"ChartColors2021\"]\n\n constructor(\n private $rootScope: IRootScopeService,\n private $q: ng.IQService,\n private $filter: IFilterService,\n private $translate: angular.translate.ITranslateService,\n private ProjectReporting: any,\n private ChartColors: string[] = [],\n ) {\n this.canceler = this.$q.defer();\n this.labelNames = [\n this.$filter(\"translate\")(\"CANDIDATES_LEAD\"),\n this.$filter(\"translate\")(\"CLIENT_LEAD\"),\n this.$filter(\"translate\")(\"CANDIDATES_PROCESS\"),\n this.$filter(\"translate\")(\"OVERALL_PROCESS\"),\n ];\n\n this.deregisterDashboardQueryChanged = this.$rootScope.$on(\"dashboard-query-changed\", this.updateCard.bind(this));\n this.deregisterDashboardQueryTimeout = this.$rootScope.$on(\"dashboard-query-timeout\", () => {\n this.canceler.resolve();\n });\n }\n\n public $onInit() {\n this.showSum = true;\n\n this.labels = _.map(this.labelNames, (value, key) => {\n return { color: this.ChartColors[key], name: value };\n });\n };\n\n public orderedConsultantsData(consultantsData) {\n return _.chain(consultantsData)\n .each((consultantData: any) => {\n consultantData.deals.sumProvisions = _.reduce(\n consultantData.deals,\n (memo, provision: any) => {\n return memo + provision.cents || 0;\n },\n 0\n );\n })\n .sortBy((consultantData: any) => {\n return consultantData.deals.sumProvisions * -1;\n })\n .value();\n };\n\n public consultantsRequest (params) {\n if (this.canceler) this.canceler.resolve();\n\n this.canceler = this.$q.defer();\n\n return this.ProjectReporting.$http({\n url: \"project_reporting/consultants\",\n params: params,\n headers: { Accept: \"application/json\" },\n timeout: this.canceler.promise,\n }).then(\n (result) => {\n this.consultantsData = this.orderedConsultantsData(result.consultants);\n },\n (result) => {\n this.loading = false;\n if (result.status === 0) return;\n\n window.rollbar.error(\"Dashboard-Card loading error\", { params: _.extend(this.params, result.config) });\n this.loadingError = this.$filter(\"translate\")(\"LOADING_ERROR_NOTICE\");\n }\n );\n };\n\n public updateCard(event, params) {\n this.params = params;\n\n this.loading = true;\n this.loadingError = undefined;\n this.consultantsRequest(angular.copy(params)).then(() => {\n this.loading = false;\n });\n }\n\n public reload() {\n this.updateCard(undefined, this.params);\n };\n\n public $onDestroy() {\n this.deregisterDashboardQueryChanged();\n this.deregisterDashboardQueryTimeout();\n };\n};","import DashboardAmountCoveredConsultants2021CardCtrl from \"./dashboard-amount-covered-consultants-2021-card.controller\";\nimport dashboardAmountCoveredConsultants2021CardTemplate from \"./dashboard-amount-covered-consultants-2021-card.template.html\";\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardAmountCoveredConsultants2021Card\", {\n template: dashboardAmountCoveredConsultants2021CardTemplate,\n controller: DashboardAmountCoveredConsultants2021CardCtrl,\n});\n","export default class DashboardCv2021CardCtrl {\n public loading: boolean;\n public data: any;\n public readonly projectReportingRequestObj: any;\n\n static $inject = [\"ProjectReportingRequestObj\"];\n\n constructor(private ProjectReportingRequestObj: any)\n {\n this.loading = true;\n\n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(this, \"dashboardCv2021Card\", (result) => {\n this.data = result;\n });\n }\n\n public isEmpty(obj) {\n return !_.chain(obj)\n .flatten()\n .any((value) => {\n return value > 0;\n })\n .value();\n };\n\n public $onDestroy() {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};","import DashboardCv2021CardCtrl from \"./dashboard-cv-2021-card.controller\";\nimport dashboardCv2021CardTemplate from \"./dashboard-cv-2021-card.template.html\";\n//= require ../components.module.js\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardCv2021Card\", {\n template: dashboardCv2021CardTemplate,\n controller: DashboardCv2021CardCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../../services/state-transitions-config.factory\";\n\nexport default class PopoverCtrl {\n public lazyLoading: boolean;\n public params: any;\n public step: any;\n public kpis: any;\n\n static $inject = [\"makeCollectionProxy\", \"ActionsFactory\", \"ActionModals\"];\n\n constructor(\n private makeCollectionProxy: any, \n private Action: any, \n private ActionModals: any, \n ) {\n this.lazyLoading = true;\n\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n reduceParams: StateTransitionsConfig.reduceParams,\n });\n }\n\n public $onInit () {\n this.params = _.extend(\n _.isFunction(this.step.model.params) ? this.step.model.params() : this.step.model.params,\n {\n key: this.step.key,\n limit: 5,\n }\n );\n\n var loader = (params) => {\n return this.Action.$http(\n _.extend({ url: \"actions/kpi_route\", headers: { Accept: \"application/json\" } }, { params: params })\n );\n };\n \n this.makeCollectionProxy(loader, this.params)\n .then((result) => {\n angular.extend(this, {\n kpis: result,\n lazyLoading: false,\n });\n })\n .then(() => {\n this.lazyLoading = false;\n });\n };\n\n public showMore() {\n this.step.isOpen = false;\n this.ActionModals.showActionsList(this.kpis, this.step).then(angular.noop, angular.noop);\n };\n};","import PopoverCtrl from \"./popover.controller\";\nimport dashboardPopoverTemplate from \"./popover.template.html\";\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"popover\", {\n bindings: {\n step: \"=\",\n },\n template: dashboardPopoverTemplate,\n controller: PopoverCtrl,\n});\n","export default class DashboardDeals2021CardCtrl {\n public loading: boolean;\n public data: {\n fullTimeEquivalent: number,\n kpis: {\n deals: number[],\n kpiIST: {\n amountCoveredPerDeal: {cents: number, currency: any[]},\n callingtimePerDeal: number,\n deals: number,\n dealsPerMonth: number,\n interviewsPerDeal: number,\n sendoutDealRatio: number,\n sendoutInterviewRatio: number \n }\n }\n };\n public readonly projectReportingRequestObj: any;\n public labels: string[];\n\n static $inject = [\"ProjectReportingRequestObj\"];\n\n constructor(private ProjectReportingRequestObj: any)\n {\n this.loading = true;\n\n this.projectReportingRequestObj = new this.ProjectReportingRequestObj(\n this,\n \"dashboardDeals2021Card\",\n (result) => {\n this.data = angular.copy(result);\n this.data.kpis.deals = _.values(result.kpis.deals);\n this.labels = _.keys(result.kpis.deals);\n }\n ); \n }\n\n public isEmpty(obj) {\n return !_.chain(obj)\n .flatten()\n .any((value) => {\n return value > 0;\n })\n .value();\n };\n\n public $onDestroy() {\n this.projectReportingRequestObj.deregisterEventListeners();\n };\n};","import DashboardDeals2021CardCtrl from \"./dashboard-deals-2021-card.controller\";\nimport dashboardDeals2021CardTemplate from \"./dashboard-deals-2021-card.template.html\";\n\nangular.module(\"dashboards.components.dashboard2021\").component(\"dashboardDeals2021Card\", {\n template: dashboardDeals2021CardTemplate,\n controller: DashboardDeals2021CardCtrl,\n});\n","export const CURRENCIES = [\n { isoCode: \"EUR\", isoNumeric: 978 },\n { isoCode: \"CHF\", isoNumeric: 756 },\n { isoCode: \"USD\", isoNumeric: 840 },\n { isoCode: \"GBP\", isoNumeric: 826 },\n];\n\nexport const DEFAULT_CURRENCY = { isoCode: \"EUR\" };\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { CurrencyTypes, MoneyTypes } from \"../money\";\nimport { CURRENCIES, DEFAULT_CURRENCY } from \"../values/currency\";\n\nexport class Money {\n private serviceName: string = \"MoneyFactory\";\n private currency: CurrencyTypes = _.findWhere(CURRENCIES, { isoCode: DEFAULT_CURRENCY.isoCode }) as CurrencyTypes;\n private cents: number | undefined | null = null;\n private inCents: boolean = true;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n}\n","import { Money } from \"../../../directives/money/services/money.service\";\n\nexport default class AmountCoveredConsultantPieChartCtrl {\n public data: number[] = [];\n public labels: string[] = [];\n public colors: string[];\n public options: any;\n public consultantData: any;\n public showSum: boolean;\n public sumData: any;\n public isEmpty: boolean;\n \n static $inject = [\"$filter\", \"ChartColors2021\"];\n\n constructor(private $filter: any, private ChartColors: any) {}\n\n public $onInit() {\n this.colors = this.ChartColors;\n this.options = {\n responsive: true,\n aspectRatio: 1,\n maintainAspectRatio: false,\n layout: {\n padding: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n },\n legend: {\n display: false,\n },\n tooltips: {\n callbacks: {\n label: (tooltipItem, data) => {\n return (\n data.labels[tooltipItem.index] +\n \": \" +\n this.$filter(\"number\")(data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index])\n );\n },\n },\n },\n plugins: {\n labels: {\n render: (args) => {\n return this.$filter(\"number\")(args.value);\n },\n fontColor: \"#000\",\n position: \"outside\",\n outsidePadding: 6,\n textMargin: 6,\n },\n },\n };\n };\n\n public updateChartData() {\n if (_.isObject(this.consultantData)) {\n if (this.showSum) {\n this.data = [\n this.consultantData.deals.candidateProvisionAmountCovered.cents / 100,\n this.consultantData.deals.customerProvisionAmountCovered.cents / 100,\n this.consultantData.deals.candidateProcessProvisionAmountCovered.cents / 100,\n this.consultantData.deals.processProvisionAmountCovered.cents / 100,\n ];\n\n this.sumData = new Money({\n cents: Math.round(\n _.reduce(\n this.data,\n (memo, value) => {\n return memo + value;\n },\n 0\n )\n ),\n currency: {\n isoCode: this.consultantData.deals.candidateProvisionAmountCovered.currencyIso,\n },\n inCents: true,\n });\n\n this.data = _.map(this.data, (entry) => {\n return Math.round(entry);\n });\n } else {\n this.data = [\n this.consultantData.deals.candidateProvision,\n this.consultantData.deals.customerProvision,\n this.consultantData.deals.candidateProcessProvision,\n this.consultantData.deals.processProvision,\n ];\n }\n\n this.labels = [\n this.$filter(\"translate\")(\"CANDIDATES_LEAD\"),\n this.$filter(\"translate\")(\"CLIENT_LEAD\"),\n this.$filter(\"translate\")(\"CANDIDATES_PROCESS\"),\n this.$filter(\"translate\")(\"OVERALL_PROCESS\"),\n ];\n }\n\n this.isEmpty = !_.reduce(\n this.data, (memo, num) => {\n return memo + num;\n },\n 0\n );\n };\n\n public $onChanges (changes) {\n if (\n (changes.consultantData && changes.consultantData.previousValue != changes.consultantData.currentValue) ||\n (changes.showSum && changes.showSum.previousValue != changes.showSum.currentValue)\n ) {\n this.updateChartData();\n }\n };\n};","import AmountCoveredConsultantPieChartCtrl from \"./amount-covered-consultant-pie-chart.controller\";\nimport amountCoveredConsultantPieChartTemplate from \"./amount-covered-consultant-pie-chart.template.html\";\n\nangular.module(\"dashboards.components\").component(\"amountCoveredConsultantPieChart\", {\n bindings: {\n consultantData: \"<\",\n showSum: \"<\",\n },\n template: amountCoveredConsultantPieChartTemplate,\n controller: AmountCoveredConsultantPieChartCtrl,\n});\n","export default class DashboardPieChartCtrl {\n public colors: string[];\n public data: number[];\n public options: \n {\n responsive: boolean,\n aspectRatio: number,\n maintainAspectRatio: boolean,\n layout: {\n padding: {\n left: number,\n right: number,\n top: number,\n bottom: number,\n },\n },\n legend: {\n display: boolean,\n position: string,\n labels: {\n boxWidth: number,\n fontSize: number,\n padding: number,\n usePointStyle: boolean,\n },\n },\n };\n\n static $inject = [\"ChartColors2021\"];\n\n constructor(private ChartColors: string[]) {}\n\n public $onInit() {\n this.colors = _.map(_.range(this.data.length), (index) => {\n return this.ChartColors[index % this.ChartColors.length];\n });\n\n this.options = _.defaults(this.options, {\n responsive: true,\n aspectRatio: 1,\n maintainAspectRatio: false,\n layout: {\n padding: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n },\n legend: {\n display: true,\n position: \"bottom\",\n labels: {\n boxWidth: 12,\n fontSize: 10,\n padding: 16,\n usePointStyle: true,\n },\n },\n });\n };\n\n public isEmpty() {\n return (\n _.reduce(\n this.data,\n (memo, num) => {\n return memo + num;\n },\n 0\n ) === 0\n );\n };\n};\n","import DashboardPieChartCtrl from \"./dashboard-pie-chart.controller\";\nimport dashboardPieChartTemplate from \"./dashboard-pie-chart.template.html\";\n\nangular.module(\"dashboards.components\").component(\"dashboardPieChart\", {\n bindings: {\n data: \"=\",\n labels: \"=\",\n isEmpty: \"&\",\n options: \"=?\",\n },\n template: dashboardPieChartTemplate,\n controller: DashboardPieChartCtrl,\n});\n","import { IFilterService } from 'angular';\nexport default class AmountCoveredBarChartCtrl {\n public options: any;\n public colors: string[] = [];\n public series: any[] = [];\n public weeks: any;\n public data: Array;\n public labels: string[];\n\n static $inject = [\"ChartColors2021\", \"$filter\", \"$translate\"];\n\n constructor(\n private ChartColors: any, \n private $filter: IFilterService, \n private $translate: angular.translate.ITranslateService\n ) {}\n\n public $onInit () {\n this.options = {\n responsive: true,\n maintainAspectRatio: false,\n aspectRatio: 1,\n borderWidth: 0,\n scales: {\n yAxes: [\n {\n ticks: {\n display: false,\n },\n },\n ],\n },\n legend: {\n display: true,\n position: \"bottom\",\n labels: {\n boxWidth: 12,\n fontSize: 8,\n padding: 16,\n usePointStyle: true,\n },\n },\n };\n\n this.colors = [this.ChartColors[1], this.ChartColors[3]];\n this.series = [\n this.$filter(\"translate\")(\"PROFIT_CONTRIBUTION_TOKEN_CURRENT_CAPS\"),\n this.$filter(\"translate\")(\"PROFIT_CONTRIBUTION_TOKEN_TARGET\"),\n ];\n };\n\n public isEmpty(obj) {\n return !_.chain(obj)\n .flatten()\n .any((value) => {\n return value > 0;\n })\n .value();\n };\n\n public groupAmountCoveredValues() {\n return [\n _.map(this.weeks, (value, key) => {\n return (value.amountCoveredIst.cents / 100).toFixed(0);\n }),\n _.map(this.weeks, (value, key) => {\n return (value.amountCoveredSoll.cents / 100).toFixed(0);\n }),\n ];\n };\n\n public updateChartData() {\n if (!_.isObject(this.weeks)) {\n return false;\n }\n\n this.data = this.groupAmountCoveredValues();\n this.labels = _.keys(this.weeks);\n };\n\n public $onChanges(changes) {\n if (changes.weeks && changes.weeks.previousValue != changes.weeks.currentValue) {\n this.updateChartData();\n }\n };\n};","import AmountCoveredBarChartCtrl from \"./amount-covered-bar-chart.controller\";\nimport amountCoveredBarChartTemplate from \"./amount-covered-bar-chart.template.html\";\n//= require ../components.module.js\n\nangular.module(\"dashboards.components\").component(\"amountCoveredBarChart\", {\n bindings: {\n weeks: \";\n public loading: boolean;\n public ranges: {\n LAST_WEEK: [moment.Moment, moment.Moment],\n CURRENT_WEEK: [moment.Moment, moment.Moment],\n NEXT_WEEK: [moment.Moment, moment.Moment],\n LAST_MONTH: [moment.Moment, moment.Moment],\n CURRENT_MONTH: [moment.Moment, moment.Moment],\n \"1_QUARTER\": [moment.Moment, moment.Moment],\n \"2_QUARTER\": [moment.Moment, moment.Moment],\n \"3_QUARTER\": [moment.Moment, moment.Moment],\n \"4_QUARTER\": [moment.Moment, moment.Moment],\n CURRENT_YEAR: [moment.Moment, moment.Moment],\n LAST_YEAR: [moment.Moment, moment.Moment],\n };\n public user: any;\n public allowProjectReporting: boolean;\n public allowVWSOverview: boolean;\n public currencies: Array<{isoCode: string, isoNumeric: number}>;\n public lastMviewsRefresh: moment.Moment;\n public isSalesView: boolean;\n public isLegacyCalculation: boolean;\n public kpisQuery: {\n dateRange: { startDate: moment.Moment, endDate: moment.Moment },\n userQuery?: any,\n currency?: any,\n kpis?: any,\n };\n public datePickerOptions: { date: { startDate: moment.Moment, endDate: moment.Moment }, userQuery: { users: any[] }, options: any};\n\n static $inject = [\n \"$rootScope\",\n \"$q\",\n \"SidebarFactory\",\n \"ProjectReportingsFactory\",\n \"Session\",\n \"$httpParamSerializer\",\n \"Currencies\",\n \"daterangepickerOptions\",\n \"$filter\"\n ];\n\n constructor(\n private $rootScope: IRootScopeService,\n private $q: IQService,\n private Sidebar: any,\n private ProjectReporting: any,\n private Session: any,\n private $httpParamSerializer: IHttpParamSerializer,\n private Currencies: any,\n private daterangepickerOptions: any,\n private $filter: IFilterService,\n ) {\n this.canceler = this.$q.defer();\n this.ranges = {\n LAST_WEEK: [moment().startOf(\"isoWeek\").subtract(1, \"weeks\"), moment().startOf(\"isoWeek\").subtract(1, \"days\")],\n CURRENT_WEEK: [moment().startOf(\"isoWeek\"), moment().endOf(\"isoWeek\")],\n NEXT_WEEK: [moment().startOf(\"isoWeek\").add(1, \"weeks\"), moment().endOf(\"isoWeek\").add(1, \"weeks\")],\n LAST_MONTH: [moment().startOf(\"month\").subtract(1, \"months\"), moment().startOf(\"month\").subtract(1, \"days\")],\n CURRENT_MONTH: [moment().startOf(\"month\"), moment()],\n \"1_QUARTER\": [moment().startOf(\"year\"), moment().startOf(\"year\").add(1, \"quarter\").subtract(1, \"days\")],\n \"2_QUARTER\": [\n moment().startOf(\"year\").add(1, \"quarter\"),\n moment().startOf(\"year\").add(2, \"quarter\").subtract(1, \"days\"),\n ],\n \"3_QUARTER\": [\n moment().startOf(\"year\").add(2, \"quarter\"),\n moment().startOf(\"year\").add(3, \"quarter\").subtract(1, \"days\"),\n ],\n \"4_QUARTER\": [moment().startOf(\"year\").add(3, \"quarter\"), moment().endOf(\"year\")],\n CURRENT_YEAR: [moment().dayOfYear(1), moment()],\n LAST_YEAR: [moment().subtract(1, \"year\").dayOfYear(1), moment().subtract(1, \"year\").endOf(\"year\")],\n };\n this.updateDashboardProjectReporting = this.updateDashboardProjectReporting.bind(this);\n }\n\n public $onInit () {\n this.user = this.Session.user;\n this.allowProjectReporting = this.user.allowProjectReporting;\n this.allowVWSOverview = this.user.allowVwsOverview;\n\n this.currencies = this.Currencies;\n\n this.kpisQuery = {\n dateRange: {\n startDate: moment().startOf(\"isoWeek\"),\n endDate: moment().endOf(\"isoWeek\"),\n },\n };\n\n this.datePickerOptions = {\n date: this.kpisQuery.dateRange,\n userQuery: { users: [this.user] },\n options: _.extend(this.daterangepickerOptions, {\n timePicker: false,\n ranges: _.object(\n _.map(this.ranges, (value, key) => {\n return [this.$filter(\"translate\")(key), value];\n })\n ),\n eventHandlers: { \"apply.daterangepicker\": _.partial(this.updateDashboardProjectReporting, true) },\n }),\n };\n\n // initial load Dashboard data\n this.updateDashboardProjectReporting();\n\n // TODO: doesn't seems to work, fix this\n this.Sidebar.closeAll();\n };\n\n public queryIsValid() {\n var dateRange = this.datePickerOptions.date;\n\n return dateRange.startDate.isValid() && dateRange.endDate.isValid();\n };\n\n public getDateRangeOptions() {\n var dateRange = this.datePickerOptions.date;\n // Workaround for DatetimePicker - always return moment object instead of Date (cannot handle timezone serialization)\n return {\n startDate: dateRange.startDate,\n endDate: dateRange.endDate,\n };\n };\n\n public getDashboardFilterParams(currencyChanged?: boolean) {\n const { startDate, endDate } = this.kpisQuery.dateRange;\n const dateRange: { startDate: string, endDate: string } = {\n startDate: startDate.format(),\n endDate: endDate.format()\n };\n\n return {\n \"user_ids[]\": _.pluck(this.kpisQuery.userQuery.users, \"id\"),\n team_id: _.propertyOf(this.kpisQuery.userQuery.team)(\"id\"),\n all_active: this.kpisQuery.userQuery.allActive,\n date: JSON.stringify(dateRange),\n currency: currencyChanged ? this.kpisQuery.currency : undefined,\n };\n };\n\n public projectReportingRequest(params) {\n if (this.loading) {\n return;\n }\n\n this.$rootScope.$broadcast(\"dashboard-query-timeout\");\n\n this.canceler.resolve();\n this.canceler = this.$q.defer();\n\n this.loading = true;\n\n return this.ProjectReporting.$http({\n url: \"project_reporting/time_range\",\n params: params,\n headers: { Accept: \"application/json\" },\n timeout: this.canceler.promise,\n }).then(\n (result) => {\n this.kpisQuery.kpis = result;\n this.kpisQuery.currency = result.currency;\n this.lastMviewsRefresh = result.kpis.lastMviewsRefreshes.projectDealAction\n ? moment(result.kpis.lastMviewsRefreshes.projectDealAction)\n : undefined;\n\n var updatedParams = this.getDashboardFilterParams(true);\n\n this.$rootScope.$broadcast(\"dashboard-query-changed\", updatedParams);\n\n this.loading = false;\n },\n (result) => {\n this.loading = false;\n window.rollbar.error(\"Dashboard loading error\", { status: result });\n\n window.alert(this.$filter(\"translate\")(\"LOADING_ERROR_NOTICE\"));\n }\n );\n };\n\n public updateDashboardProjectReporting(currencyChanged?: boolean) {\n if (!this.queryIsValid()) {\n return;\n }\n this.kpisQuery.dateRange = this.getDateRangeOptions();\n this.kpisQuery.userQuery = this.datePickerOptions.userQuery;\n var params = this.getDashboardFilterParams(currencyChanged);\n\n this.isSalesView =\n this.kpisQuery.userQuery.users && this.kpisQuery.userQuery.users.length == 1\n ? _.first(this.kpisQuery.userQuery.users).isSales()\n : true;\n\n this.isLegacyCalculation = moment(this.kpisQuery.dateRange.startDate).year() < 2020;\n\n this.projectReportingRequest(params);\n };\n\n public editKPIOperative() {\n if (this.kpisQuery.userQuery.users && this.kpisQuery.userQuery.users.length == 1) {\n new this.ProjectReporting()\n .edit(_.first(this.kpisQuery.userQuery.users))\n .then(this.updateDashboardProjectReporting);\n } else {\n window.alert(this.$filter(\"translate\")(\"SELECT_SINGLE_USER_NOTICE\"));\n }\n };\n\n public downloadVWSOverview () {\n window.open(\n \"/project_reporting/vws_overview.xlsx?\" + this.$httpParamSerializer(this.getDashboardFilterParams(true)),\n \"_blank\"\n );\n };\n};\n\n","import DashboardsCtrl from \"./dashboards.controller\";\nimport indexNewTemplate from \"./index-new.template.html\";\n\nangular.module(\"dashboards.views\").component(\"dashboards\", {\n bindings: {},\n template: indexNewTemplate,\n controller: DashboardsCtrl,\n});\n","export default class EditContractDraftCtrl {\n private candidateId: any;\n private provision: any;\n private contractDraft: any;\n static $inject = [\"ContractDraftFactory\", \"EditUtilMixin\", \"deploymentLocations\"];\n\n constructor(private ContractDraft: any, private EditUtilMixin: any, private deploymentLocations: any) {}\n\n public $onInit () {\n angular.extend(this, this.EditUtilMixin);\n this.candidateId = this.provision.candidate.id;\n this.deploymentLocations = this.deploymentLocations;\n };\n\n public addContractDraftToCandidate () {\n this.ContractDraft.createContractDraft(this.provision).then((newContractDraft) => {\n this.contractDraft = newContractDraft;\n });\n };\n\n public contractDraftStatusIn (statuses) {\n return _.contains(statuses, this.contractDraft.status);\n };\n\n public destroyContractDraft () {\n if (!this.contractDraft.id) {\n this.contractDraft = null;\n return;\n }\n this.contractDraft.delete().then((deletedContractDraft) => {\n this.contractDraft = null;\n });\n };\n}","import EditContractDraftCtrl from \"./edit-contract-draft.controller\";\nimport editContractDraftTemplate from \"./edit-contract-draft.template.html\";\n\nangular.module(\"contract_drafts.components\").component(\"editContractDraft\", {\n bindings: {\n provision: \"<\",\n contractDraft: \"=\",\n saving: \"<\",\n },\n controller: EditContractDraftCtrl,\n template: editContractDraftTemplate,\n});\n","export default class ShowContractDraftCtrl {\n private contractDraft: any;\n private candidateId: any;\n \n static $inject = [\"ContractDraftFactory\", \"EditUtilMixin\", \"deploymentLocations\",];\n\n constructor(private ContractDraft: any, private EditUtilMixin: any, private deploymentLocations: any){}\n\n public $onInit () {\n angular.extend(this, this.EditUtilMixin);\n this.contractDraft = new this.ContractDraft(this.contractDraft);\n this.candidateId = _.isUndefined(this.contractDraft.candidate) ? null : this.contractDraft.candidate.id;\n if (this.contractDraft.deploymentLocation) {\n this.contractDraft.deploymentLocation = this.deploymentLocations.find(\n (item) => item.slug === this.contractDraft.deploymentLocation\n ).name;\n } else {\n this.contractDraft.deploymentLocation = undefined;\n }\n };\n}","import ShowContractDraftCtrl from \"./show-contract-draft.controller\";\nimport showContractDraftTemplate from \"./show-contract-draft.template.html\";\n\nangular.module(\"contract_drafts.components\").component(\"showContractDraft\", {\n bindings: {\n contractDraft: \"<\",\n showSalaryInformation: \"<\",\n },\n controller: ShowContractDraftCtrl,\n template: showContractDraftTemplate,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TOrganisationUnit } from \"../organisation_units\";\n\nexport class OrganisationUnit {\n private id: number;\n private name: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.organisationUnits.query().then((response) => {\n return response.body.data.map((element) => {\n return new OrganisationUnit(element);\n });\n });\n }\n\n @cached\n public static salesUnits() {\n return baseClient.organisationUnits.salesUnits().then((response) => {\n return response.body.data.map((element) => {\n return new OrganisationUnit(element);\n });\n });\n }\n}\n","//= require ./modals.module.js\nimport { OrganisationUnit } from \"../../organisation_units/services/organisation_units.service\";\nimport { CancelationPeriod } from \"../../cancelation_periods/services/cancelation_periods.service\";\n\nangular.module(\"deals.modals\").factory(\"DealsModalMixin\", [\n \"$uibModal\",\n \"$rootScope\",\n \"$filter\",\n \"$translate\",\n \"poller\",\n function ($uibModal, $rootScope, $filter, $translate, poller) {\n function DealsModalMixin() {}\n\n function editModal() {\n var deal = this;\n if (!deal.id) {\n deal.candidatesProjectId = _.first(deal.provisions).joinedProjectModelId;\n }\n\n var modalInstance = $uibModal.open({\n component: \"dealEditModal\",\n size: \"lg\",\n resolve: {\n deal: [\n function () {\n return deal;\n },\n ],\n probations: [\n function () {\n return CancelationPeriod.getAll();\n },\n ],\n organisationUnits: [\n function () {\n return OrganisationUnit.getAll();\n },\n ],\n },\n });\n\n function broadcastChanges() {\n _.each(deal.provisions, function (provision) {\n $rootScope.$broadcast(\"candidate_action_changed_\" + provision.candidate.id);\n });\n $rootScope.$broadcast(\"project_action_changed_\" + deal.project.id);\n }\n\n return modalInstance.result.then(function (deal) {\n if (deal.unsnappedChanges()) {\n deal.save().then(\n function () {\n deal.snapshot();\n },\n null,\n function () {\n // finally\n broadcastChanges();\n }\n );\n }\n });\n }\n\n function openReconciliationModal(candidateOrEmployees) {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_CONTRACT_RECONCILIATION_MODAL\");\n\n var route;\n var params;\n if (_.isArray(candidateOrEmployees)) {\n route = \"create_reconciliation_employees_email\";\n params = { employees: candidateOrEmployees };\n } else {\n route = \"create_reconciliation_candidate_email\";\n params = { candidate: candidateOrEmployees };\n }\n\n return _this.createMessage(route, params).then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"CONTRACT_RECONCILIATION_SENT_CONFIRMATION\"), pollingService).then(\n function (res) {\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n }\n\n function openAcknowledgementCandidateModal(candidate) {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_ACKNOWLEDGEMENT_EMAIL_MODAL\");\n\n return candidate.createMessage(\"create_acknowledgement_candidate_email\").then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n candidate.confirm($filter(\"translate\")(\"ACKNOWLEDGEMENT_EMAIL_SENT_CONFIRMATION\"), pollingService).then(\n function (res) {\n if (res === true) {\n _this.acknowledgementEmailSentAt = new Date();\n _this.save();\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n }\n\n DealsModalMixin.extended = function (Resource) {\n Resource.include({\n edit: editModal,\n openReconciliationModal: openReconciliationModal,\n openAcknowledgementCandidateModal: openAcknowledgementCandidateModal,\n });\n };\n\n return DealsModalMixin;\n },\n]);\n","import DealNotificationsCtrl from \"./deal-notifications.controller\";\nimport dealNotificationsTemplate from \"./deal-notifications.template.html\";\n\nangular.module(\"deals.components\").component(\"dealNotifications\", {\n bindings: {\n deal: \"<\",\n },\n controller: DealNotificationsCtrl,\n template: dealNotificationsTemplate,\n});\n","export default class DealNotificationsCtrl{ \n private deal: any;\n\n constructor() {}\n \n public showSapTransmissionErrors () {\n return (\n !this.deal.generating &&\n ((!this.deal.hasSapId && this.deal.needsSapSalesOrderSync) ||\n (!this.deal.needsSapSalesOrderSync && this.deal.dealToSapCpiJobErrorMessages.length > 0))\n );\n };\n}\n\n\n","import { ITemplateCacheService } from 'angular';\nimport { CompaniesTransactionBasis } from \"../../../companies_transaction_bases/services/companies_transaction_bases.service\";\nimport companiesDocumentListPaginationTemplate from \"../../../directives/components/pagination/pagination.template.html\";\nexport default class CompaniesDocumentsListCtrl{\n\n private paginationTemplateUrl: string;\n private paginationService: any;\n private documents: any;\n private cancel: boolean;\n\n\n static $inject = [\"CandidatesFactory\", \"CompaniesFactory\", \"ProjectsFactory\", \"DealsFactory\", \"DocumentsFactory\", \"MgPaginateService\", \"$templateCache\"];\n\n constructor(public Candidate: any,\n public Company: any,\n public Project: any,\n public Deal: any,\n public Document: any,\n private MgPaginateService: any,\n private $templateCache: ITemplateCacheService){\n this.paginationTemplateUrl = \"paginationTemplate\";\n this.$templateCache.put(this.paginationTemplateUrl, companiesDocumentListPaginationTemplate);\n\n this.paginationService = new this.MgPaginateService();\n }\n \n public openDocumentFullScreen (openDocument, event) {\n event.preventDefault();\n if (!openDocument) {\n return;\n }\n new this.Document(openDocument).openDocumentFullScreen(this.documents);\n };\n\n public $onInit () {\n angular.extend(this, {\n paginationId: \"documents-list-\".concat(\"-\", _.uniqueId()),\n CompaniesTransactionBases: CompaniesTransactionBasis,\n documentFileTypes: this.Document.fileTypes,\n attributes: {\n title: { show: true },\n fileType: { show: !this.cancel },\n actions: { show: this.cancel },\n menu: { show: !this.cancel },\n },\n });\n\n this.paginationService.setData(this.documents);\n this.paginationService.setTotalItems(this.documents?.length);\n }; \n}","import CompaniesDocumentsListCtrl from \"./companies-documents-list.controller\";\nimport CompaniesDocumentsListTemplate from \"./companies-documents-list.template.html\";\n\nangular.module(\"deals.components\").component(\"companiesDocumentsList\", {\n bindings: {\n resource: \"<\",\n documents: \"<\",\n },\n template: CompaniesDocumentsListTemplate,\n controller: CompaniesDocumentsListCtrl,\n});\n","export type ServiceTypeOption = {\n id: string;\n name: string;\n};\n\nexport const serviceTypes: ServiceTypeOption[] = [\n { name: \"JUNIOR_CONSULTANT_HOURS\", id: \"junior_consultant_hours\" },\n { name: \"CONSULTANT_HOURS\", id: \"consultant_hours\" },\n { name: \"SENIOR_CONSULTANT_HOURS\", id: \"senior_consultant_hours\" },\n { name: \"PRINCIPAL_CONSULTANT_HOURS\", id: \"principal_consultant_hours\" }\n];\n\nexport const travelExpenseServices: ServiceTypeOption[] = [\n { name: \"TRAVEL_COSTS_LUMP_SUM\", id: \"travel_costs_lump_sum\" },\n { name: \"TRAVEL_COSTS_BY_EXPENSE\", id: \"travel_costs_by_expense\" },\n];\n","import expensesDescriptionPopover from \"../../directives/expenses-description-popover.html\";\nimport {ServiceTypeOption, serviceTypes, travelExpenseServices } from \"../../values/services-options.constant\";\n\nexport default class DealEditModalCtrl {\n private companiesDocumentsList: Document[];\n private expensesDescriptionPopover: string;\n private deal: any;\n private probations: any;\n private managerContactEntries: any;\n private availableManagerContactEntries: any;\n private dealReconciliationEmail: any;\n private onSaveError: () => void;\n private saving: boolean;\n private force_validation: boolean;\n private dealForm: ng.IFormController;\n private dismiss: () => void;\n private registerSaveHotkey: (callback: () => void) => void;\n private resolve: any;\n private serviceTypes: ServiceTypeOption[];\n private travelExpenseServices: ServiceTypeOption[];\n\n static $inject = [\n \"$scope\",\n \"$rootScope\",\n \"$filter\",\n \"$templateCache\",\n \"CompaniesFactory\",\n \"EmployeesFactory\",\n \"EditUtilMixin\",\n \"ProvFactory\",\n \"clientHourlyExpensesOptions\",\n \"deliveryOptions\",\n \"periodOfPaymentOptions\",\n \"internalJobTypes\",\n \"entourageSubsidiaries\",\n \"ContractDraftFactory\",\n \"$q\",\n ];\n\n constructor(\n private $scope: ng.IScope,\n private $rootScope: ng.IRootScopeService,\n private $filter: ng.IFilterService,\n private $templateCache: ng.ITemplateCacheService,\n private Company: any,\n private Employee: any,\n private EditUtilMixin: any,\n private Provision: any,\n private clientHourlyExpensesOptions: any,\n private deliveryOptions: any,\n private periodOfPaymentOptions: any,\n private internalJobTypes: any,\n private entourageSubsidiaries: any,\n private ContractDraft: any,\n private $q: ng.IQService\n ) {\n this.companiesDocumentsList;\n this.expensesDescriptionPopover = \"expenses-description-popover\";\n $templateCache.put(this.expensesDescriptionPopover, expensesDescriptionPopover);\n\n angular.extend(this, {\n clientHourlyExpensesOptions: clientHourlyExpensesOptions,\n deliveryOptions: deliveryOptions,\n periodOfPaymentOptions: periodOfPaymentOptions,\n internalJobTypes: internalJobTypes,\n entourageSubsidiaries: entourageSubsidiaries,\n });\n\n this.$scope.$on(\"modal.closing\", (event) => {\n if (this.deal.unsnappedChanges()) {\n if (window.confirm(this.$filter(\"translate\")(\"CLOSING_WINDOW_CONFIRMATION\"))) {\n this.deal.rollback(-1);\n } else {\n event.preventDefault();\n }\n }\n });\n this.savingSuccess = this.savingSuccess.bind(this);\n }\n\n public extend(resolve) {\n this.deal = resolve.deal;\n this.probations = resolve.probations;\n }\n\n public $onInit() {\n angular.extend(this, this.EditUtilMixin);\n\n this.extend(this.resolve);\n this.$rootScope.$broadcast(\"deal-form-opened\", this.deal);\n\n if (this.deal.jobType.isManagementConsulting()) {\n this.serviceTypes = serviceTypes;\n }\n this.travelExpenseServices = travelExpenseServices;\n\n this.deal.allowFeedback = _.isNull(this.deal.acknowledgementEmailSentAt);\n this.deal.recipient = this.deal.recipient || this.deal.project.invoiceRecipient;\n if (this.deal.isPermanentEmploymentInternal) {\n this.deal.periodOfPayment = 0;\n }\n\n if (!this.deal.recipientCompany && this.deal.project.company) {\n this.Company.get(this.deal.project.company.id).then((company) => {\n this.companiesDocumentsList = company.documents;\n company.transactionBasis.map((transactions) => {\n this.companiesDocumentsList.push(...transactions.documents);\n });\n });\n (this.Employee).query({ company_id: this.deal.project.company.id }).then((employees) => {\n this.deal.recipient = _.first(employees);\n this.deal.snapshot();\n });\n }\n\n if (this.deal.recipientCompany) {\n this.Company.get(this.deal.recipientCompany.id).then((company) => {\n this.companiesDocumentsList = company.documents;\n company.transactionBasis.map((transactions) => {\n this.companiesDocumentsList.push(...transactions.documents);\n });\n });\n }\n\n this.deal.snapshot();\n\n this.managerContactEntries = _.each(this.deal.project.employees, (manager) => {\n manager.$hasContactAddress = !_.isEmpty(manager.workEmail || manager.privateEmail);\n });\n this.availableManagerContactEntries = _.where(this.managerContactEntries, { $hasContactAddress: true });\n this.dealReconciliationEmail = {\n employees: this.managerContactEntries,\n callback: null,\n };\n // perform after everything is rendered\n this.registerSaveHotkey(this.saveChanges);\n }\n\n public confirmPurchaseOrderNumber = _.once(() => {\n return !window.confirm(this.$filter(\"translate\")(\"NO_PURCHASE_ORDNER_NUMBER_SAVED\"));\n });\n\n public savingSuccess(newDeal) {\n if (this.deal.jobType.id != newDeal.jobType.id) {\n window.alert(this.$filter(\"translate\")(\"PROJECT_TYPE_CHANGED_NOTICE\"));\n }\n\n _.extend(this.deal, newDeal);\n this.deal.snapshot();\n\n if (this.deal.closing && this.deal.needsContractDraft) {\n this.getCurrentContractDraftCdsJobData();\n } else if (!this.deal.failed) {\n if (!this.deal.hasSapId) {\n this.deal.pollSapJobData();\n } else if (this.deal.allCandidatesInSap) {\n this.deal.pollCdsJobData();\n }\n } else {\n this.onSaveError.bind(this)();\n }\n this.saving = false;\n }\n\n public saveChanges() {\n if (!this.deal.id && !this.deal.closing && !this.deal.purchaseOrderNumber && this.confirmPurchaseOrderNumber()) {\n return;\n }\n this.force_validation = false;\n\n if (this.dealForm.$invalid && !this.deal.closing) {\n window.alert(this.$filter(\"translate\")(\"ERRORS_IN_FORM_NOTICE\"));\n this.force_validation = true;\n return;\n }\n\n if (this.saving) {\n return false;\n }\n\n this.saving = true;\n\n this.deal.employeeLeasing = this.deal.isEmployeeLeasingEnabled() ? this.deal.employeeLeasing : false;\n\n this.deal.closing && this.deal.needsContractDraft\n ? this.saveContractDrafts().then(() => this.saveDeal())\n : this.saveDeal();\n }\n\n public cancel() {\n this.dismiss();\n }\n\n public addProvision() {\n if (!this.deal.id) {\n window.alert(this.$filter(\"translate\")(\"DEAL_NEEDS_SAVING_BEFORE_ADDING_CANDIDATES_NOTICE\"));\n return;\n }\n\n var excludes = _.map(this.deal.provisions, (provision) => {\n return provision.candidate;\n });\n this.deal.project\n .openChooseCandidateModal({ autocomplete: true, excludes: excludes, isClosing: this.deal.closing })\n .then((cpjoin) => {\n var dealParams = { deal: { candidatesProjectId: cpjoin.id } };\n this.Provision.$get(this.deal.$url(\"/provisions/new.json\"), dealParams).then((provision) => {\n this.deal.provisions.push(provision);\n });\n });\n }\n\n public deleteProvision(index) {\n this.deal.provisions.splice(index, 1);\n }\n\n public addContractDraftToCandidate(provision) {\n if (provision.candidate.hasUnfinalizedContractDrafts) {\n window.alert(this.$filter(\"translate\")(\"CANDIDATE_HAS_UNFINALIZED_CONTRACTS_NOTICE\"));\n window.rollbar.error(\"Tried to create contract for candidate which is in a contract creation process\", {\n candidate_id: provision.candidate.id,\n });\n return;\n }\n this.ContractDraft.createContractDraft(provision).then((newContractDraft) => {\n provision.candidate.contractDraft = newContractDraft;\n var targetId = \"candidate_\" + provision.candidate.id + \"_contract_draft\";\n var element = document.getElementById(targetId);\n\n if (element) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n });\n }\n\n public turnClosingToDeal() {\n this.deal.save().then((savedDeal) => {savedDeal.turnClosingToDeal().then((newDeal) => {\n if (newDeal) {\n _.extend(this.deal, newDeal);\n }\n })\n });\n }\n\n private saveContractDrafts(): Promise {\n const contractDraftPromises: Promise[] =\n this.provisionsWithUnfinalizedContractDraft().map((provision) =>\n this.saveCorrespondingContractDraftPromise(provision)\n ) || [];\n\n return Promise.resolve(this.$q.all(contractDraftPromises));\n }\n\n private saveCorrespondingContractDraftPromise(provision): Promise {\n let currentContractDraft = provision.candidate.contractDraft;\n return currentContractDraft.save().then((savedContractDraft) => {\n _.extend(currentContractDraft, savedContractDraft);\n currentContractDraft.snapshot();\n\n if (currentContractDraft.id != null) {\n if (currentContractDraft.failed && !currentContractDraft.generating) {\n this.onSaveError.bind(this)();\n }\n }\n }, this.onSaveError.bind(this));\n }\n\n private getCurrentContractDraftCdsJobData() {\n this.provisionsWithUnfinalizedContractDraft().forEach((provision) => {\n const currentContractDraft = provision.candidate.contractDraft;\n if (currentContractDraft && currentContractDraft.$errors == null) {\n currentContractDraft.pollCdsJobData();\n }\n });\n }\n\n private provisionsWithUnfinalizedContractDraft(): any[] {\n return this.deal.provisions?.filter(\n (provision) =>\n !provision.isFreelancer && provision.candidate?.contractDraft && !provision.candidate?.contractDraft?.hasCdsId\n );\n }\n\n private saveDeal() {\n this.deal.save().then(this.savingSuccess, this.onSaveError.bind(this));\n }\n}\n","import DealEditModalCtrl from \"./deal-edit-modal.controller\";\nimport dealEditModalTemplate from \"./deal-edit-modal.template.html\";\n\nangular.module(\"deals.modals\").component(\"dealEditModal\", {\n bindings: {\n resolve: \"<\",\n dismiss: \"&\",\n },\n controller: DealEditModalCtrl,\n template: dealEditModalTemplate,\n});\n","import { ITemplateCacheService, ITimeoutService } from \"angular\";\n\nexport default class PrsmTableCtrl {\n public bodyDirectiveIdentifier: string;\n public bodyDirective: string;\n public activeRow: any;\n public descriptor: any;\n public enableHotkeys: boolean;\n public data: any;\n public tableRowIdentifier: string;\n public pathAppendix: string;\n public path: string;\n public initialViewState: any;\n public searchTime: any;\n public attributes: any;\n public deregActiveRowClosed: () => void;\n public deregActiveRowChanged: () => void;\n\n static $inject = [\"$templateCache\", \"$rootScope\", \"$state\", \"hotkeys\", \"$timeout\"];\n\n constructor (\n private $templateCache: ITemplateCacheService,\n private $rootScope: IExtendedRootScopeService,\n private $state: angular.ui.IStateService,\n private hotkeys: any,\n private $timeout: ITimeoutService\n ) {\n this.nextItem = this.nextItem.bind(this);\n this.previousItem = this.previousItem.bind(this);\n }\n\n public $onInit() {\n _.defaults(this, {\n enableHotkeys: false,\n collapseHeader: false,\n pathAppendix: \"\",\n enableInfiniteScrolling: false,\n });\n\n this.bodyDirectiveIdentifier = \"prsm-table-body-\" + this.bodyDirective;\n this.$templateCache.put(\n this.bodyDirectiveIdentifier,\n \"<\" +\n this.bodyDirective +\n ' table-row-identifier=\"$ctrl.tableRowIdentifier\" context=\"$ctrl.context\" context-menu-options=\"$ctrl.contextMenuOptions\"' +\n ' list=\"$ctrl.list\" initial-view-state=\"$ctrl.initialViewState\" attributes=\"$ctrl.attributes\" active-row=\"$ctrl.activeRow\" identifier=\"$ctrl.activeRowChanged-' +\n _.uniqueId(\"prsm-table-body\") +\n '\" data=\"$ctrl.data\" state-args=\"$ctrl.stateArgs\" state-prefix=\"{{$ctrl.statePrefix}}\">\"\n );\n\n this.deregActiveRowChanged = this.$rootScope.$on(\"activeRowChanged\", (event, newActiveRow) => {\n if (this.activeRow && this.activeRow.resourceType == newActiveRow.resourceType) {\n this.activeRow = newActiveRow;\n }\n if (!this.activeRow && newActiveRow.resourceType == this.descriptor) {\n this.activeRow = newActiveRow;\n }\n });\n\n if (!this.enableHotkeys) {\n this.deregActiveRowClosed = this.$rootScope.$on(\"activeRowClosed\", (event, activeRow) => {\n if (this.activeRow == activeRow) {\n this.activeRow = undefined;\n }\n });\n }\n };\n\n public $onChanges(changes) {\n if (changes.lazyLoading && !changes.lazyLoading.currentValue && this.data) {\n this.$rootScope.$broadcast(\"finishedLazyLoading\");\n this.initializeTable();\n }\n };\n\n public $onDestroy() {\n if (this.enableHotkeys) {\n this.deregisterHotkeys();\n }\n\n this.deregActiveRowChanged();\n if (_.isFunction(this.deregActiveRowClosed)) {\n this.deregActiveRowClosed();\n }\n };\n\n public getListIndex() {\n return _.chain(this.data).pluck(\"id\").indexOf(this.activeRow.id).value();\n };\n\n public scrollListElementIntoView() {\n $(\"#\" + this.tableRowIdentifier + this.activeRow.id)[0].scrollIntoView(false);\n };\n\n public openDetailView(mode) {\n let path = this.pathAppendix ? this.path + this.pathAppendix + mode : this.path + mode;\n this.$state.go(path, this.activeRow.params(), { relative: this.initialViewState });\n };\n\n public nextItem(event) {\n if (!this.data) {\n return;\n }\n event.preventDefault();\n\n var index = this.getListIndex();\n\n if (!this.data[index + 1]) {\n var loading = this.moreWithoutReload();\n if (loading) {\n loading.then(() => {\n this.activeRow = this.data[index + 1];\n this.$timeout(this.scrollListElementIntoView);\n });\n }\n return;\n } else {\n this.activeRow = this.data[index + 1];\n this.scrollListElementIntoView();\n }\n\n this.openDetailView(\".show\");\n };\n\n public previousItem(event) {\n if (!this.data) {\n return;\n }\n event.preventDefault();\n\n var index = this.getListIndex();\n if (index > 0) {\n this.activeRow = this.data[index - 1];\n this.scrollListElementIntoView();\n }\n\n this.openDetailView(\".show\");\n };\n\n public registerHotkeys() {\n this.hotkeys.add({\n combo: \"up\",\n description: \"Next \" + this.descriptor,\n callback: this.previousItem,\n });\n this.hotkeys.add({\n combo: \"down\",\n description: \"Previous \" + this.descriptor,\n callback: this.nextItem,\n });\n this.hotkeys.add({\n combo: \"esc\",\n description: \"Detailansicht schließen\",\n callback: () => {\n this.$state.go(this.path, {});\n },\n });\n this.hotkeys.add({\n combo: \"enter\",\n description: \"Detailansicht öffnen\",\n callback: () => {\n if (this.activeRow) {\n this.openDetailView(\".show\");\n }\n },\n });\n this.hotkeys.add({\n combo: \"mod+b\",\n description: \"Bearbeitungsansicht öffnen\",\n callback: () => {\n if (this.activeRow) {\n this.openDetailView(\".edit\");\n }\n },\n });\n };\n\n public deregisterHotkeys() {\n this.hotkeys.del(\"up\");\n this.hotkeys.del(\"down\");\n this.hotkeys.del(\"esc\");\n this.hotkeys.del(\"enter\");\n this.hotkeys.del(\"mod+b\");\n };\n\n public searchTimeCalc() {\n return this.data?.meta?.took ? this.data.meta.took / 1000 : null;\n };\n\n public moreWithoutReload() {\n if (this.data?.isLoading() || !this.data?.isMoreAvailable()) return;\n return this.data.getMore();\n };\n\n public resetSortOrder(sortOrder?: string) {\n _.chain(this.attributes)\n .each((attr) => {\n if (_.isUndefined(attr.$sortOrder) || attr.$sortOrder !== sortOrder) {\n attr.$sortOrder = [undefined, \"desc\", \"asc\"];\n }\n })\n .value();\n };\n\n public sortBy(paramName, sortOrder) {\n if (!paramName) {\n return false;\n }\n\n this.resetSortOrder(sortOrder);\n var sortParams = {};\n sortOrder.push(sortOrder.shift());\n\n if (sortOrder[0]) {\n sortParams[paramName] = { order: sortOrder[0] };\n }\n\n this.searchTime = null;\n this.data.sortBy(sortParams).then((result) => {\n this.searchTime = this.searchTimeCalc();\n });\n };\n\n public isMoreAvailable() {\n if (_.isFunction(this.data?.isMoreAvailable)) {\n return this.data.isMoreAvailable();\n }\n return false;\n };\n\n public initializeTable = _.once(() => {\n this.searchTime = this.searchTimeCalc();\n\n this.resetSortOrder(undefined);\n\n if (this.enableHotkeys && !this.hotkeys.get(\"left\") && !this.hotkeys.get(\"right\")) {\n if (!this.activeRow) {\n this.activeRow = this.data[0];\n }\n this.registerHotkeys();\n }\n });\n};\n","import PrsmTableCtrl from \"./prsm-table.controller\";\nimport prsmTableTemplate from \"./prsm-table.template.html\";\n\nangular.module(\"components.prsmTable\").component(\"prsmTable\", {\n bindings: {\n attributes: \"=\",\n data: \"=\",\n bodyDirective: \"@\",\n activeRow: \"<\",\n statePrefix: \"@\",\n stateArgs: \"&\",\n enableHotkeys: \"=?\",\n descriptor: \"@\",\n path: \"@\",\n pathAppendix: \"@\",\n collapseHeader: \"@\",\n context: \"=?\",\n lazyLoading: \"<\",\n list: \"=\",\n tableRowIdentifier: \"@\",\n enableInfiniteScrolling: \"@\",\n contextMenuOptions: \"=\",\n initialViewState: \"<\",\n },\n template: prsmTableTemplate,\n controller: PrsmTableCtrl,\n});\n","import { ICompileService, ISCEService, ITemplateCacheService, ITimeoutService } from \"angular\";\nconst kpisOpenPopoverTemplate = require(\"../../../../dashboards/components/dashboard-2021/popover/open-popover.template.html\");\n\nexport default class processKpisCtrl {\n public model: { kpis: Record };\n public steps: Array<{ \n value?: any; \n key?: string; \n isOpen?: boolean; \n model?: any \n }>;\n public enableKpiKeySelect: boolean;\n public selectedKpiKey: string;\n static $inject = [\"KPISteps\", \"$compile\", \"$timeout\", \"$sce\", \"$templateCache\"];\n\n constructor (\n private KPISteps: any,\n private $compile: ICompileService,\n private $timeout: ITimeoutService,\n private $sce: ISCEService,\n private $templateCache: ITemplateCacheService\n ) {\n this.$templateCache.put(\"open-popover-template\", kpisOpenPopoverTemplate);\n }\n\n public $onInit() {\n this.setSteps(this.model.kpis);\n };\n\n public setSteps(newValue) {\n if (!newValue) {\n return false;\n }\n\n this.steps = _.chain(newValue)\n .mapObject((value, key) => {\n return this.KPISteps[key]\n ? _.extend({ value: value, key: key, isOpen: false, model: this.model }, this.KPISteps[key])\n : undefined;\n })\n .compact()\n .values()\n .value();\n };\n\n public setKpiKey(stepkey) {\n if (this.enableKpiKeySelect) {\n this.selectedKpiKey = stepkey;\n }\n };\n};\n","import processKpisCtrl from \"./process-kpis.controller\";\nimport processKpisTemplate from \"./process-kpis.template.html\";\n\nangular.module(\"components.kpis\").component(\"processKpis\", {\n bindings: {\n model: \";\n static $inject = [\"LocationsFactory\"];\n\n constructor(\n private Location: any\n ) { }\n\n public async selectAddress($item) {\n if (!$item) {\n return;\n }\n\n this.address = this.address == null ? {} : this.address;\n _.extend(this.address, {\n address: $item.displayName,\n street: $item.address.road || $item.address.name,\n houseId: $item.address.house_number,\n zipCode: $item.address.postcode,\n city: $item.address.city,\n country: await Country.findByName($item.address.country),\n });\n };\n\n public autocompleteLocation(searchQuery) {\n var deferred = this.Location.autocomplete(searchQuery, \"address\");\n\n deferred.promise.then((locations) => {\n this.locations = _.rest(locations); // remove first element with query string\n });\n };\n};","import AddressFormCtrl from \"./address-form.controller\";\nimport addressFormTemplate from \"./address-form.template.html\";\n\nangular.module(\"directives\").component(\"addressForm\", {\n bindings: {\n address: \"=\",\n },\n template: addressFormTemplate,\n controller: AddressFormCtrl,\n controllerAs: \"$ctrl\",\n});\n","import { ITemplateCacheService } from \"angular\";\nimport personDuplicatesPopoverTemplate from \"./person-duplicates-popover.template.html\";\n\nexport default class PersonDuplicateButtonCtrl {\n public personDuplicatesPopover: string;\n public person: any;\n public $doCheck: () => void;\n static $inject = [\"DuplicateChecker\", \"$templateCache\"];\n\n constructor(\n private DuplicateChecker: any,\n private $templateCache: ITemplateCacheService\n ) {\n this.personDuplicatesPopover = \"person-duplicates-popover\";\n this.$templateCache.put(this.personDuplicatesPopover, personDuplicatesPopoverTemplate);\n }\n\n public $onInit() {\n var duplicatesChecker = new this.DuplicateChecker(this.person);\n this.$doCheck = duplicatesChecker.doCheck;\n };\n};","import PersonDuplicateButtonCtrl from \"./person-duplicate-button.controller\";\nimport personDuplicateButtonTemplate from \"./person-duplicate-button.template.html\";\n\nangular.module(\"directives\").component(\"personDuplicateButton\", {\n bindings: {\n person: \";\n public loading: boolean;\n public person: any;\n\n static $inject = [\"$http\"];\n\n constructor (\n private $http: IHttpService\n ) {\n this.ratings = [\n { name: \"No experience\", value: 1 },\n { name: \"I had contact with\", value: 2 },\n { name: \"Half/half\", value: 3 },\n { name: \"I know a lot about it\", value: 4 },\n { name: \"I am an expert\", value: 5 },\n ];\n this.loading = true;\n }\n\n public $onInit() {\n this.$http.get(this.person.$url(\"skillmatrix_taggings.json\")).then((result: any) => {\n angular.extend(this.person, {\n skillmatrixElements: result.data.data.skillmatrix_elements,\n });\n\n this.loading = false;\n });\n };\n};","import PersonSkillmatrixCtrl from \"./person-skillmatrix-form.controller\";\nimport personSkillmatrixFormTemplate from \"./person-skillmatrix-form.template.html\";\n\nangular.module(\"directives\").component(\"personSkillmatrixForm\", {\n bindings: {\n person: \"=ngModel\",\n },\n template: personSkillmatrixFormTemplate,\n controller: PersonSkillmatrixCtrl,\n});\n","import { IFilterService } from \"angular\";\n\nexport default class ContactDetailsCtrl {\n public object: any;\n public showContact: boolean | null;\n public contactActionTypes: {\n email: string,\n telephone: string\n };\n public callback: () => void;\n \n static $inject = [\"$filter\", \"UsersFactory\"];\n\n constructor (\n private $filter: IFilterService,\n private User: any\n ) {\n this.showContact = null;\n\n this.contactActionTypes = {\n email: \"e-mail\",\n telephone: \"phone-call\",\n };\n }\n\n public triggerAction(actionType) {\n if (this.callback) {\n this.callback();\n } else {\n this.object.createNewAction(actionType);\n }\n };\n\n public click2Call(actionTypeName, number) {\n this.User.$get(this.User.$url(\"click2Call\"), { destination: number }).then(\n (res) => {\n this.triggerAction(actionTypeName);\n },\n (result) => {\n switch (result.status) {\n case 500:\n window.alert(this.$filter(\"translate\")(\"CONNECTION_ERROR\"));\n break;\n case 400:\n window.alert(this.$filter(\"translate\")(\"TELEPHONE_END_POINT_WRONG_NOTICE\"));\n break;\n }\n }\n );\n };\n};","import ContactDetailsCtrl from \"./contact-details.controller\";\nimport contactDetailsTemplate from \"./contact-details.template.html\";\n\nangular.module(\"directives\").component(\"contactDetails\", {\n bindings: {\n object: \"<\",\n callback: \"<\",\n },\n template: contactDetailsTemplate,\n controller: ContactDetailsCtrl,\n});\n","export default class datePickerCtrl {\n public opened: boolean;\n\n constructor() {\n _.defaults(this, { required: false, disabled: false, uniqName: _.uniqueId(\"datePicker\") });\n }\n\n public open($event: ng.IAngularEvent) {\n $event.preventDefault();\n $event.stopPropagation();\n\n this.opened = true;\n };\n}","import datePickerCtrl from \"../date-picker/date-picker.controller\";\nimport weekPickerTemplate from \"./week-picker.template.html\";\n\nangular.module(\"directives\").component(\"weekPicker\", {\n bindings: {\n date: \"=ngModel\",\n placeholder: \";\n \n static $inject = [\"$scope\", \"$sce\"];\n\n constructor(\n private $scope: angular.IScope,\n private $sce: ISCEService\n ) { }\n\n public $onInit() {\n if (this.address) {\n this.address.$googleMapsUrl = this.googleMapsUrl(\"embed\");\n this.address.$googleMapsUrlStatic = this.googleMapsUrl();\n\n this.$scope.$watch(\n () => {\n if (!this.address) {\n return undefined;\n }\n return this.address_query();\n },\n (nv, ov) => {\n if (_.isString(nv) && nv !== ov) {\n this.address.$googleMapsUrl = this.googleMapsUrl(\"embed\");\n this.address.$googleMapsUrlStatic = this.googleMapsUrl();\n }\n }\n );\n }\n };\n\n public address_query() {\n var countryName = this.address.country ? this.address.country.name : null;\n\n return _.compact([this.address.street, this.address.zipCode, this.address.city + \",\", countryName]).join(\n \"%20\"\n );\n };\n\n private googleMapsUrl(type?) {\n var url =\n type === \"embed\"\n ? \"https://www.google.com/maps/embed/v1/place?key=AIzaSyCdK8ubWf8ccVZ4zUURNJwNsbSz8hv-DQ4&language=de&\"\n : \"https://maps.google.com/?\";\n\n if (this.address.city || this.address.zipCode) {\n return this.$sce.trustAsResourceUrl(url + \"zoom=5&q=\" + this.address_query());\n } else {\n return null;\n }\n };\n};","import AddressBlockCtrl from \"./address-block.controller\";\nimport urAddressBlockTemplate from \"./ur-address-block.template.html\";\n\nangular.module(\"directives\").component(\"urAddressBlock\", {\n bindings: {\n address: \"=address\",\n region: \"=region\",\n label: \"@\",\n },\n template: urAddressBlockTemplate,\n controller: AddressBlockCtrl,\n});\n","import datePickerCtrl from \"./date-picker.controller\";\nimport datePickerTemplate from \"./date-picker.template.html\";\n\nangular.module(\"directives\").component(\"datePicker\", {\n bindings: {\n date: \"=ngModel\",\n placeholder: \" void };\n\n static $inject = [\"SidebarFactory\"];\n\n constructor (\n private SidebarFactory: any\n ) {\n this.sidebar = new this.SidebarFactory(\"deckSub\");\n }\n\n public closeSidebar() {\n this.sidebar.close();\n };\n};","import DeckSubCtrl from \"./deck-sub.controller\";\n\nangular.module(\"directives\").component(\"deckSub\", {\n controller: DeckSubCtrl,\n});\n","import InfoPopoverCtrl from \"./info-popover.controller\";\nimport infoPopoverTemplate from \"./info-popover.template.html\";\n\nangular.module(\"directives\").component(\"infoPopover\", {\n bindings: {\n resource: \"<\",\n },\n template: infoPopoverTemplate,\n controller: InfoPopoverCtrl,\n});\n","export default class InfoPopoverCtrl {\n constructor() {}\n\n public state(stateWithPrefix, params) {\n var args = _.reduce(\n params,\n (memo, obj) => {\n return _.extend(memo, obj);\n },\n {}\n );\n\n return stateWithPrefix + \"(\" + JSON.stringify(args) + \")\";\n };\n};","import trafficLightRequirementsTemplate from \"./traffic-light-requirements.template.html\";\n\nangular.module(\"directives\").component(\"trafficLightRequirements\", {\n bindings: {\n requirements: \"<\",\n },\n template: trafficLightRequirementsTemplate,\n});\n","import { ITemplateCacheService } from \"angular\";\n\nexport default class TrafficLightCtrl {\n public object: any;\n public requirements: any[];\n public popoverUniqId: string;\n public typeClass: any;\n\n static $inject = [\"$templateCache\"];\n\n constructor (\n private $templateCache: ITemplateCacheService\n ) {}\n\n public $onInit() {\n if (this.object && _.isFunction(this.object.requirements)) {\n this.requirements = this.object.requirements();\n } else {\n this.requirements = this.typeClass.requirements;\n }\n\n this.popoverUniqId = _.uniqueId(\"traffic-light-popover\");\n this.$templateCache.put(\n this.popoverUniqId,\n \"\"\n );\n };\n\n public $onDestroy() {\n this.$templateCache.remove(this.popoverUniqId);\n };\n};","import TrafficLightCtrl from \"./traffic-light.controller\";\nimport trafficLightTemplate from \"./traffic-light.template.html\";\n\nangular.module(\"directives\").component(\"trafficLight\", {\n bindings: {\n urgency: \"=\",\n typeClass: \"=\",\n object: \"=\",\n },\n template: trafficLightTemplate,\n controller: TrafficLightCtrl,\n});\n","import socialMediaDetailsTemplate from \"./social-media-details.template.html\";\n\nangular.module(\"directives\").component(\"socialMediaDetails\", {\n bindings: {\n object: \"=\",\n },\n template: socialMediaDetailsTemplate,\n});\n","import toggleButtonTemplate from \"./toggle-button.template.html\";\n\nangular.module(\"directives\").component(\"toggleButton\", {\n bindings: {\n model: \"=\",\n type: \"@\",\n disabled: \"<\",\n },\n template: toggleButtonTemplate,\n});\n","import PersonDuplicateButtonCtrl from \"../person-duplicate-button/person-duplicate-button.controller\";\nimport personDuplicatesTemplate from \"../../../directives/components/person-duplicates/person-duplicates.template.html\";\n\nangular.module(\"directives\").component(\"personDuplicates\", {\n bindings: {\n person: \" string;\n \n constructor () {\n }\n\n public $onInit() {\n Language.getAll().then((languages: Language[]) => (this.languages = languages));\n this.languageLevelInWords = Language.levelInWords; \n };\n};\n","import { ITemplateCacheService } from \"angular\";\n\nexport default class PopoverTranscludeCtrl {\n public directiveNameIdentifier: string;\n public directiveName: string;\n public directiveOptions: {\n closing?: () => void;\n context?: any;\n setData?: (data: any) => void;\n remote?: any;\n advancedQuery?: any;\n initFn?: () => void;\n user?: any;\n followUps?: string;\n };\n \n static $inject = [\"$templateCache\"];\n\n constructor (\n private $templateCache: ITemplateCacheService\n ) {}\n\n public $onInit() {\n this.directiveNameIdentifier = \"prsm-table-body-\" + this.directiveName;\n this.$templateCache.put(\n this.directiveNameIdentifier,\n \"<\" +\n this.directiveName +\n ' closing=\"$ctrl.directiveOptions.closing()\"' +\n ' query=\"$ctrl.directiveOptions.context\"' +\n ' set-data=\"$ctrl.directiveOptions.setData\"' +\n ' remote=\"$ctrl.directiveOptions.remote\"' +\n ' advanced-query=\"$ctrl.directiveOptions.advancedQuery\"' +\n ' init-fn=\"$ctrl.directiveOptions.initFn\"' +\n ' user=\"$ctrl.directiveOptions.user\"' +\n ' follow-ups=\"' +\n this.directiveOptions.followUps +\n '\"' +\n '\">\"\n );\n };\n};","import PopoverTranscludeCtrl from \"./popover-transclude.controller\";\n\nangular.module(\"directives.advanced_search\").component(\"popoverTransclude\", {\n bindings: {\n directiveName: \"=\",\n directiveOptions: \"=\",\n },\n template: \"\",\n controller: PopoverTranscludeCtrl,\n});\n","import LastUpdateSelectorCtrl from \"./last-update-selector.controller\";\nimport lastUpdateSelectorTemplate from \"./last-update-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"lastUpdateSelector\", {\n bindings: {\n advancedQuery: \"=\",\n lastUpdateSelectable: \"=\",\n },\n template: lastUpdateSelectorTemplate,\n controller: LastUpdateSelectorCtrl,\n});\n","export default class LastUpdateSelectorCtrl {\n public lastUpdateUniqID: string;\n public advancedQuery: any;\n \n constructor() {\n this.lastUpdateUniqID = _.uniqueId(\"lastUpdateEnabled\");\n }\n\n public $onInit() {\n _.defaults(this.advancedQuery, { lastUpdateEnabled: false });\n };\n};\n","import { IQService } from \"angular\";\n\nexport default class GenericSelectorCtrl {\n public cancelers: ng.IDeferred[] = [];\n public condition: { \n field?: string;\n query?: string;\n suggestions?: {name: string | undefined ; synonyms?: string[]} [] \n };\n static $inject = [\"$q\", \"Autocompletes\", \"defaultSelectorFields\"];\n\n constructor (\n private $q: IQService,\n private Autocompletes: any,\n private defaultSelectorFields: any\n ) {\n this.cancelers = [];\n }\n\n public autocomplete(text, condition) {\n if (!text.length) {\n condition.suggestions = [];\n return false;\n }\n var field = condition.field;\n var scope;\n if (_.isUndefined(field)) {\n scope = null;\n } else if (\n _.chain(this.defaultSelectorFields)\n .pick(_.matcher({ autocomplete: true }))\n .keys()\n .indexOf(field)\n .value() > -1\n ) {\n scope = field;\n }\n\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n return this.Autocompletes.autocomplete(text, scope, _.last(this.cancelers)).then((res) => {\n condition.suggestions = _.chain(res)\n .map((entry) => {\n if (scope && this.defaultSelectorFields[scope].getName) {\n return {\n name: this.defaultSelectorFields[scope].getName(entry),\n synonyms: _.propertyOf(entry[entry.resource_type])(\"synonyms\"),\n };\n } else {\n return {\n name: entry.highlight[0],\n synonyms: _.propertyOf(entry[entry.resource_type])(\"synonyms\"),\n };\n }\n })\n .uniq((x) => {\n return _.propertyOf(this.defaultSelectorFields[scope])(\"skipUniq\") ? _.uniqueId() : x.name;\n })\n .value();\n });\n };\n\n public $onInit() {\n if (!_.isArray(this.condition.suggestions)) {\n this.condition.suggestions = [{ name: this.condition.query }];\n }\n\n this.defaultSelectorFields.then((result) => (this.defaultSelectorFields = result));\n };\n};","import GenericSelectorCtrl from \"./generic-selector.controller\";\nimport genericSelectorTemplate from \"./generic-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"genericSelector\", {\n bindings: {\n condition: \"=\",\n },\n template: genericSelectorTemplate,\n controller: GenericSelectorCtrl,\n});\n","import { ITemplateCacheService } from \"angular\";\nimport advancedSearchTranscludeTemplate from \"./advanced-search-transclude.template.html\";\n\nexport default class AdvancedSearchCtrl {\n public directiveOptions: { advancedQuery: { getNumberOfConditions: () => Promise; } };\n public dropdownIsOpen: boolean;\n public numberOfSearchConditions: number;\n public getNumberOfConditions: () => number;\n\n static $inject = [\"$templateCache\"];\n\n constructor (\n private $templateCache: ITemplateCacheService\n ) {\n this.$templateCache.put(\"advanced-search-transclude-template\", advancedSearchTranscludeTemplate);\n };\n\n public $onInit() {\n _.defaults(this.directiveOptions, {\n closing: () => {\n this.dropdownIsOpen = false;\n },\n });\n\n this.getNumberOfSearchConditions();\n };\n\n public async getNumberOfSearchConditions () {\n this.directiveOptions.advancedQuery\n .getNumberOfConditions()\n .then((result) => (this.numberOfSearchConditions = result));\n };\n};\n","import AdvancedSearchCtrl from \"./advanced-search.controller\";\nimport advancedSearchTemplate from \"./advanced-search.template.html\";\n//= require ../../advanced_search.module.js\n\nangular.module(\"directives.advanced_search\").component(\"advancedSearch\", {\n bindings: {\n directiveName: \"@\",\n directiveOptions: \"=\",\n },\n template: advancedSearchTemplate,\n controller: AdvancedSearchCtrl,\n});\n","import DateRangeSelectorCtrl from \"./date-range-selector.controller\";\nimport dateRangeSelectorTemplate from \"./date-range-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"dateRangeSelector\", {\n bindings: {\n advancedQuery: \"=\",\n dateRangeSelectable: \"=\",\n },\n template: dateRangeSelectorTemplate,\n controller: DateRangeSelectorCtrl,\n});\n","export default class DateRangeSelectorCtrl {\n public dateRangeUniqID: string;\n\n constructor() {\n this.dateRangeUniqID = _.uniqueId(\"dateRangeEnabled\");\n }\n\n public open($event: ng.IAngularEvent, paramName: string) {\n $event.preventDefault();\n $event.stopPropagation();\n\n this[paramName] = true;\n };\n};","export default class AdvancedSearchSelectorCtrl {\n public modifiers: Array<{name: string, value: string}>;\n public fields: any;\n public selectedFields: string[];\n public fieldCount: number;\n static $inject = [\"defaultSelectorFields\"];\n\n constructor (\n private defaultSelectorFields: any\n ) {\n this.modifiers = [\n { name: \"MUST\", value: \"must\" },\n { name: \"OR\", value: \"or\" },\n { name: \"NOT\", value: \"not\" },\n ];\n }\n\n public $onInit() {\n this.defaultSelectorFields.then((fields) => {\n this.fields = fields;\n if (this.selectedFields) {\n this.fields = _.pick(this.fields, this.selectedFields);\n }\n\n this.fieldCount = _.keys(this.fields).length;\n });\n };\n\n public getStaticList(fieldName) {\n return _.pick(this.fields[fieldName], \"staticList\").staticList;\n };\n\n public isGenericField(fieldName) {\n return _.pick(this.fields[fieldName], \"autocomplete\").autocomplete;\n };\n};","import AdvancedSearchSelectorCtrl from \"./advanced-search-selector.controller\";\nimport advancedSearchSelectorTemplate from \"./advanced-search-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"advancedSearchSelector\", {\n bindings: {\n advancedQuery: \"=\",\n selectedFields: \"=\",\n },\n template: advancedSearchSelectorTemplate,\n controller: AdvancedSearchSelectorCtrl,\n});\n","import CvLastUpdateSelectorCtrl from \"./cv-last-update-selector.controller\";\nimport cvLastUpdateSelectorTemplate from \"./cv-last-update-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"cvLastUpdateSelector\", {\n bindings: {\n advancedQuery: \"=\",\n cvLastUpdateSelectable: \"=\",\n },\n template: cvLastUpdateSelectorTemplate,\n controller: CvLastUpdateSelectorCtrl,\n});\n","export default class CvLastUpdateSelectorCtrl {\n public goldenDaysInWeeksAgo: number; \n public cvDateSearchUniqID: string;\n public advancedQuery: any;\n\n constructor () {\n this.goldenDaysInWeeksAgo = parseInt(\n String((new Date().getTime() - new Date(1990, 1, 1).getTime()) / (24 * 3600 * 1000 * 7))\n );\n this.cvDateSearchUniqID = _.uniqueId(\"cvDateSearchEnabled\"); \n };\n\n public $onInit() {\n _.defaults(this.advancedQuery, { cvLastUpdateEnabled: false });\n };\n};\n","import JobOfferSearchCtrl from \"./job-offers-search.controller\";\nimport jobOffersSearchTemplate from \"./job-offers-search.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"jobOffersSearch\", {\n bindings: {\n advancedQuery: \"=\",\n },\n template: jobOffersSearchTemplate,\n controller: JobOfferSearchCtrl,\n});\n","export default class JobOfferSearchCtrl {\n public jobOffersSearchUniqID: string;\n \n constructor () {\n this.jobOffersSearchUniqID = _.uniqueId(\"jobOffersSearchEnabled\");\n }\n};\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TPriority } from \"../priorities\";\n\nexport class Priority {\n private serviceName: string = \"PrioritiesFactory\";\n private id: number;\n public name: string;\n public $selected: boolean;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.priorities.query().then((response) => {\n return response.body.data.map((element) => {\n return new Priority(element);\n });\n });\n }\n}\n","import PrioritySearchCtrl from \"./priority-search.controller\";\nimport prioritySearchTemplate from \"./priority-search.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"prioritySearch\", {\n bindings: {\n advancedQuery: \"=\",\n },\n template: prioritySearchTemplate,\n controller: PrioritySearchCtrl,\n});\n","import { Priority } from \"../../../../priorities/services/priority.service\";\n\nexport default class PrioritySearchCtrl {\n public prioritySelectUnigId: string;\n public priorities: Priority[];\n public advancedQuery: any;\n \n constructor() {\n this.prioritySelectUnigId = _.uniqueId(\"prioritySelected\");\n }\n\n public $onInit() {\n Priority.getAll().then((priorities: Priority[]) => {\n this.priorities = priorities;\n\n // select all by default\n if (_.isEmpty(this.advancedQuery.priorities)) {\n _.each(this.priorities, (priority: Priority) => {\n priority.$selected = true;\n });\n } else {\n _.each(this.priorities, (priority: Priority) => {\n var index = _.findIndex(this.advancedQuery.priorities, (p) => {\n return p == priority.name;\n });\n priority.$selected = index > -1;\n });\n }\n });\n };\n\n public updatePriorityFilter() {\n this.advancedQuery.priorities = _.chain(this.priorities)\n .where({ $selected: true })\n .map((priority: Priority) => {\n return priority.name;\n })\n .value();\n };\n};","export interface LocationDistance {\n value: number;\n label: string;\n}\n\nexport const LOCATION_DISTANCES: LocationDistance[] = [\n { value: 5, label: \"5km\" },\n { value: 10, label: \"10km\" },\n { value: 20, label: \"20km\" },\n { value: 30, label: \"30km\" },\n { value: 40, label: \"40km\" },\n { value: 50, label: \"50km\" },\n { value: 60, label: \"60km\" },\n { value: 70, label: \"70km\" },\n { value: 100, label: \"100km\" },\n { value: 200, label: \"200km\" },\n];\n","import { LOCATION_DISTANCES, LocationDistance } from \"../../../../locations/values/location-distances.constant\";\n\nexport default class LocationSearchCtrl {\n public advancedQuery: any;\n public locationSearchUniqID: string;\n public includeGeoflexUniqID: string;\n public locations: string[];\n public locationDistances: LocationDistance[];\n public autocompleteLocation: (searchQuery: string) => void;\n\n static $inject = [\"LocationsFactory\"];\n\n constructor (\n private Location: any,\n ) {\n this.locationSearchUniqID = _.uniqueId(\"locationSearchEnabled\");\n this.includeGeoflexUniqID = _.uniqueId(\"geoflexEnabled\");\n\n this.locations = [];\n this.locationDistances = LOCATION_DISTANCES;\n this.autocompleteLocation = (searchQuery) => {\n var deferred = this.Location.autocomplete(searchQuery);\n\n deferred.promise.then((locations) => {\n this.locations = _.pluck(locations, \"displayName\");\n });\n };\n }\n\n public $onInit() {\n if (_.isUndefined(this.advancedQuery)) {\n this.advancedQuery = { locationDistance: 20 };\n }\n };\n};\n","import LocationSearchCtrl from \"./location-search.controller\";\nimport locationSearchTemplate from \"./location-search.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"locationSearch\", {\n bindings: {\n advancedQuery: \"=\",\n },\n template: locationSearchTemplate,\n controller: LocationSearchCtrl,\n});\n","import { IFilterService } from \"angular\";\nimport { TransactionBasis } from \"../../../../transaction_bases/services/transaction_bases.service\";\nimport { TTransactionBase } from \"../../../../types/transactionBase\"\nexport default class CompaniesTransactionSearchCtrl {\n public termsAndConditionsUniqID: string;\n public selectedTransactionBasisUniqID: string;\n public documentSelectUniqId: string;\n public transactionBasesTypes: TTransactionBase[];\n public advancedQuery: any;\n static $inject = [\"$filter\"];\n\n constructor (\n private $filter: IFilterService\n ) {}\n\n public async $onInit() {\n this.termsAndConditionsUniqID = _.uniqueId(\"termsAndConditionsEnabled\");\n this.selectedTransactionBasisUniqID = _.uniqueId(\"selectedTransactionBasis\");\n this.documentSelectUniqId = _.uniqueId(\"documentSelected\");\n this.transactionBasesTypes = await TransactionBasis.getAllForCompanies();\n \n var selectAllOption = {\n id: 0,\n name: this.$filter(\"translate\")(\"SELECT_ALL_TERMS\"),\n };\n this.transactionBasesTypes = [selectAllOption].concat(this.transactionBasesTypes);\n\n this.advancedQuery = this.advancedQuery || {};\n this.advancedQuery.selectedTransactionBasis = this.advancedQuery.selectedTransactionBasis || {};\n\n if (!this.advancedQuery.selectedTransactionBasis.field && this.transactionBasesTypes.length > 1) {\n this.advancedQuery.selectedTransactionBasis.field = this.transactionBasesTypes[0].id;\n }\n };\n};","import CompaniesTransactionSearchCtrl from \"./companies-transaction-search.controller\";\nimport companiesTransactionSearchTemplate from \"./companies-transaction-search.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"companiesTransactionSearch\", {\n bindings: {\n advancedQuery: \"=\",\n advancedSearch: \"=\",\n selectedFields: \"<\",\n },\n template: companiesTransactionSearchTemplate,\n controller: CompaniesTransactionSearchCtrl,\n});\n","import SalaryRangeSelectorCtrl from \"./salary-range-selector.controller\";\nimport salaryRangeSelectorTemplate from \"./salary-range-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"salaryRangeSelector\", {\n bindings: {\n advancedQuery: \"=\",\n },\n template: salaryRangeSelectorTemplate,\n controller: SalaryRangeSelectorCtrl,\n});\n","import { Money } from \"../../../money/services/money.service\";\n\nexport default class SalaryRangeSelectorCtrl {\n public salaryRangeUniqId: string;\n public advancedQuery: any;\n \n constructor() {\n this.salaryRangeUniqId = _.uniqueId(\"salaryRangeEnabled\");\n }\n\n public $onInit() {\n _.defaults(this.advancedQuery, {\n salaryRangeEnabled: false,\n salaryRangeMax: new Money({ inCents: true }),\n salaryRangeMin: new Money({ inCents: true }),\n });\n };\n};","import GenericStaticSelectorCtrl from \"./generic-static-selector.controller\";\nimport genericStaticSelectorTemplate from \"./generic-static-selector.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"genericStaticSelector\", {\n bindings: {\n condition: \"=\",\n staticList: \"=?\",\n },\n template: genericStaticSelectorTemplate,\n controller: GenericStaticSelectorCtrl,\n});\n","export default class GenericStaticSelectorCtrl {\n public condition: { query?: string | number};\n public staticList: any[];\n \n constructor () {}\n\n public $onInit() {\n var entryId = _.isEmpty(this.condition.query) ? undefined : Number(this.condition.query);\n this.condition.query = entryId ? _.findWhere(this.staticList, { id: entryId }) : this.condition.query;\n };\n}\n","import EntourageCandidatesSearchCtrl from \"./entourage-candidates-search.controller\";\nimport entourageCandidatesSearchTemplate from \"./entourage-candidates-search.template.html\";\n\nangular.module(\"directives.advanced_search\").component(\"entourageCandidatesSearch\", {\n bindings: {\n advancedQuery: \"<\",\n },\n template: entourageCandidatesSearchTemplate,\n controller: EntourageCandidatesSearchCtrl,\n});\n","export default class EntourageCandidatesSearchCtrl {\n public entourageCandidatesSearchUniqID: string;\n \n constructor () {\n this.entourageCandidatesSearchUniqID = _.uniqueId(\"entourageCandidatesSearchEnabled\");\n }\n};","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TRegion } from \"../regions\";\n\nexport class Region {\n private serviceName: string = \"RegionsFactory\";\n private id: number;\n private name: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.regions.query().then((response) => {\n return response.body.data.map((element) => {\n return new Region(element);\n });\n });\n }\n}\n","import { ActionType } from \"../../../action_types/services/action_types.service\";\nimport { Department } from \"../../../departments/services/departments.service\";\nimport { JobCategory } from \"../../../job_categories/services/job_categories.service\";\nimport { Hierarchy } from \"../../../hierarchies/services/hierarchies.service\";\nimport { Region } from \"../../../regions/services/regions.service\";\nimport { JobType } from \"../../../job_types/services/job_types.service\";\n\nangular.module(\"directives.advanced_search\").factory(\"defaultSelectorFields\", [\n \"ProjectsFactory\",\n \"CandidatesProjectsFactory\",\n \"CandidatesFactory\",\n \"DocumentsFactory\",\n \"UsersFactory\",\n \"$filter\",\n function (Project, CandidatesProjects, Candidate, Document, User, $filter) {\n let getUserName = function (entry) {\n return _.contains([\"sales_consultant_user\", \"research_consultant_user\", \"user\"], entry.resource_type)\n ? entry.user.full_name\n : entry.highlight[0];\n };\n\n let promises = [\n JobCategory.getAll(),\n Department.getAll(),\n Hierarchy.getAll(),\n Region.getAll(),\n JobType.getAll(),\n ActionType.getAll(),\n ];\n\n return Promise.all(promises).then(([jobCategories, departments, hierarchies, regions, jobTypes, actionTypes]) => {\n return {\n tags: {\n name: \"Tags\",\n autocomplete: true,\n skipUniq: true,\n getName: function (entry) {\n return (entry.tag && entry.tag.name) || entry.highlight[0];\n },\n },\n candidate_name: {\n name: $filter(\"translate\")(\"CANDIDATE\"),\n autocomplete: true,\n getName: function (entry) {\n return (entry.candidate && entry.candidate.name) || entry.highlight[0];\n },\n },\n candidate_email: { name: $filter(\"translate\")(\"EMAIL_ADDRESS_SEARCH\"), autocomplete: true },\n candidate_phone_number: { name: $filter(\"translate\")(\"TELEPHONE_NUMBER\"), autocomplete: true },\n profile_source: {\n name: $filter(\"translate\")(\"PROFILE_SOURCE\"),\n staticList: _.where(Candidate.profileSources, { selectable: true }),\n },\n language: {\n name: $filter(\"translate\")(\"LANGUAGE\"),\n isEmpty: function (condition) {\n return !(condition.languageId || condition.languageLevel);\n },\n },\n job_category: {\n name: $filter(\"translate\")(\"MARKET\"),\n staticList: _.map(jobCategories, function (e) {\n return _.pick(e, \"id\", \"name\", \"slug\");\n }),\n },\n department: {\n name: $filter(\"translate\")(\"DEPARTMENT\"),\n staticList: _.map(departments, function (e) {\n return _.pick(e, \"id\", \"name\", \"slug\");\n }),\n },\n hierarchy: {\n name: $filter(\"translate\")(\"HIERARCHY\"),\n staticList: _.map(hierarchies, function (e) {\n return _.pick(e, \"id\", \"name\", \"slug\");\n }),\n },\n region: { name: $filter(\"translate\")(\"REGION\"), staticList: regions },\n job_type: { name: $filter(\"translate\")(\"PROJECT_TYPE\"), staticList: jobTypes },\n employee_name: {\n name: $filter(\"translate\")(\"MANAGER\"),\n autocomplete: true,\n getName: function (entry) {\n return (entry.employee && entry.employee.full_name) || entry.highlight[0];\n },\n },\n company_name: {\n name: $filter(\"translate\")(\"COMPANY\"),\n autocomplete: true,\n getName: function (entry) {\n return (entry.company && entry.company.name) || entry.highlight[0];\n },\n },\n responsible_user: {\n name: $filter(\"translate\")(\"CONSULTANT\"),\n autocomplete: true,\n getName: getUserName,\n },\n completed_by_user: {\n name: $filter(\"translate\")(\"FILTER_COMPLETED_BY_USER\"),\n autocomplete: true,\n getName: getUserName,\n },\n responsible_researcher: {\n name: $filter(\"translate\")(\"RESEARCH_CONSULTANT_SEARCH\"),\n autocomplete: true,\n getName: getUserName,\n },\n project_status: {\n name: $filter(\"translate\")(\"PROJECT_STATUS_SEARCH\"),\n staticList: Project.statuses,\n },\n project_title: {\n name: $filter(\"translate\")(\"PROJECT\"),\n autocomplete: true,\n getName: function (entry) {\n return (entry.project && entry.project.title) || entry.highlight[0];\n },\n },\n employee_email: { name: $filter(\"translate\")(\"EMAIL_ADDRESS_SEARCH\"), autocomplete: true },\n employee_phone_number: { name: $filter(\"translate\")(\"TELEPHONE_NUMBER\"), autocomplete: true },\n longlist_status: {\n name: $filter(\"translate\")(\"STATUS_PROJECT\"),\n staticList: CandidatesProjects.statuses,\n },\n action_type: {\n name: $filter(\"translate\")(\"HISTORY_TYPES\"),\n staticList: _.chain(actionTypes)\n .map(function (entry) {\n return _.extend({ name: entry.completeDescription }, entry);\n })\n .value(),\n },\n file_type: {\n name: $filter(\"translate\")(\"FILE_TYPE\"),\n staticList: Document.fileTypes,\n },\n job_offer: {\n name: $filter(\"translate\")(\"JOB_OFFERS\"),\n autocomplete: true,\n getName: function (entry) {\n return entry.resource_type == \"job_offer\" ? entry.job_offer.name : entry.highlight[0];\n },\n },\n team: { name: $filter(\"translate\")(\"TEAM\"), staticList: User.translatedTeams() },\n };\n });\n },\n]);\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Department } from \"./departments.service\";\n\nangular\n .module(\"departments\")\n .factory(\"DepartmentsSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Department, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"DepartmentsFactory\", Department);\n","import { Hierarchy } from \"./hierarchies.service\";\n\nangular.module(\"hierarchies\").service(\"HierarchiesFactory\", Hierarchy);\n","export default class TextkernelDiffModalCtrl {\n\n private pollingService: any;\n private loading: boolean;\n private doc: any;\n private resolve: { doc: Document, ObjClass: any };\n private resultDiff: any;\n private hasResults: boolean;\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n \n static $inject = [\"$filter\", \"poller\", \"DocumentsFactory\"];\n\n constructor ( private $filter: ng.IFilterService, \n private poller: any, \n private Document: any) {}\n\n \n public $onInit (): void {\n this.loading = true;\n this.doc = this.resolve.doc;\n this.pollingService = this.poller.get(this.doc.$url() + \".json\", { catchError: true, delay: 2000 });\n\n this.pollingService.promise.then(null, null, (response) => {\n if (response.status === 200) {\n var doc = new this.Document(response.data.data);\n if (doc.textkernelFailed) {\n // Error while generating\n this.cancel();\n window.alert(this.$filter(\"translate\")(\"ERROR_WHILE_CREATING_PROFILE\"));\n } else if (doc.textkernelComplete) {\n this.pollingService.remove();\n\n return this.resolve.ObjClass.$get(this.doc.$url(\"/load_textkernel_diff.json\"), {\n document: JSON.stringify(this.doc),\n }).then(\n (result) => {\n this.loading = false;\n\n this.resultDiff = result;\n this.hasResults = !!_.keys(this.resultDiff.changes).length;\n },\n () => {\n window.alert(this.$filter(\"translate\")(\"ERROR_WHILE_FETCHING_DATA_NOTICE\"));\n this.cancel();\n }\n );\n } else if (!doc.textkernelGenerating) {\n this.doc.$put(this.doc.$url(\"/extract_with_textkernel.json\")).then( () => {\n this.pollingService.restart();\n });\n\n this.pollingService.stop();\n }\n } else {\n this.cancel();\n }\n });\n };\n\n public mapAttribute (attr) {\n return this.resolve.ObjClass.mapAttribute(attr);\n };\n\n public importData () {\n this.modalInstance.close(this.resultDiff);\n };\n\n public cancel () {\n this.modalInstance.dismiss();\n };\n\n public $onDestroy (){\n this.pollingService.remove();\n };\n}","import TextkernelDiffModalCtrl from \"./textkernel-diff-modal.controller\";\nimport textkernelDiffModalTemplate from \"./textkernel-diff-modal.template.html\";\n\nangular.module(\"documents.modals\").component(\"textkernelDiff\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: textkernelDiffModalTemplate,\n controller: TextkernelDiffModalCtrl,\n});\n","export default class DocumentsFullscreenModeModalCtrl {\n\n public static readonly EXTENSION_WHITELIST: string[] = [\"pdf\", \"jpg\", \"png\", \"jpeg\"];\n public resolve: { documents: Document[], openDocument: Document };\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [\"$filter\", \"poller\", \"DocumentsFactory\"];\n\n constructor (private $filter: ng.IFilterService, private poller: any, private Document: any) {}\n\n public $onInit () {\n };\n\n public cancel () {\n this.modalInstance.close();\n };\n}\n","import DocumentsFullscreenModeModalCtrl from \"./documents-fullscreen-mode.controller\";\nimport documentsFullscreenModeTemplate from \"./documents-fullscreen-mode.template.html\";\n\nangular.module(\"documents.modals\").component(\"documentsFullscreenMode\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: documentsFullscreenModeTemplate,\n controller: DocumentsFullscreenModeModalCtrl,\n});\n","import DocumentsDeckViewCtrl from \"./documents-deck-view.controller\";\nimport documentsDeckViewTemplate from \"./documents-deck-view.template.html\";\n\nangular.module(\"documents.components\").component(\"documentsDeckView\", {\n bindings: {\n documents: \"<\",\n openDocument: \"=\",\n openDocumentId: \"<\",\n },\n template: documentsDeckViewTemplate,\n controller: DocumentsDeckViewCtrl,\n});\n","export default class DocumentsDeckViewCtrl {\n\n private openDocument: any;\n private documents: any[];\n private openDocumentId: string; \n\n constructor() {}\n\n public openDocumentFullScreen (event) {\n event.preventDefault();\n if (!this.openDocument) {\n return;\n }\n\n this.openDocument.openDocumentFullScreen(this.documents);\n };\n\n public openDocuments () {\n var cvs = _.chain(this.documents)\n .where({ extension: \"pdf\" })\n .sortBy(\"createdAt\")\n .reverse()\n .sortBy((doc) => {\n return doc.fileTypeId();\n })\n .filter((doc) => {\n return doc.fileTypeId() > 0;\n })\n .value();\n\n var docId = parseInt(this.openDocumentId) || (_.first(cvs) ? _.first(cvs).id : undefined);\n if (this.documents.length && docId) {\n this.openDocument = _.first(_.where(this.documents, { id: docId }));\n } else {\n this.openDocument = undefined;\n }\n }\n\n public $onInit () {\n this.openDocuments();\n };\n}","import AdvancedDocumentsSearchCtrl from \"./advanced-documents-search.controller\";\nimport advancedDocumentsSearchTemplate from \"./advanced-documents-search.template.html\";\n\nangular.module(\"documents.components\").component(\"advancedDocumentsSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n closing: \"&\",\n },\n template: advancedDocumentsSearchTemplate,\n controller: AdvancedDocumentsSearchCtrl,\n});\n","export default class AdvancedDocumentsSearchCtrl {\n private setData: () => void;\n private closing: () => void;\n private selectableFields: string[] = [\"file_type\"];\n\n constructor() {}\n\n public performAdvancedSearch () {\n this.setData();\n this.closing();\n };\n}","export default class documentKpisCtrl {\n\n private oldModelDocumentsMeta: any;\n public steps: { title: string; description: string; value: number }[] = [];\n public model: any;\n static $inject = [\"$filter\", \"$translate\"];\n\n constructor(private $filter: ng.IFilterService, private $translate: angular.translate.ITranslateService) {}\n\n public setSteps(newValue) {\n if (!newValue) {\n return false;\n }\n\n this.steps = [\n { title: \"D\", description: this.$filter(\"translate\")(\"ALL_DOCUMENTS\"), value: newValue.documentCount },\n { title: \"CV\", description: this.$filter(\"translate\")(\"CV_TYPES\"), value: newValue.cvCount },\n {\n title: \"EP\",\n description: this.$filter(\"translate\")(\"SENT_EXPERT_PROFILES\"),\n value: newValue.expertProfileCount,\n },\n ];\n }\n\n public $onInit () {\n this.oldModelDocumentsMeta = this.model.documentsMeta;\n this.setSteps(this.oldModelDocumentsMeta);\n };\n\n public $doCheck () {\n var currentDocumentsMeta = this.model.documentsMeta;\n if (currentDocumentsMeta != this.oldModelDocumentsMeta) {\n this.setSteps(currentDocumentsMeta);\n this.oldModelDocumentsMeta = currentDocumentsMeta;\n }\n };\n}","import documentKpisCtrl from \"./document-kpis.controller\";\nimport documentKpisTemplate from \"./document-kpis.template.html\";\n\nangular.module(\"documents.components\").component(\"documentKpis\", {\n bindings: {\n model: \"=ngModel\",\n },\n template: documentKpisTemplate,\n controller: documentKpisCtrl,\n});\n","import { CompaniesTransactionBasis } from \"../../../companies_transaction_bases/services/companies_transaction_bases.service\";\nimport { TransitionService } from \"@uirouter/angularjs\";\n\nimport documentPaginationTemplate from \"../../../directives/components/pagination/pagination.template.html\";\nimport { FileUploader, FileUploaderFactory } from \"angular-file-upload\";\n\nexport default class DocumentsListCtrl {\n private paginationService: any;\n private paginationTemplateUrl: string;\n private documents: any[];\n private resource: any;\n private advancedQuery: any;\n private disableSearch: boolean;\n private chooseFileType: boolean;\n private cancel: boolean;\n private lazyLoading: boolean;\n private remove: ((item: any) => void); \n private uploader: FileUploader;\n private advancedDocumentsSearchOptions: any;\n private setData: () => void;\n public paginationId: string;\n public CompaniesTransactionBases: any;\n public documentFileTypes: any[];\n public attributes: {\n title: { show: boolean },\n fileType: { show: boolean },\n actions: { show: boolean },\n menu: { show: boolean },\n };\n\n static $inject = [\"$rootScope\",\n \"$transitions\",\n \"$log\",\n \"$cookies\",\n \"$filter\",\n \"csrfCookieName\",\n \"FileUploader\",\n \"CandidatesFactory\",\n \"CompaniesFactory\",\n \"ProjectsFactory\",\n \"DealsFactory\",\n \"hotkeys\",\n \"DocumentsFactory\",\n \"makeCollectionProxy\",\n \"SavedSearchesFactory\",\n \"MgPaginateService\",\n \"$templateCache\"];\n\n constructor ( private $rootScope: ng.IRootScopeService,\n private $transitions: TransitionService,\n private $log: ng.ILogService,\n private $cookies: angular.cookies.ICookiesService,\n private $filter: ng.IFilterService,\n private csrfCookieName: any,\n private FileUploader: FileUploaderFactory,\n public Candidate: any,\n public Company: any,\n public Project: any,\n public Deal: any,\n private hotkeys: any,\n private Document: any,\n private makeCollectionProxy: any,\n private SavedSearch: any,\n private MgPaginateService: any,\n private $templateCache: ng.ITemplateCacheService) {\n this.paginationTemplateUrl = \"paginationTemplate\";\n $templateCache.put(this.paginationTemplateUrl, documentPaginationTemplate);\n\n this.paginationService = new MgPaginateService();\n }\n \n public documentFileTypeUpdate (document) {\n new this.Document({ id: document.id, file_type: document.fileType.id }).save();\n };\n\n public openDocumentFullScreen (openDocument: any, event: Event) {\n event.preventDefault();\n if (!openDocument) {\n return;\n }\n new this.Document(openDocument).openDocumentFullScreen(this.documents);\n };\n\n public removeDocument (index, item) {\n const sliceItem = () => {\n var _index = _.findIndex(this.documents, _.matcher({ id: item.id }));\n\n if (_index == -1) return;\n this.documents.splice(_index, 1);\n this.paginationService.setData(this.documents);\n this.paginationService.setTotalItems(this.documents.length);\n }\n\n if (this.remove) {\n this.remove(item);\n sliceItem();\n } else {\n if (window.confirm(this.$filter(\"translate\")(\"DELETE_DOCUMENT_CONFIRMATION\"))) {\n new this.Document(item).delete().then(\n (result) => {\n sliceItem();\n },\n (error) => {\n window.alert(\n `${this.$filter(\"translate\")(\"ERROR_WHITE_DELETING_NOTICE\")} ${this.$filter(\"translate\")(\n \"TRY_AGAIN_OR_CONTACT_HELPDESK\"\n )}`\n );\n }\n );\n }\n }\n };\n\n public moveDocument (oldIndex, newIndex, item) {\n if (newIndex < 0 || newIndex == this.documents.length) {\n return false;\n }\n\n this.documents.splice(oldIndex, 1);\n this.documents.splice(newIndex, 0, item);\n\n _.each(this.documents, (doc, index) => {\n doc.sort = index;\n });\n };\n\n public documentLimitExceeded () {\n if (this.resource?.contractType?.type === \"TransactionBasis\" && this.resource.documents.length == 1) {\n return true;\n } else {\n return false;\n }\n };\n\n public getSelectableDocumentFileTypes () {\n if (this.resource?.type === \"Deal\") {\n return _.filter(this.Document.fileTypes, (fileType) => {\n return _.contains(\n [\"PURCHASE_ORDER\", \"CLIENT_CONTRACT\", \"PROJECT_CONTRACT\", \"SERVICE_CONTRACT\", \"DOCUMENT\"],\n fileType.name\n );\n });\n } else {\n return this.Document.fileTypes;\n }\n };\n\n public $onInit () {\n angular.extend(this, {\n paginationId: \"documents-list-\".concat(\"-\", _.uniqueId()),\n CompaniesTransactionBases: CompaniesTransactionBasis,\n documentFileTypes: this.getSelectableDocumentFileTypes(),\n attributes: {\n title: { show: true },\n fileType: { show: this.chooseFileType },\n actions: { show: this.cancel },\n menu: { show: !this.cancel },\n },\n });\n\n if (this.resource) {\n this.initializeUploader();\n\n if (!this.hotkeys.get(\"ctrl+u\")) {\n this.hotkeys.add({\n combo: \"ctrl+u\",\n description: \"Hochladen eines Dokuments\",\n callback: (event, hotkey) => {\n event.preventDefault();\n $(\"input#uploadDialog:first\").trigger(\"click\");\n },\n });\n\n var dereg = this.$transitions.onSuccess({}, () => {\n this.hotkeys.del(\"ctrl+u\");\n dereg();\n });\n }\n\n this.$rootScope.$on(\"event:auth-loginConfirmed\", this.initializeUploader);\n }\n\n if (!this.disableSearch) {\n this.advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"file_type\", query: \"\" },\n });\n if (this.resource.resourceType === \"Candidate\") {\n this.advancedQuery.conditions.push({\n field: \"file_type\",\n modifier: \"or\",\n query: _.findWhere(this.Document.fileTypes, { name: \"CV_ANONYMOUS\" }),\n });\n this.advancedQuery.conditions.push({\n field: \"file_type\",\n modifier: \"or\",\n query: _.findWhere(this.Document.fileTypes, { name: \"CV_ORIGINAL\" }),\n });\n this.advancedQuery.conditions.push({\n field: \"file_type\",\n modifier: \"or\",\n query: _.findWhere(this.Document.fileTypes, { name: \"CV_EXTERNAL\" }),\n });\n }\n\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n var initSearchResults = (documents) => {\n this.documents = documents;\n this.paginationService.setData(this.documents);\n this.paginationService.setTotalItems(this.documents.length);\n \n this.$rootScope.$broadcast(\"candidateDocumentsChanged\");\n \n this.lazyLoading = false;\n };\n\n var updateObjects = (params) => {\n this.lazyLoading = true;\n \n var params = _.extend(this.resource.params(), {\n advanced: JSON.stringify(this.advancedQuery.beforeStringify()),\n additional_pages: Math.min(this.documents?.length / 20 + 1, 3),\n });\n \n this.makeCollectionProxy(this.Document.query.bind(this.Document), params).then(initSearchResults);\n };\n\n \n this.advancedDocumentsSearchOptions = {\n setData: updateObjects,\n advancedQuery: this.advancedQuery,\n };\n\n updateObjects(this.advancedQuery.collectSearchParams());\n \n } else {\n this.paginationService.setData(this.documents);\n this.paginationService.setTotalItems(this.documents?.length);\n }\n };\n\n public initializeUploader() {\n if (!this.uploader) {\n this.uploader = new this.FileUploader({\n url: this.resource.$url(),\n alias: \"document_file\",\n removeAfterUpload: true,\n method: \"PUT\",\n autoUpload: true,\n //queueLimit: 1,\n headers: {\n \"X-CSRF-TOKEN\": this.$cookies.get(this.csrfCookieName),\n }as any,\n });\n this.uploader.onSuccessItem = (item: any, response: any) => {\n this.$log.debug(\"Document upload complete\");\n var updatedResource = new this[response.data.type](response.data);\n this.$rootScope.$broadcast(\"resetObjectChangedState\", updatedResource);\n this.documents = updatedResource.documents;\n this.paginationService.setData(this.documents);\n this.paginationService.setTotalItems(this.documents.length);\n\n new this.Document(_.last(this.documents)).textkernelDiff();\n\n if (this.resource) {\n // todo or skip line 140 ??\n this.resource.type = updatedResource.type;\n this.resource.documents = this.documents;\n this.resource.snapshot();\n }\n\n if (updatedResource.actions) {\n this.resource.actions = updatedResource.actions;\n } else {\n this.$rootScope.$broadcast(this.resource.type.toLowerCase() + \"_action_changed_\" + this.resource.id);\n }\n };\n this.uploader.onCompleteAll= () => {\n //$state.go('^.show', $scope.candidate.params());\n };\n this.uploader.onErrorItem = (item, response, status, headers) => {\n window.alert(this.$filter(\"translate\")(\"ERROR_WHILE_SAVING_NOTICE\"));\n window.rollbar.error(\"document upload failed\", { status: status, file_info: item.file, url: item.url });\n };\n\n this.uploader.filters.push({\n name: \"fileExtensionFilter\",\n fn: (item) => {\n return /\\/(pdf)$/.test(item.type);\n },\n });\n } else {\n this.uploader.headers = {\n \"X-CSRF-TOKEN\": this.$cookies.get(this.csrfCookieName),\n } as any;\n }\n };\n}","import DocumentsListCtrl from \"./documents-list.controller\";\nimport documentsListTemplate from \"./documents-list.template.html\";\n\nangular.module(\"documents.components\").component(\"documentsList\", {\n bindings: {\n resource: \"=\",\n documents: \"<\",\n documentsCount: \"=\",\n selectLabel: \"@\",\n cancel: \"=\",\n remove: \"=\",\n disableSearch: \"=\",\n chooseFileType: \"<\",\n },\n template: documentsListTemplate,\n controller: DocumentsListCtrl,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TDrivingLicence } from \"../driving_licences\";\n\nexport class DrivingLicence {\n private id: number;\n private name: string;\n\n static $inject = [];\n \n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.drivingLicences.query().then((response) => {\n return response.body.data.map((element) => {\n return new DrivingLicence(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { DrivingLicence } from \"./driving_licences.service\";\n\nangular\n .module(\"driving_licences\")\n .factory(\"DrivingLicencesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(DrivingLicence, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"DrivingLicencesFactory\", DrivingLicence);\n","import { IFilterService } from \"angular\";\n\nexport default class EmployeeShowDuplicatesModalCtrl {\n public employee: any;\n public duplicates: any[];\n public selectedCandidate: any;\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private resolve: any\n\n static $inject = [\"$filter\", \"$translate\", \"CandidatesFactory\"];\n\n constructor (\n private $filter: IFilterService,\n private $translate: angular.translate.ITranslateService,\n private Candidate: any \n ) {\n\n }\n\n public $onInit() {\n this.employee = this.resolve.employee;\n this.duplicates = this.resolve.duplicates;\n\n this.selectedCandidate = undefined;\n\n _.each(this.duplicates, (duplicate) => {\n duplicate.match = _.map(duplicate.highlight, (filterObj, filterKey) => {\n return { key: this.getAttrName(filterKey), value: _.flatten(filterObj) };\n });\n });\n };\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public connectToCandidate(candidate) {\n if(!candidate) { return }\n\n this.cancel();\n (this.Candidate)\n .$post(this.employee.$url(\"/transform.json\"), { candidate_id: candidate.id })\n .then(this.Candidate.transformResultHandlerOk)\n .catch(this.Candidate.transformResultHandlerError);\n };\n\n public createNewCandidate() {\n this.cancel();\n\n (this.Candidate)\n .$post(this.employee.$url(\"/transform.json\"))\n .then(this.Candidate.transformResultHandlerOk)\n .catch(this.Candidate.transformResultHandlerError);\n };\n \n public getAttrName(scopeDescriptor) {\n switch (scopeDescriptor) {\n case \"fullNameWithTitle.standard\":\n return \"DUPL_ATTR_NAME\";\n case \"workEmail\":\n return \"DUPL_ATTR_EMAIL_WORK\";\n case \"workPhone\":\n return \"DUPL_ATTR_PHONE_WORK\";\n case \"workMobilePhone\":\n return \"DUPL_ATTR_MOBILE_WORK\";\n case \"privateEmail\":\n return \"DUPL_ATTR_EMAIL_PRIVATE\";\n case \"privatePhone\":\n return \"DUPL_ATTR_PHONE_PRIVATE\";\n case \"privateMobilePhone\":\n return \"DUPL_ATTR_MOBILE_PRIVATE\";\n }\n };\n};\n","import EmployeeShowDuplicatesModalCtrl from \"./employees-show-duplicates-modal.controller\";\nimport employeesShowDuplicatesModalTemplate from \"./employees-show-duplicates-modal.template.html\";\n\nangular.module(\"employees.modals\").component(\"employeesShowDuplicates\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: employeesShowDuplicatesModalTemplate,\n controller: EmployeeShowDuplicatesModalCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class EmployeesContextMenuCtrl {\n public initialViewState: {\n name?: string\n };\n public createAsCandidate: (person: any) => void;\n\n static $inject = [\"PersonTransformer\"];\n\n constructor (\n private PersonTransformer: any\n ) {}\n\n public $onInit() {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n transitionOptions: StateTransitionsConfig.transitionOptions(this.initialViewState),\n });\n this.createAsCandidate = this.PersonTransformer.createAsCandidate;\n };\n};\n","import EmployeesContextMenuCtrl from \"./employees-context-menu.controller\";\nimport employeesContextMenuTemplate from \"./employees-context-menu.template.html\";\n\nangular.module(\"employees.components\").component(\"employeesContextMenu\", {\n bindings: {\n employee: \"<\",\n statePrefix: \"<\",\n showTransform: \"<\",\n options: \"<\",\n stateArgs: \"&\",\n initialViewState: \"<\",\n },\n template: employeesContextMenuTemplate,\n controller: EmployeesContextMenuCtrl,\n});\n","export default class EmployeesProjectListCtrl {\n public attributes: any;\n public advancedQuery: any;\n public advancedEmployeesProjectSearchOptions: any;\n public contextMenuOptions: any;\n public project: any;\n public lazyLoading: boolean;\n public activeRow: any;\n public query: string;\n public remote: boolean;\n public setData: () => (newParams: any, oldParams: any) => void;\n \n static $inject = [\n \"$state\",\n \"EmployeesFactory\",\n \"PrsmTableHelper\",\n \"makeCollectionProxy\",\n \"SavedSearchesFactory\"\n ];\n\n constructor (\n private $state: angular.ui.IStateService,\n private Employee: any,\n private PrsmTableHelper: any,\n private makeCollectionProxy: any,\n private SavedSearch: any,\n ) {}\n \n public $onInit() {\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Employee.defaultTableAttributes),\n [\"name\", \"company\", \"priority\", \"tags\", \"processStatus\", \"sales\", \"researcher\"],\n [\"name\", \"company\", \"processStatus\", \"sales\", \"researcher\"]\n );\n\n this.advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"company_name\", query: \"\" },\n });\n\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n this.advancedEmployeesProjectSearchOptions = {\n advancedQuery: this.advancedQuery,\n setData: this.updateEmployees,\n remote: true,\n };\n\n this.contextMenuOptions = {\n removeFromProject: (employee) => {\n employee.removeFromProject(this.project);\n },\n createInitiativeExpertProfile: (employee) => {\n this.$state.go(\".expert_profile.new\", {\n project_id: this.project.id,\n candidate_id: this.project.candidate.id,\n cpjoin_id: undefined,\n employee_id: employee.id,\n initiative_expert_profile: true,\n });\n },\n };\n\n // $scope.$watchCollection(\"project.employees\", function (nv, ov) {\n // this.activeRow = this.project.employees[0];\n // });\n\n this.updateActiveRow();\n this.updateEmployees();\n };\n\n public initSearchResults(employees) {\n this.project.employees = employees;\n this.lazyLoading = false;\n };\n\n public updateActiveRow() {\n this.activeRow = this.project.employees[0];\n };\n\n public updateEmployees(newParams?, oldParams?) {\n var query = (newParams && newParams.q) || this.query || \"\";\n var params = _.extend(this.project.params(), {\n candidate_id: this.project.candidate.id,\n advanced: JSON.stringify(newParams || this.advancedQuery.beforeStringify()),\n q: query.replace(/\\//g, \" \"),\n additional_pages: this.project.employeesCount / 20 + 1,\n });\n\n if (_.isUndefined(this.project.employees) || _.isArray(this.project.employees)) {\n this.lazyLoading = true;\n this.makeCollectionProxy(this.Employee.query.bind(this.Employee), params).then((result) => this.initSearchResults(result));\n } else {\n this.project.employees.search(params).then((result) => this.initSearchResults(result));\n }\n };\n};","import EmployeesProjectListCtrl from \"./employees-project-list.controller\";\nimport employeesProjectListTemplate from \"./employees-project-list.template.html\";\n\nangular.module(\"employees.components\").component(\"employeesProjectList\", {\n bindings: {\n project: \"=\",\n activeRow: \"=\",\n initialViewState: \"<\",\n },\n template: employeesProjectListTemplate,\n controller: EmployeesProjectListCtrl,\n});\n","import { IQService } from \"angular\";\n\nexport default class EmployeeSearchCtrl {\n public foundEmployees: any[];\n public loading: boolean;\n public cancelers: ng.IDeferred[] = [];\n public advancedEmployeeSearchOptions: {\n query: string,\n advancedQuery: any,\n setData: () => void,\n remote: string\n };\n public query: string;\n public advancedQuery: any;\n public remote: string;\n public setData: () => (data?: any) => void;\n\n static $inject = [\"$state\", \"$q\", \"EmployeesFactory\", \"Autocompletes\"];\n\n constructor(\n private $state: angular.ui.IStateService,\n private $q: IQService,\n private Employees: any,\n private Autocompletes: any,\n ) {\n this.foundEmployees = [];\n this.loading = false;\n this.cancelers = [];\n }\n\n public $onInit() {\n this.advancedQuery.resourceType = \"EmployeeSearch\";\n\n this.advancedEmployeeSearchOptions = {\n query: this.query,\n advancedQuery: this.advancedQuery,\n setData: this.setData(),\n remote: this.remote,\n };\n };\n\n public searchEmployees(viewValue) {\n if (viewValue.length) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(viewValue, \"employee_name\", _.last(this.cancelers)).then((results) => {\n this.foundEmployees = _.map(results, (result) => {\n switch (result.resource_type) {\n case \"employee\":\n result.name = result.employee.full_name;\n return _.extend(result, {\n resource_type: \"Manager\",\n });\n default:\n result.name = result.highlight[0];\n return _.extend(result, {\n resource_type: \"Query\",\n });\n }\n });\n this.loading = false;\n });\n } else {\n this.foundEmployees = [];\n }\n };\n\n public search(item: any, query: string) {\n if (item && item.id) {\n query = item.name;\n }\n\n _.invoke(this.cancelers, \"resolve\");\n\n this.advancedQuery.basicQuery = query;\n var params = this.advancedQuery.collectSearchParams({ employee_id: item ? item.id : undefined });\n\n if (!this.remote) {\n var route = \"root.employees\";\n if (item && item.id) {\n route = \"root.employees.show\";\n params.q = '\"' + query.replace(/\\//g, \" \") + '\"';\n }\n\n this.$state.go(route, params, { reload: true, inherit: false });\n } else {\n this.setData()(params);\n }\n };\n};","import EmployeeSearchCtrl from \"./employee-search.controller\";\nimport employeeSearchTemplate from \"./employee-search.template.html\";\n\nangular.module(\"employees.components\").component(\"employeeSearch\", {\n bindings: {\n savedSearches: \"=\",\n disableSavedSearch: \"@\",\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n },\n template: employeeSearchTemplate,\n controller: EmployeeSearchCtrl,\n});\n","export default class EmployeesAdvancedSearchCtrl {\n public advancedQueryCopy: any;\n public advancedQuery: any;\n public remote: string;\n public setData: () => (data: any) => void;\n public closing: () => void;\n\n static $inject = [\"$state\"];\n\n constructor( \n private $state: angular.ui.IStateService\n ) {}\n\n public $onInit() {\n this.advancedQueryCopy = angular.copy(this.advancedQuery);\n this.advancedQueryCopy.name = undefined;\n this.advancedQueryCopy.id = undefined;\n };\n\n public performAdvancedSearch() {\n if (!this.remote) {\n this.$state.go(\"root.employees\", this.advancedQueryCopy.collectSearchParams(), { reload: true, inherit: false });\n } else {\n _.extend(this.advancedQuery, this.advancedQueryCopy);\n this.setData()(this.advancedQueryCopy.collectSearchParams());\n this.closing();\n }\n };\n};","import EmployeesAdvancedSearchCtrl from \"./employees-advanced-search.controller\";\nimport employeesAdvancedSearchTemplate from \"./employees-advanced-search.template.html\";\n\nangular.module(\"employees.components\").component(\"employeesAdvancedSearch\", {\n bindings: {\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n closing: \"&\",\n },\n template: employeesAdvancedSearchTemplate,\n controller: EmployeesAdvancedSearchCtrl,\n});\n","import { IFilterService, ILogService, IQService } from \"angular\";\n\nexport default class EmployeeSelectCtrl {\n public foundEmployees: any[];\n public loading: boolean;\n public cancelers: ng.IDeferred[] = [];\n public params: any;\n public companyId: number;\n public projectId: number;\n public exclude: any;\n\n static $inject = [\"$rootScope\", \"$q\", \"$log\", \"$filter\", \"Autocompletes\", \"EmployeesFactory\"];\n\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $q: IQService,\n private $log: ILogService,\n private $filter: IFilterService,\n private Autocompletes: any,\n private Employee: any\n ) {\n this.foundEmployees = [];\n this.loading = false;\n this.cancelers = [];\n }\n\n public searchEmployees(viewValue) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n if (this.companyId) {\n this.params = [\n viewValue,\n \"employee_by_company\",\n _.last(this.cancelers),\n \"company\",\n { company_id: this.companyId },\n ];\n } else if (this.projectId) {\n this.params = [\n viewValue,\n \"employee_by_project\",\n _.last(this.cancelers),\n \"project\",\n { project_id: this.projectId },\n ];\n } else {\n this.params = [viewValue, \"employee_name\", _.last(this.cancelers)];\n }\n\n this.Autocompletes.autocomplete.apply(this, this.params).then((results) => {\n if (!results) {\n return;\n }\n\n results.splice(0, 1); // remove query string from results list\n\n this.foundEmployees = _.chain(results)\n .map((result) => {\n switch (result.resource_type) {\n case \"employee\":\n return _.extend(new this.Employee(result.employee), {\n resource_type: this.$filter(\"translate\")(\"MANAGER\"),\n });\n default:\n result.name = result.highlight[0];\n return _.extend(result, {\n resource_type: \"Query\",\n });\n }\n })\n .filter((obj) => {\n return this.exclude != obj.id;\n })\n .value();\n this.loading = false;\n });\n };\n\n public triggerProjectSelectBroadcast($item, $model) {\n this.$rootScope.$broadcast(\"projectChanged\", $item);\n };\n};","import EmployeeSelectCtrl from \"./employees-select.controller\";\nimport employeeSelectTemplate from \"./employee-select.template.html\";\n\nangular.module(\"employees.components\").component(\"employeeSelect\", {\n bindings: {\n model: \"=\",\n companyId: \"@\",\n projectId: \"<\",\n exclude: \"@\",\n required: \"@\",\n selectMultiple: \"=\",\n },\n template: employeeSelectTemplate,\n controller: EmployeeSelectCtrl,\n});\n","import AdvancedEmployeesSearchCtrl from \"./advanced-employees-search.controller\";\nimport advancedEmployeesSearchTemplate from \"./advanced-employees-search.template.html\";\n\nangular.module(\"employees.components\").component(\"advancedEmployeesSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n closing: \"&\",\n },\n template: advancedEmployeesSearchTemplate,\n controller: AdvancedEmployeesSearchCtrl,\n});\n","export default class AdvancedEmployeesSearchCtrl {\n public advancedQuery: {\n name: string | undefined,\n id: number | undefined,\n };\n public setData: () => () => void;\n public closing: () => () => void;\n\n constructor() {}\n\n public $onInit() {\n this.advancedQuery.name = undefined;\n this.advancedQuery.id = undefined;\n };\n\n public performAdvancedSearch() {\n this.setData();\n this.closing();\n };\n};","import { ITemplateCacheService } from \"angular\";\nimport priorityPopoverTemplate from \"../../../priorities/components/priority-popover/priority-popover.template.html\";\nimport { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class EmployeesTableBodyCtrl {\n public priorityPopoverTemplate: string;\n public createAsCandidate: any;\n public state: any;\n public projectStatuses: any;\n public startCallback: () => void;\n public draggingHelper: (event: DragEvent) => void;\n\n static $inject = [\n \"QuicklistsFactory\",\n \"EmployeesFactory\",\n \"CandidatesProjectsFactory\",\n \"PersonTransformer\",\n \"$templateCache\"\n ];\n\n constructor(\n private Quicklist: any,\n public Employee: any,\n private CandidatesProjects: any,\n private PersonTransformer: any,\n private $templateCache: ITemplateCacheService,\n ) {\n this.priorityPopoverTemplate = priorityPopoverTemplate;\n this.$templateCache.put(\"info-popover-employee\", \"\");\n this.createAsCandidate = this.PersonTransformer.createAsCandidate;\n }\n\n public $onInit() {\n angular.extend(this, {\n draggingHelper: this.Quicklist.draggingHelper,\n startCallback: this.Quicklist.startCallback,\n projectStatuses: this.CandidatesProjects.statuses,\n state: StateTransitionsConfig.state,\n });\n };\n};","import EmployeesTableBodyCtrl from \"./employees-table-body.controller\";\nimport employeesTableBodyTemplate from \"./employees-table-body.template.html\";\n\nangular.module(\"employees.components\").component(\"employeesTableBody\", {\n bindings: {\n employees: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n tableRowIdentifier: \"=\",\n contextMenuOptions: \"=\",\n initialViewState: \"<\",\n },\n template: employeesTableBodyTemplate,\n controller: EmployeesTableBodyCtrl,\n});\n","import employeesPriorityPopoverTemplate from \"../../../priorities/components/priority-popover/priority-popover.template.html\";\n\nexport default class EmployeesShowCtrl {\n public priorityPopoverTemplate: string;\n public projectAttributes: any;\n public activeProject: any;\n public employee: any;\n public deregActiveRowChanged: () => void;\n public deregActiveRowClosed: () => void;\n public deregActiveRowConnector: () => void;\n private initializeActiveRowConnector: (employee: any) => () => void;\n\n static $inject = [\n \"$rootScope\",\n \"makeCollectionProxy\",\n \"EmployeesFactory\",\n \"ProjectsFactory\",\n \"PrsmTableHelper\",\n \"DeckControllerMixin\"\n ];\n\n constructor (\n private $rootScope: IExtendedRootScopeService,\n private makeCollectionProxy: any,\n public Employee: any,\n private Project: any,\n private PrsmTableHelper: any,\n private DeckControllerMixin: any,\n ) {\n this.priorityPopoverTemplate = employeesPriorityPopoverTemplate;\n \n this.projectAttributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.Project.defaultTableAttributes),\n [\"id\", \"title\", \"projectManager\", \"kpis\", \"editableStatus\", \"priority\", \"createdAt\"],\n [\"id\", \"title\", \"editableStatus\", \"kpis\"]\n );\n \n this.deregActiveRowChanged = this.$rootScope.$on(\"activeRowChanged\", (event, newActiveRow) => {\n if (newActiveRow.resourceType == \"Project\") {\n this.activeProject = newActiveRow;\n }\n });\n this.deregActiveRowClosed = this.$rootScope.$on(\"activeRowClosed\", (event, activeRow) => {\n if (activeRow.resourceType == \"Project\") {\n this.activeProject = undefined;\n }\n });\n }\n\n public $onInit() {\n angular.extend(this, this.DeckControllerMixin);\n\n this.$rootScope.setPageTitle(this.employee.fullNameWithTitle);\n\n this.employee.tags = _.union(this.employee.tags, this.employee.computerSkills);\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.employee);\n };\n\n public $onDestroy() {\n this.deregActiveRowConnector();\n this.deregActiveRowChanged();\n this.deregActiveRowClosed();\n };\n}","import EmployeesShowCtrl from \"./employees-show.controller\";\nimport employeesShowViewTemplate from \"./employees-show-view.template.html\";\n\nangular.module(\"employees.views\").component(\"employeesShowView\", {\n bindings: {\n employee: \" void;\n public deregActiveRowConnector: () => void;\n private registerSaveHotkey: (callback: () => void) => void;\n private initializeActiveRowConnector: (employee: any) => () => void;\n private onStateChanged: (object: any, onChange?: any) => () => void;\n\n static $inject = [\n \"$rootScope\",\n \"$state\",\n \"$templateCache\",\n \"EditUtilMixin\",\n \"DeckControllerMixin\",\n \"$filter\"\n ];\n\n constructor (\n private $rootScope: IExtendedRootScopeService,\n private $state: angular.ui.IStateService,\n private $templateCache: ITemplateCacheService,\n private EditUtilMixin: any,\n private DeckControllerMixin: any,\n private $filter: IFilterService,\n ) {\n this.jobTitlePopover = employeesJobTitlePopover;\n this.$templateCache.put(this.jobTitlePopover, employeesJobTitlePopover);\n }\n\n public $onInit() {\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin);\n\n if (this.employee.id) {\n this.$rootScope.setPageTitle(this.employee.fullNameWithTitle);\n } else {\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"NEW_MANAGER\"));\n }\n\n this.onStateChanged(this.employee);\n\n this.employee.tags = _.union(this.employee.tags, this.employee.computerSkills);\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.employee);\n this.registerSaveHotkey(this.saveEmployee);\n };\n\n public save(route, params) {\n if (!this.saving) {\n this.saving = true;\n this.employee.save().then((savedEmployee) => {\n this.employee.snapshot();\n\n if (!this.employee.id) {\n this.$rootScope.$broadcast(\"addEmployee\", savedEmployee);\n }\n\n this.$state.go(route || \"^.show\", params || savedEmployee.params());\n }, this.onSaveError.bind(this));\n }\n }\n\n public saveEmployee(route?: any, params?: any) {\n if (!this.contactForm.$valid) {\n window.alert(this.$filter(\"translate\")(\"WRONG_CONTACT_DATA_NOTICE\"));\n } else {\n if (this.employee.$hasDuplicates) {\n this.employee.confirm(this.$filter(\"translate\")(\"DUPLICATES_FOUND_MANAGER_NOTICE\")).then((res) => {\n if (res) {\n this.save(route, params);\n } else {\n return;\n }\n });\n } else {\n this.save(route, params);\n }\n }\n };\n\n public $onDestroy() {\n this.deregActiveRowConnector();\n };\n};","import EmployeesEditCtrl from \"./employees-edit.controller\";\nimport employeesEditViewTemplate from \"./employees-edit-view.template.html\";\n\nangular.module(\"employees.views\").component(\"employeesEditView\", {\n bindings: {\n employee: \" {\n this.employees = employees;\n })\n .then(() => {\n this.employeesLazyLoading = false;\n });\n };\n};","import EmployeesIndexCtrl from \"./employees-index.controller\";\nimport employeesIndexViewTemplate from \"./employees-index-view.template.html\";\n\nangular.module(\"employees.views\").component(\"employeesIndexView\", {\n bindings: {\n query: \"<\",\n advancedQuery: \"<\",\n savedSearches: \" void };\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n \n constructor() {}\n\n public extend(resolve) {\n this.managers = resolve.managers;\n this.expertProfile = resolve.expertProfile;\n }\n\n public $onInit () {\n this.extend(this.resolve);\n\n this.managerContactEntries = _.each(this.managers, (manager) => {\n manager.$hasContactAddress = !_.isEmpty(manager.workEmail || manager.privateEmail);\n });\n\n this.availableManagerContactEntries = _.where(this.managerContactEntries, { $hasContactAddress: true });\n\n this.sendoutEmail = {\n employees: this.managerContactEntries,\n callback: null,\n };\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public save () {\n this.sendoutEmail.callback = this.expertProfile.createMessage(\"create_sendout_email\", this.sendoutEmail);\n this.modalInstance.close(this.sendoutEmail);\n };\n}","\nimport workExperiencesDescriptionPopoverTemplate from \"./popover/work-experiences-description-popover.template.html\";\nimport skillsDescriptionPopoverTemplate from \"./popover/skills-description-popover.template.html\";\nimport coreCompetenciesDescriptionPopoverTemplate from \"./popover/core-competencies-description-popover.template.html\";\nimport educationDescriptionPopoverTemplate from \"./popover/education-description-popover.template.html\";\nimport { IStateService } from 'angular-ui-router'\nimport { ChooseLocalesModalOptions } from \"../../../modals/modals/choose-locales-modal/choose-locales-modal.controller\";\n\nexport default class ExpertProfilesEditCtrl {\n\n private unregisterCopyDropdown: () => void;\n private deregActiveRowConnector: () => void;\n private unregisterUploadedDocs: () => void;\n private workExperiencesDescriptionPopoverTemplate: string;\n private skillsDescriptionPopoverTemplate: string;\n private coreCompetenciesDescriptionPopoverTemplate: string;\n private educationDescriptionPopoverTemplate: string;\n public expertProfile: any;\n public documents: any[];\n public document: any;\n public cp: any;\n private saving: boolean;\n private force_validation: boolean;\n private expertProfileForm: ng.IFormController;\n private onSaveError: () => void;\n private initiativeExpertProfile: boolean;\n private expertProfiles: any[];\n private candidate: any;\n private stateParams: any;\n private initializeActiveRowConnector: (profile: any) => () => void;\n private registerSaveHotkey: (callback: () => void) => void;\n private onStateChanged: (profile: any, callback: () => void) => void;\n private doc: any;\n\n static $inject = [\"$rootScope\",\n \"$state\",\n \"$log\",\n \"$filter\",\n \"$q\",\n \"$templateCache\",\n \"ExpertProfileFactory\",\n \"EditUtilMixin\",\n \"ModalUtilMixin\",\n \"DeckControllerMixin\",\n \"poller\"];\n\n constructor (\n private $rootScope: IExtendedRootScopeService,\n private $state: IStateService,\n private $log: ng.ILogService,\n private $filter: ng.IFilterService,\n private $q: ng.IQService,\n private $templateCache: ng.ITemplateCacheService,\n private ExpertProfile: any,\n private EditUtilMixin: any,\n private ModalUtilMixin: any,\n private DeckControllerMixin: any,\n private poller: any\n ) {\n this.reloadExpertProfile = this.reloadExpertProfile.bind(this);\n\n this.workExperiencesDescriptionPopoverTemplate = \"work-experiences-description-popover\";\n this.skillsDescriptionPopoverTemplate = \"skills-description-popover\";\n this.coreCompetenciesDescriptionPopoverTemplate = \"core-competencies-description-popover\";\n this.educationDescriptionPopoverTemplate = \"education-description-popover\";\n\n $templateCache.put(this.workExperiencesDescriptionPopoverTemplate, workExperiencesDescriptionPopoverTemplate);\n $templateCache.put(this.skillsDescriptionPopoverTemplate, skillsDescriptionPopoverTemplate);\n $templateCache.put(this.coreCompetenciesDescriptionPopoverTemplate, coreCompetenciesDescriptionPopoverTemplate);\n $templateCache.put(this.educationDescriptionPopoverTemplate, educationDescriptionPopoverTemplate);\n\n this.removeDocument = this.removeDocument.bind(this);\n }\n\n public addDocument (doc) {\n this.expertProfile.attachedDocuments.push(doc);\n\n _.each(this.expertProfile.attachedDocuments, (doc, index) => {\n doc.sort = index;\n });\n\n this.documents = _.reject(this.documents, { id: doc.id });\n this.document = undefined;\n };\n\n public removeDocument (doc) {\n // adds the removed document to the select box\n this.documents.unshift(doc);\n };\n\n public setCPjoinID() {\n if (this.cp) {\n this.expertProfile.candidates_projects_id = this.cp.id;\n }\n }\n\n public reloadExpertProfile() {\n this.$state.go(\"^.edit\", { expert_profile_id: this.expertProfile.id });\n }\n\n public saveExpertProfile (callback?: (newExpertProfile: any) => void, reload?: any) {\n if (this.saving) {\n return false;\n }\n\n reload = _.isUndefined(reload) ? true : reload;\n\n if (this.expertProfileForm.$invalid) {\n window.alert(this.$filter(\"translate\")(\"FILL_MANDATORY_FIELDS_THANKS_NOTICE\"));\n this.force_validation = true;\n return;\n }\n\n this.setCPjoinID();\n this.saving = true;\n\n if (!this.expertProfile.candidates_projects_id) {\n window.rollbar.error(\"cpjoin ID not set\", {\n scope: _.pick(this, [\"cp\", \"candidate\", \"expertProfile\", \"initiativeExpertProfile\"]),\n });\n }\n\n var expertProfileOptions = {};\n\n var deferred = this.$q.defer();\n deferred.resolve();\n var promise = deferred.promise;\n\n if (!this.expertProfile.isInitiativeProfile() && this.expertProfile.project.sendoutLanguage) {\n expertProfileOptions = {\n locale: this.expertProfile.project.sendoutLanguage.slug,\n };\n } else {\n const options: ChooseLocalesModalOptions = {\n selectSubsidiary: false\n };\n promise = this.ModalUtilMixin.chooseLocalesModal(options, \"LANGUAGE_FOR_SENDOUT\").then( (params) => {\n expertProfileOptions = {\n locale: params.lang,\n };\n });\n }\n\n promise.then( () => {\n this.expertProfile.options = expertProfileOptions;\n\n this.expertProfile.save().then( (newExpertProfile) => {\n _.extendOwn(this.expertProfile, newExpertProfile);\n this.setCPjoinID();\n\n this.expertProfile.snapshot();\n\n if (!this.expertProfile.document && !this.expertProfile.generating && this.expertProfile.failed) {\n this.onSaveError.bind(this)();\n } else {\n var pollingService = this.poller.get(this.expertProfile.$url() + \".json\", { catchError: true, delay: 3000 });\n\n pollingService.promise.then(null, null, (response) => {\n if (response.status === 200) {\n var expertProfile = new this.ExpertProfile(response.data.data);\n _.extend(this.expertProfile, _.pick(expertProfile, \"status\", \"failed\", \"generating\"));\n if (expertProfile.failed) {\n // Error while generating\n pollingService.remove();\n\n window.alert(this.$filter(\"translate\")(\"ERROR_WHILE_CREATING_PROFILE\"));\n this.expertProfile.generating = false;\n this.saving = false;\n } else {\n if (expertProfile.document && !expertProfile.generating) {\n pollingService.remove();\n _.extend(this.expertProfile, expertProfile);\n this.expertProfile.snapshot();\n\n this.$log.debug(\"successfully saved expert profile\");\n if (reload) {\n this.reloadExpertProfile();\n }\n\n this.saving = false;\n\n if (callback) {\n callback(newExpertProfile);\n }\n }\n }\n } else {\n pollingService.remove();\n }\n });\n }\n }, this.onSaveError.bind(this));\n });\n };\n\n public openPreview () {\n const openInNewTab = (ep?: any) => {\n const win = ep\n ? window.open(\"/expert_profile/\" + ep.id, \"_blank\")\n : window.open(\"/expert_profile/\" + this.expertProfile.id, \"_blank\");\n win?.focus();\n };\n\n if (this.previewEnabled()) {\n openInNewTab(this.expertProfile);\n } else {\n window.alert(this.$filter(\"translate\")(\"SAVE_EXPERT_PROFILE_FOR_PREVIEW_NOTICE\"));\n }\n };\n\n public previewEnabled () {\n return this.expertProfile.id && !this.expertProfile.unsnappedChanges() && this.expertProfile.document;\n };\n\n public getEcp() {\n return this.expertProfile.employee ? this.expertProfile.employee.employeesCandidatesProject : undefined;\n }\n\n public needsResearcher() {\n const ecp = this.getEcp();\n return (\n (this.cp && !ecp && !this.cp.researcher) || // regular application\n (this.initiativeExpertProfile && !ecp) || // new initiative application\n (this.initiativeExpertProfile && ecp && !ecp.researcher)\n ); // saved initiative application\n }\n\n public selectPeopleConsultant(entry) {\n entry.editResearcher().then( (args) => {\n if (args) {\n this.saveExpertProfile( (newExpertProfile) => {\n this.sendExpertProfile();\n }, false);\n } else {\n this.reloadExpertProfile();\n }\n });\n }\n\n public sendExpertProfile () {\n if (this.saving) {\n return false;\n }\n\n var error_code;\n\n if (this.needsResearcher()) {\n error_code = 1;\n }\n if (this.needsResearcher() && this.initiativeExpertProfile && !this.getEcp()) {\n error_code = 2;\n } // new initiative application\n if (this.expertProfile.needsCandidatesAgreement()) {\n error_code = 0;\n }\n\n var entry;\n switch (error_code) {\n case 0:\n // needs agreement\n this.expertProfile.confirm(this.$filter(\"translate\")(\"NO_CANDIDATES_AGREEMENT_NOTICE\")).then( (res) => {\n if (res && this.cp) {\n this.cp.sendCandidatesAgreementModal();\n }\n });\n break;\n case 1:\n // researcher is mandatory\n entry = this.cp;\n if (this.initiativeExpertProfile && this.expertProfile.employee) {\n entry = this.expertProfile.project;\n entry.editSales( (result) => {\n if (result) {\n this.selectPeopleConsultant(this.expertProfile.employee);\n } else {\n this.reloadExpertProfile();\n }\n });\n } else {\n this.selectPeopleConsultant(entry);\n }\n break;\n case 2:\n this.saveExpertProfile( (newExpertProfile) => {\n this.sendExpertProfile();\n }, false);\n break;\n default:\n // save and send expert profile\n const callback = (newExpertProfile?: any) => {\n if (this.initiativeExpertProfile) {\n this.expertProfile.openInitiativeSendoutModal().then(this.reloadExpertProfile);\n } else {\n this.expertProfile.openLonglistSendoutModal(this.cp).then(this.reloadExpertProfile);\n }\n }\n\n if (this.expertProfile.unsnappedChanges()) {\n this.saveExpertProfile(callback);\n } else {\n callback();\n }\n\n }\n };\n\n public copyExpertProfileInfos ($item) {\n if (!$item.name) {\n this.ExpertProfile.handleCorruptedProfile(this.expertProfiles, $item);\n }\n if (window.confirm(this.$filter(\"translate\")(\"CONFIRM_USE_EXISTING_INFORMATION\", { name: $item.name() }))) {\n $item.copyTo(this.expertProfile);\n }\n };\n\n public initializeExpertProfileCopyDropdown() {\n this.expertProfiles = _.chain(this.candidate.candidatesProjects)\n .reject( (cp) => {\n return cp.id == this.cp.id;\n })\n .map( (cp) => {\n var ep = cp.expertProfile;\n if (ep) {\n ep.projectTitle = this.expertProfile.project.title;\n }\n return ep;\n })\n .compact()\n .value();\n\n this.expertProfiles = _.chain(this.candidate.expertProfiles)\n .union(this.expertProfiles)\n .uniq(\"id\")\n .compact()\n .value();\n }\n\n public $onInit () {\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin, {\n initiativeExpertProfile: this.expertProfile.isInitiativeProfile(),\n });\n\n if (_.isArray(this.cp)) {\n window.rollbar.error(\"CPJOIN ID duplication error\", this.stateParams);\n this.stateParams.cpjoin_id = _.first(this.stateParams.cpjoin_id);\n this.$state.go(this.$state.current, this.stateParams, { reload: true });\n return;\n }\n\n if (this.cp) {\n this.cp.expertProfile = this.expertProfile;\n }\n\n if (!this.expertProfile.isNew()) {\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"EDIT_EXPERT_PROFILE\"));\n this.$state.go(\"^.edit\", { expert_profile_id: this.expertProfile.id }, { location: \"replace\" });\n } else {\n if (this.expertProfile.project) {\n this.expertProfile.jobTitle = this.expertProfile.project.title;\n }\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"CREATE_EXPERT_PROFILE\"));\n }\n\n this.documents = _.reject(\n _.filter(this.candidate.documents, (candDoc) => {\n return candDoc.isRelevantForExpertProfile();\n }),\n (doc) => {\n return _.chain(this.expertProfile.attachedDocuments).pluck(\"id\").contains(doc.id).value();\n }\n );\n\n _.each(this.expertProfile.attachedDocuments, (doc, index) => {\n doc.sort = index;\n });\n\n this.unregisterCopyDropdown = this.$rootScope.$on(\"CandidatesProjectsLoadingFinished\", this.initializeExpertProfileCopyDropdown);\n this.initializeExpertProfileCopyDropdown();\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.cp || this.expertProfile);\n this.registerSaveHotkey(this.saveExpertProfile);\n\n // needs update after init trusted documents urls\n this.unregisterUploadedDocs = this.$rootScope.$on(\"candidateDocumentsChanged\", () => {\n this.expertProfile.snapshot();\n });\n\n this.onStateChanged(this.expertProfile, () => {\n this.unregisterUploadedDocs();\n this.unregisterCopyDropdown();\n });\n };\n\n public $onDestroy () {\n this.deregActiveRowConnector();\n this.unregisterUploadedDocs();\n this.unregisterCopyDropdown();\n };\n\n}\n","import ExpertProfilesEditCtrl from \"./edit.controller\";\nimport editTemplate from \"./edit.template.html\";\n\nangular.module(\"expert_profiles.views\").component(\"expertProfilesEdit\", {\n bindings: {\n candidate: \") {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.functionalAreas.query().then((response) => {\n return response.body.data.map((element) => {\n return new FunctionalArea(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { FunctionalArea } from \"./functional_areas.service\";\n\nangular\n .module(\"functional_areas\")\n .factory(\"FunctionalAreasSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(FunctionalArea, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"FunctionalAreasFactory\", FunctionalArea);\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Graduation } from \"./graduations.service\";\n\nangular\n .module(\"graduations\")\n .factory(\"GraduationsSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Graduation, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"GraduationsFactory\", Graduation);\n","export default class HighschoolSelectCtrl {\n private cancelers: ng.IDeferred[] = [];\n private foundHighschools: any[] = [];\n\n static $inject = [\"$q\", \"Autocompletes\",];\n\n constructor (private $q: ng.IQService, private Autocompletes: any) {}\n\n public searchHighschools (viewValue) {\n if (viewValue.length) {\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(viewValue, \"highschools\", _.last(this.cancelers)).then( (results) => {\n this.foundHighschools = _.chain(results)\n .filter({ resource_type: \"tag\" })\n .map( (result) => {\n return _.extend(result, {\n resource_type: \"Hochschule\",\n });\n })\n .uniq( (resource) => {\n return resource.tag.id;\n })\n .value();\n });\n } else {\n this.foundHighschools = [];\n }\n };\n}","import HighschoolSelectCtrl from \"./highschools-select.controller\";\nimport highschoolSelectTemplate from \"./highschool-select.template.html\";\n\nangular.module(\"highschools.components\").component(\"highschoolSelect\", {\n bindings: {\n ngModel: \"=\",\n },\n controller: HighschoolSelectCtrl,\n template: highschoolSelectTemplate,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { THighschool } from \"../highschools\";\n\nexport class Highschool {\n private id: number;\n private name: string;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.highschools.query().then((response) => {\n return response.body.data.map((element) => {\n return new Highschool(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Highschool } from \"./highschools.factory\";\n\nangular\n .module(\"highschools\")\n .factory(\"HighschoolsSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Highschool, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"HighschoolsFactory\", Highschool);\n","export default class InvoicesListCtrl {\n private attributes: any;\n private invoices: any[];\n private project: any;\n private lazyLoading: boolean;\n private advancedQuery: any;\n private preload: boolean;\n\n static $inject = [\"SavedSearchesFactory\", \"makeCollectionProxy\", \"InvoicesFactory\",];\n\n constructor (private SavedSearch: any, private makeCollectionProxy: any, private Invoice: any) {}\n\n public $onInit () {\n this.attributes = angular.copy(this.Invoice.defaultTableAttributes);\n this.invoices = this.project.invoices;\n\n if (this.preload) {\n this.advancedQuery = new this.SavedSearch();\n this.updateInvoices(this.advancedQuery.collectSearchParams());\n };\n };\n\n private initSearchResults (invoices) {\n this.invoices = invoices;\n this.lazyLoading = false;\n };\n\n private updateInvoices (params) {\n this.lazyLoading = true;\n\n var params = _.extend(this.project.params(), {\n advanced: JSON.stringify(this.advancedQuery),\n additional_pages: Math.min(this.project.invoicesCount / 20 + 1, 3),\n });\n\n this.makeCollectionProxy(_.partial(this.Invoice.query.bind(this.Invoice), _, this.project.params()), params).then(\n this.initSearchResults.bind(this),\n );\n };\n}","import InvoicesListCtrl from \"./invoices-list.controller\";\nimport invoicesListTemplate from \"./invoices-list.template.html\";\n\nangular.module(\"invoices.components\").component(\"invoicesList\", {\n bindings: {\n project: \"=\",\n preload: \"@\",\n },\n template: invoicesListTemplate,\n controller: InvoicesListCtrl,\n});\n","import InvoicesTableBodyControllerCtrl from \"./invoices-table-body.controller\";\nimport invoicesTableBodyTemplate from \"./invoices-table-body.template.html\";\n\nangular.module(\"invoices.components\").component(\"invoicesTableBody\", {\n bindings: {\n invoices: \"=data\",\n attributes: \"=\",\n activeRow: \"<\",\n context: \"=\",\n statePrefix: \"@\",\n tableRowIdentifier: \"=\",\n },\n template: invoicesTableBodyTemplate,\n controller: InvoicesTableBodyControllerCtrl,\n});\n","export default class InvoicesTableBodyControllerCtrl {\n\n constructor() {}\n}\n","import { Money } from \"../../../directives/money/services/money.service\";\n\nexport default class InvoicesFormCtrl {\n private project: any;\n private invoices: any[];\n private preload: boolean;\n private advancedQuery: any;\n private lazyLoading: boolean;\n \n static $inject = [\"SavedSearchesFactory\", \"makeCollectionProxy\", \"InvoicesFactory\",];\n\n constructor (private SavedSearch: any, private makeCollectionProxy: any, private Invoice: any) {}\n\n public $onInit () {\n _.each(this.project.invoices, (invoice) => {\n invoice.invoiceRecipient = invoice.invoiceRecipient || this.project.invoiceRecipient;\n });\n this.invoices = this.project.invoices;\n\n if (this.preload) {\n this.advancedQuery = new this.SavedSearch();\n this.initSearchResults = this.initSearchResults.bind(this);\n this.updateInvoices(this.advancedQuery.collectSearchParams());\n }\n };\n\n private initSearchResults (invoices) {\n this.project.invoices = invoices;\n this.lazyLoading = false;\n\n if (this.project.invoices && this.project.invoices.length === 0) {\n this.addInvoice();\n this.project.snapshot();\n }\n };\n\n private updateInvoices (params) {\n this.lazyLoading = true;\n\n var params = _.extend(this.project.params(), {\n advanced: JSON.stringify(this.advancedQuery),\n additional_pages: Math.min(this.project.invoicesCount / 20 + 1, 3),\n });\n\n this.makeCollectionProxy(_.partial(this.Invoice.query.bind(this.Invoice), _, this.project.params()), params).then(\n this.initSearchResults.bind(this),\n );\n };\n\n public addInvoice () {\n var invoice = new this.Invoice({\n value: new Money({ inCents: false }),\n invoiceRecipient: this.project.invoiceRecipient,\n });\n this.project.invoices.push(invoice);\n };\n\n public deleteInvoice (index) {\n this.project.invoices.splice(index, 1);\n };\n}","import InvoicesFormCtrl from \"./invoices-form.controller\";\nimport invoicesFormTemplate from \"./invoices-form.template.html\";\n\nangular.module(\"invoices.components\").component(\"invoicesForm\", {\n bindings: {\n project: \"=\",\n preload: \"@\",\n },\n template: invoicesFormTemplate,\n controller: InvoicesFormCtrl,\n});\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { JobCategory } from \"./job_categories.service\";\n\nangular\n .module(\"jobCategories\")\n .factory(\"JobCategoriesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(JobCategory, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"JobCategoriesFactory\", JobCategory);\n","const jobOffersTableBodyTemplate = require(\"./job-offers-table-body.template.html\");\nimport JobOffersTableBodyControllerCtrl from \"./job-offers-table-body.controller\";\n//= require ../components.module.js\n\nangular.module(\"job_offers.components\").component(\"jobOffersTableBody\", {\n bindings: {\n jobOffers: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n },\n template: jobOffersTableBodyTemplate,\n controller: JobOffersTableBodyControllerCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\nexport default class JobOffersTableBodyControllerCtrl {\n public $onInit() {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n });\n }\n}\n","import jobOfferContextMenuTemplate from \"./job-offer-context-menu.template.html\";\nimport JobOffersContextMenuCtrl from \"./job-offers-context-menu.controller\";\n//= require ../components.module.js\n\nangular.module(\"job_offers.components\").component(\"jobOffersContextMenu\", {\n bindings: {\n jobOffer: \"=\",\n statePrefix: \"=\",\n },\n template: jobOfferContextMenuTemplate,\n controller: JobOffersContextMenuCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport default class JobOffersContextMenuCtrl {\n public $onInit() {\n angular.extend(this, {\n state: StateTransitionsConfig.state,\n });\n }\n}\n","import { IFilterService } from \"angular\";\n\nexport default class JobOffersCtrl {\n private attributes: any;\n static $inject = [\"$filter\"];\n\n constructor(private $filter: IFilterService) {}\n\n public $onInit() {\n this.attributes = {\n name: {\n // @ts-ignore\n title: this.$filter(\"translate\")(\"NAME\"),\n show: true,\n class: \"title\",\n },\n responsibleUser: {\n // @ts-ignore\n title: this.$filter(\"translate\")(\"RESPONSIBLE_USER_TOKEN\"),\n show: false,\n class: \"responsible\",\n },\n };\n }\n}\n","//= require ../components.module.js\n\nimport JobOffersCtrl from \"./job-offers.controller\";\nimport jobOffersTemplate from \"./job-offers.template.html\";\n\nangular.module(\"job_offers.components\").component(\"jobOffers\", {\n bindings: {\n jobOffers: \"=\",\n },\n template: jobOffersTemplate,\n controller: JobOffersCtrl,\n});\n","export const IDEAL_BOOLEAN_VALUES = [\n { name: \"YES\", id: true },\n { name: \"NO\", id: false },\n];\n","export const RESPONSE_TYPES = [\n { name: 'BOOLEAN', id: 'boolean'},\n { name: 'NUMERIC', id: 'numeric'},\n];\n","//= require ../components.module.js\n\nimport CustomRequirementCtrl from \"./custom-requirement.controller\";\nimport customRequirementTemplate from \"./custom-requirement.template.html\";\n\nangular.module(\"job_offers.components\").component(\"customRequirement\", {\n bindings: {\n customRequirement: \"<\",\n index: \"<\",\n onRemove: \"&\",\n },\n template: customRequirementTemplate,\n controller: CustomRequirementCtrl,\n});\n","import { IDEAL_BOOLEAN_VALUES } from \"../../values/ideal-boolean-values.constant\";\nimport { RESPONSE_TYPES } from \"../../../custom_screening_questions/response_types.constant\";\nimport CustomRequirement from \"../../services/custom-requirement.factory\";\n\nexport default class CustomRequirementCtrl {\n public customRequirement: CustomRequirement;\n\n constructor() {\n angular.extend(this, {\n customRequirementResponseTypes: RESPONSE_TYPES,\n idealBooleanValues: IDEAL_BOOLEAN_VALUES,\n });\n }\n\n public $onInit() {\n const RESPONSE_TYPE = this.customRequirement?.responseType || \"boolean\";\n this.customRequirement.responseType = RESPONSE_TYPES.find((r) => r.id === RESPONSE_TYPE);\n const IDEAL_BOOLEAN_VALUE = this?.customRequirement.idealBooleanValue ?? true;\n this.customRequirement.idealBooleanValue = IDEAL_BOOLEAN_VALUES.find((r) => r.id == IDEAL_BOOLEAN_VALUE);\n }\n}\n","//= require ../components.module.ts\n\nimport LanguageProficiencyQuestionCtrl from \"./language-proficiency-question.controller\";\nimport languageProficiencyTemplate from \"./language-proficiency-question.template.html\";\n\nangular.module(\"job_offers.components\").component(\"languageProficiencyQuestion\", {\n bindings: {\n languageProficiencyQuestion: \"<\",\n euLanguages: \"<\",\n index: \"<\",\n onRemove: \"&\",\n },\n template: languageProficiencyTemplate,\n controller: LanguageProficiencyQuestionCtrl,\n});\n","import { Language } from \"../../../languages/services/languages.service\";\n\nexport default class LanguageProficiencyQuestionCtrl {\n private languageProficiencyQuestion: any;\n private idealProficiencyLevels: any;\n private euLanguages: any;\n\n constructor() {}\n\n public $onInit() {\n this.idealProficiencyLevels = Language.levels;\n\n if (this.languageProficiencyQuestion.idealProficiencyLevel) {\n this.languageProficiencyQuestion.idealProficiencyLevel = this.idealProficiencyLevels.find(\n (l) => l.id === this.languageProficiencyQuestion.idealProficiencyLevel?.id\n );\n }\n }\n}\n","import { Language } from \"../../languages/services/languages.service\";\n\nexport default class LanguageProficiencyQuestion {\n public idealProficiencyLevel: { name: string; id: number };\n public language: Language | null;\n\n constructor(idealProficiencyLevel?: { name: string; id: number }, language?: Language) {\n this.idealProficiencyLevel = idealProficiencyLevel || Language.levels[0];\n\n if (language) {\n this.language = language;\n } else {\n this.initializeLanguage();\n }\n }\n\n private async initializeLanguage(): Promise {\n try {\n const languages = await Language.getAll();\n this.language = languages.find((lang) => lang.slug === \"de\") || null;\n } catch (error) {\n console.error(\"Error fetching languages:\", error);\n this.language = null;\n }\n }\n}\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\nimport _ from \"underscore\";\n\nimport { TCustomRequirement } from \"./custom-requirement\";\n\nexport default class CustomRequirement {\n public responseType?: string | { name: string; id: string } | undefined;\n public idealBooleanValue?: boolean | { name: string; id: boolean } | undefined;\n public idealNumericValue?: number;\n public customScreeningQuestion?: string;\n public customScreeningQuestionDe?: string;\n public customScreeningQuestionEn?: string;\n public idealAnswerRequired?: boolean;\n public id?: number;\n\n constructor(customRequirement?: Partial) {\n if (customRequirement) Object.assign(this, deepMapKeys>(customRequirement, camelCase));\n }\n}\n","import LanguageProficiencyQuestion from \"../../services/language-proficiency-question.factory\";\nimport CustomRequirement from \"../../services/custom-requirement.factory\";\n\nexport default class PreliminaryQuestionsNavbarCtrl {\n static $inject = [\"$filter\"];\n private jobOffer: any;\n\n constructor() {}\n\n public $onInit() {}\n\n public buildJobFunctionExperienceQuestion() {\n if (!this.jobOffer.jobFunctionExperienceQuestion) {\n this.jobOffer.jobFunctionExperienceQuestion = {};\n }\n }\n\n public addLanguageProficiencyQuestion() {\n this.jobOffer.languageProficiencyQuestions.push(new LanguageProficiencyQuestion());\n }\n\n public buildWorkAuthorization() {\n if (!this.jobOffer.workPermitQuestion) {\n this.jobOffer.workPermitQuestion = {};\n }\n }\n\n public buildIndustryExperienceQuestion() {\n if (!this.jobOffer.industryExperienceQuestion) {\n this.jobOffer.industryExperienceQuestion = {};\n }\n }\n\n public addCustomRequirement() {\n this.jobOffer.customRequirements.push(new CustomRequirement());\n }\n}\n","//= require ../components.module.js\n\nimport PreliminaryQuestionsNavbarCtrl from \"./preliminary-questions-navbar.controller\";\nimport preliminaryQuestionsNavbarTemplate from \"./preliminary-questions-navbar.template.html\";\n\nangular.module(\"job_offers.components\").component(\"preliminaryQuestionsNavbar\", {\n bindings: {\n jobOffer: \"=\",\n },\n template: preliminaryQuestionsNavbarTemplate,\n controller: PreliminaryQuestionsNavbarCtrl,\n});\n","export default class JobOffersShowCtrl {\n public jobOffer: any;\n\n static $inject = [\"JobOfferFactory\"];\n\n constructor(private JobOffer: any) {}\n\n public $onInit() {\n if (this.jobOffer.homepageCountryCode.key) {\n this.jobOffer.homepageCountryCode = _.findWhere(this.JobOffer.COUNTRY_CODES, {\n key: this.jobOffer.homepageCountryCode.key,\n });\n }\n }\n\n public noPreliminaryQuestions() {\n return (\n !this.jobOffer.jobFunctionExperienceQuestion?.id &&\n !this.jobOffer.industryExperienceQuestion?.id &&\n this.jobOffer.languageProficiencyQuestions.length == 0 &&\n !this.jobOffer.workPermitQuestion?.id &&\n this.jobOffer.customRequirements.length == 0\n );\n }\n}\n","import JobOffersShowCtrl from \"./show.controller\";\nimport jobShowTemplate from \"./show.template.html\";\n\nangular.module(\"job_offers.views\").component(\"jobOffersShow\", {\n bindings: {\n jobOffer: \" void;\n public onStateChanged: (jobOffer: any) => void;\n public registerSaveHotkey: (jobOffer: any) => void;\n\n static $inject = [\n \"$rootScope\",\n \"$state\",\n \"$log\",\n \"$filter\",\n \"EditUtilMixin\",\n \"JobOfferFactory\",\n \"entourageSubsidiaries\",\n \"$http\",\n ];\n\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $state: angular.ui.IStateService,\n private $log: ILogService,\n private $filter: IFilterService,\n private EditUtilMixin: any,\n private JobOffer: any,\n public entourageSubsidiaries: any,\n private $http: angular.IHttpService\n ) {\n angular.extend(this, EditUtilMixin, {\n currencies: JobOffer.CURRENCIES,\n countryCodes: JobOffer.COUNTRY_CODES,\n idealBooleanValues: IDEAL_BOOLEAN_VALUES,\n });\n }\n\n public $onInit() {\n angular.extend(this, {\n countries: _.filter(this.countries, (country) => {\n return country.experteerId;\n }),\n euLanguages: _.filter(this.languages, (language) => {\n return EU_LANGUAGE_SLUGS.includes(language.slug);\n }),\n languages: _.filter(this.languages, (language) => {\n return language.slug == \"de\" || language.slug == \"en\";\n }),\n });\n this.jobOffer.language = this.languages[0];\n this.oldJobOfferLanguage = this.jobOffer.language;\n\n this.onStateChanged(this.jobOffer);\n this.registerSaveHotkey(this.saveJobOffer);\n }\n\n public executeSave(route, params) {\n this.jobOffer.save().then(\n (jobOffer) => {\n this.$log.debug(\"jobOffer successfully saved\");\n\n this.$rootScope.$broadcast(\"updatedJobOffer\", jobOffer);\n\n this.jobOffer.snapshot();\n this.$state.go(route || \"^.show\", params || jobOffer.params());\n },\n (error) => {\n this.onSaveError.bind(this)(error);\n this.forceValidation = true;\n }\n );\n }\n\n public saveJobOffer(route, params) {\n if (this.saving) {\n return;\n }\n\n if (this.jobOfferForm.$invalid) {\n window.alert(this.$filter(\"translate\")(\"COMPLETE_REQUIERED_FIELDS_NOTICE\"));\n this.forceValidation = true;\n return;\n }\n\n this.saving = true;\n this.forceValidation = false;\n\n this.savePreliminaryQuestions();\n\n if (this.jobOffer.project.isActive) {\n this.executeSave(route, params);\n } else if (\n this.jobOffer.visible &&\n window.confirm(this.$filter(\"translate\")(\"JOB_OFFER_PROJECT_INACTIVE_NOTICE\"))\n ) {\n this.jobOffer.project.projectStatus = \"active\";\n this.jobOffer.project.save().then(() => {\n this.executeSave(route, params);\n }, this.onSaveError.bind(this));\n } else {\n this.executeSave(route, params);\n }\n }\n\n public updateCompanyDescription(nv, ov) {\n if (ov != nv && window.confirm(this.$filter(\"translate\")(\"SELECT_LANGUAGE_JOB_OFFER_NOTICE\", { name: nv.name }))) {\n this.JobOffer.$get(\"job_offers/new\", { project_id: this.jobOffer.project.id, lang_id: nv.id }).then(\n (newJobOffer) => {\n this.jobOffer.companyDescription = newJobOffer.companyDescription;\n }\n );\n }\n }\n\n public removeJobFunctionExperienceQuestion() {\n const jobFunctionExperienceQuestionId = this.jobOffer.jobFunctionExperienceQuestion?.id;\n this.jobOffer.jobFunctionExperienceQuestion = null;\n this.jobOffer.jobFunctionExperienceQuestionAttributes = null;\n if (jobFunctionExperienceQuestionId) {\n return this.$http.delete(\"job_function_experience_questions/\" + jobFunctionExperienceQuestionId);\n }\n }\n\n public removeIndustryExperienceQuestion() {\n const industryExperienceQuestionId = this.jobOffer.industryExperienceQuestion?.id;\n this.jobOffer.industryExperienceQuestion = null;\n this.jobOffer.industryExperienceQuestionAttributes = null;\n if (industryExperienceQuestionId) {\n return this.$http.delete(\"industry_experience_questions/\" + industryExperienceQuestionId);\n }\n }\n\n public removeWorkPermitQuestion() {\n const workPermitQuestionId = this.jobOffer.workPermitQuestion?.id;\n this.jobOffer.workPermitQuestion = null;\n this.jobOffer.workPermitQuestionAttributes = null;\n if (workPermitQuestionId) {\n return this.$http.delete(\"work_permit_questions/\" + workPermitQuestionId);\n }\n }\n\n public $doCheck() {\n var updatedJobOfferLanguage = this.jobOffer.language;\n if (this.oldJobOfferLanguage != updatedJobOfferLanguage) {\n this.updateCompanyDescription(updatedJobOfferLanguage, this.oldJobOfferLanguage);\n this.oldJobOfferLanguage = updatedJobOfferLanguage;\n }\n }\n\n private savePreliminaryQuestions() {\n // save job function experience question\n if (this.jobOffer.jobFunctionExperienceQuestion) {\n this.jobOffer.jobFunctionExperienceQuestionAttributes = this.jobOffer.jobFunctionExperienceQuestion;\n }\n\n // save language proficiency questions\n if (this.jobOffer.languageProficiencyQuestions.length > 0) {\n this.jobOffer.languageProficiencyQuestions.forEach((languageProficiencyQuestion) => {\n languageProficiencyQuestion.idealProficiencyLevel = languageProficiencyQuestion.idealProficiencyLevel.id;\n languageProficiencyQuestion.languageId = languageProficiencyQuestion.language.id;\n });\n this.jobOffer.languageProficiencyQuestionsAttributes = this.jobOffer.languageProficiencyQuestions;\n }\n\n // save industry experience question\n if (this.jobOffer.industryExperienceQuestion) {\n this.jobOffer.industryExperienceQuestionAttributes = this.jobOffer.industryExperienceQuestion;\n }\n\n // save custom requirements\n if (this.jobOffer.customRequirements.length > 0) {\n this.jobOffer.customRequirements.forEach((customRequirement) => {\n console.log(customRequirement);\n customRequirement.responseType = customRequirement.responseType.id;\n if (customRequirement.responseType === \"boolean\") {\n customRequirement.idealBooleanValue = customRequirement.idealBooleanValue.id;\n }\n });\n this.jobOffer.customRequirementsAttributes = this.jobOffer.customRequirements;\n }\n\n // work permit question\n if (this.jobOffer.workPermitQuestion) {\n const workPermitQuestion = this.jobOffer.workPermitQuestion;\n workPermitQuestion.countryId = workPermitQuestion.country?.id;\n this.jobOffer.workPermitQuestionAttributes = workPermitQuestion;\n }\n }\n\n public removeCustomRequirement(index: number) {\n const customRequirementId = this.jobOffer.customRequirements[index]?.id; // Get the element at the index\n this.jobOffer.customRequirements.splice(index, 1);\n if (customRequirementId) {\n return this.$http.delete(\"custom_requirements/\" + customRequirementId);\n }\n }\n\n public removeLanguageProficiencyQuestion(index: number) {\n const languageProficiencyQuestionId = this.jobOffer.languageProficiencyQuestions[index]?.id;\n this.jobOffer.languageProficiencyQuestions.splice(index, 1);\n if (languageProficiencyQuestionId) {\n return this.$http.delete(\"language_proficiency_questions/\" + languageProficiencyQuestionId);\n }\n }\n\n public noPreliminaryQuestionsBuild() {\n return (\n !this.jobOffer.jobFunctionExperienceQuestion &&\n !this.jobOffer.industryExperienceQuestion &&\n this.jobOffer.languageProficiencyQuestions.length == 0 &&\n !this.jobOffer.workPermitQuestion &&\n this.jobOffer.customRequirements.length == 0\n );\n }\n}\n","import JobOffersEditCtrl from \"./edit.controller\";\nimport jobEditTemplate from \"./edit.template.html\";\n\nangular.module(\"job_offers.views\").component(\"jobOffersEdit\", {\n bindings: {\n jobOffer: \" new CustomRequirement(element)) : new CustomRequirement(data);\n };\n this.serialize = function (data) {\n return data;\n };\n });\n },\n ])\n .service(\"CustomRequirementFactory\", CustomRequirement);\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { JobType } from \"./job_types.service\";\n\nangular\n .module(\"job_types\")\n .factory(\"JobTypesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(JobType, data);\n this.serialize = serialize;\n });\n },\n ])\n\n .service(\"JobTypesFactory\", JobType);\n","import { Language } from \"../../services/languages.service\";\n\nexport default class LanguageSelectCtrl {\n private languages: any[] = [];\n private user: any;\n public ngModel: { locale: string };\n\n static $inject = [\"Session\"];\n\n constructor (private Session: any) {\n this.user = Session.user;\n }\n\n public $onInit () {\n this.languages = Language.defaultOptions;\n this.ngModel.locale = _.first( \n _.select(this.languages, (language) => {\n return language.key == this.user.locale;\n })\n ).key;\n };\n}","import LanguageSelectCtrl from \"./language-select.controller\";\nimport languageSelectTemplate from \"./language-select.template.html\";\n\nangular.module(\"languages.components\").component(\"languageSelect\", {\n bindings: {\n ngModel: \"=\",\n },\n controller: LanguageSelectCtrl,\n template: languageSelectTemplate,\n});\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Language } from \"./languages.service\";\n\nangular\n .module(\"languages\")\n .factory(\"LanguagesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Language, data);\n this.serialize = serialize;\n });\n },\n ])\n\n .service(\"LanguagesFactory\", Language);\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TLeadershipExperience } from \"../leadership_experiences\";\n\nexport class LeadershipExperience {\n public id: number;\n private name: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.leadershipExperiences.query().then((response) => {\n return response.body.data.map((element) => {\n return new LeadershipExperience(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { LeadershipExperience } from \"./leadership_experiences.service\";\n\nangular\n .module(\"leadership_experiences\")\n .factory(\"LeadershipExperiencesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(LeadershipExperience, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"LeadershipExperienceFactory\", LeadershipExperience);\n","import { Region } from \"../../../regions/services/regions.service\";\nimport { LOCATION_DISTANCES, LocationDistance } from \"../../../locations/values/location-distances.constant\";\nexport default class LocationPreferencesFormCtrl {\n public employee: any;\n public regions: Region[];\n public locationDistances: LocationDistance[];\n\n public locations: any[];\n static $inject = [\"LocationsFactory\"];\n\n constructor(private Location: any) {}\n\n public autocompleteLocation(searchQuery) {\n var deferred = this.Location.autocomplete(searchQuery);\n deferred.promise.then((locations) => {\n this.locations = _.pluck(locations, \"displayName\");\n });\n }\n\n public addLocationPreference() {\n this.employee.locationPreferences.push({ distance: 5 });\n }\n\n public $onInit() {\n Region.getAll().then((regions) => (this.regions = regions));\n this.locationDistances = LOCATION_DISTANCES;\n\n if (this.employee.locationPreferences && this.employee.locationPreferences.length === 0) {\n this.addLocationPreference();\n this.employee.snapshot();\n }\n }\n}\n","import LocationPreferencesFormCtrl from \"./location-preferences-form.controller\";\nimport locationPreferencesFormTemplate from \"./location-preferences-form.template.html\";\n\nangular.module(\"locations.components\").component(\"locationPreferencesForm\", {\n bindings: {\n employee: \"=\",\n },\n template: locationPreferencesFormTemplate,\n controller: LocationPreferencesFormCtrl,\n});\n","export default class LoginCtrl {\n private loginSuccess: boolean = false;\n private pollingService: any;\n private backendNotice: string | null = null;\n private microsoftLoginUrlWithRedirect: string = '';\n private loginError: boolean;\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [ \"$rootScope\",\n \"$state\",\n \"$log\",\n \"AUTH_EVENTS\",\n \"AuthService\",\n \"Keepalive\",\n \"Idle\",\n \"Session\",\n \"poller\",\n \"UserSessionsFactory\"];\n\n constructor(private $rootScope: IExtendedRootScopeService,\n private $state: angular.ui.IStateService,\n private $log: ng.ILogService,\n private AUTH_EVENTS: any,\n private AuthService: any,\n private Keepalive: any,\n private Idle: any,\n private Session: any,\n private poller: any,\n private UserSession: any,) { \n\n this.backendNotice = window.backendNotice;\n this.microsoftLoginUrlWithRedirect = this.$rootScope.microsoft_login_url;\n if (\n $state.params.redirect_to &&\n $state.params.redirect_to != encodeURIComponent($state.href(\"login\", {}, { absolute: true, inherit: false }))\n ) {\n this.microsoftLoginUrlWithRedirect += \"?redirect_to=\" + $state.params.redirect_to;\n }\n \n }\n\n public externalLogin () {\n if (this.pollingService) {\n this.pollingService.remove();\n }\n this.pollingService = this.poller.get(\"/user_session.json\", {\n delay: 1000,\n catchError: true,\n neverOverwrite: true,\n argumentsArray: [\n {\n ignoreAuthModule: true,\n },\n ],\n });\n\n this.pollingService.promise.then(null, null, (result) => {\n if (result.status != 200) {\n return;\n }\n\n this.pollingService.remove();\n this.AuthService.updateAfterExternalLogin().then(\n (user_session) => {\n this.loginSuccess = true;\n this.loginError = false;\n\n if (this.modalInstance.dismiss) {\n this.modalInstance.dismiss(\"cancel\");\n }\n },\n (result) => {\n this.$log.debug(\"LoginCtrl login failed\");\n\n if (result.data.message) {\n this.backendNotice = result.data.message;\n }\n this.loginError = true;\n }\n );\n });\n };\n}","import LoginCtrl from \"../../views/login/login-page.controller\";\nimport loginFormModalTemplate from \"./login-form-modal.template.html\";\n\nangular.module(\"login.modals\").component(\"loginForm\", {\n template: loginFormModalTemplate,\n controller: LoginCtrl,\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n});\n","import LoginCtrl from \"./login-page.controller\";\nimport loginPageViewTemplate from \"./login-page.template.html\";\n\nangular.module(\"login.views\").component(\"loginPageView\", {\n bindings: {\n $transition$: \"<\",\n },\n template: loginPageViewTemplate,\n controller: LoginCtrl,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TMaritalStatus } from \"../marital_status\";\n\nexport class MaritalStatus {\n public id: number;\n private name: string;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n @cached\n public static getAll() {\n return baseClient.maritalStatuses.query().then((response) => {\n return response.body.data.map((element) => {\n return new MaritalStatus(element);\n });\n });\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { MaritalStatus } from \"./marital_status.service\";\n\nangular\n .module(\"marital_statuses\")\n .factory(\"MaritalStatusesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(MaritalStatus, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"MaritalStatusFactory\", MaritalStatus);\n","export type ReasonForRejection = {\n name: string;\n}[];\n\nexport const REASONS_FOR_REJECTION: ReasonForRejection = [\n { name: 'REASON_BASIC_QUALIFICATION_MISSING' },\n { name: 'REASON_NOT_QUALIFIED_FOR_LOCATION' },\n { name: 'REASON_MORE_QUALIFIED_CANDIDATE_CHOSEN' },\n { name: 'REASON_APPLICATION_WITHDRAWN' },\n { name: 'REASON_NOT_CONSIDERED' },\n];\n","export type ChooseLocalesModalOptions = {\n selectSubsidiary: boolean;\n selectReasonForRejection?: boolean;\n};\nimport { ReasonForRejection, REASONS_FOR_REJECTION } from \"../../values/reasons-for-rejection.const\";\n\nexport default class ChooseLocalesModalCtrl {\n private resolve: { options: ChooseLocalesModalOptions; dialogTitle: string; languages: any, select: any };\n private language: string;\n private user: any;\n private subsidiary: string;\n private subsidiaries: any[];\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private options: ChooseLocalesModalOptions;\n private reasonsForRejection: ReasonForRejection;\n private reasonForRejection: string;\n static $inject = [\"entourageSubsidiaries\", \"Session\", \"EditUtilMixin\", \"$filter\"];\n\n constructor(private entourageSubsidiaries: any, private Session: any, private EditUtilMixin: any, private $filter: ng.IFilterService) {}\n\n public $onInit () {\n angular.extend(this, this.EditUtilMixin, {\n user: this.Session.user,\n options: this.resolve.options,\n subsidiaries: this.entourageSubsidiaries,\n dialogTitle: this.resolve.dialogTitle,\n });\n\n this.language = _.first(\n _.select(this.resolve.languages, (language) => {\n return language.key == this.user.locale;\n })\n ).key\n\n if (this.user.nationalAffiliate) {\n this.subsidiary = _.first(\n _.select(this.subsidiaries, (subsidiary) => {\n return subsidiary.slug == this.user.nationalAffiliate.slug;\n })\n ).slug;\n } else {\n this.subsidiary = _.first(this.subsidiaries).slug;\n }\n\n if (this.options.selectReasonForRejection) {\n const defaultReason = \"REASON_NOT_CONSIDERED\";\n this.reasonForRejection = defaultReason;\n this.reasonsForRejection = REASONS_FOR_REJECTION;\n }\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public selectLocales () {\n var params = {\n lang: this.language,\n subsidiarySlug: this.subsidiary,\n reasonForRejection: this.$filter(\"translate\")(this.reasonForRejection),\n };\n this.modalInstance.close(params);\n };\n}\n","import ChooseLocalesModalCtrl from \"./choose-locales-modal.controller\";\nimport chooseLocalesModalTemplate from \"./choose-locales-modal.template.html\";\n\nangular.module(\"modals.modals\").component(\"chooseLocalesModal\", {\n template: chooseLocalesModalTemplate,\n controller: ChooseLocalesModalCtrl,\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n});\n","import ChooseContactModalCtrl from \"./choose-contact-modal.controller\";\nimport chooseContactModalTemplate from \"./choose-contact-modal.template.html\";\n\nangular.module(\"modals.modals\").component(\"chooseContactModal\", {\n template: chooseContactModalTemplate,\n controller: ChooseContactModalCtrl,\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n});\n","export default class ChooseContactModalCtrl {\n \n private emailObject: {\n email: string;\n params: any;\n callback: any;\n };\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private resolve: {\n person: {\n privateEmail?: string;\n workEmail?: string;\n };\n params: any;\n sendMessageToObject: {\n createMessage: (messageType: string, emailObject: { email: string; params: any; callback: any }) => any;\n };\n messageType: string;\n };\n \n constructor() {}\n\n public $onInit () {\n var emails = _.chain([this.resolve.person.privateEmail, this.resolve.person.workEmail])\n .compact()\n .uniq()\n .value();\n\n angular.extend(this, {\n person: this.resolve.person,\n emails: emails,\n emailObject: {\n email: _.first(emails),\n params: this.resolve.params,\n callback: null,\n },\n });\n };\n\n public save () {\n this.emailObject.callback = this.resolve.sendMessageToObject.createMessage(\n this.resolve.messageType,\n this.emailObject\n );\n this.modalInstance.close(this.emailObject);\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n}","import ConfirmModalCtrl from \"./confirm-modal.controller\";\nimport confirmModalTemplate from \"./confirm-modal.template.html\";\n\nangular.module(\"modals.modals\").component(\"confirmModal\", {\n template: confirmModalTemplate,\n controller: ConfirmModalCtrl,\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n});\n","export default class ConfirmModalCtrl {\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private resolve: { message: string, ready: boolean, pollingService: any };\n private message: string;\n private ready: boolean;\n private pollingService: any;\n\n constructor() {}\n\n public $onInit () {\n this.message = this.resolve.message;\n this.ready = !this.resolve.pollingService;\n this.pollingService = this.resolve.pollingService;\n };\n\n public ok () {\n this.modalInstance.close(true);\n };\n public cancel () {\n this.modalInstance.close(false);\n };\n}","//= require ../modals.module.js\nimport { Language } from \"../../languages/services/languages.service\";\nimport { ChooseLocalesModalOptions } from \"../modals/choose-locales-modal/choose-locales-modal.controller\";\n\nangular.module(\"modals\").factory(\"ModalUtilMixin\", [\n \"$uibModal\",\n \"$q\",\n function ($uibModal, $q) {\n function createChooseContactModal(messageType, title, person, sendMessageToObject, params) {\n if (!sendMessageToObject) {\n sendMessageToObject = person;\n }\n\n if (person.getDefaultEmailAddress()) {\n var emailObject = {\n email: person.getDefaultEmailAddress(),\n params: params,\n callback: null,\n };\n emailObject.callback = sendMessageToObject.createMessage(messageType, emailObject);\n\n var deferred = $q.defer();\n deferred.resolve(emailObject);\n\n var modelInstanceMock = {\n result: deferred.promise,\n };\n\n return modelInstanceMock;\n }\n\n return $uibModal.open({\n component: \"chooseContactModal\",\n resolve: {\n params: [\n function () {\n return params;\n },\n ],\n person: [\n function () {\n return person;\n },\n ],\n title: [\n function () {\n return title;\n },\n ],\n messageType: [\n function () {\n return messageType;\n },\n ],\n sendMessageToObject: [\n function () {\n return sendMessageToObject;\n },\n ],\n },\n size: \"lg\",\n });\n }\n\n function createChooseLocalesModal(options: ChooseLocalesModalOptions, dialogTitle, messageType, title, sendMessageToObject) {\n var modalInstance = $uibModal.open({\n component: \"chooseLocalesModal\",\n size: \"lg\",\n resolve: {\n languages: [\n function () {\n return Language.defaultOptions;\n },\n ],\n options: function () {\n return options;\n },\n dialogTitle: function () {\n return dialogTitle || \"LANGUAGE_EMAIL\";\n },\n\n },\n });\n\n return modalInstance.result;\n }\n\n return {\n createChooseContactModal: createChooseContactModal,\n chooseLocalesModal: createChooseLocalesModal,\n };\n },\n]);\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { OrganisationUnit } from \"./organisation_units.service\";\n\nangular\n .module(\"organisation_units\")\n .factory(\"OrganisationUnitSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(OrganisationUnit, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"OrganisationUnitsFactory\", OrganisationUnit);\n","import OrganisationUnitsSelectorCtrl from \"./organisation-units-selector.controller\";\nimport organisationUnitsSelectorTemplate from \"./organisation-units-selector.template.html\";\n\nangular.module(\"organisation_units.components\").component(\"organisationUnitsSelector\", {\n bindings: {\n selectedOrgUnit: \"=ngModel\",\n disabled: \"<\",\n title: \"@\",\n getSalesUnits: \"<\"\n },\n template: organisationUnitsSelectorTemplate,\n controller: OrganisationUnitsSelectorCtrl,\n});\n","import { OrganisationUnit } from \"../../services/organisation_units.service\";\n\nexport default class OrganisationUnitsSelectorCtrl {\n private organisationUnits: OrganisationUnit[];\n private getSalesUnits: boolean;\n\n constructor () {}\n\n public $onInit () {\n if (this.getSalesUnits) {\n OrganisationUnit.salesUnits().then((organisationUnits) => {\n this.organisationUnits = organisationUnits;\n });\n } else {\n OrganisationUnit.getAll().then( (organisationUnits) => {\n this.organisationUnits = organisationUnits;\n });\n }\n };\n}\n","export default class MessageStatusCtrl {\n\n private ready: boolean = false;\n private url: string;\n private pollingService: {\n promise: ng.IPromise;\n remove: () => void;\n };\n\n static $inject = [\"OutlookDelivery\"];\n \n constructor ( private OutlookDelivery: any ) {}\n\n public $onInit () {\n this.pollingService.promise.then(null, null, (response) => {\n const draft = response.data.data;\n if (draft.error_code) {\n this.OutlookDelivery.handleErrors(draft.error_code);\n this.pollingService.remove();\n } else if (draft.url) {\n this.url = draft.url;\n window.open(this.url, \"_blank\");\n this.pollingService.remove();\n this.ready = true;\n }\n });\n };\n}","import MessageStatusCtrl from \"./message-status.controller\";\nimport messageStatusTemplate from \"./message-status.template.html\";\n\nangular.module(\"outlook.delivery.components\").component(\"messageStatus\", {\n bindings: {\n pollingService: \"=\",\n ready: \"=\",\n },\n controller: MessageStatusCtrl,\n template: messageStatusTemplate,\n});\n","import ContactModalCtrl from \"./contact-modal.controller\";\nimport contactModalTemplate from \"./contact-modal.template.html\";\n\nangular.module(\"persons.modals\").component(\"contactModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: contactModalTemplate,\n controller: ContactModalCtrl,\n});\n","export default class ContactModalCtrl {\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n constructor () {}\n \n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n}","export default class OpenSkillmatrixEditCtrl {\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private saving: boolean;\n private resolve: { person: any };\n private onSaveError: () => void;\n\n static $inject = [\"$http\", \"EditUtilMixin\"];\n\n constructor (private $http: ng.IHttpService, private EditUtilMixin: any) {}\n \n public $onInit () {\n angular.extend(this, this.EditUtilMixin, {\n saving: false,\n });\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public save () {\n if (this.saving) {\n return false;\n }\n\n this.saving = true;\n return this.$http\n .post(this.resolve.person.$url(\"/update_skillmatrix_taggings.json\"), {\n skillmatrix_elements: _.chain(this.resolve.person.skillmatrixElements)\n .pluck(\"tags\")\n .flatten()\n .select( (tag) => {\n return !_.isEmpty(tag.tagging);\n })\n .map( (tagObj) => {\n return [tagObj.tag.id, tagObj];\n })\n .object()\n .value(),\n })\n .then( (result) => {\n this.modalInstance.close();\n }, this.onSaveError.bind(this));\n };\n}","import OpenSkillmatrixEditCtrl from \"./open-skillmatrix-edit-modal.controller\";\nimport openSkillmatrixEditModalTemplate from \"./open-skillmatrix-edit-modal.template.html\";\n\nangular.module(\"persons.modals\").component(\"openSkillmatrixEdit\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: openSkillmatrixEditModalTemplate,\n controller: OpenSkillmatrixEditCtrl,\n});\n","export default class ChooseComponayModalCtrl {\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private resolve: { person: any }\n private company: any;\n private companies: any[];\n\n static $inject = [\"$filter\"];\n\n constructor (private $filter: ng.IFilterService) {}\n \n public $onInit () {\n angular.extend(this, {\n person: this.resolve.person,\n companies: _.toArray(_.pluck(this.resolve.person.workingRelationships, \"employer\")),\n company: _.first(_.toArray(_.pluck(this.resolve.person.workingRelationships, \"employer\"))),\n });\n\n this.company = _.first(this.companies);\n\n if (this.companies.length == 1 && this.company && this.company.siteAddresses.length == 1) {\n this.company.companyAddress = _.first(this.company.siteAddresses);\n this.selectCompany();\n }\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public selectCompany () {\n if (this.company.companyAddress) {\n this.modalInstance.close(this.company);\n } else {\n window.alert(this.$filter(\"translate\")(\"NO_ADDRESS_LISTED\"));\n return;\n }\n };\n}","import ChooseComponayModalCtrl from \"./choose-company-modal.controller\";\nimport chooseCompanyModalTemplate from \"./choose-company-modal.template.html\";\n\nangular.module(\"persons.modals\").component(\"chooseCompany\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: chooseCompanyModalTemplate,\n controller: ChooseComponayModalCtrl,\n});\n","import ChooseInfoPresentationModalCtrl from \"./choose-info-presentation-modal.controller\";\nimport chooseInfoPresentationModalTemplate from \"./choose-info-presentation-modal.template.html\";\n\nangular.module(\"persons.modals\").component(\"chooseInfoPresentation\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: chooseInfoPresentationModalTemplate,\n controller: ChooseInfoPresentationModalCtrl,\n});\n","export default class ChooseInfoPresentationModalCtrl {\n\n private infoPresentation: string;\n private resolve: { infoPresentations: any[] };\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n constructor () {}\n \n public $onInit () {\n this.infoPresentation = _.first(this.resolve.infoPresentations);\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n\n public selectInfoPresentation () {\n this.modalInstance.close(this.infoPresentation);\n };\n}","export default class CompanyOrgChartModalCtrl {\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private resolve: { company: any }\n static $inject = [\"$rootScope\", \"$compile\"];\n\n constructor (private $rootScope: IExtendedRootScopeService, private $compile: ng.ICompileService) {\n this.nodeTemplate = this.nodeTemplate.bind(this);\n }\n\n private unflatten(array: any[], parent?: any, tree?: any) {\n tree = typeof tree !== \"undefined\" ? tree : [];\n parent = typeof parent !== \"undefined\" ? parent : { id: null };\n\n const children = _.filter(array, (child) => {\n return child.managerId == parent.id;\n });\n\n if (!_.isEmpty(children)) {\n if (!parent.id) {\n tree = children;\n } else {\n parent.children = children;\n }\n _.each(children, (child) => {\n this.unflatten(array, child, undefined);\n });\n }\n\n return tree;\n }\n\n public nodeTemplate(data) {\n const newScope = this.$rootScope.$new() as IExtendedRootScopeService;\n newScope.data = data;\n\n const el = angular.element(\"\");\n return this.$compile(el)(newScope);\n }\n\n public getEmployementHierarchy() {\n var withCurrentWorkingRelationship = _.chain(this.resolve.company.employees)\n .each( (employee: any) => {\n employee.$currentSupervisor = _.chain(employee.workingRelationships)\n .findWhere( (workingRelationship) => {\n return workingRelationship.employer && workingRelationship.employer.id == this.resolve.company.id;\n })\n .value().supervisor;\n })\n .value();\n\n return this.unflatten(\n _.map(withCurrentWorkingRelationship, (employee) => {\n return {\n id: employee.id,\n managerId: employee.$currentSupervisor && employee.$currentSupervisor.id,\n employee: employee,\n };\n })\n );\n }\n\n public initOrgChartContainer() {\n const $container = $(\"#companyOrgChart\") as JQuery;\n\n const orgChartNodes = {\n id: 0,\n company: this.resolve.company,\n managerId: null,\n isCompany: true,\n children: _.map(this.getEmployementHierarchy(), (employee) => {\n employee.managerId = 0;\n return employee;\n }),\n };\n\n $container.orgchart({\n data: orgChartNodes,\n verticalLevel: 0,\n nodeTemplate: this.nodeTemplate,\n initCompleted: ($chart) => {\n $container.scrollLeft(($container[0].scrollWidth - $container.width()) / 2);\n },\n });\n }\n\n public $onInit () {\n this.initOrgChartContainer();\n };\n\n public cancel () {\n this.modalInstance.dismiss(\"cancel\");\n };\n}\n","import CompanyOrgChartModalCtrl from \"./company-org-chart-modal.controller\";\nimport companyOrgChartModalTemplate from \"./company-org-chart-modal.template.html\";\n\nangular.module(\"persons.modals\").component(\"companyOrgChart\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: companyOrgChartModalTemplate,\n controller: CompanyOrgChartModalCtrl,\n});\n","//= require ../modals.module.js\n\nimport { ChooseLocalesModalOptions } from \"../../../modals/modals/choose-locales-modal/choose-locales-modal.controller\";\n\nangular.module(\"persons.modals\").factory(\"PersonModalMixin\", [\n \"$uibModal\",\n \"$filter\",\n \"$translate\",\n \"poller\",\n \"QuicklistsFactory\",\n \"ModalUtilMixin\",\n function ($uibModal, $filter, $translate, poller, Quicklist, ModalUtilMixin) {\n function PersonModalMixin() {}\n\n function checkForEmail(person) {\n if (!person.privateEmail && !person.workEmail) {\n window.alert($filter(\"translate\")(\"EMAIL_ADDRESS_NEEDED_NOTICE\"));\n return true;\n } else if (!person.privateEmail && person.resourceType == \"Candidate\") {\n if (!window.confirm($filter(\"translate\")(\"NO_PRIVATE_EMAIL_CANDIDATE_NOTICE\"))) {\n return true;\n }\n } else if (!person.workEmail && person.resourceType == \"Employee\") {\n if (!window.confirm($filter(\"translate\")(\"NO_WORK_EMAIL_MANAGER_NOTICE\"))) {\n return true;\n }\n }\n return false;\n }\n\n function openQuicklistModal() {\n var _this = this;\n var quicklistType = this.resourceType + \"Quicklist\";\n Quicklist.openModal(_this, [\n function () {\n return Quicklist.getAll().then(function (quicklists) {\n quicklists = _.filter(quicklists, function (quicklist) {\n return quicklist.type == quicklistType || !quicklist.type;\n });\n return _.map(quicklists, function (quicklist) {\n var entries = quicklist.entryIds;\n return _.extend(quicklist, {\n selected: !_.isUndefined(\n _.find(entries, function (entryId) {\n return entryId == _this.id;\n })\n ),\n });\n });\n });\n },\n ]);\n }\n\n function openContactModal(callback) {\n var person = this;\n\n return $uibModal.open({\n component: \"contactModal\",\n resolve: {\n person: function () {\n return person;\n },\n callback: function () {\n return callback;\n },\n },\n });\n }\n\n function createChooseCompanyModal(title, person, sendMessageToObject) {\n var modalInstance = $uibModal.open({\n component: \"chooseCompany\",\n resolve: {\n person: function () {\n return person;\n },\n },\n size: \"lg\",\n });\n\n return modalInstance.result;\n }\n\n function openNDAModal() {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_NDA_TITLE\");\n var ndaParams = {};\n\n if (checkForEmail(_this)) {\n return;\n }\n\n const options: ChooseLocalesModalOptions = {\n selectSubsidiary: true\n };\n ModalUtilMixin.chooseLocalesModal(options)\n .then(function (params) {\n _.extend(ndaParams, {\n locale: params.lang,\n subsidiary_slug: params.subsidiarySlug,\n });\n if (_this.resourceType == \"Employee\") {\n return createChooseCompanyModal(title, _this, _this);\n }\n })\n .then(function (company) {\n _.extend(ndaParams, { company: company });\n var modalInstance = ModalUtilMixin.createChooseContactModal(\n \"create_nda_email\",\n title,\n _this,\n _this,\n ndaParams\n );\n\n return modalInstance.result.then(\n function (ndaEmail) {\n ndaEmail.callback.then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"NDA_EMAIL_CONFIRMATION\"), pollingService).then(\n function (res) {\n if (res) {\n _this.sendDocument(\"send_nda\");\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n },\n function () {}\n );\n });\n }\n\n function openEventConfirmationModal() {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_APPOINTMENT_CONFIRMATION\");\n var modalInstance = ModalUtilMixin.createChooseContactModal(\"create_event_confirmation_email\", title, this);\n\n return modalInstance.result.then(function (eventConfirmationEmail) {\n console.log(\"eventConfirmationEmail finished\");\n }, angular.noop);\n }\n\n function chooseInfoPresentationModal() {\n var modalInstance = $uibModal.open({\n component: \"chooseInfoPresentation\",\n size: \"lg\",\n resolve: {\n infoPresentations: [\n \"$http\",\n function ($http) {\n return $http.get(\"info_presentations.json\").then(function (infoPresentations) {\n return infoPresentations.data.data;\n });\n },\n ],\n },\n });\n\n return modalInstance.result;\n }\n\n function openInfoPresentationModal() {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_PRESENTATION\");\n\n if (checkForEmail(_this)) {\n return; // returns unless confirmed\n }\n\n return chooseInfoPresentationModal().then(\n function (presentation) {\n var modalInstance = ModalUtilMixin.createChooseContactModal(\n \"create_presentation_email\",\n title,\n _this,\n _this,\n presentation\n );\n\n modalInstance.result.then(function (infoPresentationEmail) {\n infoPresentationEmail.callback.then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"INFOPRESENTATION_SENT_CONFIRMATION\"), pollingService).then(\n function (res) {\n if (res) {\n _this.sendDocument(\"send_presentation\", infoPresentationEmail);\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n });\n },\n function () {}\n );\n }\n\n function openSendSkillmatrixModal(person) {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_SKILLMATRIX\");\n\n if (checkForEmail(_this)) {\n return; // returns unless confirmed\n }\n\n var modalInstance = ModalUtilMixin.createChooseContactModal(\"create_skillmatrix_email\", title, this);\n\n return modalInstance.result.then(\n function (skillmatrixEmail) {\n skillmatrixEmail.callback.then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"SKILLMATRIX_SENT_CONFIRMATION\"), pollingService).then(\n function (res) {\n if (res) {\n _this.sendDocument(\"send_skillmatrix\");\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n },\n function () {}\n );\n }\n\n function openSkillmatrixEditModal() {\n return $uibModal.open({\n component: \"openSkillmatrixEdit\",\n size: \"lg\",\n resolve: {\n person: function () {\n return this;\n }.bind(this),\n },\n });\n }\n\n PersonModalMixin.extended = function (Resource) {\n Resource.include({\n openQuicklistModal: openQuicklistModal,\n openContactModal: openContactModal,\n openNDAModal: openNDAModal,\n openInfoPresentationModal: openInfoPresentationModal,\n openEventConfirmationModal: openEventConfirmationModal,\n openSendSkillmatrixModal: openSendSkillmatrixModal,\n openSkillmatrixEditModal: openSkillmatrixEditModal,\n });\n };\n\n return PersonModalMixin;\n },\n]);\n","import companyOrgChartNodeTemplate from \"./company-org-chart-node.template.html\";\n\nangular.module(\"persons.components\").component(\"companyOrgChartNode\", {\n bindings: {\n data: \"<\",\n cancel: \"&\",\n },\n template: companyOrgChartNodeTemplate,\n});\n","import { Graduation } from \"../../../graduations/services/graduations.service\";\nimport personsGraduationFormPopoverTemplate from \"./persons-graduation-popover.template.html\";\n\nexport class PersonsGraduationFormCtrl {\n static $inject = [\"$templateCache\", \"PersonsGraduationsFactory\"];\n constructor(private $templateCache: ng.ITemplateCacheService, private PersonsGraduation: any) {\n this.personsGraduationFormPopover = \"persons-graduation-form-popover\";\n $templateCache.put(this.personsGraduationFormPopover, personsGraduationFormPopoverTemplate);\n }\n\n public personsGraduationFormPopover: string;\n public graduations: Graduation[];\n public employee: any;\n\n public $onInit() {\n Graduation.getAll().then((graduations: Graduation[]) => {\n this.graduations = graduations;\n });\n\n if (this.employee.personsGraduations && this.employee.personsGraduations.length === 0) {\n this.addPersonsGraduation();\n this.employee.snapshot();\n }\n }\n\n public addPersonsGraduation() {\n this.employee.personsGraduations.push(new this.PersonsGraduation());\n }\n\n public deletePersonsGraduation(index) {\n this.employee.personsGraduations.splice(index, 1);\n }\n}\n","import { PersonsGraduationFormCtrl } from \"./persons-graduation-form.controller\";\nimport personsGraduationFormTemplate from \"./persons-graduation-form.template.html\";\n\nangular.module(\"persons_graduations.components\").component(\"personsGraduationForm\", {\n bindings: {\n employee: \"=\",\n },\n template: personsGraduationFormTemplate,\n controller: PersonsGraduationFormCtrl,\n});\n","import { Priority } from \"./priority.service\";\n\nangular\n .module(\"priorities\", [\"rails\", \"priorities.components\"])\n\n .factory(\"PrioritySerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return _.isString(data) ? new Priority({ name: data, id: _.random(100, 1000) }) : data;\n };\n this.serialize = function (data) {\n return data;\n };\n });\n },\n ])\n\n .service(\"PrioritiesFactory\", Priority);\n","import { Priority } from \"../../services/priority.service\";\n\nexport class PrioritySelectCtrl {\n static $inject = [];\n constructor() {}\n\n public priorities: Priority[];\n\n public $onInit() {\n Priority.getAll().then((priorities) => (this.priorities = priorities));\n }\n}\n","import { PrioritySelectCtrl } from \"./priority-select.controller\";\nimport prioritySelectTemplate from \"./priority-select.template.html\";\n\nangular.module(\"priorities.components\").component(\"prioritySelect\", {\n bindings: {\n priority: \"=\",\n },\n controller: PrioritySelectCtrl,\n template: prioritySelectTemplate,\n});\n","export default class WhiteboardAdvancedSearchCtrl {\n private resolve: { user: any };\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n private registerSaveHotkey: (callback: () => void) => void;\n public loading: boolean;\n public projectReportingWeek: any;\n public date: Date;\n public user: any;\n\n static $inject = [\"$scope\", \"$rootScope\", \"$filter\", \"EditUtilMixin\", \"ProjectReportingsFactory\"];\n\n constructor (private $scope: ng.IScope,\n private $rootScope: ng.IRootScopeService,\n private $filter: ng.IFilterService,\n private EditUtilMixin: any,\n private ProjectReporting: any) {\n this.loading = false,\n this.projectReportingWeek = {},\n this.date = new Date(),\n\n this.$scope.$on(\"modal.closing\", (event: any) => this.handleModalClosing(event));\n this.loadKpisFromWeekOfSelectedDay = this.loadKpisFromWeekOfSelectedDay.bind(this);\n }\n\n public $onInit () {\n angular.extend(this, this.EditUtilMixin, { user: this.resolve.user });\n this.loadKpisFromWeekOfSelectedDay(this.date);\n this.registerSaveHotkey(this.saveChanges);\n };\n\n\n public saveChanges () {\n if (!_.isFunction(this.projectReportingWeek.unsnappedChanges)) {\n return;\n }\n this.projectReportingWeek\n .$put(\n this.projectReportingWeek.$url() + \".json\",\n _.extend(this.projectReportingWeek, { user_id: this.user.id, date: this.date })\n )\n .then( () => {\n this.projectReportingWeek.snapshot();\n this.modalInstance.close(this.projectReportingWeek);\n });\n };\n\n public cancel () {\n this.modalInstance.dismiss();\n };\n\n public loadKpisFromWeekOfSelectedDay (selectedDate) {\n this.loading = true;\n (this.ProjectReporting)\n .query({ date: selectedDate, user_id: this.user.id })\n .then( (projectReportingWeek) => {\n this.projectReportingWeek = projectReportingWeek;\n this.projectReportingWeek.snapshot();\n this.loading = false;\n });\n };\n\n private handleModalClosing(event: angular.IAngularEvent) {\n if (!_.isFunction(this.projectReportingWeek.unsnappedChanges)) {\n return;\n }\n\n if (this.projectReportingWeek.unsnappedChanges()) {\n if (window.confirm(this.$filter(\"translate\")(\"WINDOW_CLOSING_CHANGES_WARNING\"))) {\n this.projectReportingWeek.rollback(-1);\n } else {\n event.preventDefault();\n }\n }\n }\n}\n","import kpiOperativeEditModalCtrl from \"./kpi-operative-edit-modal.controller\";\nimport kpiOperativeEditModalTemplate from \"./kpi-operative-edit-modal.template.html\";\n\nangular.module(\"project_reporting.modals\").component(\"kpiOperativeEditModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: kpiOperativeEditModalTemplate,\n controller: kpiOperativeEditModalCtrl,\n});\n","export default class ProjectSheetCtrl {\n private dayAttrs: any;\n private sumDay: any;\n private steps: any;\n\n static $inject = [\"ProjectReportingsFactory\", \"KPISteps\"];\n\n constructor (private ProjectReporting: any, private KPISteps: any) {\n\n this.dayAttrs = ProjectReporting.ProjectDayAttrs;\n this.sumDay = ProjectReporting.sumDay;\n this.steps = KPISteps;\n }\n}","import ProjectSheetCtrl from \"./project-sheet.controller\";\nimport projectSheetTemplate from \"./project-sheet.template.html\";\nangular.module(\"project_reporting.components\").component(\"projectSheet\", {\n bindings: {\n projectReporting: \"=data\",\n },\n controller: ProjectSheetCtrl,\n template: projectSheetTemplate,\n});\n","import moment from \"moment\";\n\nexport default class WhiteboardAdvancedSearchCtrl {\n \n private advancedQuery: any;\n private user: any;\n private closing: () => void;\n private initFn: (user: any) => void;\n private dateRangePicker: any;\n public ranges: { [key: string]: moment.Moment[] } = {\n TODAY: [moment(), moment()],\n YESTERDAY: [moment().subtract(1, \"days\"), moment().subtract(1, \"days\")],\n PREVIOUS_SEVEN_DAYS: [moment().subtract(6, \"days\"), moment()],\n PREVIOUS_THIRTY_DAYS: [moment().subtract(29, \"days\"), moment()],\n };\n \n static $inject = [\"daterangepickerOptions\", \"$filter\", \"moment\"];\n\n constructor (private daterangepickerOptions: any, private $filter: ng.IFilterService) {\n \n this.dateRangePicker = {\n options: _.extend(this.daterangepickerOptions, {\n timePicker: false,\n parentEl: \".advanced-search-pop\",\n ranges: _.object(\n _.map(this.ranges, (value, key) => {\n return [this.$filter(\"translate\")(key), value];\n })\n ),\n }),\n };\n }\n\n public $onInit () {\n this.advancedQuery.name = undefined;\n this.advancedQuery.id = undefined;\n };\n\n public performAdvancedSearch () {\n if (this.user) {\n this.user.$advancedQuery = this.advancedQuery;\n\n this.initFn(this.user);\n }\n\n this.closing();\n };\n}\n","import WhiteboardAdvancedSearchCtrl from \"./whiteboard-advanced-search.controller\";\nimport whiteboardAdvancedSearchTemplate from \"./whiteboard-advanced-search.template.html\";\nangular.module(\"project_reporting.components\").component(\"whiteboardAdvancedSearch\", {\n bindings: {\n initFn: \"=\",\n user: \"=\",\n advancedQuery: \"=\",\n closing: \"&\",\n },\n template: whiteboardAdvancedSearchTemplate,\n controller: WhiteboardAdvancedSearchCtrl,\n});\n","export default class WhiteboardAdvancedSearchCtrl {\n public steps: { key: string; value: any }[];\n\n static $inject = [\"KPISteps\"];\n\n constructor (private KPISteps: any) {\n this.steps = _.chain(this.KPISteps)\n .pick([\"sendouts\", \"firstInterviews\", \"secondInterviews\", \"closings\", \"deals\"])\n .map((value, key) => ({ key, value }))\n .value();\n }\n}","import WhiteboardKpisController from \"./whiteboard-kpis.controller\";\nimport whiteboardKpisTemplate from \"./whiteboard-kpis.template.html\";\nangular.module(\"project_reporting.components\").component(\"whiteboardKpis\", {\n bindings: {\n advancedQuery: \"=\",\n currentLonglistEntries: \"=\",\n whiteboardsLazyLoading: \"=\",\n setKpiKey: \"&\",\n userOrTeam: \"=\",\n },\n template: whiteboardKpisTemplate,\n controller: WhiteboardKpisController,\n});\n","export default class WhiteboardAdvancedSearchCtrl {\n public projectStatuses: { [key: string]: any };\n\n static $inject = [\"CandidatesProjectsFactory\"];\n\n constructor (private CandidatesProjects: any) {\n this.projectStatuses = CandidatesProjects.statuses;\n }\n public ganttActive(entry: { [key: string]: { date?: Date } }, status: string): boolean {\n const statuses: string[] = [\n \"longlist\",\n \"qualification\",\n \"shortlist\",\n \"sendout\",\n \"firstInterview\",\n \"secondInterview\",\n \"closing\",\n \"deal\",\n ];\n\n return _.some(\n _.rest(statuses, _.indexOf(statuses, status)),\n (key: string) => !!entry[key]?.date\n );\n };\n}","import WhiteboardsTableBodyCtrl from \"./whiteboard-table-body.controller\";\nimport whiteboardTableBodyTemplate from \"./whiteboard-table-body.template.html\";\nangular.module(\"project_reporting.components\").component(\"whiteboardTableBody\", {\n bindings: {\n currentLonglistEntries: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n tableRowIdentifier: \"=\",\n },\n template: whiteboardTableBodyTemplate,\n controller: WhiteboardsTableBodyCtrl,\n});\n","export default class WhiteboardCtrl {\n private allUsers: any[];\n private sessionUserId: number;\n private attributes: any;\n private stateParams: any;\n private teams: any[];\n private $transition$: any;\n private users: any[];\n private whiteboardOptions: any;\n private whiteboardConfig: any;\n\n static $inject = [\"makeCollectionProxy\",\n \"ProjectReportingsFactory\",\n \"UsersFactory\",\n \"SavedSearchesFactory\",\n \"Session\",\n \"PrsmTableAttributeService\"];\n\n constructor (private makeCollectionProxy: any,\n private ProjectReporting: any, \n private User: any, \n private SavedSearch: any, \n private Session: any, \n private PrsmTableAttributeService: any) {\n this.allUsers = _.filter(User.getAll(), { isSelectable: true });\n this.sessionUserId = Session.user.id;\n this.attributes = {};\n this.initializeLazyLoading = this.initializeLazyLoading.bind(this);\n this.whiteboardQueryFn = this.whiteboardQueryFn.bind(this);\n this.initializeWhiteboardSearch = this.initializeWhiteboardSearch.bind(this);\n this.setKpiKey = this.setKpiKey.bind(this);\n\n }\n\n \n public whiteboardQueryFn(params) {\n return this.ProjectReporting.$get(\"/project_reporting/whiteboard\", params);\n }\n\n public setTableAttributes(userOrTeam) {\n this.attributes[userOrTeam.id] = new this.PrsmTableAttributeService(\n \"whiteboard-table-userOrTeam-\" + userOrTeam.id + \"-attributes\",\n this.ProjectReporting.whiteboardAttributes\n ).getAttributes();\n }\n\n public initializeLazyLoading(userOrTeam, params) {\n var advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"company_name\", query: \"\" },\n out: { show: true, range: {} },\n deal: { show: true, range: {} },\n kpiFilter: {},\n });\n\n advancedQuery.deleteAdvancedSearchCondition(0);\n\n var advancedWhiteboardSearchOptions: any = {\n initFn: this.initializeWhiteboardSearch,\n advancedQuery: advancedQuery,\n };\n\n this.setTableAttributes(userOrTeam);\n\n advancedWhiteboardSearchOptions.user = userOrTeam;\n\n _.defaults(userOrTeam, {\n $attributes: this.attributes[userOrTeam.id],\n $advancedQuery: advancedQuery,\n $advancedWhiteboardSearchOptions: advancedWhiteboardSearchOptions,\n });\n\n userOrTeam.$whiteboardsLazyLoading = true;\n\n params = _.extend(\n { advanced: JSON.stringify(userOrTeam.$advancedQuery.beforeStringify()) },\n _.omit(this.stateParams, \"user_id\"),\n params\n );\n this.makeCollectionProxy(this.whiteboardQueryFn.bind(this.ProjectReporting), params).then( (result) => {\n userOrTeam.$currentLonglistEntries = result;\n userOrTeam.$whiteboardsLazyLoading = false;\n });\n }\n\n public initializeWhiteboardSearch (userOrTeam) {\n if (userOrTeam.resourceType == \"User\") {\n this.initializeLazyLoading(userOrTeam, { user_id: userOrTeam.id });\n } else {\n this.stateParams[\"teams[]\"] = _.chain(this.stateParams[\"teams[]\"]).compact().flatten().value();\n this.teams = this.User.pickTranslatedTeams(this.stateParams[\"teams[]\"]);\n\n this.initializeLazyLoading(userOrTeam, { \"teams[]\": [userOrTeam.id] });\n }\n };\n\n public $onInit () {\n this.stateParams = _.pick(this.$transition$.params(), _.identity);\n this.users = _.map(this.whiteboardConfig.whiteboardEntries, (user) => {\n return new this.User(user);\n });\n this.Session.user.usersOnWhiteboard = this.users;\n this.whiteboardOptions = {\n userQuery: { users: this.Session.user.usersOnWhiteboard },\n };\n _.each(this.users, this.initializeWhiteboardSearch);\n };\n\n public updateWhiteboardProjectReporting (nv, ov) {\n if (nv.users && nv.users.length > 0) {\n var old_users =\n ov.users ||\n _.filter(this.users, (user) => {\n return user.resourceType == \"User\";\n });\n var diff1 = _.difference(_.pluck(nv.users, \"id\"), _.pluck(old_users, \"id\"));\n var diff2 = _.difference(_.pluck(old_users, \"id\"), _.pluck(nv.users, \"id\"));\n\n _.each(diff1, (id) => {\n var add_user = _.findWhere(nv.users, { id: id });\n this.Session.user.usersOnWhiteboard.push(add_user);\n this.initializeWhiteboardSearch(add_user);\n });\n\n _.each(diff2, (id) => {\n var remove_user = _.where(old_users, { id: id });\n var idx = _.findIndex(this.Session.user.usersOnWhiteboard, { id: id });\n if (idx > -1) {\n this.Session.user.usersOnWhiteboard.splice(idx, 1);\n }\n });\n this.Session.user.save();\n } else if (nv.team) {\n if (\n _.findIndex(this.Session.user.usersOnWhiteboard, (userOrTeam: any) => {\n return userOrTeam.resourceType != \"User\" && nv.team.id == userOrTeam.id;\n }) > -1\n ) {\n return;\n }\n\n this.Session.user.usersOnWhiteboard.unshift(nv.team);\n\n this.whiteboardOptions.userQuery.users = _.filter(this.Session.user.usersOnWhiteboard, (user: any) => {\n return user.resourceType == \"User\";\n });\n\n this.initializeWhiteboardSearch(nv.team);\n }\n };\n\n public removeUser (user) {\n var idx = _.findIndex(this.Session.user.usersOnWhiteboard, { id: user.id });\n if (idx > -1) {\n this.Session.user.usersOnWhiteboard.splice(idx, 1);\n\n this.Session.user.save();\n }\n };\n\n public setKpiKey (key, userOrTeam) {\n userOrTeam.$advancedQuery.kpiFilter[key] = !userOrTeam.$advancedQuery.kpiFilter[key];\n this.initializeWhiteboardSearch(userOrTeam);\n };\n}","import WhiteboardCtrl from \"./whiteboard.controller\";\nimport whiteboardTemplate from \"./whiteboard.template.html\";\n\nangular.module(\"project_reporting.views\").component(\"whiteboard\", {\n bindings: {\n whiteboardConfig: \"<\",\n $transition$: \"<\",\n },\n template: whiteboardTemplate,\n controller: WhiteboardCtrl,\n});\n","export default class WhiteboardAdvancedSearchCtrl {\n private stateParams: any;\n private $transition$: any;\n private whiteboardAttributes: any;\n private teams: any[];\n private allTeams: any[];\n private advancedQuery: any;\n private whiteboardsLazyLoading: boolean;\n private currentLonglistEntries: any[];\n private advancedWhiteboardPresenterSearchOptions: any;\n \n static $inject = [\"makeCollectionProxy\",\n \"ProjectReportingsFactory\",\n \"UsersFactory\",\n \"SavedSearchesFactory\",\n \"$interval\",\n \"PrsmTableAttributeService\"];\n\n constructor (private makeCollectionProxy: any,\n private ProjectReporting: any, \n private User: any, \n private SavedSearch: any, \n private $interval: ng.IIntervalService, \n private PrsmTableAttributeService: any) {\n this.whiteboardPresenterQueryFn = this.whiteboardPresenterQueryFn.bind(this);\n this.initializeWhiteboardSearch = this.initializeWhiteboardSearch.bind(this);\n this.setKpiKey = this.setKpiKey.bind(this);\n }\n\n public $onInit () {\n this.stateParams = _.pick(this.$transition$.params(), _.identity);\n this.whiteboardAttributes = new this.PrsmTableAttributeService(\n \"whiteboard-table-attributes\",\n _.extend(angular.copy(this.ProjectReporting.whiteboardAttributes), { sales: { show: true } })\n ).getAttributes();\n\n this.stateParams[\"teams[]\"] = _.chain(this.stateParams[\"teams[]\"]).compact().flatten().value();\n this.teams = this.User.pickTranslatedTeams(this.stateParams[\"teams[]\"]);\n this.allTeams = this.User.translatedTeams();\n\n var advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"company_name\", query: \"\" },\n kpiFilter: {},\n });\n advancedQuery.deleteAdvancedSearchCondition(0);\n _.defaults(this, { advancedQuery: advancedQuery });\n this.advancedWhiteboardPresenterSearchOptions = {\n initFn: this.initializeWhiteboardSearch,\n advancedQuery: this.advancedQuery,\n };\n\n this.$interval(this.initializeWhiteboardSearch, 60000);\n };\n\n public whiteboardPresenterQueryFn(params) {\n return this.ProjectReporting.$get(\"/project_reporting/whiteboard_team\", params);\n }\n\n public setKpiKey (key, userOrTeam) {\n // same func signature as in WhiteboardCtrl\n this.advancedQuery.kpiFilter[key] = !this.advancedQuery.kpiFilter[key];\n this.initializeWhiteboardSearch();\n };\n\n public initializeWhiteboardSearch () {\n this.whiteboardsLazyLoading = true;\n var params = _.extend(\n { advanced: JSON.stringify(this.advancedQuery.beforeStringify()) },\n _.omit(this.stateParams, \"user_id\"),\n { \"teams[]\": _.pluck(this.teams, \"id\") }\n );\n this.makeCollectionProxy(this.whiteboardPresenterQueryFn.bind(this.ProjectReporting), params).then( (result) => {\n this.currentLonglistEntries = result;\n this.whiteboardsLazyLoading = false;\n });\n };\n}\n\n","import WhiteboardPresenterCtrl from \"./whiteboard_presenter.controller\";\nimport whiteboardPresenterTemplate from \"./whiteboard_presenter.template.html\";\n\nangular.module(\"project_reporting.views\").component(\"whiteboardPresenter\", {\n bindings: {\n $transition$: \"<\",\n },\n template: whiteboardPresenterTemplate,\n controller: WhiteboardPresenterCtrl,\n});\n","export default class ProjectPipelineCtrl {\n private lazyLoadingQueue: any[] = [];\n private attributes: any;\n private sessionUserId: number;\n private allUsers: any[];\n private pipelineOptions: any;\n private stateParams: any;\n private $transition$: any;\n private users: any[];\n private projectPipelineConfig: any;\n private loading: boolean;\n private teams: any[];\n\n static $inject = [\"$q\",\n \"makeCollectionProxy\",\n \"CompaniesFactory\",\n \"ProjectsFactory\",\n \"ProjectReportingsFactory\",\n \"UsersFactory\",\n \"SavedSearchesFactory\",\n \"Session\",\n \"PrsmTableHelper\",\n \"PrsmTableAttributeService\"];\n\n constructor (\n private $q: ng.IQService,\n private makeCollectionProxy: any,\n private Company: any,\n private Project: any,\n private ProjectReporting: any,\n private User: any,\n private SavedSearch: any,\n private Session: any,\n private PrsmTableHelper: any,\n private PrsmTableAttributeService: any,\n ) {\n this.pipelineQueryFn = this.pipelineQueryFn.bind(this);\n this.initializePipelineSearch = this.initializePipelineSearch.bind(this);\n this.initializeLazyLoading = this.initializeLazyLoading.bind(this);\n this.serializeCompanyGroup = this.serializeCompanyGroup.bind(this);\n this.serializeCompany = this.serializeCompany.bind(this);\n this.serializeProject = this.serializeProject.bind(this);\n this.longlistQueryFn = this.longlistQueryFn.bind(this);\n this.setKpiKey = this.setKpiKey.bind(this);\n\n this.sessionUserId = Session.user.id;\n this.attributes = {};\n this.allUsers = _.filter(User.getAll(), { isSelectable: true });\n this.pipelineOptions = {\n userQuery: { users: Session.user.usersOnWhiteboard },\n };\n }\n\n public $onInit () {\n this.stateParams = _.pick(this.$transition$.params(), _.identity);\n this.users = _.map(this.projectPipelineConfig.whiteboardEntries, (user) => {\n return new this.User(user);\n });\n this.Session.user.usersOnWhiteboard = this.users;\n _.each(this.users, (user) => this.initializePipelineSearch(user));\n };\n\n public serializeProject(project) {\n var project_kpis = _.chain(project.kpis)\n .mapObject( (key, value) => {\n return key?.value;\n })\n .value();\n project.kpis = project_kpis;\n return new this.Project(project);\n };\n\n public serializeCompany(company) {\n var company_kpis = _.chain(company.kpis)\n .mapObject( (key, value) => {\n return key?.value;\n })\n .value();\n\n company.kpis = company_kpis;\n company.projects = _.map(company.projects, this.serializeProject);\n return new this.Company(company);\n };\n\n public serializeCompanyGroup(cg) {\n var company_group_kpis = _.chain(cg.kpis)\n .mapObject( (key, value) => {\n return key?.value;\n })\n .pick(\"sendouts\", \"interviews\", \"closings\", \"deals\")\n .value();\n\n cg.kpis = company_group_kpis;\n cg.companies = _.map(cg.companies, this.serializeCompany);\n return new this.Company(cg);\n };\n\n public pipelineQueryFn(params) {\n return this.ProjectReporting.$get(\"/project_reporting/project_pipeline\", params);\n };\n\n public updatePipelineProjectReporting (nv, ov) {\n if (nv.users && nv.users.length > 0) {\n var old_users =\n ov.users ||\n _.filter(this.users, (user: any) => {\n return user.resourceType == \"User\";\n });\n var diff1 = _.difference(_.pluck(nv.users, \"id\"), _.pluck(old_users, \"id\"));\n var diff2 = _.difference(_.pluck(old_users, \"id\"), _.pluck(nv.users, \"id\"));\n\n _.each(diff1, (id) => {\n var add_user = _.findWhere(nv.users, { id: id });\n this.Session.user.usersOnWhiteboard.push(add_user);\n this.initializePipelineSearch(add_user);\n });\n\n _.each(diff2, (id) => {\n var remove_user = _.where(old_users, { id: id });\n var idx = _.findIndex(this.Session.user.usersOnWhiteboard, { id: id });\n if (idx > -1) {\n this.Session.user.usersOnWhiteboard.splice(idx, 1);\n }\n });\n this.Session.user.save();\n } else if (nv.team) {\n if (\n _.findIndex(this.Session.user.usersOnWhiteboard, (userOrTeam: any) => {\n return userOrTeam.resourceType != \"User\" && nv.team.id == userOrTeam.id;\n }) > -1\n ) {\n return;\n }\n\n this.Session.user.usersOnWhiteboard.unshift(nv.team);\n\n this.pipelineOptions.userQuery.users = _.filter(this.Session.user.usersOnWhiteboard, (user: any) => {\n return user.resourceType == \"User\";\n });\n\n this.initializePipelineSearch(nv.team);\n }\n };\n\n public setTableAttributes(userOrTeam) {\n var defaultAttributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.ProjectReporting.whiteboardAttributes),\n [\n \"researcher\",\n \"candidate\",\n \"processStatus\",\n \"longlist\",\n \"qualification\",\n \"shortlist\",\n \"sendout\",\n \"firstInterview\",\n \"secondInterview\",\n \"closing\",\n \"deal\",\n ],\n [\"candidate\", \"processStatus\", \"sendout\", \"firstInterview\", \"secondInterview\", \"closing\", \"deal\"]\n );\n\n this.attributes[userOrTeam.id] = new this.PrsmTableAttributeService(\n \"project-pipeline-table-userOrTeam-\" + userOrTeam.id + \"-attributes\",\n defaultAttributes\n ).getAttributes();\n };\n\n public initializeLazyLoading(userOrTeam, params) {\n this.loading = true;\n var advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"company_name\", query: \"\" },\n out: { show: true, range: {} },\n deal: { show: true, range: {} },\n kpiFilter: {},\n });\n\n advancedQuery.deleteAdvancedSearchCondition(0);\n\n var advancedPipelineSearchOptions: any = {\n initFn: this.initializePipelineSearch,\n advancedQuery: advancedQuery,\n };\n\n this.setTableAttributes(userOrTeam);\n\n advancedPipelineSearchOptions.user = userOrTeam;\n\n _.defaults(userOrTeam, {\n $attributes: this.attributes[userOrTeam.id],\n $advancedQuery: advancedQuery,\n $advancePipelinedSearchOptions: advancedPipelineSearchOptions,\n });\n\n userOrTeam.$pipelinesLazyLoading = true;\n\n params = _.extend(\n { advanced: JSON.stringify(userOrTeam.$advancedQuery.beforeStringify()) },\n _.omit(this.stateParams, \"user_id\"),\n params\n );\n\n this.makeCollectionProxy(this.pipelineQueryFn.bind(this.ProjectReporting), params).then((result) => {\n userOrTeam.$currentLonglistEntries = result;\n userOrTeam.companyGroups = _.map(result.meta.companyGroups, this.serializeCompanyGroup);\n\n userOrTeam.$pipelinesLazyLoading = false;\n this.loading = false;\n });\n };\n\n public userOrTeamParams(userOrTeam) {\n if (userOrTeam.resourceType == \"User\") {\n return { user_id: userOrTeam.id };\n } else {\n this.stateParams[\"teams[]\"] = _.chain(this.stateParams[\"teams[]\"]).compact().flatten().value();\n this.teams = this.User.pickTranslatedTeams(this.stateParams[\"teams[]\"]);\n\n return { \"teams[]\": [userOrTeam.id] };\n }\n };\n\n public initializePipelineSearch(userOrTeam) {\n this.initializeLazyLoading(userOrTeam, this.userOrTeamParams(userOrTeam));\n };\n\n public removeUser (user) {\n var idx = _.findIndex(this.Session.user.usersOnWhiteboard, { id: user.id });\n if (idx > -1) {\n this.Session.user.usersOnWhiteboard.splice(idx, 1);\n\n this.Session.user.save();\n }\n };\n\n public setKpiKey (key, userOrTeam) {\n userOrTeam.$advancedQuery.kpiFilter[key] = !userOrTeam.$advancedQuery.kpiFilter[key];\n this.initializePipelineSearch(userOrTeam);\n };\n\n public longlistQueryFn(params) {\n return this.ProjectReporting.$get(\"/project_reporting/pipeline_longlist\", params);\n }\n\n public lazyLoadChunk(projectsChunk, userOrTeam) {\n this.$q.all(\n _.map(projectsChunk, (project) => {\n return this.loadProjectList(project, userOrTeam);\n })\n ).then( () => {\n if (this.lazyLoadingQueue.length > 0) {\n this.lazyLoadChunk(this.lazyLoadingQueue.pop(), userOrTeam);\n }\n });\n }\n\n public loadAllCompanyLonglists (projects, userOrTeam, isExtended) {\n if (isExtended) {\n this.lazyLoadingQueue = _.union(_.chunk(projects, 5), this.lazyLoadingQueue);\n this.lazyLoadChunk(this.lazyLoadingQueue.pop(), userOrTeam);\n }\n };\n\n public loadProjectList (project, userOrTeam) {\n if (project.kpis.sendout <= 0) {\n return;\n }\n project.$pipelinesLazyLoading = true;\n\n var advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"company_name\", query: \"\" },\n conditions: [{ modifier: \"must\", field: \"project_title\", query: project.name }],\n out: { show: true, range: {} },\n deal: { show: false, range: {} },\n kpiFilter: {},\n });\n\n var params = _.extend(\n { advanced: JSON.stringify(advancedQuery.beforeStringify()) },\n _.omit(this.stateParams, \"user_id\"),\n this.userOrTeamParams(userOrTeam)\n );\n return this.makeCollectionProxy(this.longlistQueryFn.bind(this.ProjectReporting), params).then( (result) => {\n project.$longlistEntries = result;\n project.$pipelinesLazyLoading = false;\n });\n };\n}\n","import ProjectPipelineCtrl from \"./project-pipeline.controller\";\nimport projectPipelineTemplate from \"./project-pipeline.template.html\";\n\nangular.module(\"project_reporting.views\").component(\"projectPipeline\", {\n bindings: {\n projectPipelineConfig: \"<\",\n $state$: \"<\",\n $transition$: \"<\",\n },\n template: projectPipelineTemplate,\n controller: ProjectPipelineCtrl,\n});\n","import { IStateService } from \"angular-ui-router\";\n\nexport default class ProjectReportingsCtrl {\n private options: { selectedYear: number; selectedUser: any };\n private allowProjectReporting: boolean;\n private kpis: any;\n private kpisPerYear: { kpis: any; userId: number; year: number; amountCoveredSollPerYear: number; amountCoveredIstPerYear: number }; \n private user: any;\n private isLegacyCalculation: boolean;\n private saving: boolean = false;\n\n static $inject = [\"$state\", \"Session\", \"UsersFactory\", \"ProjectReportingsFactory\"];\n\n constructor (private $state: IStateService, private Session: any, private User: any, private ProjectReporting: any) {\n this.allowProjectReporting = Session.user.allowProjectReporting;\n }\n\n public redirectToProjectReporting () {\n this.$state.go(\n \"root.project_reportings\",\n { user_id: this.options.selectedUser.id, year: this.options.selectedYear },\n { reload: true, inherit: false }\n );\n };\n\n public $onInit () {\n this.kpis = new this.ProjectReporting(this.kpisPerYear.kpis);\n this.user = this.User.findBy(this.kpisPerYear.userId);\n this.kpis.userId = this.kpisPerYear.userId;\n this.kpis.year = this.kpisPerYear.year;\n this.kpis.amountCoveredSollPerYear = this.kpisPerYear.amountCoveredSollPerYear;\n this.kpis.amountCoveredIstPerYear = this.kpisPerYear.amountCoveredIstPerYear;\n this.options = {\n selectedYear: this.kpisPerYear.year,\n selectedUser: this.user,\n };\n this.isLegacyCalculation = this.options.selectedYear < 2020;\n };\n\n public saveProjectReporting () {\n if (!this.saving) {\n this.saving = true;\n this.kpis.$post(this.kpis.$url(\"kpis_per_year.json\")).then( () => {\n this.saving = false;\n this.redirectToProjectReporting();\n });\n }\n };\n}","import ProjectReportingsCtrl from \"./index.controller\";\nimport indexTemplate from \"./index.template.html\";\n\nangular.module(\"project_reporting.views\").component(\"projectReportings\", {\n bindings: {\n kpisPerYear: \"<\",\n options: \"<\",\n },\n template: indexTemplate,\n controller: ProjectReportingsCtrl,\n});\n","export class DocumentExportModalCtrl {\n public pollingService: any;\n public project: any;\n public resolve: {\n project: any;\n };\n public loading: boolean;\n\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [\"$rootScope\", \"poller\", \"DocumentsFactory\"];\n constructor(private $rootScope: ng.IRootScopeService, private poller: any, private DocumentService: any) {\n this.$rootScope.$on(\"modal.closing\", () => {\n this.pollingService.remove();\n });\n }\n\n public $onInit() {\n this.project = this.resolve.project;\n this.loading = true;\n\n this.pollingService = this.poller.get(this.project.$url(\"/get_job_offer_doc.json\"), {\n catchError: true,\n delay: 2000,\n });\n\n this.pollingService.promise.then(null, null, (response: any) => {\n if (response.status === 200) {\n if (_.isEmpty(response.data)) {\n return;\n }\n this.loading = false;\n\n const doc: any = new this.DocumentService(response.data.data);\n\n this.pollingService.remove();\n this.modalInstance.close(doc);\n } else {\n this.pollingService.remove();\n this.cancel();\n }\n });\n }\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n }\n}\n","import { DocumentExportModalCtrl } from \"./project-document-export-modal.controller\";\nimport projectDocumentExportModalTemplate from \"./project-document-export-modal.template.html\";\n\nangular.module(\"projects.modals\").component(\"documentExportModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: projectDocumentExportModalTemplate,\n controller: DocumentExportModalCtrl,\n});\n","import { Language } from \"../../../languages/services/languages.service\";\n\nexport class ActiveProcessesModalCtrl {\n public user: any;\n public managers: any[];\n public project: any;\n public resolve: {\n managers: any[];\n project: any;\n };\n public managerContactEntries: any[];\n public availableManagerContactEntries: any[];\n public languages: { key: string; name: string }[];\n public activeProcessesEmail: {\n employees: any[];\n callback: (() => void) | null;\n locale: string | undefined;\n };\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [\"Session\"];\n constructor(private Session: any) {}\n\n public $onInit() {\n this.user = this.Session.user;\n this.managers = this.resolve.managers;\n this.project = this.resolve.project;\n\n this.managerContactEntries = _.each(this.managers, (manager) => {\n manager.$hasContactAddress = !_.isEmpty(manager.workEmail || manager.privateEmail);\n });\n this.availableManagerContactEntries = _.where(this.managerContactEntries, { $hasContactAddress: true });\n this.languages = Language.defaultOptions;\n\n this.activeProcessesEmail = {\n employees: this.managerContactEntries,\n callback: null,\n locale: _.first(this.languages)?.key,\n };\n }\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n }\n\n public save() {\n this.activeProcessesEmail.callback = this.project.createMessage(\n \"create_active_processes_email\",\n this.activeProcessesEmail\n );\n this.modalInstance.close(this.activeProcessesEmail);\n }\n}\n","import { ActiveProcessesModalCtrl } from \"./active-processes-modal.controller\";\nimport activeProcessesModalTemplate from \"./active-processes-modal.template.html\";\n\nangular.module(\"projects.modals\").component(\"activeProcessesModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: activeProcessesModalTemplate,\n controller: ActiveProcessesModalCtrl,\n});\n","export class EditSalesModalCtrl {\n public project: any;\n public resolve: {\n project: any;\n };\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n public filterTeams: () => boolean;\n\n static $inject = [];\n constructor() {}\n\n public $onInit() {\n this.project = this.resolve.project;\n this.project.snapshot();\n\n this.filterTeams = this._filterTeams.bind(this);\n }\n\n private _filterTeams(user: any): boolean {\n return _.isMatch(user, { team: this.project.projectManager.team });\n }\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n }\n\n public save() {\n this.modalInstance.close(this.project);\n }\n}\n","import { EditSalesModalCtrl } from \"./edit-sales-modal.controller\";\nimport editSalesModalTemplate from \"./edit-sales-modal.template.html\";\n\nangular.module(\"projects.modals\").component(\"editSalesModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: editSalesModalTemplate,\n controller: EditSalesModalCtrl,\n});\n","export class candidateSearchModalCtrl {\n public cpjoins: any[];\n public cpjoin: any;\n public autocomplete: any;\n public foundCpjoins: any[];\n public loading: boolean;\n private cancelers: ng.IDeferred[] = [];\n public excludes: any;\n public isClosing: any;\n public project: any;\n public resolve: {\n options: any;\n };\n\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [\"Autocompletes\", \"$q\"];\n constructor(private Autocompletes: any, private $q: ng.IQService) {}\n\n public $onInit() {\n _.extend(this, this.resolve.options);\n\n this.cpjoins = _.filter(this.cpjoins, (obj) => {\n return !_.findWhere(this.excludes, { id: obj.candidate.id });\n });\n this.cpjoin = _.first(this.cpjoins);\n\n if (this.autocomplete) {\n this.foundCpjoins = [];\n this.loading = false;\n this.cancelers = [];\n }\n }\n\n public searchCpjoins(viewValue: any) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(viewValue, \"candidate_by_project\", _.last(this.cancelers), \"project\", {\n project_id: this.project.id,\n is_closing: this.isClosing,\n }).then((results: any) => {\n if (!results) {\n return;\n }\n\n results.splice(0, 1); // remove query string from results list\n\n this.foundCpjoins = _.chain(results)\n .map((result: any) => {\n switch (result.resource_type) {\n case \"candidates_projects\":\n result.name = result.candidates_project.candidate.name;\n return _.extend(result.candidates_project, {\n resource_type: \"Kandidat\",\n });\n default:\n result.name = result.highlight[0];\n return _.extend(result, {\n resource_type: \"Query\",\n });\n }\n })\n .filter((obj: any) => {\n return !_.findWhere(this.excludes, { id: obj.candidate.id });\n })\n .value();\n this.loading = false;\n });\n }\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n }\n\n public chooseCandidate() {\n this.modalInstance.close(this.cpjoin);\n }\n}\n","import { candidateSearchModalCtrl } from \"./candidate-search-modal.controller\";\nimport candidateSearchModalTemplate from \"./candidate-search-modal.template.html\";\n\nangular.module(\"projects.modals\").component(\"candidateSearchModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: candidateSearchModalTemplate,\n controller: candidateSearchModalCtrl,\n});\n","import { Language } from \"../../../languages/services/languages.service\";\n\nexport class PitchModalCtrl {\n public user: any;\n public project: any;\n public employee: any;\n public documents: any[];\n public languages: { key: string; name: string }[];\n public availableManagerContactEntries: any[];\n public resolve: {\n managers: any[];\n project: any;\n };\n public pitchEmail: {\n employee: any;\n callback: null;\n locale: string | undefined;\n document: any;\n };\n public managerContactEntries: any[];\n public modalInstance: angular.ui.bootstrap.IModalInstanceService;\n\n static $inject = [\"$filter\", \"Session\"];\n constructor(private $filter: ng.IFilterService, private Session: any) {}\n\n public $onInit() {\n this.user = this.Session.user;\n this.managerContactEntries = _.each(this.resolve.managers, (manager: any) => {\n manager.$hasContactAddress = !_.isEmpty(manager.workEmail || manager.privateEmail);\n });\n this.availableManagerContactEntries = _.where(this.managerContactEntries, { $hasContactAddress: true });\n this.languages = Language.defaultOptions;\n this.employee = this.availableManagerContactEntries[0];\n this.project = this.resolve.project;\n this.documents = this.project.documents;\n\n this.pitchEmail = {\n employee: _.first(this.employee),\n callback: null,\n locale: _.first(this.languages)?.key,\n document: _.first(this.documents),\n };\n }\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n }\n\n public save() {\n if (_.isUndefined(this.pitchEmail.employee)) {\n window.alert(this.$filter(\"translate\")(\"SELECT_MANAGER_NOTICE\"));\n } else {\n this.pitchEmail.callback = this.project.createMessage(\"create_pitch_email\", this.pitchEmail);\n this.modalInstance.close(this.pitchEmail);\n }\n }\n}\n","import { PitchModalCtrl } from \"./pitch-modal.controller\";\nimport pitchModalTemplate from \"./pitch-modal.template.html\";\n\nangular.module(\"projects.modals\").component(\"pitchModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: pitchModalTemplate,\n controller: PitchModalCtrl,\n});\n","export class ProjectSearchCtrl {\n public foundProjects: any[] = [];\n public loading: boolean = false;\n private cancelers: ng.IDeferred[] = [];\n public advancedQuery: any;\n public query: string;\n public setData: (advancedQuery: any) => void;\n public remote: boolean;\n public advancedProjectSearchOptions: {\n remote: boolean;\n setData: (advancedQuery: any) => void;\n query: string;\n advancedQuery: any;\n };\n\n static $inject = [\"$state\", \"$q\", \"ProjectsFactory\", \"Autocompletes\"];\n constructor(\n private $state: angular.ui.IStateService,\n private $q: ng.IQService,\n private ProjectService: any,\n private Autocompletes: any\n ) {}\n\n public $onInit() {\n this.advancedQuery.resourceType = \"ProjectSearch\";\n\n this.advancedProjectSearchOptions = {\n remote: this.remote,\n setData: this.setData,\n query: this.query,\n advancedQuery: this.advancedQuery,\n };\n }\n\n public searchProjects(query) {\n if (query.length) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(query, \"project_title\", _.last(this.cancelers)).then((results) => {\n this.foundProjects = _.map(results, (result) => {\n switch (result.resource_type) {\n case \"project\":\n result.name = result.project.title;\n return _.extend(new this.ProjectService(result.project), {\n resource_type: \"Projekt\",\n fn: (id: number, query: string) => {\n this.advancedQuery.basicQuery = query;\n this.$state.go(\"root.projects.show\", this.advancedQuery.collectSearchParams({ project_id: id }), {\n reload: true,\n inherit: false,\n });\n },\n });\n default:\n result.name = result.highlight[0];\n return _.extend(result, {\n resource_type: \"Query\",\n fn: (id: number, query: string) => {\n this.search(query);\n },\n });\n }\n });\n this.loading = false;\n });\n } else {\n this.foundProjects = [];\n }\n }\n\n public search(query: string, routeFn?: any) {\n this.advancedQuery.basicQuery = query;\n\n if (!this.remote) {\n this.$state.go(\"root.projects\", this.advancedQuery.collectSearchParams(), { reload: true, inherit: false });\n } else {\n this.setData(this.advancedQuery.collectSearchParams());\n }\n }\n\n public onTypeAheadSelect(item, query) {\n if (item && item.id) {\n query = '\"' + item.name + '\"';\n }\n\n _.invoke(this.cancelers, \"resolve\");\n\n if (!this.remote && item && item.id) {\n item.fn(item.id, query);\n } else {\n this.search(query);\n }\n }\n}\nangular.module(\"projects.components\").controller(\"ProjectSearchCtrl\", [\n \"$state\",\n \"$q\",\n \"ProjectsFactory\",\n \"Autocompletes\",\n function ($state, $q, Project, Autocompletes) {\n var _this = this;\n _this.foundProjects = [];\n _this.loading = false;\n _this.cancelers = [];\n\n _this.$onInit = function () {\n _this.advancedQuery.resourceType = \"ProjectSearch\";\n\n _this.advancedProjectSearchOptions = {\n remote: _this.remote,\n setData: _this.setData(),\n query: _this.query,\n advancedQuery: _this.advancedQuery,\n };\n };\n },\n]);\n","import { ProjectSearchCtrl } from \"./project-search.controller\";\nimport projectSearchTemplate from \"./project-search.template.html\";\n\nangular.module(\"projects.components\").component(\"projectSearch\", {\n bindings: {\n savedSearches: \"=\",\n disableSavedSearch: \"@\",\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n },\n template: projectSearchTemplate,\n controller: ProjectSearchCtrl,\n});\n","export class CandidatesAutoSearchCtrl {\n public advancedQuery: any;\n public query: string;\n public project: any;\n public candidates: any; // makeCollectionProxy\n public attributes: any;\n public oldCandidatesSelected: any[];\n\n public candidatesLazyLoading: boolean;\n public showAutoSearch: boolean;\n\n static $inject = [\"CandidatesFactory\", \"SavedSearchesFactory\", \"makeCollectionProxy\", \"PrsmTableHelper\"];\n constructor(\n private CandidateService: any,\n private SavedSearchService: any,\n private makeCollectionProxy: any,\n private PrsmTableHelper: any\n ) {}\n\n public $onInit() {\n this.advancedQuery = new this.SavedSearchService();\n\n this.query = _.chain([\n this.tag_query(this.project.tags),\n this.tag_query(this.project.departments),\n this.tag_query(this.project.computerSkills),\n ])\n .compact()\n .map(function (tagQuery) {\n return \"(\" + tagQuery + \")\";\n })\n .join(\" AND \")\n .value();\n\n _.each(this.project.jobCategories, (jobCategory) => {\n this.advancedQuery.conditions.push({\n field: \"job_category\",\n modifier: \"must\",\n query: jobCategory,\n });\n });\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.CandidateService.defaultTableAttributes),\n [\"id\", \"name\", \"tags\", \"regions\", \"kpis\", \"projects\", \"responsibleUser\", \"languages\", \"documents\", \"createdAt\"],\n [\"id\", \"name\", \"tags\", \"regions\", \"kpis\"]\n );\n\n this.candidatesLazyLoading = false;\n this.showAutoSearch = false;\n\n this.oldCandidatesSelected = _.filter(this.candidates, (candidate) => {\n return candidate.$selectedForLonglist && !candidate.$selectedBySystem;\n });\n }\n\n public $doCheck() {\n let candidatesSelected: any = _.filter(this.candidates, (candidate) => {\n return candidate.$selectedForLonglist && !candidate.$selectedBySystem;\n });\n if (!angular.equals(candidatesSelected, this.oldCandidatesSelected)) {\n _.chain(candidatesSelected)\n .difference(this.oldCandidatesSelected)\n .each((candidate) => {\n candidate.addToProject(this.project);\n });\n this.oldCandidatesSelected = angular.copy(candidatesSelected);\n }\n }\n\n public startAutoSearch() {\n this.showAutoSearch = true;\n this.advancedQuery.basicQuery = this.query;\n this.updateCandidates(this.advancedQuery.collectSearchParams());\n }\n\n private tag_query(tags) {\n return _.chain(tags)\n .map((tag) => {\n return '\"' + tag.name + '\"';\n })\n .join(\" OR \")\n .value();\n }\n\n private initSearchResults(candidates) {\n let longlistEntries: any = this.getLonglistedCandidates();\n _.chain(candidates)\n .filter((candidate) => {\n return _.findWhere(longlistEntries, { id: candidate.id });\n })\n .each((candidate) => {\n candidate.$selectedForLonglist = true;\n candidate.$selectedBySystem = true;\n });\n this.candidates = candidates;\n this.candidatesLazyLoading = false;\n }\n\n private updateCandidates(newParams) {\n if (_.isUndefined(this.candidates)) {\n this.candidatesLazyLoading = true;\n this.makeCollectionProxy(this.CandidateService.query.bind(this.CandidateService), newParams).then(\n (candidates: any) => this.initSearchResults(candidates)\n );\n } else {\n this.candidates.search(newParams).then((candidates: any) => this.initSearchResults(candidates));\n }\n }\n\n private getLonglistedCandidates() {\n let ret: any = _.chain(this.project.candidatesProjects)\n .reject((cp) => {\n return !cp.candidate || cp.deleted;\n })\n .map((cp) => {\n return cp.candidate;\n })\n .value();\n return ret;\n }\n}\n","import { CandidatesAutoSearchCtrl } from \"./candidates-auto-search.controller\";\nimport candidatesAutoSearchTemplate from \"./candidates-auto-search.template.html\";\n\nangular.module(\"projects.components\").component(\"candidatesAutoSearch\", {\n bindings: {\n project: \"=\",\n savedSearches: \"=\",\n activeRow: \"=\",\n initialViewState: \"<\",\n },\n template: candidatesAutoSearchTemplate,\n controller: CandidatesAutoSearchCtrl,\n});\n","export class EmployeesProjectSearchCtrl {\n public advancedQuery: any;\n public query: string;\n public project: any;\n public employees: any; // makeCollectionProxy\n public attributes: any;\n private oldAdvancedQuery: any;\n\n public employeesLazyLoading: boolean;\n public showAutoSearch: boolean;\n\n static $inject = [\"EmployeesFactory\", \"SavedSearchesFactory\", \"makeCollectionProxy\", \"PrsmTableHelper\"];\n constructor(\n private EmployeeService: any,\n private SavedSearchService: any,\n private makeCollectionProxy: any,\n private PrsmTableHelper: any\n ) {\n this.employeesLazyLoading = false;\n this.showAutoSearch = false;\n this.oldAdvancedQuery = this.advancedQuery;\n }\n\n public $onInit() {\n this.advancedQuery = new this.SavedSearchService();\n\n _.each(this.project.tags, (tag) => {\n this.advancedQuery.conditions.push({\n field: \"tags\",\n modifier: \"must\",\n query: tag.name,\n });\n });\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n this.attributes = angular.extend(\n this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.EmployeeService.defaultTableAttributes),\n [\"id\", \"name\", \"company\", \"priority\", \"tags\", \"responsibleUser\", \"createdAt\"],\n [\"id\", \"name\", \"company\", \"tags\"]\n ),\n {\n projectlistContextMenu: {\n class: \"menu\",\n show: true,\n },\n }\n );\n }\n\n private initSearchResults(employees) {\n _.chain(employees)\n .filter((employee) => {\n return _.findWhere(this.project.employees, { id: employee.id });\n })\n .each((employee) => {\n employee.$isOnProjectList = true;\n });\n\n this.employees = employees;\n this.employeesLazyLoading = false;\n }\n\n public updateEmployees(newParams, oldParams) {\n var query = newParams.q || this.query || \"\";\n var params = { advanced: JSON.stringify(newParams || this.advancedQuery), q: query.replace(/\\//g, \" \") };\n\n if (_.isUndefined(this.employees)) {\n this.employeesLazyLoading = true;\n this.makeCollectionProxy(this.EmployeeService.query.bind(this.EmployeeService), params).then(\n this.initSearchResults.bind(this)\n );\n } else {\n this.employees.search(params).then(this.initSearchResults.bind(this));\n }\n }\n\n public $doCheck() {\n if (!angular.equals(this.oldAdvancedQuery, this.advancedQuery)) {\n this.updateEmployees(this.advancedQuery, this.oldAdvancedQuery);\n this.oldAdvancedQuery = angular.copy(this.advancedQuery);\n }\n }\n\n public startAutoSearch() {\n this.showAutoSearch = true;\n }\n\n public contextMenuOptions = {\n addToProject: (employee: any) => {\n employee.addToProject(this.project);\n },\n };\n}\n","import { EmployeesProjectSearchCtrl } from \"./employees-project-search.controller\";\nimport employeesProjectSearchTemplate from \"./employees-project-search.template.html\";\n\nangular.module(\"projects.components\").component(\"employeesProjectSearch\", {\n bindings: {\n project: \"=\",\n savedSearches: \"=\",\n activeRow: \"=\",\n },\n template: employeesProjectSearchTemplate,\n controller: EmployeesProjectSearchCtrl,\n});\n","export class ProjectSelectCtrl {\n private params: any;\n\n public foundProjects: any[] = [];\n public loading: boolean = false;\n private cancelers: ng.IDeferred[] = [];\n public object: any;\n\n public onChange: ($item: any) => void;\n\n static $inject = [\"$q\", \"$rootScope\", \"Autocompletes\", \"ProjectsFactory\"];\n\n constructor(\n private $q: ng.IQService,\n private $rootScope: ng.IRootScopeService,\n private Autocompletes: any,\n private ProjectService: any\n ) {}\n\n public searchProjects(viewValue) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n let resourceTypeParams: { [key: string]: any[] } = {\n \"Employee\": [\n viewValue,\n \"project_by_employee\",\n _.last(this.cancelers),\n \"employee\",\n { employee_id: this.object.id },\n ],\n \"Candidate\": [\n viewValue,\n \"project_by_candidate\",\n _.last(this.cancelers),\n \"candidate\",\n { candidate_id: this.object.id },\n ],\n \"Company\": [\n viewValue,\n \"project_by_company\",\n _.last(this.cancelers),\n \"company\",\n { company_id: this.object.id },\n ]\n };\n this.params = resourceTypeParams[this.object.resourceType];\n\n this.Autocompletes.autocomplete.apply(this, this.params).then((results) => {\n if (!results) {\n return;\n }\n\n results.splice(0, 1); // remove query string from results list\n\n this.foundProjects = _.chain(results)\n .map((result) => {\n switch (result.resource_type) {\n case \"candidates_projects\":\n return _.extend(new this.ProjectService(result.candidates_project.project), {\n resource_type: \"Project\",\n });\n case \"project\":\n return _.extend(new this.ProjectService(result), {\n resource_type: \"Project\",\n });\n default:\n result.name = result.highlight[0];\n return _.extend(result, {\n resource_type: \"Query\",\n });\n }\n })\n .value();\n this.loading = false;\n });\n }\n\n public triggerProjectSelectBroadcast($item, $model) {\n this.$rootScope.$broadcast(\"projectChanged\", $item);\n\n if (_.isFunction(this.onChange)) {\n this.onChange($item);\n }\n }\n}\n","import { ProjectSelectCtrl } from \"./project-select.controller\";\nimport projectSelectTemplate from \"./project-select.template.html\";\n\nangular.module(\"projects.components\").component(\"projectSelect\", {\n bindings: {\n object: \"=\",\n model: \"=\",\n onChange: \"&\",\n },\n template: projectSelectTemplate,\n controller: ProjectSelectCtrl,\n});\n","export class ProjectsCandidateSearchCtrl {\n public foundProjects: any[] = [];\n public loading: boolean = false;\n private cancelers: ng.IDeferred[] = [];\n public advancedQuery: any;\n public query: string;\n public remote: boolean;\n public candidate: any;\n public setData: () => (advancedQuery: any) => void;\n\n static $inject = [\"$state\", \"$q\", \"ProjectsFactory\", \"Autocompletes\"];\n constructor(\n private $state: angular.ui.IStateService,\n private $q: ng.IQService,\n private ProjectService: any,\n private Autocompletes: any\n ) {}\n\n public searchProjects(query) {\n if (query.length) {\n this.loading = true;\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n this.Autocompletes.autocomplete(query, \"project_title\", _.last(this.cancelers), [\n \"project_status_active\",\n \"only_company_project\",\n ]).then((results) => {\n this.foundProjects = _.map(results, (result) => {\n result.name = result.highlight[0];\n switch (result.resource_type) {\n case \"project\":\n return _.extend(new this.ProjectService(result.project), {\n resource_type: \"Projekt\",\n fn: (id, query) => {\n this.advancedQuery.basicQuery = query;\n this.$state.go(\"root.projects.show\", this.advancedQuery.collectSearchParams({ project_id: id }), {\n reload: true,\n inherit: false,\n });\n },\n });\n default:\n return _.extend(result, {\n resource_type: \"Query\",\n fn: function (id, query) {\n this.search(query);\n },\n });\n }\n });\n this.loading = false;\n });\n } else {\n this.foundProjects = [];\n }\n }\n\n public search(query, routeFn) {\n this.advancedQuery.basicQuery = query;\n\n if (!this.remote) {\n this.$state.go(\"root.projects\", this.advancedQuery.collectSearchParams(), { reload: true, inherit: false });\n } else {\n this.setData()(this.advancedQuery.collectSearchParams());\n }\n }\n\n public addProjectToCandidate(item) {\n if (!item || !item.id) {\n return;\n }\n\n this.$state.go(\"root.candidates.show.projects.show\", { candidate_id: this.candidate.id, project_id: item.id });\n this.candidate.addToProject(item);\n }\n}\n","import { ProjectsCandidateSearchCtrl } from \"./projects-candidate-search.controller\";\nimport projectsCandidateSearchTemplate from \"./projects-candidate-search.template.html\";\n\nangular.module(\"projects.components\").component(\"projectsCandidateSearch\", {\n bindings: {\n candidate: \"<\",\n query: \" string;\n public selectedProjects: any[];\n public priorities: Priority[];\n\n static $inject = [\"$rootScope\", \"$filter\", \"ProjectsFactory\"];\n constructor(\n private $rootScope: ng.IRootScopeService,\n private $filter: ng.IFilterService,\n private ProjectService: any\n ) {\n this.state = StateTransitionsConfig.state;\n }\n\n public $onInit() {\n Priority.getAll().then((priorities: Priority[]) => (this.priorities = priorities));\n }\n\n public remove(project) {\n var tmpPro = _.findIndex(this.selectedProjects, (p) => {\n return project.id == p.id;\n });\n if (tmpPro != -1) {\n this.selectedProjects.splice(tmpPro, 1);\n }\n }\n\n public projectStatusUpdate(project) {\n if (window.confirm(this.$filter(\"translate\")(\"CHANGE_PROJECT_STATUS_CONFIRMATION\"))) {\n new this.ProjectService({ id: project.id, projectStatus: project.projectStatus, saveBasics: true })\n .save()\n .then((result) => {\n project.snapshot();\n this.$rootScope.$broadcast(\"project_action_changed_\" + project.id);\n });\n } else {\n project.rollback(-1);\n }\n }\n\n public projectPriorityUpdate(project) {\n if (window.confirm(this.$filter(\"translate\")(\"CHANGE_PROJECT_PRIORITY_CONFIRMATION\"))) {\n new this.ProjectService({ id: project.id, priority: project.priority.id, saveBasics: true })\n .save()\n .then((result) => {\n project.snapshot();\n this.$rootScope.$broadcast(\"project_action_changed_\" + project.id);\n });\n } else {\n project.rollback(-1);\n }\n }\n}\n","import { ProjectsTableBodyControllerCtrl } from \"./projects-table-body.controller\";\nimport projectsTableBodyTemplate from \"./projects-table-body.template.html\";\n\nangular.module(\"projects.components\").component(\"projectsTableBody\", {\n bindings: {\n selectedProjects: \"=data\",\n attributes: \"=\",\n activeRow: \"<\",\n context: \"=\",\n statePrefix: \"@\",\n tableRowIdentifier: \"=\",\n initialViewState: \"<\",\n },\n template: projectsTableBodyTemplate,\n controller: ProjectsTableBodyControllerCtrl,\n});\n","import { AdvancedProjectsSearchCtrl } from \"./advanced-projects-search.controller\";\nimport advancedProjectsSearchTemplate from \"./advanced-projects-search.template.html\";\n\nangular.module(\"projects.components\").component(\"advancedProjectsSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n closing: \"&\",\n },\n template: advancedProjectsSearchTemplate,\n controller: AdvancedProjectsSearchCtrl,\n});\n","export class AdvancedProjectsSearchCtrl {\n public advancedQuery: any;\n private setData: () => void;\n private closing: () => void;\n\n constructor() {}\n\n public $onInit() {\n this.advancedQuery.name = undefined;\n this.advancedQuery.id = undefined;\n }\n\n public performAdvancedSearch() {\n this.setData();\n this.closing();\n }\n}\n","export class ProjectsListCtrl {\n public lazyLoading: boolean;\n public object: any;\n public advancedQuery: any;\n public advancedProjectsListSearchOptions: {\n advancedQuery: any;\n setData: (advancedQuery: any) => void;\n };\n public attributes: any;\n\n static $inject = [\"ProjectsFactory\", \"SavedSearchesFactory\", \"makeCollectionProxy\", \"PrsmTableHelper\"];\n constructor(\n private ProjectService: any,\n private SavedSearchService: any,\n private makeCollectionProxy: any,\n private PrsmTableHelper: any\n ) {}\n\n private initSearchResults(projects) {\n this.object.projects = projects;\n this.lazyLoading = false;\n }\n\n public updateProjects() {\n this.lazyLoading = true;\n\n var params = _.extend(this.object.params(), this.advancedQuery.collectSearchParams(), {\n advanced: JSON.stringify(this.advancedQuery),\n additional_pages: Math.min(this.object.projectsCount / 20 + 1, 3),\n });\n\n if (!_.isFunction(this.object.projects?.search)) {\n this.makeCollectionProxy(this.ProjectService.query.bind(this.ProjectService), params).then(\n this.initSearchResults.bind(this)\n );\n } else {\n this.object.projects.search(params).then(this.initSearchResults.bind(this));\n }\n }\n\n public $onInit() {\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.ProjectService.defaultTableAttributes),\n [\"id\", \"title\", \"projectManager\", \"kpis\", \"editableStatus\", \"priority\", \"createdAt\"],\n [\"id\", \"title\", \"kpis\", \"priority\", \"editableStatus\"]\n );\n\n this.advancedQuery = new this.SavedSearchService({\n defaultCondition: { modifier: \"must\", field: \"project_status\", query: \"\" },\n });\n this.advancedQuery.conditions.push({\n field: \"project_status\",\n modifier: \"must\",\n query: \"active\",\n });\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n this.updateProjects();\n this.advancedProjectsListSearchOptions = {\n setData: this.updateProjects.bind(this),\n advancedQuery: this.advancedQuery,\n };\n }\n}\n","import { ProjectsListCtrl } from \"./projects-list.controller\";\nimport projectsListTemplate from \"./projects-list.template.html\";\n\nangular.module(\"projects.components\").component(\"projectsList\", {\n bindings: {\n object: \"=\",\n initialViewState: \"<\",\n },\n template: projectsListTemplate,\n controller: ProjectsListCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport class ProjectsContextMenuCtrl {\n public loading: boolean;\n public initialViewState: any;\n public company: any;\n public onSaveError: () => void;\n\n static $inject = [\"$rootScope\", \"ProjectsFactory\", \"EditUtilMixin\"];\n constructor(private $rootScope: ng.IRootScopeService, private ProjectService: any, private EditUtilMixin: any) {}\n\n public $onInit() {\n angular.extend(this, this.EditUtilMixin, {\n state: StateTransitionsConfig.state,\n transitionOptions: StateTransitionsConfig.transitionOptions(this.initialViewState),\n });\n }\n\n public deactivateProject(project, index) {\n this.loading = true;\n new this.ProjectService({ id: project.id, projectStatus: \"inactive\", saveBasics: true }).save().then((result) => {\n this.$rootScope.$broadcast(\"project_action_changed_\" + project.id);\n this.company.projects.splice(index, 1);\n this.loading = false;\n }, this.onSaveError.bind(this));\n }\n}\n","import { ProjectsContextMenuCtrl } from \"./projects-context-menu.controller\";\nimport projectsContextMenuTemplate from \"./projects-context-menu.template.html\";\n\nangular.module(\"projects.components\").component(\"projectsContextMenu\", {\n bindings: {\n project: \"=\",\n statePrefix: \"=\",\n context: \"=\",\n cpjoin: \"=\",\n company: \"=\",\n initialViewState: \"<\",\n },\n template: projectsContextMenuTemplate,\n controller: ProjectsContextMenuCtrl,\n});\n","export class ProjectsAutoSearchCtrl {\n public projectsLazyLoading: boolean;\n public showAutoSearch: boolean;\n public advancedQuery: any;\n public query: string;\n public candidate: any;\n public attributes: any;\n public projects: any; // collectionProxy\n\n private oldProjectsSelected: any;\n\n static $inject = [\"$timeout\", \"ProjectsFactory\", \"SavedSearchesFactory\", \"makeCollectionProxy\", \"PrsmTableHelper\"];\n constructor(\n private $timeout: angular.ITimeoutService,\n private ProjectService: any,\n private SavedSearchService: any,\n private makeCollectionProxy: any,\n private PrsmTableHelper: any\n ) {}\n\n public $onInit() {\n this.advancedQuery = new this.SavedSearchService();\n\n this.query = _.chain([\n this.tag_query(this.candidate.tags),\n this.tag_query(this.candidate.departments),\n this.tag_query(this.candidate.computerSkills),\n ])\n .compact()\n .map((tagQuery) => {\n return \"(\" + tagQuery + \")\";\n })\n .join(\" AND \")\n .value();\n\n this.advancedQuery.basicQuery = this.query;\n _.each(this.candidate.jobCategories, (jobCategory) => {\n this.advancedQuery.conditions.push({\n field: \"job_category\",\n modifier: \"must\",\n query: jobCategory,\n });\n });\n\n this.advancedQuery.conditions.push({\n field: \"project_status\",\n modifier: \"must\",\n query: \"active\",\n });\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.ProjectService.defaultTableAttributes),\n [\"id\", \"title\", \"projectManager\", \"jobType\", \"tags\", \"editableStatus\", \"priority\", \"kpis\", \"createdAt\"],\n [\"id\", \"title\", \"projectManager\", \"jobType\", \"kpis\"]\n );\n\n this.oldProjectsSelected = _.filter(this.projects, (project) => {\n return project.$selectedForLonglist && !project.$selectedBySystem;\n });\n\n this.projectsLazyLoading = false;\n this.showAutoSearch = false;\n }\n\n public startAutoSearch() {\n this.showAutoSearch = true;\n this.$timeout(() => {\n this.updateProjects(this.advancedQuery.collectSearchParams());\n }, 1);\n }\n\n public updateProjects(newParams) {\n if (_.isUndefined(this.projects)) {\n this.projectsLazyLoading = true;\n this.makeCollectionProxy(this.ProjectService.query.bind(this.ProjectService), newParams).then(\n this.initSearchResults.bind(this)\n );\n } else {\n this.projects.search(newParams).then(this.initSearchResults.bind(this));\n }\n }\n\n public getLonglistedProjects() {\n var ret = _.chain(this.candidate.candidatesProjects)\n .reject((cp) => {\n return !cp.project || cp.deleted;\n })\n .map((cp) => {\n return cp.project;\n })\n .value();\n return ret;\n }\n\n private tag_query(tags) {\n return _.chain(tags)\n .map((tag) => {\n return '\"' + tag.name + '\"';\n })\n .join(\" OR \")\n .value();\n }\n\n private initSearchResults(projects) {\n var longlistEntries = this.getLonglistedProjects();\n _.chain(projects)\n .filter((project) => {\n return _.findWhere(longlistEntries, { id: project.id });\n })\n .each((project) => {\n project.$selectedForLonglist = true;\n project.$selectedBySystem = true;\n });\n this.projects = projects;\n this.projectsLazyLoading = false;\n }\n\n public $doCheck() {\n var projectsSelected = _.filter(this.projects, (project) => {\n return project.$selectedForLonglist && !project.$selectedBySystem;\n });\n if (!angular.equals(projectsSelected, this.oldProjectsSelected)) {\n _.chain(projectsSelected)\n .difference(this.oldProjectsSelected)\n .each((project) => {\n this.candidate.addToProject(project);\n });\n this.oldProjectsSelected = angular.copy(projectsSelected);\n }\n }\n}\n","import { ProjectsAutoSearchCtrl } from \"./projects-auto-search.controller\";\nimport projectsAutoSearchTemplate from \"./projects-auto-search.template.html\";\n\nangular.module(\"projects.components\").component(\"projectsAutoSearch\", {\n bindings: {\n candidate: \"=\",\n savedSearches: \"=\",\n activeRow: \"=\",\n initialViewState: \"<\",\n },\n template: projectsAutoSearchTemplate,\n controller: ProjectsAutoSearchCtrl,\n});\n","export class ProjectsAdvancedSearchCtrl {\n public advancedQuery: any;\n public advancedQueryCopy: any;\n public remote: boolean;\n private closing: () => void;\n private setData: () => (advancedQuery: any) => void;\n\n static $inject = [\"$state\"];\n constructor(private $state: angular.ui.IStateService) {}\n\n public $onInit() {\n this.advancedQueryCopy = angular.copy(this.advancedQuery);\n this.advancedQueryCopy.name = undefined;\n this.advancedQueryCopy.id = undefined;\n }\n\n public performAdvancedSearch() {\n if (!this.remote) {\n this.$state.go(\"root.projects\", this.advancedQueryCopy.collectSearchParams(), { reload: true, inherit: false });\n } else {\n _.extend(this.advancedQuery, this.advancedQueryCopy);\n this.setData()(this.advancedQueryCopy.collectSearchParams());\n this.closing();\n }\n }\n}\n","import { ProjectsAdvancedSearchCtrl } from \"./projects-advanced-search.controller\";\nimport projectsAdvancedSearchTemplate from \"./projects-advanced-search.template.html\";\n\nangular.module(\"projects.components\").component(\"projectsAdvancedSearch\", {\n bindings: {\n advancedQuery: \"=\",\n query: \"=\",\n remote: \"=\",\n setData: \"&\",\n closing: \"&\",\n },\n template: projectsAdvancedSearchTemplate,\n controller: ProjectsAdvancedSearchCtrl,\n});\n","export class SelectProcessStatusCtrl {\n public cp: any;\n public projectStatuses: string[];\n\n static $inject = [];\n constructor() {}\n}\n","import { SelectProcessStatusCtrl } from \"./select-process-status.controller\";\nimport selectProcessStatusTemplate from \"./select-process-status.template.html\";\n\nangular.module(\"projects.components\").component(\"selectProcessStatus\", {\n bindings: {\n cp: \"<\",\n projectStatuses: \"<\",\n },\n template: selectProcessStatusTemplate,\n controller: SelectProcessStatusCtrl,\n});\n","export class ProjectsShowCtrl {\n public project: any;\n public projectStatuses: string[];\n\n private deregActiveRowConnector: () => void;\n private deregUpdatedJobOffer: () => void;\n\n private initializeActiveRowConnector: (project: any) => () => void;\n\n static $inject = [\"$state\", \"$http\", \"$rootScope\", \"CandidatesFactory\", \"ProjectsFactory\", \"DeckControllerMixin\"];\n constructor(\n private $state: angular.ui.IStateService,\n private $http: ng.IHttpService,\n private $rootScope: IExtendedRootScopeService,\n private CandidateService: any,\n private ProjectService: any,\n private DeckControllerMixin: any\n ) {\n this.deregUpdatedJobOffer = this.$rootScope.$on(\"updatedJobOffer\", (event, jobOffer) => {\n var index = _.findIndex(this.project.jobOffers, _.matcher({ id: jobOffer.id }));\n if (index > -1) {\n this.project.jobOffers[index] = jobOffer;\n } else {\n this.project.jobOffers.push(jobOffer);\n }\n });\n }\n\n public $onInit() {\n angular.extend(this, this.DeckControllerMixin, {\n Project: this.ProjectService,\n });\n this.$rootScope.setPageTitle(this.project.title);\n\n if (this.$state.current.name.match(/^root.projects.(edit|show)$/g)) {\n if (this.project.candidatesProjectsCount > 0) {\n this.$http.get(this.project.$url(\"/first_longlist_entry\")).then(\n (result: { data: any }) => {\n var candidate = new this.CandidateService(result.data.data);\n this.$state.go(\n \"root.projects.show.candidate.show\",\n angular.extend(this.project.params(), candidate.params())\n );\n },\n (result_error: any) => {}\n );\n } else {\n if (this.project.employees.length > 0) {\n this.$state.go(\n \"root.projects.show.employee.show\",\n angular.extend(this.project.params(), this.project.employees[0].params())\n );\n } else {\n this.$state.go(\"root.projects.show\");\n }\n }\n }\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.project);\n }\n\n public textkernelDiffProject() {\n this.project.getDocumentExportModal(this.project).then((doc: any) => {\n doc.textkernelDiff();\n });\n }\n\n public $onDestroy() {\n this.deregUpdatedJobOffer();\n this.deregActiveRowConnector();\n }\n}\n","import { ProjectsShowCtrl } from \"./projects-show-view.controller\";\nimport projectsShowViewTemplate from \"./projects-show-view.template.html\";\n\nangular.module(\"projects.views\").component(\"projectsShowView\", {\n bindings: {\n project: \" void;\n\n private onStateChanged: (project: any) => void;\n private registerSaveHotkey: (callback: (...params) => void) => void;\n private initializeActiveRowConnector: (project: any) => () => void;\n private onSaveError: () => void;\n\n public saving: boolean;\n\n static $inject = [\"$state\", \"$rootScope\", \"$log\", \"EditUtilMixin\", \"DeckControllerMixin\"];\n constructor(\n private $state: angular.ui.IStateService,\n private $rootScope: IExtendedRootScopeService,\n private $log: ng.ILogService,\n private EditUtilMixin: any,\n private DeckControllerMixin: any\n ) {}\n\n public $onInit() {\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin);\n\n this.project.projectStatus =\n _.find(this.project.$class.statuses, (status: any) => {\n return status == this.project.projectStatus;\n }) || this.project.$class.statuses[0];\n\n this.onStateChanged(this.project);\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.project);\n this.registerSaveHotkey(this.saveProject);\n }\n\n public saveProject(route, params) {\n if (!this.saving) {\n this.saving = true;\n this.project.save().then((project: any) => {\n this.$log.debug(\"project successfully saved\");\n\n if (!this.project.id) {\n this.$rootScope.$broadcast(\"addProject\", project);\n }\n\n this.project.snapshot();\n this.$state.go(route || \"^.show\", params || project.params());\n }, this.onSaveError.bind(this));\n }\n }\n\n public $onDestroy() {\n this.deregActiveRowConnector();\n }\n};\n","import { ProjectsIAEditCtrl } from \"./projects-ia-edit-view.controller\";\nimport projectsIaEditViewTemplate from \"./projects-ia-edit-view.template.html\";\n\nangular.module(\"projects.views\").component(\"projectsIAEditView\", {\n bindings: {\n project: \" void;\n private deregCompanyChanged: () => void;\n private deregProjectDiff: () => void;\n\n private onSaveError: () => void;\n\n private onStateChanged: (project: any) => void;\n private registerSaveHotkey: (callback: (...params) => void) => void;\n private initializeActiveRowConnector: (project: any) => () => void;\n\n public project: any;\n public employees: any[];\n public loading: boolean;\n private cancelers: ng.IDeferred[] = [];\n public saving: boolean;\n public forceValidation: boolean;\n public projectForm: ng.IFormController;\n public sendoutLanguages: any[];\n public allLanguages: Language[];\n private languages: TLanguage[];\n private leadershipExperiences: TLeadershipExperience[];\n\n static $inject = [\n \"$state\",\n \"$log\",\n \"$rootScope\",\n \"$filter\",\n \"$q\",\n \"EmployeesFactory\",\n \"CompaniesFactory\",\n \"Autocompletes\",\n \"EditUtilMixin\",\n \"DeckControllerMixin\",\n ];\n constructor(\n private $state: angular.ui.IStateService,\n private $log: ng.ILogService,\n private $rootScope: IExtendedRootScopeService,\n private $filter: ng.IFilterService,\n private $q: ng.IQService,\n private EmployeeService: any,\n private CompanyService: any,\n private Autocompletes: any,\n private EditUtilMixin: any,\n private DeckControllerMixin: any\n ) {\n this.deregCompanyChanged = this.$rootScope.$on(\"companyChanged\", (event, company: any) => {\n if (_.isUndefined(company) || _.isNull(company)) {\n this.project.company = null;\n this.resetEmployees(this.project.company, undefined);\n } else {\n this.CompanyService.get(company.id).then((company_obj: any) => {\n this.project.company = company_obj;\n });\n this.resetEmployees(this.project.company, undefined);\n }\n });\n }\n\n private resetEmployees(nv, ov?: any) {\n if (_.isUndefined(nv)) {\n this.employees = [];\n this.project.employees = [];\n this.project.invoiceRecipient = undefined;\n } else {\n if (_.isUndefined(ov) || nv.id !== ov.id) {\n this.project.employees = [];\n this.project.invoiceRecipient = undefined;\n }\n this.searchAutocomplete(\"\"); // initialize with first 20 managers\n }\n }\n\n public $onInit() {\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin);\n\n this.project.projectStatus =\n _.find(this.project.$class.statuses, (status) => {\n return status == this.project.projectStatus;\n }) || this.project.$class.statuses[0];\n\n this.sendoutLanguages = Language.defaultOptions;\n this.allLanguages = _.map(this.languages, (language) => {\n var oneLanguage = _.find(this.project.projectsLanguages, (projLang) => {\n return projLang.language.id == language.id;\n });\n if (oneLanguage) {\n return oneLanguage;\n } else {\n return { id: null, language: language };\n }\n });\n\n if (this.project.id) {\n this.$rootScope.setPageTitle(this.project.title);\n } else {\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"PAGE_TITLE_NEW_PROJECT\"));\n }\n\n this.employees = this.project.company ? this.project.company.employees : this.project.employees;\n\n if (this.project.leadershipExperience) {\n this.project.leadershipExperience = _.find(this.leadershipExperiences, (leadershipExperience) => {\n return leadershipExperience.id === this.project.leadershipExperience.id;\n });\n }\n\n this.onStateChanged(this.project);\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.project);\n this.registerSaveHotkey(this.saveProject);\n }\n\n public searchAutocomplete(value) {\n if (this.project.company) {\n this.loading = true;\n\n _.invoke(this.cancelers, \"resolve\");\n this.cancelers.push(this.$q.defer());\n\n var params = [\n value,\n \"employee_name\",\n _.last(this.cancelers),\n \"company\",\n { company_ids: _.compact([this.project.company.id, this.project.company.parentId]) },\n ];\n\n this.Autocompletes.autocomplete.apply(this, params).then((results) => {\n if (!results) {\n this.employees = [];\n return;\n }\n\n results.splice(0, 1);\n this.employees = _.chain(results)\n .map((employee_obj) => {\n return new this.EmployeeService(employee_obj.employee);\n })\n .value();\n this.loading = false;\n });\n } else {\n this.employees = [];\n }\n }\n\n public analyzeOrigJobOfferLink() {\n if (!this.project.origJobOfferLink) {\n return;\n }\n if (this.saving) {\n return;\n }\n\n if (!this.project.title) {\n // set temporary title for validations\n this.project.title = this.$filter(\"translate\")(\"DEFAULT_PROJECT_TITLE\");\n }\n\n // save new project before analyzing\n this.saving = true;\n this.project.save().then((project) => {\n _.extend(this.project, project);\n\n this.saving = false;\n this.project.snapshot();\n\n this.project.getDocumentExportModal(this.project).then((doc: any) => {\n doc.textkernelDiff();\n });\n }, this.onSaveError.bind(this));\n }\n\n public saveProject(route, params) {\n if (this.saving) {\n return;\n }\n\n if (this.projectForm.$invalid) {\n window.alert(this.$filter(\"translate\")(\"COMPLETE_REQUIERED_FIELDS_NOTICE\"));\n this.forceValidation = true;\n return;\n }\n\n this.saving = true;\n this.project.save().then((project: any) => {\n this.$log.debug(\"project successfully saved\");\n\n if (!this.project.id) {\n this.$rootScope.$broadcast(\"addProject\", project);\n }\n\n this.project.snapshot();\n this.$state.go(route || \"^.show\", params || project.params());\n }, this.onSaveError.bind(this));\n }\n\n public $onDestroy() {\n this.deregProjectDiff();\n this.deregCompanyChanged();\n this.deregActiveRowConnector();\n }\n};\n","import { ProjectsEditCtrl } from \"./projects-edit-view.controller\";\nimport projectsEditViewTemplate from \"./projects-edit-view.template.html\";\n\nangular.module(\"projects.views\").component(\"projectsEditView\", {\n bindings: {\n project: \" Promise;\n public projectsLazyLoading: boolean = true;\n public projectExcelLoading: boolean = false;\n public advancedQuery: any;\n public query: string;\n public attributes: any;\n public steps: any[];\n public stateParams: any;\n public projects: any[];\n\n static $inject = [\n \"$state\",\n \"$http\",\n \"$rootScope\",\n \"$filter\",\n \"SavedSearchesFactory\",\n \"ProjectsFactory\",\n \"KPISteps\",\n \"sidebarStates\",\n \"PrsmTableAttributeService\",\n \"makeCollectionProxy\",\n \"Session\",\n ];\n constructor(\n private $state: angular.ui.IStateService,\n private $http: ng.IHttpService,\n private $rootScope: IExtendedRootScopeService,\n private $filter: ng.IFilterService,\n private SavedSearchService: any,\n private ProjectService: any,\n private KPISteps: any,\n public sidebarStates: any,\n private PrsmTableAttributeService: any,\n private makeCollectionProxy: any,\n private Session: any\n ) {}\n\n public canDownloadProjectList() {\n var currentUser = this.Session.user;\n return currentUser.allowDownloadProjectsExcelXlsx;\n }\n\n public setKpiKey(key) {\n this.advancedQuery.kpiFilter[key] = !this.advancedQuery.kpiFilter[key];\n this.advancedQuery.basicQuery = this.query;\n this.$state.go(\"root.projects\", this.advancedQuery.collectSearchParams(), { reload: true, inherit: false });\n }\n\n public $onInit() {\n this.attributes = new this.PrsmTableAttributeService(\n \"projects-index-table-attributes\",\n this.ProjectService.defaultTableAttributes\n ).getAttributes();\n\n angular.extend(this, {\n advancedQuery: _.defaults(this.advancedQuery, { kpiFilter: {} }),\n steps: _.map(this.KPISteps, function (value, key) {\n return { key: key, value: value };\n }),\n });\n\n this.$rootScope.setPageTitle(this.$filter(\"translate\")(\"PAGE_TITLE_MY_PROJECTS\"));\n\n if (this.stateParams.saved_search_id) {\n this.loader = this.SavedSearchService.results.bind(this.ProjectService);\n } else {\n this.loader = this.ProjectService.query.bind(this.ProjectService);\n }\n\n this.makeCollectionProxy(this.loader, this.stateParams)\n .then((projects) => {\n this.projects = projects;\n })\n .then(() => {\n this.projectsLazyLoading = false;\n });\n }\n\n public downloadProjectsExcel() {\n this.projectExcelLoading = true;\n this.$http({\n method: \"GET\",\n url: \"/projects/download_projects_excel\",\n responseType: \"arraybuffer\",\n headers: { Accept: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" },\n params: this.advancedQuery.collectSearchParams(),\n }).then(\n (response: angular.IHttpResponse) => {\n var blob = new Blob([response.data], {\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n });\n var link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(blob);\n link.download = \"projects.xlsx\";\n link.click();\n this.projectExcelLoading = false;\n },\n (error) => {\n console.log(\"Error downloading the file: \", error);\n this.projectExcelLoading = false;\n }\n );\n }\n}\n","import { ProjectsIndexCtrl } from \"./projects-index-view.controller\";\nimport projectsIndexViewTemplate from \"./projects-index-view.template.html\";\n\nangular.module(\"projects.views\").component(\"projectsIndexView\", {\n bindings: {\n savedSearches: \" void) & Cancelable;\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n public filterQuicklistName: string;\n\n static $inject = [\"$filter\", \"Session\"];\n\n constructor(private $filter: ng.IFilterService, private Session: any) {\n this.attributes = {\n name: {\n title: $filter(\"translate\")(\"NAME\"),\n show: true,\n },\n createdAt: {\n title: $filter(\"translate\")(\"CREATED_AT\"),\n show: false,\n class: \"date\",\n },\n menu: {\n long: true,\n },\n };\n\n this.throttled = _.throttle(this.updateFilteredQuicklists, 100);\n }\n\n private updateFilteredQuicklists(nv: any) {\n var tmp_quicklists = _.filter(this.quicklists, (quicklist: any) => {\n return quicklist.owner.id === this.Session.user.id || quicklist.readOnly === false;\n });\n this.filteredQuicklists = this.$filter(\"filter\")(tmp_quicklists, nv);\n }\n\n public $onInit() {\n this.quicklists = this.resolve.quicklists;\n }\n\n public $doCheck() {\n this.throttled(this.filterQuicklistName);\n }\n\n public cancel() {\n this.modalInstance.dismiss(\"cancel\");\n }\n\n public saveChanges() {\n this.modalInstance.close(this.quicklists);\n }\n}\n","import { ChooseQuicklistModalCtrl } from \"./choose-quicklist-modal.controller\";\nimport chooseQuicklistModalTemplate from \"./choose-quicklist-modal.template.html\";\n\nangular.module(\"quicklists.modals\").component(\"chooseQuicklistModal\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: chooseQuicklistModalTemplate,\n controller: ChooseQuicklistModalCtrl,\n});\n","import quicklistPriorityPopoverTemplate from \"../../../priorities/components/priority-popover/priority-popover.template.html\";\n\nexport class QuicklistsTableBodyCtrl {\n static $inject = [\"$templateCache\", \"QuicklistsFactory\", \"CandidatesFactory\", \"EmployeesFactory\", \"CompaniesFactory\"];\n\n constructor(\n private $templateCache: ng.ITemplateCacheService,\n private QuicklistService: any,\n public Candidate: any,\n public Employee: any,\n public Company: any\n ) {\n $templateCache.put(this.priorityPopoverTemplate, quicklistPriorityPopoverTemplate);\n\n this.draggingHelper = QuicklistService.draggingHelper;\n this.startCallback = QuicklistService.startCallback;\n }\n\n private priorityPopoverTemplate: string = \"priority-popover-template\";\n public draggingHelper: () => void;\n public startCallback: () => void;\n}\n","import { QuicklistsTableBodyCtrl } from \"../quicklists-table-body.controller\";\nimport quicklistsCandidatesTableBodyTemplate from \"./quicklists-candidates-table-body.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistsCandidatesTableBody\", {\n bindings: {\n candidates: \"=data\",\n quicklist: \"=list\",\n attributes: \"=\",\n tableRowIdentifier: \"=\",\n activeRow: \"=\",\n },\n template: quicklistsCandidatesTableBodyTemplate,\n controller: QuicklistsTableBodyCtrl,\n});\n","import { QuicklistsTableBodyCtrl } from \"../quicklists-table-body.controller\";\nimport quicklistsEmployeesTableBodyTemplate from \"./quicklists-employees-table-body.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistsEmployeesTableBody\", {\n bindings: {\n employees: \"=data\",\n quicklist: \"=list\",\n attributes: \"=\",\n tableRowIdentifier: \"=\",\n activeRow: \"=\",\n },\n template: quicklistsEmployeesTableBodyTemplate,\n controller: QuicklistsTableBodyCtrl,\n});\n","import { QuicklistsTableBodyCtrl } from \"../quicklists-table-body.controller\";\nimport quicklistsCompaniesTableBodyTemplate from \"./quicklists-companies-table-body.template.html\";\n\nangular.module(\"quicklists.components\").component(\"quicklistsCompaniesTableBody\", {\n bindings: {\n companies: \"=data\",\n quicklist: \"=list\",\n attributes: \"=\",\n tableRowIdentifier: \"=\",\n activeRow: \"=\",\n initialViewState: \"<\",\n },\n template: quicklistsCompaniesTableBodyTemplate,\n controller: QuicklistsTableBodyCtrl,\n});\n","export class QuicklistsSidebarCtrl {\n static $inject = [\"$rootScope\", \"$q\", \"$filter\", \"$timeout\", \"EditUtilMixin\", \"QuicklistsFactory\"];\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $q: ng.IQService,\n private $filter: ng.IFilterService,\n private $timeout: ng.ITimeoutService,\n private EditUtilMixin: any,\n private QuicklistService: any\n ) {}\n\n private deregUpdatedQuicklist: () => void;\n private deregActiveRowChanged: () => void;\n\n public newQuicklist: any;\n public quicklists: any[];\n\n public newQuicklistName: string;\n public createQuicklist: boolean;\n\n public activeRow: any;\n public descriptor: string;\n\n public $onInit() {\n this.deregUpdatedQuicklist = this.$rootScope.$on(\"updatedQuicklist\", (event: ng.IAngularEvent) => {\n this.QuicklistService.getAll().then((quicklists) => {\n this.quicklists = quicklists;\n _.each(this.quicklists, (quicklist) => {\n quicklist.listItems =\n angular.copy(quicklist.candidates) ||\n angular.copy(quicklist.managers) ||\n angular.copy(quicklist.companies) ||\n [];\n });\n });\n });\n\n this.createQuicklist = false;\n this.newQuicklist = new this.QuicklistService({ name: this.$filter(\"translate\")(\"NEW_QUICKLIST\") });\n\n this.deregActiveRowChanged = this.$rootScope.$on(\n \"activeRowChanged\",\n (event: ng.IAngularEvent, newActiveRow: any) => {\n if (this.activeRow && this.activeRow.resourceType == newActiveRow.resourceType) {\n this.activeRow = newActiveRow;\n }\n if (!this.activeRow && newActiveRow.resourceType == this.descriptor) {\n this.activeRow = newActiveRow;\n }\n }\n );\n }\n\n public onItemDrop(e: JQueryEventObject, ui: any) {\n this.newQuicklist.save().then((result: any) => {\n this.quicklists.push(result);\n result.add(this.newQuicklist.listItem);\n this.newQuicklist = new this.QuicklistService({ name: this.$filter(\"translate\")(\"NEW_QUICKLIST\") });\n }, this.EditUtilMixin.onSaveError.bind(this));\n }\n\n public onOver(e: JQueryEventObject, ui: any, quicklist: any) {\n if (!quicklist.isDroppableQuicklist(angular.element(ui.draggable).scope())) {\n angular.element(e.target).addClass(\"disabled\");\n }\n }\n\n public onOut(e: JQueryEventObject, ui: any) {\n angular.element(e.target).removeClass(\"disabled\");\n }\n\n public onDrop(e: JQueryEventObject, ui: any, quicklist: any) {\n var newlistItems = _.chain(quicklist.listItems).compact().indexBy(\"id\").values().value();\n\n _.each(newlistItems, function (listItem: any) {\n if (!quicklist.add(listItem)) {\n quicklist.listItems = _.without(quicklist.listItems, listItem);\n }\n });\n }\n\n public beforeDrop(e: JQueryEventObject, ui: any, quicklist: any) {\n var deferred = this.$q.defer();\n if (quicklist.isDroppableQuicklist(angular.element(ui.draggable).scope())) {\n deferred.resolve();\n } else {\n deferred.reject();\n }\n return deferred.promise;\n }\n\n public isDataDropArea(quicklist: any) {\n return !quicklist.isReadOnly();\n }\n\n public openNewQuicklist(e: JQueryEventObject) {\n this.createQuicklist = true;\n this.$timeout(() => {\n $(\"#newQuicklistName\").focus();\n }, 0);\n return false;\n }\n\n public createNewQuicklist() {\n new this.QuicklistService({ name: this.newQuicklistName }).create().then(this.handleResult.bind(this));\n }\n\n public $onDestroy() {\n this.deregUpdatedQuicklist();\n this.deregActiveRowChanged();\n }\n\n private handleResult(newQuicklist: any) {\n this.createQuicklist = false;\n this.quicklists.unshift(newQuicklist);\n this.newQuicklistName = \"\";\n }\n}\n","import { QuicklistsSidebarCtrl } from \"./sidebar.controller\";\nimport sidebarTemplate from \"./sidebar.template.html\";\n\nangular.module(\"quicklists.views\").component(\"quicklistSidebar\", {\n bindings: {},\n template: sidebarTemplate,\n controller: QuicklistsSidebarCtrl,\n});\n","export class QuicklistsShowCtrl {\n static $inject = [\"$rootScope\", \"$templateCache\", \"Session\", \"DeckControllerMixin\", \"KPISteps\", \"poller\"];\n\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $templateCache: ng.ITemplateCacheService,\n private Session: any,\n private DeckControllerMixin: any,\n private KPISteps: any,\n private poller: any\n ) {\n this.updateEntries = this.updateEntries.bind(this);\n this.setKpiKey = this.setKpiKey.bind(this);\n }\n\n private deregActiveRowConnector: () => void;\n\n public advancedQuery: any;\n public query: string;\n public quicklist: any;\n public quicklistEntriesLazyLoading: boolean;\n public stateParams: any;\n private initializeActiveRowConnector: (quicklist: any) => () => void;\n public allowDownloadFn: boolean;\n public steps: any;\n public downloadingPdf: boolean;\n\n public $onInit() {\n this.$templateCache.put(\n this.quicklist.getListTemplate(\"list\"),\n \"<\" +\n this.quicklist.getListTemplate(\"list\") +\n ' quicklist=\"$ctrl.quicklist\" ' +\n ' quicklist-entries-lazy-loading=\"$ctrl.quicklistEntriesLazyLoading\" ' +\n ' steps=\"$ctrl.steps\" ' +\n ' set-kpi-key=\"$ctrl.setKpiKey\" ' +\n ' advanced-query=\"$ctrl.advancedQuery\" >\"\n );\n\n this.$templateCache.put(\n this.quicklist.getListTemplate(\"search\"),\n \"<\" +\n this.quicklist.getListTemplate(\"search\") +\n ' query=\"$ctrl.query\" ' +\n ' advanced-query=\"$ctrl.advancedQuery\" ' +\n ' update-entries=\"$ctrl.updateEntries\" >\"\n );\n\n angular.extend(this, this.DeckControllerMixin, {\n allowDownloadFn: this.Session.user.allowQuicklistDownload,\n advancedQuery: _.defaults(this.advancedQuery, { kpiFilter: {} }),\n steps: _.map(this.KPISteps, (value, key) => {\n return { key: key, value: value };\n }),\n });\n\n this.updateEntries(this.advancedQuery.collectSearchParams());\n\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.quicklist);\n this.$rootScope.setPageTitle(this.quicklist.name);\n this.downloadingPdf = false;\n }\n\n public updateEntries(newParams: any): void {\n this.quicklistEntriesLazyLoading = true;\n this.quicklist.loadEntries(angular.merge(this.stateParams, newParams)).then(() => {\n this.quicklistEntriesLazyLoading = false;\n });\n }\n\n public setKpiKey(key: string) {\n this.advancedQuery.kpiFilter[key] = !this.advancedQuery.kpiFilter[key];\n this.advancedQuery.basicQuery = this.query;\n this.updateEntries(this.advancedQuery.collectSearchParams());\n }\n\n public isRemovableShare(user: any) {\n return user.id == this.Session.user.id;\n }\n\n public removeShare() {\n this.quicklist.deleteWrapper();\n }\n\n public $onDestroy() {\n this.deregActiveRowConnector();\n }\n\n public getQuicklistPdf() {\n this.downloadingPdf = true;\n var _this = this;\n const _quicklist = this.quicklist;\n\n _quicklist.$post(_quicklist.$url(\"/generate_pdf\")).then(() => {\n const pollingService = this.poller.get(_quicklist.$url(\"/pdf_status.json\"), { catchError: true, delay: 2000 });\n\n pollingService.promise.then(null, null, function (response) {\n if (response.status === 200) {\n // @ts-ignore\n if(response.data.data.pdf_download_url) {\n _quicklist.pdfDownloadUrl = response.data.data.pdf_download_url;\n window.open(_quicklist.pdfDownloadUrl, \"_blank\");\n pollingService.stop();\n pollingService.remove();\n _quicklist.$post(_quicklist.$url(\"/delete_document\"));\n _this.downloadingPdf = false;\n }\n } else {\n pollingService.remove();\n }\n });\n });\n }\n}\n","import { QuicklistsShowCtrl } from \"./show.controller\";\nimport quicklistsShowTemplate from \"./show.template.html\";\n\nangular.module(\"quicklists.views\").component(\"quicklistShowView\", {\n bindings: {\n quicklist: \" void;\n private deregActiveRowConnector: () => void;\n\n private registerSaveHotkey: (saveQuicklist: () => void) => void;\n private onStateChanged: (quicklistEdit: any) => () => void;\n private initializeActiveRowConnector: (quicklistEdit: any) => () => void;\n private onSaveError: () => void;\n\n public quicklist: any;\n public users: any[];\n public quicklistEdit: any;\n\n public $onInit() {\n this.QuicklistService.updateCache(this.quicklist);\n angular.extend(this, this.EditUtilMixin, this.DeckControllerMixin, {\n quicklistEdit: new this.QuicklistService(angular.copy(this.quicklist)),\n users: _.reject(this.users, (user: any) => {\n return user.id == this.Session.user.id;\n }),\n });\n this.$rootScope.setPageTitle(this.quicklistEdit.name);\n\n if (!this.quicklistEdit.isListOwner()) {\n this.$state.go(\"^.show\", this.quicklistEdit.params());\n }\n\n this.registerSaveHotkey(this.saveQuicklist.bind(this));\n this.deregOnStateChanged = this.onStateChanged(this.quicklistEdit);\n this.deregActiveRowConnector = this.initializeActiveRowConnector(this.quicklistEdit);\n }\n\n public saveQuicklist(route: any, params: any) {\n this.quicklistEdit.editMode = true;\n this.quicklistEdit.save().then((quicklist: any) => {\n this.quicklist.$outOfSync = true;\n this.quicklistEdit.snapshot();\n\n _.extend(this.quicklist, this.quicklistEdit);\n this.QuicklistService.updateCache(this.quicklist);\n\n this.$state.go(route || \"^.show\", params || quicklist.params());\n this.$rootScope.$broadcast(\"updatedQuicklist\");\n }, this.onSaveError.bind(this));\n }\n\n public $onDestroy() {\n this.deregOnStateChanged();\n this.deregActiveRowConnector();\n }\n}\n","import { QuicklistsEditCtrl } from \"./edit.controller\";\nimport quicklistsEditTemplate from \"./edit.template.html\";\n\nangular.module(\"quicklists.views\").component(\"quicklistEditView\", {\n bindings: {\n quicklist: \" deserialize(Region, data);\n this.serialize = serialize;\n });\n },\n ])\n\n .service(\"RegionsFactory\", Region);\n","import { Money } from \"../../../directives/money/services/money.service\";\n\nexport class ResearchCommissionsFormCtrl {\n static $inject = [\"ResearcherCommissionsFactory\"];\n\n constructor(private ResearcherCommissionService: any) {}\n\n public deal: any;\n\n public $onInit() {\n if (this.deal.researcherCommissions && this.deal.researcherCommissions.length === 0) {\n this.addResearcherCommission();\n }\n }\n\n public addResearcherCommission() {\n const rCommission = new this.ResearcherCommissionService({ commission: new Money() });\n rCommission.commission.inCents = true;\n this.deal.researcherCommissions.push(rCommission);\n }\n}\n","import { ResearchCommissionsFormCtrl } from \"./research-commissions-form.controller\";\nimport researcherCommissionsFormTemplate from \"./researcher-commissions-form.template.html\";\n\nangular.module(\"researcher_commissions.components\").component(\"researchCommissionsForm\", {\n bindings: {\n deal: \"=\",\n },\n controller: ResearchCommissionsFormCtrl,\n template: researcherCommissionsFormTemplate,\n});\n","import { Language } from \"../../../languages/services/languages.service\";\n\nexport class SavedSearchesCtrl {\n static $inject = [\"$filter\", \"SavedSearchesFactory\", \"focus\"];\n constructor(private $filter: ng.IFilterService, private SavedSearchService: any, private focus: any) {}\n\n public languageLevelInWords: any;\n public savedSearches: any[];\n public savedSearchCount: number;\n public advancedQuery: any;\n public query: string;\n public saved_search: any;\n public saved_search_name_enabled: boolean;\n public submitted: boolean;\n public statePrefix: string;\n public languages: Language[];\n\n public $onInit() {\n Language.getAll().then((languages) => (this.languages = languages));\n this.languageLevelInWords = Language.levelInWords;\n this.savedSearches = this.SavedSearchService.getAll(this.advancedQuery.resourceType);\n this.savedSearchCount = _.where(this.savedSearches, { system: false }).length;\n }\n\n public editSavedSearchName(saved_search: any) {\n if (saved_search) {\n this.saved_search = saved_search;\n _.defaults(this.saved_search, { name: this.query || \"\" });\n } else {\n this.saved_search = new this.SavedSearchService({ name: this.query || \"\" });\n }\n this.saved_search_name_enabled = true;\n this.focus(\"saved_search_name_focus\");\n this.submitted = false;\n return false;\n }\n\n public commitSavedSearchName() {\n if (!this.saved_search || this.saved_search.name.length === 0 || this.submitted === true) {\n this.saved_search_name_enabled = false;\n }\n }\n\n public abortSaveSearch() {\n this.saved_search_name_enabled = false;\n this.saved_search.name = \"\";\n }\n\n public saveSearch($event: ng.IAngularEvent) {\n if ($event) $event.preventDefault();\n this.submitted = true;\n this.saved_search_name_enabled = false;\n if (!_.isEqual(this.saved_search, this.advancedQuery)) {\n this.saved_search = new this.SavedSearchService(angular.copy(this.advancedQuery));\n }\n this.saved_search.id = undefined;\n // this.saved_search.saved_search_id = this.saved_search.id;\n this.saved_search.basicQuery = this.query;\n this.saved_search.save().then((res: any) => {\n if (!this.saved_search.id) {\n var new_search = new this.SavedSearchService(res);\n this.savedSearches.push(new_search);\n this.savedSearchCount = this.savedSearchCount + 1;\n this.SavedSearchService.addToCache(new_search);\n this.saved_search = new_search;\n _.extend(this.advancedQuery, new_search);\n } else {\n this.saved_search = res;\n _.extend(this.advancedQuery, res);\n }\n this.submitted = false;\n });\n return false;\n }\n\n public deleteSearch(search) {\n if (window.confirm(this.$filter(\"translate\")(\"CONFIRM_DELETE_SAVED_SEARCH_NOTICE\"))) {\n search.saved_search_id = search.id;\n search.delete().then(() => {\n this.SavedSearchService.invalidateCache();\n this.SavedSearchService.getAll(this.advancedQuery.resourceType).then((res: any) => {\n this.savedSearches = res;\n this.savedSearchCount = _.where(this.savedSearches, { system: false }).length;\n });\n });\n }\n }\n\n public state(params) {\n return this.statePrefix + \"(\" + params + \")\";\n }\n}\n","import { SavedSearchesCtrl } from \"./saved-searches.controller\";\nimport savedSearchesTemplate from \"./saved-searches.template.html\";\n\nangular.module(\"saved_searches.components\").component(\"savedSearches\", {\n bindings: {\n disableSavedSearch: \"=\",\n advancedQuery: \"=\",\n query: \"=\",\n statePrefix: \"@\",\n },\n template: savedSearchesTemplate,\n controller: SavedSearchesCtrl,\n});\n","import sendoutsContextMenuTemplate from \"./sendouts-context-menu.template.html\";\n\nangular.module(\"sendouts.components\").component(\"sendoutsContextMenu\", {\n bindings: {\n cpjoin: \"=\",\n statePrefix: \"@\",\n },\n template: sendoutsContextMenuTemplate,\n});\n","import { SendoutsTableBodyCtrl } from \"./sendouts-table-body.controller\";\nimport sendoutsTableBodyTemplate from \"./sendouts-table-body.template.html\";\n\nangular.module(\"sendouts.components\").component(\"sendoutsTableBody\", {\n bindings: {\n sendouts: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n },\n template: sendoutsTableBodyTemplate,\n controller: SendoutsTableBodyCtrl,\n});\n","import { StateTransitionsConfig } from \"../../../services/state-transitions-config.factory\";\n\nexport class SendoutsTableBodyCtrl {\n public state: (statePrefix: any, state: any, params: any) => string;\n\n constructor() {\n this.state = StateTransitionsConfig.state;\n }\n}\n","import { ActionType } from \"../../../action_types/services/action_types.service\";\nexport class SendoutsEpTableBodyCtrl {\n public state: (statePrefix: any, state: any, params: any) => string;\n\n static $inject = [\"$rootScope\", \"ActionsFactory\"];\n\n constructor(private $rootScope: IExtendedRootScopeService, private Action: any) {}\n\n private loading: boolean = false;\n private cpjoinActionChangedListener: () => void;\n\n public sendoutActions: any[];\n public cpjoin: any;\n public sendouts: any[];\n\n private initializeLegacySendoutsList() {\n this.sendoutActions = _.filter(this.cpjoin.actions(), (action: any) => {\n return (\n action.completedAt &&\n action.actionType.isSendoutAction() &&\n !_.find(this.sendouts, function (sendout) {\n return sendout.action.id === action.id;\n })\n );\n });\n\n this.loading = false;\n }\n\n private initializeSendoutsList() {\n this.sendouts = (this.cpjoin.expertProfile || {}).$sendouts;\n\n if (this.cpjoin.expertProfile && !this.cpjoin.expertProfile.isInitiativeProfile()) {\n this.loading = true;\n\n // Must load actions seperatly from the API\n _.once(() => {\n this.Action.lazyLoadingActions\n .bind(this)(this.cpjoin, {\n conditions: _.map(ActionType.filter([\"sendout\", \"profile-saved\"]), function (actionType: ActionType) {\n return { modifier: \"or\", field: \"action_type\", query: _.pick(actionType, \"typeName\", \"id\") };\n }),\n })\n .then(() => {\n if (this.cpjoin.actions().isMoreAvailable()) {\n this.cpjoin.actions().getMore().then(this.initializeLegacySendoutsList.bind(this));\n } else {\n this.initializeLegacySendoutsList();\n }\n });\n })();\n }\n }\n\n public $onInit() {\n this.cpjoinActionChangedListener = this.$rootScope.$on(\n \"cpjoin_action_changed_\" + this.cpjoin.id,\n this.initializeSendoutsList.bind(this)\n );\n\n this.initializeSendoutsList();\n }\n\n public $onDestroy() {\n this.cpjoinActionChangedListener();\n }\n}\n","import { SendoutsEpTableBodyCtrl } from \"./sendouts-ep-table-body.controller\";\nimport sendoutsEpTableBodyTemplate from \"./sendouts-ep-table-body.template.html\";\n\nangular.module(\"sendouts.components\").component(\"sendoutsEpTableBody\", {\n bindings: {\n cpjoin: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n },\n template: sendoutsEpTableBodyTemplate,\n controller: SendoutsEpTableBodyCtrl,\n});\n","export class SendoutsListCtrl {\n static $inject = [\"SavedSearchesFactory\", \"makeCollectionProxy\", \"CandidatesProjectsFactory\", \"PrsmTableHelper\"];\n constructor(\n private SavedSearch: any,\n private makeCollectionProxy: any,\n private CandidatesProjects: any,\n private PrsmTableHelper: any\n ) {}\n\n public lazyLoading: boolean;\n public object: any;\n public advancedQuery: any;\n public attributes: any;\n public advancedSendoutsListSearchOptions: any;\n\n private initSearchResults(sendouts) {\n this.object.sendouts = sendouts;\n this.lazyLoading = false;\n }\n\n public updateSendouts() {\n this.lazyLoading = true;\n\n var params = _.extend(this.object.params(), {\n advanced: JSON.stringify(this.advancedQuery),\n additional_pages: Math.min(this.object.sendoutsCount / 20 + 1, 3),\n });\n\n if (!_.isFunction(this.object.sendouts?.search)) {\n this.makeCollectionProxy(this.CandidatesProjects.query.bind(this.CandidatesProjects), params).then(\n this.initSearchResults.bind(this)\n );\n } else {\n this.object.sendouts.search(params).then(this.initSearchResults.bind(this));\n }\n }\n\n public $onInit() {\n this.attributes = this.PrsmTableHelper.setVisibleAttributes(\n angular.copy(this.CandidatesProjects.defaultTableAttributes),\n [\"name\", \"projectTitle\", \"sendoutAt\"],\n [\"name\", \"projectTitle\", \"sendoutAt\"]\n );\n\n this.advancedQuery = new this.SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"project_status\", query: \"\" },\n });\n\n this.advancedQuery.conditions.push({\n field: \"project_status\",\n modifier: \"must\",\n query: \"active\",\n });\n\n this.advancedQuery.deleteAdvancedSearchCondition(0);\n this.updateSendouts();\n this.advancedSendoutsListSearchOptions = {\n setData: this.updateSendouts.bind(this),\n advancedQuery: this.advancedQuery,\n };\n }\n}\n","import { SendoutsListCtrl } from \"./sendouts-list.controller\";\nimport sendoutsListTemplate from \"./sendouts-list.template.html\";\n\nangular.module(\"sendouts.components\").component(\"sendoutsList\", {\n bindings: {\n object: \"=\",\n initialViewState: \"<\",\n },\n template: sendoutsListTemplate,\n controller: SendoutsListCtrl,\n});\n","import { AdvancedSendoutsSearchCtrl } from \"./advanced-sendouts-search.controller\";\nimport advancedSendoutsSearchTemplate from \"./advanced-sendouts-search.template.html\";\n\nangular.module(\"sendouts.components\").component(\"advancedSendoutsSearch\", {\n bindings: {\n advancedQuery: \"=\",\n setData: \"=\",\n closing: \"&\",\n },\n template: advancedSendoutsSearchTemplate,\n controller: AdvancedSendoutsSearchCtrl,\n});\n","export class AdvancedSendoutsSearchCtrl {\n public advancedQuery: any;\n public setData: () => void;\n public closing: () => void;\n\n constructor() {}\n\n public $onInit() {\n this.advancedQuery.name = undefined;\n this.advancedQuery.id = undefined;\n }\n\n public performAdvancedSearch() {\n this.setData();\n this.closing();\n }\n}\n","import { Tag } from \"../../services/tags.service\";\nimport tagsListPopoverTemplate from \"./tags-list-popover.template.html\";\n\nexport class TagsListInlineCtrl {\n static $inject = [\"$templateCache\"];\n\n constructor(private $templateCache: ng.ITemplateCacheService) {\n this.tagsListPopoverTemplate = \"tags-list-popover-template\";\n $templateCache.put(this.tagsListPopoverTemplate, tagsListPopoverTemplate);\n }\n\n public groups: Record;\n public tags: Tag[];\n public tagsListPopoverTemplate: string;\n\n public $onInit() {\n this.groups = _.groupBy(this.tags, \"type\");\n }\n}\n","import { TagsListInlineCtrl } from \"./tags-list-inline.controller\";\nimport tagsListInlineTemplate from \"./tags-list-inline.template.html\";\n\nangular.module(\"tags.components\").component(\"tagsListInline\", {\n bindings: {\n tags: \"<\",\n },\n template: tagsListInlineTemplate,\n controller: TagsListInlineCtrl,\n});\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { baseClient, cached } from \"../../api-routing/base-client\";\nimport { TTag } from \"../tags\";\n\nconst TagCategories = {\n SkillTag: \"KNOWLEDGE\",\n ComputerSkill: \"TAG_COMPUTER_SKILLS\",\n Course: \"FIELDS_OF_STUDY\",\n Graduation: \"DEGREES\",\n Department: \"DEPARTMENTS\",\n};\n\nexport class Tag {\n private serviceName: string = \"TagsFactory\";\n private id: number;\n private type: string;\n private static $cacheInvalid = false;\n\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n\n public humanReadableType(): string {\n return TagCategories[this.type];\n }\n\n public static invalidateCache(invalid = true): void {\n Tag.$cacheInvalid = invalid;\n }\n\n @cached\n public static getAll() {\n return baseClient.tags.query().then((response) => {\n return response.body.data.map((element) => {\n return new Tag(element);\n });\n });\n }\n}\n","import { IAngularEvent } from \"angular\";\nimport { Tag } from \"../../services/tags.service\";\nexport class TagSearchCtrl {\n static $inject = [\"$rootScope\", \"$filter\", \"Autocompletes\"];\n constructor(\n private $rootScope: IExtendedRootScopeService,\n private $filter: ng.IFilterService,\n private Autocompletes: any\n ) {}\n\n private listenOnToUpdateDeregistration: () => void;\n private typeTagSearchChangedDeregistration: ng.IAngularEvent;\n public type: string;\n public initialLoad: boolean;\n public tagSuggestions: Tag[];\n private filters: () => Record;\n public listenOnToUpdate: string;\n\n public $onInit() {\n _.defaults(this, { placeholder: this.$filter(\"translate\")(\"TAGS\"), filters: angular.noop });\n\n if (this.initialLoad) {\n this.autocomplete(\"\");\n\n if (this.listenOnToUpdate) {\n this.listenOnToUpdateDeregistration = this.$rootScope.$on(this.listenOnToUpdate, () => {\n this.autocomplete(\"\");\n });\n }\n }\n }\n\n public autocomplete(text) {\n if (!text.length && !this.initialLoad) {\n this.tagSuggestions = [];\n return false;\n }\n\n let scope: string;\n\n if (this.type !== undefined) {\n scope = this.type;\n } else {\n scope = \"tags\";\n }\n\n let filter_params: Record = this.filters() || {};\n\n return this.Autocompletes.autocomplete(text, scope, undefined, _.keys(filter_params), _.values(filter_params)).then(\n (res) => {\n this.tagSuggestions = _.chain(res)\n .map((entry) => {\n return entry.tag ? new Tag(entry.tag) : null;\n })\n .compact()\n .uniq()\n .value();\n }\n );\n }\n\n public itemSelected() {\n if (this.type) {\n this.typeTagSearchChangedDeregistration = this.$rootScope.$broadcast(this.type + \"-tag-search-changed\");\n }\n if (this.initialLoad) {\n this.autocomplete(\"\");\n }\n }\n\n public $onDestroy() {\n [this.listenOnToUpdateDeregistration, this.typeTagSearchChangedDeregistration]\n .forEach((deregistration: IAngularEvent | (() => void)) => {\n if (angular.isFunction(deregistration)) deregistration();\n });\n }\n}\n","import { TagSearchCtrl } from \"./tag-search.controller\";\nimport tagSearchTemplate from \"./tag-search.template.html\";\n\nangular.module(\"tags.components\").component(\"tagSearch\", {\n bindings: {\n urModel: \"=\",\n type: \"@\",\n placeholder: \"@\",\n filters: \"&\",\n initialLoad: \"@\",\n listenOnToUpdate: \"@\",\n },\n template: tagSearchTemplate,\n controller: TagSearchCtrl,\n});\n","import tagsListTemplate from \"./tags-list.template.html\";\n\nangular.module(\"tags.components\").component(\"tagsList\", {\n bindings: {\n tags: \"<\"\n },\n template: tagsListTemplate,\n});\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Tag } from \"./tags.service\";\n\nangular\n .module(\"tags\")\n .factory(\"TagSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Tag, data);\n this.serialize = serialize;\n });\n },\n ])\n .service(\"TagFactory\", Tag);\n","export class TextkernelLonglistConfirmModalCtrl {\n static $inject = [\"$q\", \"Textkernel\"];\n constructor(private $q: angular.IQService, private Textkernel: any) {}\n\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n public loading: boolean;\n public errors: any[];\n public fromCandidate: any;\n public candidatesProjects: any[];\n private resolve: {\n fromCandidate: any;\n promises: ng.IPromise[];\n };\n\n public $onInit() {\n this.fromCandidate = this.resolve.fromCandidate;\n this.loading = true;\n\n this.$q.all(this.resolve.promises).then((results) => {\n results = _.partition(results, (result) => {\n return _.isNumber(result.status);\n });\n\n this.errors = results[0];\n this.candidatesProjects = results[1];\n\n _.each(this.candidatesProjects, (cpjoin) => {\n this.Textkernel.addHistoryPoint(\"tk-longlist\", cpjoin);\n });\n\n this.loading = false;\n });\n }\n\n public ok() {\n this.modalInstance.close(true);\n }\n\n public cancel() {\n this.modalInstance.close(false);\n }\n}\n","import { TextkernelLonglistConfirmModalCtrl } from \"./textkernel-longlist-confirm.controller\";\nimport textkernelLonglistConfirmTemplate from \"./textkernel-longlist-confirm.template.html\";\n\nangular.module(\"textkernel.modals\").component(\"textkernelLonglistConfirm\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: textkernelLonglistConfirmTemplate,\n controller: TextkernelLonglistConfirmModalCtrl,\n});\n","export class TextkernelOpenSearchModalCtrl {\n static $inject = [\"$window\", \"Textkernel\"];\n constructor(private $window: angular.IWindowService, private Textkernel: any) {\n angular.element(this.$window).on(\"message\", this.Textkernel.receiveMessage);\n }\n\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n public textkernelSearchUrl: string;\n private resolve: {\n object: any;\n };\n\n public $onInit() {\n this.textkernelSearchUrl = this.Textkernel.getSearchUrl(this.resolve.object);\n\n this.Textkernel.addTrackingPoint(\"opened_\" + this.resolve.object.resourceType);\n }\n\n public ok() {\n this.modalInstance.close(true);\n }\n\n public cancel() {\n this.modalInstance.close(false);\n }\n\n // de-register postMessage handler\n\n private deregTKEvents() {\n angular.element(this.$window).off(\"message\", this.Textkernel.receiveMessage);\n }\n\n public $onDestroy() {\n this.deregTKEvents();\n }\n}\n","import { TextkernelOpenSearchModalCtrl } from \"./textkernel-open-search.controller\";\nimport textkernelOpenSearchTemplate from \"./textkernel-open-search.template.html\";\n\nangular.module(\"textkernel.modals\").component(\"textkernelOpenSearch\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: textkernelOpenSearchTemplate,\n controller: TextkernelOpenSearchModalCtrl,\n});\n","export class TextkernelImportFinishedModalCtrl {\n static $inject = [\"$q\", \"Textkernel\"];\n constructor(private $q: angular.IQService, private Textkernel: any) {}\n\n private modalInstance: angular.ui.bootstrap.IModalInstanceService;\n public loading: boolean;\n public projects: any[];\n private resolve: {\n projects: any[];\n promises: ng.IPromise[];\n };\n\n public $onInit() {\n this.projects = this.resolve.projects;\n this.loading = true;\n\n this.$q.all(this.resolve.promises).finally(() => {\n _.each(this.projects, (cpjoin) => {\n this.Textkernel.addHistoryPoint(\"tk-projekt-created\", cpjoin);\n });\n\n this.loading = false;\n });\n }\n\n public ok() {\n this.modalInstance.close(true);\n }\n\n public cancel() {\n this.modalInstance.close(false);\n }\n}\n","import { TextkernelImportFinishedModalCtrl } from \"./textkernel-import-finished.controller\";\nimport textkernelImportFinishedTemplate from \"./textkernel-import-finished.template.html\";\n\nangular.module(\"textkernel.modals\").component(\"textkernelImportFinished\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: textkernelImportFinishedTemplate,\n controller: TextkernelImportFinishedModalCtrl,\n});\n","//= require ../textkernel.module.js\n\nimport { ActionType } from \"../../action_types/services/action_types.service\";\n\nangular.module(\"textkernel\").factory(\"Textkernel\", [\n \"TextkernelModalMixin\",\n \"ProjectsFactory\",\n \"CandidatesFactory\",\n \"UsersFactory\",\n \"ActionsFactory\",\n \"$q\",\n \"Session\",\n function (TextkernelModal, Project, Candidate, User, Action, $q, Session) {\n var trustedOrigins = [\"https://staging.textkernel.de\", \"https://sso.textkernel.de\", \"https://home.textkernel.de\"];\n\n function addTrackingPoint(name) {\n (User).$post(User.$url(\"tk_tracking_point.json\"), { name: name });\n }\n\n async function addHistoryPoint(actionType, object) {\n let actionTypes: ActionType[] = await ActionType.getAll();\n var actionTypeObj = _.findWhere(actionTypes, { typeName: actionType });\n\n if (actionType && object) {\n var attributes = {\n actionable_type: object.resourceType,\n actionable_id: object.id,\n action_type: actionTypeObj,\n user: Session.user,\n };\n\n new Action(attributes).saveCustomNote(object);\n }\n }\n\n function addJobToLonglist(data) {\n var promises;\n var fromCandidate;\n\n if (data.hasOwnProperty(\"jobs\") && data.hasOwnProperty(\"candidateId\")) {\n data.jobs = decodeURIComponent(data.jobs).split(\",\");\n fromCandidate = true;\n\n promises = _.map(data.jobs, function (jobId) {\n return new Project({ id: jobId }).addCandidate(new Candidate({ id: data.candidateId }));\n });\n }\n\n if (data.hasOwnProperty(\"candidates\") && data.hasOwnProperty(\"jobId\")) {\n data.candidates = decodeURIComponent(data.candidates).split(\",\");\n\n promises = _.map(data.candidates, function (candidateId) {\n return new Project({ id: data.jobId }).addCandidate(new Candidate({ id: candidateId }));\n });\n }\n\n promises = _.map(promises, function (promise) {\n return promise.catch(function (res) {\n return res;\n });\n });\n\n new Project().textkernelLonglistConfirm(promises, fromCandidate);\n }\n\n function addJob(data) {\n if (data.hasOwnProperty(\"jobs\") && data.hasOwnProperty(\"candidateId\")) {\n data.jobs = decodeURIComponent(data.jobs).split(\",\");\n\n var projects = [];\n\n var promises = _.map(data.jobs, function (tkJobId) {\n return (Project).$post(Project.$url(\"tk_create.json\"), { tk_id: tkJobId }).then(function (project) {\n projects.push(project);\n return project.addCandidate(new Candidate({ id: data.candidateId }));\n });\n });\n\n new Project().textkernelImportFinished(projects, promises);\n }\n }\n\n function getSearchUrl(object) {\n return object.$url(\"/textkernel_search\");\n }\n\n function receiveMessage(event) {\n // Do we trust the sender of this message? (might be\n // different from what we originally opened, for example).\n\n if (_.indexOf(trustedOrigins, event.originalEvent.origin) < 0) return;\n\n var data = _.chain(event.originalEvent.data.split(\"&\"))\n .map(function (item) {\n if (item) {\n return item.split(\"=\");\n }\n })\n .compact()\n .object()\n .value();\n\n switch (data.action) {\n case \"TK_AddToLonglist\":\n addJobToLonglist(data);\n break;\n case \"TK_AddJob\":\n addJob(data);\n break;\n }\n }\n\n return {\n receiveMessage: receiveMessage,\n getSearchUrl: getSearchUrl,\n addTrackingPoint: addTrackingPoint,\n addHistoryPoint: addHistoryPoint,\n };\n },\n]);\n","import { camelCase } from \"change-case-all\";\nimport deepMapKeys from \"deep-map-keys\";\n\nimport { TTracking } from \"../trackings\";\n\nexport class Tracking {\n public id: number;\n public createdAt: string;\n userId?: number;\n static $inject = [];\n\n constructor(fields?: Partial) {\n if (fields) Object.assign(this, deepMapKeys>(fields, camelCase));\n }\n}\n","import { deserialize, serialize } from \"../../services/generic-rails-serializer.service\";\nimport { Tracking } from \"./trackings.factory\";\n\nangular.module(\"trackings\").factory(\"TrackingsSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = (data) => deserialize(Tracking, data);\n this.serialize = serialize;\n });\n },\n]);\n","//= ../components.module.js\nimport { Tracking } from \"../../services/trackings.factory\";\n\nangular.module(\"trackings.components\").controller(\"TrackingsCtrl\", [\n \"$http\",\n \"TrackingsSerializer\",\n function ($http, TrackingsSerializer) {\n var _this = this;\n _this.$onInit = function () {\n _this.loading = true;\n $http.get(_this.action.$url(\"/trackings.json\")).then(function (result) {\n const apiResponse = result.data;\n _this.count = apiResponse.meta.count;\n const trackings: Tracking[] = new TrackingsSerializer().deserialize(apiResponse.data.trackings);\n _this.last = _.chain(trackings).sortBy(\"createdAt\").last().value();\n _this.loading = false;\n });\n };\n },\n]);\n","export class TransactionBasisListCtrl {\n static $inject = [\"$filter\"];\n public transactionBasesListAttributes: any;\n constructor(private $filter: angular.IFilterService) {\n this.transactionBasesListAttributes = {\n name: {\n title: $filter(\"translate\")(\"NAME\"),\n show: true,\n fixedWidth: true,\n class: \"title\",\n },\n startDate: {\n title: $filter(\"translate\")(\"BEGIN\"),\n show: true,\n class: \"date\",\n },\n endDate: {\n title: $filter(\"translate\")(\"END\"),\n show: true,\n class: \"date\",\n },\n surchargePercentage: {\n title: $filter(\"translate\")(\"SURCHARGE_PERCENTAGE\"),\n show: false,\n class: \"minimal\",\n },\n periodOfPayment: {\n title: $filter(\"translate\")(\"DAYS_FOR_TERM_OF_PAYMENT\"),\n show: false,\n class: \"minimal\",\n },\n brokerage: {\n title: $filter(\"translate\")(\"COMMISSION_PERCENTAGE\"),\n show: true,\n class: \"longer\",\n },\n };\n }\n}\n","import { TransactionBasisListCtrl } from \"./transaction-basis-list.controller\";\nimport transactionBasisListTemplate from \"./transaction-basis-list.template.html\";\n\nangular.module(\"transaction_bases.components\").component(\"transactionBasisList\", {\n bindings: {\n transactionBases: \"=\",\n },\n template: transactionBasisListTemplate,\n controller: TransactionBasisListCtrl,\n});\n","import transactionBasisTableBodyTemplate from \"./transaction-basis-table-body.template.html\";\n\nangular.module(\"transaction_bases.components\").component(\"transactionBasisTableBody\", {\n bindings: {\n transactionBases: \"=data\",\n attributes: \"=\",\n tableRowIdentifier: \"=\",\n },\n template: transactionBasisTableBodyTemplate,\n});\n","import { CompaniesTransactionBasis } from \"../../../companies_transaction_bases/services/companies_transaction_bases.service\";\nimport { PERIOD_OF_PAYMENT_OPTIONS, TransactionBasis } from \"../../services/transaction_bases.service\";\n\nimport transactionBasisPopoverTemplate from \"../../../companies/components/transaction-basis-popover/transaction-basis-popover.template.html\";\n\nexport class TransactionBasisFormCtrl {\n static $inject = [\"$templateCache\", \"$log\"];\n\n public transactionBasesTypes: TransactionBasis[];\n public periodOfPaymentOptions: any;\n public transactionBases: CompaniesTransactionBasis[];\n public companyId: number;\n\n constructor(private $templateCache: angular.ITemplateCacheService, private $log: angular.ILogService) {\n var popoverTemplate = \"transaction-basis-popover\";\n $templateCache.put(popoverTemplate, transactionBasisPopoverTemplate);\n }\n\n public $onInit() {\n TransactionBasis.getAllForCompanies().then((transactionBases: TransactionBasis[]) => {\n this.transactionBasesTypes = transactionBases;\n });\n\n this.periodOfPaymentOptions = PERIOD_OF_PAYMENT_OPTIONS;\n }\n\n public addTransactionBasis() {\n const newCompaniesTransactionBasis = new CompaniesTransactionBasis({\n companyId: this.companyId,\n contractType: _.first(_.sortBy(this.transactionBasesTypes, \"id\")),\n });\n\n if (this.companyId) {\n // Save the new companies transaction basis if company is already saved\n newCompaniesTransactionBasis.save().then((savedCompaniesTransactionBases: CompaniesTransactionBasis) => {\n const savedCTB = new CompaniesTransactionBasis(savedCompaniesTransactionBases);\n this.$log.debug(\"Created CompaniesTransactionBase: \", savedCTB);\n this.transactionBases.push(savedCTB);\n });\n } else {\n this.transactionBases.push(newCompaniesTransactionBasis);\n }\n }\n\n public deleteTransactionBasis(index) {\n if (this.companyId) {\n this.transactionBases[index].delete().then((isDeleted: boolean) => {\n this.$log.debug(\"Deleted CompaniesTransactionBase:\", isDeleted);\n this.transactionBases.splice(index, 1);\n });\n } else {\n this.transactionBases.splice(index, 1);\n }\n }\n}\n","import { TransactionBasisFormCtrl } from \"./transaction-basis-form.controller\";\nimport transactionBasisFormTemplate from \"./transaction-basis-form.template.html\";\n\nangular.module(\"transaction_bases.components\").component(\"transactionBasisForm\", {\n bindings: {\n transactionBases: \"=\",\n companyId: \"<\",\n },\n template: transactionBasisFormTemplate,\n controller: TransactionBasisFormCtrl,\n});\n","import { snakeCase } from \"change-case-all\";\nimport { deepMapKeysMega } from \"../../api-routing/deep-map-keys-mega\";\n\nimport { TTransactionBases } from \"../transaction_bases\";\nimport { TransactionBasis } from \"./transaction_bases.service\";\n\nangular\n .module(\"transaction_bases\")\n .factory(\"TransactionBasesSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return _.isArray(data) ? data.map((element) => new TransactionBasis(element)) : new TransactionBasis(data);\n };\n this.serialize = function (data) {\n return deepMapKeysMega>(data, snakeCase);\n };\n });\n },\n ])\n .service(\"TransactionBasesFactory\", TransactionBasis);\n","//= require ../modals.module.js\nimport { Language } from \"../../../languages/services/languages.service\";\nangular\n .module(\"users.modals\")\n\n .controller(\"AccountSettingsModalCtrl\", [\n \"$rootScope\",\n \"$sanitize\",\n \"$sce\",\n \"$log\",\n \"$cookies\",\n \"$filter\",\n \"$translate\",\n \"$window\",\n \"amMoment\",\n \"csrfCookieName\",\n \"EditUtilMixin\",\n \"FileUploader\",\n \"UsersFactory\",\n \"PrsmTableHelper\",\n \"$state\",\n \"SavedSearchesFactory\",\n \"Currencies\",\n function (\n $rootScope,\n $sanitize,\n $sce,\n $log,\n $cookies,\n $filter,\n $translate,\n $window,\n amMoment,\n csrfCookieName,\n EditUtilMixin,\n FileUploader,\n User,\n PrsmTableHelper,\n $state,\n SavedSearch,\n Currencies\n ) {\n var _this = this;\n _this.currencies = Currencies;\n _this.languages = Language.defaultOptions;\n\n function initializeUploader() {\n if (!_this.uploader) {\n _this.uploader = new FileUploader({\n url: _this.selectedUser.$url(),\n alias: \"upload_users_photo\",\n removeAfterUpload: true,\n method: \"PUT\",\n autoUpload: true,\n //queueLimit: 1,\n headers: {\n \"X-CSRF-TOKEN\": $cookies.get(csrfCookieName),\n },\n onSuccessItem: function (item, response) {\n $log.debug(\"Photo upload complete\");\n\n //update user object\n _this.selectedUser.photo = response.data.photo;\n },\n onCompleteAll: function () {\n //$state.go('^.show', _this.candidate.params());\n },\n onErrorItem: function (item, response, status, headers) {\n window.alert($filter(\"translate\")(\"ERROR_WHILE_SAVING_NOTICE\"));\n window.rollbar.error(\"Users Photo upload failed\", {\n status: status,\n file_info: item.file,\n url: item.url,\n });\n },\n });\n\n _this.uploader.filters.push({\n name: \"fileExtensionFilter\",\n fn: function (item) {\n return /\\/(png|jpg|jpeg|gif)$/.test(item.type);\n },\n });\n } else {\n _this.uploader.headers = {\n \"X-CSRF-TOKEN\": $cookies.get(csrfCookieName),\n };\n _this.uploader.url = _this.selectedUser.$url();\n }\n }\n\n _this.$onInit = function () {\n angular.extend(_this, EditUtilMixin, {\n saving: false,\n selectedUser: _this.resolve.user,\n });\n\n initializeUploader();\n };\n\n var deregLoginConfirmed = $rootScope.$on(\"event:auth-loginConfirmed\", initializeUploader);\n\n _this.$onDestroy = function () {\n deregLoginConfirmed();\n };\n\n _this.clearTableSettings = function () {\n if (window.confirm($filter(\"translate\")(\"RESET_TABLE_CONFIGURATIONS_NOTICE\"))) {\n PrsmTableHelper.clearAttributes();\n }\n };\n\n _this.isValidHtml = function () {\n if (!_this.selectedUser.signature || _this.selectedUser.signature.length === 0) {\n return true;\n }\n try {\n return $sanitize(_this.selectedUser.signature);\n } catch (e) {\n return false;\n }\n };\n\n _this.getTrusted = function () {\n return $sce.trustAsHtml(_this.selectedUser.signature);\n };\n\n _this.saveUser = function () {\n if (_this.saving === true) {\n return;\n }\n\n _this.saving = true;\n return _this.selectedUser.save().then(function (user) {\n $log.debug(\"user successfully saved\");\n _this.saving = false;\n\n if ($translate.use() != user.locale) {\n $translate\n .use(user.locale)\n .then(function (result) {\n amMoment.changeLocale(user.locale);\n\n window.alert($filter(\"translate\")(\"SWITCH_LANGUAGE_NOTICE\"));\n $window.location.reload();\n })\n .catch(function (result) {\n $log.debug(result);\n window.alert($filter(\"translate\")(\"ERROR_RELOAD_NOTICE\"));\n });\n }\n\n //angular.extend($scope.options.selectedUser, user);\n }, _this.onSaveError.bind(_this));\n };\n\n _this.cancel = function () {\n _this.modalInstance.dismiss(\"cancel\");\n };\n\n _this.loadEditUser = function (newUser) {\n User.get(_this.selectedUser.id).then(function (result) {\n _this.selectedUser = result;\n initializeUploader();\n });\n };\n\n _this.openMyProjects = function () {\n var searchMyProjects = new SavedSearch({\n conditions: [\n { modifier: \"must\", field: \"responsible_user\", query: _this.selectedUser.name },\n { modifier: \"must\", field: \"project_status\", query: \"active\" },\n ],\n });\n _this.cancel();\n $state.go(\"root.projects\", searchMyProjects.collectSearchParams(), { reload: true, inherit: false });\n };\n\n _this.openUnrefreshedProjects = function () {\n var searchMyProjects = new SavedSearch({\n conditions: [\n { modifier: \"must\", field: \"responsible_user\", query: _this.selectedUser.name },\n { modifier: \"must\", field: \"project_status\", query: \"active\" },\n ],\n lastUpdateEnabled: true,\n lastUpdateInWeeksAgo: \"4\",\n });\n _this.cancel();\n $state.go(\"root.projects\", searchMyProjects.collectSearchParams(), { reload: true, inherit: false });\n };\n },\n ]);\n","export default class UserSelectBoxCtrl {\n private users: any;\n private filter: () => boolean;\n\n static $inject = [\"UsersFactory\"];\n\n constructor(private User: any) {}\n\n $onInit() {\n if (this.filter) {\n this.users = _.filter(this.User.getAll(), this.filter);\n } else {\n this.users = this.User.getAll();\n }\n }\n}\n","import urUserSelectBoxTemplate from \"./ur-user-select-box.template.html\";\nimport UserSelectBoxCtrl from \"./ur-user-select-box.controller\";\n\nangular.module(\"users.components\").component(\"urUserSelectBox\", {\n bindings: {\n selectedUser: \"=urModel\",\n filter: \"<\",\n required: \"=\",\n onChanges: \"&\",\n },\n template: urUserSelectBoxTemplate,\n controller: UserSelectBoxCtrl,\n});\n","import { IFilterService } from \"angular\";\n\nexport default class TeamSelectCtrl {\n private teams: any;\n private users: any;\n private teamsLabel: string | undefined;\n private oldOptionsAllActive: boolean;\n private oldOptions: any;\n private oldParentOptions: any;\n private options: any;\n private parentOptions: any;\n private closing: () => void;\n private onChanges: () => void;\n static $inject = [\"$filter\", \"UsersFactory\"];\n\n constructor(private $filter: IFilterService, private User: any) {}\n\n public $onInit() {\n this.teams = this.User.translatedTeams();\n this.users = _.where(this.User.getAll(), { active: true, isSelectable: true });\n }\n\n public search() {\n var defaultOptions = { allActive: undefined, team: undefined, users: [] };\n angular.extend(this.parentOptions, _.defaults(this.options, defaultOptions));\n this.closing();\n\n if (_.isFunction(this.onChanges)) {\n this.onChanges();\n }\n }\n\n public updateTeamInputLabel(nv, ov) {\n if (!nv) {\n return;\n }\n\n if (nv.allActive) {\n this.teamsLabel = \"Entourage\";\n } else if (nv.team) {\n this.teamsLabel = nv.team.name;\n } else if (nv.users && nv.users.length > 1) {\n this.teamsLabel = this.$filter(\"translate\")(\"MULTIPLE_EMPLOYEES_SELECTED\", {\n name: _.first(nv.users).fullName,\n number: nv.users.length - 1,\n });\n } else if (_.first(nv.users)) {\n this.teamsLabel = _.first(nv.users).fullName;\n } else {\n this.teamsLabel = undefined;\n }\n }\n\n public setTeamOption(team) {\n if (team) {\n this.options = { team: team };\n this.search();\n }\n }\n\n public userSelected($item) {\n this.options = { users: this.options.users };\n }\n\n public $doCheck() {\n if (this.options) {\n if (this.options.allActive && this.options.allActive !== this.oldOptionsAllActive) {\n this.oldOptionsAllActive = this.options.allActive;\n this.options = { allActive: true };\n this.search();\n }\n if (!angular.equals(this.oldOptions, this.options)) {\n this.oldOptions = angular.copy(this.options);\n this.updateTeamInputLabel(this.options, this.oldOptions);\n }\n }\n\n if (this.parentOptions && !angular.equals(this.parentOptions, this.oldParentOptions)) {\n this.oldParentOptions = angular.copy(this.parentOptions);\n this.options = angular.copy(this.parentOptions);\n }\n }\n}\n","import teamSelectTemplate from \"./team-select.template.html\";\nimport TeamSelectCtrl from \"./team-select.controller\";\n\nangular.module(\"users.components\").component(\"teamSelect\", {\n bindings: {\n parentOptions: \"=ngModel\",\n required: \"=\",\n deactivateAllActive: \"@\",\n onChanges: \"&\",\n },\n template: teamSelectTemplate,\n controller: TeamSelectCtrl,\n});\n","import usersPaginationTemplate from \"../../../directives/components/pagination/pagination.template.html\";\nimport { IFilterService, ITemplateCacheService } from \"angular\";\n\n\ninterface TranslatedProperty {\n name: string;\n show: boolean;\n}\n\nexport default class UsersHelpSidebarCtrl {\n private paginationTemplateUrl: string;\n private paginateEmployees: any;\n private paginateProjects: any;\n private projectsLazyLoading: boolean;\n private employeesLazyLoading: boolean;\n private projects: any[];\n private employees: any[];\n private unrefreshedProjects: any[];\n private loading: boolean;\n private loginConfirmedListener: () => void;\n private addProjectListener: () => void;\n private addEmployeeListener: () => void;\n\n private projectListAttributes: { title: { title: string; show: boolean } };\n private managerAttributes: {\n name: TranslatedProperty;\n company: TranslatedProperty;\n reminder: TranslatedProperty;\n };\n\n static $inject = [\n \"Session\",\n \"ProjectsFactory\",\n \"EmployeesFactory\",\n \"makeCollectionProxy\",\n \"UsersFactory\",\n \"$rootScope\",\n \"$filter\",\n \"MgPaginateService\",\n \"$templateCache\",\n ];\n\n constructor(\n private Session: any,\n public Project: any,\n public Employee: any,\n private makeCollectionProxy: (loader: () => any, stateParams: any) => Promise,\n private User: any,\n private $rootScope: IExtendedRootScopeService,\n private $filter: IFilterService,\n private MgPaginateService: any,\n private $templateCache: ITemplateCacheService\n ) {\n this.initializeUsersSidebar = this.initializeUsersSidebar.bind(this);\n\n this.paginationTemplateUrl = \"paginationTemplate\";\n $templateCache.put(this.paginationTemplateUrl, usersPaginationTemplate);\n this.projectListAttributes = {\n title: {\n title: this.$filter(\"translate\")(\"PROJECT_TITLE\"),\n show: true,\n },\n };\n this.managerAttributes = {\n name: {\n name: this.$filter(\"translate\")(\"NAME\"),\n show: true,\n },\n company: {\n name: this.$filter(\"translate\")(\"COMPANY\"),\n show: true,\n },\n reminder: {\n name: this.$filter(\"translate\")(\"NEXT_CONTACT_REMINDER\"),\n show: true,\n },\n };\n }\n\n public isEmpty(field) {\n return !((field && _.has(field.meta, \"totalCount\")) || !_.isEmpty(field));\n }\n\n public diffCollections(newlist, oldlist) {\n var ids = _.difference(_.pluck(newlist, \"id\"), _.pluck(oldlist, \"id\"));\n return _.filter(newlist, function (item) {\n return _.contains(ids, item.id);\n });\n }\n\n public updateProject(project, status, index) {\n this.loading = true;\n new this.Project({ id: project.id, projectStatus: status, saveBasics: true }).save().then((result) => {\n project.snapshot();\n this.$rootScope.$broadcast(\"project_action_changed_\" + project.id);\n\n this.unrefreshedProjects.splice(index, 1);\n this.loading = false;\n });\n }\n\n public onOver(e, ui) {\n angular.element(e.target).addClass(\"disabled\");\n }\n\n public onOut(e) {\n angular.element(e.target).removeClass(\"disabled\");\n }\n\n public isDataDropArea(project) {\n return !project.initiativeApplicationProject;\n }\n\n public projectLonglistWatcherInit(project, childScope) {\n project.longlist = angular.copy(_.pluck(project.candidatesProjects, \"candidate\")) || [];\n\n childScope.$watchCollection(\"project.longlist\", (newlistItems, oldlistItems, scope) => {\n if (_.isEmpty(this.diffCollections(newlistItems, oldlistItems))) {\n return;\n }\n\n newlistItems = this.diffCollections(newlistItems, oldlistItems);\n\n _.each(newlistItems, (listItem) => {\n project.addCandidate(listItem).then((result) => {\n window.alert(\n this.$filter(\"translate\")(\"CANDIDATE_WAS_ADDED_TO_PROJECT_NOTICE\", {\n name: listItem.fullNameWithTitle,\n project: project.title,\n })\n );\n });\n });\n });\n }\n\n public initializeUsersSidebar(forceReload?: boolean) {\n if (forceReload || this.isEmpty(this.Session.user.projects)) {\n if (forceReload) {\n this.projects = [];\n }\n this.projectsLazyLoading = true;\n this.makeCollectionProxy(this.Project.query.bind(this.Project), { my_active_projects: true }).then(\n (projects: any[]) => {\n this.projects = projects;\n this.Session.user.projects = this.projects;\n\n this.paginateProjects.setData(this.projects);\n this.paginateProjects.setTotalItems(this.projects.length);\n\n this.projectsLazyLoading = false;\n }\n );\n } else {\n this.projects = this.Session.user.projects;\n\n this.paginateProjects.setData(this.projects);\n this.paginateProjects.setTotalItems(this.projects.length);\n }\n\n if (forceReload || this.isEmpty(this.Session.user.employees)) {\n if (forceReload) {\n this.employees = [];\n }\n this.employeesLazyLoading = true;\n this.makeCollectionProxy(this.Employee.query.bind(this.Employee), { my_employees: true }).then(\n (employees) => {\n this.employees = employees;\n this.Session.user.employees = this.employees;\n\n this.paginateEmployees.setData(this.employees);\n this.paginateEmployees.setTotalItems(this.employees.length);\n\n var today = new Date();\n _.each(this.employees, function (employee) {\n employee.shouldBeContacted = today > employee.nextReminderWillBeAt;\n });\n\n this.employeesLazyLoading = false;\n }\n );\n } else {\n this.employees = this.Session.user.employees;\n this.paginateEmployees.setData(this.employees);\n this.paginateEmployees.setTotalItems(this.employees.length);\n }\n\n if (forceReload || this.isEmpty(this.Session.user.projectsOneMonthInactive)) {\n if (forceReload) {\n this.unrefreshedProjects = [];\n }\n this.projectsLazyLoading = true;\n this.User.get(this.Session.user.id).then((user) => {\n angular.extend(this.Session.user, user);\n this.unrefreshedProjects = user.projectsOneMonthInactive;\n\n this.projectsLazyLoading = false;\n });\n } else {\n this.unrefreshedProjects = this.Session.user.projectsOneMonthInactive;\n }\n }\n\n public $onInit() {\n this.paginateEmployees = new this.MgPaginateService();\n this.paginateProjects = new this.MgPaginateService();\n\n this.projectsLazyLoading = false;\n this.employeesLazyLoading = false;\n\n this.initializeUsersSidebar();\n\n this.loginConfirmedListener = this.$rootScope.$on(\n \"event:auth-loginConfirmed\",\n _.partial(this.initializeUsersSidebar, true)\n );\n this.addProjectListener = this.$rootScope.$on(\"addProject\", _.partial(this.initializeUsersSidebar, true));\n this.addEmployeeListener = this.$rootScope.$on(\"addEmployee\", _.partial(this.initializeUsersSidebar, true));\n }\n\n public $onDestroy() {\n this.loginConfirmedListener();\n this.addProjectListener();\n this.addEmployeeListener();\n }\n}\n","import usersHelpSidebarTemplate from \"./users-help-sidebar.template.html\";\nimport UsersHelpSidebarCtrl from \"./users-help-sidebar.controller\";\n\nangular.module(\"users.components\").component(\"usersHelpSidebar\", {\n template: usersHelpSidebarTemplate,\n bindings: {\n initialViewState: \"<\",\n },\n controller: UsersHelpSidebarCtrl,\n});\n","//= require ../users.module.js\nimport { Language } from \"../../languages/services/languages.service\";\nangular.module(\"users\").factory(\"UsersFactory\", [\n \"$filter\",\n \"RailsResource\",\n \"railsSerializer\",\n \"usersSingleton\",\n \"UsersModalMixin\",\n \"TextkernelModalMixin\",\n \"ProjectReportingsFactory\",\n function (\n $filter,\n RailsResource,\n railsSerializer,\n usersSingleton,\n UsersModalMixin,\n TextkernelModalMixin,\n ProjectReporting\n ) {\n function User() {\n (User).__super__.constructor.apply(this, arguments);\n this.name = this.fullName;\n this.resourceType = \"User\";\n\n this.params = function () {\n return { user_id: this.id };\n };\n\n this.isResearcher = function () {\n return this.type == \"ResearchConsultantUser\";\n };\n\n this.isSales = function () {\n return this.type == \"SalesConsultantUser\";\n };\n\n this.getType = function () {\n return this.type.replace(/ConsultantUser$/g, \"\");\n };\n\n this.preferredLanguage = function () {\n return _.findWhere(Language.defaultOptions, { key: this.locale }).key || \"de\";\n };\n\n this.getTeamName = function () {\n if (this.team) {\n return $filter(\"translate\")(User.teams[this.team].identifer);\n } else {\n return undefined;\n }\n };\n\n this.loadKpisPerYear = function (params) {\n return ProjectReporting.$get(\"project_reporting/kpis_per_year.json\", params);\n };\n }\n\n User.getAll = function () {\n if (usersSingleton.data) {\n return usersSingleton.data;\n } else {\n return (User).query({ get_all: true }).then(function (response) {\n return (usersSingleton.data = response);\n });\n }\n };\n\n User.findBy = function (id) {\n var users = User.getAll();\n return _.find(users, function (user) {\n return user.id == id;\n });\n };\n\n User.translatedTeams = function () {\n return _.chain(User.teams)\n .values()\n .each(function (team) {\n return _.extend(team, { name: $filter(\"translate\")(team.identifier) });\n })\n .value();\n };\n\n User.pickTranslatedTeams = function (teamIdentifiers) {\n return _.where(User.translatedTeams(), { id: teamIdentifiers });\n };\n\n User.teams = {\n med_tec: { identifier: \"TEAM_MED_TEC\", id: \"med_tec\" },\n pharma: { identifier: \"TEAM_PHARMA\", id: \"pharma\" },\n ch: { identifier: \"TEAM_CH\", id: \"ch\" },\n italy: { identifier: \"TEAM_ITALY\", id: \"italy\" },\n };\n\n RailsResource.extendTo(User);\n (User).configure({\n url: \"/users\",\n name: \"user\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"projects\", \"ProjectsFactory\");\n this.resource(\"employees\", \"EmployeesFactory\");\n\n this.resource(\"projectsOneMonthInactive\", \"ProjectsFactory\");\n }),\n });\n (User).extend(UsersModalMixin);\n (User).extend(TextkernelModalMixin);\n\n User.prototype.current = function () {\n return this.$get(this.$url() + \"/current\");\n };\n return User;\n },\n]);\n","import { Graduation } from \"../../graduations/services/graduations.service\";\nimport { Priority } from \"../../priorities/services/priority.service\";\nimport { DrivingLicence } from \"../../driving_licences/services/driving_licences.service\";\nimport { LeadershipExperience } from \"../../leadership_experiences/services/leadership_experiences.service\";\nimport { CancelationPeriod } from \"../../cancelation_periods/services/cancelation_periods.service\";\nimport { MaritalStatus } from \"../../marital_statuses/services/marital_status.service\";\nimport { Region } from \"../../regions/services/regions.service\";\nimport { Language } from \"../../languages/services/languages.service\";\nimport { Country } from \"../../countries/services/countries.service\";\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"candidateOpts\", {\n show: {\n resolve: {\n candidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n return CandidatesFactory.get(params.project_candidate_id || params.candidate_id || params.id);\n },\n ],\n projectCandidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n\n if (params.project_candidate_id) {\n return CandidatesFactory.get(params.project_candidate_id);\n } else {\n return undefined;\n }\n },\n ],\n candidate: [\n \"candidateResponse\",\n \"projectCandidateResponse\",\n function (candidateResponse, projectCandidateResponse) {\n return projectCandidateResponse || candidateResponse;\n },\n ],\n documentView: [\n function () {\n return false;\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"candidatesShowView\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"candidatesMenuView\",\n };\n viewObj[\"deck-sub@\" + state] = {\n component: \"candidatesDocumentsView\",\n };\n return viewObj;\n },\n },\n new: {\n resolve: {\n candidateResponse: [\n \"CandidatesFactory\",\n function (CandidatesFactory) {\n return CandidatesFactory.$get(\"candidates/new\");\n },\n ],\n projectCandidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n\n if (params.project_candidate_id) {\n return CandidatesFactory.get(params.project_candidate_id);\n } else {\n return undefined;\n }\n },\n ],\n candidate: [\n \"candidateResponse\",\n \"projectCandidateResponse\",\n function (candidateResponse, projectCandidateResponse) {\n return projectCandidateResponse || candidateResponse;\n },\n ],\n documentView: [\n function () {\n return false;\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"candidatesEditView\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"candidatesMenuView\",\n };\n return viewObj;\n },\n },\n edit: {\n resolve: {\n candidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n\n return CandidatesFactory.get(params.candidate_id || params.id);\n },\n ],\n projectCandidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n\n if (params.project_candidate_id) {\n return CandidatesFactory.get(params.project_candidate_id);\n } else {\n return undefined;\n }\n },\n ],\n candidate: [\n \"candidateResponse\",\n \"projectCandidateResponse\",\n function (candidateResponse, projectCandidateResponse) {\n return projectCandidateResponse || candidateResponse;\n },\n ],\n deregCandidateDiff: [\n \"$rootScope\",\n \"candidate\",\n function ($rootScope, candidate) {\n return $rootScope.$on(\"showCandidateDiff\", function (event, candidateDiffData) {\n candidate.snapshot();\n candidate.extendByDiff(candidateDiffData);\n });\n },\n ],\n documentView: [\n function () {\n return false;\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"candidatesEditView\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"candidatesMenuView\",\n };\n viewObj[\"deck-sub@\" + state] = {\n component: \"candidatesDocumentsView\",\n };\n return viewObj;\n },\n },\n requirements: {\n languages: [\n function () {\n return Language.getAll();\n },\n ],\n countries: [\n function () {\n return Country.getAll();\n },\n ],\n candidatesResponse: [\n function () {\n return undefined;\n },\n ],\n maritalStatuses: [\n function () {\n return MaritalStatus.getAll();\n },\n ],\n leadershipExperiences: [\n function () {\n return LeadershipExperience.getAll();\n },\n ],\n drivingLicences: [\n function () {\n return DrivingLicence.getAll();\n },\n ],\n cancelationPeriods: [\n function () {\n return CancelationPeriod.getAll();\n },\n ],\n graduations: [\n function () {\n return Graduation.getAll();\n },\n ],\n priorities: [\n function () {\n return Priority.getAll();\n },\n ],\n regions: [\n function () {\n return Region.getAll();\n },\n ],\n objectType: [\n function () {\n return \"candidate\";\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n },\n });\n","import { Priority } from \"../../priorities/services/priority.service\";\nimport { Region } from \"../../regions/services/regions.service\";\nimport { Country } from \"../../countries/services/countries.service\";\n\nimport { TransactionBasis } from \"../../transaction_bases/services/transaction_bases.service\";\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"companyOpts\", {\n show: {\n resolve: {\n companyResponse: [\n \"$transition$\",\n \"CompaniesFactory\",\n function ($transition$, CompaniesFactory) {\n var params = _.pick($transition$.params(), _.identity);\n return CompaniesFactory.get(params.company_id);\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"companiesShow\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"companiesMenu\",\n };\n return viewObj;\n },\n },\n new: {\n resolve: {\n companyResponse: [\n \"CompaniesFactory\",\n function (Company) {\n return Company.$get(\"companies/new\");\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"companiesEdit\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"companiesMenu\",\n };\n return viewObj;\n },\n },\n edit: {\n resolve: {\n companyResponse: [\n \"$transition$\",\n \"CompaniesFactory\",\n function ($transition$, CompaniesFactory) {\n var params = _.pick($transition$.params(), _.identity);\n return CompaniesFactory.get(params.company_id);\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"companiesEdit\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"companiesMenu\",\n };\n return viewObj;\n },\n },\n requirements: {\n countries: [\n function () {\n return Country.getAll();\n },\n ],\n priorities: [\n function () {\n return Priority.getAll();\n },\n ],\n transactionBasesResponse: [\n function () {\n return TransactionBasis.getAllForCompanies();\n },\n ],\n regions: [\n function () {\n return Region.getAll();\n },\n ],\n objectType: [\n function () {\n return \"client\";\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n },\n });\n","//= require ./routing-options.module.js\n\nimport { CancelationPeriod } from \"../../cancelation_periods/services/cancelation_periods.service\";\nimport { Priority } from \"../../priorities/services/priority.service\";\nimport { Country } from \"../../countries/services/countries.service\";\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"employeeOpts\", {\n show: {\n resolve: {\n employeeResponse: [\n \"$transition$\",\n \"EmployeesFactory\",\n function ($transition$, EmployeesFactory) {\n return EmployeesFactory.get($transition$.params().employee_id);\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"employeesShowView\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"employeesMenuView\",\n };\n return viewObj;\n },\n },\n new: {\n resolve: {\n employeeResponse: [\n \"$transition$\",\n \"EmployeesFactory\",\n function ($transition$, Employee) {\n return Employee.$get(\"employees/new\", { company_id: $transition$.params().company_id });\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"employeesEditView\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"employeesMenuView\",\n };\n return viewObj;\n },\n },\n edit: {\n resolve: {\n employeeResponse: [\n \"$transition$\",\n \"EmployeesFactory\",\n function ($transition$, EmployeesFactory) {\n return EmployeesFactory.get($transition$.params().employee_id);\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"employeesEditView\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"employeesMenuView\",\n };\n return viewObj;\n },\n },\n requirements: {\n countries: [\n function () {\n return Country.getAll();\n },\n ],\n priorities: [\n function () {\n return Priority.getAll();\n },\n ],\n cancelationPeriods: [\n function () {\n return CancelationPeriod.getAll();\n },\n ],\n objectType: [\n function () {\n return \"employee\";\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n },\n });\n","//= require ./routing-options.module.js\nimport { Region } from \"../../regions/services/regions.service\";\nimport { Language } from \"../../languages/services/languages.service\";\nimport { Country } from \"../../countries/services/countries.service\";\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"jobOfferOpts\", {\n show: {\n resolve: {\n jobOfferResponse: [\n \"$transition$\",\n \"JobOfferFactory\",\n function ($transition$, JobOfferFactory) {\n return JobOfferFactory.get($transition$.params().job_offer_id);\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"jobOffersShow\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"jobOffersMenu\",\n };\n return viewObj;\n },\n },\n new: {\n resolve: {\n jobOfferResponse: [\n \"JobOfferFactory\",\n \"projectResponse\",\n function (JobOffer, projectResponse) {\n return JobOffer.$get(\"job_offers/new\", { project_id: projectResponse.id });\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"jobOffersEdit\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"jobOffersMenu\",\n };\n return viewObj;\n },\n },\n edit: {\n resolve: {\n jobOfferResponse: [\n \"$transition$\",\n \"JobOfferFactory\",\n function ($transition$, JobOfferFactory) {\n return JobOfferFactory.get($transition$.params().job_offer_id);\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"jobOffersEdit\",\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"jobOffersMenu\",\n };\n return viewObj;\n },\n },\n requirements: {\n regions: [\n function () {\n return Region.getAll();\n },\n ],\n languages: [\n function () {\n return Language.getAll();\n },\n ],\n countries: [\n function () {\n return Country.getAll();\n },\n ],\n objectType: [\n function () {\n return \"client\";\n },\n ],\n },\n });\n","import { Priority } from \"../../priorities/services/priority.service\";\nimport { LeadershipExperience } from \"../../leadership_experiences/services/leadership_experiences.service\";\nimport { Language } from \"../../languages/services/languages.service\";\nimport { Country } from \"../../countries/services/countries.service\";\n\nimport { TransactionBasis } from \"../../transaction_bases/services/transaction_bases.service\";\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"projectOpts\", {\n show: {\n resolve: {\n projectResponse: [\n \"$transition$\",\n \"ProjectsFactory\",\n function ($transition$, ProjectsFactory) {\n var params = _.pick($transition$.params(), _.identity);\n return ProjectsFactory.get(params.project_id);\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n componentProvider: [\n \"projectResponse\",\n function (project) {\n return project.initiativeApplicationProject ? \"projectsIAShowView\" : \"projectsShowView\";\n },\n ],\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"projectsMenuView\",\n };\n return viewObj;\n },\n },\n new: {\n resolve: {\n projectResponse: [\n \"$transition$\",\n \"ProjectsFactory\",\n function ($transition$, ProjectsFactory) {\n var params = _.pick($transition$.params(), _.identity);\n return ProjectsFactory.$get(\"projects/new\", {\n company_id: params.company_id,\n employee_id: params.employee_id,\n });\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n componentProvider: [\n \"projectResponse\",\n function (project) {\n return project.initiativeApplicationProject ? \"projectsIAEditView\" : \"projectsEditView\";\n },\n ],\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"projectsMenuView\",\n };\n return viewObj;\n },\n },\n edit: {\n resolve: {\n projectResponse: [\n \"$transition$\",\n \"ProjectsFactory\",\n function ($transition$, ProjectsFactory) {\n var params = _.pick($transition$.params(), _.identity);\n return ProjectsFactory.get(params.project_id);\n },\n ],\n deregProjectDiff: [\n \"$rootScope\",\n \"projectResponse\",\n function ($rootScope, project) {\n return $rootScope.$on(\"showProjectDiff\", function (event, projectDiffData) {\n project.snapshot();\n project.extendByDiff(projectDiffData);\n });\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n componentProvider: [\n \"projectResponse\",\n function (project) {\n return project.initiativeApplicationProject ? \"projectsIAEditView\" : \"projectsEditView\";\n },\n ],\n };\n viewObj[\"deck-sidebar@\" + state] = {\n component: \"projectsMenuView\",\n };\n return viewObj;\n },\n },\n requirements: {\n priorities: [\n function () {\n return Priority.getAll();\n },\n ],\n leadershipExperiences: [\n function () {\n return LeadershipExperience.getAll();\n },\n ],\n transactionBasesResponse: [\n function () {\n return TransactionBasis.getAll();\n },\n ],\n // need to reference action_types (force loading before initialize SavedSearchesFactory)\n savedSearchesResponse: [\n \"action_types\",\n \"SavedSearchesFactory\",\n function (action_types, SavedSearchesFactory) {\n return SavedSearchesFactory.getAll();\n },\n ],\n languages: [\n function () {\n return Language.getAll();\n },\n ],\n countries: [\n function () {\n return Country.getAll();\n },\n ],\n objectType: [\n function () {\n return \"project\";\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n stateParams: [\n \"$transition$\",\n function ($transition$) {\n // remove undefined params\n return _.pick($transition$.params(), _.identity);\n },\n ],\n },\n });\n","export default class WorkingRelationshipListCtrl {\n private person: any;\n private workingRelationshipsListAttributes: any;\n\n static $inject = [\n \"WorkingRelationshipsFactory\",\n ];\n\n constructor(private WorkingRelationship: any) {}\n\n public $onInit () {\n this.workingRelationshipsListAttributes = angular.copy(this.WorkingRelationship.defaultTableAttributes);\n\n var today = new Date();\n _.each(this.person.workingRelationships, function (workingRelationship) {\n const startDate = workingRelationship.startDate;\n const endDate = workingRelationship.endDate;\n const isCurrent = (!startDate || today >= startDate) && (!endDate || today <= endDate);\n const hasLeftTheCompany = endDate && today > endDate;\n\n if (isCurrent) {\n workingRelationship.$current = true;\n } else if (hasLeftTheCompany) {\n workingRelationship.$hasLeftTheCompany = true;\n }\n });\n };\n}\n","import workingRelationshipListTemplate from \"./working-relationship-list.template.html\";\nimport WorkingRelationshipListCtrl from \"./working-relationship-list.controller\";\n\nangular.module(\"working_relationships.components\").component(\"workingRelationshipList\", {\n bindings: {\n person: \"=\",\n initialViewState: \"<\",\n },\n template: workingRelationshipListTemplate,\n controller: WorkingRelationshipListCtrl,\n});\n","const workingRelationshipPopoverTemplate = require(\"./working-relationship-popover.template.html\");\nconst workingRelationshipDepartmentHierarchyPopoverTemplate = require(\"./working-relationship-department-hierarchy-popover.template.html\");\n\nimport { CancelationPeriod } from \"../../../cancelation_periods/services/cancelation_periods.service\";\nimport { Department } from \"../../../departments/services/departments.service\";\nimport { JobCategory } from \"../../../job_categories/services/job_categories.service\";\n\nexport default class WorkingRelationshipFormCtrl {\n private person: any;\n private markets: any;\n private workingRelationshipPopover: string;\n private workingRelationshipDepartmentAndHierarchyPopover: string;\n private cancelationPeriods: any;\n\n static $inject = [\n \"$templateCache\",\n \"$timeout\",\n \"WorkingRelationshipsFactory\",\n \"Autocompletes\",\n ];\n\n constructor(private $templateCache: ng.ITemplateCacheService, private $timeout: ng.ITimeoutService, private WorkingRelationShip: any, private Autocompletes: any) {}\n\n public $onInit () {\n this.workingRelationshipPopover = \"working-relationship-popover\";\n this.workingRelationshipDepartmentAndHierarchyPopover = \"working-relationship-department-hierarchy-popover\";\n this.$templateCache.put(this.workingRelationshipPopover, workingRelationshipPopoverTemplate);\n this.$templateCache.put(\n this.workingRelationshipDepartmentAndHierarchyPopover,\n workingRelationshipDepartmentHierarchyPopoverTemplate\n );\n\n CancelationPeriod.getAll().then((cancelationPeriods) => (this.cancelationPeriods = cancelationPeriods));\n\n\n if (this.person.workingRelationships && this.person.workingRelationships.length === 0) {\n this.addWorkingRelationship();\n this.person.snapshot();\n }\n JobCategory.getAll().then((jobCategories: any) => this.markets = jobCategories);\n\n this.person.workingRelationships.forEach(\n (workingRelationship) => { \n this.updateSelectableDepartments(workingRelationship);\n this.updateSelectableHierarchies(workingRelationship); \n }\n );\n };\n\n public addWorkingRelationship() {\n this.person.workingRelationships.push(new this.WorkingRelationShip());\n };\n\n public deleteWorkingRelationship(index) {\n this.person.workingRelationships.splice(index, 1);\n };\n\n public updateSelectableDepartments(workingRelationship: any) {\n if (!workingRelationship.market) {\n Department.getAll().then(function (departments) {\n workingRelationship.$departments = departments;\n });\n return;\n }\n\n const filterParams = { job_category_ids: { job_category_ids: [workingRelationship.market.id] } };\n return this.Autocompletes.autocomplete(\n \"\",\n \"departments\",\n undefined,\n _.keys(filterParams),\n _.values(filterParams),\n { size: 50 }\n ).then(function (res) {\n workingRelationship.$departments = _.chain(res)\n .map(function (entry) {\n return entry.tag ? new Department(entry.tag) : null;\n })\n .compact()\n .uniq()\n .value();\n });\n };\n\n public updateSelectableHierarchies(workingRelationship) {\n if (!workingRelationship.department) return;\n\n workingRelationship.department.queryHierarchies().then((hierarchies) => {\n this.$timeout(() => workingRelationship.department.hierarchies = hierarchies)\n });\n };\n}\n","import workingRelationshipFormTemplate from \"./working-relationship-form.template.html\";\nimport WorkingRelationshipFormCtrl from \"./working-relationship-form.controller\";\n\nangular.module(\"working_relationships.components\").component(\"workingRelationshipForm\", {\n bindings: {\n person: \"=\",\n },\n template: workingRelationshipFormTemplate,\n controller: WorkingRelationshipFormCtrl,\n});\n","import \"angular\";\nimport \"jquery-ui/dist/jquery-ui.min\";\nimport \"jquery-ui/ui/plugin\";\nimport \"jquery-ui/ui/widgets/mouse\";\nimport \"jquery-ui/ui/widgets/draggable\";\nimport \"angularjs-rails-resource\";\nimport \"angularjs-rails-resource/extensions/snapshots\";\nimport \"@uirouter/angularjs\";\nimport \"ui-select\";\nimport \"tinymce/tinymce\";\nimport \"tinymce/themes/modern/theme\";\nimport \"tinymce/plugins/lists/plugin\";\nimport \"tinymce/plugins/advlist/plugin\";\nimport \"tinymce/plugins/charmap/plugin\";\nimport \"tinymce/plugins/paste/plugin\";\nimport \"angular-ui-tinymce\";\nimport \"angular-ui-bootstrap\";\nimport \"angular-animate\";\nimport \"angular-http-auth\";\nimport \"angular-sanitize\";\nimport \"angular-mocks\";\nimport \"angular-dragdrop\";\nimport \"angular-file-upload\";\nimport \"angular-scroll\";\nimport \"ngprogress/build/ngProgress.min\";\nimport \"ng-infinite-scroll\";\nimport \"underscore\";\nimport \"angular-toarrayfilter\";\nimport \"angular-hotkeys/build/hotkeys.min\";\nimport \"intl-tel-input/build/js/utils\";\nimport \"intl-tel-input\";\nimport \"betsol-ng-intl-tel-input\";\nimport \"ng-onload\";\nimport \"ng-idle\";\nimport \"angular-poller\";\nimport \"angular-cookies\";\nimport \"chart.js\";\nimport \"angular-chart.js\";\nimport \"chartjs-plugin-labels\";\nimport \"chartjs-gauge\";\nimport \"moment\";\nimport \"moment/locale/de\";\nimport \"angular-moment\";\nimport \"angular-dynamic-locale\";\nimport \"bootstrap-daterangepicker\";\nimport \"angular-daterangepicker/js/angular-daterangepicker.min\";\nimport \"angular-translate\";\nimport \"angular-translate/dist/angular-translate-loader-static-files/angular-translate-loader-static-files\";\nimport \"orgchart\";\nimport \"deep-diff\";\n\nimport \"./action_types/index\";\nimport \"./actions/index\";\nimport \"./cancelation_periods/index\";\nimport \"./candidates/index\";\nimport \"./candidates_projects/index\";\nimport \"./career_levels/index\";\nimport \"./companies/index\";\nimport \"./companies_transaction_bases/index\";\nimport \"./countries/index\";\nimport \"./courses/index\";\nimport \"./dashboards/index\";\nimport \"./contract_drafts/index\";\nimport \"./deals/index\";\nimport \"./directives/index\";\nimport \"./departments/index\";\nimport { Department } from \"./departments/services/departments.service\";\nimport \"./hierarchies/index\";\nimport \"./documents/index\";\nimport \"./driving_licences/index\";\nimport \"./employees/index\";\nimport \"./employees_candidates_projects/index\";\nimport \"./expert_profiles/index\";\nimport \"./filters/index\";\nimport \"./functional_areas/index\";\nimport \"./graduations/index\";\nimport \"./highschools/index\";\nimport \"./invoices/index\";\nimport \"./job_categories/index\";\nimport \"./job_offers/index\";\nimport \"./job_types/index\";\nimport \"./languages/index\";\nimport \"./leadership_experiences/index\";\nimport \"./locations/index\";\nimport \"./login/index\";\nimport \"./marital_statuses/index\";\nimport \"./modals/index\";\nimport \"./organisation_units/index\";\nimport \"./outlook_delivery/index\";\nimport \"./persons/index\";\nimport \"./persons_graduations/index\";\nimport \"./priorities/index\";\nimport \"./project_reportings/index\";\nimport \"./projects/index\";\nimport \"./provisions/index\";\nimport \"./quicklists/index\";\nimport \"./regions/index\";\nimport \"./researcher_commissions/index\";\nimport \"./saved_searches/index\";\nimport \"./sendouts/index\";\nimport \"./services/index\";\nimport \"./tags/index\";\nimport \"./textkernel/index\";\nimport \"./trackings/index\";\nimport \"./transaction_bases/index\";\nimport \"./users/index\";\nimport \"./values/index\";\nimport \"./working_relationships/index\";\nimport { JobCategory } from \"./job_categories/services/job_categories.service\";\nimport { Priority } from \"./priorities/services/priority.service\";\nimport { Hierarchy } from \"./hierarchies/services/hierarchies.service\";\nimport { ActionType } from \"./action_types/services/action_types.service\";\nimport { JobType } from \"./job_types/services/job_types.service\";\n\nimport emptyTemplate from \"./directives/layout/empty-tmpl.html\";\n\nangular\n .module(\"app\", [\n \"actions\",\n \"action_types\",\n \"companies\",\n \"transaction_bases\",\n \"companies_transaction_bases\",\n \"trackings\",\n \"candidates\",\n \"employees\",\n \"projects\",\n \"candidates_projects\",\n \"employees_candidates_projects\",\n \"expert_profiles\",\n \"sendouts\",\n \"marital_statuses\",\n \"leadership_experiences\",\n \"quicklists\",\n \"tags\",\n \"project_reporting\",\n \"dashboards\",\n \"saved_searches\",\n \"directives.advanced_search\",\n \"components.money\",\n \"languages\",\n \"countries\",\n \"jobCategories\",\n \"departments\",\n \"hierarchies\",\n \"priorities\",\n \"job_offers\",\n \"job_types\",\n \"driving_licences\",\n \"regions\",\n \"career_levels\",\n \"functional_areas\",\n \"courses\",\n \"highschools\",\n \"graduations\",\n \"cancelation_periods\",\n \"persons_graduations\",\n \"documents\",\n \"working_relationships\",\n \"researcher_commissions\",\n \"locations\",\n \"contract_drafts\",\n \"deals\",\n \"organisation_units\",\n \"provisions\",\n \"invoices\",\n \"login\",\n \"directives\",\n \"services\",\n \"modals\",\n \"persons.modals\",\n \"persons.components\",\n \"ui.router\",\n \"rails\",\n \"ngAnimate\",\n \"ngSanitize\",\n \"ui.bootstrap\",\n \"ui.bootstrap.dropdown\",\n \"ui.bootstrap.popover\",\n \"ui.bootstrap.datepicker\",\n \"ui.bootstrap.pagination\",\n \"ui.bootstrap.tooltip\",\n \"daterangepicker\",\n \"angularMoment\",\n \"ui.select\",\n \"ui.tinymce\",\n \"ngProgress\",\n \"infinite-scroll\",\n \"ngDragDrop\",\n \"duScroll\",\n \"angular-toArrayFilter\",\n \"cfp.hotkeys\",\n \"ngOnload\",\n \"ngIdle\",\n \"emguo.poller\",\n \"outlook.delivery\",\n \"betsol.intlTelInput\",\n \"ngCookies\",\n \"chart.js\",\n \"textkernel\",\n \"pascalprecht.translate\",\n \"services\",\n \"values\",\n \"values.routing-options\",\n \"tmh.dynamicLocale\",\n ])\n .config([\n \"$httpProvider\",\n function ($httpProvider) {\n $httpProvider.defaults.headers.common[\"X-CSRF-Token\"] = $(\"meta[name=csrf-token]\").attr(\"content\");\n },\n ])\n\n .config([\n \"$compileProvider\",\n function ($compileProvider) {\n $compileProvider.aHrefSanitizationWhitelist(/^\\s*(https?|ftp|mailto|callto|skype):/);\n // Angular before v1.2 uses $compileProvider.urlSanitizationWhitelist(...)\n },\n ])\n\n .config([\n \"pollerConfig\",\n function (pollerConfig) {\n pollerConfig.stopOn = \"$stateChangeStart\"; // If you use ui-router.\n pollerConfig.resetOn = \"$stateChangeStart\";\n },\n ])\n\n .config([\n \"railsSerializerProvider\",\n function (railsSerializerProvider) {\n railsSerializerProvider.exclusionMatchers(\"$\");\n },\n ])\n\n .config([\n \"intlTelInputOptions\",\n function (intlTelInputOptions) {\n angular.extend(intlTelInputOptions, {\n defaultCountry: \"de\",\n preferredCountries: [\"de\", \"at\", \"ch\", \"it\"],\n autoFormat: true,\n autoPlaceholder: true,\n });\n },\n ])\n\n .config([\n \"ChartJsProvider\",\n \"ChartColors2021\",\n function (ChartJsProvider, ChartColors2021) {\n ChartJsProvider.setOptions({ plugins: { labels: false }, colors: ChartColors2021 });\n },\n ])\n\n .config([\n \"$logProvider\",\n function ($logProvider) {\n if (window.environment != \"development\") {\n $logProvider.debugEnabled(false);\n }\n },\n ])\n\n //for DatePicker options\n .config([\n \"uibDatepickerConfig\",\n function (uibDatepickerConfig) {\n uibDatepickerConfig.startingDay = 1;\n },\n ])\n\n .config([\n \"$translateProvider\",\n function ($translateProvider) {\n $translateProvider.useStaticFilesLoader({\n prefix: `${process.env.PUBLIC_PATH}translations/`,\n suffix: `-${process.env.CACHE_BREAKER}.json`,\n });\n\n $translateProvider.preferredLanguage(\"de\");\n $translateProvider.useSanitizeValueStrategy(\"sanitize\");\n $translateProvider.useSanitizeValueStrategy(\"sanitizeParameters\");\n\n $translateProvider.forceAsyncReload(true);\n },\n ])\n\n .config([\n \"$stateProvider\",\n \"$urlRouterProvider\",\n \"$stateGeneratorProvider\",\n \"$provide\",\n \"candidateOpts\",\n \"employeeOpts\",\n \"projectOpts\",\n \"companyOpts\",\n \"expertProfileOpts\",\n \"jobOfferOpts\",\n \"savedSearchOpts\",\n function (\n $stateProvider,\n $urlRouterProvider,\n $stateGeneratorProvider,\n $provide,\n candidateOpts,\n employeeOpts,\n projectOpts,\n companyOpts,\n expertProfileOpts,\n jobOfferOpts,\n savedSearchOpts\n ) {\n $stateProvider\n .state(\"login\", {\n url: \"/login?redirect_to\",\n component: \"loginPageView\",\n unauthenticated: true,\n isLoginPage: true,\n params: {\n toState: \"root.home\", // default state to proceed to after login\n toParams: {},\n },\n })\n .state(\"whiteboard-presenter\", {\n url: \"/whiteboard-presenter?user_id&teams[]\",\n component: \"whiteboardPresenter\",\n })\n .state(\"actions\", {\n url: \"/actions/:action_id?params&referrer\",\n resolve: {\n action: [\n \"ActionsFactory\",\n \"$transition$\",\n function (Action, $transition$) {\n var params = _.pick($transition$.params(), _.identity);\n if (params.action_id) {\n return Action.get(params.action_id);\n }\n },\n ],\n },\n onEnter: [\n \"RedirectLocation\",\n \"$transition$\",\n \"$location\",\n \"action\",\n function (RedirectLocation, $transition$, $location, action) {\n var params = _.pick($transition$.params(), _.identity);\n\n setTimeout(function () {\n action.openActionModal();\n }, 500);\n\n if (RedirectLocation.decode(params.referrer)) {\n $location.path(RedirectLocation.decode(params.referrer)).search(params.params);\n } else {\n $location.path(\"/\");\n }\n },\n ],\n })\n .state(\"deals\", {\n url: \"/deals/:deal_id?params&referrer\",\n resolve: {\n deal: [\n \"DealsFactory\",\n \"$transition$\",\n function (Deal, $transition$) {\n var params = _.pick($transition$.params(), _.identity);\n\n if (params.deal_id) {\n return Deal.get(params.deal_id);\n }\n },\n ],\n },\n onEnter: [\n \"RedirectLocation\",\n \"$transition$\",\n \"$location\",\n \"deal\",\n function (RedirectLocation, $transition$, $location, deal) {\n var params = _.pick($transition$.params(), _.identity);\n\n setTimeout(function () {\n deal.edit();\n }, 500);\n\n if (RedirectLocation.decode(params.referrer)) {\n $location.path(RedirectLocation.decode(params.referrer)).search(params.params);\n } else {\n $location.path(\"/\");\n }\n },\n ],\n })\n .state(\"root\", {\n abstract: true,\n component: \"rootView\",\n params: {\n action_id: { inherit: true, squash: true },\n },\n resolve: {\n users: [\n \"UsersFactory\",\n function (User) {\n return User.getAll();\n },\n ],\n user: [\n \"Session\",\n function (Session) {\n return Session.user;\n },\n ],\n action_types: [\n function () {\n return ActionType.getAll();\n },\n ],\n jobTypes: [\n function () {\n return JobType.getAll();\n },\n ],\n jobCategories: [\n function () {\n return JobCategory.getAll();\n },\n ],\n departments: [\n function () {\n return Department.getAll();\n },\n ],\n hierarchies: [\n function () {\n return Hierarchy.getAll();\n },\n ],\n priorities: [\n function () {\n return Priority.getAll();\n },\n ],\n locale: [\n \"Session\",\n \"$translate\",\n function (Session, $translate) {\n // LOAD FORM ONE FILE TO IMPROVE PERFORMANCE\n //$translatePartialLoader.addPart(\"unified\");\n\n var lang = Session.user.preferredLanguage();\n return $translate.use(lang);\n },\n ],\n },\n })\n .state(\"root.home\", {\n url: \"/\",\n component: \"dashboards\",\n resolve: {},\n })\n .state(\"root.project_reportings\", {\n url: \"/project-reportings?user_id&year\",\n component: \"projectReportings\",\n resolve: {\n stateParams: [\n \"$transition$\",\n function ($transition$) {\n // remove undefined params\n return _.pick($transition$.params(), _.identity);\n },\n ],\n user: [\n \"UsersFactory\",\n \"stateParams\",\n \"Session\",\n function (User, stateParams, Session) {\n var params = _.defaults(stateParams, { user_id: Session.user.id });\n return User.get(params.user_id);\n },\n ],\n kpisPerYear: [\n \"user\",\n \"moment\",\n \"stateParams\",\n function (user, moment, stateParams) {\n var params = _.defaults(stateParams, { year: moment().year() });\n if (!_.isEmpty(user.kpis)) {\n return user.kpis;\n } else {\n return user.loadKpisPerYear(params);\n }\n },\n ],\n options: [\n \"kpisPerYear\",\n function (kpisPerYear) {\n return { selectedYear: kpisPerYear.year };\n },\n ],\n },\n })\n .state(\"root.whiteboard\", {\n url: \"/whiteboard?user_id\",\n component: \"whiteboard\",\n resolve: {\n whiteboardConfig: [\n \"UsersFactory\",\n \"Session\",\n function (User, Session) {\n return User.$get(\"users/\" + Session.user.id + \"/whiteboard_entries.json\");\n },\n ],\n },\n })\n .state(\"root.project_pipeline\", {\n url: \"/project-pipeline?user_id\",\n component: \"projectPipeline\",\n resolve: {\n projectPipelineConfig: [\n \"UsersFactory\",\n \"Session\",\n function (User, Session) {\n return User.$get(\"users/\" + Session.user.id + \"/whiteboard_entries.json\");\n },\n ],\n },\n });\n\n // Candidates Table\n\n $stateProvider.state(\"root.candidates\", {\n url: \"/candidates?additional_pages&q&advanced&saved_search_id&sort&document_id\",\n component: \"candidatesIndexView\",\n resolve: angular.merge(angular.copy(candidateOpts.requirements), angular.copy(savedSearchOpts.requirements)),\n onExit: [\n \"CandidatesHotkeys\",\n function (CandidatesHotkeys) {\n CandidatesHotkeys.deregisterHotkeys();\n },\n ],\n onEnter: [\n \"CandidatesHotkeys\",\n function (CandidatesHotkeys) {\n CandidatesHotkeys.registerHotkeys();\n },\n ],\n params: {\n additional_pages: {\n value: \"0\",\n squash: true,\n },\n },\n });\n\n $stateGeneratorProvider\n .addStates(\"root.candidates\", {\n viewLayerID: \"deckPrimary\",\n params: candidateOpts,\n urlParamName: \":candidate_id\",\n subDeckOpen: true,\n })\n .addStates(\"root.candidates.show\", [\"projects\", \"deckSecondary\", projectOpts, \":project_id\"])\n .addRoundtrip(\"root.candidates.show.projects.show.job_offer\", {\n paramName: \":job_offer_id\",\n url: \"/job_offer\",\n redirect: \"root.projects.show.job_offer\",\n })\n .addRoundtrip(\"root.candidates.show.projects.show.company\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.companies\",\n })\n .addRoundtrip(\"root.candidates.show.projects.show.employee\", {\n paramName: \":employee_id\",\n url: \"/employee\",\n redirect: \"root.companies.list.employees\",\n })\n .addRoundtrip(\n \"root.candidates.show.projects.show.expert_profile\",\n angular.extend({ redirect: \"root.projects.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addRoundtrip(\n \"root.candidates.show.projects.show.projects\",\n angular.extend({ redirect: \"root.candidates.show.projects\" }, { paramName: \":project_id\", url: \"/projects\" })\n )\n .addRoundtrip(\n \"root.candidates.show.projects.show.candidate\",\n angular.extend(\n { redirect: \"root.candidates.show.projects\" },\n { paramName: \":candidate_id\", url: \"/candidate\" }\n )\n )\n .addStates(\"root.candidates.show\", {\n stateName: \"expert_profile\",\n viewLayerID: \"deckSecondary\",\n params: expertProfileOpts,\n urlParamName: expertProfileOpts.urlParameters.paramName,\n url: expertProfileOpts.urlParameters.url + \"?\" + expertProfileOpts.urlParameters.queryParams,\n })\n .addRoundtrip(\n \"root.candidates.show.expert_profile.edit.projects\",\n angular.extend({ redirect: \"root.candidates.show.projects\" }, { paramName: \":project_id\", url: \"/projects\" })\n )\n .addRoundtrip(\n \"root.candidates.show.expert_profile.new.projects\",\n angular.extend({ redirect: \"root.candidates.show.projects\" }, { paramName: \":project_id\", url: \"/projects\" })\n )\n .addRoundtrip(\n \"root.candidates.show.expert_profile.edit.expert_profile\",\n angular.extend({ redirect: \"root.candidates.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addStates(\"root.candidates.show\", [\"companies\", \"deckSecondary\", companyOpts, \":company_id\"])\n .addRoundtrip(\"root.candidates.show.companies.show.employees\", {\n paramName: \":employee_id\",\n url: \"/employees\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.candidates.show.companies.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.companies.show.projects\",\n })\n .addRoundtrip(\"root.candidates.show.companies.show.candidates\", {\n paramName: \":candidate_id\",\n url: \"/candidates\",\n redirect: \"root.candidates.show.companies\",\n })\n .addRoundtrip(\n \"root.expert_profile\",\n angular.extend({ redirect: \"root.candidates.show.expert_profile\" }, expertProfileOpts.urlParameters)\n );\n\n $stateProvider.state(\"root.candidates.show.documents\", {\n url: \"/documents?document_id\",\n resolve: {\n sidebar: [\n \"SidebarFactory\",\n function (SidebarFactory) {\n return new SidebarFactory(\"deckSub\");\n },\n ],\n objectType: function () {\n return \"candidate\";\n },\n scrollspyScope: function () {\n return _.uniqueId(\"scrollspy\");\n },\n },\n onExit: [\n \"sidebar\",\n function (sidebar) {\n sidebar.close();\n },\n ],\n onEnter: [\n \"sidebar\",\n function (sidebar) {\n sidebar.open();\n },\n ],\n views: {\n \"deck-sub@root.candidates\": {\n component: \"genericDeck\",\n },\n \"deck-content@root.candidates.show.documents\": {\n component: \"candidatesDocumentsView\",\n },\n },\n });\n\n // Companies Table\n\n $urlRouterProvider.when(\"/companies/list\", \"/companies\");\n $stateProvider\n .state(\"root.companies\", {\n url: \"/companies?additional_pages&q&advanced&saved_search_id\",\n component: \"companiesIndex\",\n resolve: angular.merge(angular.copy(companyOpts.requirements), angular.copy(savedSearchOpts.requirements)),\n onExit: [\n \"CompaniesHotkeys\",\n function (CompaniesHotkeys) {\n CompaniesHotkeys.deregisterHotkeys();\n },\n ],\n onEnter: [\n \"CompaniesHotkeys\",\n function (CompaniesHotkeys) {\n CompaniesHotkeys.registerHotkeys();\n },\n ],\n params: {\n additional_pages: {\n value: \"0\",\n squash: true,\n },\n },\n })\n .state(\"root.companies.list\", {\n url: \"/list\",\n });\n\n $stateGeneratorProvider\n .addStates(\"root.companies\", [null, \"deckPrimary\", companyOpts, \"{company_id:[0-9]+}\"])\n .addStates(\"root.companies.show\", [\"employees\", \"deckSecondary\", employeeOpts, \":employee_id\"])\n .addStates(\"root.companies.show\", [\"projects\", \"deckSecondary\", projectOpts, \":project_id\"])\n .addRoundtrip(\"root.companies.show.projects.show.job_offer\", {\n paramName: \":job_offer_id\",\n url: \"/job_offer\",\n redirect: \"root.projects.show.job_offer\",\n })\n .addRoundtrip(\n \"root.companies.show.projects.show.expert_profile\",\n angular.extend({ redirect: \"root.candidates.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addRoundtrip(\"root.companies.show.projects.show.employee\", {\n paramName: \":employee_id\",\n url: \"/employee\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.companies.show.projects.show.company\", {\n paramName: \":company_id\",\n url: \"/companies\",\n redirect: \"root.companies\",\n })\n\n .addStates(\"root.companies.show\", [\"candidates\", \"deckSecondary\", candidateOpts, \":candidate_id\"])\n .addRoundtrip(\"root.companies.show.candidates.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.candidates.show.projects\",\n })\n .addRoundtrip(\n \"root.companies.show.candidates.show.expert_profile\",\n angular.extend({ redirect: \"root.candidates.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n\n .addStates(\"root.companies.list\", {\n stateName: \"employees\",\n viewLayerID: \"deckPrimary\",\n params: employeeOpts,\n urlParamName: \":employee_id\",\n rootView: \"@root.companies\",\n })\n .addRoundtrip(\"root.companies.list.employees.show.companies\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.companies.show.employees.show.companies\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.companies.list.employees.show.projects.show.candidate\", {\n paramName: \":candidate_id\",\n url: \"/candidate\",\n redirect: \"root.projects.show.candidate\",\n })\n .addRoundtrip(\"root.companies.list.employees.show.projects.show.employee\", {\n paramName: \":employee_id\",\n url: \"/employee\",\n redirect: \"root.projects.show.employee\",\n })\n .addRoundtrip(\"root.companies.list.employees.show.projects.show.company\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.projects.show.company\",\n })\n .addRoundtrip(\n \"root.companies.list.employees.show.projects.show.expert_profile\",\n angular.extend({ redirect: \"root.projects.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addRoundtrip(\"root.companies.list.employees.show.projects.show.job_offer\", {\n paramName: \":job_offer_id\",\n url: \"/job_offer\",\n redirect: \"root.projects.show.job_offer\",\n });\n\n $stateProvider.state(\"root.companies.show.documents\", {\n url: \"/documents?document_id\",\n resolve: {\n sidebar: [\n \"SidebarFactory\",\n function (SidebarFactory) {\n return new SidebarFactory(\"deckSub\");\n },\n ],\n objectType: function () {\n return \"client\";\n },\n scrollspyScope: function () {\n return _.uniqueId(\"scrollspy\");\n },\n },\n onExit: [\n \"sidebar\",\n function (sidebar) {\n sidebar.close();\n },\n ],\n onEnter: [\n \"sidebar\",\n function (sidebar) {\n sidebar.open();\n },\n ],\n views: {\n \"deck-sub@root.companies\": {\n component: \"genericDeck\",\n },\n \"deck-content@root.companies.show.documents\": {\n component: \"candidatesDocumentsView\",\n },\n },\n });\n\n $stateGeneratorProvider\n .addStates(\"root.companies.list.employees.show\", {\n stateName: \"projects\",\n viewLayerID: \"deckSecondary\",\n params: projectOpts,\n urlParamName: \":project_id\",\n rootView: \"@root.companies\",\n })\n .addRoundtrip(\"root.companies.show.employees.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.companies.list.employees.show.projects\",\n });\n\n // Manager Table\n\n $stateProvider.state(\"root.employees\", {\n url: \"/employees?additional_pages&q&advanced&saved_search_id\",\n component: \"employeesIndexView\",\n resolve: angular.merge(angular.copy(employeeOpts.requirements), angular.copy(savedSearchOpts.requirements)),\n params: {\n additional_pages: {\n value: \"0\",\n squash: true,\n },\n },\n });\n\n $stateGeneratorProvider\n .addStates(\"root.employees\", [null, \"deckPrimary\", employeeOpts, \"{employee_id:[0-9]+}\"])\n .addStates(\"root.employees.show\", [\"companies\", \"deckSecondary\", companyOpts, \"{company_id:[0-9]+}\"])\n .addStates(\"root.employees.show\", [\"projects\", \"deckSecondary\", projectOpts, \"{project_id:[0-9]+}\"])\n\n .addRoundtrip(\"root.employees.show.candidates\", {\n paramName: \":candidate_id\",\n url: \"/candidates\",\n redirect: \"root.candidates\",\n })\n\n .addRoundtrip(\"root.employees.show.companies.show.candidates\", {\n paramName: \":candidate_id\",\n url: \"/candidates\",\n redirect: \"root.candidates\",\n })\n .addRoundtrip(\"root.employees.show.companies.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.companies.show.projects\",\n })\n .addRoundtrip(\"root.employees.show.companies.show.employees\", {\n paramName: \":employee_id\",\n url: \"/employees\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.employees.show.projects.show.candidate\", {\n paramName: \":candidate_id\",\n url: \"/candidates\",\n redirect: \"root.projects.show.candidate\",\n })\n .addRoundtrip(\"root.employees.show.projects.show.employee\", {\n paramName: \":employee_id\",\n url: \"/employee\",\n redirect: \"root.projects.show.employee\",\n })\n .addRoundtrip(\"root.employees.show.projects.show.company\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.projects.show.company\",\n })\n .addRoundtrip(\n \"root.employees.show.projects.show.expert_profile\",\n angular.extend({ redirect: \"root.projects.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addRoundtrip(\"root.employees.show.projects.show.job_offer\", {\n paramName: \":job_offer_id\",\n url: \"/job_offer\",\n redirect: \"root.projects.show.job_offer\",\n });\n\n // Projects Table\n\n $stateProvider.state(\"root.projects\", {\n url: \"/projects?additional_pages&q&advanced&saved_search_id\",\n component: \"projectsIndexView\",\n resolve: angular.merge(angular.copy(projectOpts.requirements), angular.copy(savedSearchOpts.requirements)),\n onExit: [\n \"ProjectsHotkeys\",\n function (ProjectsHotkeys) {\n ProjectsHotkeys.deregisterHotkeys();\n },\n ],\n onEnter: [\n \"ProjectsHotkeys\",\n function (ProjectsHotkeys) {\n ProjectsHotkeys.registerHotkeys();\n },\n ],\n params: {\n additional_pages: {\n value: \"0\",\n squash: true,\n },\n },\n });\n\n var docViewActive = angular.merge({}, candidateOpts, {\n show: {\n resolve: {\n documentView: [\n function () {\n return true;\n },\n ],\n },\n },\n });\n\n $stateGeneratorProvider\n .addStates(\"root.projects\", [null, \"deckPrimary\", projectOpts, \":project_id\"])\n .addStates(\"root.projects.show\", [\"candidate\", \"deckSecondary\", docViewActive, \":candidate_id\"])\n .addRoundtrip(\n \"root.projects.show.expert_profile\",\n angular.extend({ redirect: \"root.candidates.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addRoundtrip(\n \"root.projects.show.candidate.show.expert_profile\",\n angular.extend({ redirect: \"root.candidates.show.expert_profile\" }, expertProfileOpts.urlParameters)\n )\n .addStates(\"root.projects.show\", [\"job_offer\", \"deckSecondary\", jobOfferOpts, \":job_offer_id\"])\n .addRoundtrip(\"root.projects.show.candidate.show.projects\", {\n paramName: \":project_id\",\n url: \"/project?project_id\",\n redirect: \"root.candidates.show.projects\",\n })\n .addStates(\"root.projects.show\", [\"employee\", \"deckSecondary\", employeeOpts, \":employee_id\"])\n .addRoundtrip(\"root.projects.show.employee.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.companies.list.employees.show.projects\",\n })\n .addRoundtrip(\"root.projects.show.employee.show.company\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.companies\",\n })\n .addRoundtrip(\"root.projects.show.employee.show.companies\", {\n paramName: \":company_id\",\n url: \"/companies\",\n redirect: \"root.employees.show.companies\",\n })\n .addRoundtrip(\"root.projects.show.candidate.show.companies\", {\n paramName: \":company_id\",\n url: \"/companies\",\n redirect: \"root.candidates.show.companies\",\n })\n .addStates(\"root.projects.show\", [\"company\", \"deckSecondary\", companyOpts, \":company_id\"])\n .addRoundtrip(\"root.projects.show.company.show.employees\", {\n paramName: \":employee_id\",\n url: \"/employees\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.projects.show.company.show.candidates\", {\n paramName: \":candidate_id\",\n url: \"/candidates\",\n redirect: \"root.projects.show.candidate\",\n })\n .addRoundtrip(\"root.projects.show.company.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.companies.show.projects\",\n });\n\n $urlRouterProvider.when(\"/quicklists/\", \"/\");\n\n $stateProvider\n .state(\"root.quicklists\", {\n url: \"/quicklists\",\n template: emptyTemplate,\n abstract: true,\n })\n .state(\"root.quicklists.show\", {\n url: \"/:quicklist_id?q&advanced&saved_search_id\",\n component: \"quicklistShowView\",\n resolve: angular.merge(angular.copy(savedSearchOpts.requirements), {\n quicklistResponse: [\n \"stateParams\",\n \"QuicklistsFactory\",\n function (stateParams, QuicklistsFactory) {\n return QuicklistsFactory.get(stateParams.quicklist_id);\n },\n ],\n scrollspyScope: function () {\n return _.uniqueId(\"scrollspy\");\n },\n }),\n })\n .state(\"root.quicklists.edit\", {\n url: \"/:quicklist_id/edit?q&advanced&saved_search_id\",\n resolve: angular.merge(angular.copy(savedSearchOpts.requirements), {\n sidebar: [\n \"SidebarFactory\",\n function (SidebarFactory) {\n return new SidebarFactory(\"deckPrimary\");\n },\n ],\n quicklistResponse: [\n \"stateParams\",\n \"QuicklistsFactory\",\n function (stateParams, QuicklistsFactory) {\n return QuicklistsFactory.get(stateParams.quicklist_id);\n },\n ],\n objectType: [\n function () {\n return \"candidate\";\n },\n ],\n scrollspyScope: function () {\n return _.uniqueId(\"scrollspy\");\n },\n }),\n onExit: [\n \"sidebar\",\n function (sidebar) {\n sidebar.close();\n },\n ],\n onEnter: [\n \"sidebar\",\n function (sidebar) {\n sidebar.open();\n },\n ],\n views: {\n \"\": {\n component: \"quicklistShowView\",\n },\n \"deck-primary@root.quicklists.edit\": {\n component: \"genericDeck\",\n },\n \"deck-content@root.quicklists.edit\": {\n component: \"quicklistEditView\",\n },\n \"deck-sidebar@root.quicklists.edit\": {\n component: \"quicklistMenuView\",\n },\n },\n });\n\n $stateProvider.state(\"root.quicklists.show.company\", {\n url: \"/company\",\n component: \"companiesIndex\",\n resolve: companyOpts.requirements,\n });\n\n $stateGeneratorProvider\n .addStates(\"root.quicklists.show.company\", {\n viewLayerID: \"deckPrimary\",\n params: companyOpts,\n urlParamName: \":company_id\",\n forceRootStateName: true,\n })\n .addStates(\"root.quicklists.show.company.show\", {\n stateName: \"employees\",\n viewLayerID: \"deckSecondary\",\n params: employeeOpts,\n urlParamName: \":employee_id\",\n rootView: \"@root.quicklists.show\",\n })\n\n .addStates(\"root.quicklists.show.company.show\", {\n stateName: \"projects\",\n viewLayerID: \"deckSecondary\",\n params: projectOpts,\n urlParamName: \":project_id\",\n rootView: \"@root.quicklists.show\",\n })\n\n .addStates(\"root.quicklists.show.company.show\", {\n stateName: \"candidates\",\n viewLayerID: \"deckSecondary\",\n params: candidateOpts,\n urlParamName: \":candidate_id\",\n rootView: \"@root.quicklists.show\",\n })\n\n .addRoundtrip(\"root.quicklists.show.company.show.projects.show.employee\", {\n paramName: \":employee_id\",\n url: \"/employee\",\n redirect: \"root.quicklists.show.company.show.employees\",\n })\n\n .addRoundtrip(\"root.quicklists.show.company.show.projects.show.company\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.quicklists.show.company\",\n });\n\n $stateProvider.state(\"root.quicklists.show.candidate\", {\n url: \"/candidate\",\n resolve: candidateOpts.requirements,\n subDeckOpen: true,\n });\n\n $stateGeneratorProvider\n .addStates(\"root.quicklists.show.candidate\", {\n viewLayerID: \"deckPrimary\",\n params: candidateOpts,\n urlParamName: \":candidate_id\",\n forceRootStateName: true,\n subDeckOpen: true,\n })\n .addStates(\"root.quicklists.show.candidate.show\", {\n stateName: \"projects\",\n viewLayerID: \"deckSecondary\",\n params: projectOpts,\n urlParamName: \":project_id\",\n rootView: \"@root.quicklists.show\",\n })\n .addStates(\"root.quicklists.show.candidate.show\", {\n stateName: \"companies\",\n viewLayerID: \"deckSecondary\",\n params: companyOpts,\n urlParamName: \":company_id\",\n rootView: \"@root.quicklists.show\",\n })\n .addStates(\"root.quicklists.show.candidate.show\", {\n stateName: \"expert_profile\",\n viewLayerID: \"deckSecondary\",\n rootView: \"@root.quicklists.show\",\n params: expertProfileOpts,\n urlParamName: expertProfileOpts.urlParameters.paramName,\n url: expertProfileOpts.urlParameters.url + \"?\" + expertProfileOpts.urlParameters.queryParams,\n })\n .addRoundtrip(\n \"root.quicklists.show.candidate.show.projects.show.expert_profile\",\n angular.extend(\n { redirect: \"root.quicklists.show.candidate.show.expert_profile\" },\n expertProfileOpts.urlParameters\n )\n )\n .addRoundtrip(\"root.quicklists.show.candidate.show.projects.show.company\", {\n paramName: \":company_id\",\n url: \"/company\",\n redirect: \"root.quicklists.show.candidate.show.companies\",\n })\n .addRoundtrip(\"root.quicklists.show.candidate.show.projects.show.employee\", {\n paramName: \":employee_id\",\n url: \"/employees\",\n redirect: \"root.projects.show.employee\",\n });\n\n $stateProvider.state(\"root.quicklists.show.candidate.show.documents\", {\n url: \"/documents?document_id\",\n resolve: {\n sidebar: [\n \"SidebarFactory\",\n function (SidebarFactory) {\n return new SidebarFactory(\"deckSub\");\n },\n ],\n objectType: function () {\n return \"candidate\";\n },\n scrollspyScope: function () {\n return _.uniqueId(\"scrollspy\");\n },\n },\n onExit: [\n \"sidebar\",\n function (sidebar) {\n sidebar.close();\n },\n ],\n onEnter: [\n \"sidebar\",\n function (sidebar) {\n sidebar.open();\n },\n ],\n views: {\n \"deck-sub@root.quicklists.show.candidate\": {\n component: \"genericDeck\",\n },\n \"deck-content@root.quicklists.show.candidate.show.documents\": {\n component: \"candidatesDocumentsView\",\n },\n },\n });\n\n $stateProvider.state(\"root.quicklists.show.employee\", { url: \"/employee\", resolve: employeeOpts.requirements });\n $stateGeneratorProvider\n .addStates(\"root.quicklists.show.employee\", [null, \"deckPrimary\", employeeOpts, \":employee_id\", true])\n .addStates(\"root.quicklists.show.employee.show\", {\n stateName: \"companies\",\n viewLayerID: \"deckSecondary\",\n params: companyOpts,\n urlParamName: \":company_id\",\n rootView: \"@root.quicklists.show\",\n })\n .addRoundtrip(\"root.quicklists.show.employee.show.companies.show.employees\", {\n paramName: \":employee_id\",\n url: \"/employees\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.quicklists.show.employee.show.company.show.employees\", {\n paramName: \":employee_id\",\n url: \"/employees\",\n redirect: \"root.companies.show.employees\",\n })\n .addRoundtrip(\"root.quicklists.show.employee.show.company.show.projects\", {\n paramName: \":project_id\",\n url: \"/projects\",\n redirect: \"root.companies.show.projects\",\n })\n .addStates(\"root.quicklists.show.employee.show\", {\n stateName: \"projects\",\n viewLayerID: \"deckSecondary\",\n params: projectOpts,\n urlParamName: \":project_id\",\n rootView: \"@root.quicklists.show\",\n });\n\n $urlRouterProvider.otherwise(\"/\");\n },\n ])\n\n .config([\n \"KeepaliveProvider\",\n \"IdleProvider\",\n function (KeepaliveProvider, IdleProvider) {\n // CSRF token checks do not work for GET or HEAD requests.\n KeepaliveProvider.http({ url: \"/keepalive.json\", method: \"POST\" }); // sends every minute a request to the API\n KeepaliveProvider.interval(10);\n IdleProvider.timeout(300); // 5 min\n IdleProvider.idle(60 * 60 * 10 - 300); // 10h - 5 min\n },\n ])\n\n .config([\n \"$httpProvider\",\n function ($httpProvider) {\n $httpProvider.interceptors.push(\"myCSRF\");\n },\n ])\n\n .config([\n \"$sceDelegateProvider\",\n function ($sceDelegateProvider) {\n $sceDelegateProvider.resourceUrlWhitelist([\n // Allow same origin resource loads.\n \"self\",\n // Allow loading from our assets domain. **.\n \"https://sso-staging.textkernel.de/**\",\n \"https://sso.textkernel.de/**\",\n ]);\n },\n ])\n\n .run([\n \"$rootScope\",\n \"$state\",\n \"$transitions\",\n \"$log\",\n \"Session\",\n \"AuthService\",\n \"AUTH_EVENTS\",\n \"ngProgress\",\n \"$timeout\",\n \"moment\",\n \"amMoment\",\n \"RedirectLocation\",\n \"sidebarStates\",\n \"$templateCache\",\n \"PopoverLoaderTemplate\",\n \"tmhDynamicLocale\",\n \"tmhDynamicLocaleCache\",\n function (\n $rootScope,\n $state,\n $transitions,\n $log,\n Session,\n AuthService,\n AUTH_EVENTS,\n ngProgress,\n $timeout,\n moment,\n amMoment,\n RedirectLocation,\n sidebarStates,\n $templateCache,\n PopoverLoaderTemplate,\n tmhDynamicLocale,\n tmhDynamicLocaleCache\n ) {\n function getInjectedLocale() {\n var localInjector = angular.injector([\"ngLocale\"]);\n return localInjector.get(\"$locale\");\n }\n\n // put de-de language into cache\n require(\"angular-i18n/angular-locale_de-de.js\");\n tmhDynamicLocaleCache.put(\"de\", getInjectedLocale());\n\n // put en-us language into cache\n require(\"angular-i18n/angular-locale_en-us.js\");\n tmhDynamicLocaleCache.put(\"en\", getInjectedLocale());\n\n $templateCache.put(\"popover-loader\", PopoverLoaderTemplate);\n\n Date.prototype.toJSON = function () {\n return moment(this).format();\n };\n amMoment.changeLocale(\"de\");\n tmhDynamicLocale.set(\"de\");\n $rootScope.$state = $state;\n $rootScope.microsoft_login_url = window.microsoft_login_url;\n $rootScope.setPageTitle = function (title) {\n $rootScope.pageTitle = title;\n };\n\n $rootScope.isLoginPage = function () {\n return $state.current.isLoginPage;\n };\n $rootScope.sidebarStates = sidebarStates;\n\n if (window.user_session && window.user_session.user) {\n Session.create(window.user_session);\n amMoment.changeLocale(Session.user.locale);\n tmhDynamicLocale.set(Session.user.locale);\n } else {\n $state.go(\"login\", { redirect_to: RedirectLocation.encode() });\n }\n\n var logoutSuccessListener = $rootScope.$on(AUTH_EVENTS.logoutSuccess, function (event) {\n console.log($state.params);\n $state.go(\"login\", { redirect_to: RedirectLocation.encode() });\n $timeout(function () {\n location.reload();\n }, 1);\n });\n\n var startTransitionListener = $transitions.onStart({}, function (transition) {\n $rootScope.$emit(\"$stateChangeStart\");\n const paramsCopy = Object.assign({}, transition.params());\n const stateService = transition.router.stateService;\n\n if (!_.isUndefined(transition.to().redirect)) {\n return transition.router.stateService.target(transition.to().redirect, paramsCopy);\n }\n\n if (!transition.to().unauthenticated && !AuthService.isAuthenticated()) {\n $log.info(\"User is not logged in, aborting routing.\");\n\n return transition.router.stateService.target(\"login\", { redirect_to: RedirectLocation.encode() });\n } else {\n ngProgress.start();\n $rootScope.navigating = true;\n }\n });\n\n var successTransitionListener = $transitions.onSuccess({}, function (transition) {\n ngProgress.complete();\n $rootScope.navigating = false;\n\n // reset page title so it doesn't leak between pages\n $rootScope.setPageTitle(null);\n });\n\n var errorTransitionListener = $transitions.onError({}, function (transition) {\n console.log(\n \"TransitionError: \" +\n transition.error() +\n \" occured while navigating to \" +\n transition.to().name +\n \" with params: \",\n transition.params(\"to\")\n );\n\n ngProgress.reset();\n $rootScope.navigating = false;\n });\n\n // custom event\n $rootScope.$on(\"$stateChangeAbort\", function (event) {\n ngProgress.reset();\n $rootScope.navigating = false;\n });\n\n $rootScope.$on(\"$destroy\", function () {\n logoutSuccessListener();\n startTransitionListener();\n successTransitionListener();\n errorTransitionListener();\n });\n\n ngProgress.color(\"#B58D4F\");\n },\n ]);\n","export default class DeckCtrl {\n static $inject = [\"sidebarStates\"];\n constructor(\n public sidebarStates: any\n ) { }\n}","import DeckCtrl from \"./deck.controller\";\nimport deckTemplate from \"./deck.template.html\";\n\nangular.module(\"app\").component(\"deck\", {\n bindings: {},\n template: deckTemplate,\n controller: DeckCtrl,\n});\n","export default class GenericDeckCtrl {\n public sidebar: any;\n \n static $inject = [\"sidebarStates\"];\n\n constructor(\n private sidebarStates: any\n ) {}\n\n public getDeckCssHelper(deck) {\n var twoDecksExist = this.sidebarStates.deckSecondary;\n if (twoDecksExist) {\n return `${deck} mg-deck_half`;\n } else {\n return `${deck} mg-deck_full`;\n }\n };\n\n public getDeckClass() {\n return this.sidebar.name() == \"deckPrimary\"\n ? this.getDeckCssHelper(\"mg-deck-primary\")\n : this.getDeckCssHelper(\"mg-deck-secondary\");\n };\n};","import GenericDeckCtrl from \"./generic-deck.controller\";\nimport genericDeckTemplate from \"./generic-deck.template.html\";\n\nangular.module(\"app\").component(\"genericDeck\", {\n bindings: {\n objectClass: \" (ids: number[]) => void;\n public expandQuicklist: (id: number) => (ids: number[]) => void;\n public updateExpandUserSidebar: (id: number, status: string) => (ids: number[]) => void;\n public updateExpandQuicklist: (id: number, status: string) => (ids: number[]) => void;\n public sessionTimeoutListener: () => void;\n public loginRequiredListener: () => void;\n static $inject = [\n \"$rootScope\",\n \"$filter\",\n \"AuthService\",\n \"Session\",\n \"AUTH_EVENTS\",\n \"Keepalive\",\n \"Idle\",\n \"QuicklistsFactory\",\n \"SidebarService\",\n \"$templateCache\"\n ];\n\n constructor (\n private $rootScope: IExtendedRootScopeService,\n private $filter: IFilterService,\n private AuthService: any,\n private Session: any,\n private AUTH_EVENTS: any,\n private Keepalive: any,\n private Idle: any,\n private Quicklist: any,\n private SidebarService: any,\n private $templateCache: ITemplateCacheService\n ) {\n this.$templateCache.put(\"system-menu-template\", systemMenuTemplate);\n\n if (this.Session.user) {\n this.loginConfirmed();\n }\n\n this.sessionTimeoutListener = this.$rootScope.$on(\"IdleTimeout\", () => {\n this.$rootScope.$emit(\"sessionTimeout\", true);\n });\n\n this.loginRequiredListener = this.$rootScope.$on(\"KeepaliveResponse\", (event, data, status) => {\n if (status === 0) {\n if (this.online) {\n // network not available\n this.online = false;\n window.alert(this.$filter(\"translate\")(\"NO_INTERNET_CONNECTION_NOTICE\"));\n }\n } else {\n // network available\n this.online = true;\n }\n });\n\n this.online = true;\n\n this.$rootScope.$on(\"sessionTimeout\", this.timeout);\n this.$rootScope.$on(\"event:auth-loginRequired\", this.timeout);\n this.$rootScope.$on(\"event:auth-loginConfirmed\", this.loginConfirmed);\n }\n \n public $onInit() {\n this.online = true;\n\n this.expandUserSidebar = this.SidebarService.getSidebarStatus(\"expandUserSidebar\");\n this.expandQuicklist = this.SidebarService.getSidebarStatus(\"expandQuicklist\");\n\n this.updateExpandUserSidebar = _.partial(this.SidebarService.updateSideBar, \"expandUserSidebar\");\n this.updateExpandQuicklist = _.partial(this.SidebarService.updateSideBar, \"expandQuicklist\");\n };\n\n public logout(force?) {\n this.Keepalive.stop();\n this.Idle.unwatch();\n this.$rootScope.$emit(\"$stateChangeAbort\");\n\n if (force) {\n this.AuthService.logout().then(() => {\n Tag.invalidateCache();\n this.$rootScope.$broadcast(this.AUTH_EVENTS.logoutSuccess);\n });\n } else {\n this.AuthService.openLoginFormModal();\n }\n };\n\n public timeout() {\n if (!this.$rootScope.cancelTimeout) {\n this.logout();\n } else {\n delete this.$rootScope.cancelTimeout;\n this.Keepalive.start();\n this.Idle.watch();\n }\n };\n\n public loginConfirmed() {\n this.currentUser = this.Session.user;\n\n this.Quicklist.clearCache();\n this.$rootScope.$broadcast(\"updatedQuicklist\");\n\n this.Keepalive.start();\n this.Idle.watch();\n };\n\n public $onDestroy() {\n this.sessionTimeoutListener();\n this.loginRequiredListener();\n };\n};","import MainViewCtrl from \"./main-view.controller\";\nimport rootTemplate from \"./main-view.template.html\";\n\nangular.module(\"app\").component(\"mainView\", {\n bindings: {},\n template: rootTemplate,\n controller: MainViewCtrl,\n});\n","import * as $ from \"jquery\";\n(window as any).$ = (window as any).jQuery = $;\n(window as any).testjQuery = $;\n\nimport _ from \"underscore\";\n(window as any).underscore = _;\n\nimport \"../src/application\";\nimport \"../src/index\";\n","angular.module(\"action_types\", [\"action_types.components\"]);\n","angular.module(\"action_types.components\", []);\n","angular.module(\"actions\", [\"actions.components\", \"actions.modals\"]);\n","const actionNoticeFormTemplate = require(\"./action-notice-form.template.html\");\nangular.module(\"actions.components\").component(\"actionNoticeForm\", {\n bindings: {\n action: \"=\",\n options: \"=\",\n actionForm: \"=\",\n },\n template: actionNoticeFormTemplate,\n});\n","angular.module(\"actions.modals\", [\"modals\", \"action_types\"]);\n","//= require ../modals.module.js\n\nangular.module(\"actions.modals\").factory(\"ActionModals\", [\n \"$uibModal\",\n function ($uibModal) {\n function selectActionModal(queryUrl, params, options) {\n var modalInstance = $uibModal.open({\n component: \"selectActionModal\",\n size: \"lg\",\n resolve: {\n options: function () {\n return _.isObject(options) ? options : {};\n },\n actions: [\n \"ActionsFactory\",\n function (Action) {\n return Action.$http({\n url: \"actions/kpi_route\",\n params: _.extend({ follow_ups: true, key: queryUrl }, params),\n headers: { Accept: \"application/json\" },\n });\n },\n ],\n },\n });\n\n return modalInstance.result;\n }\n\n function showActionsListModal(actions, step) {\n var modalInstance = $uibModal.open({\n component: \"showActionsListModal\",\n size: \"lg\",\n resolve: {\n actions: [\n function () {\n return _.isArray(actions) ? actions : [];\n },\n ],\n step: [\n function () {\n return _.isObject(step) ? step : {};\n },\n ],\n },\n });\n\n return modalInstance.result.then(angular.noop, angular.noop);\n }\n\n return {\n selectAction: selectActionModal,\n showActionsList: showActionsListModal,\n };\n },\n]);\n","angular.module(\"cancelation_periods\", [\"rails\"]);\n","angular.module(\"candidates\", [\n \"candidates.components\",\n \"candidates.modals\",\n \"candidates.views\",\n \"rails\",\n \"ui.router\",\n \"candidates_projects\",\n \"action_types\",\n \"languages\",\n \"marital_statuses\",\n \"saved_searches\",\n \"filters\",\n \"angularFileUpload\",\n]);\n","angular.module(\"candidates.components\", []);\n","//= require ./modals.module.js\n\nangular.module(\"candidates.modals\").factory(\"CandidatesModalMixin\", [\n \"$uibModal\",\n \"$filter\",\n \"$translate\",\n \"poller\",\n \"ModalUtilMixin\",\n function ($uibModal, $filter, $translate, poller, ModalUtilMixin) {\n function CandidatesModalMixin() {}\n\n function openQualificationSummaryModal() {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_SUMMARY_QUALIFICATION\");\n\n if (!_this.privateEmail && !_this.workEmail) {\n window.alert($filter(\"translate\")(\"PRESENTATION_ADD_EMAIL_ADDRESS_TO_CANDIDATE_NOTICE\"));\n return;\n } else if (!_this.privateEmail) {\n if (!window.confirm($filter(\"translate\")(\"NO_PRIVATE_EMAIL_CANDIDATE_NOTICE\"))) {\n return;\n }\n }\n\n var modalInstance = ModalUtilMixin.createChooseContactModal(\"create_qualification_summary_email\", title, this);\n\n return modalInstance.result.then(\n function (qualificationSummaryEmail) {\n qualificationSummaryEmail.callback.then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"EMAIL_SUMMARY_CONFIRMATION\"), pollingService).then(\n function (res) {\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n },\n function () {}\n );\n }\n\n function showDuplicatesModal(candidate, duplicates) {\n var modalInstance = $uibModal.open({\n component: \"candidateShowDuplicates\",\n size: \"lg\",\n resolve: {\n duplicates: function () {\n return duplicates;\n },\n candidate: function () {\n return candidate;\n },\n },\n });\n\n return modalInstance.result;\n }\n\n CandidatesModalMixin.extended = function (Resource) {\n Resource.include({\n openQualificationSummaryModal: openQualificationSummaryModal,\n showDuplicates: showDuplicatesModal,\n });\n };\n\n return CandidatesModalMixin;\n },\n]);\n","angular.module(\"candidates.modals\", [\n \"rails\",\n \"ui.router\",\n \"candidates_projects\",\n \"action_types\",\n \"languages\",\n \"saved_searches\",\n \"filters\",\n \"angularFileUpload\",\n]);\n","//= require ../candidates.module.js\n\nangular.module(\"candidates\").factory(\"CandidatesHotkeys\", [\n \"hotkeys\",\n \"$state\",\n \"$rootScope\",\n function (hotkeys, $state, $rootScope) {\n return {\n registerHotkeys: function () {\n $(window).keydown(function (event) {\n if (event.ctrlKey && event.keyCode == 75) {\n // ctrl+k\n event.preventDefault();\n }\n });\n\n if (!hotkeys.get(\"mod+k s\")) {\n hotkeys.add({\n combo: \"mod+k s\",\n description: \"Nach Kandidaten suchen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $rootScope.$broadcast(\"candidatesSearch\");\n },\n });\n }\n\n if (!hotkeys.get(\"mod+k c\")) {\n hotkeys.add({\n combo: \"mod+k c\",\n description: \"Einen Kandidaten erstellen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $state.go(\"root.candidates.new\");\n },\n });\n }\n },\n deregisterHotkeys: function () {\n if ($state.current.name.indexOf(\"root.candidates\") > -1) {\n hotkeys.del(\"mod+k c\");\n hotkeys.del(\"mod+k s\");\n }\n },\n };\n },\n]);\n","//= require ../candidates.module.js\n\nangular.module(\"candidates\").service(\"CandidatesFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"CandidatesModalMixin\",\n \"PersonModalMixin\",\n \"ModalMixin\",\n \"TextkernelModalMixin\",\n \"ActionsFactory\",\n \"$state\",\n \"$rootScope\",\n \"$http\",\n \"$filter\",\n \"Highlighter\",\n \"railsSerializer\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n CandidatesModalMixin,\n PersonModalMixin,\n ModalMixin,\n TextkernelModalMixin,\n Action,\n $state,\n $rootScope,\n $http,\n $filter,\n Highlighter,\n railsSerializer\n ) {\n function Candidate() {\n (Candidate).__super__.constructor.apply(this, arguments);\n\n this.resourceType = \"Candidate\";\n this.serviceName = \"CandidatesFactory\";\n this.candidatesProjects = this.candidatesProjects || [];\n\n this.allDocuments = function () {\n if (!this.$allDocuments) {\n this.$allDocuments = _.clone(this.documents);\n }\n\n return this.$allDocuments;\n };\n\n // returns a deep copy of a candidate as OBJECT\n this.deepCopy = function () {\n return angular.copy(this);\n };\n\n this.extendByDiff = function (candidateDiffData) {\n var mappedTags = _.map(candidateDiffData.taggings, function (tagging) {\n return tagging.tag;\n });\n\n angular.extend(this, _.omit(candidateDiffData, \"changes\"), {\n tags: _.reject(mappedTags, _.matcher({ type: \"ComputerSkill\" })),\n computerSkills: _.where(mappedTags, { type: \"ComputerSkill\" }),\n workMobilePhone: $filter(\"phoneNumber\")(candidateDiffData.workMobilePhone),\n privateMobilePhone: $filter(\"phoneNumber\")(candidateDiffData.privateMobilePhone),\n workPhone: $filter(\"phoneNumber\")(candidateDiffData.workPhone),\n privatePhone: $filter(\"phoneNumber\")(candidateDiffData.privatePhone),\n });\n\n this.$attributeChanges = [];\n _.chain(this._prepSnapshot())\n .keys()\n .omit(\"$attribute_changes\")\n .each(\n function (attrKey) {\n this.attributeChanged(attrKey);\n }.bind(this)\n );\n };\n\n this.attributeChanged = function (attribute) {\n this.$attributeChanges = this.$attributeChanges || {};\n\n if (_.isUndefined(this.$attributeChanges[attribute])) {\n if (_.isEmpty(this.$snapshots)) {\n this.$attributeChanges[attribute] = false;\n } else {\n this.$attributeChanges[attribute] = !angular.equals(\n _.last(this.$snapshots)[attribute],\n this._prepSnapshot()[attribute]\n );\n }\n }\n return this.$attributeChanges[attribute];\n };\n\n this.mapSearchScopesToHumanReadable = Candidate.mapSearchScopesToHumanReadable;\n\n this.addToProject = function (project) {\n project.addCandidate(this);\n };\n\n this.currentProjects = function () {\n return _.chain(this.candidatesProjects)\n .where({ deleted: false })\n .reject({ project: null })\n .map(function (cpjoin) {\n return cpjoin.project;\n })\n .value();\n }.bind(this);\n\n this.createNewAction = function (actionTypeIdentifier) {\n Action.createNewAction(this, actionTypeIdentifier);\n };\n\n this.params = function () {\n return { candidate_id: this.id };\n };\n\n this.getDefaultEmailAddress = function () {\n return this.privateEmail;\n };\n\n this.createMessage = function (actionRoute, emailParams) {\n var params = angular.merge({ id: this.id }, emailParams);\n return $http.post(\"candidates/\" + this.id + \"/\" + actionRoute + \".json\", { candidate: params });\n };\n\n this.sendDocument = function (actionRoute, infoPresentationEmail) {\n (Candidate).$post(\"candidates/\" + this.id + \"/\" + actionRoute + \".json\", infoPresentationEmail).then(\n function (resCandidate) {\n $rootScope.$broadcast(\"candidate_action_changed_\" + this.id);\n }.bind(this)\n );\n }.bind(this);\n\n this.saveCustomNote = function (action) {\n Action.saveCustomNote(this, action);\n }.bind(this);\n\n this.toString = function () {\n return JSON.stringify(this);\n }.bind(this);\n\n this.filterDepartments = function () {\n return { job_category_ids: { job_category_ids: _.pluck(this.jobCategories, \"id\") } };\n }.bind(this);\n }\n\n Candidate.transformResultHandlerOk = function (result) {\n if (result) {\n $state.go(\"root.candidates.show\", result.params());\n if (result.notTransmitted) {\n window.alert(\n $filter(\"translate\")(\"REJECTED_ATTRIBUTES\") +\n \": \" +\n _.map(result.notTransmitted, function (val, key) {\n return key + \": \" + val;\n })\n );\n }\n }\n };\n\n Candidate.transformResultHandlerError = function (result) {\n if (result.status != 409) {\n window.rollbar.error(\"Generating candidate from employee failed\", { status: result.status });\n } else {\n window.alert($filter(\"translate\")(\"CANDIDATE_EXISTS_ALREADY\"));\n window.rollbar.error(\"Candidate exists already\", { status: result.status });\n }\n };\n\n Candidate.mapSearchScopesToHumanReadable = function (scopeDescriptor) {\n switch (scopeDescriptor) {\n case \"fullNameWithTitle.standard\":\n case \"fullNameReverseWithTitle.standard\":\n return \"MAP_READ_EXACT_NAME\";\n case \"fullNameReverseWithTitle.highlight\":\n return \"MAP_READ_INEXACT_NAME\";\n case \"address\":\n return \"MAP_READ_ADDRESS\";\n case \"privateEmail\":\n return \"MAP_READ_EMAIL_PRIVATE\";\n case \"workEmail\":\n return \"MAP_READ_EMAIL_WORK\";\n case \"privatePhone\":\n return \"MAP_READ_TELEPHONE_PRIVATE\";\n case \"privateMobilePhone\":\n return \"MAP_READ_MOBILE_PRIVATE\";\n case \"workPhone\":\n return \"MAP_READ_TELEPHONE_WORK\";\n case \"workMobilePhone\":\n return \"MAP_READ_MOBILE_WORK\";\n case \"tags.name\":\n return \"MAP_READ_TAG\";\n case \"jobCategories.name\":\n return \"MAP_READ_JOB_CATEGORIES\";\n case \"allActions.description.de\":\n return \"MAP_READ_HISTORY\";\n case \"jobTitle\":\n return \"MAP_READ_CURRENT_POSITION\";\n case \"wantedJobTitle\":\n return \"MAP_READ_WANTED_POSITION\";\n case \"candidateDocuments.extractedText\":\n case \"candidateDocuments.extractedText.de\":\n return \"MAP_READ_DOCUMENTS\";\n case \"responsibleUser.symbole\":\n case \"responsibleUser.fullName.notAnalyzed\":\n return \"MAP_READ_RESPONSIBLE_USER\";\n case \"restrictionNotice.standard\":\n return \"MAP_READ_BLOCKING_NOTICE\";\n case \"company.name\":\n return \"MAP_READ_COMPANY\";\n case \"id\":\n return \"MAP_READ_ID\";\n case \"restriction_notice\":\n return \"MAP_READ_BLOCKING_NOTICE\";\n default:\n return undefined;\n }\n };\n\n Candidate.profileSources = [\n { id: \"unknown_source\", name: $filter(\"translate\")(\"SOURCE_UNKNOWN\"), selectable: false },\n { id: \"entourage_homepage\", name: $filter(\"translate\")(\"SOURCE_ENTOURAGE\"), selectable: true },\n { id: \"linked_in\", name: $filter(\"translate\")(\"SOURCE_LINKEDIN\"), selectable: true },\n { id: \"xing\", name: $filter(\"translate\")(\"SOURCE_XING\"), selectable: true },\n { id: \"recommendation\", name: $filter(\"translate\")(\"SOURCE_RECOMMENDATION\"), selectable: false },\n { id: \"email\", name: $filter(\"translate\")(\"SOURCE_EMAIL\"), selectable: false },\n ];\n\n Candidate.duplicatesWatchFields = [\n \"firstName\",\n \"lastName\",\n \"privatePhone\",\n \"privateMobilePhone\",\n \"privateEmail\",\n \"workPhone\",\n \"workMobilePhone\",\n \"workEmail\",\n ];\n\n Candidate.attributeNames = {\n firstName: \"ATTR_FIRST_NAME\",\n lastName: \"ATTR_LAST_NAME\",\n privateEmail: \"ATTR_EMAIL_PRIVATE\",\n privateMobilePhone: \"ATTR_MOBILE_PRIVATE\",\n taggings: \"ATTR_TAGS\",\n birthDate: \"ATTR_BIRTHDATE\",\n hobbies: \"ATTR_HOBBIES\",\n street: \"ATTR_STREET\",\n zipCode: \"ATTR_POST_CODE\",\n city: \"ATTR_CITY\",\n gender: \"ATTR_GENDER\",\n jobTitle: \"ATTR_CURRENT_POSITION\",\n linkedinUrl: \"ATTR_LINKEDIN\",\n xingUrl: \"ATTR_XING\",\n homepage: \"ATTR_HOMEPAGE\",\n languageSkills: \"ATTR_LANGUAGES\",\n personsNationalities: \"ATTR_NATIONALITY\",\n workingRelationships: \"ATTR_EMPLOYER\",\n personsGraduations: \"ATTR_EDUCATION\",\n privateCountryId: \"ATTR_COUNTRY_ADDRESS\",\n };\n\n Candidate.mapAttribute = function (attr) {\n return $filter(\"translate\")(Candidate.attributeNames[attr]);\n };\n\n Candidate.defaultTableAttributes = {\n id: {\n title: \"TABLE_ID\",\n show: true,\n pinned: true,\n menu: true,\n class: \"id\",\n sortField: \"id\",\n },\n name: {\n title: \"TABLE_NAME\",\n show: true,\n fixedWidth: true,\n class: \"title\",\n sortField: \"full_name_reverse_with_title.not_analyzed\",\n },\n company: {\n title: \"TABLE_COMPANY\",\n show: true,\n class: \"title\",\n sortField: \"company.name.not_analyzed\",\n },\n priority: {\n title: \"TABLE_PRIORITY\",\n show: false,\n class: \"priority\",\n sortField: \"priority\",\n },\n tags: {\n title: \"TABLE_TAGS\",\n show: true,\n class: \"tags\",\n },\n regions: {\n title: \"TABLE_REGIONS\",\n show: false,\n class: \"tags\",\n },\n city: {\n title: \"TABLE_RESIDENCE\",\n show: true,\n class: \"city\",\n sortField: \"private_city\",\n },\n kpis: {\n title: \"TABLE_KPIS\",\n show: true,\n class: \"kpis\",\n },\n responsibleUser: {\n title: \"TABLE_RESPONSIBLE_USER\",\n show: true,\n class: \"responsible\",\n sortField: \"responsible_user.full_name.not_analyzed\",\n },\n languages: {\n title: \"TABLE_LANGUAGES\",\n show: false,\n class: \"language\",\n },\n documents: {\n title: \"TABLE_DOCUMENTS\",\n show: false,\n class: \"document\",\n sortField: \"candidate_documents_count\",\n },\n createdAt: {\n title: \"TABLE_CREATED_AT\",\n show: false,\n class: \"date\",\n sortField: \"created_at\",\n },\n };\n\n Candidate.requirements = {\n yellow: [\"REQ_YELLOW_NAME\", \"REQ_YELLOW_TELEPHONE\", \"REQ_YELLOW_EMAIL\", \"REQ_YELLOW_CV\"],\n green: [\n \"REQ_GREEN_TAGS\",\n \"REQ_GREEN_WANTS_AWAY\",\n \"REQ_GREEN_GEOFLEX\",\n \"REQ_GREEN_JOB_CATEGORY\",\n \"REQ_GREEN_LATEST_INCOME\",\n ],\n };\n\n RailsResource.extendTo(Candidate);\n (Candidate).configure({\n url: \"/candidates\",\n name: \"candidate\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.nestedAttribute(\"languageSkills\");\n this.nestedAttribute(\"phase\");\n this.resource(\"phase\", \"ActionsFactory\");\n this.nestedAttribute(\"actions\");\n this.resource(\"actions\", \"ActionsFactory\");\n this.nestedAttribute(\"candidatesProjects\");\n this.serializeWith(\"maritalStatus\", \"MaritalStatusesSerializer\");\n this.resource(\"candidatesProjects\", \"CandidatesProjectsFactory\");\n this.resource(\"contractDraft\", \"ContractDraftFactory\");\n this.resource(\"employee\", \"EmployeesFactory\");\n this.serializeWith(\"tags\", \"TagSerializer\");\n this.serializeWith(\"regions\", \"RegionSerializer\");\n this.resource(\"expertProfiles\", \"ExpertProfileFactory\");\n this.serializeWith(\"jobCategories\", \"JobCategoriesSerializer\");\n this.serializeWith(\"jobTypes\", \"JobTypesSerializer\");\n this.rename(\"documents\", \"candidateDocuments\");\n this.resource(\"documents\", \"DocumentsFactory\");\n this.resource(\"workingRelationships\", \"WorkingRelationshipsFactory\");\n this.resource(\"personsGraduations\", \"PersonsGraduationsFactory\");\n\n this.serializeWith(\"organisationUnit\", \"OrganisationUnitSerializer\");\n\n this.serializeWith(\"birthdate\", \"DateSerializer\");\n\n this.serializeWith(\"salaryIstFix\", \"MoneySerializer\");\n this.serializeWith(\"salaryIstVariable\", \"MoneySerializer\");\n this.serializeWith(\"salarySollFixMax\", \"MoneySerializer\");\n this.serializeWith(\"salarySollFixMin\", \"MoneySerializer\");\n this.serializeWith(\"salarySollVariableMax\", \"MoneySerializer\");\n this.serializeWith(\"salarySollVariableMin\", \"MoneySerializer\");\n this.serializeWith(\"salaryIstPerHour\", \"MoneySerializer\");\n this.serializeWith(\"salarySollPerHour\", \"MoneySerializer\");\n this.serializeWith(\"internalCost\", \"MoneySerializer\");\n this.serializeWith(\"internalCostVk\", \"MoneySerializer\");\n this.serializeWith(\"interCompanyRate\", \"MoneySerializer\");\n\n this.serializeWith(\"wantedJobDescription\", \"SanitizeSerializer\");\n this.serializeWith(\"jobChangeMotivationDescription\", \"SanitizeSerializer\");\n this.serializeWith(\"openApplicationsDescription\", \"SanitizeSerializer\");\n this.serializeWith(\"exclusionCriterionDescription\", \"SanitizeSerializer\");\n this.serializeWith(\"coreCompetenciesDescription\", \"SanitizeSerializer\");\n this.serializeWith(\"skillsDescription\", \"SanitizeSerializer\");\n\n this.serializeWith(\"priority\", \"PrioritySerializer\");\n\n this.serializeWith(\"isAvailableFrom\", \"FreeDateSerializer\");\n this.serializeWith(\"openForInterviewsFrom\", \"FreeDateSerializer\");\n\n this.exclude(\"$snapshots\");\n }),\n });\n (Candidate).extend(RailsResourceSnapshotsMixin);\n (Candidate).extend(CandidatesModalMixin);\n (Candidate).extend(ModalMixin);\n (Candidate).extend(PersonModalMixin);\n (Candidate).extend(TextkernelModalMixin);\n (Candidate).extend(Highlighter);\n\n return Candidate;\n },\n]);\n","const candidatesMenuViewTemplate = require(\"./candidates-menu-view.template.html\");\n//= require ../views.module.js\n\nangular.module(\"candidates.views\").component(\"candidatesMenuView\", {\n bindings: {\n scrollspyScope: \"<\",\n },\n template: candidatesMenuViewTemplate,\n});\n","angular.module(\"candidates.views\", []);\n","angular.module(\"candidates_projects\", [\"rails\", \"candidates_projects.components\", \"candidates_projects.modals\"]);\n","angular.module(\"candidates_projects.components\", [\"directives\"]);\n","angular.module(\"candidates_projects.modals\", []);\n","//= require ../candidates_projects.module.js\n\nangular.module(\"candidates_projects\").service(\"CandidatesProjectStatuses\", [\n \"DealsFactory\",\n \"$translate\",\n \"$filter\",\n function (Deal, $translate, $filter) {\n function CandidatesProjectStatuses() {}\n\n CandidatesProjectStatuses.statuses = [\n { name: \"LONGLIST\", id: 0, order: 0, disabled: true },\n {\n name: \"SHORTLIST\",\n id: 1,\n order: 1,\n onChangeHintTemplate:\n \"{{ 'SHORTLIST_CHANGE_HINT_FITS' | translate }}:
  • {{ 'SHORTLIST_CHANGE_HINT_GEOGRAPHICAL' | translate }}
  • {{ 'SHORTLIST_CHANGE_HINT_TECHNICAL' | translate }}
  • {{ 'SHORTLIST_CHANGE_HINT_PERSONAL' | translate }}
  • {{ 'SHORTLIST_CHANGE_HINT_SALARY' | translate }}
  • {{ 'SHORTLIST_CHANGE_HINT_WANTS_AWAY' | translate }}
\",\n },\n { name: \"QUALIFICATION_FOR_PROJECT\", id: 9, order: 2, disabled: true },\n { name: \"SENDOUT\", id: 5, order: 3, disabled: true },\n { name: \"INTERVIEW\", id: 2, order: 4, disabled: true },\n {\n name: \"CLOSING\",\n id: 10,\n order: 5,\n callback: function (cp) {\n return Deal.createAndEdit({\n candidatesProjectId: cp.id,\n add_action: cp.lastAction,\n closing: true,\n });\n },\n },\n {\n name: \"DEAL\",\n id: 3,\n order: 6,\n callback: function (cp) {\n return Deal.createAndEdit({\n candidatesProjectId: cp.id,\n add_action: cp.lastAction,\n closing: false,\n });\n },\n disabled: true,\n },\n {\n name: \"LOST\",\n id: 4,\n order: 7,\n callback: function (cp) {\n return cp.lost(cp.lastAction);\n },\n },\n { name: \"AWAITING_FEEDBACK\", id: 7, order: 8 },\n { name: \"NOT_REACHED\", id: 8, order: 9 },\n { name: \"CONTACTED\", id: 6, order: 10 },\n ];\n\n return CandidatesProjectStatuses;\n },\n]);\n","//= require ../candidates_projects.module.js\n\nangular.module(\"candidates_projects\").service(\"CandidatesProjectsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"$http\",\n \"$rootScope\",\n \"$q\",\n \"$filter\",\n \"$sce\",\n \"CandidatesProjectsModalMixin\",\n \"ModalMixin\",\n \"RailsResourceSnapshotsMixin\",\n \"ActionsFactory\",\n \"CandidatesProjectStatuses\",\n function (\n RailsResource,\n railsSerializer,\n $http,\n $rootScope,\n $q,\n $filter,\n $sce,\n CandidatesProjectsModalMixin,\n ModalMixin,\n RailsResourceSnapshotsMixin,\n Action,\n CandidatesProjectStatuses\n ) {\n function CandidatesProjects() {\n (CandidatesProjects).__super__.constructor.apply(this, arguments);\n\n function invalidClosing(cp) {\n // project job type is not set\n return _.isEmpty(cp.project.jobType) && cp.status.name == \"CLOSING\";\n }\n\n function handleStatusChange(changeStatus, cp) {\n if (changeStatus) {\n if (invalidClosing(cp)) {\n window.alert($filter(\"translate\")(\"SET_PROJECT_TYPE_BEFORE_DEAL_EDIT_NOTICE\"));\n cp.rollback();\n cp.snapshot();\n return;\n }\n\n cp.save().then(\n function (result) {\n cp.snapshot();\n\n if (cp.status.callback) {\n cp.status.callback(result);\n } else {\n $rootScope.$broadcast(\"candidate_action_changed_\" + cp.candidate.id);\n $rootScope.$broadcast(\"project_action_changed_\" + cp.project.id);\n }\n\n if (cp.project.company) {\n $rootScope.$broadcast(\"company_action_changed_\" + cp.project.company.id);\n }\n }.bind(cp)\n );\n } else {\n cp.rollback();\n cp.snapshot();\n }\n }\n\n this.createMessage = function (actionRoute, emailParams) {\n if (!actionRoute) {\n var deferred = $q.defer();\n deferred.resolve(emailParams);\n return deferred.promise;\n }\n var params = angular.merge({ id: this.id }, emailParams);\n return $http.post(\"candidates_projects/\" + this.id + \"/\" + actionRoute + \".json\", {\n candidates_projects: params,\n });\n };\n\n this.sendDocument = function (actionRoute, emailParams) {\n (CandidatesProjects)\n .$post(\"candidates_projects/\" + this.id + \"/\" + actionRoute + \".json\", emailParams)\n .then(\n function (resCpjoin) {\n $rootScope.$broadcast(\"candidate_action_changed_\" + this.candidate.id);\n }.bind(this)\n );\n }.bind(this);\n\n this.projectStatusUpdate = function () {\n if (this.status.disabled) {\n window.alert($filter(\"translate\")(\"ACTION_NOT_POSSIBLE_NOTICE\"));\n this.rollback();\n this.snapshot();\n return;\n }\n\n if (\n _.contains([$filter(\"translate\")(\"CLOSING\"), $filter(\"translate\")(\"DEAL\")], this.status.name) &&\n !this.hasSendout\n ) {\n this.confirm($sce.trustAsHtml(\"'NO_SENDOUT_AVAILABLE_ADD_NEW' | translate: { name: this.status.name }\")).then(\n function (res) {\n if (res) {\n Action.createNewAction(this, \"sendout\").then(function (result) {\n handleStatusChange(res, this);\n });\n } else {\n this.rollback();\n this.snapshot();\n }\n }.bind(this)\n );\n } else {\n this.confirm(\n $sce.trustAsHtml(\n this.status.onChangeHintTemplate || $filter(\"translate\")(\"CHANGE_CANDIDATE_STATUS_CONFIRMATION\")\n )\n ).then(\n function (res) {\n handleStatusChange(res, this);\n }.bind(this)\n );\n }\n }.bind(this);\n\n this.lost = function (action) {\n action.actionEditModal(this).then(\n function () {\n $rootScope.$broadcast(\"candidate_action_changed_\" + this.candidate.id);\n $rootScope.$broadcast(\"project_action_changed_\" + this.project.id);\n }.bind(this)\n );\n };\n\n this.removeCandidate = function () {\n if (!this.getCandidateLonglist()) {\n return;\n }\n\n this.project.removeCandidate(this);\n };\n\n this.getCandidateLonglist = function () {\n if (this.status.id === 0) {\n return true;\n } else {\n return false;\n }\n };\n\n this.addInterviewDate = function (employee) {\n var _cp = this;\n if (!_cp.hasSendout) {\n _cp.confirm($sce.trustAsHtml(\"NO_SENDOUT_AVAILABLE_INTERVIEW\")).then(function (res) {\n if (res) {\n Action.createNewAction(_cp, \"sendout\").then(function (result) {\n _cp.createInterview(employee);\n });\n } else {\n _cp.rollback();\n _cp.snapshot();\n }\n });\n } else {\n _cp.createInterview(employee);\n }\n };\n\n this.createInterview = function (employee) {\n var _this = employee\n ? {\n resourceType: \"EmployeesCandidatesProject\",\n candidate: this.candidate,\n project: this.project,\n employees: [employee],\n }\n : this;\n\n Action.createNewAction(_this, \"telephone-interview\", { followUps: true, actionTypeEditable: true }).then(\n function (action) {\n if (action.actionType.completeDescription.match(/interview/g)) {\n // Set status to Interview\n this.status = _.findWhere(CandidatesProjects.statuses, { id: 2 });\n }\n }.bind(this)\n );\n }.bind(this);\n\n this.createNewAction = function (actionTypeIdentifier) {\n Action.createNewAction(this, actionTypeIdentifier);\n };\n\n this.completeAction = function (type) {\n var cp = this;\n\n cp.selectAction(type, { historyTypeTitle: $filter(\"translate\")(\"INTERVIEW_APPOINTMENT\") }).then(function (\n action\n ) {\n cp.candidate.get().then(function (resCandidate) {\n resCandidate.openContactModal(action.actionEditModal.bind(action, cp, { followUps: true }));\n });\n });\n }.bind(this);\n\n this.sendJobOffer = function () {\n this.sendOpenJobOfferModal();\n };\n\n this.params = function () {\n return { candidates_projects_id: this.id, cpjoin_id: this.id, candidate_id: this.candidate.id };\n };\n\n this.resourceType = \"CandidatesProjects\";\n this.serviceName = \"CandidatesProjectsFactory\";\n this.snapshot();\n }\n\n CandidatesProjects.defaultTableAttributes = {\n id: {\n title: \"ID\",\n show: true,\n class: \"id\",\n sortField: \"id\",\n },\n name: {\n title: \"CANDIDATE\",\n show: true,\n class: \"title\",\n sortField: \"candidate.full_name_reverse_with_title.not_analyzed\",\n },\n projectTitle: {\n title: \"PROJECT\",\n class: \"title\",\n show: false,\n sortField: \"project.title.not_analyzed\",\n },\n sales: {\n title: \"SALES\",\n class: \"responsible\",\n show: false,\n sortField: \"consultant.full_name.not_analyzed\",\n },\n researcher: {\n title: \"RESEARCHER\",\n class: \"responsible\",\n show: false,\n sortField: \"researcher.full_name.not_analyzed\",\n },\n tags: {\n title: \"TAGS\",\n show: true,\n class: \"tags\",\n },\n processStatus: {\n title: \"PROCESS\",\n class: \"select\",\n show: true,\n sortField: \"status\",\n },\n projectStatus: {\n title: \"STATUS\",\n class: \"select\",\n show: true,\n sortField: \"project.project_status\",\n },\n sendoutAt: {\n title: \"SENDOUT_AT\",\n show: false,\n class: \"date\",\n sortField: \"project.sendout_at\",\n },\n sendout: {\n title: \"SO\",\n menu: true,\n show: true,\n class: \"icon\",\n },\n longlistContextMenu: {\n class: \"menu\",\n show: true,\n },\n };\n\n CandidatesProjects.statuses = CandidatesProjectStatuses.statuses;\n\n RailsResource.extendTo(CandidatesProjects);\n (CandidatesProjects).configure({\n url: \"/candidates_projects/{{id}}?candidate_id={{candidate_id}}&project_id={{project_id}}\",\n name: \"candidates_projects\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"expertProfile\", \"ExpertProfileFactory\");\n this.resource(\"project\", \"ProjectsFactory\");\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.resource(\"phase\", \"ActionsFactory\");\n this.resource(\"actions\", \"ActionsFactory\");\n this.resource(\"lastAction\", \"ActionsFactory\");\n this.serializeWith(\"status\", \"StatusSerializer\");\n\n this.resource(\"sales\", \"UsersFactory\");\n this.resource(\"researcher\", \"UsersFactory\");\n }),\n });\n\n (CandidatesProjects).extend(CandidatesProjectsModalMixin);\n (CandidatesProjects).extend(ModalMixin);\n (CandidatesProjects).extend(RailsResourceSnapshotsMixin);\n\n return CandidatesProjects;\n },\n]);\n","//= require ../candidates_projects.module.js\n\nangular.module(\"candidates_projects\").factory(\"StatusSerializer\", [\n \"railsSerializer\",\n \"CandidatesProjectStatuses\",\n function (railsSerializer, CandidatesProjectStatuses) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return _.findWhere(CandidatesProjectStatuses.statuses, { id: _.isObject(data) ? data.id : data });\n };\n this.serialize = function (data) {\n return data;\n };\n });\n },\n]);\n","//= require ../candidates_projects.module.js\n\nangular\n .module(\"candidates_projects\")\n\n .constant(\"KPISteps\", {\n longlist: { title: \"LO\", name: \"LONGLIST\", description: \"LONGLIST\", sort: 1 },\n qualifications: { title: \"Q\", name: \"QUALIFICATION\", description: \"QUALIFICATION\", sort: 2 },\n shortlist: { title: \"SL\", name: \"SHORTLIST\", description: \"SHORTLIST\", sort: 3 },\n sendouts: { title: \"SO\", name: \"SENDOUTS\", description: \"SENDOUTS\", sort: 4 },\n firstInterviews: {\n title: \"1. IV\",\n name: \"FIRST_INTERVIEWS\",\n description: \"FIRST_INTERVIEWS_COUNTING_KPI\",\n sort: 5,\n },\n secondInterviews: {\n title: \"2. IV\",\n name: \"SECOND_INTERVIEWS\",\n description: \"SECOND_INTERVIEWS_COUNTING_KPI\",\n sort: 6,\n },\n closings: { title: \"C\", name: \"CLOSINGS\", description: \"CLOSINGS\", sort: 7 },\n deals: { title: \"D\", name: \"DEALS\", description: \"DEALS\", sort: 8 },\n })\n\n .constant(\"DashboardKPISteps\", {\n candidatesIdentified: { title: \"CV\", description: \"CANDIDATE_IDENTIFIED_KPI\", sort: 3 },\n longlist: { title: \"LO\", name: \"LONGLIST\", description: \"LONGLIST\", sort: 4 },\n qualifications: { title: \"CQ\", name: \"QUALIFICATION\", description: \"QUALIFICATION\", sort: 5 },\n shortlist: { title: \"SL\", name: \"SHORTLIST\", description: \"SHORTLIST\", sort: 6 },\n sendouts: { title: \"SO\", name: \"SENDOUTS\", description: \"SENDOUTS\", sort: 8 },\n firstInterviews: { title: \"1. IV\", description: \"FIRST_INTERVIEW_KPI\", sort: 11 },\n secondInterviews: { title: \"2. IV\", description: \"SECOND_INTERVIEW_KPI\", sort: 12 },\n closings: { title: \"C\", name: \"CLOSINGS\", description: \"CLOSINGS\", sort: 13 },\n deals: { title: \"D\", name: \"DEALS\", description: \"DEALS\", sort: 14 },\n })\n\n .constant(\"ManagerKPISteps\", {\n managerCalls: { title: \"MQ\", description: \"MANAGER_CALL_KPI\", sort: 1 },\n managerEvents: { title: \"MA\", description: \"MANAGER_EVENT_KPI\", sort: 2 },\n projectsIdentified: { title: \"P\", description: \"PROJECT_CREATED_KPI\", sort: 3 },\n });\n","angular.module(\"career_levels\", [\"rails\"]);\n","angular.module(\"companies\", [\n \"rails\",\n \"ui.router\",\n \"companies.views\",\n \"companies.components\",\n \"companies.modals\",\n \"employees.components\",\n \"priorities.components\",\n]);\n","angular.module(\"companies.components\", []);\n","//= require ./modals.module.js\n\nangular.module(\"companies.modals\").factory(\"CompaniesModalMixin\", [\n \"$uibModal\",\n \"QuicklistsFactory\",\n function ($uibModal, Quicklist) {\n function CompaniesModalMixin() {}\n\n function showContactDetails() {\n var modalInstance = $uibModal.open({\n component: \"companyContactModal\",\n resolve: {\n company: function () {\n return this;\n }.bind(this),\n },\n });\n }\n function openQuicklistModal() {\n var _this = this;\n var quicklistType = this.resourceType + \"Quicklist\";\n Quicklist.openModal(_this, [\n function () {\n return Quicklist.getAll().then(function (quicklists) {\n quicklists = _.filter(quicklists, function (quicklist) {\n return quicklist.type == quicklistType || !quicklist.type;\n });\n return _.map(quicklists, function (quicklist) {\n var entries = quicklist.entryIds;\n return _.extend(quicklist, {\n selected: !_.isUndefined(\n _.find(entries, function (entryId) {\n return entryId == _this.id;\n })\n ),\n });\n });\n });\n },\n ]);\n }\n\n CompaniesModalMixin.extended = function (Resource) {\n Resource.include({\n showContactDetails: showContactDetails,\n openQuicklistModal: openQuicklistModal,\n });\n };\n\n return CompaniesModalMixin;\n },\n]);\n","angular.module(\"companies.modals\", []);\n","//= require ../companies.module.js\n\nangular.module(\"companies\").factory(\"CompaniesHotkeys\", [\n \"hotkeys\",\n \"$state\",\n \"$rootScope\",\n function (hotkeys, $state, $rootScope) {\n return {\n registerHotkeys: function () {\n $(window).keydown(function (event) {\n if (event.ctrlKey && event.keyCode == 85) {\n // ctrl+u\n event.preventDefault();\n }\n });\n\n hotkeys.add({\n combo: \"mod+u s\",\n description: \"Nach Unternehmen & Managern suchen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $rootScope.$broadcast(\"companiesSearch\");\n return false;\n },\n });\n\n hotkeys.add({\n combo: \"mod+m c\",\n description: \"Einen Manager erstellen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $state.go(\"root.companies.list.employees.new\");\n },\n });\n\n hotkeys.add({\n combo: \"mod+u c\",\n description: \"Ein Unternehmen erstellen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $state.go(\"root.companies.new\");\n },\n });\n },\n deregisterHotkeys: function () {\n if ($state.current.name.indexOf(\"root.companies\") > -1) {\n hotkeys.del(\"mod+m c\");\n hotkeys.del(\"mod+u c\");\n hotkeys.del(\"mod+u s\");\n }\n },\n };\n },\n]);\n","//= require ../companies.module.js\n\nangular.module(\"companies\").service(\"CompaniesFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"CompaniesModalMixin\",\n \"railsSerializer\",\n \"ActionsFactory\",\n \"Highlighter\",\n \"$rootScope\",\n \"$sce\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n CompaniesModalMixin,\n railsSerializer,\n Action,\n Highlighter,\n $rootScope,\n $sce\n ) {\n function Company() {\n (Company).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return { company_id: this.id };\n }.bind(this);\n\n this.autocompleteText = function () {\n return this.name;\n };\n\n this.mapSearchScopesToHumanReadable = Company.mapSearchScopesToHumanReadable;\n\n this.createNewAction = function (actionTypeIdentifier) {\n Action.createNewAction(this, actionTypeIdentifier);\n }.bind(this);\n\n this.saveCustomNote = function (action) {\n Action.saveCustomNote(this, action);\n }.bind(this);\n\n this.resourceType = \"Company\";\n this.serviceName = \"CompaniesFactory\";\n\n if (this.homepage && !/^(https|http?):\\/\\//i.test(this.homepage)) {\n this.homepage = \"http://\" + this.homepage;\n }\n\n this.makeVisible = function () {\n (Company).$patch((Company).$url(this.id + \".json\"), { visible: true }).then(\n function (result) {\n this.visible = result.visible;\n $rootScope.$broadcast(\"company_action_changed_\" + this.id);\n }.bind(this)\n );\n }.bind(this);\n\n this.filterDepartments = function () {\n return { job_category_ids: { job_category_ids: _.pluck(this.jobCategories, \"id\") } };\n }.bind(this);\n }\n\n Company.mapSearchScopesToHumanReadable = function (scopeDescriptor) {\n switch (scopeDescriptor) {\n case \"name\":\n case \"name.standard\":\n case \"name.de\":\n return \"NAME\";\n case \"siteAddresses\":\n return \"ADDRESS\";\n case \"tags.name\":\n return \"TAG\";\n case \"jobCategories.name\":\n return \"MARKETS\";\n case \"responsibleUser.fullName.notAnalyzed\":\n case \"responsibleUser.symbole\":\n return \"RESPONSIBLE_USER\";\n case \"employees.fullNameWithTitle\":\n return \"MANAGER\";\n case \"employees.tags.name\":\n return \"MANAGER_TAGS\";\n case \"allActions.description.de\":\n return \"HISTORY_ENTRIES\";\n default:\n return undefined;\n }\n };\n\n Company.defaultTableAttributes = {\n id: {\n title: \"ID\",\n show: true,\n pinned: true,\n menu: true,\n class: \"id\",\n sortField: \"id\",\n },\n name: {\n title: \"COMPANY\",\n show: true,\n fixedWidth: true,\n class: \"title\",\n sortField: \"name.not_analyzed\",\n },\n responsibleUser: {\n title: \"EMPLOYEE_TOKEN\",\n show: true,\n class: \"responsible\",\n sortField: \"responsible_user.full_name.not_analyzed\",\n },\n city: {\n title: \"ORIGIN\",\n show: true,\n class: \"city\",\n sortField: \"main_site_address.city\",\n },\n region: {\n title: \"REGION\",\n show: true,\n class: \"region\",\n sortField: \"region.name.not_analyzed\",\n },\n priority: {\n title: \"PRIORITY\",\n show: true,\n class: \"priority\",\n sortField: \"priority\",\n },\n tags: {\n title: \"TAGS\",\n show: true,\n class: \"tags\",\n },\n createdAt: {\n title: \"CREATED_AT\",\n show: false,\n class: \"date\",\n sortField: \"created_at\",\n },\n };\n\n RailsResource.extendTo(Company);\n (Company).configure({\n url: \"/companies\",\n name: \"company\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.nestedAttribute(\"employees\");\n this.resource(\"employees\", \"EmployeesFactory\");\n this.nestedAttribute(\"projects\");\n this.resource(\"projects\", \"ProjectsFactory\");\n this.nestedAttribute(\"responsible_user\");\n this.resource(\"responsible_user\", \"UsersFactory\");\n this.serializeWith(\"transactionBasis\", \"CompaniesTransactionBasesSerializer\");\n this.serializeWith(\"tags\", \"TagSerializer\");\n this.resource(\"actions\", \"ActionsFactory\");\n this.resource(\"sendouts\", \"SendoutsFactory\");\n this.serializeWith(\"jobCategories\", \"JobCategoriesSerializer\");\n this.serializeWith(\"region\", \"RegionSerializer\");\n\n this.rename(\"documents\", \"companyDocuments\");\n this.resource(\"documents\", \"DocumentsFactory\");\n\n this.serializeWith(\"priority\", \"PrioritySerializer\");\n this.serializeWith(\"comment\", \"SanitizeSerializer\");\n\n this.exclude(\"$snapshots\");\n }),\n });\n (Company).extend(RailsResourceSnapshotsMixin);\n (Company).extend(CompaniesModalMixin);\n (Company).extend(Highlighter);\n\n return Company;\n },\n]);\n","angular.module(\"companies.views\", []);\n","angular.module(\"companies_transaction_bases\", [\"rails\"]);\n","angular.module(\"contract_drafts.components\", []);\n","angular.module(\"contract_drafts\", [\"contract_drafts.components\"]);\n","//= require ../contract_draft.module.js\n\nangular.module(\"contract_drafts\").service(\"ContractDraftFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"poller\",\n \"RailsResourceSnapshotsMixin\",\n function (RailsResource, railsSerializer, poller, RailsResourceSnapshotsMixin) {\n function ContractDraft() {\n (ContractDraft).__super__.constructor.apply(this, arguments);\n\n this.pollJobData = function (jobFailedCondition, jobSuccessfulCondition) {\n let _contractDraft = this;\n const pollingService = poller.get(_contractDraft.$url() + \".json\", { catchError: true, delay: 1000 });\n pollingService.promise.then(null, null, function (response) {\n if (response.status === 200) {\n // @ts-ignore\n const updatedContractDraft = new ContractDraft(response.data.data);\n _.extend(_contractDraft, updatedContractDraft);\n // _contractDraft.jobStatus = updatedContractDraft.jobStatus;\n if (jobFailedCondition(updatedContractDraft)) {\n pollingService.remove();\n } else if (jobSuccessfulCondition(updatedContractDraft)) {\n console.log(\"Job was successful\");\n pollingService.remove();\n } else if (!updatedContractDraft.generating) {\n _contractDraft.jobStatus = null;\n _contractDraft.snapshot();\n pollingService.remove();\n }\n } else {\n pollingService.remove();\n }\n });\n };\n\n this.pollCdsJobData = function () {\n const jobSuccessfulCondition = (updatedContractDraft) =>\n !updatedContractDraft.generating && updatedContractDraft.hasCdsId;\n const jobFailedCondition = (updatedContractDraft) => updatedContractDraft.failed;\n this.pollJobData(jobFailedCondition, jobSuccessfulCondition);\n };\n }\n\n ContractDraft.createContractDraft = function (provision) {\n return this.$get(this.$url(\"new.json\"), provision.contractDraftParams());\n };\n\n RailsResource.extendTo(ContractDraft);\n (ContractDraft).configure({\n url: \"/contract_drafts\",\n name: \"contract_draft\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.serializeWith(\"startDate\", \"DateSerializer\");\n this.serializeWith(\"endDate\", \"DateSerializer\");\n this.serializeWith(\"monthlyGrossSalary\", \"MoneySerializer\");\n this.serializeWith(\"internalCost\", \"MoneySerializer\");\n this.serializeWith(\"internalCostVk\", \"MoneySerializer\");\n this.serializeWith(\"interCompanyRate\", \"MoneySerializer\");\n this.exclude(\"$errors\");\n this.preserve(\"$errors\");\n }),\n });\n\n (ContractDraft).extend(RailsResourceSnapshotsMixin);\n return ContractDraft;\n },\n]);\n","angular.module(\"countries.components\", []);\n","angular.module(\"countries\", [\"rails\", \"countries.components\"]);\n","angular.module(\"courses.components\", []);\n","angular.module(\"courses\", [\"courses.components\"]);\n","//= require ../components.module.js\n\nangular.module(\"dashboards.components\").directive(\"chartGauge\", [\n \"ChartJsFactory\",\n function (ChartJsFactory) {\n return new ChartJsFactory(\"gauge\");\n },\n]);\n","angular.module(\"dashboards.components\", [\"directives\"]);\n","angular.module(\"dashboards.components.dashboard2021\", [\"directives\", \"dashboards.settings\"]);\n","angular.module(\"dashboards\", [\n \"dashboards.components\",\n \"dashboards.views\",\n \"dashboards.components.dashboard2021\",\n \"dashboards.settings\",\n]);\n","//= require ../dashboards.module.js\n\nangular.module(\"dashboards\").service(\"DashboardsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n function (RailsResource, railsSerializer) {\n function Dashboard() {\n (Dashboard).__super__.constructor.apply(this, arguments);\n }\n\n RailsResource.extendTo(Dashboard);\n (Dashboard).configure({\n url: \"/dashboard\",\n name: \"dashboard\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.nestedAttribute(\"candidates\");\n this.resource(\"candidates\", \"CandidatesFactory\");\n }),\n });\n\n return Dashboard;\n },\n]);\n","angular.module(\"dashboards.settings\", [\"dashboards\"]);\n","//= require ../dashboard-settings.module.js\n\nangular.module(\"dashboards.settings\").service(\"ProjectReportingRequestObj\", [\n \"$q\",\n \"$rootScope\",\n \"ProjectReportingsFactory\",\n \"ChartColors2021\",\n \"$filter\",\n \"$translate\",\n function ($q, $rootScope, ProjectReporting, ChartColors, $filter, $translate) {\n function ProjectReportingRequestObj(controller, cardIdentifier, callback) {\n var canceler = $q.defer();\n\n function projectReportingRequest(params) {\n canceler.resolve();\n canceler = $q.defer();\n\n return ProjectReporting.$http({\n url: \"project_reporting/time_range\",\n params: _.extend(params, { card: cardIdentifier }),\n headers: { Accept: \"application/json\" },\n timeout: canceler.promise,\n }).then(callback, function (result) {\n controller.loading = false;\n if (result.status === 0) return;\n\n window.rollbar.error(\"Dashboard-Card loading error\", { params: _.extend(controller.params, result.config) });\n controller.loadingError = $filter(\"translate\")(\"LOADING_ERROR_NOTICE\");\n });\n }\n\n this.updateCard = function (event, params) {\n controller.params = params;\n\n controller.loading = true;\n controller.loadingError = undefined;\n projectReportingRequest(angular.copy(params)).then(function () {\n controller.loading = false;\n });\n };\n\n controller.reload = function () {\n this.updateCard(undefined, controller.params);\n }.bind(this);\n\n controller.checkObjectIsEmpty = function (obj) {\n return !_.chain(obj).values().any().value();\n };\n\n controller.colors = ChartColors;\n\n const deregisterDashboardQueryChanged = $rootScope.$on(\"dashboard-query-changed\", this.updateCard);\n const deregisterDashboardQueryTimeout = $rootScope.$on(\"dashboard-query-timeout\", function () {\n canceler.resolve();\n });\n\n this.deregisterEventListeners = function () {\n deregisterDashboardQueryChanged();\n deregisterDashboardQueryTimeout();\n };\n }\n\n return ProjectReportingRequestObj;\n },\n]);\n","//= require ../dashboard-settings.module.js\n\nangular\n .module(\"dashboards.settings\")\n .constant(\"ChartColors2021\", [\"#d5e8f7\", \"#83b0dd\", \"#6280a4\", \"#31537b\", \"#344359\"]);\n","//= require ../dashboard-settings.module.js\n\nangular.module(\"dashboards.settings\").value(\"dashboardSettings2021\", [\n {\n identifier: \"fullVWS\",\n width: \"12\",\n directive: \"dashboard-kpis-2021-card\",\n },\n {\n identifier: \"fullAccounts\",\n width: \"12\",\n directive: \"dashboard-accounts-2021-card\",\n },\n {\n identifier: \"fullCVs\",\n width: \"12\",\n directive: \"dashboard-cv-2021-card\",\n },\n {\n identifier: \"fullSendouts\",\n width: \"12\",\n directive: \"dashboard-sendouts-2021-card\",\n },\n {\n identifier: \"fullInterviews\",\n width: \"12\",\n directive: \"dashboard-interviews-2021-card\",\n },\n {\n identifier: \"fullDeals\",\n width: \"12\",\n directive: \"dashboard-deals-2021-card\",\n },\n {\n identifier: \"fullAmountCovered\",\n width: \"12\",\n directive: \"dashboard-amount-covered-2021-card\",\n },\n {\n identifier: \"AmountCoveredConsultants\",\n width: \"12\",\n directive: \"dashboard-amount-covered-consultants-2021-card\",\n },\n]);\n","angular.module(\"dashboards.views\", []);\n","angular.module(\"deals.components\", []);\n","angular.module(\"deals\", [\"deals.modals\", \"deals.components\"]);\n","angular.module(\"deals.modals\", []);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").service(\"DealsFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"railsSerializer\",\n \"DealsModalMixin\",\n \"ModalMixin\",\n \"moment\",\n \"$http\",\n \"RedirectLocation\",\n \"$filter\",\n \"deliveryOptions\",\n \"$state\",\n \"poller\",\n \"$log\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n railsSerializer,\n DealsModalMixin,\n ModalMixin,\n moment,\n $http,\n RedirectLocation,\n $filter,\n deliveryOptions,\n $state,\n poller,\n $log\n ) {\n function Deal() {\n (Deal).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return _.extend({ deal_id: this.id }, RedirectLocation.redirectParams());\n };\n\n this.isEmployeeLeasingEnabled = function () {\n return this.employeeLeasingEnabled && this.provisions.length == 1;\n };\n\n this.isLegacyCalculation = function () {\n return moment(this.serviceDate).year() < 2020;\n };\n\n this.isEMailDelivery = function () {\n if (!this.delivery) {\n return false;\n }\n return _.findWhere(deliveryOptions, { id: this.delivery }).name == \"DELIVERY_EMAIL\";\n };\n\n this.createMessage = function (actionRoute, emailParams) {\n var params = angular.merge({ id: this.id }, emailParams);\n return $http.post(\"deals/\" + this.id + \"/\" + actionRoute + \".json\", { deal: params });\n };\n\n this.pollJobData = function (jobFailedCondition, jobSuccessfulCondition) {\n const _deal = this;\n const pollingService = poller.get(_deal.$url() + \".json\", { catchError: true, delay: 1000 });\n pollingService.promise.then(null, null, function (response) {\n if (response.status === 200) {\n // @ts-ignore\n const updatedDeal = new Deal(response.data.data);\n\n _.extend(_deal, _.omit(updatedDeal, \"$errors\"));\n if (jobFailedCondition(updatedDeal)) {\n $log.debug(\"The job failed.\");\n pollingService.remove();\n }\n if (jobSuccessfulCondition(updatedDeal)) {\n $log.debug(\"The job executed successfully.\");\n _deal.snapshot();\n pollingService.remove();\n }\n } else {\n pollingService.remove();\n }\n });\n };\n\n this.pollCdsJobData = function () {\n const jobSuccessfulCondition = (updatedDeal) => !updatedDeal.cds_generating || updatedDeal.allCandidatesInCds;\n const jobFailedCondition = (updatedDeal) => updatedDeal.cds_failed;\n this.pollJobData(jobFailedCondition, jobSuccessfulCondition);\n };\n\n this.pollSapJobData = function () {\n const jobSuccessfulCondition = (updatedDeal) => !updatedDeal.generating || updatedDeal.has_sap_id;\n const jobFailedCondition = (updatedDeal) => updatedDeal.failed;\n this.pollJobData(jobFailedCondition, jobSuccessfulCondition);\n };\n\n this.candidatesSapIds = function () {\n return _.map(this.provisions, function (provision) {\n return provision.candidate.sapId;\n }).join(\", \");\n };\n\n this.turnClosingToDeal = function () {\n if (window.confirm($filter(\"translate\")(\"SHOULD_CLOSING_BE_TURNED_INTO_DEAL\"))) {\n return (Deal).$post(this.$url(\"/turn_closing_to_deal.json\"), { deal: { id: this.id } });\n } else {\n return Promise.reject();\n }\n }.bind(this);\n\n this.isFreelancerWorkingOnInternalProject = function () {\n return this.project.isInternalProject && this.jobType.isFreelancer();\n }\n }\n\n Deal.createAndEdit = function (options) {\n return (Deal)\n .$get((Deal).$url(options, \"/new\"), { deal: JSON.stringify(options) })\n .then(function (deal) {\n return deal.edit();\n });\n };\n\n RailsResource.extendTo(Deal);\n (Deal).configure({\n url: \"/deals/{{id}}\",\n name: \"deal\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"action\", \"ActionsFactory\");\n this.rename(\"documents\", \"contractDocuments\");\n this.resource(\"documents\", \"DocumentsFactory\");\n this.serializeWith(\"jobType\", \"JobTypesSerializer\");\n this.resource(\"researcherCommissions\", \"ResearcherCommissionsFactory\");\n this.resource(\"project\", \"ProjectsFactory\");\n\n this.resource(\"researcher\", \"UsersFactory\");\n this.resource(\"consultant\", \"UsersFactory\");\n\n this.serializeWith(\"internalCost\", \"MoneySerializer\");\n this.serializeWith(\"assessmentBasis\", \"MoneySerializer\");\n this.serializeWith(\"amountCoveredIst\", \"MoneySerializer\");\n this.resource(\"provisions\", \"ProvFactory\");\n\n this.serializeWith(\"serviceDate\", \"DateSerializer\");\n\n this.exclude(\"$snapshots\");\n this.exclude(\"$errors\");\n this.preserve(\"$errors\");\n }),\n });\n\n (Deal).extend(DealsModalMixin);\n (Deal).extend(ModalMixin);\n (Deal).extend(RailsResourceSnapshotsMixin);\n\n return Deal;\n },\n]);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").constant(\"clientHourlyExpensesOptions\", [\n { name: \"HOURLY_RATE_INCL_EXPENSES\", value: 0 },\n { name: \"HOURLY_RATE_PLUS_EXPENSES\", value: 1 },\n { name: \"DAILY_RATE_INCL_EXPENSES\", value: 2 },\n { name: \"DAILY_RATE_PLUS_EXPENSES\", value: 3 },\n]);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").constant(\"deliveryOptions\", [\n { name: \"DELIVERY_MAIL\", id: 1 },\n { name: \"DELIVERY_EMAIL\", id: 2 },\n { name: \"DELIVERY_PIGEON\", id: 3 },\n]);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").value(\"deploymentLocations\", [\n { name: \"Homeoffice\", slug: \"homeoffice\" },\n { name: \"Operational site\", slug: \"operational_site\" },\n { name: \"Munich\", slug: \"munich\" },\n { name: \"Basel\", slug: \"basel\" },\n { name: \"Milano\", slug: \"milano\" },\n]);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").constant(\"entourageSubsidiaries\", [\n { slug: \"entourage-de\", name: \"Entourage GmbH (Munich)\" },\n { slug: \"entourage-ch\", name: \"Entourage AG (Basel)\" },\n { slug: \"entourage-it\", name: \"Entourage S.r.l. (Milan)\" },\n]);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").constant(\"internalJobTypes\", [\n { name: \"SALES_CONSULTANT\", id: 1 },\n { name: \"RESEARCH_CONSULTANT_JOB_TYPE\", id: 2 },\n { name: \"MANAGEMENT_CONSULTING\", id: 3 },\n { name: \"PROJECT_CONSULTING\", id: 4 },\n { name: \"ADVISOR\", id: 5 },\n { name: \"SUPERVISORY_BOARD\", id: 6 },\n]);\n","//= require ../deals.module.js\n\nangular.module(\"deals\").constant(\"periodOfPaymentOptions\", [\n { name: \"PAYMENT_PERIOD_0_DAYS\", value: 0 },\n { name: \"PAYMENT_PERIOD_14_DAYS\", value: 14 },\n { name: \"PAYMENT_PERIOD_30_DAYS\", value: 30 },\n { name: \"PAYMENT_PERIOD_45_DAYS\", value: 45 },\n { name: \"PAYMENT_PERIOD_60_DAYS\", value: 60 },\n { name: \"PAYMENT_PERIOD_90_DAYS\", value: 90 },\n]);\n","angular.module(\"departments\", [\"rails\"]);\n","angular.module(\"directives.advanced_search\", []);\n","const closeDeckButtonTemplate = require(\"./close-deck-button.template.html\");\n//= require ../../directives.module.js\n\nangular.module(\"directives\").component(\"closeDeckButton\", {\n bindings: {},\n template: closeDeckButtonTemplate,\n});\n","angular.module(\"directives\", [\"directives.prsmTable\", \"components.prsmTable\", \"components.kpis\", \"directives.tinymce\"]);\n","interface IExtendedScope extends angular.IScope {\n $ctrl: any;\n}\n\nangular.module(\"directives\").directive(\"multiSelectChecker\", [\n \"$compile\",\n function ($compile) {\n return {\n replace: false,\n terminal: true, //terminal means: compile this directive only\n priority: 50000, //priority means: the higher the priority, the \"firster\" the directive will be compiled\n compile: function compile(element, attrs) {\n element.removeAttr(\"multi-select-checker\"); //remove the attribute to avoid indefinite loop\n element.removeAttr(\"data-multi-select-checker\"); //also remove the same attribute with data- prefix in case users specify data-multi-select-checker in the html\n\n return {\n pre: function preLink(scope: IExtendedScope, iElement, iAttrs, controller) {},\n post: function postLink(scope, iElement, iAttrs, controller) {\n if (scope.$ctrl.selectMultiple === true) {\n iElement[0].setAttribute(\"multiple\", \"\"); //set the multiple directive, doing it the JS way, not jqLite way.\n }\n $compile(iElement)(scope);\n },\n };\n },\n };\n },\n]);\n","interface IExtendedScope extends angular.IScope {\n multipleRequiredScopes: any;\n}\nangular.module(\"directives\").directive(\"multipleRequired\", [\n function () {\n function validateMultipleRequiredFields(ctrl, value, identifier) {\n return (\n !ctrl.$isEmpty(value) ||\n _.some(this.multipleRequiredScopes[identifier], function (ctrlObj) {\n return !(ctrlObj.$isEmpty(ctrlObj.$viewValue) || ctrlObj == ctrl);\n })\n );\n }\n\n return {\n require: \"ngModel\",\n link: function (scope: IExtendedScope, element, attrs, ctrl) {\n var identifier = attrs.multipleRequired;\n\n if (_.isEmpty(scope.multipleRequiredScopes)) {\n scope.multipleRequiredScopes = {};\n }\n\n if (_.isArray(scope.multipleRequiredScopes[identifier])) {\n scope.multipleRequiredScopes[identifier].push(ctrl);\n } else {\n scope.multipleRequiredScopes[identifier] = [ctrl];\n }\n\n ctrl.$validators.multipleRequired = function (modelValue, viewValue) {\n var valid = validateMultipleRequiredFields.bind(this)(ctrl, viewValue, identifier);\n\n // test and set the validity after update.\n _.each(this.multipleRequiredScopes[identifier], function (ctrlObj) {\n ctrlObj.$setValidity(\"multipleRequired\", valid);\n\n if (valid && ctrlObj.$isEmpty(ctrlObj.$viewValue)) {\n ctrlObj.$setViewValue(null);\n ctrlObj.$setUntouched();\n }\n });\n\n return valid;\n }.bind(scope);\n },\n };\n },\n]);\n","interface IExtendedScope extends angular.IScope {\n popoverClass?: string;\n $parent: any;\n popoverAppendToBody: any;\n}\n\ninterface $parent {\n $ctrl: any;\n}\n\nangular.module(\"directives\").directive(\"outsideClickDropdown\", [\n \"$document\",\n \"$timeout\",\n function ($document, $timeout) {\n return {\n scope: {\n popoverClass: \"@\",\n popoverAppendToBody: \"@\",\n },\n link: function (scope: IExtendedScope, element) {\n // second version to support directives\n if (scope.$parent.$ctrl) {\n scope.$parent.$ctrl.dropdownIsOpen = false;\n } else {\n scope.$parent.dropdownIsOpen = false;\n }\n\n var outsideClickListener = function (event) {\n var e;\n\n if (scope.popoverAppendToBody) {\n e = angular.element(\".\" + scope.popoverClass);\n } else {\n e = angular.element(element);\n }\n if (e[0] && event.target.offsetParent && !e[0].contains(event.target)) {\n if (scope.$parent.$ctrl) {\n scope.$parent.$ctrl.closing();\n } else {\n scope.$parent.closing();\n }\n }\n };\n\n // second version to support directives\n if (scope.$parent.$ctrl) {\n scope.$parent.$ctrl.closing = function () {\n scope.$evalAsync(function () {\n scope.$parent.$ctrl.dropdownIsOpen = false;\n });\n };\n } else {\n scope.$parent.closing = function () {\n scope.$evalAsync(function () {\n scope.$parent.dropdownIsOpen = false;\n });\n };\n }\n\n if (scope.$parent.$ctrl) {\n scope.$watch(\"$parent.$ctrl.dropdownIsOpen\", function (nv, ov) {\n if (nv) {\n $timeout(function () {\n $document.on(\"click\", outsideClickListener);\n }, 1);\n } else {\n $document.off(\"click\", outsideClickListener);\n }\n });\n } else {\n scope.$watch(\"$parent.dropdownIsOpen\", function (nv, ov) {\n if (nv) {\n $timeout(function () {\n $document.on(\"click\", outsideClickListener);\n }, 1);\n } else {\n $document.off(\"click\", outsideClickListener);\n }\n });\n }\n },\n };\n },\n]);\n","//= require ../../directives.module.js\n\ninterface IExtendedScope extends angular.IScope {\n $select: any;\n}\n\nangular.module(\"directives\").directive(\"uiSelectKeepSearchQuery\", [\n function () {\n return {\n require: \"ui-select\",\n link: function (scope: IExtendedScope, $element, $attributes, selectController) {\n scope.$on(\"uis:activate\", function () {\n if (!scope.$select.selected) {\n return;\n }\n if (_.isString(scope.$select.selected)) {\n scope.$select.search = scope.$select.selected;\n } else {\n scope.$select.search = scope.$select.selected.name || \"\";\n }\n });\n },\n };\n },\n]);\n","angular.module(\"components.kpis\", []);\n","angular.module(\"components.kpis\", []);\n","//= require ../kpis.module.js\n\nangular.module(\"components.kpis\").factory(\"kpiDetailDirectivesConfig\", [\n \"$filter\",\n \"$translate\",\n function ($filter, $translate) {\n function bruttoContactsDetailsStep() {\n this.steps = [\n {\n title: \"ZG\",\n value: $filter(\"percentage\")(this.kpiIST.kpis.bruttoContacts / (this.kpiSOLL.kpis.bruttoContacts || 1), 0),\n description: \"BRUTTO_CONTACTS\",\n sort: 3,\n },\n ];\n }\n\n function nettoContactsDetailsStep() {\n this.steps = [\n {\n title: \"ZG\",\n value: $filter(\"percentage\")(this.kpiIST.kpis.nettoContacts / (this.kpiSOLL.kpis.nettoContacts || 1), 0),\n description: \"NETTO_CONTACTS\",\n sort: 3,\n },\n ];\n }\n\n function candidatesIdentifiedDetailsStep() {\n this.steps = [\n { title: \"CV\", value: this.kpiIST.kpis.candidatesIdentified, description: \"CANDIDATES_IDENTIFIED\", sort: 1 },\n { title: \"SO\", value: this.kpiIST.kpis.cvSendout, description: \"SENT\", sort: 2 },\n {\n title: \"ZV\",\n value: $filter(\"percentage\")(\n (this.kpiIST.kpis.cvSendout || 1) / (this.kpiIST.kpis.candidatesIdentified || 1) - 1,\n 0\n ),\n description: \"SECONDARY_EXPLOITATION\",\n sort: 3,\n },\n ];\n }\n\n function qualificationsDetailsStep() {\n this.steps = [\n { title: \"K\", value: this.kpiIST.kpis.qualifications, description: \"CANDIDATES\", sort: 1 },\n { title: \"M\", value: this.kpiIST.kpis.managerCalls, description: \"MANAGER\", sort: 2 },\n ];\n }\n\n function sendoutsDetailsStep() {\n this.steps = [\n {\n title: \"IB\",\n value: this.kpiIST.kpis.sendoutInitiativeApplications,\n description: \"INITIATIVE_SENDOUTS\",\n sort: 1,\n },\n { title: \"E\", value: this.kpiIST.kpis.sendoutEntities, description: \"ENTITIES\", sort: 2 },\n {\n title: \"ZV\",\n value: $filter(\"percentage\")(\n (this.kpiIST.kpis.sendouts || 1) / (this.kpiIST.kpis.sendoutEntities || 1) - 1,\n 0\n ),\n description: \"SECONDARY_EXPLOITATION\",\n sort: 3,\n },\n ];\n }\n\n function projectsIdentifiedDetailsStep() {\n this.steps = [\n { title: \"A\", value: this.kpiIST.kpis.projectsActive, description: \"ACTIVE\", sort: 1 },\n { title: \"I\", value: this.kpiIST.kpis.projectsInactive, description: \"INACTIVE\", sort: 2 },\n {\n title: \"DQ\",\n value: $filter(\"percentage\")(this.kpiIST.kpis.deals / (this.kpiIST.kpis.projectsIdentified || 1), 0),\n description: \"DEAL_RATE\",\n sort: 3,\n },\n ];\n }\n\n function telephoneInterviewsDetailsStep() {\n this.steps = [\n { title: \"O\", value: this.kpiIST.kpis.telephoneInterviewsOpen, description: \"OPEN\", sort: 1 },\n { title: \"AG\", value: this.kpiIST.kpis.telephoneInterviewsCompleted, description: \"COMPLETED\", sort: 2 },\n { title: \"AB\", value: this.kpiIST.kpis.telephoneInterviewsDeclined, description: \"CANCELED\", sort: 3 },\n ];\n }\n\n function presenceInterviewsDetailsStep() {\n this.steps = [\n { title: \"O\", value: this.kpiIST.kpis.presenceInterviewsOpen, description: \"OPEN\", sort: 1 },\n { title: \"AG\", value: this.kpiIST.kpis.presenceInterviewsCompleted, description: \"COMPLETED\", sort: 2 },\n { title: \"AB\", value: this.kpiIST.kpis.presenceInterviewsDeclined, description: \"CANCELED\", sort: 3 },\n ];\n }\n\n function managerCallsDetailsStep() {\n this.steps = [\n { title: \"O\", value: this.kpiIST.kpis.managerCallsOpen, description: \"OPEN\", sort: 1 },\n { title: \"AG\", value: this.kpiIST.kpis.managerCallsCompleted, description: \"COMPLETED\", sort: 2 },\n { title: \"AB\", value: this.kpiIST.kpis.managerCallsDeclined, description: \"CANCELED\", sort: 3 },\n ];\n }\n\n function closingsDetailsStep() {\n this.steps = [\n { title: \"D\", value: this.kpiIST.kpis.closingsDeal, description: \"Deal\", sort: 1 },\n { title: \"L\", value: this.kpiIST.kpis.closingsLost, description: \"Lost\", sort: 2 },\n ];\n }\n\n function dealsDetailsStep() {\n this.steps = [\n { title: \"FE\", value: this.kpiIST.kpis.projectsPermanent, description: \"PERMANENT_SHORT\", sort: 1 },\n { title: \"FR\", value: this.kpiIST.kpis.projectsFreelancer, description: \"FREELANCER_SHORT\", sort: 2 },\n {\n title: \"PC\",\n value: this.kpiIST.kpis.projectsProjectConsulting,\n description: \"PROJECT_CONSULTING\",\n sort: 3,\n },\n {\n title: \"MC\",\n value: this.kpiIST.kpis.projectsManagementConsulting,\n description: \"MANAGEMENT_CONSULTING\",\n sort: 4,\n },\n ];\n }\n\n var config = {\n bruttoContacts: {\n setSteps: bruttoContactsDetailsStep,\n },\n nettoContacts: {\n setSteps: nettoContactsDetailsStep,\n },\n candidatesIdentified: {\n setSteps: candidatesIdentifiedDetailsStep,\n },\n qualifications: {\n setSteps: qualificationsDetailsStep,\n },\n projectsIdentified: {\n setSteps: projectsIdentifiedDetailsStep,\n },\n sendouts: {\n setSteps: sendoutsDetailsStep,\n },\n telephoneInterviews: {\n setSteps: telephoneInterviewsDetailsStep,\n },\n presenceInterviews: {\n setSteps: presenceInterviewsDetailsStep,\n },\n managerCalls: {\n setSteps: managerCallsDetailsStep,\n },\n closings: {\n setSteps: closingsDetailsStep,\n },\n deals: {\n setSteps: dealsDetailsStep,\n },\n };\n\n return config;\n },\n]);\n","//= require ./application.js\n\nangular.module(\"app\").controller(\"RootViewCtrl\", [\n \"SidebarService\",\n function (SidebarService) {\n var _this = this;\n\n _this.$onInit = function () {\n _this.state = { name: \"root.home\" };\n _this.expandSidebarStates = SidebarService.getSidebarStates();\n };\n },\n]);\n","angular.module(\"components.money\", []);\n","//= require ../money.module.js\n\nangular.module(\"components.money\").constant(\"Currencies\", [\n { isoCode: \"EUR\", isoNumeric: 978 },\n { isoCode: \"CHF\", isoNumeric: 756 },\n { isoCode: \"USD\", isoNumeric: 840 },\n { isoCode: \"GBP\", isoNumeric: 826 },\n]);\n","//= require ../money.module.js\n\nangular.module(\"components.money\").value(\"DefaultCurrency\", { currency: \"EUR\" });\n","const prsmTableHighlightsTemplate = require(\"./prsm-table-highlights.template.html\");\n//= require ../prsm-table.module.js\n\nangular.module(\"components.prsmTable\").component(\"prsmTableHighlights\", {\n bindings: {\n resource: \"=\",\n },\n template: prsmTableHighlightsTemplate,\n controller: \"PrsmTableHighlightsCtrl\",\n});\n","//= require ../prsm-table.module.js\n\nangular.module(\"components.prsmTable\").controller(\"PrsmTableHighlightsCtrl\", [\n \"$filter\",\n \"$translate\",\n function ($filter, $translate) {\n var _this = this;\n\n _this.highlightPopoverHtml = function (key, value) {\n var list_str = _.chain(value)\n .first(5)\n .map(function (res) {\n return \"
  • \" + res + \"
  • \";\n })\n .value()\n .join(\"\");\n return (\n \"
    \" +\n $filter(\"translate\")(_this.resource.mapSearchScopesToHumanReadable(key).toString()) +\n '
      ' +\n list_str +\n '
    ' +\n (value.length > 5 ? \"... und \" + (value.length - 5) + \" weitere\" : \"\") +\n \"
    \"\n );\n };\n },\n]);\n","angular.module(\"components.prsmTable\", []);\n","angular.module(\"directives.prsmTable\", []);\n","//= require ../prsm-table.module.js\n\nangular.module(\"directives.prsmTable\").service(\"PrsmTableAttributeService\", [\n \"PrsmTableHelper\",\n function (PrsmTableHelper) {\n let attributes;\n let identifier;\n\n function PrsmTableAttribute(identifier, defaultAttributes) {\n this.identifier = identifier;\n\n this.loadFromStorage = function (defaultAttributes) {\n return PrsmTableHelper.getAttributes(this.identifier, defaultAttributes);\n };\n\n this.getAttributes = function () {\n return this.attributes;\n };\n\n this.attributes = this.loadFromStorage(defaultAttributes);\n\n this.attributes.onChange = function () {\n PrsmTableHelper.setAttributes(this.identifier, this.attributes);\n }.bind(this);\n }\n\n return PrsmTableAttribute;\n },\n]);\n","//= require ../prsm-table.module.js\n\nangular.module(\"directives.prsmTable\").factory(\"PrsmTableHelper\", [\n \"$window\",\n \"Session\",\n function ($window, Session) {\n function setVisibleAttributes(defaultTableAttributes, allAttributesList, visibleAttributesList) {\n return _.chain(defaultTableAttributes)\n .pick(allAttributesList)\n .each(function (value, key) {\n value.show = _.includes(visibleAttributesList, key);\n })\n .value();\n }\n\n function setAttributes(key, attributes) {\n $window.localStorage.setItem(\"user@\" + Session.user.id + \"-\" + key, JSON.stringify(attributes));\n return angular.copy(attributes);\n }\n\n function getAttributes(key, defaultTableAttributes) {\n var attributes = $window.localStorage.getItem(\"user@\" + Session.user.id + \"-\" + key);\n if (attributes) {\n return JSON.parse(attributes);\n } else {\n return setAttributes(key, defaultTableAttributes);\n }\n }\n\n function clearAttributes() {\n $window.localStorage.clear();\n }\n\n return {\n setVisibleAttributes: setVisibleAttributes,\n getAttributes: getAttributes,\n setAttributes: setAttributes,\n clearAttributes: clearAttributes,\n };\n },\n]);\n","import UiTinymceMegaCtrl from \"./ui-tinymce-mega.controller\";\nimport uiTinymceMegaTemplate from \"./ui-tinymce-mega.template.html\";\n\nangular.module(\"directives.tinymce\").component(\"uiTinymceMega\", {\n require: { ngModelCtrl: \"ngModel\" },\n bindings: {\n uiTinymceMegaId: \"@?\",\n uiTinymceMinLength: \"@\",\n ngModel: \"=\",\n disabled: \"<\",\n },\n template: uiTinymceMegaTemplate,\n controller: UiTinymceMegaCtrl,\n});\n","export default class UiTinymceMegaCtrl {\n public uiTinymceMegaId: string;\n public uiTinymceConfig: any;\n public uiTinymceMinLength: string;\n public ngModelCtrl: ng.INgModelController;\n\n static $inject = [\"tinymceConfig\"];\n\n constructor(\n private tinymceConfig: any\n ) {\n if (!this.uiTinymceMegaId || this.uiTinymceMegaId.length === 0) {\n this.uiTinymceMegaId = _.uniqueId(\"tinymce_\");\n }\n\n this.uiTinymceConfig = tinymceConfig;\n }\n\n public $onInit() {\n if (_.isEmpty(this.uiTinymceMinLength)) {\n return true;\n }\n\n var minLength = parseInt(this.uiTinymceMinLength);\n\n // add a parser that will process each time the value is\n // parsed into the model when the user updates it.\n this.ngModelCtrl.$parsers.unshift((value) => {\n var valid = String(value).replace(/<[^>]+>/gm, \"\").length >= minLength;\n this.ngModelCtrl.$setValidity(\"uiTinymceMinLength\", valid);\n\n return valid ? value : null;\n });\n\n // add a formatter that will process each time the value\n // is updated on the DOM element.\n this.ngModelCtrl.$formatters.unshift((value) => {\n var valid = String(value).replace(/<[^>]+>/gm, \"\").length >= minLength;\n this.ngModelCtrl.$setValidity(\"uiTinymceMinLength\", valid);\n\n // return the value or nothing will be written to the DOM.\n return value;\n });\n };\n};","angular.module(\"directives.tinymce\", []);\n","//= require ../ui-tinymce-mega.module.js\n\nangular.module(\"directives.tinymce\").constant(\"tinymceConfig\", {\n inline: false,\n menubar: false,\n plugins: \"advlist lists charmap paste\",\n theme: \"modern\",\n skin_url: \"/tinymce/skins/lightgray\",\n min_height: 120,\n browser_spellcheck: true,\n});\n","angular.module(\"documents.components\", []);\n","import ExternalCvUploaderCtrl from \"./external-cv-uploader.controller\";\nimport externalCvUploaderTemplate from \"./external-cv-uploader.template.html\";\n\nangular.module(\"documents.components.externalCvUploader\").component(\"externalCvUploader\", {\n bindings: {\n resource: \"=ngModel\",\n translation: \"=\",\n },\n template: externalCvUploaderTemplate,\n controller: ExternalCvUploaderCtrl,\n});\n","import { FileUploader, FileUploaderFactory } from \"angular-file-upload\";\n\nexport default class ExternalCvUploaderCtrl {\n private uploader: FileUploader;\n private translation: any;\n private documents: any[];\n private resource: any;\n \n static $inject = [\"FileUploader\"];\n\n constructor (private FileUploader: FileUploaderFactory) {\n this.translation = _.extend(\n {\n heading: \"Dokumente\",\n choose_file: \"Datei auswählen\",\n or_drag_drop: \"oder hier reinziehen.\",\n file_type: \"nur PDF\",\n },\n this.translation\n );\n\n this.uploader.filters.push({\n name: \"fileExtensionFilter\",\n fn: (item) => {\n return /\\/(pdf)$/.test(item.type);\n },\n });\n }\n\n public remove (item) {\n if (item.$clone) {\n item.$clone.remove();\n }\n\n item.remove();\n };\n\n public initializeUploader() {\n this.uploader = new this.FileUploader({\n autoUpload: false,\n });\n this.uploader.onSuccessItem = (item: any, response: any) => {\n var updatedResource = new this[response.data.type](response.data);\n this.documents = updatedResource.documents;\n\n if (this.resource) {\n this.resource.documents = this.documents;\n }\n };\n this.uploader.onAfterAddingFile = (item: any) => {\n var $clone = angular\n .element(\"#uploadDialog\")\n .clone()\n .appendTo(\"#fileInputList\")\n .attr(\"name\", \"externalCvs[]\");\n\n item.$clone = $clone;\n };\n this.uploader.onErrorItem = (item, response, status, headers) => {\n // window.alert(\"Leider trat beim Speichern ein Fehler auf. Probieren Sie es bitte ein weiteres mal. Sollte dieser Fehler öfter auftreten, wenden Sie sich bitte an die Administratoren.\");\n window.rollbar.error(\"External CV document upload failed\", {\n status: status,\n file_info: item.file,\n url: item.url,\n });\n };\n }\n\n public $onInit () {\n this.initializeUploader();\n };\n}\n\n","angular.module(\"documents.components.externalCvUploader\", []);\n","angular.module(\"documents\", [\"rails\", \"documents.components\", \"documents.modals\"]);\n","//= require ./modals.module.js\n\nangular.module(\"documents.modals\").factory(\"DocumentsModalMixin\", [\n \"$uibModal\",\n \"$rootScope\",\n \"$state\",\n function ($uibModal, $rootScope, $state) {\n function DocumentsModalMixin() {}\n\n function textkernelCandidateDiff() {\n if (!this.isTextkernelAvailable()) {\n return false;\n }\n var doc = this;\n\n var modalInstance = $uibModal.open({\n component: \"textkernelDiff\",\n size: \"lg\",\n resolve: {\n doc: [\n function () {\n return doc;\n },\n ],\n ObjClass: [\n \"CandidatesFactory\",\n function (Candidate) {\n return Candidate;\n },\n ],\n },\n });\n\n return modalInstance.result.then(\n function (candidateDiff) {\n $state.go(\"root.candidates.edit\", { candidate_id: candidateDiff.id, document_id: doc.id }).then(function () {\n $rootScope.$broadcast(\"showCandidateDiff\", candidateDiff);\n });\n },\n function () {\n //$log.info('Modal dismissed at: ' + new Date());\n }\n );\n }\n\n function textkernelProjectDiff() {\n if (!this.isTextkernelAvailable()) {\n return false;\n }\n var doc = this;\n\n var modalInstance = $uibModal.open({\n component: \"textkernelDiff\",\n size: \"lg\",\n resolve: {\n doc: [\n function () {\n return doc;\n },\n ],\n ObjClass: [\n \"ProjectsFactory\",\n function (Project) {\n return Project;\n },\n ],\n },\n });\n\n return modalInstance.result.then(\n function (projectDiff) {\n $state.go(\"root.projects.edit\", { project_id: projectDiff.id, document_id: doc.id }).then(function () {\n $rootScope.$broadcast(\"showProjectDiff\", projectDiff);\n });\n },\n function () {\n //$log.info('Modal dismissed at: ' + new Date());\n }\n );\n }\n\n function openDocumentFullScreen(documents) {\n var openDocument = this;\n\n var modalInstance = $uibModal.open({\n component: \"documentsFullscreenMode\",\n size: \"xl\",\n resolve: {\n documents: [\n function () {\n return documents;\n },\n ],\n openDocument: [\n function () {\n return openDocument;\n },\n ],\n },\n });\n\n return modalInstance.result.then(\n function () {},\n function () {\n //$log.info('Modal dismissed at: ' + new Date());\n }\n );\n }\n\n DocumentsModalMixin.extended = function (Resource) {\n Resource.include({\n textkernelCandidateDiff: textkernelCandidateDiff,\n textkernelProjectDiff: textkernelProjectDiff,\n openDocumentFullScreen: openDocumentFullScreen,\n });\n };\n\n return DocumentsModalMixin;\n },\n]);\n","angular.module(\"documents.modals\", []);\n","//= require ../documents.module.js\n\nangular.module(\"documents\").service(\"DocumentsFactory\", [\n \"RailsResource\",\n \"$sce\",\n \"$filter\",\n \"$translate\",\n \"railsSerializer\",\n \"DocumentsModalMixin\",\n \"makeCollectionProxy\",\n function (RailsResource, $sce, $filter, $translate, railsSerializer, DocumentsModalMixin, makeCollectionProxy) {\n function Document() {\n (Document).__super__.constructor.apply(this, arguments);\n\n this.isCv = function () {\n return this.fileTypeId() === 1;\n };\n\n this.isExpertProfile = function () {\n return this.fileTypeId() === 8;\n };\n\n this.isRelevantForExpertProfile = function () {\n // only return cvs, documents and certificates\n return _.contains([0, 1, 2, 3, 11], this.fileTypeId());\n };\n\n this.fileTypeId = function () {\n return _.isNumber(this.fileType) ? this.fileType : this.fileType.id;\n };\n\n this.isTextkernelAvailable = function () {\n return this.resourceType == \"CandidateDocument\" || this.resourceType == \"ProjectDocument\";\n };\n\n this.textkernelDiff = function () {\n switch (this.resourceType) {\n case \"CandidateDocument\":\n this.textkernelCandidateDiff();\n break;\n case \"ProjectDocument\":\n this.textkernelProjectDiff();\n break;\n default:\n return;\n }\n };\n\n this.documentLabel = function () {\n return this.originalFilename || this.title;\n };\n\n this.documentViewable = function () {\n return this.extension == \"pdf\";\n };\n }\n\n Document.lazyLoadingDocuments = function (resource, advancedQuery) {\n advancedQuery = advancedQuery || {};\n _.defaults(advancedQuery, { followUps: false });\n this.loading = true;\n return makeCollectionProxy(\n (Document).query.bind(Document),\n _.extend(resource.params(), { advanced: JSON.stringify(advancedQuery) })\n ).then(\n function (documents) {\n if (advancedQuery.followUps) {\n resource.followUps = function () {\n return documents;\n };\n } else {\n resource.documents = function () {\n return documents;\n };\n }\n this.loading = false;\n }.bind(this)\n );\n };\n\n Document.fileTypes = [\n { name: \"DOCUMENT\", id: 0 },\n { name: \"CV_ORIGINAL\", id: 1 },\n { name: \"CV_EXTERNAL\", id: 2 },\n { name: \"CV_ANONYMOUS\", id: 3 },\n { name: \"NON_DISCLOSURE_AGREEMENT_TOKEN\", id: 4 },\n { name: \"NON_DISCLOSURE_AGREEMENT_SIGNED\", id: 5 },\n { name: \"EMPLOYMENT_CONTRACT\", id: 6 },\n { name: \"EMPLOYMENT_CONTRACT_SIGNED\", id: 7 },\n { name: \"EXPERT_PROFILE\", id: 8 },\n { name: \"CANDIDATE_AGREEMENT\", id: 9 },\n { name: \"CANDIDATE_AGREEMENT_SIGNED\", id: 10 },\n { name: \"CERTIFICATE_TESTIMONIAL\", id: 11 },\n { name: \"JOB_OFFER\", id: 12 },\n { name: \"PITCH\", id: 13 },\n { name: \"CLIENT_CONTRACT\", id: 14 },\n { name: \"PROJECT_CONTRACT\", id: 15 },\n { name: \"SERVICE_CONTRACT\", id: 16 },\n { name: \"PURCHASE_ORDER\", id: 17 },\n ];\n\n RailsResource.extendTo(Document);\n (Document).configure({\n url: \"/documents\",\n name: \"document\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.serializeWith(\"url\", \"UrlSerializer\");\n this.serializeWith(\"fileType\", \"FileTypeSerializer\");\n this.resource(\"candidate\", \"CandidatesFactory\");\n }),\n });\n\n (Document).extend(DocumentsModalMixin);\n return Document;\n },\n]);\n","//= require ../documents.module.js\n\nangular.module(\"documents\").factory(\"FileTypeSerializer\", [\n \"railsSerializer\",\n \"$sce\",\n \"DocumentsFactory\",\n function (railsSerializer, $sce, Document) {\n return railsSerializer(function () {\n this.deserialize = function (fileType) {\n return _.findWhere(Document.fileTypes, { id: _.isNumber(fileType) ? fileType : fileType.id });\n };\n this.serialize = function (fileType) {\n return fileType.id;\n };\n });\n },\n]);\n","angular.module(\"driving_licences\", [\"rails\"]);\n","angular.module(\"employees.components\", []);\n","const employeesListTemplate = require(\"./employees-list.template.html\");\n//= require ../components.module.js\n\nangular.module(\"employees.components\").component(\"employeesList\", {\n bindings: {\n object: \"=\",\n companyChart: \"&\",\n closing: \"&\",\n initialViewState: \"<\",\n },\n template: employeesListTemplate,\n controller: \"EmployeesListCtrl\",\n});\n","//= require ../components.module.js\n\nangular.module(\"employees.components\").controller(\"EmployeesListCtrl\", [\n \"SavedSearchesFactory\",\n \"makeCollectionProxy\",\n \"EmployeesFactory\",\n \"PrsmTableHelper\",\n function (SavedSearch, makeCollectionProxy, Employee, PrsmTableHelper) {\n var _this = this;\n // _this.$on('addEmployee', function(event, employee){ _this.company.employees.push(employee); });\n // _this.$on('addProject', function(event, projects){ _this.company.projects.push(projects); });\n\n _this.$onInit = function () {\n _this.attributes = PrsmTableHelper.setVisibleAttributes(\n angular.copy(Employee.defaultTableAttributes),\n [\"id\", \"name\", \"projects\", \"jobTitle\", \"tags\", \"supervisor\", \"responsibleUser\", \"createdAt\"],\n [\"id\", \"name\", \"projects\", \"jobTitle\"]\n );\n\n _this.advancedQuery = new SavedSearch({\n defaultCondition: { modifier: \"must\", field: \"company_name\", query: \"\" },\n });\n _this.advancedQuery.conditions.push({\n field: \"company_name\",\n modifier: \"must\",\n query: _this.object.name,\n });\n _this.advancedQuery.deleteAdvancedSearchCondition(0);\n\n _this.updateEmployees(_this.advancedQuery.collectSearchParams());\n\n _this.advancedEmployeesListSearchOptions = {\n setData: _this.updateEmployees,\n advancedQuery: _this.advancedQuery,\n companyChart: _this.companyChart,\n };\n };\n\n function initSearchResults(employees) {\n _this.object.employees = employees;\n _this.lazyLoading = false;\n }\n\n _this.updateEmployees = function () {\n _this.lazyLoading = true;\n\n var params = _.extend(_this.object.params(), {\n advanced: JSON.stringify(_this.advancedQuery),\n additional_pages: Math.min(_this.object.employeesCount / 20 + 1, 3),\n });\n\n if (!_.isFunction(_this.object.employees.search)) {\n makeCollectionProxy(Employee.query.bind(Employee), params).then(initSearchResults);\n } else {\n _this.object.employees.search(params).then(initSearchResults);\n }\n };\n },\n]);\n","angular.module(\"employees\", [\n \"rails\",\n \"ui.router\",\n \"employees.views\",\n \"employees.components\",\n \"employees.modals\",\n \"companies.components\",\n]);\n","//= require ./modals.module.js\n\nangular.module(\"employees.modals\").factory(\"EmployeesModalMixin\", [\n \"$uibModal\",\n \"$filter\",\n \"$translate\",\n \"poller\",\n \"$http\",\n \"ModalUtilMixin\",\n \"EmployeesCandidatesProjectsFactory\",\n function ($uibModal, $filter, $translate, poller, $http, ModalUtilMixin, EmployeesCandidatesProjects) {\n function EmployeesModalMixin() {}\n\n function openRulesOfEngagementModal() {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_TERMS_AND_CONDITIONS\");\n\n if (!_this.workEmail && !_this.privateEmail) {\n window.alert($filter(\"translate\")(\"ADD_EMAIL_TO_SEND_BUSINESS_CONDITIONS_NOTICE\"));\n return;\n } else if (!_this.workEmail) {\n if (!window.confirm($filter(\"translate\")(\"SEND_TO_PRIVATE_MANAGER_EMAIL_CONFIRMATION\"))) {\n return;\n }\n }\n\n var modalInstance = ModalUtilMixin.createChooseContactModal(\"create_rules_of_engagement_email\", title, this);\n\n return modalInstance.result.then(\n function (rulesOfEngagementEmail) {\n rulesOfEngagementEmail.callback.then(function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"SENT_BUSINESS_CONDITIONS_EMAIL_CONFIRMATION\"), pollingService).then(\n function (res) {\n if (res) {\n _this.sendDocument(\"send_rules_of_engagement\");\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n },\n function () {}\n );\n }\n\n function sendContractOfferModal(cpjoin) {\n var _this = this;\n var title = $filter(\"translate\")(\"SEND_CONTRACT_OFFER\");\n\n if (!_this.workEmail && !_this.privateEmail) {\n window.alert($filter(\"translate\")(\"ADD_EMAIL_FOR_MANAGER_CONTRACT_OFFER_NOTICE\"));\n return;\n } else if (!_this.workEmail) {\n if (!window.confirm($filter(\"translate\")(\"SEND_TO_PRIVATE_MANAGER_EMAIL_CONFIRMATION\"))) {\n return;\n }\n }\n\n var modalInstance = ModalUtilMixin.createChooseContactModal(\"create_contract_offer_email\", title, this, this, {\n cpjoin_id: cpjoin.id,\n });\n\n return modalInstance.result.then(\n function (employeesContractOfferEmail) {\n employeesContractOfferEmail.callback.then(\n function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"SENT_CONTRACT_OFFER_NOTICE\"), pollingService).then(\n function (res) {\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n },\n function () {}\n );\n },\n function () {}\n );\n }\n\n function editResearcherModal() {\n var employeesCandidatesProject = this.employeesCandidatesProject;\n var employee = this;\n\n var modalInstance = $uibModal.open({\n component: \"editResearcherModal\",\n size: \"lg\",\n resolve: {\n candidatesProject: [\n function () {\n return angular.copy(employeesCandidatesProject); // workaround to prevent code duplication\n },\n ],\n project: [\n \"ProjectsFactory\",\n function (Project) {\n return Project.get(employeesCandidatesProject.project.id);\n },\n ],\n },\n });\n\n return modalInstance.result.then(\n function (editedECPCandidatesProject) {\n return $http\n .post(employee.$url() + \"/employees_candidates_projects/\" + editedECPCandidatesProject.id + \".json\", {\n employees_candidates_projects: editedECPCandidatesProject,\n })\n .then(\n function (updatedEmployeesCandidatesProject) {\n var ecp = new EmployeesCandidatesProjects(updatedEmployeesCandidatesProject.data.data);\n return _.extend(employee.employeesCandidatesProject, ecp);\n },\n function () {\n // Error\n }\n );\n },\n function () {\n return false;\n }\n );\n }\n\n function showDuplicatesModal(employee, duplicates) {\n var modalInstance = $uibModal.open({\n component: \"employeesShowDuplicates\",\n size: \"lg\",\n resolve: {\n duplicates: function () {\n return duplicates;\n },\n employee: function () {\n return employee;\n },\n },\n });\n\n return modalInstance.result;\n }\n\n EmployeesModalMixin.extended = function (Resource) {\n Resource.include({\n openRulesOfEngagementModal: openRulesOfEngagementModal,\n sendContractOfferModal: sendContractOfferModal,\n editResearcher: editResearcherModal,\n showDuplicates: showDuplicatesModal,\n });\n };\n\n return EmployeesModalMixin;\n },\n]);\n","angular.module(\"employees.modals\", []);\n","//= require ../employees.module.js\n\nangular.module(\"employees\").service(\"EmployeesFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"ModalMixin\",\n \"EmployeesModalMixin\",\n \"PersonModalMixin\",\n \"railsSerializer\",\n \"$state\",\n \"$http\",\n \"$rootScope\",\n \"$sce\",\n \"ActionsFactory\",\n \"Highlighter\",\n \"ActionModals\",\n \"$filter\",\n \"$translate\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n ModalMixin,\n EmployeesModalMixin,\n PersonModalMixin,\n railsSerializer,\n $state,\n $http,\n $rootScope,\n $sce,\n Action,\n Highlighter,\n ActionModals,\n $filter,\n $translate\n ) {\n function Employee() {\n (Employee).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return { employee_id: this.id };\n }.bind(this);\n\n this.getDefaultEmailAddress = function () {\n return this.workEmail;\n };\n\n this.autocompleteText = function () {\n return this.fullName + \" (\" + this.company.name + \")\";\n };\n\n this.mapSearchScopesToHumanReadable = Employee.mapSearchScopesToHumanReadable;\n\n this.createMessage = function (actionRoute, emailParams) {\n var params = angular.merge({ id: this.id }, emailParams);\n return $http.post(\"employees/\" + this.id + \"/\" + actionRoute + \".json\", { employee: params });\n };\n\n this.sendDocument = function (actionRoute, emailParams) {\n (Employee).$post(\"employees/\" + this.id + \"/\" + actionRoute + \".json\", emailParams).then(\n function (resEmployee) {\n $rootScope.$broadcast(\"employee_action_changed_\" + this.id);\n }.bind(this)\n );\n }.bind(this);\n\n this.saveCustomNote = function (action) {\n Action.saveCustomNote(this, action);\n }.bind(this);\n\n this.createNewAction = function (actionTypeIdentifier, project) {\n if (project) {\n $http.get(\"projects/\" + project.id + \"/employees_projects.json\", { params: { employee_id: this.id } }).then(\n function (resEP) {\n var employeesProject = resEP.data.data;\n // @ts-ignore\n employeesProject.employee = new Employee(employeesProject.employee);\n\n Action.createNewAction(employeesProject, actionTypeIdentifier).then(\n function (res) {\n $rootScope.$broadcast(\"project_action_changed_\" + project.id);\n $rootScope.$broadcast(\"employee_action_changed_\" + this.id);\n }.bind(this)\n );\n }.bind(this)\n );\n } else {\n Action.createNewAction(this, actionTypeIdentifier);\n }\n }.bind(this);\n\n this.completeAction = function (type, project, options) {\n var employee = this;\n\n ActionModals.selectAction(type, angular.extend(employee.params(), project.params()), options).then(function (\n action\n ) {\n var cp = _.find(project.candidatesProjects, function (cpjoin) {\n return cpjoin.candidate.id == action.candidate.id;\n });\n employee.openContactModal(action.actionEditModal.bind(action, cp, { followUps: true }));\n },\n angular.noop);\n }.bind(this);\n\n this.addToProject = function (project) {\n (Employee).$post(\"employees/\" + this.id + \"/project/\" + project.id).then(\n function (resEmployee) {\n // @ts-ignore\n project.employees.push(new Employee(new Employee(resEmployee)));\n }.bind(this)\n );\n };\n\n this.removeFromProject = function (project) {\n (Employee).$delete(\"employees/\" + this.id + \"/project/\" + project.id).then(\n function (resEmployee) {\n var idx = _.findIndex(project.employees, _.matcher({ id: resEmployee.id }));\n if (idx > -1) {\n project.employees.splice(idx, 1);\n }\n }.bind(this)\n );\n };\n\n this.filterDepartments = function () {\n return { job_category_ids: { job_category_ids: _.pluck(this.jobCategories, \"id\") } };\n }.bind(this);\n\n this.name = this.fullName;\n this.resourceType = \"Employee\";\n this.serviceName = \"EmployeesFactory\";\n }\n\n Employee.mapSearchScopesToHumanReadable = function (scopeDescriptor) {\n switch (scopeDescriptor) {\n case \"fullNameWithTitle.standard\":\n case \"fullNameReverseWithTitle.standard\":\n return \"MAP_READ_EXACT_NAME\";\n case \"fullNameReverseWithTitle.highlight\":\n return \"MAP_READ_INEXACT_NAME\";\n case \"address\":\n return \"MAP_READ_ADDRESS\";\n case \"privateEmail\":\n return \"MAP_READ_EMAIL_PRIVATE\";\n case \"workEmail\":\n return \"MAP_READ_EMAIL_WORK\";\n case \"tags.name\":\n return \"MAP_READ_TAG\";\n case \"jobCategories.name\":\n return \"MAP_READ_JOB_CATEGORIES\";\n case \"allActions.description.de\":\n return \"MAP_READ_HISTORY\";\n case \"jobTitle\":\n return \"MAP_READ_CURRENT_POSITION\";\n case \"responsibleUser.fullName.notAnalyzed\":\n case \"responsibleUser.symbole\":\n return \"MAP_READ_RESPONSIBLE_USER\";\n case \"company.name\":\n case \"company.name.standard\":\n return \"MAP_READ_COMPANY\";\n case \"id\":\n return \"MAP_READ_ID\";\n case \"workPhone\":\n return \"MAP_READ_TELEPHONE_WORK\";\n case \"fax\":\n return \"MAP_READ_FAX_WORK\";\n case \"workMobilePhone\":\n return \"MAP_READ_MOBILE_WORK\";\n case \"privatePhone\":\n return \"MAP_READ_TELEPHONE_PRIVATE\";\n case \"privateMobilePhone\":\n return \"MAP_READ_MOBILE_PRIVATE\";\n default:\n return undefined;\n }\n };\n\n Employee.transformResultHandlerOk = function (result) {\n if (result) {\n $state.go(\"root.employees.show\", result.params());\n if (result.notTransmitted) {\n window.alert(\n $filter(\"translate\")(\"MANAGER_ATTRIBUTES_NOT_TRANSMITTED_NOTICE\") +\n _.map(result.notTransmitted, function (val, key) {\n return key + \": \" + val;\n })\n );\n }\n }\n };\n\n Employee.transformResultHandlerError = function (result) {\n if (result.status != 409) {\n window.rollbar.error(\"Generating employee from candidate failed\", { status: result.status });\n } else {\n window.alert($filter(\"translate\")(\"MANAGER_WAS_CREATED_ALREADY_NOTICE\"));\n window.rollbar.error(\"Employee exists already\", { status: result.status });\n }\n };\n\n Employee.duplicatesWatchFields = [\n \"firstName\",\n \"lastName\",\n \"privatePhone\",\n \"privateMobilePhone\",\n \"privateEmail\",\n \"workPhone\",\n \"workMobilePhone\",\n \"workEmail\",\n ];\n\n Employee.requirements = {\n yellow: [\"REQ_YELLOW_NAME\", \"REQ_YELLOW_TELEPHONE\", \"REQ_YELLOW_EMAIL\", \"REQ_YELLOW_TAG\", \"REQ_YELLOW_JOB_TITLE\"],\n green: [\"REQ_GREEN_TAGS\", \"REQ_GREEN_PROJECT\"],\n };\n\n Employee.defaultTableAttributes = {\n id: {\n title: \"ID\",\n show: true,\n pinned: true,\n menu: true,\n class: \"id\",\n sortField: \"id\",\n },\n name: {\n title: \"MANAGER\",\n show: true,\n fixedWidth: true,\n class: \"title\",\n sortField: \"full_name_reverse_with_title.not_analyzed\",\n },\n projects: {\n title: \"PROJECTS\",\n show: true,\n class: \"tag\",\n sortField: \"projects_count\",\n },\n company: {\n title: \"COMPANY\",\n show: true,\n class: \"title\",\n sortField: \"company.name.not_analyzed\",\n },\n priority: {\n title: \"PRIORITY\",\n show: false,\n class: \"priority\",\n sortField: \"priority\",\n },\n tags: {\n title: \"TAGS\",\n class: \"tags\",\n show: true,\n },\n supervisor: {\n title: \"SUPERVISOR\",\n show: false,\n class: \"title\",\n sortField: \"supervisor.full_name_with_title.not_analyzed\",\n },\n city: {\n title: \"ORIGIN\",\n show: false,\n class: \"city\",\n sortField: \"private_city\",\n },\n processStatus: {\n title: \"PROCESS\",\n class: \"select\",\n show: true,\n sortField: \"status\",\n },\n sales: {\n title: \"Sales\",\n class: \"responsible\",\n show: false,\n sortField: \"consultant.full_name.not_analyzed\",\n },\n researcher: {\n title: \"Researcher\",\n class: \"responsible\",\n show: false,\n sortField: \"researcher.full_name.not_analyzed\",\n },\n responsibleUser: {\n title: \"RESPONSIBLE_USER_TOKEN\",\n show: true,\n class: \"responsible\",\n sortField: \"responsible_user.full_name.not_analyzed\",\n },\n createdAt: {\n title: \"CREATED_AT\",\n show: false,\n class: \"date\",\n sortField: \"created_at\",\n },\n };\n\n RailsResource.extendTo(Employee);\n (Employee).configure({\n url: \"/employees\",\n name: \"employee\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"projects\", \"ProjectsFactory\");\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.resource(\"actions\", \"ActionsFactory\");\n this.resource(\"workingRelationships\", \"WorkingRelationshipsFactory\");\n this.serializeWith(\"tags\", \"TagSerializer\");\n\n this.rename(\"faxWork\", \"fax\");\n\n this.resource(\"employeesCandidatesProject\", \"EmployeesCandidatesProjectsFactory\");\n\n this.serializeWith(\"birthdate\", \"DateSerializer\");\n this.serializeWith(\"priority\", \"PrioritySerializer\");\n this.serializeWith(\"nextReminderWillBeAt\", \"DateSerializer\");\n this.serializeWith(\"budget\", \"MoneySerializer\");\n this.serializeWith(\"comment\", \"SanitizeSerializer\");\n this.serializeWith(\"urgencyDescription\", \"SanitizeSerializer\");\n this.serializeWith(\"requirementsDescription\", \"SanitizeSerializer\");\n }),\n });\n (Employee).extend(RailsResourceSnapshotsMixin);\n (Employee).extend(ModalMixin);\n (Employee).extend(EmployeesModalMixin);\n (Employee).extend(PersonModalMixin);\n (Employee).extend(Highlighter);\n return Employee;\n },\n]);\n","angular.module(\"employees.views\", []);\n","angular.module(\"employees_candidates_projects\", [\"rails\", \"candidates_projects\"]);\n","//= require ../employees_candidates_projects.module.js\n\nangular.module(\"employees_candidates_projects\").service(\"EmployeesCandidatesProjectsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"RailsResourceSnapshotsMixin\",\n \"CandidatesProjectsFactory\",\n \"DealsFactory\",\n \"ModalMixin\",\n \"$sce\",\n \"$rootScope\",\n \"$filter\",\n \"$translate\",\n function (\n RailsResource,\n railsSerializer,\n RailsResourceSnapshotsMixin,\n CandidatesProjects,\n Deal,\n ModalMixin,\n $sce,\n $rootScope,\n $filter,\n $translate\n ) {\n function EmployeesCandidatesProjects() {\n (EmployeesCandidatesProjects).__super__.constructor.apply(this, arguments);\n\n this.lost = function (action) {\n action.actionEditModal(this).then(\n function () {\n $rootScope.$broadcast(\"candidate_action_changed_\" + this.candidate.id);\n $rootScope.$broadcast(\"project_action_changed_\" + this.project.id);\n _.each(this.employees, function (employee) {\n $rootScope.$broadcast(\"employee_action_changed_\" + employee.id);\n });\n }.bind(this)\n );\n };\n\n this.projectStatusUpdate = function () {\n if (this.status.disabled) {\n window.alert($filter(\"translate\")(\"OPTION_DEACTIVATED_NOTICE\"));\n this.rollback();\n this.snapshot();\n return;\n }\n\n this.confirm(\n $sce.trustAsHtml(\n this.status.onChangeHintTemplate || $filter(\"translate\")(\"CHANGE_STATUS_MANAGER_CONFIRMATION\")\n )\n ).then(\n function (res) {\n if (res) {\n this.employee_id = _.first(this.employees).id;\n this.save().then(\n function (result) {\n this.snapshot();\n\n if (this.status.callback) {\n var callback =\n EmployeesCandidatesProjects.override_status_callbacks[this.status.name] || this.status.callback;\n callback(result);\n } else {\n $rootScope.$broadcast(\"candidate_action_changed_\" + this.candidate.id);\n $rootScope.$broadcast(\"project_action_changed_\" + this.project.id);\n _.each(this.employees, function (employee) {\n $rootScope.$broadcast(\"employee_action_changed_\" + employee.id);\n });\n }\n }.bind(this)\n );\n } else {\n this.rollback();\n this.snapshot();\n }\n }.bind(this)\n );\n };\n\n this.resourceType = \"EmployeesCandidatesProjects\";\n this.serviceName = \"EmployeesCandidatesProjectsFactory\";\n this.snapshot();\n }\n\n EmployeesCandidatesProjects.override_status_callbacks = {\n Closing: function (ecp) {\n return Deal.createAndEdit({\n candidatesProjectId: ecp.candidatesProjectId,\n employeesCandidatesProjectId: ecp.id,\n add_action: ecp.lastAction,\n closing: true,\n });\n },\n Deal: function (ecp) {\n return Deal.createAndEdit({\n candidatesProjectId: ecp.candidatesProjectId,\n employeesCandidatesProjectId: ecp.id,\n add_action: ecp.lastAction,\n closing: false,\n });\n },\n Lost: function (ecp) {\n return ecp.lost(ecp.lastAction);\n },\n };\n\n RailsResource.extendTo(EmployeesCandidatesProjects);\n (EmployeesCandidatesProjects).configure({\n url: \"/employees/{{employee_id}}/employees_candidates_projects/{{id}}\",\n name: \"employees_candidates_projects\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"sales\", \"UsersFactory\");\n this.resource(\"researcher\", \"UsersFactory\");\n this.resource(\"lastAction\", \"ActionsFactory\");\n this.serializeWith(\"status\", \"StatusSerializer\");\n }),\n });\n\n (EmployeesCandidatesProjects).extend(RailsResourceSnapshotsMixin);\n (EmployeesCandidatesProjects).extend(ModalMixin);\n\n return EmployeesCandidatesProjects;\n },\n]);\n","angular.module(\"expert_profiles\", [\"rails\", \"modals\", \"expert_profiles.modals\", \"expert_profiles.views\"]);\n","//= require ./modals.module.js\n\nangular.module(\"expert_profiles.modals\").factory(\"ExpertProfilesModalMixin\", [\n \"$uibModal\",\n \"$rootScope\",\n \"$filter\",\n \"poller\",\n \"SendoutsFactory\",\n function ($uibModal, $rootScope, $filter, poller, Sendout) {\n function ExpertProfilesModalMixin() {}\n\n function sendoutModal(scope, resolves, sendoutFinished) {\n var modalInstance = $uibModal.open({\n component: \"sendoutModal\",\n size: \"lg\",\n resolve: resolves,\n });\n\n return modalInstance.result.then(\n function (sendoutEmail) {\n sendoutEmail.callback.then(function (sendoutCreatedRes) {\n var pollingService = poller.get(sendoutCreatedRes.data.url, { delay: 1000 });\n scope.confirm($filter(\"translate\")(\"EMAIL_EXPERT_PROFILE_SENT_CONFIRMATION\"), pollingService).then(\n function (res) {\n if (res) {\n scope\n .sendDocument(\"send_sendout\", { sendout_id: sendoutCreatedRes.data.sendout_id })\n .then(function () {\n Sendout.get(sendoutCreatedRes.data.sendout_id).then(function (sendoutRes) {\n scope.$sendouts.unshift(sendoutRes);\n\n sendoutFinished();\n });\n });\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n },\n function () {}\n );\n }\n\n function openInitiativeSendoutModal() {\n var _this = this;\n var resolves = {\n managers: function () {\n return [_this.employee];\n },\n expertProfile: function () {\n return _this;\n },\n };\n\n var sendoutFinished = function () {\n $rootScope.$broadcast(\"candidate_action_changed_\" + _this.candidate.id);\n };\n\n return sendoutModal(_this, resolves, sendoutFinished);\n }\n\n function openLonglistSendoutModal(cpjoin) {\n var _this = this;\n var resolves = {\n managers: function () {\n return cpjoin.project.employees;\n },\n expertProfile: function () {\n return _this;\n },\n };\n\n var sendoutFinished = function () {\n $rootScope.$broadcast(\"candidate_action_changed_\" + cpjoin.candidate.id);\n $rootScope.$broadcast(\"cpjoin_action_changed_\" + cpjoin.id);\n };\n\n return sendoutModal(_this, resolves, sendoutFinished);\n }\n\n ExpertProfilesModalMixin.extended = function (Resource) {\n Resource.include({\n openLonglistSendoutModal: openLonglistSendoutModal,\n openInitiativeSendoutModal: openInitiativeSendoutModal,\n });\n };\n\n return ExpertProfilesModalMixin;\n },\n]);\n","angular.module(\"expert_profiles.modals\", []);\n","//= require ../expert_profiles.module.js\n\nangular.module(\"expert_profiles\").service(\"ExpertProfileFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"ModalMixin\",\n \"railsSerializer\",\n \"$state\",\n \"$http\",\n \"ExpertProfilesModalMixin\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n ModalMixin,\n railsSerializer,\n $state,\n $http,\n ExpertProfilesModalMixin\n ) {\n function ExpertProfile() {\n (ExpertProfile).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return {\n project_id: this.project.id,\n expert_profile_id: this.id,\n cpjoin_id: this.candidatesProjectsId || this.cpjoin.id,\n candidate_id: this.candidate.id,\n };\n };\n\n this.getShareLink = function (employee_id) {\n return $http.get(\"/expert_profile/\" + this.id + \"/url_with_authtoken\", {\n params: { employee_id: employee_id },\n });\n };\n\n this.createMessage = function (actionRoute, emailParams) {\n var params = angular.merge({ id: this.id }, emailParams);\n return $http.post(\"expert_profile/\" + this.id + \"/\" + actionRoute + \".json\", { expert_profile: params });\n };\n\n this.sendDocument = function (actionRoute, emailParams) {\n return $http.post(\"expert_profile/\" + this.id + \"/\" + actionRoute + \".json\", emailParams);\n }.bind(this);\n\n this.name = function () {\n if (!this.project) {\n (ExpertProfile).handleCorruptedProfile(this);\n }\n return (\n this.title ||\n this.jobTitle ||\n (this.project && this.project.title) ||\n (this.candidate && \"Profil - \" + this.candidate.fullNameWithTitle)\n );\n }.bind(this);\n\n this.copyTo = function (ep) {\n _.extend(\n ep,\n _.chain(this)\n .pick(\n \"education\",\n \"coreCompetencies\",\n \"skills\",\n \"workExperience\",\n \"placeOfResidence\",\n \"nationality\",\n \"comment\",\n \"attachedDocuments\",\n \"wantedSalary\",\n \"firstInterviewDate\",\n \"jobStartDate\"\n )\n .mapObject(function (val, key) {\n if (_.isString(val)) {\n return val.replace(/\\\\\"/g, '\"');\n } else {\n return val;\n }\n })\n .value()\n );\n };\n\n this.isInitiativeProfile = function () {\n return this.type == \"InitiativeExpertProfile\";\n };\n\n this.needsCandidatesAgreement = function () {\n return !(\n this.anonymize ||\n this.agreementSigned ||\n this.candidate.isEntourageEmployee ||\n this.project.isInternalProject\n );\n };\n\n _.defaults(this, {\n serviceName: \"ExpertProfileFactory\",\n document: undefined,\n workExperience: undefined,\n comment: undefined,\n coreCompetencies: undefined,\n createdAt: undefined,\n firstInterviewDate: undefined,\n id: undefined,\n jobStartDate: undefined,\n jobTitle: undefined,\n wantedSalary: undefined,\n skills: undefined,\n attachedDocuments: [],\n anonymize: false,\n });\n }\n\n ExpertProfile.handleCorruptedProfile = _.throttle(function (profiles, item) {\n window.rollbar.error(\"Corrupted expert profile detected\", { item: item, expert_profiles: profiles });\n }, 2000);\n\n RailsResource.extendTo(ExpertProfile);\n (ExpertProfile).configure({\n url: \"/expert_profile/{{id}}\",\n name: \"expert_profile\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.exclude(\"$snapshots\");\n\n this.rename(\"$sendouts\", \"sendouts\");\n this.resource(\"$sendouts\", \"SendoutsFactory\");\n\n this.resource(\"attachedDocuments\", \"DocumentsFactory\");\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.resource(\"project\", \"ProjectsFactory\");\n this.resource(\"employee\", \"EmployeesFactory\");\n }),\n });\n (ExpertProfile).extend(RailsResourceSnapshotsMixin);\n (ExpertProfile).extend(ExpertProfilesModalMixin);\n (ExpertProfile).extend(ModalMixin);\n return ExpertProfile;\n },\n]);\n","angular.module(\"expert_profiles.views\", []);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"calltoPhoneNumber\", [\n \"$filter\",\n \"$log\",\n function ($filter, $log) {\n var angularPhoneNumberFilter = $filter(\"phoneNumber\");\n return function (phoneNumber) {\n try {\n if (angularPhoneNumberFilter(phoneNumber.replace(/\\D+/g, \"\")).length === 0) {\n throw \"phoneNumber invalid\";\n }\n return \"callto:\" + angularPhoneNumberFilter(phoneNumber.replace(/(?!^\\+\\D*)\\D*/g, \"\"));\n } catch (e) {\n $log.debug(\"Error: \" + e + \" - \" + phoneNumber);\n return false;\n }\n };\n },\n]);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"camelCaseToHyphens\", function (camelCaseToHyphens) {\n return camelCaseToHyphens;\n});\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"capitalizeWord\", function () {\n return function (text) {\n return !!text ? text.charAt(0).toUpperCase() + text.substr(1) : \"\";\n };\n});\n","angular.module(\"filters\", []);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"formatIfEmpty\", function () {\n return function (input, str) {\n return !input ? \"\" : input + \" \" + str;\n };\n});\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"freeDateTextFormat\", [\n \"$filter\",\n function ($filter) {\n return function (freeDateObject) {\n if (freeDateObject.option) {\n return freeDateObject.option.name;\n } else if (freeDateObject.date) {\n return $filter(\"germanDateFormat\")(freeDateObject.date);\n } else {\n return undefined;\n }\n };\n },\n]);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"germanDateFormat\", [\n \"$filter\",\n function ($filter) {\n var angularDateFilter = $filter(\"date\");\n return function (theDate) {\n if (Date.parse(theDate)) {\n theDate = new Date(theDate);\n } else {\n return theDate;\n }\n return angularDateFilter(theDate, \"dd.MM.yyyy\");\n };\n },\n]);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"germanTimeFormat\", [\n \"$filter\",\n function ($filter) {\n var angularDateFilter = $filter(\"date\");\n return function (theDate) {\n if (Date.parse(theDate)) {\n theDate = new Date(theDate);\n } else {\n return theDate;\n }\n return angularDateFilter(theDate, \"dd.MM.yyyy H:mm 'Uhr'\");\n };\n },\n]);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"percentage\", [\n \"$filter\",\n function ($filter) {\n return function (input, decimals) {\n return $filter(\"number\")(input * 100, decimals) + \" %\";\n };\n },\n]);\n","angular.module(\"filters\").filter(\"phoneNumber\", [\n function () {\n return function (input) {\n if (!input || input.length === 0 || input.match(/[a-z]/i)) {\n return input;\n } else if (window.intlTelInputUtils.isValidNumber(input, \"DE\")) {\n return window.intlTelInputUtils.formatNumber(input, null, window.intlTelInputUtils.numberFormat.INTERNATIONAL);\n } else if (window.intlTelInputUtils.isValidNumber(input, \"DE\")) {\n return window.intlTelInputUtils.formatNumber(input, \"DE\", window.intlTelInputUtils.numberFormat.INTERNATIONAL);\n } else {\n return input;\n }\n };\n },\n]);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"stripWhitespace\", [\n \"$filter\",\n function ($filter) {\n return function (value) {\n return !value ? \"\" : value.replace(/\\s/g, \"\");\n };\n },\n]);\n","//= require ../filters.module.js\n\nangular.module(\"filters\").filter(\"to_trusted\", [\n \"$sce\",\n function ($sce) {\n return function (text) {\n return $sce.trustAsHtml(text);\n };\n },\n]);\n","angular.module(\"functional_areas\", [\"rails\"]);\n","angular.module(\"graduations\", [\"rails\"]);\n","angular.module(\"hierarchies\", [\"rails\"]);\n","angular.module(\"highschools.components\", []);\n","angular.module(\"highschools\", [\"highschools.components\"]);\n","angular.module(\"invoices.components\", []);\n","angular.module(\"invoices\", [\"rails\", \"invoices.components\"]);\n","//= require ../invoices.module.js\n\nangular.module(\"invoices\").service(\"InvoicesFactory\", [\n \"RailsResource\",\n \"$sce\",\n \"railsSerializer\",\n \"$filter\",\n \"$translate\",\n function (RailsResource, $sce, railsSerializer, $filter, $translate) {\n function Invoice() {\n (Invoice).__super__.constructor.apply(this, arguments);\n }\n\n Invoice.defaultTableAttributes = {\n id: {\n title: \"ID\",\n show: false,\n pinned: false,\n menu: true,\n class: \"id\",\n },\n title: {\n title: $filter(\"translate\")(\"TITLE\"),\n show: true,\n fixedWidth: true,\n class: \"title\",\n },\n invoiceRecipient: {\n title: $filter(\"translate\")(\"INVOICE_RECIPIENT\"),\n show: true,\n class: \"title\",\n },\n value: {\n title: $filter(\"translate\")(\"AMOUNT\"),\n show: true,\n class: \"tag\",\n },\n serviceDate: {\n title: $filter(\"translate\")(\"INVOICE_DATE\"),\n show: true,\n class: \"date\",\n },\n createdAt: {\n title: $filter(\"translate\")(\"CREATED_AT\"),\n show: false,\n class: \"date\",\n },\n };\n\n RailsResource.extendTo(Invoice);\n (Invoice).configure({\n url: \"/projects/{{project_id}}/invoices\",\n name: \"invoice\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"project\", \"ProjectsFactory\");\n this.resource(\"invoiceRecipient\", \"EmployeesFactory\");\n this.serializeWith(\"value\", \"MoneySerializer\");\n this.serializeWith(\"serviceDate\", \"DateSerializer\");\n }),\n });\n\n return Invoice;\n },\n]);\n","angular.module(\"jobCategories\", [\"rails\"]);\n","angular.module(\"job_offers.components\", []);\n","angular.module(\"job_offers\", [\"rails\", \"job_offers.components\", \"job_offers.views\"]);\n","//= require ../job_offers.module.js\n\nangular.module(\"job_offers\").service(\"JobOfferFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"railsSerializer\",\n \"$state\",\n \"$http\",\n \"JobOfferMainCategories\",\n function (RailsResource, RailsResourceSnapshotsMixin, railsSerializer, $state, $http, JobOfferMainCategories: any) {\n function JobOffer() {\n (JobOffer).__super__.constructor.apply(this, arguments);\n\n (JobOffer).CURRENCIES = [\n { name: \"EUR\", value: 1 },\n { name: \"GBP\", value: 2 },\n { name: \"CHF\", value: 3 },\n { name: \"USD\", value: 4 },\n ];\n\n (JobOffer).COUNTRY_CODES = [\n { name: \"GERMANY\", key: \"de\", url: \"https://theentourage.de/jobs\" },\n { name: \"SWITZERLAND\", key: \"ch\", url: \"https://theentourage.ch/jobs\" },\n { name: \"ITALY\", key: \"it\", url: \"https://theentourage.de/it/jobs\" },\n ];\n\n this.params = function () {\n return { project_id: this.project.id, job_offer_id: this.id };\n };\n\n this.isInCategory = function () {\n return (\n this.internal ||\n !_.chain(this.project.jobCategories)\n .filter(function (jobCat) {\n return _.findIndex(JobOfferMainCategories, jobCat.name);\n })\n .isEmpty()\n .value()\n );\n };\n }\n\n RailsResource.extendTo(JobOffer);\n (JobOffer).configure({\n url: \"/job_offers\",\n name: \"job_offer\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.serializeWith(\"createdAt\", \"DateSerializer\");\n this.serializeWith(\"startDate\", \"DateSerializer\");\n this.serializeWith(\"endDate\", \"DateSerializer\");\n this.resource(\"project\", \"ProjectsFactory\");\n this.serializeWith(\"region\", \"RegionSerializer\");\n this.resource(\"responsibleUser\", \"UsersFactory\");\n this.serializeWith(\"jobType\", \"JobTypesSerializer\");\n\n this.resource(\"country\", \"CountriesFactory\");\n this.serializeWith(\"language\", \"LanguagesSerializer\");\n this.serializeWith(\"country\", \"CountrySerializer\");\n\n this.serializeWith(\"customRequirements\", \"CustomRequirementSerializer\");\n this.exclude(\"$snapshots\");\n }),\n });\n (JobOffer).extend(RailsResourceSnapshotsMixin);\n return JobOffer;\n },\n]);\n","//= require ../job_offers.module.js\n\nangular.module(\"job_offers\").constant(\"JobOfferMainCategories\", [\"Pharma\", \"MedTec\", \"Health Care\"]);\n","angular.module(\"job_offers.views\", []);\n","angular.module(\"job_types\", [\"rails\"]);\n","angular.module(\"languages.components\", []);\n","angular.module(\"languages\", [\"rails\", \"languages.components\"]);\n","angular.module(\"leadership_experiences\", [\"rails\"]);\n","angular.module(\"locations.components\", []);\n","angular.module(\"locations\", [\"locations.components\"]);\n","//= require ../locations.module.js\n\nangular.module(\"locations\").factory(\"LocationsFactory\", [\n \"Autocompletes\",\n \"$q\",\n function (Autocompletes, $q) {\n function Location() {\n (Location).__super__.constructor.apply(this, arguments);\n }\n\n Location.displayName = function (address) {\n return _.chain([\n address.road || address.name,\n address.house_number,\n address.postcode,\n address.city,\n address.country,\n ])\n .reject(_.isEmpty)\n .value()\n .join(\" \");\n };\n\n Location.autocomplete = function (searchQuery, scope) {\n var deferred = $q.defer();\n\n var debouncedFn = _.debounce(function (text, scope) {\n if (_.isEmpty(text)) {\n deferred.resolve([]);\n return;\n }\n Autocompletes.address(text, scope).then(function (res) {\n var locations = _.chain(res)\n .map(function (entry) {\n return {\n displayName: _.first(entry.highlight) || Location.displayName(entry.address),\n id: entry.id,\n address: entry.address,\n };\n })\n .uniq(false, _.iteratee(\"displayName\"))\n .value();\n\n deferred.resolve(locations);\n });\n }, 300);\n\n debouncedFn(searchQuery, scope);\n return deferred;\n };\n\n return Location;\n },\n]);\n","angular.module(\"login\", [\"values\", \"rails\", \"ui.router\", \"http-auth-interceptor\", \"login.modals\", \"login.views\"]);\n","//= require ../modals.module.js\n\nangular.module(\"login.modals\").factory(\"LoginModalMixin\", [\n \"$uibModal\",\n function ($uibModal) {\n var modalInstanceSingelton;\n\n function LoginFormModal() {\n if (!modalInstanceSingelton) {\n modalInstanceSingelton = $uibModal.open({\n component: \"loginForm\",\n size: \"sm\",\n backdrop: \"static\",\n resolve: {},\n });\n return modalInstanceSingelton.result.finally(function () {\n modalInstanceSingelton = undefined;\n });\n }\n }\n\n return {\n openLoginFormModal: LoginFormModal,\n };\n },\n]);\n","angular.module(\"login.modals\", [\"modals\"]);\n","//= require ../login.module.js\n\nangular\n .module(\"login\")\n // this is a service that you can call to check whether you're logged in and to actually log in the user\n .factory(\"AuthService\", [\n \"$http\",\n \"$log\",\n \"UserSessionsFactory\",\n \"Session\",\n \"authService\",\n \"LoginModalMixin\",\n function ($http, $log, UserSession, Session, HttpAuthInterceptorAuthService, LoginModalMixin) {\n var authService: any = {};\n\n function loginCallback(user_session) {\n $log.debug(\"AuthService logging in user\");\n Session.create({ user: user_session.data });\n HttpAuthInterceptorAuthService.loginConfirmed();\n return user_session;\n }\n\n authService.login = function (credentials) {\n return new UserSession(credentials).create().then(loginCallback);\n };\n\n authService.updateAfterExternalLogin = function () {\n return new UserSession().get().then(loginCallback);\n };\n\n authService.logout = function () {\n $log.debug(\"AuthService logging out\");\n return new UserSession().delete().then(\n function (response) {\n Session.destroy();\n },\n function (response) {\n Session.destroy();\n }\n );\n };\n\n authService.isAuthenticated = function () {\n return !!Session.user;\n };\n\n angular.extend(authService, LoginModalMixin);\n\n return authService;\n },\n ]);\n","//= require ../login.module.js\n\nangular\n .module(\"login\")\n // This stores the user session locally\n .service(\"Session\", [\n \"UsersFactory\",\n \"DefaultCurrency\",\n function (User, DefaultCurrency) {\n this.create = function (user_session) {\n this.user = new User(user_session.user);\n window.user_session = { user: this.user };\n\n DefaultCurrency.currency = user_session.user.currency || \"EUR\";\n };\n this.destroy = function () {\n this.user = null;\n };\n return this;\n },\n ]);\n","//= require ../login.module.js\n\nangular.module(\"login\").service(\"UserSessionsFactory\", [\n \"RailsResource\",\n function (RailsResource) {\n function UserSession() {\n (UserSession).__super__.constructor.apply(this, arguments);\n }\n\n RailsResource.extendTo(UserSession);\n (UserSession).configure({\n url: \"/user_session\",\n name: \"user_session\",\n });\n\n return UserSession;\n },\n]);\n","angular.module(\"login.views\", []);\n","angular.module(\"marital_statuses\", [\"rails\"]);\n","angular.module(\"modals\", [\"modals.modals\"]).directive(\"modalDialog\", [\n \"hotkeys\",\n function (hotkeys) {\n return {\n restrict: \"C\",\n link: function (scope, element, attrs) {\n var tmpKeyOpts = [hotkeys.get(\"esc\"), hotkeys.get(\"mod+h\")];\n hotkeys.del(\"esc\");\n hotkeys.del(\"mod+h\");\n\n scope.$on(\"$destroy\", function (e) {\n if (!hotkeys.get(\"esc\") && tmpKeyOpts[0]) {\n hotkeys.add(tmpKeyOpts[0]);\n }\n\n if (!hotkeys.get(\"mod+h\") && tmpKeyOpts[1]) {\n hotkeys.add(tmpKeyOpts[1]);\n }\n });\n },\n };\n },\n]);\n","angular.module(\"modals.modals\", []);\n","//= require ../modals.module.js\n\nangular.module(\"modals\").factory(\"ModalMixin\", [\n \"$uibModal\",\n function ($uibModal) {\n function ModalMixin() {}\n\n function openConfirmModal(message, pollingService) {\n var modalInstance = $uibModal.open({\n component: \"confirmModal\",\n size: \"sm\",\n resolve: {\n message: function () {\n return message;\n },\n pollingService: function () {\n return pollingService;\n },\n },\n });\n return modalInstance.result;\n }\n\n ModalMixin.extended = function (Resource) {\n Resource.include({\n confirm: openConfirmModal,\n });\n };\n\n return ModalMixin;\n },\n]);\n","angular.module(\"organisation_units.components\", []);\n","angular.module(\"organisation_units.directives\", []);\n","angular.module(\"organisation_units\", [\"organisation_units.directives\", \"organisation_units.components\", \"rails\"]);\n","angular.module(\"outlook.delivery.components\", []);\n","angular.module(\"outlook.delivery\", [\"outlook.delivery.components\"]);\n","//= require ../outlook_delivery.module.js\n\nangular.module(\"outlook.delivery\").service(\"OutlookDelivery\", [\n \"$log\",\n \"$filter\",\n \"$translate\",\n \"Session\",\n function ($log, $filter, $translate, Session) {\n function OutlookDelivery() {}\n\n function UnauthorizedError() {\n $log.debug(\"401 - not authorized\");\n window.alert($filter(\"translate\")(\"NOT_AUTHENTICATED_NOTICE\"));\n }\n\n function BadRequest() {\n $log.debug(\"400 BAD request\");\n }\n\n function ServiceUnavailable() {\n $log.debug(\"503 Service Unavailable\");\n }\n\n OutlookDelivery.handleErrors = function (status) {\n // status exists?\n if (_.isFunction(OutlookDelivery.ERROR_CODES[status])) {\n OutlookDelivery.ERROR_CODES[status]();\n } else {\n $log.debug(status + \" - UndefinedErrorCode\");\n }\n };\n\n OutlookDelivery.ERROR_CODES = {\n 401: UnauthorizedError,\n 400: BadRequest,\n 503: ServiceUnavailable,\n };\n\n return OutlookDelivery;\n },\n]);\n","angular.module(\"persons.components\", []);\n","angular.module(\"persons.modals\", []);\n","//= require ../modals.module.js\n\nangular.module(\"persons.modals\").factory(\"PersonModals\", [\n \"$uibModal\",\n \"$q\",\n function ($uibModal, $q) {\n function orgCompanyChartModal(company) {\n var modalInstance = $uibModal.open({\n component: \"companyOrgChart\",\n size: \"xl\",\n resolve: {\n company: [\n function () {\n return company;\n },\n ],\n },\n });\n\n return modalInstance.result.then(angular.noop, angular.noop);\n }\n\n return {\n openCompanyOrgChart: orgCompanyChartModal,\n };\n },\n]);\n","angular.module(\"persons_graduations.components\", []);\n","angular\n .module(\"persons_graduations\", [\"persons_graduations.components\"])\n\n .factory(\"PersonsGraduationsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n function (RailsResource, railsSerializer) {\n function PersonsGraduation() {\n (PersonsGraduation).__super__.constructor.apply(this, arguments);\n }\n\n RailsResource.extendTo(PersonsGraduation);\n (PersonsGraduation).configure({\n url: \"/persons_graduations\",\n name: \"persons_graduation\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.serializeWith(\"highschool\", \"HighschoolsSerializer\");\n this.serializeWith(\"Course\", \"CoursesSerializer\");\n this.serializeWith(\"Graduation\", \"GraduationsSerializer\");\n this.serializeWith(\"startDate\", \"DateSerializer\");\n this.serializeWith(\"endDate\", \"DateSerializer\");\n }),\n });\n\n return PersonsGraduation;\n },\n ]);\n","angular.module(\"priorities.components\", []);\n","angular.module(\"project_reporting.components\", []);\n","//= require ../project_reportings.module.js\n\nangular.module(\"project_reporting\").filter(\"sumWeekPercentage\", [\n \"$filter\",\n \"ProjectReportingsFactory\",\n function ($filter, ProjectReporting) {\n return function (days, attr) {\n var input = ProjectReporting.sumWeek(days, attr) / ProjectReporting.hoursPerWeek;\n return $filter(\"number\")(input * 100, 2) + \"%\";\n };\n },\n]);\n","//= require ../project_reportings.module.js\n\nangular.module(\"project_reporting\").filter(\"sumWeek\", [\n \"ProjectReportingsFactory\",\n function (ProjectReporting) {\n return ProjectReporting.sumWeek;\n },\n]);\n","//= require ./modals.module.js\n\nangular.module(\"project_reporting.modals\").factory(\"ProjectReportingsModalMixin\", [\n \"$uibModal\",\n function ($uibModal) {\n function ProjectReportingsModalMixin() {}\n\n function editModal(user) {\n var modalInstance = $uibModal.open({\n component: \"kpiOperativeEditModal\",\n size: \"lg\",\n resolve: {\n user: [\n function () {\n return user;\n },\n ],\n },\n });\n\n return modalInstance.result.then(\n function () {},\n function () {}\n );\n }\n\n ProjectReportingsModalMixin.extended = function (Resource) {\n Resource.include({\n edit: editModal,\n });\n };\n\n return ProjectReportingsModalMixin;\n },\n]);\n","angular.module(\"project_reporting.modals\", []);\n","angular.module(\"project_reporting\", [\n \"rails\",\n \"ui.router\",\n \"project_reporting.components\",\n \"project_reporting.modals\",\n \"project_reporting.views\",\n]);\n","//= require ../project_reportings.module.js\n\nangular.module(\"project_reporting\").factory(\"LonglistEntrySerializer\", [\n \"railsSerializer\",\n \"CandidatesProjectsFactory\",\n \"EmployeesCandidatesProjectsFactory\",\n function (railsSerializer, CandidatesProjects, EmployeesCandidatesProjects) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n if (!data) {\n return undefined;\n }\n if (!data.resource_type) {\n return data;\n }\n\n switch (data.resource_type) {\n case \"CandidatesProjects\":\n return new CandidatesProjects(data);\n case \"EmployeesCandidatesProject\":\n return new EmployeesCandidatesProjects(data);\n default:\n return undefined;\n }\n };\n this.serialize = function (data) {\n return data;\n };\n });\n },\n]);\n","//= require ../project_reportings.module.js\n\nangular.module(\"project_reporting\").service(\"ProjectReportingsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"ProjectReportingsModalMixin\",\n \"RailsResourceSnapshotsMixin\",\n function (RailsResource, railsSerializer, ProjectReportingsModalMixin, RailsResourceSnapshotsMixin) {\n function ProjectReporting() {\n (ProjectReporting).__super__.constructor.apply(this, arguments);\n }\n\n ProjectReporting.hoursPerWeek = 41.5;\n ProjectReporting.ProjectDayAttrs = [\"research\", \"qualificationCandidate\", \"qualificationManager\", \"administration\"];\n ProjectReporting.DayAttrs = [\n \"meetingIntern\",\n \"administration\",\n \"meetingManager\",\n \"meetingCandidate\",\n \"training\",\n \"vacation\",\n \"businessDevelopment\",\n ];\n\n ProjectReporting.sumDay = function (day, dayAttrs) {\n return _.reduce(\n dayAttrs,\n function (memo, attr) {\n return memo + (day[attr] || 0);\n },\n 0\n );\n };\n\n ProjectReporting.sumWeek = function (inputDays, attr) {\n if (_.isString(attr)) {\n return _.reduce(\n inputDays,\n function (memo, day) {\n return memo + (day[attr] || 0);\n },\n 0\n );\n } else {\n return _.reduce(\n inputDays,\n function (memo, day) {\n return memo + ProjectReporting.sumDay(day, attr);\n },\n 0\n );\n }\n };\n\n ProjectReporting.sumProjectsWorkingDay = function (projects, dayIndex) {\n return _.reduceRight(\n projects,\n function (memo, project) {\n return memo + ProjectReporting.sumDay(project.days[dayIndex], ProjectReporting.ProjectDayAttrs);\n },\n 0\n );\n };\n\n ProjectReporting.whiteboardAttributes = {\n sales: {\n title: \"SALES\",\n show: false,\n class: \"responsible\",\n sortField: \"consultant.full_name.not_analyzed\",\n },\n researcher: {\n title: \"RESEARCHER\",\n show: true,\n class: \"responsible\",\n sortField: \"researcher.full_name.not_analyzed\",\n },\n candidate: {\n title: \"CANDIDATE\",\n show: true,\n class: \"title\",\n sortField: \"candidate.full_name_reverse_with_title.not_analyzed\",\n },\n company: {\n title: \"COMPANY\",\n show: true,\n class: \"title\",\n sortField: \"company.name\",\n },\n employees: {\n title: \"CONTACT_PERSON\",\n show: true,\n class: \"title\",\n //sortField: 'project.employees.full_name_reverse_with_title.not_analyzed'\n },\n job_type: {\n title: \"PROJECT_TYPE\",\n show: true,\n class: \"tag\",\n sortField: \"project.job_type.id\",\n },\n processStatus: {\n title: \"PROCESS\",\n class: \"select\",\n show: true,\n sortField: \"status\",\n },\n project: {\n title: \"PROJECT\",\n show: true,\n class: \"title\",\n sortField: \"project.title.not_analyzed\",\n },\n created_at: {\n title: \"CREATED_AT\",\n show: false,\n class: \"date\",\n sortField: \"project.created_at\",\n },\n longlist: {\n title: \"LONGLIST\",\n show: true,\n class: \"date\",\n sortField: \"longlist\",\n },\n qualification: {\n title: \"QUALIFICATION\",\n show: true,\n class: \"date\",\n sortField: \"qualification\",\n },\n shortlist: {\n title: \"SHORTLIST\",\n show: true,\n class: \"date\",\n sortField: \"shortlist\",\n },\n sendout: {\n title: \"SENDOUT\",\n show: true,\n class: \"date\",\n sortField: \"sendout\",\n },\n firstInterview: {\n title: \"FIRST_INTERVIEWS\",\n show: true,\n class: \"date\",\n sortField: \"first_interview\",\n },\n secondInterview: {\n title: \"SECOND_INTERVIEWS\",\n show: true,\n class: \"date\",\n sortField: \"second_interview\",\n },\n closing: {\n title: \"Closing\",\n show: true,\n class: \"date\",\n sortField: \"closing\",\n },\n deal: {\n title: \"WON_LOST\",\n show: false,\n class: \"date\",\n sortField: \"deal\", //should sort by 2 fields ?\n },\n };\n\n RailsResource.extendTo(ProjectReporting);\n (ProjectReporting).configure({\n url: \"/project_reporting\",\n name: \"project_reporting\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.serializeWith(\"shortlist\", \"KPISerializer\");\n this.serializeWith(\"longlist\", \"KPISerializer\");\n this.serializeWith(\"sendout\", \"KPISerializer\");\n this.serializeWith(\"firstInterview\", \"KPISerializer\");\n this.serializeWith(\"secondInterview\", \"KPISerializer\");\n this.serializeWith(\"closing\", \"KPISerializer\");\n this.serializeWith(\"deal\", \"KPISerializer\");\n this.serializeWith(\"out\", \"KPISerializer\");\n this.serializeWith(\"amountCoveredIstPerYear\", \"MoneySerializer\");\n this.serializeWith(\"amountCoveredSollPerYear\", \"MoneySerializer\");\n this.serializeWith(\"longlistEntry\", \"LonglistEntrySerializer\");\n }),\n });\n\n (ProjectReporting).extend(ProjectReportingsModalMixin);\n (ProjectReporting).extend(RailsResourceSnapshotsMixin);\n\n return ProjectReporting;\n },\n]);\n","angular.module(\"project_reporting.views\", []);\n","angular.module(\"projects.components\", []);\n","angular.module(\"projects.modals\", [\"rails\", \"ui.router\", \"users\"]);\n","//= require ../modals.module.js\n\nangular.module(\"projects.modals\").factory(\"ProjectsModalMixin\", [\n \"$uibModal\",\n \"$filter\",\n \"poller\",\n function ($uibModal, $filter, poller) {\n function ProjectsModalMixin() {}\n\n function pitchModal(_this, resolves) {\n var modalInstance = $uibModal.open({\n component: \"pitchModal\",\n size: \"lg\",\n resolve: resolves,\n });\n\n return modalInstance.result.then(\n function (pitchEmail) {\n pitchEmail.callback.then(function (pitchCreatedRes) {\n var pollingService = poller.get(pitchCreatedRes.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"CONFIRM_SENT_PITCH\"), pollingService).then(\n function (res) {\n if (res) {\n _this.sendDocument(\"send_pitch\", { params: pitchCreatedRes.data });\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n });\n },\n function () {}\n );\n }\n\n function openChooseCandidateModal(options) {\n options = options || {};\n _.defaults(options, { project: this, excludes: [], autocomplete: false, cpjoins: this.candidatesProjects });\n var _this = this;\n\n var modalInstance = $uibModal.open({\n component: \"candidateSearchModal\",\n size: \"lg\",\n resolve: {\n options: function () {\n return options;\n },\n },\n });\n\n return modalInstance.result;\n }\n\n function openActiveProcessesModal(_this, resolves) {\n var modalInstance = $uibModal.open({\n component: \"activeProcessesModal\",\n size: \"lg\",\n resolve: resolves,\n });\n\n return modalInstance.result.then(\n function (projectActiveProcessesEmail) {\n projectActiveProcessesEmail.callback.then(\n function (res) {\n var pollingService = poller.get(res.data.url, { delay: 1000 });\n _this.confirm($filter(\"translate\")(\"CONFIRM_SENT_CURRENT_PROJECTS\"), pollingService).then(\n function (res) {\n if (res) {\n _this.sendDocument(\"send_active_processes\");\n }\n pollingService.remove();\n },\n function () {\n pollingService.remove();\n }\n );\n },\n function () {}\n );\n },\n function () {}\n );\n }\n\n function openPitchModal() {\n var _this = this;\n var resolves = {\n managers: function () {\n return _this.employees;\n },\n project: _this,\n };\n\n return pitchModal(_this, resolves);\n }\n\n function editSalesModal(callback) {\n var project = this;\n\n var modalInstance = $uibModal.open({\n component: \"editSalesModal\",\n size: \"lg\",\n resolve: {\n project: [\n \"ProjectsFactory\",\n function (Project) {\n return Project.get(project.id);\n },\n ],\n },\n });\n\n return modalInstance.result.then(\n function (editedProject) {\n if (editedProject.unsnappedChanges()) {\n project.updateSales(editedProject.projectManager);\n }\n callback(true);\n\n return true;\n },\n function () {\n callback(false);\n\n return false;\n }\n );\n }\n\n function openInitiativeActiveProcessesModal() {\n var _this = this;\n var resolves = {\n managers: function () {\n return _this.employees;\n },\n project: _this,\n };\n\n return openActiveProcessesModal(_this, resolves);\n }\n\n function getDocumentExportModal(project) {\n var modalInstance = $uibModal.open({\n component: \"documentExportModal\",\n size: \"sm\",\n resolve: {\n project: function () {\n return project;\n },\n },\n });\n\n return modalInstance.result;\n }\n\n ProjectsModalMixin.extended = function (Resource) {\n Resource.include({\n openChooseCandidateModal: openChooseCandidateModal,\n openInitiativeActiveProcessesModal: openInitiativeActiveProcessesModal,\n getDocumentExportModal: getDocumentExportModal,\n editSales: editSalesModal,\n openPitch: openPitchModal,\n });\n };\n\n return ProjectsModalMixin;\n },\n]);\n","angular.module(\"projects\", [\n \"projects.components\",\n \"projects.modals\",\n \"projects.views\",\n \"companies.components\",\n \"rails\",\n \"ui.router\",\n \"users\",\n \"languages\",\n]);\n","//= require ../projects.module.js\n\nangular.module(\"projects\").factory(\"ProjectsHotkeys\", [\n \"hotkeys\",\n \"$state\",\n \"$rootScope\",\n function (hotkeys, $state, $rootScope) {\n return {\n registerHotkeys: function () {\n $(window).keydown(function (event) {\n if (event.ctrlKey && event.keyCode == 80) {\n // ctrl+p\n event.preventDefault();\n }\n });\n\n hotkeys.add({\n combo: \"mod+p s\",\n description: \"Nach Projekten suchen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $rootScope.$broadcast(\"projectsSearch\");\n },\n });\n\n hotkeys.add({\n combo: \"mod+p c\",\n description: \"Ein Projekt erstellen\",\n callback: function (event, hotkey) {\n event.preventDefault();\n $state.go(\"root.projects.new\");\n },\n });\n },\n deregisterHotkeys: function () {\n if ($state.current.name.indexOf(\"root.projects\") > -1) {\n hotkeys.del(\"mod+p c\");\n hotkeys.del(\"mod+p s\");\n }\n },\n };\n },\n]);\n","//= require ../projects.module.js\n\nangular.module(\"projects\").service(\"ProjectsFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"ProjectsModalMixin\",\n \"TextkernelModalMixin\",\n \"railsSerializer\",\n \"CompaniesFactory\",\n \"CandidatesProjectsFactory\",\n \"UsersFactory\",\n \"ActionsFactory\",\n \"$sce\",\n \"$rootScope\",\n \"$state\",\n \"Highlighter\",\n \"$http\",\n \"ModalMixin\",\n \"moment\",\n \"$translate\",\n \"$filter\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n ProjectsModalMixin,\n TextkernelModalMixin,\n railsSerializer,\n Company,\n CandidatesProjects,\n User,\n Action,\n $sce,\n $rootScope,\n $state,\n Highlighter,\n $http,\n ModalMixin,\n moment,\n $translate,\n $filter\n ) {\n function Project() {\n (Project).__super__.constructor.apply(this, arguments);\n this.resourceType = \"Project\";\n this.name = this.title;\n this.candidatesProjects = this.candidatesProjects || [];\n this.employees = this.employees || [];\n\n this.params = function () {\n return { project_id: this.id };\n };\n\n this.extendByDiff = function (projectDiffData) {\n var mappedTags = _.map(projectDiffData.taggings, function (tagging) {\n return tagging.tag;\n });\n angular.extend(this, _.omit(projectDiffData, \"changes\"), {\n tags: _.reject(mappedTags, _.matcher({ type: \"ComputerSkill\" })),\n computerSkills: _.where(mappedTags, { type: \"ComputerSkill\" }),\n });\n\n this.$attributeChanges = [];\n _.chain(this._prepSnapshot())\n .keys()\n .omit(\"$attribute_changes\")\n .each(\n function (attrKey) {\n this.attributeChanged(attrKey);\n }.bind(this)\n );\n };\n\n this.attributeChanged = function (attribute) {\n this.$attributeChanges = this.$attributeChanges || {};\n\n if (_.isUndefined(this.$attributeChanges[attribute])) {\n if (_.isEmpty(this.$snapshots)) {\n this.$attributeChanges[attribute] = false;\n } else {\n this.$attributeChanges[attribute] = !angular.equals(\n _.last(this.$snapshots)[attribute],\n this._prepSnapshot()[attribute]\n );\n }\n }\n return this.$attributeChanges[attribute];\n };\n\n this.mapSearchScopesToHumanReadable = Project.mapSearchScopesToHumanReadable;\n\n this.addCandidate = function (candidate) {\n // create candidates_projects join model\n var cp = new CandidatesProjects({ project: this, candidate: candidate });\n cp.projectId = this.id;\n cp.candidateId = candidate.id;\n return cp\n .save()\n .then(\n function (created_cp) {\n candidate.candidatesProjects.push(created_cp);\n this.candidatesProjects.push(created_cp);\n $rootScope.$broadcast(\"candidate_add_to_project\");\n $rootScope.$broadcast(\"candidate_action_changed_\" + candidate.id);\n return created_cp;\n }.bind(this)\n )\n .catch(function (result) {\n if (result.status == 409) {\n // conflict if already completed\n return cp;\n } else {\n throw result;\n }\n });\n // TODO create action with corresponding action type to update the xs process view on the candidates list\n };\n\n this.removeCandidate = function (candidates_projects) {\n candidates_projects\n .delete()\n .then(function (ret) {\n candidates_projects.deleted = true;\n candidates_projects.actions = ret.actions;\n $rootScope.$broadcast(\"candidate_remove_from_project\");\n // $rootScope.$broadcast(\"candidate_remove_from_project\");\n })\n .catch(function (ret) {\n if (ret.status == 409) {\n window.alert($filter(\"translate\")(\"REMOVE_FROM_LONGLIST_FAIL\"));\n candidates_projects.status = _.findWhere(CandidatesProjects.statuses, { id: 4 });\n candidates_projects.projectStatusUpdate();\n }\n });\n };\n\n this.createSendout = function (employee) {\n this.openChooseCandidateModal().then(function (cpjoin) {\n $state.go(\"root.candidates.show.expert_profile.new\", cpjoin.params());\n });\n };\n\n this.updateSales = function (sales) {\n this.projectManager = sales;\n this.save().then(\n function (resProject) {\n _.extend(this, resProject);\n }.bind(this)\n );\n };\n\n this.addInterviewDate = function (employee) {\n this.openChooseCandidateModal().then(function (cpjoin) {\n cpjoin.addInterviewDate(employee);\n });\n };\n\n this.sendContractOfferToEmployee = function (employee) {\n this.openChooseCandidateModal().then(function (cpjoin) {\n employee.sendContractOfferModal(cpjoin);\n });\n };\n\n this.getCpjoin = function (candidate) {\n return _.find(this.candidatesProjects, function (cpjoin) {\n return cpjoin.candidate.id == candidate.id;\n });\n };\n\n this.openEventConfirmationModal = function (action) {\n action.candidate.openEventConfirmationModal();\n };\n\n this.saveCustomNote = function (action) {\n Action.saveCustomNote(this, action);\n }.bind(this);\n\n this.getShareLink = function (project_id) {\n return $http.get(this.$url(\"url_with_authtoken\"), { params: { project_id: project_id } });\n };\n\n this.createMessage = function (actionRoute, emailParams) {\n var params = angular.merge({ id: this.id }, emailParams);\n return $http.post(this.$url(actionRoute + \".json\"), { project: params });\n };\n\n if (_.isString(this.description)) {\n this.description = $sce.trustAsHtml(\n this.description\n .replace(/\"/g, \"'\")\n .replace(/(background: url\\('.*'\\).*;)/g, \"\")\n .replace(/font-family: ('.*',)/g, \"\")\n );\n }\n\n this.$class = Project;\n\n this.companyWatcher = function (nv, ov) {\n if (_.isEmpty(this.transactionBasis)) {\n this.transactionBasis = _.chain(nv.transactionBasis)\n .sortBy(function (transactionBasis) {\n return transactionBasis.createdAt;\n })\n .last()\n .omit(\"createdAt\")\n .value();\n this.transactionBasis = _.isEmpty(this.transactionBasis) ? undefined : this.transactionBasis;\n }\n\n if (ov && nv.id != ov.id) {\n this.employees = [];\n }\n };\n\n this.requirements = function () {\n if (this.initiativeApplicationProject) {\n //requirements =\n return {\n yellow: [\"REQ_YELLOW_NAME\", \"REQ_YELLOW_ACTIVE\", \"REQ_YELLOW_MANAGER\"],\n green: [\"REQ_GREEN_SENDOUT\"],\n };\n } else {\n //requirements =\n return {\n yellow: [\"REQ_YELLOW_NAME\", \"REQ_YELLOW_ACTIVE\", \"REQ_YELLOW_DESCRIPTION\", \"REQ_YELLOW_MANAGER\"],\n green: [\"REQ_GREEN_PRIORITY\"],\n };\n }\n };\n\n this.togglePinned = function (event) {\n this.pinned = !this.pinned;\n (Project).$put(this.$url(\"update_pinned.json\"), this).then(function (result) {\n _.extend(this, result);\n });\n };\n\n this.sendDocument = function (actionRoute, emailParams) {\n (Project).$post(this.$url(actionRoute + \".json\"), emailParams).then(\n function (resProject) {\n $rootScope.$broadcast(\"project_action_changed_\" + this.id);\n }.bind(this)\n );\n }.bind(this);\n\n this.getExpireDate = function () {\n return moment(this.updatedAt).add(4, \"weeks\").fromNow();\n };\n\n this.getCriticalTimespanCrossed = function () {\n var a = moment();\n var b = moment(this.updatedAt).add(4, \"weeks\");\n if (b.diff(a, \"days\") < 7) {\n return true;\n } else {\n return false;\n }\n };\n\n this.updateExpireDate = function () {\n this.save().then(\n function (resProject) {\n _.extend(this, resProject);\n }.bind(this)\n );\n };\n\n this.filterDepartments = function () {\n return { job_category_ids: { job_category_ids: _.pluck(this.jobCategories, \"id\") } };\n }.bind(this);\n }\n\n Project.attributeNames = {\n title: \"ATTR_TITLE\",\n taggings: \"ATTR_TAGS\",\n languages: \"ATTR_LANGUAGES\",\n companyId: \"ATTR_COMPANY_DATA\",\n tasksDescription: \"ATTR_TASKS\",\n requirementsDescription: \"ATTR_REQUIREMENTS\",\n };\n\n Project.mapAttribute = function (attr) {\n return $filter(\"translate\")(Project.attributeNames[attr]);\n };\n\n Project.statuses = [\"active\", \"inactive\", \"completed\"];\n\n Project.mapSearchScopesToHumanReadable = function (scopeDescriptor) {\n switch (scopeDescriptor) {\n case \"title.standard\":\n return \"MAP_READ_TITLE\";\n case \"description.de\":\n return \"MAP_READ_PROJECT_DESCRIPTION\";\n case \"tags.name\":\n return \"MAP_READ_TAG\";\n case \"jobCategories.name\":\n return \"MAP_READ_JOB_CATEGORY\";\n case \"allActions.description.de\":\n return \"MAP_READ_HISTORY\";\n case \"responsibleUser.fullName.notAnalyzed\":\n case \"responsibleUser.symbole\":\n return \"MAP_READ_RESPONSIBLE_USER\";\n case \"researchConsultants.fullName.notAnalyzed\":\n case \"researchConsultants.symbole\":\n return \"MAP_READ_RESEARCHERS\";\n case \"projectStatus\":\n return \"MAP_READ_STATUS\";\n case \"company.name\":\n case \"company.name.standard\":\n case \"company.name.de\":\n return \"MAP_READ_COMPANY\";\n case \"urgency\":\n return \"MAP_READ_URGENCY\";\n case \"jobOffers.name\":\n case \"jobOffers.name.de\":\n case \"jobOffers.name.standard\":\n return \"MAP_READ_JOB_OFFER\";\n case \"priority\":\n return \"MAP_READ_PRIORITY\";\n default:\n return undefined;\n }\n };\n\n Project.defaultTableAttributes = {\n id: {\n title: \"TABLE_ID\",\n show: true,\n pinned: true,\n menu: true,\n class: \"id\",\n sortField: \"id\",\n },\n title: {\n title: \"TABLE_PROJECT_TITLE\",\n show: true,\n fixedWidth: true,\n class: \"title\",\n sortField: \"title.not_analyzed\",\n },\n projectManager: {\n title: \"TABLE_RESPONSIBLE_USER\",\n show: true,\n class: \"responsible\",\n sortField: \"responsible_user.full_name.not_analyzed\",\n },\n jobType: {\n title: \"TABLE_PROJECT_TYPE\",\n show: true,\n class: \"tag\",\n sortField: \"job_type.id\",\n },\n kpis: {\n title: \"TABLE_KPIS\",\n show: true,\n class: \"kpis\",\n },\n tags: {\n title: \"TABLE_TAGS\",\n show: true,\n class: \"tags\",\n },\n editableStatus: {\n title: \"TABLE_STATUS\",\n show: true,\n class: \"select\",\n sortField: \"project_status\",\n },\n priority: {\n title: \"TABLE_PRIORITY\",\n show: false,\n class: \"priority\",\n sortField: \"priority\",\n },\n createdAt: {\n title: \"TABLE_CREATED_AT\",\n show: false,\n class: \"date\",\n sortField: \"created_at\",\n },\n startDate: {\n title: \"TABLE_START_DATE\",\n show: false,\n class: \"date\",\n sortField: \"start_date\",\n },\n expiresAt: {\n title: \"TABLE_EXPIRES_IN\",\n show: false,\n class: \"date\",\n sortField: \"updated_at\",\n },\n };\n\n RailsResource.extendTo(Project);\n (Project).configure({\n url: \"/projects\",\n name: \"project\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.nestedAttribute(\"allLanguages\");\n this.serializeWith(\"allLanguages\", \"LanguagesSerializer\");\n this.resource(\"projectManager\", \"UsersFactory\");\n this.resource(\"researchConsultants\", \"UsersFactory\");\n this.serializeWith(\"transactionBasis\", \"CompaniesTransactionBasesSerializer\");\n this.serializeWith(\"companiesTransactionBasis\", \"CompaniesTransactionBasesSerializer\");\n this.resource(\"company\", \"CompaniesFactory\");\n this.resource(\"candidatesProjects\", \"CandidatesProjectsFactory\");\n this.serializeWith(\"expiresAt\", \"DateSerializer\");\n this.serializeWith(\"createdAt\", \"DateSerializer\");\n this.serializeWith(\"startDate\", \"DateSerializer\");\n this.serializeWith(\"conclusionOfContractAt\", \"DateSerializer\");\n this.resource(\"actions\", \"ActionsFactory\");\n this.resource(\"employees\", \"EmployeesFactory\");\n this.resource(\"invoiceRecipient\", \"EmployeesFactory\");\n this.resource(\"jobOffers\", \"JobOfferFactory\");\n this.serializeWith(\"jobType\", \"JobTypesSerializer\");\n this.serializeWith(\"tags\", \"TagSerializer\");\n this.serializeWith(\"description\", \"SanitizeSerializer\");\n\n this.rename(\"documents\", \"projectDocuments\");\n this.resource(\"documents\", \"DocumentsFactory\");\n\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.resource(\"invoices\", \"InvoicesFactory\");\n\n this.serializeWith(\"priority\", \"PrioritySerializer\");\n this.serializeWith(\"salaryFixMax\", \"MoneySerializer\");\n this.serializeWith(\"salaryFixMin\", \"MoneySerializer\");\n this.serializeWith(\"salaryVariableMax\", \"MoneySerializer\");\n this.serializeWith(\"salaryVariableMin\", \"MoneySerializer\");\n this.serializeWith(\"invoicesDiff\", \"MoneySerializer\");\n this.serializeWith(\"country\", \"CountrySerializer\");\n\n this.exclude(\"$snapshots\");\n }),\n });\n (Project).extend(RailsResourceSnapshotsMixin);\n (Project).extend(ProjectsModalMixin);\n (Project).extend(ModalMixin);\n (Project).extend(TextkernelModalMixin);\n (Project).extend(Highlighter);\n\n return Project;\n },\n]);\n","angular.module(\"projects.views\", []);\n","angular.module(\"provisions\", [\"rails\"]);\n","//= require ../provisions.module.js\n\nangular.module(\"provisions\").service(\"ProvFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n function (RailsResource, railsSerializer) {\n function Provision() {\n (Provision).__super__.constructor.apply(this, arguments);\n\n this.needsContractDraft = function (deal) {\n return deal.closing && deal.needsContractDraft && !this.isFreelancer;\n };\n\n this.contractDraftParams = function () {\n const contractDraftParams = {\n contract_draft: {\n candidate_id: this.candidate.id,\n provision_id: this.id,\n start_date: this.startDate,\n end_date: this.endDate,\n vacation_days: this.holidays,\n hours_per_week: this.hoursPerWeek,\n temporary: false,\n organisation_unit_id: this.candidate.organisationUnit?.id,\n },\n };\n return contractDraftParams;\n }.bind(this);\n }\n\n RailsResource.extendTo(Provision);\n (Provision).configure({\n url: \"/provisions\",\n name: \"provision\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.serializeWith(\"probation\", \"CancelationPeriodSerializer\");\n\n this.resource(\"candidateProvisionConsultant\", \"UsersFactory\");\n this.resource(\"customerProvisionConsultant\", \"UsersFactory\");\n this.resource(\"candidateProcessProvisionConsultant\", \"UsersFactory\");\n this.resource(\"processProvisionConsultant\", \"UsersFactory\");\n\n this.serializeWith(\"grossPerAnno\", \"MoneySerializer\");\n this.serializeWith(\"additionalCompensation\", \"MoneySerializer\");\n this.serializeWith(\"fixedAmountCoveredIst\", \"MoneySerializer\");\n this.serializeWith(\"hoursClient\", \"MoneySerializer\");\n this.serializeWith(\"hoursFreelancer\", \"MoneySerializer\");\n this.serializeWith(\"internalCost\", \"MoneySerializer\");\n this.serializeWith(\"assessmentBasis\", \"MoneySerializer\");\n this.serializeWith(\"amountCoveredIst\", \"MoneySerializer\");\n this.serializeWith(\"netSales\", \"MoneySerializer\");\n this.serializeWith(\"travelCostsLumpSum\", \"MoneySerializer\");\n this.serializeWith(\"travelTimeHourlyRate\", \"MoneySerializer\");\n this.serializeWith(\"startDate\", \"DateSerializer\");\n this.serializeWith(\"endDate\", \"DateSerializer\");\n }),\n });\n\n return Provision;\n },\n]);\n","angular.module(\"quicklists.components\", []);\n","//= require ../modals.module.js\n\nangular.module(\"quicklists.modals\").factory(\"QuicklistsModalMixin\", [\n \"$uibModal\",\n function ($uibModal) {\n function QuicklistsModalMixin() {}\n\n function openModal(_this, quicklistsResolve) {\n var modalInstance = $uibModal.open({\n component: \"chooseQuicklistModal\",\n size: \"lg\",\n resolve: {\n quicklists: quicklistsResolve,\n },\n });\n\n modalInstance.result.then(\n function (quicklists) {\n // add to quicklist\n _.chain(quicklists)\n .select(function (quicklist) {\n return quicklist.selected;\n })\n .each(function (quicklist) {\n quicklist.add(_this);\n });\n\n // delete from quicklist\n _.chain(quicklists)\n .reject(function (quicklist) {\n return quicklist.selected;\n })\n .each(function (quicklist) {\n quicklist.findAndDeleteEntry(_this);\n });\n },\n function () {\n //$log.info('Modal dismissed at: ' + new Date());\n }\n );\n }\n\n QuicklistsModalMixin.extended = function (Resource) {\n Resource.extend({\n openModal: openModal,\n });\n };\n\n return QuicklistsModalMixin;\n },\n]);\n","angular.module(\"quicklists.modals\", []);\n","angular.module(\"quicklists\", [\"rails\", \"ui.router\", \"quicklists.modals\", \"quicklists.components\", \"quicklists.views\"]);\n","//= require ../quicklists.module.js\n\nangular.module(\"quicklists\").service(\"QuicklistsFactory\", [\n \"RailsResource\",\n \"RailsResourceSnapshotsMixin\",\n \"railsSerializer\",\n \"Session\",\n \"quicklistsSingleton\",\n \"$q\",\n \"$state\",\n \"$log\",\n \"$filter\",\n \"QuicklistsModalMixin\",\n \"$rootScope\",\n \"EditUtilMixin\",\n \"makeCollectionProxy\",\n \"$injector\",\n function (\n RailsResource,\n RailsResourceSnapshotsMixin,\n railsSerializer,\n Session,\n quicklistsSingleton,\n $q,\n $state,\n $log,\n $filter,\n QuicklistsModalMixin,\n $rootScope,\n EditUtilMixin,\n makeCollectionProxy,\n $injector\n ) {\n function Quicklist() {\n (Quicklist).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return { quicklist_id: this.id };\n };\n\n this.togglePinned = function (event) {\n this.pinned = !this.pinned;\n this.save();\n };\n\n this.isReadOnly = function () {\n return this.readOnly && this.owner.id != Session.user.id;\n };\n\n this.isListOwner = function () {\n return this.owner.id == Session.user.id;\n };\n\n this.isDroppableQuicklist = function (scope) {\n if (scope.cpjoin) {\n return (\n (scope.cpjoin.candidate && (!this.type || this.type == \"CandidateQuicklist\")) ||\n (scope.employee && (!this.type || this.type == \"EmployeeQuicklist\")) ||\n (scope.company && (!this.type || this.type == \"CompanyQuicklist\"))\n );\n }\n return (\n (scope.candidate && (!this.type || this.type == \"CandidateQuicklist\")) ||\n (scope.employee && (!this.type || this.type == \"EmployeeQuicklist\")) ||\n (scope.company && (!this.type || this.type == \"CompanyQuicklist\"))\n );\n };\n\n this.add = function (newMember) {\n var list;\n function errorHandler(error) {\n EditUtilMixin.onSaveError();\n list.pop();\n\n delete this.patch;\n return false;\n }\n\n if (_.contains([\"CandidatesProjects\"], newMember.resourceType)) {\n newMember = newMember.candidate;\n }\n\n if (\n !_.contains([\"Candidate\", \"Employee\", \"Company\"], newMember.resourceType) ||\n (this.type && newMember.resourceType + \"Quicklist\" != this.type)\n ) {\n return false;\n }\n\n if (!this.type) {\n this.type = newMember.resourceType + \"Quicklist\";\n }\n\n if (_.indexOf(this.entryIds, newMember.id) < 0) {\n this.entryIds = this.entryIds || [];\n this.entryIds.push(newMember.id);\n list = this.entryIds;\n\n this.patch = { op: \"add\", value: newMember };\n this.save().then(\n function (res) {\n this.updatedAt = res.updatedAt;\n\n this.loadEntries();\n }.bind(this),\n errorHandler\n );\n\n delete this.patch;\n return true;\n }\n };\n\n this.size = function () {\n return this.entryIds.length;\n };\n\n this.fullList = function () {\n return this.entries;\n };\n\n var Candidate, Employee, Company;\n\n this.loadEntries = function (params) {\n if (!Candidate) {\n Candidate = $injector.get(\"CandidatesFactory\");\n }\n if (!Employee) {\n Employee = $injector.get(\"EmployeesFactory\");\n }\n if (!Company) {\n Company = $injector.get(\"CompaniesFactory\");\n }\n\n var queryFunction = function (params) {\n var url = \"quicklists/\" + this.id + \"/entries\";\n switch (this.type) {\n case \"CandidateQuicklist\":\n return Candidate.$get(url, params);\n case \"EmployeeQuicklist\":\n return Employee.$get(url, params);\n case \"CompanyQuicklist\":\n return Company.$get(url, params);\n default:\n var dfd = $q.defer();\n dfd.resolve([]);\n return dfd.promise;\n }\n }.bind(this);\n\n return makeCollectionProxy(queryFunction, params).then(\n function (entries) {\n this.entries = entries;\n }.bind(this)\n );\n };\n\n this.deleteWrapper = function () {\n if (window.confirm($filter(\"translate\")(\"DELETE_QUICKLIST_CONFIRMATION\"))) {\n this.delete().then(\n function (result) {\n quicklistsSingleton.data = _.reject(\n quicklistsSingleton.data,\n function (quick) {\n return quick.id == this.id;\n }.bind(this)\n );\n $rootScope.$broadcast(\"updatedQuicklist\");\n $state.go(\"root.home\");\n }.bind(this)\n );\n }\n };\n\n this.deleteEntry = function (index) {\n var entry;\n var list;\n function errorHandler() {\n EditUtilMixin.onSaveError();\n list.splice(index, 0, entry);\n }\n\n entry = this.entryIds.splice(index, 1);\n list = this.entryIds;\n\n this.save().then(\n function (quicklist) {\n $log.debug(\"successfully deleted quicklist entry\");\n\n // ## Update Frontend List\n this.loadEntries();\n Quicklist.updateCache(this);\n }.bind(this),\n errorHandler\n );\n };\n\n this.findAndDeleteEntry = function (entryForDelete) {\n var index = _.indexOf(this.entryIds, entryForDelete.id);\n if (index >= 0) {\n this.patch = { op: \"remove\", value: entryForDelete };\n this.deleteEntry(index);\n delete this.patch;\n }\n };\n\n this.getListTemplate = function (templateType) {\n templateType = templateType || \"list\";\n switch (this.type) {\n case \"CandidateQuicklist\":\n return \"quicklist-candidates-\" + templateType;\n case \"EmployeeQuicklist\":\n return \"quicklist-employees-\" + templateType;\n case \"CompanyQuicklist\":\n return \"quicklist-companies-\" + templateType;\n }\n };\n }\n\n Quicklist.draggingHelper = function () {\n return $('
    ');\n };\n\n Quicklist.startCallback = function (event, ui, title) {\n ui.helper.html(title);\n };\n\n Quicklist.getAll = function () {\n var dfd = $q.defer();\n\n if (quicklistsSingleton.data) {\n dfd.resolve(quicklistsSingleton.data);\n } else {\n (Quicklist).query().then(function (response) {\n quicklistsSingleton.data = response;\n dfd.resolve(response);\n });\n }\n return dfd.promise;\n };\n\n Quicklist.clearCache = function () {\n quicklistsSingleton.data = null;\n };\n\n Quicklist.updateCache = function (quicklist) {\n Quicklist.getAll().then(function (quicklists) {\n var ql = _.findWhere(quicklists, { id: quicklist.id });\n _.extend(ql, quicklist);\n });\n };\n\n Quicklist.findById = function (id) {\n if (!id) {\n return undefined;\n }\n return Quicklist.getAll().then(function (quicklists) {\n var ql = _.findWhere(quicklists, { id: id });\n if (!ql.$outOfSync) {\n return ql;\n } else {\n return (Quicklist).get({ id: id }).then(function (quicklist) {\n var index = _.indexOf(quicklistsSingleton.data, _.findWhere(quicklistsSingleton.data, { id: id }));\n var cache = quicklistsSingleton.data.splice(index, 1, quicklist);\n return quicklist;\n });\n }\n });\n };\n\n RailsResource.extendTo(Quicklist);\n (Quicklist).configure({\n url: \"/quicklists\",\n name: \"quicklist\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.exclude(\"$snapshots\", \"listItems\");\n }),\n });\n (Quicklist).extend(RailsResourceSnapshotsMixin);\n (Quicklist).extend(QuicklistsModalMixin);\n\n return Quicklist;\n },\n]);\n","//= require ../quicklists.module.js\n\nangular.module(\"quicklists\").value(\"quicklistsSingleton\", { data: null });\n","angular.module(\"quicklists.views\", []);\n","angular.module(\"regions\", [\"rails\"]);\n","angular.module(\"researcher_commissions.components\", []);\n","angular.module(\"researcher_commissions\", [\"researcher_commissions.components\"]);\n","//= require ../researcher_commissions.module.js\n\nangular.module(\"researcher_commissions\").service(\"ResearcherCommissionsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n function (RailsResource, railsSerializer) {\n function ResearcherCommission() {\n (ResearcherCommission).__super__.constructor.apply(this, arguments);\n }\n\n RailsResource.extendTo(ResearcherCommission);\n (ResearcherCommission).configure({\n url: \"/deals/{{dealId}}/researcher_commissions/{{id}}\",\n name: \"researcher_commission\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"researcher\", \"UsersFactory\");\n this.serializeWith(\"commission\", \"MoneySerializer\");\n }),\n });\n\n return ResearcherCommission;\n },\n]);\n","angular.module(\"saved_searches.components\", []);\n","angular.module(\"saved_searches\", [\"rails\", \"saved_searches.components\"]);\n","//= require ../saved_searches.module.js\n\nangular.module(\"saved_searches\").factory(\"AdvancedSearchConditionSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return this.deserializeData(data);\n };\n this.serialize = function (data) {\n return _.chain(data)\n .map(function (c) {\n return _.omit(c, \"suggestions\");\n })\n .value();\n };\n });\n },\n]);\n","// RailsResource\n// interface SavedSearch {\n// [key: string]: any;\n// getAll(type?: string): any;\n// }\n\nangular.module(\"saved_searches.components\").service(\"SavedSearchesFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"savedSearchesSingleton\",\n \"ResourceDependencyInjector\",\n function (RailsResource, railsSerializer, savedSearchesSingleton, ResourceDependencyInjector) {\n function SavedSearch() {\n (SavedSearch).__super__.constructor.apply(this, arguments);\n\n this.params = function () {\n return {\n saved_search_id: this.id,\n q: null,\n advanced: null,\n sort_params: null,\n };\n };\n\n this.addAdvancedSearchCondition = function () {\n this.conditions.push(angular.copy(this.defaultCondition));\n };\n\n this.deleteAdvancedSearchCondition = function (index) {\n this.conditions.splice(index, 1);\n if (this.conditions.length === 0) {\n this.addAdvancedSearchCondition();\n }\n };\n\n this.isDefault = function () {\n return (\n !this.id &&\n _.isEqual(this.conditions, [this.defaultCondition]) &&\n this.locationDistance == 50 &&\n this.cvLastUpdateInWeeksAgo == \"24\" &&\n this.sort_params == -1\n );\n };\n\n this.beforeStringify = function () {\n var _this = _.omit(this, \"user\");\n _this.conditions = _.chain(_this.conditions)\n .map(function (c) {\n return _.omit(c, \"suggestions\");\n })\n .value();\n return _this;\n };\n\n this.collectSearchParams = function (options) {\n var query = _.isString(this.basicQuery) ? this.basicQuery.replace(/\\/|\\;/g, \" \") : undefined;\n return _.defaults(options || {}, {\n additional_pages: 0,\n saved_search_id: undefined,\n q: query,\n advanced: JSON.stringify(this.beforeStringify()).replace(/\\/|\\;/g, \" \"),\n });\n };\n\n this.getNumberOfConditions = async function () {\n var numCond = _.compact([\n this.locationSearchEnabled,\n this.jobOffersSearchEnabled,\n this.dateRangeEnabled,\n this.lastUpdateEnabled,\n this.salaryRangeEnabled,\n this.cvDateSearchEnabled,\n this.selectedTransactionBasis,\n this.includeGeoflex,\n this.entourageCandidatesSearchEnabled,\n ]).length;\n\n if (!_.isEmpty(this.priorities) && this.priorities.length != 4) numCond++;\n\n var defaultSelectorFields = await ResourceDependencyInjector.inject(\"defaultSelectorFields\");\n\n var genericConditions = _.chain(this.conditions)\n .filter(function (condition) {\n if (_.isFunction(defaultSelectorFields[condition.field].isEmpty)) {\n return !defaultSelectorFields[condition.field].isEmpty(condition);\n } else {\n return condition.query && (condition.query.length > 0 || !_.isUndefined(condition.query.id));\n }\n })\n .size()\n .value();\n\n return numCond + genericConditions;\n }.bind(this);\n\n _.defaults(this, {\n serviceName: \"SavedSearchesFactory\",\n defaultCondition: SavedSearch.defaultCondition,\n locationDistance: 50,\n locationSearchEnabled: false,\n dateRangeEnabled: false,\n cvLastUpdateInWeeksAgo: \"24\",\n conditions: [],\n sort_params: -1,\n sendout: { show: false, range: {} },\n first_interview: { show: false, range: {} },\n second_interview: { show: false, range: {} },\n closing: { show: false, range: {} },\n deal: { show: false, range: {} },\n out: { show: false, range: {} },\n });\n\n if (!this.conditions.length) {\n this.addAdvancedSearchCondition();\n }\n }\n\n SavedSearch.getAll = function (type?) {\n if (savedSearchesSingleton.data && !(SavedSearch).$invalidateCache) {\n return type ? _.where(savedSearchesSingleton.data, { resourceType: type }) : savedSearchesSingleton.data;\n } else {\n return (SavedSearch).query().then(function (response) {\n savedSearchesSingleton.data = response;\n (SavedSearch).$invalidateCache = false;\n return type ? _.where(savedSearchesSingleton.data, { resourceType: type }) : savedSearchesSingleton.data;\n });\n }\n };\n\n SavedSearch.invalidateCache = function () {\n (SavedSearch).$invalidateCache = true;\n };\n\n SavedSearch.loadFromCache = function (id) {\n var cache = SavedSearch.getAll();\n var search = _.findWhere(cache, { id: parseInt(id) });\n if (search) {\n return search;\n } else {\n return (SavedSearch).get(parseInt(id));\n }\n };\n\n SavedSearch.addToCache = function (savedSearch) {\n return SavedSearch.getAll().push(savedSearch);\n };\n\n RailsResource.extendTo(SavedSearch);\n (SavedSearch).configure({\n url: \"/saved_searches\",\n name: \"saved_search\",\n idAttribute: \"saved_search_id\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.exclude(\"user\");\n this.exclude(\"defaultCondition\");\n this.serializeWith(\"dateRangeStart\", \"DateSerializer\");\n this.serializeWith(\"dateRangeEnd\", \"DateSerializer\");\n this.serializeWith(\"salaryRangeMin\", \"MoneySerializer\");\n this.serializeWith(\"salaryRangeMax\", \"MoneySerializer\");\n this.serializeWith(\"conditions\", \"AdvancedSearchConditionSerializer\");\n }),\n });\n\n SavedSearch.results = function (queryParams) {\n return this.$get(\n (SavedSearch).$url(queryParams) + \"/results\",\n (SavedSearch).getHttpConfig(queryParams).params\n );\n };\n\n SavedSearch.defaultCondition = {\n modifier: \"must\",\n field: \"tags\",\n query: \"\",\n languageId: null,\n languageLevel: null,\n };\n\n return SavedSearch;\n },\n]);\n","//= require ../saved_searches.module.js\n\nangular.module(\"saved_searches\").value(\"savedSearchesSingleton\", { data: null });\n","angular.module(\"sendouts.components\", []);\n","angular.module(\"sendouts\", [\"rails\", \"sendouts.components\"]);\n","//= require ../sendouts.module.js\n\nangular.module(\"sendouts\").service(\"SendoutsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"$state\",\n \"$rootScope\",\n function (RailsResource, railsSerializer, $state, $rootScope) {\n function Sendout() {\n (Sendout).__super__.constructor.apply(this, arguments);\n }\n\n RailsResource.extendTo(Sendout);\n (Sendout).configure({\n url: \"/sendouts\",\n name: \"sendout\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.nestedAttribute(\"expertProfile\");\n this.resource(\"expertProfile\", \"ExpertProfileFactory\");\n this.nestedAttribute(\"employees\");\n this.resource(\"employee\", \"EmployeesFactory\");\n this.nestedAttribute(\"candidates\");\n this.resource(\"candidate\", \"CandidatesFactory\");\n this.nestedAttribute(\"projects\");\n this.resource(\"project\", \"ProjectsFactory\");\n\n this.resource(\"action\", \"ActionsFactory\");\n\n this.serializeWith(\"pdfUrl\", \"UrlSerializer\");\n }),\n });\n\n return Sendout;\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"Autocompletes\", [\n \"$http\",\n \"$q\",\n function ($http, $q) {\n return {\n address: function (query, scope, canceler) {\n if (!canceler) {\n canceler = $q.defer();\n }\n return $http\n .get(\"/autocomplete/address\", {\n params: {\n q: query.replace(/\\//g, \" \"),\n scope: scope,\n },\n timeout: canceler.promise,\n })\n .then(\n function (response) {\n // append the query as first autocomplete suggestion\n return [{ resource_type: \"Query\", highlight: [query] }].concat(\n _.map(response.data, function (obj) {\n return _.pick(obj, [\"display_name\", \"address\"]);\n })\n );\n },\n function () {\n // Error handling (return code 404)\n return [{ resource_type: \"Query\", highlight: [query] }];\n }\n )\n .catch(angular.noop);\n },\n autocomplete: function (query, scope, canceler, filters, filter_args, query_params?) {\n if (!canceler) {\n canceler = $q.defer();\n }\n return $http\n .get(\"/autocomplete\", {\n params: {\n q: query.replace(/\\//g, \" \"),\n scope: scope,\n \"filters[]\": filters,\n filter_args: filter_args,\n size: query_params?.size\n },\n timeout: canceler.promise,\n })\n .then(function (response) {\n // append the query as first autocomplete suggestion\n return [{ resource_type: \"Query\", highlight: [query] }].concat(response.data.data);\n })\n .catch(angular.noop);\n },\n };\n },\n]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"CollectionProxy\", [\n function () {\n return function (arr, queryFunction, params) {\n arr.pickParams = function (params) {\n return _.pick(\n params,\n \"q\",\n \"advanced\",\n \"sort\",\n \"additional_pages\",\n \"pages\",\n \"new\",\n \"my_active_projects\",\n \"my_employees\",\n \"company_id\",\n \"employee_id\",\n \"candidate_id\",\n \"project_id\",\n \"user\",\n \"user_id\",\n \"user_ids[]\",\n \"quicklist_id\",\n \"saved_search_id\",\n \"teams[]\",\n \"team_id\",\n \"all_active\",\n \"followUps\",\n \"date\",\n \"key\",\n \"limit\"\n );\n };\n\n var searchParams = arr.pickParams(params);\n var page = parseInt(searchParams.pages || \"1\", 10);\n var loading = false;\n var loadingPromise;\n\n arr.isLoading = function () {\n return loading;\n };\n\n arr.isMoreAvailable = function () {\n return arr.meta.count < arr.meta.totalCount;\n };\n\n arr.sortBy = function (sortParams) {\n _.extend(searchParams, { sort: sortParams });\n\n return arr.search(searchParams);\n };\n\n arr.getMore = function (pages) {\n pages = pages || 1;\n var cleanParams = _.omit(searchParams, \"additional_pages\");\n var paramsWithPages = _.extend(cleanParams, { page: page, pages: pages });\n loading = true;\n return queryFunction(paramsWithPages).then(function (newRecords) {\n page++;\n arr.splice.apply(arr, _.flatten([arr.length, 0, newRecords]));\n\n arr.meta = _.extend(arr.meta || {}, newRecords.meta, { count: arr.length });\n loading = false;\n\n return arr;\n });\n };\n\n arr.search = function (params) {\n page = 0;\n searchParams = arr.pickParams(params);\n var pages = 1;\n var cleanParams = _.omit(searchParams, \"additional_pages\");\n var paramsWithPages = _.extend(cleanParams, { page: page, pages: pages });\n\n arr.splice(0, arr.length);\n arr.meta = {};\n\n if (loading && loadingPromise) {\n loadingPromise.abort();\n }\n\n loading = true;\n\n loadingPromise = queryFunction(paramsWithPages).then(\n function (newRecords) {\n page++;\n arr.splice.apply(arr, _.flatten([0, 0, newRecords]));\n\n arr.meta = _.extend(arr.meta || {}, newRecords.meta, { count: arr.length });\n loading = false;\n\n return arr;\n },\n function (abort) {\n if (abort.xhrStatus != \"abort\") {\n window.rollbar.error(\"CollectionProxy#search failed\", { status: abort.config });\n }\n }\n );\n\n return loadingPromise;\n };\n\n return arr;\n };\n },\n ]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"DateSerializer\", [\n \"railsSerializer\",\n function (railsSerializer) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return data ? new Date(data) : null;\n };\n this.serialize = function (data) {\n return data ? data.toString() : null;\n };\n });\n },\n ]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"daterangepickerOptions\", [\n \"moment\",\n \"$filter\",\n \"$translate\",\n function (moment, $filter, $translate) {\n return {\n applyClass: \"btn-green\",\n cancelClass: \"btn-green\",\n buttonClass: \"btn\",\n timePicker: true,\n showISOWeekNumbers: true,\n alwaysShowCalendars: false,\n opens: \"left\",\n locale: {\n applyLabel: $filter(\"translate\")(\"START_SEARCH_BUTTON\"),\n fromLabel: $filter(\"translate\")(\"FROM\"),\n format: \"DD.MM.YYYY\",\n toLabel: $filter(\"translate\")(\"UNTIL\"),\n cancelLabel: $filter(\"translate\")(\"CANCEL\"),\n customRangeLabel: $filter(\"translate\")(\"VARIABLE_PERIOD\"),\n weekLabel: $filter(\"translate\")(\"WEEK_TOKEN\"),\n daysOfWeek: moment.weekdaysShort(),\n monthNames: moment.monthsShort(),\n firstDay: 1,\n },\n };\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"DeckControllerMixin\", [\n \"$rootScope\",\n \"$timeout\",\n \"$transitions\",\n function ($rootScope, $timeout, $transitions) {\n function DeckControllerMixin() {}\n\n DeckControllerMixin.initializeActiveRowConnector = function (resource) {\n $rootScope.$broadcast(\"activeRowChanged\", resource);\n\n var deregFinishedLazyLoading = $rootScope.$on(\"finishedLazyLoading\", function () {\n $rootScope.$broadcast(\"activeRowChanged\", resource);\n });\n\n var transitionStartListener = $transitions.onStart({}, function () {\n $rootScope.$broadcast(\"activeRowClosed\", resource);\n });\n\n return function () {\n deregFinishedLazyLoading();\n };\n\n $rootScope.$on(\"$destroy\", function () {\n transitionStartListener();\n });\n };\n\n return DeckControllerMixin;\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"DuplicateChecker\", [\n \"$http\",\n \"$q\",\n \"ResourceDependencyInjector\",\n function ($http, $q, ResourceDependencyInjector) {\n var canceler;\n\n function getDuplicates(queryArguments, person) {\n if (canceler) {\n canceler.resolve();\n }\n canceler = $q.defer();\n\n var query = _.compact(queryArguments).join(\" \");\n\n return $http\n .get(\"/person/check_duplicates.json\", {\n params: {\n q: query.replace(/\\//g, \" \"),\n person_id: person.id,\n person_type: person.resourceType,\n },\n timeout: canceler.promise,\n })\n .then(function (response) {\n // append the query as first autocomplete suggestion\n return _.map(response.data.data, function (duplicate) {\n var resource = ResourceDependencyInjector.inject(duplicate.resource_type);\n return new resource(duplicate);\n });\n })\n .catch(angular.noop);\n }\n\n function initialize(scope, person) {\n var resource = ResourceDependencyInjector.inject(person.serviceName || person.constructor.name);\n scope.person = person;\n var oldResourceDuplicates = resource.duplicatesWatch;\n\n function duplicatesWatch(nv) {\n if (!_.some(nv)) {\n return;\n }\n\n getDuplicates(nv, person).then(function (duplicates) {\n scope.duplicates = {};\n _.each(duplicates, function (duplicate) {\n scope.duplicates[duplicate.resourceType] = scope.duplicates[duplicate.resourceType] || [];\n scope.duplicates[duplicate.resourceType].push(duplicate);\n });\n\n person.$hasDuplicates = _.keys(scope.duplicates).length > 0;\n });\n }\n\n scope.$doCheck = function () {\n if (oldResourceDuplicates != resource.duplicatesWatch) {\n duplicatesWatch(resource.duplicatesWatch);\n oldResourceDuplicates = resource.duplicatesWatch;\n }\n };\n }\n\n return {\n initialize: initialize,\n getDuplicates: getDuplicates,\n };\n },\n]);\n","//= require ./services.module.js\n\nangular.module(\"services\").service(\"DuplicateChecker\", [\n \"$http\",\n \"$q\",\n \"ResourceDependencyInjector\",\n function ($http, $q, ResourceDependencyInjector) {\n function DuplicateChecker(personObj) {\n var canceler;\n\n var person = personObj;\n var resource = ResourceDependencyInjector.inject(person.serviceName || person.constructor.name);\n\n var oldPerson = _.pick(person, resource.duplicatesWatchFields);\n\n function getDuplicates(queryArguments) {\n if (canceler) {\n canceler.resolve();\n }\n canceler = $q.defer();\n\n var query = _.compact(queryArguments).join(\" \");\n\n return $http\n .get(\"/person/check_duplicates.json\", {\n params: {\n q: query.replace(/\\//g, \" \"),\n person_id: person.id,\n person_type: person.resourceType,\n },\n timeout: canceler.promise,\n })\n .then(function (response) {\n // append the query as first autocomplete suggestion\n return _.map(response.data.data, function (duplicate) {\n var _resource = ResourceDependencyInjector.inject(duplicate.resource_type);\n return new _resource(duplicate);\n });\n })\n .catch(angular.noop);\n }\n\n function duplicatesWatch(queryArguments) {\n if (!_.some(queryArguments)) {\n return;\n }\n\n getDuplicates(queryArguments).then(function (duplicateReturn) {\n person.$duplicates = {};\n _.each(duplicateReturn, function (duplicate) {\n person.$duplicates[duplicate.resourceType] = person.$duplicates[duplicate.resourceType] || [];\n person.$duplicates[duplicate.resourceType].push(duplicate);\n });\n\n person.$hasDuplicates = _.keys(person.$duplicates).length > 0;\n });\n }\n\n this.getDuplicates = getDuplicates;\n\n this.doCheck = function () {\n var pickedPerson = _.pick(person, resource.duplicatesWatchFields);\n\n if (!angular.equals(oldPerson, pickedPerson)) {\n duplicatesWatch(_.values(pickedPerson));\n oldPerson = pickedPerson;\n }\n };\n\n // initial call\n duplicatesWatch(_.values(oldPerson));\n }\n\n DuplicateChecker.getDuplicates = function (queryArguments, person) {\n var duplicateChecker = new DuplicateChecker(person);\n return duplicateChecker.getDuplicates(queryArguments);\n };\n\n return DuplicateChecker;\n },\n]);\n","//= require ./services.module.js\n\nangular.module(\"services\").service(\"dynamicRoute\", [\n \"$state\",\n function ($state) {\n function dynamicRoute(objRoute, object) {\n var routingState = _.some([\".show\", \".edit\", \".new\"], function (methodName) {\n if (!$state.includes(\"**\" + objRoute + methodName + \".**\", object.params())) {\n if ($state.href(objRoute + methodName, object.params())) {\n $state.go(objRoute + methodName, object.params());\n } else if ($state.href(\"root\" + objRoute + methodName, object.params())) {\n $state.go(\"root\" + objRoute + methodName, object.params());\n } else {\n return false;\n }\n }\n\n return true;\n });\n\n if (routingState && _.isFunction(this.cancel)) {\n this.cancel();\n }\n }\n\n return {\n dynamicRoute: dynamicRoute,\n };\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"EditUtilMixin\", [\n \"$state\",\n \"$transitions\",\n \"$rootScope\",\n \"hotkeys\",\n \"$filter\",\n \"$translate\",\n function ($state, $transitions, $rootScope, hotkeys, $filter, $translate) {\n function onSaveError(error) {\n error = _.defaults(error || {}, { status: undefined });\n switch (error.status) {\n case 422:\n window.alert($filter(\"translate\")(\"SAVING_ERROR_NOTICE\"));\n break;\n default:\n window.alert($filter(\"translate\")(\"SAVING_ERROR_NEW_TRY_NOTICE\"));\n }\n\n this.saving = false;\n }\n\n function onStateChanged(object, onChange) {\n object.snapshot();\n\n var deregSessionTimeout = $rootScope.$on(\"sessionTimeout\", function (event, timeout) {\n if (object.unsnappedChanges()) {\n // // we couldn't cancel timeout events directly (does not work correctly...)\n if (timeout) {\n $rootScope.cancelTimeout = timeout;\n window.alert($filter(\"translate\")(\"NO_ACTIVITY_SAVE_CHANGES_NOTICE\"));\n } else {\n object.snapshot();\n window.alert($filter(\"translate\")(\"SESSION_INVALID_NOTICE\"));\n }\n }\n $rootScope.$on(\"$destroy\", function () {\n deregSessionTimeout();\n });\n });\n // hacky but necessary (execute logout listener after the one we just added)\n $rootScope.$$listeners.sessionTimeout = _.chain($rootScope.$$listeners.sessionTimeout).reverse().value();\n\n $transitions.onStart({}, function (transition) {\n if (object.unsnappedChanges()) {\n if (window.confirm($filter(\"translate\")(\"CHANGE_SITE_INFORMATION_LOSS_NOTICE\"))) {\n object.snapshot();\n } else {\n $rootScope.$broadcast(\"$stateChangeAbort\");\n\n return false;\n }\n } else {\n if (onChange) {\n onChange();\n }\n }\n });\n\n return function () {\n deregSessionTimeout();\n };\n }\n\n function registerSaveHotkey(onSave) {\n if (hotkeys.get(\"mod+enter\")) {\n hotkeys.del(\"mod+enter\");\n }\n if (!hotkeys.get(\"mod+enter\")) {\n var save = function (event) {\n event.preventDefault();\n onSave();\n };\n\n var enter_opts = _.pick(hotkeys.get(\"enter\"), [\"callback\", \"description\", \"combo\"]);\n hotkeys.del(\"enter\");\n\n hotkeys.add({\n combo: \"mod+enter\",\n description: \"Speichert das aktuell geöffnete Formular\",\n callback: save,\n });\n\n var textAngularWorkaround = $rootScope.$on(\"$saveTextAngularForm\", save);\n\n $rootScope.$on(\"$destroy\", function () {\n textAngularWorkaround();\n });\n\n var dereg = $transitions.onSuccess({}, function (transition) {\n hotkeys.del(\"mod+enter\");\n if (!_.isEmpty(enter_opts)) {\n hotkeys.add(enter_opts);\n }\n dereg();\n textAngularWorkaround();\n });\n }\n }\n\n return {\n onSaveError: onSaveError,\n onStateChanged: onStateChanged,\n registerSaveHotkey: registerSaveHotkey,\n };\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"focus\", [\n \"$rootScope\",\n \"$timeout\",\n function ($rootScope, $timeout) {\n return function (name) {\n $timeout(function () {\n $rootScope.$broadcast(\"focusOn\", name);\n });\n };\n },\n]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"FreeDateSerializer\", [\n \"railsSerializer\",\n \"DateSerializer\",\n \"freeDateOptions\",\n function (railsSerializer, DateSerializer, freeDateOptions) {\n var dateSerializer = new DateSerializer();\n\n return railsSerializer(function () {\n this.deserialize = function (data) {\n if (data.option && _.isNumber(data.option.code)) {\n data.option = _.findWhere(freeDateOptions, { code: data.option.code });\n } else {\n data.option = undefined;\n }\n data.date = dateSerializer.deserialize(data.date);\n\n return data;\n };\n this.serialize = function (data) {\n data.date = dateSerializer.serialize(data.date);\n return data;\n };\n });\n },\n ]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n // Try to retrieve a field first try to find it in its highlighted format,\n // if that does not exist, get it from the normal record (unhighlighted)\n .factory(\"Highlighter\", [\n \"recursiveAccess\",\n \"$sce\",\n function (recursiveAccess, $sce) {\n function Highlighter() {}\n\n function highlighted(field) {\n var highlightedText;\n var obj = this;\n\n if (obj.highlight) {\n highlightedText =\n obj.highlight[field + \".standard\"] ||\n obj.highlight[field + \".autocomplete\"] ||\n obj.highlight[field + \".highlight\"] ||\n obj.highlight[field + \".raw\"] ||\n obj.highlight[field + \".de\"] ||\n obj.highlight[field + \".en\"] ||\n obj.highlight[field] ||\n recursiveAccess(obj, field.split(\".\"));\n } else {\n highlightedText = obj[field];\n }\n\n highlightedText = _.isArray(highlightedText) ? _.first(highlightedText) : highlightedText;\n\n return $sce.trustAsHtml(highlightedText);\n }\n\n Highlighter.extended = function (Resource) {\n Resource.include({\n highlighted: highlighted,\n });\n };\n\n return Highlighter;\n },\n ]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"KPISerializer\", [\n \"railsSerializer\",\n \"ActionsFactory\",\n function (railsSerializer, Action) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n return data && data.action ? { date: data.date, action: new Action(data.action) } : undefined;\n };\n this.serialize = function (data) {\n return data;\n };\n });\n },\n ]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"makeCollectionProxy\", [\n \"CollectionProxy\",\n function (CollectionProxy) {\n return function (queryFunction, params) {\n params = _.defaults(params || {}, { additional_pages: 0 });\n var cleanParams = _.omit(params, \"additional_pages\");\n var pages = parseInt(params.additional_pages || \"0\", 10) + 1;\n var paramsWithPages = _.extend(cleanParams, { pages: pages, page: 0 });\n return queryFunction(paramsWithPages).then(function (result) {\n return new CollectionProxy(result, queryFunction, paramsWithPages);\n });\n };\n },\n ]);\n","//= require ./services.module.js\n\nangular.module(\"services\").service(\"MgPaginateService\", [\n function () {\n var defaults = {\n itemsPerPage: 5,\n currentPage: 1,\n data: [],\n totalItems: 0,\n };\n\n function MgPaginate() {\n var dataSet: any = _.clone(defaults);\n var range: any = {};\n\n function updateRange() {\n range = {\n upper: Math.min(dataSet.itemsPerPage * dataSet.currentPage, dataSet.data?.length),\n lower: (dataSet.currentPage - 1) * dataSet.itemsPerPage + 1,\n total: dataSet.totalItems,\n };\n }\n\n this.onChange = function () {\n updateRange();\n };\n\n this.currentPageChanged = function () {\n if (_.isFunction(dataSet.data.isMoreAvailable)) {\n // data is collection proxy\n\n if (this.getData().isLoading()) {\n dataSet.currentPage = dataSet.currentPage - 1;\n return;\n }\n\n // if last page, load next pages\n if (this.isLastPage() && !this.getData().isLoading() && this.getData().isMoreAvailable()) {\n this.getData().getMore().then(updateRange);\n } else {\n updateRange();\n }\n } else {\n // data is simple array\n updateRange();\n }\n }.bind(this);\n\n this.setTotalItems = function (totalItems) {\n dataSet.totalItems = totalItems;\n updateRange();\n };\n\n this.setCurrentPage = function (currentPage) {\n dataSet.currentPage = currentPage;\n updateRange();\n };\n\n this.setItemsPerPage = function (itemsPerPage) {\n dataSet.itemsPerPage = itemsPerPage;\n updateRange();\n };\n\n this.getItemsPerPage = function () {\n return dataSet.itemsPerPage;\n };\n\n this.setData = function (data) {\n dataSet.data = data;\n updateRange();\n };\n\n this.getData = function () {\n return dataSet.data;\n };\n\n this.getRange = function () {\n return range;\n };\n\n this.getDataSet = function () {\n return dataSet;\n };\n\n this.dataSetEmpty = function () {\n return range.total == 0;\n };\n\n this.hidePagination = function () {\n return range.total <= dataSet.itemsPerPage;\n };\n\n this.isLastPage = function () {\n return dataSet.currentPage >= Math.floor(dataSet.data.length / dataSet.itemsPerPage);\n };\n }\n\n return MgPaginate;\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").provider(\"myCSRF\", [\n \"csrfHeaderName\",\n \"csrfCookieName\",\n function (headerName, cookieName) {\n var allowedMethods = [\"GET\"];\n\n this.setHeaderName = function (n) {\n headerName = n;\n };\n\n this.setCookieName = function (n) {\n cookieName = n;\n };\n\n this.setAllowedMethods = function (n) {\n allowedMethods = n;\n };\n\n this.$get = [\n \"$cookies\",\n function ($cookies) {\n return {\n request: function (config) {\n if (allowedMethods.indexOf(config.method) === -1) {\n // do something on success\n config.headers[headerName] = $cookies.get(cookieName);\n }\n return config;\n },\n };\n },\n ];\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"PersonTransformer\", [\n \"DuplicateChecker\",\n \"ResourceDependencyInjector\",\n \"$filter\",\n \"$translate\",\n function (DuplicateChecker, ResourceDependencyInjector, $filter, $translate) {\n var confirmMessages = {\n Employee: \"TRANSFORM_EMPLOYEE\",\n Candidate: \"TRANSFORM_CANDIDATE\",\n };\n\n var classNames = {\n Employee: \"Candidate\",\n Candidate: \"Employee\",\n };\n\n var filter = {\n Employee: { employeeId: null },\n Candidate: { candidateId: null },\n };\n\n function transformPerson(person) {\n if (!window.confirm($filter(\"translate\")(confirmMessages[person.resourceType]))) {\n return;\n }\n\n var args = [person.firstName, person.lastName];\n\n DuplicateChecker.getDuplicates(args, person).then(function (result) {\n var res = _.where(\n result,\n _.extend({ resourceType: classNames[person.resourceType] }, filter[person.resourceType])\n );\n if (res.length > 0) {\n person.showDuplicates(person, res);\n } else {\n var resourceClass = ResourceDependencyInjector.inject(classNames[person.resourceType]);\n resourceClass\n .$post(person.$url(\"/transform.json\"))\n .then(resourceClass.transformResultHandlerOk)\n .catch(resourceClass.transformResultHandlerError);\n }\n });\n }\n\n return {\n createAsCandidate: transformPerson,\n createAsManager: transformPerson,\n };\n },\n]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n // Resolves an object key recursively:\n // obj[keys[0]][keys[1]][keys[2]]...\n .factory(\"recursiveAccess\", [\n function () {\n return function (obj, keys) {\n var cur_obj = obj;\n for (var i = 0; i < keys.length; i++) {\n if (!cur_obj) {\n return null;\n }\n cur_obj = cur_obj[keys[i]];\n }\n return cur_obj;\n };\n },\n ]);\n","//= require ./services.module.js\nangular.module(\"services\").factory(\"RedirectLocation\", [\n \"$location\",\n function ($location) {\n return {\n encode: function () {\n return encodeURIComponent($location.search(\"redirect_to\", undefined).absUrl());\n },\n decode: function (url) {\n if (!url) {\n return undefined;\n }\n return decodeURIComponent(url);\n },\n redirectParams: function () {\n return {\n params: JSON.stringify($location.$$search), //store the parameters\n referrer: encodeURIComponent($location.$$path), //store the original url\n };\n },\n };\n },\n]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"ResourceDependencyInjector\", [\n \"$injector\",\n function ($injector) {\n return {\n inject: function (dependency) {\n if (angular.isString(dependency)) {\n if ($injector.has(dependency)) {\n return $injector.get(dependency);\n } else {\n return $injector.get(dependency + \"sFactory\");\n }\n } else {\n return dependency;\n }\n },\n };\n },\n ]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"SanitizeSerializer\", [\n \"railsSerializer\",\n \"$sce\",\n \"$sceDelegate\",\n function (railsSerializer, $sce, $sceDelegate) {\n return railsSerializer(function () {\n this.deserialize = function (data) {\n var trustedData;\n if (_.isString(data)) {\n try {\n trustedData = $sce.getTrustedHtml(data);\n } catch (e) {\n trustedData = String(data).replace(/<[^>]+>/gm, \"\");\n }\n return trustedData;\n } else {\n return data;\n }\n };\n this.serialize = function (data) {\n return $sceDelegate.valueOf(data);\n };\n });\n },\n ]);\n","angular.module(\"services\", [\"values\"]);\n","//= require ./services.module.js\nangular.module(\"services\").service(\"SidebarFactory\", [\n \"sidebarStates\",\n function (sidebarStates) {\n function Sidebar(asideName, subDeckOpen) {\n this.open = function () {\n sidebarStates[asideName] = true;\n sidebarStates.deckSub = subDeckOpen;\n };\n\n this.close = function () {\n sidebarStates[asideName] = false;\n if (subDeckOpen) {\n sidebarStates.deckSub = false;\n }\n };\n\n this.name = function () {\n return asideName;\n };\n }\n\n Sidebar.closeAll = function () {\n _.each(_.keys(sidebarStates), function (name) {\n sidebarStates[name] = false;\n });\n };\n\n return Sidebar;\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").service(\"SidebarService\", [\n \"$cookies\",\n \"SidebarFactory\",\n function ($cookies, SidebarFactory) {\n var sidebar = new SidebarFactory(\"deckSub\");\n let ids = {};\n\n this.getSidebarStates = function () {\n return ids;\n };\n\n this.getSidebarStatus = function (id) {\n ids[id] = $cookies.get(id) != \"false\";\n return ids[id];\n };\n\n this.updateSideBar = function (id, status) {\n ids[id] = status;\n $cookies.put(id, status);\n return ids[id];\n };\n\n this.closeSidebar = function () {\n sidebar.close();\n };\n },\n]);\n","//= require ./services.module.js\nangular.module(\"services\").provider(\"$stateGenerator\", [\n \"$stateProvider\",\n function ($stateProvider) {\n this.addStates = function (rootStateName, args) {\n var view = {};\n\n var options;\n if (_.isArray(args)) {\n options = {\n stateName: args[0],\n viewLayerID: args[1],\n params: args[2],\n urlParamName: args[3],\n forceRootStateName: args[4],\n };\n } else {\n options = args;\n }\n\n var _stateName = _.compact([rootStateName, options.stateName]).join(\".\");\n\n options = _.defaults(options, {\n viewLayerID: \"deckPrimary\",\n forceRootStateName: false,\n urlParamName: \":id\",\n });\n\n if (_.isString(options.stateName)) {\n $stateProvider.state(_stateName, {\n url: options.url || \"/\" + options.stateName,\n resolve: options.params.requirements,\n });\n }\n\n var genericDeck = {};\n options.rootView =\n options.rootView ||\n (options.stateName || options.forceRootStateName\n ? \"@\" + rootStateName.slice(0, rootStateName.lastIndexOf(\".\"))\n : \"\");\n genericDeck[options.viewLayerID.replace(/([a-z\\d])([A-Z])/g, \"$1-$2\").toLowerCase() + options.rootView] = {\n resolve: {\n objectType: [\n function () {\n return options.params.objectType;\n },\n ],\n scrollspyScope: function () {\n return _.uniqueId(\"scrollspy\");\n },\n },\n component: \"genericDeck\",\n };\n\n _.mapObject(\n { new: \"new\", edit: options.urlParamName + \"/edit\", show: options.urlParamName },\n function (value, key) {\n $stateProvider.state(_stateName + \".\" + key, {\n url: \"/\" + value,\n resolve: angular.merge(angular.copy(options.params[key].resolve), {\n sidebar: [\n \"SidebarFactory\",\n function (SidebarFactory) {\n return new SidebarFactory(options.viewLayerID, options.subDeckOpen && key != \"new\");\n },\n ],\n }),\n onExit: [\n \"sidebar\",\n \"$rootScope\",\n \"$state\",\n function (sidebar, $rootScope, $state) {\n $rootScope.$broadcast(\"$stateExit\", $state);\n sidebar.close();\n },\n ],\n onEnter: [\n \"sidebar\",\n function (sidebar) {\n sidebar.open();\n },\n ],\n views: angular.merge(genericDeck, options.params[key].views(_stateName + \".\" + key)),\n });\n }\n );\n\n return this;\n };\n this.addRoundtrip = function (rootStateName, options) {\n options.urlParameters = {\n queryParams: options.queryParams,\n paramName: options.paramName,\n url: options.url,\n };\n\n $stateProvider.state(rootStateName, {\n url: options.urlParameters.url + \"?\" + options.urlParameters.queryParams,\n abstract: true,\n });\n\n _.mapObject(\n { new: \"new\", edit: options.urlParameters.paramName + \"/edit\", show: options.urlParameters.paramName },\n function (params, route) {\n $stateProvider.state(rootStateName + \".\" + route, {\n url: \"/\" + params + \"?\" + options.urlParameters.queryParams,\n redirect: options.redirect + \".\" + route,\n });\n }\n );\n\n return this;\n };\n this.$get = function () {\n return {};\n };\n },\n]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n // Unpacks the standard rails response envelope into\n // rails-resource compatible objects\n .factory(\"UnpackEnvelopeInterceptor\", [\n \"RailsResource\",\n \"ResourceDependencyInjector\",\n function (RailsResource, ResourceDependencyInjector) {\n return {\n afterResponse: function (result, resourceConstructor, context) {\n var ret;\n\n function construct(res) {\n if (res && res.constructor !== Object) {\n var resource;\n try {\n resource = ResourceDependencyInjector.inject(res.serviceName || res.constructor.name);\n return new resource(res);\n } catch (err) {\n return res;\n }\n } else {\n return new resourceConstructor(res);\n }\n }\n\n function recursiveConstruct(data) {\n if (_.isArray(data)) {\n return _.map(data, recursiveConstruct);\n } else if (_.isObject(data) && data instanceof RailsResource) {\n _.mapObject(data, function (value, key) {\n data[key] = _.isFunction(value) ? value : recursiveConstruct(value);\n });\n\n return construct(data);\n } else {\n return data;\n }\n }\n\n // let rails-resource do its magic on the objects\n\n if (_.isArray(result.data)) {\n ret = _.map(result.data, function (data) {\n var res = construct(data);\n return recursiveConstruct(res);\n });\n } else {\n ret = construct(result.data);\n ret = recursiveConstruct(ret);\n }\n\n // add meta data from request to result object\n ret.meta = result.meta;\n\n return ret;\n },\n };\n },\n ]);\n","//= require ./services.module.js\nangular\n .module(\"services\")\n\n .factory(\"UrlSerializer\", [\n \"railsSerializer\",\n \"$sce\",\n function (railsSerializer, $sce) {\n return railsSerializer(function () {\n this.deserialize = function (url) {\n if (_.isString(url)) {\n return $sce.trustAsResourceUrl(url);\n } else {\n return url;\n }\n };\n this.serialize = function (url) {\n return url;\n };\n });\n },\n ]);\n","angular.module(\"tags.components\", []);\n","angular.module(\"tags\", [\"rails\", \"tags.components\"]);\n","angular.module(\"textkernel.modals\", []);\n","//= require ./modals.module.js\n\nangular.module(\"textkernel.modals\").factory(\"TextkernelModalMixin\", [\n \"$uibModal\",\n \"$window\",\n \"$filter\",\n \"$translate\",\n function ($uibModal, $window, $filter, $translate) {\n function TextkernelModalMixin() {}\n\n function openTkSearchModal() {\n // var newTab = window.open(textkernelSearchUrl, '_blank');\n if (this.resourceType == \"Project\" && !this.isActive) {\n return;\n }\n\n if (_.has(this, \"hasCv\") && !this.hasCv) {\n $window.alert($filter(\"translate\")(\"CANDIDATE_NO_CV\"));\n return;\n }\n\n var modalInstance = $uibModal.open({\n resolve: {\n object: [\n function () {\n return this;\n }.bind(this),\n ],\n },\n component: \"textkernelOpenSearch\",\n size: \"xl\",\n });\n return modalInstance.result;\n }\n\n function tkImportFinished(projects, promises) {\n var modalInstance = $uibModal.open({\n resolve: {\n promises: [\n function () {\n return promises;\n },\n ],\n projects: [\n function () {\n return projects;\n },\n ],\n },\n component: \"textkernelImportFinished\",\n size: \"sm\",\n });\n return modalInstance.result;\n }\n\n function tkLonglistConfirm(promises, fromCandidate) {\n var modalInstance = $uibModal.open({\n resolve: {\n promises: [\n function () {\n return promises;\n },\n ],\n fromCandidate: [\n function () {\n return fromCandidate || false;\n },\n ],\n },\n component: \"textkernelLonglistConfirm\",\n size: \"sm\",\n });\n return modalInstance.result;\n }\n\n TextkernelModalMixin.extended = function (Resource) {\n Resource.include({\n openTextkernel: openTkSearchModal,\n textkernelImportFinished: tkImportFinished,\n textkernelLonglistConfirm: tkLonglistConfirm,\n });\n };\n\n return TextkernelModalMixin;\n },\n]);\n","angular.module(\"textkernel\", [\"textkernel.modals\"]);\n","angular.module(\"trackings.components\", []);\n","const trackingsTemplate = require(\"./trackings.template.html\");\n//= require ../components.module.js\n\nangular.module(\"trackings.components\").component(\"trackings\", {\n bindings: {\n action: \"=\",\n },\n template: trackingsTemplate,\n controller: \"TrackingsCtrl\",\n});\n","angular.module(\"trackings\", [\"rails\", \"trackings.components\"]);\n","angular.module(\"transaction_bases.components\", []);\n","angular.module(\"transaction_bases\", [\"rails\", \"transaction_bases.components\"]);\n","angular.module(\"users.components\", []);\n","const vwsUsersTableBodyTemplate = require(\"./vws-users-table-body.template.html\");\n\nangular.module(\"users.components\").component(\"vwsUsersTableBody\", {\n bindings: {\n users: \"=data\",\n attributes: \"=\",\n activeRow: \"=\",\n statePrefix: \"@\",\n tableRowIdentifier: \"=\",\n },\n template: vwsUsersTableBodyTemplate,\n});\n","//= require ../modals.module.js\n\nangular.module(\"users.modals\").factory(\"UsersModalMixin\", [\n \"$uibModal\",\n function ($uibModal) {\n function UsersModalMixin() {}\n\n function accountSettingsModal() {\n var modalInstance = $uibModal.open({\n component: \"accountSettings\",\n windowClass: \"account-settings-modal\",\n resolve: {\n user: [\n \"UsersFactory\",\n function (User) {\n return User.get(this.id);\n }.bind(this),\n ],\n users: [\n \"UsersFactory\",\n function (User) {\n return User.getAll();\n },\n ],\n teams: [\n \"UsersFactory\",\n function (User) {\n return User.translatedTeams();\n },\n ],\n },\n });\n\n return modalInstance.result.then(angular.noop).catch(angular.noop);\n }\n\n UsersModalMixin.extended = function (Resource) {\n Resource.include({\n accountSettingsModal: accountSettingsModal,\n });\n };\n\n return UsersModalMixin;\n },\n]);\n","const accountSettingsTemplate = require(\"./account-settings.template.html\");\n//= require ../modals.module.js\n\nangular.module(\"users.modals\").component(\"accountSettings\", {\n bindings: {\n resolve: \"<\",\n modalInstance: \"<\",\n },\n template: accountSettingsTemplate,\n controller: \"AccountSettingsModalCtrl\",\n});\n","angular.module(\"users.modals\", []);\n","angular.module(\"users\", [\"rails\", \"users.components\", \"users.modals\"]);\n","//= require ../users.module.js\n\nangular.module(\"users\").value(\"usersSingleton\", { data: null });\n","//= require ./values.module.js\nangular\n .module(\"values\")\n\n .constant(\"AUTH_EVENTS\", {\n loginSuccess: \"auth-login-success\",\n loginFailed: \"auth-login-failed\",\n logoutSuccess: \"auth-logout-success\",\n sessionTimeout: \"auth-session-timeout\",\n notAuthenticated: \"event:auth-loginRequired\",\n notAuthorized: \"auth-not-authorized\",\n });\n","//= require ./values.module.js\n\nangular.module(\"values\").constant(\"camelCaseToHyphens\", function (str) {\n return str.replace(/([A-Z])/g, function ($1) {\n return \"-\" + $1.toLowerCase();\n });\n});\n","//= require ./values.module.js\n\nangular.module(\"values\").constant(\"csrfCookieName\", \"XSRF-TOKEN\").constant(\"csrfHeaderName\", \"X-CSRF-Token\");\n","//= require ./values.module.js\n\nangular\n .module(\"values\")\n\n .constant(\"freeDateOptions\", [\n { name: \"FROM_NOW\", code: 1 },\n { name: \"BY_ARRANGEMENT\", code: 2 },\n { name: \"TWO_WEEKS_UNTIL_MONTH_END\", code: 3 },\n { name: \"FOUR_WEEKS_UNTIL_MONTH_END\", code: 4 },\n { name: \"FOUR_WEEKS_UNTIL_QUARTER_END\", code: 5 },\n { name: \"TWO_MONTHS_UNTIL_MONTH_END\", code: 11 },\n { name: \"THREE_MONTHS_UNTIL_MONTH_END\", code: 6 },\n { name: \"SIX_MONTHS_UNTIL_MONTH_END\", code: 7 },\n { name: \"SIX_MONTHS_UNTIL_QUARTER_END\", code: 8 },\n { name: \"TWELVE_MONTHS_UNTIL_MONTH_END\", code: 9 },\n { name: \"TWELVE_MONTHS_UNTIL_QUARTER_END\", code: 10 },\n ]);\n","//= require ./values.module.js\n\nangular\n .module(\"values\")\n .constant(\"PopoverLoaderTemplate\", require(\"../directives/components/popover-loader/popover-loader.template.html\"));\n","//= require ./routing-options.module.js\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"expertProfileOpts\", {\n show: {\n resolve: {\n candidatesProjectsResponse: [\n \"$transition$\",\n \"CandidatesProjectsFactory\",\n function ($transition$, CandidatesProjectsFactory) {\n var params = $transition$.params();\n if (params.cpjoin_id) {\n return CandidatesProjectsFactory.get(params.cpjoin_id);\n }\n },\n ],\n candidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n return CandidatesFactory.get(params.candidate_id);\n },\n ],\n expertProfileResponse: [\n \"$transition$\",\n \"ExpertProfileFactory\",\n function ($transition$, ExpertProfileFactory) {\n var params = $transition$.params();\n if (params.expert_profile_id) {\n return ExpertProfileFactory.get(params.expert_profile_id);\n }\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"expertProfilesEdit\",\n };\n return viewObj;\n },\n },\n new: {\n resolve: {\n candidatesProjectsResponse: [\n \"$transition$\",\n \"CandidatesProjectsFactory\",\n function ($transition$, CandidatesProjectsFactory) {\n var params = $transition$.params();\n if (params.candidate_id && params.project_id) {\n return CandidatesProjectsFactory.get({\n candidate_id: params.candidate_id,\n project_id: params.project_id,\n });\n } else if (params.cpjoin_id) {\n return CandidatesProjectsFactory.get(params.cpjoin_id);\n }\n },\n ],\n expertProfileResponse: [\n \"$transition$\",\n \"ExpertProfileFactory\",\n \"candidatesProjectsResponse\",\n function ($transition$, ExpertProfileFactory, candidatesProjectsResponse) {\n var params = $transition$.params();\n return ExpertProfileFactory.get(\"new\", {\n cpjoin_id: candidatesProjectsResponse?.id,\n candidate_id: params.candidate_id,\n employee_id: params.employee_id,\n });\n },\n ],\n candidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = _.pick($transition$.params(), _.identity);\n return CandidatesFactory.get(params.candidate_id);\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"expertProfilesEdit\",\n };\n return viewObj;\n },\n },\n edit: {\n resolve: {\n candidateResponse: [\n \"$transition$\",\n \"CandidatesFactory\",\n function ($transition$, CandidatesFactory) {\n var params = $transition$.params();\n return CandidatesFactory.get(params.candidate_id);\n },\n ],\n expertProfileResponse: [\n \"$transition$\",\n \"ExpertProfileFactory\",\n function ($transition$, ExpertProfileFactory) {\n var params = $transition$.params();\n if (params.expert_profile_id) {\n return ExpertProfileFactory.get(params.expert_profile_id);\n }\n },\n ],\n candidatesProjectsResponse: [\n \"$transition$\",\n \"CandidatesProjectsFactory\",\n \"expertProfileResponse\",\n function ($transition$, CandidatesProjectsFactory, expertProfileResponse) {\n var params = $transition$.params();\n return CandidatesProjectsFactory.get({\n id: params.cpjoin_id,\n project_id: expertProfileResponse.project?.id,\n candidate_id: expertProfileResponse.candidate?.id,\n });\n },\n ],\n scrollspyScope: [\n function () {\n return _.uniqueId(\"scrollspy\");\n },\n ],\n },\n views: function (state) {\n var viewObj = {};\n viewObj[\"deck-content@\" + state] = {\n component: \"expertProfilesEdit\",\n };\n return viewObj;\n },\n },\n requirements: {\n objectType: [\n function () {\n return \"project\";\n },\n ],\n stateParams: [\n \"$transition$\",\n function ($transition$) {\n return _.pick($transition$.params(), _.identity);\n },\n ],\n },\n urlParameters: {\n queryParams: \"cpjoin_id&candidate_id&employee_id&initiative_expert_profile&project_id\",\n paramName: \":expert_profile_id\",\n url: \"/expert_profile\",\n },\n });\n","angular.module(\"values.routing-options\", []);\n","//= require ./routing-options.module.js\n\nangular\n .module(\"values.routing-options\")\n\n .constant(\"savedSearchOpts\", {\n requirements: {\n stateParams: [\n \"$transition$\",\n function ($transition$) {\n // remove undefined params\n return _.pick($transition$.params(), _.identity);\n },\n ],\n // need to reference action_types (force loading before initialize SavedSearchesFactory)\n savedSearchesResponse: [\n \"action_types\",\n \"SavedSearchesFactory\",\n function (action_types, SavedSearchesFactory) {\n return SavedSearchesFactory.getAll();\n },\n ],\n savedSearchResponse: [\n \"action_types\",\n \"stateParams\",\n \"SavedSearchesFactory\",\n function (action_types, stateParams, SavedSearch) {\n if (stateParams.saved_search_id) {\n return SavedSearch.loadFromCache(stateParams.saved_search_id);\n } else {\n return new SavedSearch({ basicQuery: stateParams.q });\n }\n },\n ],\n query: [\n \"savedSearchResponse\",\n function (savedSearchResponse) {\n return savedSearchResponse.basicQuery;\n },\n ],\n advancedQuery: [\n \"stateParams\",\n \"savedSearchResponse\",\n \"action_types\",\n \"SavedSearchesFactory\",\n function (stateParams, savedSearchResponse, action_types, SavedSearch) {\n return new SavedSearch(_.extend(savedSearchResponse, JSON.parse(stateParams.advanced || \"{}\")));\n },\n ],\n },\n });\n","//= require ./values.module.js\n\nangular.module(\"values\").value(\"sidebarStates\", {\n showAside01: false,\n showAside02: false,\n showAside03: false,\n showAside04: false,\n deckPrimary: false,\n deckSub: false,\n deckSecondary: false,\n});\n","angular.module(\"values\", [\"values.routing-options\"]);\n","angular.module(\"working_relationships.components\", []);\n","//= require ../working-relationships.module.js\n\nangular.module(\"working_relationships\").factory(\"WorkingRelationshipsFactory\", [\n \"RailsResource\",\n \"railsSerializer\",\n \"$filter\",\n \"$translate\",\n function (RailsResource, railsSerializer, $filter, $translate) {\n function WorkingRelationShip() {\n (WorkingRelationShip).__super__.constructor.apply(this, arguments);\n }\n\n RailsResource.extendTo(WorkingRelationShip);\n (WorkingRelationShip).configure({\n url: \"/working_relationships\",\n name: \"working_relationship\",\n interceptors: [\"UnpackEnvelopeInterceptor\"],\n serializer: railsSerializer(function () {\n this.resource(\"employer\", \"CompaniesFactory\");\n this.resource(\"supervisor\", \"EmployeesFactory\");\n this.serializeWith(\"cancelationPeriod\", \"CancelationPeriodSerializer\");\n this.serializeWith(\"startDate\", \"DateSerializer\");\n this.serializeWith(\"endDate\", \"DateSerializer\");\n this.serializeWith(\"department\", \"DepartmentsSerializer\");\n }),\n });\n\n WorkingRelationShip.defaultTableAttributes = {\n id: {\n title: \"ID\",\n show: true,\n pinned: true,\n menu: true,\n class: \"id\",\n },\n name: {\n title: $filter(\"translate\")(\"NAME\"),\n show: true,\n fixedWidth: true,\n class: \"title\",\n },\n department: {\n title: $filter(\"translate\")(\"DEPARTMENT\"),\n show: true,\n class: \"minimal\",\n },\n hierarchy: {\n title: $filter(\"translate\")(\"HIERARCHY\"),\n show: true,\n class: \"minimal\",\n },\n supervisor: {\n title: $filter(\"translate\")(\"SUPERVISOR\"),\n show: true,\n class: \"minimal\",\n },\n startDate: {\n title: $filter(\"translate\")(\"BEGIN\"),\n show: true,\n class: \"date\",\n },\n endDate: {\n title: $filter(\"translate\")(\"END\"),\n show: true,\n class: \"date\",\n },\n cancelationPeriod: {\n title: $filter(\"translate\")(\"NOTICE_PERIOD\"),\n show: true,\n class: \"minimal\",\n },\n position: {\n title: $filter(\"translate\")(\"POSITION\"),\n show: false,\n class: \"minimal\",\n },\n };\n\n return WorkingRelationShip;\n },\n]);\n","angular.module(\"working_relationships\", [\"working_relationships.components\"]);\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["angular","module","component","bindings","object","saveChanges","action","template","controller","constructor","this","jobChangeMotivationDescriptionPopover","actionTypesJobChangeMotivationDescriptionPopover","callback","sendQualificationSummaryEmail","scope","candidate","openQualificationSummaryModal","$close","resolves","DebriefingTemplateCtrl","CandidatesProjects","$onInit","projectStatuses","statuses","project","loading","get","candidate_id","id","project_id","then","cpjoin","$inject","employee","c","initContract","PrioritiesSchema","type","prioritiesContract","router","query","method","path","responses","summary","GraduationsSchema","graduationsContract","JobCategoriesSchema","jobCategoriesContract","DepartmentsSchema","SingleDepartmentSchema","departmentsContract","getHierarchies","JobTypesSchema","jobTypesContract","DrivingLicenceSchema","drivingLicencesContract","CareerLevelsSchema","careerLevelsContract","FunctionalAreasSchema","functionalAreasContract","HighschoolsSchema","highschoolsContract","CoursesSchema","coursesContract","LeadershipExperiencesSchema","leadershipExperiencesContract","CancelationPeriodsSchema","cancelationPeriodsContract","MaritalStatusSchema","maritalStatusesContract","HierarchiesSchema","hierarchiesContract","OrganisationUnitsSchema","organisationUnitsContract","salesUnits","RegionsSchema","RegionsContract","LanguagesSchema","languagesContract","CountriesSchema","countriesContract","TransactionBasisSchema","transactionBasisContract","z","for_companies","boolean","optional","CompaniesTransactionBasisSchema","SingleCompaniesTransactionBasisSchema","SingleCompaniesTransactionBasisBodySchema","companies_transaction_basis","company_id","coerce","number","companiesTransactionBasisContract","update","body","pathParams","create","delete","ActionTypesSchema","actionTypesContract","TagsSchema","tagsContract","contract","priorities","graduations","jobCategories","departments","jobTypes","drivingLicences","careerLevels","functionalAreas","highschools","courses","leadershipExperiences","cancelationPeriods","maritalStatuses","hierarchies","organisationUnits","regions","languages","countries","transactionBases","companiesTransactionBasis","actionTypes","tags","strictStatusCodes","baseClient","initClient","baseUrl","baseHeaders","api","async","args","headers","getCookie","tsRestFetchApi","requestCache","cached","target","propertyKey","descriptor","original","value","targetProperty","cacheIdentifier","$$moduleName","Promise","resolve","reject","call","response","CancelationPeriod","fields","Object","assign","deepMapKeys","camelCase","getAll","data","map","element","__decorate","Graduation","Hierarchy","Department","_a","JobCategory","_b","queryHierarchies","params","toString","hierarchy","serviceName","JobType","isPermanent","slug","isProjectConsulting","isFreelancer","isQuickCheck","isManagementConsulting","ActionType","isSendoutAction","_","typeName","isTelephoneAction","isInterviewActionType","isDealActionType","getActionTypeOptions","ActionTypeOptions","resourceType","getAllWithoutVerbose","actionType","system","filter","arrOfTypeNames","EmployeesProjects","qualification","actionTemplate","Employee","default","briefing","convertToEvent","debriefing","sendout","hasTracking","factory","railsSerializer","deserialize","isArray","serialize","service","QuicklistsCandidatesListCtrl","CandidateService","PrsmTableAttributeService","quicklist_entry_attributes","deleteEntry","show","quicklist","isReadOnly","kpis","candidates_attributes","extend","copy","defaultTableAttributes","getAttributes","advancedQuery","quicklistEntriesLazyLoading","setKpiKey","steps","updateEntries","QuicklistsEmployeesListCtrl","EmployeeService","employees_attributes","omit","QuicklistsCompaniesListCtrl","CompanyService","quicklistCompanyEntryAttributes","companiesAttributes","quicklists","attributes","tableRowIdentifier","SearchToQuicklistButtonCtrl","$rootScope","$filter","QuicklistService","poller","createQuicklist","creatingQuicklist","savedSearch","save","result","quicklistName","window","prompt","name","saved_search_id","resultList","pollingService","$url","catchError","delay","promise","status","generating","remove","clearCache","$broadcast","res","showActionsListModalCtrl","Action","PrsmTableHelper","step","key","defaultAttributes","actions","match","setVisibleAttributes","keys","cancel","dismiss","openActionModalCtrl","$scope","User","Deal","dynamicRoute","$watchCollection","nv","ov","lastVersion","versions","length","lastEdit","user","findBy","parseInt","whodunnit","timestamp","createdAt","expertProfile","isNew","options","isConvertableToEvent","plannedFor","isEvent","editDeal","dereg","$on","event","deal","edit","catch","dealOptions","add_action","candidatesProjectId","closing","isActionType","actionableType","employeesCandidatesProjectId","actionableId","createAndEdit","editAction","actionEditModal","noop","deleteFollowUp","deleteNote","snapshot","alert","decline","$post","pick","convertIntoEvent","$onDestroy","isFunction","eventConfirmModalCtrl","emailMissing","draft","isMsTeamsMeeting","some","attendees","attendee","isEmpty","email","getMissingEmails","results","each","role","ok","modalInstance","close","SelectActionModalCtrl","chain","successors","firstSuccessor","first","selectedAction","defaults","showManager","showCandidate","historyTypeTitle","predecessor","selectAction","selectActionModalCtrl","default_1","EditUtilMixin","ModalUtilMixin","daterangepickerOptions","$templateCache","bind","unsnappedChanges","confirm","rollback","preventDefault","projectsCount","separateCandidatesEvent","sendInvitationToManagers","projectEditable","candidates","dateRangePickerOptions","timePicker24Hour","singleDatePicker","locale","format","undefined","company","put","registerSaveHotkey","multipleManagers","getCompanyId","initiativeApplicationProject","showEmployeesSelect","employeesCount","employees","showInterviewFollowUpOptions","followUps","showContactDetailsEventText","closeAfterCallback","force_validation","actionForm","$invalid","individualTeamsLink","compact","$error","required","attr","savedObject","onSaveError","finishFollowUp","declineFollowUp","checkAddressForNull","address","isNull","street","houseId","zipCode","city","setContactAddress","updateContactDetails","changed","contactDetailsEventText","operationalSiteAddress","actionEditModalCtrl","$uibModal","$q","ActionsModalMixin","isObject","actionTypeEditable","rollbar","error","open","size","Candidate","editedAction","resultAction","candidatesProjectsCount","candidatesProjects","cp","templateResolve","all","deferred","defer","saveCustomNote","toLowerCase","openActionModal","users","openEventConfirmModal","extended","Resource","include","eventConfirm","ActionsHistoryCtrl","SavedSearch","hotkeys","$timeout","MgPaginateService","$transitions","uniqueId","paginationId","oldActionList","paginationTemplateUrl","actionsPaginationTemplate","paginationService","add","combo","description","hotkey","createAction","onSuccess","del","defaultCondition","modifier","field","systemDisabled","deleteAdvancedSearchCondition","advancedActionsSearchOptions","setData","initializeActionsSearch","actionAttributes","$doCheck","actionList","getActions","equals","meta","actionsPage","setTotalItems","totalCount","createNewAction","identifier","lazyLoadingActions","initializePagination","$postLink","disableNew","FollowUpsCtrl","paginationTemplate","ActionsContextMenuCtrl","$state","$dismiss","versionsOld","deregDealFormOpened","openExpertProfile","go","statePrefix","showTransform","stateArgs","selectableFields","push","performAdvancedSearch","StateTransitionsConfig","reduceParams","reduce","memo","obj","JSON","stringify","state","transitionOptions","initialViewState","relative","ActionsTableBodyCtrl","activeRow","context","RailsResource","RailsResourceSnapshotsMixin","$http","ModalMixin","makeCollectionProxy","OutlookDelivery","RedirectLocation","__super__","apply","arguments","action_id","redirectParams","getCompany","$ctrl","_c","current_company","sendInvitation","completedAt","Date","toISOString","completedByUser","resAction","errorCode","handleErrors","outlookEventId","declinedAt","accepted","drafts","draft_params","createMessage","resDraft","url","declined","actionRoute","emailParams","merge","contact_details_event_text","post","action_params","isDeclined","isCompleted","isPlanned","isFollowUp","dealEditable","isClosing","contains","listTitle","subject","completeDescription","customType","actionTypeIdentifier","optAttr","findWhere","plannedLength","$get","actionable_type","actionable_id","resource","advanced","title","menu","class","sortField","responsibleUser","consultant","researcher","processProvisionConsultant","jobType","amountCovered","connectionCdsSap","countableDate","extendTo","configure","interceptors","serializer","serializeWith","exclude","_Class","CandidateShowDuplicatesModalCtrl","getAttrName","scopeDescriptor","duplicates","selectedManager","duplicate","highlight","filterObj","filterKey","flatten","connectToManager","employee_id","transformResultHandlerOk","transformResultHandlerError","createNewManager","CandidateSearchCtrl","SavedSearchesFactory","Session","Autocompletes","$log","cancelers","advancedCandidateSearchOptions","remote","searchSkills","searchedSkills","resource_type","invoke","autocomplete","last","groupBy","highlights","pluck","scores","sortBy","num","reverse","splice","pop","search","item","basicQuery","collectSearchParams","route","q","replace","reload","inherit","savedSearches","disableSavedSearch","CandidateSelectCtrl","placeholder","text","entry","uniq","ngModel","CandidatesProjectSearchCtrl","foundCandidates","searchCandidates","fn","routeFn","addCandidateToProject","addCandidate","Language","levelInWords","level","foundLevel","levels","find","l","defaultOptions","CandidatesTableBodyCtrl","Quicklist","PersonTransformer","priorityPopoverTemplate","candidatesPriorityPopoverTemplate","languageLevelInWords","createAsManager","draggingHelper","startCallback","isCandidatesTable","candidateList","CandidatesContextMenuCtrl","Project","openInitiativExpertProfile","not_found","cpjoin_id","initiative_expert_profile","isLonglistEntry","AdvancedCandidateSearchCtrl","advancedQueryCopy","CandidatesShowCtrl","DeckControllerMixin","candidatePriorityPopoverTemplate","transition","stateParams","identity","openDocumentId","document_id","deregActiveRowChanged","newActiveRow","activeProject","activeCpjoin","getCpjoin","deregActiveRowClosed","openDocument","setPageTitle","fullNameReverseWithTitle","projectsLazyLoading","deregActiveRowConnector","initializeActiveRowConnector","openDocumentFullScreen","documents","documentView","$transition$","scrollspyScope","$state$","CandidatesEditViewCtrl","skillsDescriptionPopover","coreCompetenciesDescriptionPopover","exclusionCriterionDescriptionPopover","openApplicationsDescriptionPopover","wantedJobDescriptionPopover","jobTitlePopover","deregDocumentsChanged","languageLevelIDs","maritalStatus","leadershipExperience","languageSkills","language","languageSkill","langSkill","saveCandidate","saving","savedCandidate","contactForm","$valid","$hasDuplicates","deregCandidateDiff","CandidatesIndexViewCtrl","KPISteps","candidatesLazyLoading","canLonglist","onLonglist","kpiFilter","loader","currentCandidate","isLonglisted","longlist","any","onLonglistClicked","$candidate","CandidatesDocumentsViewCtrl","SidebarService","closeSidebar","ActionModals","CandidatesProjectsModalMixin","sendCandidatesAgreementModal","_this","selectSubsidiary","chooseLocalesModal","createChooseContactModal","lang","candidatesAgreementEmail","sendDocument","error_code","rejectCandidateModal","selectReasonForRejection","candidatesRejectionEmail","reason_for_rejection","reasonForRejection","sendContractOfferModal","sendOpenJobOfferModal","jobOfferEmailAddress","jobOffers","JobOfferFactory","jobOfferEmail","selectActionModal","filter_by","modalOptions","editResearcherModal","candidatesProject","editedCandidatesProject","updatedCandidatesProject","editResearcher","EditResearcherModalCtrl","filterUsers","_filterUsers","researcherFromTeam","isSelectable","team","projectManager","union","researchConsultants","u2","SendOpenJobOfferModalCtrl","openJobOfferEmail","jobOffer","LonglistCtrl","oldObjectCandidatesProjects","lazyLoading","newObjectCandidatesProjects","updateLongListObjectAndActiveRow","existingCandidatesProjects","conditions","updateObjects","advancedLonglistSearchOptions","allCandidatesProjects","forEach","deleted","updatedCandidatesProjects","longlistObject","sendoutAt","initSearchResults","beforeStringify","additional_pages","Math","min","LonglistTableBodyControllerCtrl","CandidatesProjectsTableBodyCtrl","CareerLevel","workingRelationships","CompaniesAdvancedSearchCtrl","companies","CompaniesSiteAddressesFormCtrl","$translate","siteAddressesInfoPopover","companySiteAddressesInfoPopover","addSiteAddress","siteAddresses","deleteSiteAddress","index","CompanySelectCtrl","Company","foundCompanies","searchCompanies","viewValue","triggerCompanySelectBroadcast","$item","$model","model","CompaniesTableBodyCtrl","isCompaniesTable","CompanySearchCtrl","Companies","Employees","advancedCompanySearchOptions","full_name","CompaniesShowCtrl","PersonModals","companyAttributes","contactActionTypes","telephone","deregActionListener","deregAddEmployeetoCompany","deregAddProjectToCompany","projects","openCompanyOrgChart","current","showContact","CompaniesEditCtrl","onStateChanged","saveCompany","newCompany","CompaniesIndexCtrl","companiesLazyLoading","CompaniesDocumentsCtrl","where","DeepMapKeysMega","DeepMapKeys","mapFn","opts","super","excludedTypes","isDate","deepMapKeysMega","Error","TypeError","TransactionBasis","isAGBContract","isFullContract","isFreelancerContract","isProjectConsultingContract","isServiceContract","isIndividualContract","getAllForCompanies","PERIOD_OF_PAYMENT_OPTIONS","CompaniesTransactionBasis","contractType","startDate","endDate","snakeCase","Country","nationalities","country","nationality","findByName","allNationalities","personsNationalities","citizenship","persNational","EUcountries","onlyEu","forceValidation","includes","CourseSelectCtrl","foundCourses","searchCourses","tag","Course","DashboardCardsCtrl","dashboardSettings","$cookies","dashboardSettingsCopy","expandQuicklist","dashboardSetting","directive","AmountCoveredLineChartCtrl","ChartColors","colors","responsive","aspectRatio","maintainAspectRatio","layout","padding","left","right","top","bottom","legend","display","position","labels","boxWidth","fontSize","usePointStyle","updateChartData","projectReportingWeeks","amountCoveredSollPerYear","currency","isoCode","series","sumAmountCoveredIst","sumAmountCoveredSoll","week","isUndefined","sales","amountCoveredIst","cents","amountCoveredSoll","salesAmountCoveredIst","researchAmountCoveredIst","salesAmountCoveredSoll","researchAmountCoveredSoll","amountCoveredIstPerWeek","toFixed","amountCoveredSollPerWeek","$onChanges","changes","previousValue","currentValue","DashboardKpis2021CardCtrl","DashboardKPISteps","ProjectReportingRequestObj","openPopoverTemplate","projectReportingRequestObj","kpiIST","kpiIst","kpiSOLL","kpiSoll","setSteps","mapObject","kpiStep","isOpen","ist","soll","sollPerYear","kpiSollPerYear","values","stepkey","enableKpiKeySelect","selectedKpiKey","deregisterEventListeners","DashboardAccounts2021CardCtrl","ManagerKPISteps","dashboardsOpenPopoverTemplate","accounts","iteratee","DashboardSendouts2021CardCtrl","DashboardInterviews2021CardCtrl","DashboardAmountCovered2021CardCtrl","DashboardAmountCoveredConsultants2021CardCtrl","ProjectReporting","canceler","labelNames","deregisterDashboardQueryChanged","updateCard","deregisterDashboardQueryTimeout","showSum","color","orderedConsultantsData","consultantsData","consultantData","deals","sumProvisions","provision","consultantsRequest","Accept","timeout","consultants","config","loadingError","DashboardCv2021CardCtrl","PopoverCtrl","limit","showMore","showActionsList","DashboardDeals2021CardCtrl","CURRENCIES","isoNumeric","DEFAULT_CURRENCY","Money","inCents","AmountCoveredConsultantPieChartCtrl","tooltips","callbacks","label","tooltipItem","datasets","datasetIndex","plugins","render","fontColor","outsidePadding","textMargin","candidateProvisionAmountCovered","customerProvisionAmountCovered","candidateProcessProvisionAmountCovered","processProvisionAmountCovered","sumData","round","currencyIso","candidateProvision","customerProvision","candidateProcessProvision","processProvision","DashboardPieChartCtrl","range","AmountCoveredBarChartCtrl","borderWidth","scales","yAxes","ticks","groupAmountCoveredValues","weeks","DashboardGaugeChartCtrl","datasetOverride","max","percentage","minValue","backgroundColor","needle","radiusPercentage","widthPercentage","lengthPercentage","valueLabel","isNumber","DashboardsCtrl","Sidebar","$httpParamSerializer","Currencies","ranges","LAST_WEEK","moment","startOf","subtract","CURRENT_WEEK","endOf","NEXT_WEEK","LAST_MONTH","CURRENT_MONTH","CURRENT_YEAR","dayOfYear","LAST_YEAR","updateDashboardProjectReporting","allowProjectReporting","allowVWSOverview","allowVwsOverview","currencies","kpisQuery","dateRange","datePickerOptions","date","userQuery","timePicker","eventHandlers","partial","closeAll","queryIsValid","isValid","getDateRangeOptions","getDashboardFilterParams","currencyChanged","team_id","propertyOf","all_active","allActive","projectReportingRequest","lastMviewsRefresh","lastMviewsRefreshes","projectDealAction","updatedParams","isSalesView","isSales","isLegacyCalculation","year","editKPIOperative","downloadVWSOverview","EditContractDraftCtrl","ContractDraft","deploymentLocations","candidateId","addContractDraftToCandidate","createContractDraft","newContractDraft","contractDraft","contractDraftStatusIn","destroyContractDraft","deletedContractDraft","ShowContractDraftCtrl","deploymentLocation","showSalaryInformation","OrganisationUnit","DealsModalMixin","editModal","broadcastChanges","provisions","joinedProjectModelId","probations","openReconciliationModal","candidateOrEmployees","openAcknowledgementCandidateModal","acknowledgementEmailSentAt","showSapTransmissionErrors","hasSapId","needsSapSalesOrderSync","dealToSapCpiJobErrorMessages","CompaniesDocumentsListCtrl","Document","companiesDocumentListPaginationTemplate","concat","CompaniesTransactionBases","documentFileTypes","fileTypes","fileType","serviceTypes","travelExpenseServices","DealEditModalCtrl","Provision","clientHourlyExpensesOptions","deliveryOptions","periodOfPaymentOptions","internalJobTypes","entourageSubsidiaries","confirmPurchaseOrderNumber","once","companiesDocumentsList","expensesDescriptionPopover","savingSuccess","allowFeedback","recipient","invoiceRecipient","isPermanentEmploymentInternal","periodOfPayment","recipientCompany","transactionBasis","transactions","managerContactEntries","manager","$hasContactAddress","workEmail","privateEmail","availableManagerContactEntries","dealReconciliationEmail","newDeal","needsContractDraft","getCurrentContractDraftCdsJobData","failed","allCandidatesInSap","pollCdsJobData","pollSapJobData","purchaseOrderNumber","dealForm","employeeLeasing","isEmployeeLeasingEnabled","saveContractDrafts","saveDeal","addProvision","excludes","openChooseCandidateModal","dealParams","deleteProvision","hasUnfinalizedContractDrafts","targetId","document","getElementById","scrollIntoView","behavior","turnClosingToDeal","savedDeal","contractDraftPromises","provisionsWithUnfinalizedContractDraft","saveCorrespondingContractDraftPromise","currentContractDraft","savedContractDraft","$errors","hasCdsId","PrsmTableCtrl","initializeTable","searchTime","searchTimeCalc","resetSortOrder","enableHotkeys","registerHotkeys","nextItem","previousItem","collapseHeader","pathAppendix","enableInfiniteScrolling","bodyDirectiveIdentifier","bodyDirective","deregisterHotkeys","getListIndex","indexOf","scrollListElementIntoView","$","openDetailView","mode","moreWithoutReload","took","isLoading","isMoreAvailable","getMore","sortOrder","$sortOrder","paramName","sortParams","shift","order","list","contextMenuOptions","kpisOpenPopoverTemplate","require","processKpisCtrl","$compile","$sce","newValue","disableKpiPopover","small","addressList","fieldName","controllerAs","AddressFormCtrl","Location","selectAddress","displayName","road","house_number","postcode","autocompleteLocation","searchQuery","locations","rest","PersonDuplicateButtonCtrl","DuplicateChecker","personDuplicatesPopover","duplicatesChecker","person","doCheck","freeDatePickerCtrl","freeDateOptions","freeDatePickerPopover","disabled","uniqName","currentFreeDateOption","freeDate","option","currentFreeDateDate","setFreeDateText","freeDateText","PersonSkillmatrixCtrl","ratings","skillmatrixElements","skillmatrix_elements","ContactDetailsCtrl","triggerAction","click2Call","actionTypeName","destination","datePickerCtrl","$event","stopPropagation","opened","onChanges","AddressBlockCtrl","$googleMapsUrl","googleMapsUrl","$googleMapsUrlStatic","$watch","address_query","isString","countryName","join","trustAsResourceUrl","region","DeckSubCtrl","SidebarFactory","sidebar","stateWithPrefix","requirements","TrafficLightCtrl","typeClass","popoverUniqId","urgency","amount","Number","condition","PopoverTranscludeCtrl","directiveNameIdentifier","directiveName","directiveOptions","lastUpdateSelectable","lastUpdateUniqID","lastUpdateEnabled","GenericSelectorCtrl","defaultSelectorFields","suggestions","matcher","getName","synonyms","x","AdvancedSearchCtrl","dropdownIsOpen","getNumberOfSearchConditions","getNumberOfConditions","numberOfSearchConditions","dateRangeSelectable","dateRangeUniqID","AdvancedSearchSelectorCtrl","modifiers","selectedFields","fieldCount","getStaticList","staticList","isGenericField","cvLastUpdateSelectable","goldenDaysInWeeksAgo","String","getTime","cvDateSearchUniqID","cvLastUpdateEnabled","jobOffersSearchUniqID","Priority","prioritySelectUnigId","priority","$selected","findIndex","p","updatePriorityFilter","LOCATION_DISTANCES","LocationSearchCtrl","locationSearchUniqID","includeGeoflexUniqID","locationDistances","locationDistance","CompaniesTransactionSearchCtrl","termsAndConditionsUniqID","selectedTransactionBasisUniqID","documentSelectUniqId","transactionBasesTypes","selectAllOption","selectedTransactionBasis","advancedSearch","salaryRangeUniqId","salaryRangeEnabled","salaryRangeMax","salaryRangeMin","entryId","entourageCandidatesSearchUniqID","Region","getUserName","promises","skipUniq","candidate_name","candidate_email","candidate_phone_number","profile_source","profileSources","selectable","languageId","languageLevel","job_category","e","department","job_type","employee_name","company_name","responsible_user","completed_by_user","responsible_researcher","project_status","project_title","employee_email","employee_phone_number","longlist_status","action_type","file_type","job_offer","translatedTeams","TextkernelDiffModalCtrl","doc","textkernelFailed","textkernelComplete","ObjClass","resultDiff","hasResults","textkernelGenerating","$put","restart","stop","mapAttribute","importData","DocumentsFullscreenModeModalCtrl","EXTENSION_WHITELIST","openDocuments","cvs","extension","fileTypeId","docId","documentKpisCtrl","documentCount","cvCount","expertProfileCount","oldModelDocumentsMeta","documentsMeta","currentDocumentsMeta","DocumentsListCtrl","csrfCookieName","FileUploader","documentPaginationTemplate","documentFileTypeUpdate","removeDocument","sliceItem","_index","moveDocument","oldIndex","newIndex","sort","documentLimitExceeded","getSelectableDocumentFileTypes","chooseFileType","initializeUploader","trigger","disableSearch","advancedDocumentsSearchOptions","uploader","alias","removeAfterUpload","autoUpload","onSuccessItem","debug","updatedResource","textkernelDiff","onCompleteAll","onErrorItem","file_info","file","filters","test","documentsCount","selectLabel","DrivingLicence","EmployeeShowDuplicatesModalCtrl","selectedCandidate","connectToCandidate","createNewCandidate","EmployeesContextMenuCtrl","createAsCandidate","EmployeesProjectListCtrl","advancedEmployeesProjectSearchOptions","updateEmployees","removeFromProject","createInitiativeExpertProfile","updateActiveRow","newParams","oldParams","EmployeeSearchCtrl","foundEmployees","advancedEmployeeSearchOptions","searchEmployees","EmployeesAdvancedSearchCtrl","EmployeeSelectCtrl","companyId","projectId","triggerProjectSelectBroadcast","selectMultiple","EmployeesTableBodyCtrl","EmployeesShowCtrl","employeesPriorityPopoverTemplate","projectAttributes","fullNameWithTitle","computerSkills","EmployeesEditCtrl","employeesJobTitlePopover","saveEmployee","savedEmployee","EmployeesIndexCtrl","expandUserSidebar","employeesLazyLoading","managers","sendoutEmail","ExpertProfilesEditCtrl","ExpertProfile","reloadExpertProfile","workExperiencesDescriptionPopoverTemplate","skillsDescriptionPopoverTemplate","coreCompetenciesDescriptionPopoverTemplate","educationDescriptionPopoverTemplate","addDocument","attachedDocuments","unshift","setCPjoinID","candidates_projects_id","expert_profile_id","saveExpertProfile","expertProfileForm","expertProfileOptions","isInitiativeProfile","sendoutLanguage","newExpertProfile","extendOwn","openPreview","openInNewTab","ep","win","focus","previewEnabled","getEcp","employeesCandidatesProject","needsResearcher","ecp","initiativeExpertProfile","selectPeopleConsultant","sendExpertProfile","needsCandidatesAgreement","editSales","openInitiativeSendoutModal","openLonglistSendoutModal","copyExpertProfileInfos","handleCorruptedProfile","expertProfiles","copyTo","initializeExpertProfileCopyDropdown","projectTitle","jobTitle","location","candDoc","isRelevantForExpertProfile","unregisterCopyDropdown","unregisterUploadedDocs","FunctionalArea","HighschoolSelectCtrl","foundHighschools","searchHighschools","Highschool","InvoicesListCtrl","Invoice","invoices","preload","updateInvoices","invoicesCount","InvoicesFormCtrl","invoice","addInvoice","deleteInvoice","jobOffersTableBodyTemplate","JobOffersCtrl","IDEAL_BOOLEAN_VALUES","RESPONSE_TYPES","customRequirement","onRemove","customRequirementResponseTypes","idealBooleanValues","RESPONSE_TYPE","responseType","r","IDEAL_BOOLEAN_VALUE","idealBooleanValue","languageProficiencyQuestion","euLanguages","idealProficiencyLevels","idealProficiencyLevel","LanguageProficiencyQuestion","initializeLanguage","console","CustomRequirement","PreliminaryQuestionsNavbarCtrl","buildJobFunctionExperienceQuestion","jobFunctionExperienceQuestion","addLanguageProficiencyQuestion","languageProficiencyQuestions","buildWorkAuthorization","workPermitQuestion","buildIndustryExperienceQuestion","industryExperienceQuestion","addCustomRequirement","customRequirements","JobOffersShowCtrl","JobOffer","homepageCountryCode","COUNTRY_CODES","noPreliminaryQuestions","EU_LANGUAGE_SLUGS","JobOffersEditCtrl","countryCodes","experteerId","oldJobOfferLanguage","saveJobOffer","executeSave","jobOfferForm","savePreliminaryQuestions","isActive","visible","projectStatus","updateCompanyDescription","lang_id","newJobOffer","companyDescription","removeJobFunctionExperienceQuestion","jobFunctionExperienceQuestionId","jobFunctionExperienceQuestionAttributes","removeIndustryExperienceQuestion","industryExperienceQuestionId","industryExperienceQuestionAttributes","removeWorkPermitQuestion","workPermitQuestionId","workPermitQuestionAttributes","updatedJobOfferLanguage","languageProficiencyQuestionsAttributes","log","customRequirementsAttributes","countryId","removeCustomRequirement","customRequirementId","removeLanguageProficiencyQuestion","languageProficiencyQuestionId","noPreliminaryQuestionsBuild","LanguageSelectCtrl","select","LeadershipExperience","LocationPreferencesFormCtrl","addLocationPreference","locationPreferences","distance","LoginCtrl","AUTH_EVENTS","AuthService","Keepalive","Idle","UserSession","loginSuccess","backendNotice","microsoftLoginUrlWithRedirect","microsoft_login_url","redirect_to","encodeURIComponent","href","absolute","externalLogin","neverOverwrite","argumentsArray","ignoreAuthModule","updateAfterExternalLogin","user_session","loginError","message","MaritalStatus","REASONS_FOR_REJECTION","ChooseLocalesModalCtrl","subsidiaries","dialogTitle","nationalAffiliate","subsidiary","defaultReason","reasonsForRejection","selectLocales","subsidiarySlug","emails","emailObject","sendMessageToObject","messageType","ready","getDefaultEmailAddress","selectedOrgUnit","getSalesUnits","MessageStatusCtrl","OpenSkillmatrixEditCtrl","tagging","tagObj","ChooseComponayModalCtrl","toArray","companyAddress","selectCompany","infoPresentation","infoPresentations","selectInfoPresentation","CompanyOrgChartModalCtrl","nodeTemplate","unflatten","array","parent","tree","children","child","managerId","newScope","$new","el","getEmployementHierarchy","withCurrentWorkingRelationship","$currentSupervisor","workingRelationship","employer","supervisor","initOrgChartContainer","$container","orgChartNodes","isCompany","orgchart","verticalLevel","initCompleted","$chart","scrollLeft","scrollWidth","width","PersonModalMixin","checkForEmail","openQuicklistModal","quicklistType","openModal","entries","entryIds","selected","openContactModal","openNDAModal","ndaParams","subsidiary_slug","ndaEmail","openEventConfirmationModal","eventConfirmationEmail","openInfoPresentationModal","presentation","infoPresentationEmail","openSendSkillmatrixModal","skillmatrixEmail","openSkillmatrixEditModal","PersonsGraduationFormCtrl","PersonsGraduation","personsGraduationFormPopover","personsGraduations","addPersonsGraduation","deletePersonsGraduation","random","PrioritySelectCtrl","WhiteboardAdvancedSearchCtrl","projectReportingWeek","handleModalClosing","loadKpisFromWeekOfSelectedDay","user_id","selectedDate","kpiOperativeEditModalCtrl","ProjectSheetCtrl","dayAttrs","ProjectDayAttrs","sumDay","projectReporting","TODAY","YESTERDAY","PREVIOUS_SEVEN_DAYS","PREVIOUS_THIRTY_DAYS","dateRangePicker","parentEl","$advancedQuery","initFn","currentLonglistEntries","whiteboardsLazyLoading","userOrTeam","WhiteboardKpisController","ganttActive","WhiteboardsTableBodyCtrl","WhiteboardCtrl","allUsers","sessionUserId","initializeLazyLoading","whiteboardQueryFn","initializeWhiteboardSearch","setTableAttributes","whiteboardAttributes","out","advancedWhiteboardSearchOptions","$attributes","$advancedWhiteboardSearchOptions","$whiteboardsLazyLoading","$currentLonglistEntries","teams","pickTranslatedTeams","whiteboardConfig","whiteboardEntries","usersOnWhiteboard","whiteboardOptions","updateWhiteboardProjectReporting","old_users","diff1","difference","diff2","add_user","idx","removeUser","$interval","whiteboardPresenterQueryFn","allTeams","advancedWhiteboardPresenterSearchOptions","WhiteboardPresenterCtrl","ProjectPipelineCtrl","lazyLoadingQueue","pipelineQueryFn","initializePipelineSearch","serializeCompanyGroup","serializeCompany","serializeProject","longlistQueryFn","pipelineOptions","projectPipelineConfig","project_kpis","company_kpis","cg","company_group_kpis","updatePipelineProjectReporting","advancedPipelineSearchOptions","$advancePipelinedSearchOptions","$pipelinesLazyLoading","companyGroups","userOrTeamParams","lazyLoadChunk","projectsChunk","loadProjectList","loadAllCompanyLonglists","isExtended","chunk","$longlistEntries","ProjectReportingsCtrl","redirectToProjectReporting","selectedUser","selectedYear","kpisPerYear","userId","amountCoveredIstPerYear","saveProjectReporting","DocumentExportModalCtrl","DocumentService","ActiveProcessesModalCtrl","activeProcessesEmail","EditSalesModalCtrl","filterTeams","_filterTeams","isMatch","candidateSearchModalCtrl","cpjoins","foundCpjoins","searchCpjoins","is_closing","candidates_project","chooseCandidate","PitchModalCtrl","pitchEmail","ProjectSearchCtrl","ProjectService","foundProjects","advancedProjectSearchOptions","searchProjects","onTypeAheadSelect","CandidatesAutoSearchCtrl","SavedSearchService","tag_query","tagQuery","jobCategory","showAutoSearch","oldCandidatesSelected","$selectedForLonglist","$selectedBySystem","candidatesSelected","addToProject","startAutoSearch","updateCandidates","longlistEntries","getLonglistedCandidates","EmployeesProjectSearchCtrl","oldAdvancedQuery","projectlistContextMenu","$isOnProjectList","ProjectSelectCtrl","resourceTypeParams","onChange","ProjectsCandidateSearchCtrl","addProjectToCandidate","ProjectsTableBodyControllerCtrl","tmpPro","selectedProjects","projectStatusUpdate","saveBasics","projectPriorityUpdate","ProjectsListCtrl","updateProjects","advancedProjectsListSearchOptions","ProjectsContextMenuCtrl","deactivateProject","ProjectsAutoSearchCtrl","oldProjectsSelected","getLonglistedProjects","projectsSelected","ProjectsAdvancedSearchCtrl","SelectProcessStatusCtrl","ProjectsShowCtrl","deregUpdatedJobOffer","result_error","textkernelDiffProject","getDocumentExportModal","ProjectsIAEditCtrl","$class","saveProject","ProjectsEditCtrl","deregCompanyChanged","resetEmployees","company_obj","searchAutocomplete","sendoutLanguages","allLanguages","oneLanguage","projectsLanguages","projLang","company_ids","parentId","employee_obj","analyzeOrigJobOfferLink","origJobOfferLink","projectForm","deregProjectDiff","ProjectsIAShowCtrl","ProjectsIndexCtrl","sidebarStates","projectExcelLoading","canDownloadProjectList","allowDownloadProjectsExcelXlsx","downloadProjectsExcel","blob","Blob","link","createElement","URL","createObjectURL","download","click","ChooseQuicklistModalCtrl","long","throttled","throttle","updateFilteredQuicklists","tmp_quicklists","owner","readOnly","filteredQuicklists","filterQuicklistName","QuicklistsTableBodyCtrl","quicklistPriorityPopoverTemplate","QuicklistsSidebarCtrl","deregUpdatedQuicklist","listItems","newQuicklist","onItemDrop","ui","listItem","onOver","isDroppableQuicklist","draggable","addClass","onOut","removeClass","onDrop","newlistItems","indexBy","without","beforeDrop","isDataDropArea","openNewQuicklist","createNewQuicklist","newQuicklistName","handleResult","QuicklistsShowCtrl","getListTemplate","allowDownloadFn","allowQuicklistDownload","downloadingPdf","loadEntries","isRemovableShare","removeShare","deleteWrapper","getQuicklistPdf","_quicklist","pdf_download_url","pdfDownloadUrl","QuicklistsEditCtrl","updateCache","quicklistEdit","isListOwner","saveQuicklist","deregOnStateChanged","editMode","$outOfSync","ResearchCommissionsFormCtrl","ResearcherCommissionService","researcherCommissions","addResearcherCommission","rCommission","commission","SavedSearchesCtrl","savedSearchCount","editSavedSearchName","saved_search","saved_search_name_enabled","submitted","commitSavedSearchName","abortSaveSearch","saveSearch","isEqual","new_search","addToCache","deleteSearch","invalidateCache","sendouts","SendoutsEpTableBodyCtrl","initializeLegacySendoutsList","sendoutActions","initializeSendoutsList","$sendouts","cpjoinActionChangedListener","SendoutsListCtrl","updateSendouts","sendoutsCount","advancedSendoutsListSearchOptions","TagsListInlineCtrl","tagsListPopoverTemplate","groups","TagCategories","SkillTag","ComputerSkill","Tag","humanReadableType","invalid","$cacheInvalid","TagSearchCtrl","initialLoad","listenOnToUpdate","listenOnToUpdateDeregistration","tagSuggestions","filter_params","itemSelected","typeTagSearchChangedDeregistration","deregistration","urModel","TextkernelLonglistConfirmModalCtrl","Textkernel","fromCandidate","partition","errors","addHistoryPoint","TextkernelOpenSearchModalCtrl","$window","on","receiveMessage","textkernelSearchUrl","getSearchUrl","addTrackingPoint","deregTKEvents","off","TextkernelImportFinishedModalCtrl","finally","TextkernelModal","trustedOrigins","originalEvent","origin","split","hasOwnProperty","jobs","decodeURIComponent","jobId","textkernelLonglistConfirm","addJobToLonglist","tkJobId","tk_id","textkernelImportFinished","addJob","actionTypeObj","Tracking","TrackingsSerializer","apiResponse","count","trackings","TransactionBasisListCtrl","transactionBasesListAttributes","fixedWidth","surchargePercentage","brokerage","TransactionBasisFormCtrl","addTransactionBasis","newCompaniesTransactionBasis","savedCompaniesTransactionBases","savedCTB","deleteTransactionBasis","isDeleted","$sanitize","amMoment","photo","deregLoginConfirmed","clearTableSettings","clearAttributes","isValidHtml","signature","getTrusted","trustAsHtml","saveUser","use","changeLocale","loadEditUser","newUser","openMyProjects","searchMyProjects","openUnrefreshedProjects","lastUpdateInWeeksAgo","UserSelectBoxCtrl","TeamSelectCtrl","active","parentOptions","updateTeamInputLabel","teamsLabel","fullName","setTeamOption","userSelected","oldOptionsAllActive","oldOptions","oldParentOptions","deactivateAllActive","UsersHelpSidebarCtrl","initializeUsersSidebar","usersPaginationTemplate","projectListAttributes","managerAttributes","reminder","has","diffCollections","newlist","oldlist","ids","updateProject","unrefreshedProjects","projectLonglistWatcherInit","childScope","oldlistItems","forceReload","my_active_projects","paginateProjects","my_employees","paginateEmployees","today","shouldBeContacted","nextReminderWillBeAt","projectsOneMonthInactive","loginConfirmedListener","addProjectListener","addEmployeeListener","usersSingleton","UsersModalMixin","TextkernelModalMixin","isResearcher","getType","preferredLanguage","getTeamName","identifer","loadKpisPerYear","get_all","teamIdentifiers","med_tec","pharma","ch","italy","prototype","constant","candidateResponse","CandidatesFactory","project_candidate_id","projectCandidateResponse","views","viewObj","new","candidateDiffData","extendByDiff","candidatesResponse","objectType","companyResponse","CompaniesFactory","transactionBasesResponse","employeeResponse","EmployeesFactory","jobOfferResponse","job_offer_id","projectResponse","ProjectsFactory","componentProvider","projectDiffData","savedSearchesResponse","action_types","WorkingRelationshipListCtrl","WorkingRelationship","workingRelationshipsListAttributes","hasLeftTheCompany","$current","$hasLeftTheCompany","workingRelationshipPopoverTemplate","workingRelationshipDepartmentHierarchyPopoverTemplate","WorkingRelationshipFormCtrl","WorkingRelationShip","workingRelationshipPopover","workingRelationshipDepartmentAndHierarchyPopover","addWorkingRelationship","markets","updateSelectableDepartments","updateSelectableHierarchies","deleteWorkingRelationship","market","$departments","filterParams","job_category_ids","$httpProvider","common","$compileProvider","aHrefSanitizationWhitelist","pollerConfig","stopOn","resetOn","railsSerializerProvider","exclusionMatchers","intlTelInputOptions","defaultCountry","preferredCountries","autoFormat","autoPlaceholder","ChartJsProvider","ChartColors2021","setOptions","$logProvider","environment","debugEnabled","uibDatepickerConfig","startingDay","$translateProvider","useStaticFilesLoader","prefix","suffix","useSanitizeValueStrategy","forceAsyncReload","$stateProvider","$urlRouterProvider","$stateGeneratorProvider","$provide","candidateOpts","employeeOpts","projectOpts","companyOpts","expertProfileOpts","jobOfferOpts","savedSearchOpts","unauthenticated","isLoginPage","toState","toParams","onEnter","$location","setTimeout","decode","referrer","deal_id","abstract","squash","onExit","CandidatesHotkeys","addStates","viewLayerID","urlParamName","subDeckOpen","addRoundtrip","redirect","urlParameters","stateName","queryParams","when","CompaniesHotkeys","rootView","ProjectsHotkeys","docViewActive","quicklistResponse","QuicklistsFactory","quicklist_id","forceRootStateName","otherwise","KeepaliveProvider","IdleProvider","http","interval","idle","$sceDelegateProvider","resourceUrlWhitelist","run","ngProgress","PopoverLoaderTemplate","tmhDynamicLocale","tmhDynamicLocaleCache","getInjectedLocale","injector","toJSON","set","pageTitle","encode","logoutSuccessListener","logoutSuccess","startTransitionListener","onStart","$emit","paramsCopy","stateService","to","isAuthenticated","start","navigating","info","successTransitionListener","complete","errorTransitionListener","onError","reset","DeckCtrl","GenericDeckCtrl","getDeckCssHelper","deck","deckSecondary","getDeckClass","objectClass","MainViewCtrl","loginConfirmed","sessionTimeoutListener","loginRequiredListener","online","getSidebarStatus","updateExpandUserSidebar","updateSideBar","updateExpandQuicklist","logout","force","unwatch","openLoginFormModal","cancelTimeout","watch","currentUser","testjQuery","underscore","actionNoticeFormTemplate","queryUrl","follow_ups","CandidatesModalMixin","qualificationSummaryEmail","showDuplicatesModal","showDuplicates","keydown","ctrlKey","keyCode","Highlighter","allDocuments","$allDocuments","clone","deepCopy","mappedTags","taggings","workMobilePhone","privateMobilePhone","workPhone","privatePhone","$attributeChanges","_prepSnapshot","attrKey","attributeChanged","attribute","$snapshots","mapSearchScopesToHumanReadable","currentProjects","resCandidate","filterDepartments","notTransmitted","val","duplicatesWatchFields","attributeNames","firstName","lastName","birthDate","hobbies","gender","linkedinUrl","xingUrl","homepage","privateCountryId","pinned","yellow","green","nestedAttribute","rename","candidatesMenuViewTemplate","CandidatesProjectStatuses","onChangeHintTemplate","lastAction","lost","handleStatusChange","changeStatus","invalidClosing","candidates_projects","resCpjoin","hasSendout","removeCandidate","getCandidateLonglist","addInterviewDate","_cp","createInterview","completeAction","sendJobOffer","processStatus","longlistContextMenu","qualifications","shortlist","firstInterviews","secondInterviews","closings","candidatesIdentified","managerCalls","managerEvents","projectsIdentified","CompaniesModalMixin","showContactDetails","autocompleteText","makeVisible","$patch","pollJobData","jobFailedCondition","jobSuccessfulCondition","_contractDraft","updatedContractDraft","jobStatus","contractDraftParams","preserve","ChartJsFactory","Dashboard","cardIdentifier","card","checkObjectIsEmpty","employeeLeasingEnabled","serviceDate","isEMailDelivery","delivery","_deal","updatedDeal","cds_failed","cds_generating","allCandidatesInCds","has_sap_id","candidatesSapIds","sapId","isFreelancerWorkingOnInternalProject","isInternalProject","closeDeckButtonTemplate","terminal","compile","attrs","removeAttr","pre","iElement","iAttrs","setAttribute","validateMultipleRequiredFields","ctrl","$isEmpty","multipleRequiredScopes","ctrlObj","$viewValue","multipleRequired","$validators","modelValue","valid","$setValidity","$setViewValue","$setUntouched","$document","popoverClass","popoverAppendToBody","$parent","outsideClickListener","offsetParent","$evalAsync","$element","selectController","$select","bruttoContacts","nettoContacts","cvSendout","projectsActive","projectsInactive","sendoutInitiativeApplications","sendoutEntities","telephoneInterviews","telephoneInterviewsOpen","telephoneInterviewsCompleted","telephoneInterviewsDeclined","presenceInterviews","presenceInterviewsOpen","presenceInterviewsCompleted","presenceInterviewsDeclined","managerCallsOpen","managerCallsCompleted","managerCallsDeclined","closingsDeal","closingsLost","projectsPermanent","projectsFreelancer","projectsProjectConsulting","projectsManagementConsulting","expandSidebarStates","getSidebarStates","prsmTableHighlightsTemplate","highlightPopoverHtml","list_str","loadFromStorage","setAttributes","localStorage","setItem","allAttributesList","visibleAttributesList","getItem","parse","clear","ngModelCtrl","uiTinymceMegaId","uiTinymceMinLength","UiTinymceMegaCtrl","tinymceConfig","uiTinymceConfig","minLength","$parsers","$formatters","inline","menubar","theme","skin_url","min_height","browser_spellcheck","translation","ExternalCvUploaderCtrl","heading","choose_file","or_drag_drop","$clone","onAfterAddingFile","appendTo","DocumentsModalMixin","textkernelCandidateDiff","isTextkernelAvailable","candidateDiff","textkernelProjectDiff","projectDiff","isCv","isExpertProfile","documentLabel","originalFilename","documentViewable","lazyLoadingDocuments","employeesListTemplate","companyChart","advancedEmployeesListSearchOptions","EmployeesCandidatesProjects","EmployeesModalMixin","openRulesOfEngagementModal","rulesOfEngagementEmail","employeesContractOfferEmail","editedECPCandidatesProject","employees_candidates_projects","updatedEmployeesCandidatesProject","resEmployee","resEP","employeesProject","$delete","override_status_callbacks","Closing","Lost","Sendout","ExpertProfilesModalMixin","sendoutModal","sendoutFinished","sendoutCreatedRes","sendout_id","sendoutRes","candidatesProjectsId","getShareLink","expert_profile","anonymize","agreementSigned","isEntourageEmployee","workExperience","comment","coreCompetencies","firstInterviewDate","jobStartDate","wantedSalary","skills","profiles","expert_profiles","angularPhoneNumberFilter","phoneNumber","camelCaseToHyphens","charAt","toUpperCase","substr","input","str","freeDateObject","angularDateFilter","theDate","decimals","intlTelInputUtils","isValidNumber","formatNumber","numberFormat","INTERNATIONAL","JobOfferMainCategories","isInCategory","internal","jobCat","debouncedFn","debounce","modalInstanceSingelton","backdrop","HttpAuthInterceptorAuthService","LoginModalMixin","authService","loginCallback","login","credentials","destroy","DefaultCurrency","restrict","tmpKeyOpts","openConfirmModal","ERROR_CODES","days","sumWeek","hoursPerWeek","ProjectReportingsModalMixin","DayAttrs","day","inputDays","sumProjectsWorkingDay","dayIndex","reduceRight","created_at","firstInterview","secondInterview","ProjectsModalMixin","openPitchModal","pitchCreatedRes","pitchModal","editSalesModal","editedProject","updateSales","openInitiativeActiveProcessesModal","projectActiveProcessesEmail","openActiveProcessesModal","openPitch","created_cp","ret","createSendout","resProject","sendContractOfferToEmployee","companyWatcher","togglePinned","getExpireDate","updatedAt","fromNow","getCriticalTimespanCrossed","a","diff","updateExpireDate","tasksDescription","requirementsDescription","editableStatus","expiresAt","contract_draft","provision_id","start_date","end_date","vacation_days","holidays","hours_per_week","temporary","organisation_unit_id","organisationUnit","QuicklistsModalMixin","quicklistsResolve","findAndDeleteEntry","quicklistsSingleton","$injector","newMember","patch","op","fullList","queryFunction","dfd","quick","entryForDelete","templateType","helper","html","ql","findById","ResearcherCommission","deserializeData","savedSearchesSingleton","ResourceDependencyInjector","sort_params","addAdvancedSearchCondition","isDefault","cvLastUpdateInWeeksAgo","numCond","locationSearchEnabled","jobOffersSearchEnabled","dateRangeEnabled","cvDateSearchEnabled","includeGeoflex","entourageCandidatesSearchEnabled","inject","first_interview","second_interview","$invalidateCache","loadFromCache","cache","idAttribute","getHttpConfig","filter_args","query_params","arr","pickParams","loadingPromise","searchParams","page","pages","cleanParams","paramsWithPages","newRecords","abort","xhrStatus","applyClass","cancelClass","buttonClass","showISOWeekNumbers","alwaysShowCalendars","opens","applyLabel","fromLabel","toLabel","cancelLabel","customRangeLabel","weekLabel","daysOfWeek","weekdaysShort","monthNames","monthsShort","firstDay","deregFinishedLazyLoading","getDuplicates","queryArguments","person_id","person_type","initialize","oldResourceDuplicates","duplicatesWatch","personObj","oldPerson","duplicateReturn","$duplicates","pickedPerson","objRoute","methodName","deregSessionTimeout","$$listeners","sessionTimeout","onSave","enter_opts","textAngularWorkaround","DateSerializer","dateSerializer","code","recursiveAccess","highlighted","highlightedText","CollectionProxy","itemsPerPage","currentPage","totalItems","dataSet","updateRange","upper","lower","total","currentPageChanged","getData","isLastPage","setCurrentPage","setItemsPerPage","getItemsPerPage","getRange","getDataSet","dataSetEmpty","hidePagination","floor","provider","headerName","cookieName","allowedMethods","setHeaderName","n","setCookieName","setAllowedMethods","request","confirmMessages","classNames","employeeId","transformPerson","resourceClass","cur_obj","i","absUrl","$$search","$$path","dependency","$sceDelegate","trustedData","getTrustedHtml","valueOf","asideName","deckSub","rootStateName","_stateName","genericDeck","slice","lastIndexOf","afterResponse","resourceConstructor","construct","err","recursiveConstruct","openTkSearchModal","hasCv","tkImportFinished","tkLonglistConfirm","openTextkernel","trackingsTemplate","vwsUsersTableBodyTemplate","accountSettingsModal","windowClass","accountSettingsTemplate","loginFailed","notAuthenticated","notAuthorized","$1","candidatesProjectsResponse","CandidatesProjectsFactory","expertProfileResponse","ExpertProfileFactory","savedSearchResponse","showAside01","showAside02","showAside03","showAside04","deckPrimary","cancelationPeriod","webpackContext","req","webpackContextResolve","__webpack_require__","o","exports"],"sourceRoot":""}